ilişkisel veritabanı kısaca verilerin belli kriterlere göre farklı tablolarda saklanması ve bu tabloların aralarında ilişkiler kurarak veri bütünlüğünün sağlanmasını sağlayan veritabanı tasarım biçimidir. Veritabanı tamamen projenin ihtiyaçları doğrultusunda tasarlansa da, veritabanı tabloları arasında ki ilişkinin belirlenmesi ve normalizasyonun sağlanması için bazı temel kurallar mevcuttur.
Aşağıdaki örnek tablolar arasındaki ilişkinin anlaşılması açısından önemlidir.
Tablolara dikkat edildiğinde;
-
- Ürün Bilgileri–>urunler tablosunda, Müşteri Bilgileri–>musteriler tablosunda, Sipariş Bilgileri de –> siparisler tablosunda tutulmaktadır.
- Siparişler tablosundaki urun_id (F.K) alanındaki veri, urunler tablosundaki urun_id (P.K) ile ilişkilidir. Yani mantıken bakıldığında urunler tablosunda olmayan bir ürün sipariş verilemez.
- Müşteriler tablosunda ki musteri_id (P.K) alanında ki veri, siparisler tablosundaki musteri_id (F.K) alanı ile ilişkilidir. Yani sistemde kaydı bulunmayan bir müşterinin sipariş vermesi engellenmiş olur.
- Yukarıdaki tablolarda Bire-Çok ilişki türü kullanılmıştır. Yani urunler tablosundaki bir kayıt, siparişler tablosunda tekrarlanarak kullanılabilir. Zaten aynı ürünün birden çok kez sipariş verilmesi doğaldır. Aynı mantık müşteriler içinde geçerlidir.
- Primary Keyi (P.K) ve Foreign Keyi (F.K) ile gösterdim. Bu kavramlara alt kısımda kısaca değineceğim.
Veri Bütünlüğünün Sağlanması
Veri bütünlüğü, veri tabanındaki farklı tablolarda tutulan verilerin silme, güncelleme ve veri girme sırasında ilişkisel tutarlığının ve mantıksal yapısının korunmasıyla ilgili bir kavramdır.
Yukarıdaki tablolardan örnek verecek olursak;
Ürünler tablosundan daha önce sipariş verilmiş bir ürünü sildiğimizde, siparişler tablosunda ki bu alana karşılık gelen veri bizim için bir anlam ifade etmez. Bunu önlemenin yolu, silme işlemine izin vermemek yada ana tablodan silinen verinin bağlantılı olduğu diğer tablodaki tüm kayıtların silinmesini sağlamaktır. Aynı durum kayıt ekleme ve güncelleme işlemleri içinde geçerlidir.
Primary Key ve Foreign Key Kavramları
Primary Key: Tabloda ki bir kaydı, diğer kayıtlardan ayırmaya yarayan anahtardır. Örneğin öğrenci numarası bir primary key olabilir. Çünkü aynı öğrenci numarasına sahip iki öğrenci olamaz. Fakat öğrenci ismi bir primary key olamaz, çünkü aynı okulda aynı isimde birden fazla öğrenci bulunabilir.
Foreign Key: İki tablo arasında ki ilişkinin tanımlanmasında kullanılan, ana tabloda ki Primary Key alanına karşılık gelen anahtardır.