Flat-File Database (Düz Dosya Veritabanı), Hierarchical Database (Hiyerarşik Veritabanı) ve Relational Database (İlişkisiel Veritabanı) Nedir? Farkları Nelerdir?

Flat-File Database (Düz Dosya Veritabanı), Relational Database (İlişkisiel Veritabanı) ve Farkları

Flat-File Database (Düz Dosya Veri tabanı) Nedir?

  • Düz Dosya veri tabanları, tüm verilerini yalnızca tek bir tabloda tutar.
  • Yalnızca çok basit veri tabanları için uygundurlar.
  • Aşağıda ki Hasta veri tabanı, tüm bilgiler tek bir tabloda saklandığından düz dosya örneğidir:
Hasta IdAdıD. TarihiCinsiyetiTelefonDr IdDr. AdıOda
153Fatih31.03.1987Erkek554777668801Dr Kerem03
178Davud08.10.1987Erkek555888559902Dr Jale06
198Leyla18.09.1979Kadın544122455301Dr Kerem03
210Fırat29.05.1983Erkek555866872201Dr Kerem03
258Rabia8.10.1987Kadın555877862103Dr Burak07
Hasta Veri Tabanı

Düz Dosya Veri tabanının Sınırlamaları

Düz dosya veri tabanlarını kullanmayla ilgili sorunlar aşağıdaki gibidir:

  • Yinelenen Veriler genellikle gereksiz yere girilir.
  • Bu yinelenen verilerle veri tabanı alanı boşa harcanır.
  • Yinelenen Verilerin girilmesi ve güncellenmesi uzun zaman alır.

BU SORUNLAR İKİ KELİME İLE ÖZETLENEBİLİR: VERİ FAZLALIĞI!

Veri Fazlalığı Nedir?

Veri Fazlalığı, aynı verileri birçok kez (yinelenen veriler) tablonuzda sakladığınız yerdir.

Bu tekrarlanan verilerin tekrar tekrar girilmesi gerekir ve bu da uzun zaman alır.

Örnek: Hasta veritabanı, birkaç yinelenen veri girişi içerir:

  • Dr Id
  • Dr Adı
  • Oda
Hasta IdAdıD. TarihiCinsiyetiTelefonDr IdDr. AdıOda
153Fatih31.03.1987Erkek554777668801Dr Kerem03
178Davud08.10.1987Erkek555888559902Dr Jale06
198Leyla18.09.1979Kadın544122455301Dr Kerem03
210Fırat29.05.1983Erkek555866872201Dr Kerem03
258Rabia8.10.1987Kadın555877862103Dr Burak07
Hasta Veri Tabanı

Bir veri tabanı içinde gereksiz yere çoğaltılan veriler kötü bir uygulamadır. Tüm veri tabanında Dr Kerem atanmış 100 hastamız olsaydı. Doktor Kimliği, Adı ve Oda Numarası 100 ayrı kez girilmelidir.

Veri Fazlalığının Çözümü Nedir?

Düz dosya veritabanları ile gelen veri fazlalığı sorunlarından kaçınmanın yolu ilişkisel bir veri tabanı oluşturmaktır.

Relational Databases (İlişkisel Veri Tabanı) Nedir?

  • İlişkisel Veritabanları birbirine bağlı iki veya daha fazla tablo kullanır.
  • İlişkisel Veritabanları, tüm verileri aynı tabloda saklamaz.
  • Tekrarlanan veriler aşağıdaki örnekte gösterildiği gibi kendi tablosuna taşınır:
Hasta IdAdıD. TarihiCinsiyetiTelefonDr Id
153Fatih31.03.1987Erkek554777668801
178Davud08.10.1987Erkek555888559902
198Leyla18.09.1979Kadın544122455301
210Fırat29.05.1983Erkek555866872201
258Rabia8.10.1987Kadın555877862103
Hasta Tablosu
Dr IdDr. AdıOda
01Dr Kerem03
02Dr Jale06
Doktor Tablosu

İlişki Nedir?

  • İki tablomuz birleştirildiğinde bir ilişki oluşur.
  • İlişkiler, iki tablonun birbiriyle iletişim kurmasına ve verilerini paylaşmasına izin vermek için anahtar alanları ve birincil anahtarları kullanır.
  • Anahtar alanlar, aşağıdaki resimde gösterildiği gibi bir birincil anahtar kullanılarak tanımlanır.
Hasta Id (Anahtar)AdıD. TarihiCinsiyetiTelefonDr Id
153Fatih31.03.1987Erkek554777668801
178Davud08.10.1987Erkek555888559902
198Leyla18.09.1979Kadın544122455301
210Fırat29.05.1983Erkek555866872201
258Rabia8.10.1987Kadın555877862103
Hasta Tablosu
Dr Id (Anahtar)Dr. AdıOda
01Dr Kerem03
02Dr Jale06
Doktor Tablosu

Tablolar birbirine bağlandıktan sonra, her biri diğerinden veri okuyabilir.

Bu, birçok ayrı veri giriş yerine her doktorun ayrıntılarını yalnızca bir kez girmemiz gerektiği anlamına gelir.

Not: Bağlantı (ilişki) oluşturulduğunda her hastayı doktor tablosunda doğru Doktor ve Oda Numarası ile eşleştirebileceğiz.

İlişkiyi nasıl oluşturuyorsunuz? (tabloları bağlayın)

Tabloları birbirine bağlamak için ortak bir alan kullanmamız gerekiyor.

Ortak bir alan, HER İKİ tablolarda da görünen verilerdir.

Aşağıdaki resme bakarsanız, hasta veritabanındaki ortak alanın Dr. Id olduğunu göreceksiniz:

Hasta IdAdıD. TarihiCinsiyetiTelefonDr Id
153Fatih31.03.1987Erkek554777668801
178Davud08.10.1987Erkek555888559902
198Leyla18.09.1979Kadın544122455301
210Fırat29.05.1983Erkek555866872201
258Rabia8.10.1987Kadın555877862103
Hasta Tablosu
Dr IdDr. AdıOda
01Dr Kerem03
02Dr Jale06
Doktor Tablosu

Bu aşamada aşağıdakileri fark etmiş olabilirsiniz:

  • Doktor Tablosu – Ortak alan (Doktor Kimliği) anahtar alan olarak ayarlanır.
  • Hasta Tablosu – Ortak alan, anahtar alan olarak ayarlanmamıştır.

Anahtar alanlar olarak kullanılmayan ortak alanlar, yabancı anahtarlar (Foreign Key) olarak bilinir.

Yabancı anahtar (Foreign Key) nedir ve ne için kullanılır?

  • Yabancı anahtar, bir tablodaki normal bir alandır ve başka bir tabloda anahtar alanı olarak kullanılır.
  • Tablolar arasındaki bağlantıyı (ilişkiyi) sağlamak için yabancı anahtarlar kullanılır.
Hasta IdAdıD. TarihiCinsiyetiTelefonDr Id (Foreign Key)
153Fatih31.03.1987Erkek554777668801
178Davud08.10.1987Erkek555888559902
198Leyla18.09.1979Kadın544122455301
210Fırat29.05.1983Erkek555866872201
258Rabia8.10.1987Kadın555877862103
Hasta Tablosu
Dr Id (Primary Key)Dr. AdıOda
01Dr Kerem03
Doktor Tablosu

Örnek: Hasta veritabanımızda Doktor Kimliği, Doktor Tablosunda bir anahtar alandır, ancak aynı zamanda Hasta Tablosunda yabancı anahtar olarak da kullanılmaktadır:

Yabancı anahtar (hasta tablosundaki Doktor Kimliği) daha sonra birincil anahtarla (doktor tablosundaki Doktor Kimliği) eşleştirmek ve doğru verileri paylaşmak için kullanılabilir.

Not: Artık iki tablomuzu birbirine bağladığımıza göre doktor bilgilerimizi çok hızlı bir şekilde güncelleyebiliriz.

Dr Kerem oda numarasını 02 olarak değiştirmişse, doktor masasında bu bilgiyi sadece bir kez değiştirmemiz yeterlidir. Yeni oda, Dr Hyde’ın bakımı altındaki her hastaya otomatik olarak atanacaktı.

İlişkisel Veritabanı kullanmanın faydaları

Düz dosya veritabanı yerine ilişkisel veritabanı kullanmanın avantajları şunlardır:

  • Yinelenen Veriler azaltılır.
  • Veritabanı alanı boşa harcanmaz (gereksiz yinelenen veriler nedeniyle.)
  • Daha az kopya olduğu için Veri girmek daha hızlı.
  • Daha az kopya olduğu için Veri girmek daha hızlı.

Hierarchical Database (Hiyerarşik Veritabanı)

Hiyerarşik veri modeli, en eski veri modeli türüdür. 1968 yılında IBM tarafından geliştirilmiştir. Verileri ağaç benzeri bir yapıda düzenler. Hiyerarşik model aşağıdakilerden oluşur:

  • Dallarla birbirine bağlanan düğümleri içerir.
  • En üstteki düğüme kök düğüm denir.
  • En üst düzeyde görünen birden fazla düğüm varsa, bunlara kök segmentler denilebilir.
  • Her düğümün tam olarak bir ebeveyni vardır.
  • Bir ebeveynin birçok çocuğu olabilir.
Hiyerarşik Veritabanı

Yukarıdaki şekilde Elektronik, Televizyon ve Taşınabilir Elektronik Cihazlar olmak üzere iki çocuğu olan bir kök düğümdür. Bu ikisinin ebeveyn olarak hareket ettikleri başka çocukları da vardır. Örneğin Televizyonun LCD ve Plasma gibi çocukları vardır, çünkü bu ikisi Televizyon ebeveyn olarak hareket eder. Bire çok ilişkiyi takip eder.

Hiyerarşik ve İlişkisel Veri Modeli Arasındaki Fark:

Hiyerarşik ModelRelational Model
Bu modelde veri depolamak için hiyerarşi yöntemi kullanılmaktadır. En eski yöntemdir.En esnek ve verimli veritabanı modelidir. Günümüzde en çok kullanılan veritabanıdır.
1:1 ve 1:n uygular.1:1 ve 1:n’ye ek olarak, çoktan çoğa ilişkileri de uygular.
Kayıtları düzenlemek için bir ağaç yapısı kullanır.Kayıtları düzenlemek için bir tablo kullanır.
Daha fazla karmaşıklık şansı.Karmaşıklık şansı yok.
Bildirime dayalı sorgu tesisi eksikliği var. Şu anda NoSQL kullanılarak modelleniyorlar.SQL kullanarak bildirimsel sorgulama olanağı sağlar.
Kayıtlar işaretçiler yardımıyla birbirine bağlanır.Kayıtlar, satırlar ve sütunlar yardımıyla birbirine bağlanır.
Bu modelde ekleme anomalisi çıkıyor, yani alt düğüm, ana düğüm olmadan eklenemez.Ekleme anomalisi yoktur.
Bu modelde silme anomalisi mevcuttur, yani ana düğümü silmek zordur.Silme anormalliği yok.
Bu model veri bağımsızlığından yoksundur.Bu model veri bağımsızlığı sağlar.

Popüler hiyerarşik veritabanları

En popüler hiyerarşik veritabanları IBM Information Management System (IMS) ve RDM Mobile’dır. Windows Kayıt Defteri, hiyerarşik bir veritabanı sisteminin gerçek dünyadaki kullanım durumlarının başka bir örneğidir.

XML ve XAML, hiyerarşik veri modeline dayanan, daha popüler ve en yaygın kullanılan iki veri deposudur. XML ve XAML’de her dosya, bir veya daha fazla alt düğüm olabilen bir kök düğümle başlar. Her alt düğümün bir veya daha fazla alt düğümü olabilir ve bu böyle devam eder.

Aşağıda, kataloğun kök düğüm olduğu bir XML dosyası örneği verilmiştir.