Toplum

ilişkisel şema dediğin…

VERİ KİTABI 5: İLİŞKİSEL ŞEMA DEDİĞİN BİR BAKIŞ AÇISI

Ama ne güzel bir bakış açısı! Ne kadar yararlı bir veri şeması! Uzmanlığımın uzunca bir dönemi neredeyse sadece ilişkisel veri tabanları üzerine, bu bakış açısında geçti. İnceleyelim. Bir taşla iki kuş, hem şema örneği hem veritabanı giriş.

İlişkisel veritabanları nesneler ve ilişkileri üzerine kurguludur. Temel yapısı ise tablolardır. Yaşamdaki nesnelere karşılık tablolar gelir. Yaşamdaki nesnelerin ilişkilerine karşılık da yabancı anahtar ilişkileri (foreign key relationships) vardır.

Peki bir nesneye ilişkin iki temel konu nedir: Nesnenin yapısı ve nesnenin örnekleri. Tablonun yapısı nesne yapısına, tablonun satırları ise nesne örneklerine karşılık gelir.

Nesnenin yapısını tablolar kolon tanımları olarak tutar. Her tabloda hangi kolonların var olduğu, bu kolonların veri tipleri, alabileceği değerlerle ilgili kısıtlar, kolonun boş geçilip geçilemeyeceği gibi konular tablo metadatası olarak nesne yapısını tanımlar.

Nesneler arası ilişkilerde tablo içi temel bir yapı önemlidir: Birincil anahtar (Primary Key) ve benzersizlik kısıtı (Unique Constraint). Yabancı anahtar (foreign key) yavru tabloda bulunur ve ana tablodaki birincil anahtar ya da benzersiz kısıt kolonunu referans alır.

Çeşitli amaçlarla tablolardaki verilere farklı ‘bakışlar’ sağlamak isteyebiliriz. Bu durumda görüntüler (views) devreye girer. Onlar sayesinde birden fazla tablodan veri çeken, karmaşık hesaplar yapan, tek tablodan belirli kolonları sadece gösteren vb özel yapılar kurabiliriz.

Bir de tabii nesnelerin davranışları ya da nesneler üzerine davranışlar var. Yani yapılan işler. Bunlarla ilgili de fonksiyon ya da prosedürler yazabilirsiniz veritabanlarında.

Basitçe bir şema örneği işte size. Ah ne güzeldir veritabanlarında çalışmak! Ama aldanmayın. Veriyle ilgili olası tek şema tabii ki bu değil.
Mesela çok boyutlu (multidimensional) sistemlerde tablo diye bir olay yoktur. Hatta tablolu yaklaşımı iki boyut gibi kısıtlayıcı bir geometri olarak görürler. Ya da ilişkiler konusu… GraphDB’ler nesneleri değil nesnelerin ilişkilerini temel yapı olarak alır.

Veri şemalarına kafa yorun, keyiflidir. Ama bence tek bir şemaya sıkışıp kalmayın. Büyük veri, NoSQL zamanlarındayız.

%d blogcu bunu beğendi: