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...

Sözlerde Vurğunun Yerini Necə Tapmaq Olar?

Azərbaycan dilindəki her hansı sözdə vurğunun yerini tapmaq üçün sözü hecalara ayırmadan nisbətən qüvvətli demək lazımdır. Çünki vurğulu heca tələffüz zamanı özünü asanlıqla biruzə verir. Onu da bilmək lazımdır ki, hecalara ayrılarkən sözdəki bütün hecalar eyni tonda tələffüz olunur. Vurğunu asand tapmaq üçün sözü sərbəst şəkildə tələffüz edib, hecaları nisbətən qüvvətli demək lazımdır. Tələffüz zamanı vurğu ilə bərabər sözün düzgün tələffüzü üst-üstə düşərsə bu heca vurğulu hecadır. Bu açıqlamalardan sonra qısaca sözlərdə vurğunu yerini nece tapmaq olar sualının cavablaya bilmək üçün vurğunun məntiqini başa düşmək lazımdır. Vurğu sözdə bir hecanın digər hecalara görə daha qüvvətli deyilməsinə deyilir. Onda vurğunun yerini düzgün tapmaq üçün sırayla sözdeki bütün hecalar digərlərinə nisbətən daha qüvvətli tələffüz olunur. Eger bu qüvvətli tələffüzlərdən biri bu sözün normal tələffüzü ilə örtüşərsə, onda bu heca vurğulu hecadır. Qeyd edek ki, sözlərdə vurğu '  işarəsi ilə göstər...