Veri Tabanı Mimarisi Modelleri: Hiyerarşik, Ağ ve İlişkisel Modeller

Veritabanı mimarisinin bazı pano modelleri aşağıdaki gibidir:

Veri elemanlarının kavramsal tasarımını ve aralarındaki ilişkileri tanımlama sürecine veri modellemesi denir. Veri organizasyonuna geleneksel uygulamalar yaklaşımı, her veri dosyası için farklı modeller oluşturdu.

Resim İzniyle: ysma.gr/static/images/6_4_DBinput.jpg

Farklı veri öğelerinin bağlanma ve veri dosyalarında depolanma biçimlerinin çeşitliliği, bu dosyaları yalnızca başlangıçta oluşturuldukları uygulamalar için uygun kılar. Aslında, farklı veri öğelerinin bir dosyaya tam olarak yerleştirilmesine ilişkin detaylar çok dikkatli bir şekilde belgelendirilmelidir.

Çeşitli veri öğelerinin yerleştirilme sırasındaki herhangi bir değişiklik, veri dosyasını kullanarak uygulama programlarında değişikliklere neden olur. Veritabanı yaklaşımı tüm veritabanı için ortak bir veri modeli kullanır ve kullanıcı programı belirli bir veri elemanının yerleştirilmesiyle ilgilenmez. Veri tabanı yönetim sistemi (DBMS), veri tabanı ve kullanıcı programları arasında bir arayüz görevi görür.

DBMS, verileri veritabanından alır ve kullanıcı programı için kullanılabilir duruma getirir. Bu özellik, veritabanı yaklaşımında veri bağımsızlığı avantajını sunar.

Kavramsal olarak, veritabanı modelleriyle ilgili üç geniş seçenek bulunmaktadır. Bunlar:

a. Hiyerarşik model

b. Ağ modeli

c. İlişkisel model

(a) Hiyerarşik model:

Bu model, kullanıcılara bir tür ters çevrilmiş ağaçta temsil edilebilecek veri hiyerarşisinde veri sunar. Bir müşteri siparişi işleme sisteminde, bir müşterinin kendisine fatura edilmiş birçok faturası olabilir ve her bir faturanın farklı veri öğeleri olabilir. Böylece, verinin kök seviyesi müşteri, ikinci seviye fatura, son seviye ise fatura numarası, tarih, ürün, miktar vb. Satır öğeleridir.

Bu yapı olay bakış açısından bakıldığında oldukça doğaldır. Bununla birlikte, düşük seviyeler daha yüksek seviyeli veri elemanlarına aittir ve aynı seviyedeki elemanların hiçbir bağlantısı yoktur. Sonuç olarak, yukarıdaki örnekte hangi müşterinin hangi ürünleri satın alması gibi sorgunun hiyerarşik yapıda gerçekleştirilmesi zor olacaktır.

Hangi müşterinin hangi ürünü satın aldığına dair sorgu uygun olacaktır. Dolayısıyla, iki varlık arasında çoktan çoğa ilişki olduğu durumlarda, bu model uygun olmaz. Şekil 9.4, bir müşteri siparişi işleme uygulaması için verilerin hiyerarşik veri modelini göstermektedir.

(b) Ağ modeli:

Veri tabanı ağ modelinde seviye yoktur ve bir kayıt herhangi bir sayıda sahibine sahip olabilir ve aynı zamanda birkaç kaydın sahibi olabilir. Bu nedenle, müşteri siparişi işlemesinde yukarıda ortaya çıkan sorun ağ modelinde ortaya çıkmayacaktır.

Veri alımı için tanımlanmış kesin bir yol olmadığından, bağlantıların sayısı çok fazladır ve bu nedenle ağ veritabanlarının karmaşık, yavaş ve uygulanması zordur. Uygulamadaki güçlük göz önüne alındığında, ağ modeli yalnızca diğer tüm seçenekler kapalı olduğunda kullanılır.

Bir ağ veritabanının tipik örneği, çalışan ve gelecekte çalıştığı veya birlikte çalışabileceği departman olabilir. Şekil 9.5, bir çalışan bilgi sistemi için veri ağ modelini göstermektedir.

(c) İlişkisel model:

Veri tabanı tasarımının en yeni ve popüler modeli ilişkisel veri tabanı modelidir. Bu model, varlıklar arasında çoktan çoğa ilişkilere sahip veritabanlarının ele alınmasında önceki iki modelin karmaşıklığı ve esnekliği sorunlarının üstesinden gelmek için geliştirilmiştir.

Bu modeller sadece basit değil, aynı zamanda güçlü. İlişkisel veritabanında, her bir dosya çok sayıda satırdan (kayıt) oluşan düz bir dosya (iki boyutlu bir tablo) olarak algılanır, her kayıtta anahtar ve anahtar olmayan veri öğeleri bulunur. Anahtar öğeler, kaydı tanımlayan veri öğeleridir. Şekil 9.6, dosyaları ve her bir kaydın müşteri faturalandırma sisteminde olması gereken alanları göstermektedir.

Bu dosyalarda, anahtar veri kalemleri müşteri kimliği, fatura no ve ürün kodudur. Dosyaların her biri rapor oluşturmak için ayrı olarak kullanılabilir. Bununla birlikte, yukarıda belirtilen anahtar veri öğelerinin yardımı ile tüm bu dosyalar birbirleriyle ilişkili olduğu için, herhangi bir dosya kombinasyonundan da veriler elde edilebilir.

Bu, ilişkisel veritabanı modelinin basitliği ve sağlamlığı ile birlikte temel avantajıdır.

İlişkisel model, iyi bir ilişkisel veritabanının özelliklerini aşağıdaki gibi tanımlayan EF Codd'un çalışmalarından büyük ölçüde yararlanır:

a) Tüm bilgiler mantıksal olarak tablolarla temsil edilir ve verilere erişim alanların isimleriyle mümkündür. Bu nedenle, sıra, pozisyon veya dosya bağlantısı, kullanıcılar için endişe konusu değildir.

b) Veri sözlüğü, veri türünü içeren veri tabanı yapısına ilişkin bilgiye sahiptir; boyut, vb. tanımlar, ilişkiler ve erişim izinleri. Yetkili kullanıcılar veri tabanı ortamını öğrenebilir ve veri açıklama dilini (DDL) kullanarak ortamı değiştirebilir.

c) Veritabanının herhangi bir bölümünün oluşturulması, eklenmesi, değiştirilmesi, geri alınması, düzenlenmesi ve silinmesi için programcılar dahil olmak üzere kullanıcılar için bir veri manipülasyon dili (DML) mevcuttur. Bu manipülasyonlar tüm dosya için olduğu kadar kayıt düzeyinde de mümkündür ve çeşitli kullanıcı kategorileri için erişim izinlerinin tanımlanmasında esneklik sağlar.

d) Veritabanının yapısındaki, tabloyu yatay veya dikey olarak bölme yönündeki herhangi bir değişiklik, veritabanını kullanan programın mantığı üzerinde hiçbir etkiye sahip olmamalıdır. Bu veri bağımsızlığı, ilişkisel veritabanı modelinin temel avantajıdır.

e) Verilerin dağıtılmış bağımsızlığı, iyi bir ilişkisel veritabanının bir başka özelliğidir. Veri ilk dağıtıldığında veya yeniden dağıtıldığında kullanıcı programları herhangi bir değişiklik gerektirmez. Verilerin gerçek fiziksel konumu, söz konusu alan veri sözlüğünde yerel olarak göründüğü sürece kullanıcı için önemli değildir.

Şekil 9.6'dan not edilebileceği gibi, alanlardan hiçbiri, anahtar madde dışında hiçbir iki dosyada ortak değildir. Böylece, veri yedekliliği bu modelde önlenebilir. Bu amaçla, bir veri tabanının yapısını tasarlarken bir veri normalizasyon süreci gerçekleştirilir.