1970’li yıllar veritabanları açısından iki önemli gelişmeye sahne oldu: OLTP sistemlerin ilkelerinin ortaya çıkıp örneklerinin oluşmaya başlaması ve SQL dilinin yaratılması.
Tüm bunlar relational (ilişkisel) database kavramı üzerine oturdu. Aslında veri tutmanın tek yolu ilişkisel veritabanları değil. Sırasal erişilen dosyalar, veriyi hiyerarşik tutan yapılar gibi farklı yaklaşımlar geçmişte oldu. Günümüzde de ilişkisel veritabanının ötesinde yaklaşımlar çıkmaya devam ediyor.
Ama ilişkisel veritabanlarının tablo ve ilişkilerden oluşan temel yapısı ve bu yapıyı sorgulamak için kullanılan SQL dili, 40 yıldır özü itibariyle çok başarılı bir süreklilikle hayatta.
İşin sırrı çok basit ve insan algısına iyi oturan bir kavramsallaştırma ya da modelleme sunması.
OLTP’nin kelime anlamına daha sonra değiniriz, bu yazıda ilişkisel veritabanlarının bu çok dayanıklı modelinden bahsedelim.
Temel olarak, hayatın içinde yer alan nesneler veritabanlarında tablolar olarak temsil edilir. Tablonun metadatası nesnenin kavramsal ifadesidir. Metadatayı data hakkında data diye düşünebiliriz. Tablonun adı, kolon sayısı, kolonların adları, kolonların veri tipleri gibi konular metadatadır. Bir tablo metadatasıyla bir nesnenin kavramsallaştırılmasını, modellenmesini sağlamış olur. Tablonun her bir satırı ise o nesnenin bir örneğini ifade eder.
Mesela çalışanlar tablosu her bir kolonuyla çalışanlara ait bir özelliği tutabilir. Çalışanın no’su, adı, soyadı gibi. Her bir kolonun veri tipleri ve alabileceği değerlerle ilgili birtakım kısıtlar da bulunabilir.
Bu tabloya kayıt olarak eklenen her bir satır ise bir çalışana karşılık gelir.
Tablonun özü budur ve tablo ilişkisel veritabanının temel nesnesidir.
İlişkisel kelimesiyle vurgulanan ise tablolar arasındaki ilişkilerdir. Nesnelerin gerçek hayatta aralarında bulunan ilişkiler, tablolar arasında da kurulur. Bunu sağlamak için tablolarda kendi satırlarını birbirinden ayırmak üzere birincil anahtarlar ve bir tablonun başka bir tablonun alt öğelerini içerdiğini belirlemek üzere ana tablonun genelde birincil anahtarını referans alan yabancı anahtarlar kullanılır.
Bu basit yapı 40 yılı aşkın bir süredir kullanılmaktadır. Ve ne yazık ki bu kullanımda pek çok hatalar ve özensizlikler 40 yıldır devam etmektedir. O yüzden bu yazıyı zaten bilindik şeyler diye kulak ardı etmeyin. Birkaç örnekle sıklıkla yapılan hatalardan bahsedersek:
- Boş olmasına izin verilmemesi gereken kolonlara dikkat edilmemesi yüzünden yapılamayan ya da eksik yapılan analizler.
- Veri içerikleriyle ilgili kısıtların iyi düzenlenmemesi sonucu oluşan hatalı bilgiler.
- İlişkisel veritabanı adından da anlaşılacağı üzere ilişkilerin kurulması en temel kurallardan biriyken yabancı anahtar ilişkilerinin hiç kurulmadığı durumlar…
Gördüğünüz gibi en temel konularda bile hala hatalar yapmaya devam ediyoruz. Yukarıdaki örneklerin her biri olası ayrı yazı konuları. Gelecek yazılarda tekrar buluşmak üzere şimdilik noktalayalım.