9 Mart 2017 Perşembe

ER modeli

ER (Entity Relationship Model)-(Varlık İlişki Modeli)

Şimdi öncelikle veritabanı tasarlarken en çok kullandığımız yöntemdir. ER modeli; oluşturulacak veritabanında kullanacağımız varlıkların özelliklerinin belirlenmesi ve birbirleri ile ilişkilendirilmesidir.

Varlık (Entity) : Veritabanında kullandığımız nesnelerdir. Koda döktüğümüzdede Class (sınıf) olarak tanımlayabiliriz. Yani varlıklar ER tablosunun temelidir.
Nitelik (Attiribute) :  Bir varlıkta bulunan tüm özelliklerdir. Programlamada sınıfın içindeki üye değişkenleridir.
İlişki (Relationship) : Varlıklar tek başına bir işe yaramaz bu yüzden varlıkları birbirine bağlamakta mantıksal ve fiziksel yapılar kullanırız buda ilişkidir.


Kısacası kullanacağımız adımlar;
- Varlıklar belirlenir,
- Varsa varlıkların nitelikleri belirlenir,
- Varlıklar arasındaki ilişkiler belirlenir,
- İlişkilerin türü belirlenir (M*N , 1*N , 1*1),
- ER diyagramı çizilir,
Gerek varsa normalizasyon yapılır ve tekrar ER diyagramı çizilir.

Örnek ER;

4 Mart 2017 Cumartesi

ORM (Object Relational Mapping) Nedir?


ORM(nesne ilişkisel haritalama); veri tabanı ile oluşturulan nesneleri birbirine bağlamak için kullanılan programlama tekniğidir.
Nesne yönelimli programa(oop) dillerinde (C#, java, C++ vb..) nesne oluşturulur. ORM oluşturulan bu nesneler ve ilişkisel veritabanı arasındaki veri dönüşümüdür. Yani kısacası köprü olarak kullanılmaktadır.
ORM'nin iyi tarafı tüm nesne yönelimli programlama dilleri için kullanılabilir uygunluktadır.
Ayrıca;
Daha önceki kaynağı değiştirmiş olsak bile kapsulleme (encapsulation)  işlemi yapar ve saklar.
Oluşturmuş olduğumuz database tablolarını sınıflar haline getirir. Kodlama kısmında da zaten veri tabanını çekmiş olduğu için zamandan kazanç sağlar. (Şahsen uzun uzun kod yazmaktan çok daha kolay :D) Üstelik çok çok fazla SQL sorgusu (insert, select, update) yazmamıza da gerek kalmaz.  Nesne-veritabanı, veritabanı-nesne otomatik olarak dönüştürüldüğü için bakım maliyeti düşük ve geliştirmesi kolaydır.
Veritabanını haritalanmış bir şekilde görmemizi sağlar. (gerçi bunu database içinde diagrams kısmında da görebiliriz.)

NOT: Databasede m*n  ilişkilerde oluşturduğumuz ilişki tablolarıda dahil olmak üzere herhangi bir tabloda primary key kullanmadığımız taktirde veritabanı kısmında sorun olmasada ORM ile bağlantı yapılırken tabloları aktarmıyor. Denendi hata alındı :D