Ana içeriğe atla

Code First Migrations Mantığı

Code First Migrations Mantığı
İlişkisel veritabanları günümüz yazılımlarınız vazgeçilmez bir parçasıdır. Hemen hemen tüm büyük yazılımların temelinde verileri işlemek ve uygun çıktıları kullanıcıya sunmak vardır.

Yazılım geliştirme süreçlerinin hızlanmasıyla birlikte yazılım kavramları arasına ORM konusu girdi. (ORM'ler veritabanları ile kolay iletişim sağlamamıza yarayan araçlardır. Konuya başlamadan önce ORM konusunda bilginiz yoksa, "ORM Nedir?" makalesine göz atabilirsiniz) 


ORM'ler geliştikçe sadece veritabanı sorguları yapmaktan ziyade, geliştirdiğimiz nesne modellerini tablolara dönüştürerek işlerimizi daha kolay hale getirdi. İşte, ORM'lerin bu özelliği Code First Migrations mantığının temelidir. Yani, siz nesneleri ve bu nesneler arasındaki ilişkileri obje düzeyinde düzenlersiniz ve ORM yazılımları bu nesne ilişkilerini tablo ilişkilerine dönüştürürler...

Code First Migrations konusuna giriş yaparken biraz ORM'lerin tarihsel gelişimine vurgu yapmak istedim. Çünkü Code First Migrations ORM'lerin doğuşu ile hayatımıza girmiş bir kavramdır. Bu makalenin amacı temel hatlarıyla Code First Migrations mantığını anlatmaktır.

Code First Migrations mantığını kaba tabirle ifade edecek olursak, önce kodla(nesnelerini oluştur) sonra sınıflara göre tablo oluştur mantığına dayanmaktadır. Çok basit bir örnek verecek olursak kullanıcı ve kişiler tablosu oluşturmak istiyoruz ve her kullanıcının bir kişi özelliği vardır. Bunun için ilişkisel veritabanında kullanıcılar ve kişiler tablosu oluştururuz ve kullanıcılar tablosunu kişilere tablosuna foreign key ile bağlarız. Code first Migrations mantığında da işler hemen hemen aynı şekilde yürür. Tek farkı daha az iş yaparsınız. Kullanıcı ve Kişi classlarını oluşturursunuz ve Kullanıcı tablosunun bir property'si(özelliği) onun kişi özelliğidir. Geri kalan tabloları oluşturmak, tablolar arasında ilişkiler kurmak ve bu ilişkilere göre sorgulamaları yapmak tamamen ORM yazılımının sorumluluğundadır. 


Şu ana kadar karşılaştığım tüm ORM yazılımları Code First Migrations mantığını destekler. Örneğin .NET dünyası için popüler ORM yazılımları olan Entity Framework, NHibernate, Devexpress XPO ve b. Code First Migrations mantığını destekler.(Tabloları oluşturma ve güncelleme mantığı hepsinde farklıdır ama sonuçta aynı işi yaparlar) Diğer programlama dilleri için geliştirilmiş ORM yazılımları için de ilgili dokümanlarının incelerseniz bu yazılımlarda da benzer mekanizmaların olduğunu göreceksiniz.

Son olarak sıkça karşılaştığım bir konuyu da gündeme getirmek istiyorum. Genel olarak çoğu üniversitede veritabanı derslerinde ORM konuları işlenmez ve buna bağlı olarak iş tecrübesi olmayan mühendislerimiz bu anlamda zorlanmaktadır. Piyasayı iyi bilen ve yeni mezunlarla çalışma imkanı bulduğum için bu makaleyi okuyan ve veritabanı dersleri veren hocalara bir önerim en azından derslerin son bir kaç haftasını bu konulara ayırmalarıdır. (Ve ya hocalarınızdan siz de bu konuları anlatmasını isteyebilirsiniz...)

Konuya ilgi gösterip okuduğunuz için teşekkürler. Umarım makalem faydalı olmuştur. Konuyla alakalı sorularınız olursa yorumlardan bana yazabilirsiniz. 

Yorumlar

Bu blogdaki popüler yayınlar

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s