İlişkisel Veritabanı Relational Database Modeli

0
4318

İlişkisel Veritabanı Relational Database Modeli

Veritabanı yönetim sistemleri teorisi 1970’de  “A İlişkisel Model of Data for Large Shared Data Banks”, (E. F. Codd) yazısı ile büyük bir ilerleme kaydetmiştir. Bu devrim niteliğindeki yazıda, Codd ilişki mantığını tanıtmış ve tabloların gerçek dünyadaki nesneleri göstermekte, nitelemekte nasıl kullanılabileceğini belirtmiştir.

İlişkisel veritabanlarını tanımlayan bazı önemli kurallar vardır:

Öncelikle, tablolardaki kayıtlar matematiksel açıdan tuple olarak tanımlanırlar. Bir tuple tanımlanmış bir veri tipi olan bileşenlerden oluşan sıralı grup olarak tanımlanır. Tüm tuplelar aynı sayıda ve tipte bileşenlerden oluşur. Örnek vermek gerekirse,

{“10”, “Veritabanlarına Giriş”, “2002-06-12”}

{“11”, “Progress Veritabanı Sunucusu”, “2002-06-26”}

Örneğimizdeki her bir tuple da 3 bileşen bulunmaktadır:

  • Ankara’daki 2002 yılındaki kaçıncı seminer olduğu (integer)
  • Seminerin konusu (char)
  • Seminerin tarihi (timestamp)

İlişkisel veritabanlarında bu “kümeye” ya da tabloya eklenen tüm kayıtlar aynı yapıda olmalıdırlar, dolayısıyla aşağıdakilere izin verilmez:

{ “Veritabanlarına Giriş”, “2002-06-12”}

    • eksik bileşen

{“10”, “Veritabanlarına Giriş”, “2002-06-12” , “Devrim GÜNDÜZ”}

    •  fazla bileşen

 

  • {“2002-06-12”, “Veritabanlarına Giriş”, “10”}
    • yanlış bileşen tipleri (yanlış sırada)

 

Bu aşamada, row  ve record tanımını yapmak yerinde olacaktır. Row (record, kayıt) , bir tabloda, üstte gördüğümüz her bir satıra, kümeye verilen addır.

Ayrıca tuple lardan oluşan bir tabloda aynı veriler bulunmaz.(no duplicate record). Dolayısıyla ilişkisel veritabanlarındaki herhangi bir tabloda birbiriyle tamamen aynı iki kayıt (row or record) bulunamaz.

Bu, çok gereksiz bir sınırlama olarak görünebilir. Örnek vermek gerekirse, aynı kullanıcının aynı malı iki kez sipariş etmesi görünürde engellenmiştir. Bunu da tabloya bir bileşen  ekleyerek çözebilirsiniz.

 

Bir kayıttaki her bir bileşen “atomik”, yani bir veri olmalıdır; başka bir kayıt ya da diğer bileşenlerin listesi olamaz. Aynı zamanda, daha önce de belirttiğimiz gibi, tablodaki bileşenlerin veri tipleri de üsttekilerle ve dolayısıyla tablo tanımlarındakilerle aynı olmalıdır. Diğer bir deyişle, veritabanı tarafından desteklenen veri tiplerinden biri olmalıdır.

Birbiriyle eş kayıtları ayırmak için kullanılan bileşenlere key denir.

Tablodaki bir kaydı diğer tüm kayıtlardan ayırmak için kullandığımız bileşene, primary key (birincil anahtar) adı verilir. Primary key, o kaydı tekil (unique) yapar. Tüm ilişkisel veritabanlarında her bir tablo ya da ilişkide mutlaka primary key olmalıdır.

İlişkisel veritabanı yapısını belirleyen son bir kural da referential integrity (bütünlük denetimi). Veritabanında uygulama geliştiren programcılar yazdıkları kodun veritabanının bütünlüğünü bozmamasına dikkat etmelidirler. Uygun bir örnek bir müşteri kaydının silinmesi olabilir. Eğer müşteri tablosundan bir kayıt silinecekse, o kişinin sipariş tablosundaki siparişlerinin de silinmesi gerekir. Aksi takdirde olmayan bir müşteriye ait siparişler veritabanında kalacaktır.

Tabloların yapılandırılması

 

►Aynı konu ile ilgili olan bilgilerin belirlenmelidir.

►Olası olan en yüksek seviyede yapısal bir şekilde tabloların oluşturulması sağlanmalıdır

►Aynı konu ile ilgili alanların kendi tablolarında aynı tabloda toplanması sağlanmalı

►Veri tekrarı olmamalı

►Gereksiz alanlar kullanılmamalı

►Alanlar basite indirgenmelidir.