Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri
Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun veri modelinin seçilmesi ve kullanılması; uygulama için en etkin programın yazılmasını sağlar(etkinlik, hız veya bellek gereksinimi olabilir).
Veri modelleri, tasarımı yapılacak programın en uygun ve en etkin şekilde olmasını sağlar ve daha baştan programın çalışma hızı ve bellek gereksinimi hakkında verir. Bilinen veri modelleri; o Bağlantılı Liste o Ağaç o Graf o Durum Makinası o Veritabanı-İlişkisel o Ağ Bağlantı
Veri Modelleri
1) Liste ve Bağlantılı Liste Veri Modeli Liste veri modeli, aynı kümeye ait olan verilerin bellekte art arda tutulması ilkesine dayanır. En yalın liste veri modeli bir boyutlu dizi üzerinde tutulanıdır. Aksi belirtilmediği sürece listeye eklenen yeni elemanlar listenin sonuna eklenir. Bağlantılı liste ise, elemanların kendi değerlerine ek olarak bir de bağlantı bilgisinin kullanılmasıyla sağlanır, bu bağlantı bilgisi bir sonraki elemanın adresi niteliğindedir.
Veri Modelleri
1) Liste ve Bağlantılı Liste Veri Modeli typedef struct topluluk{ int bilgi; char mesaj[100]; struct topluluk *arka; }BLISTE BLISTE *ilk=null, *son=null; bilgi mesaj bağ BLISTE artık yeni bir veri türüdür ve türleri BLISTE olan iki adet işaretçi tanımlanmıştır. Bu işaretçiler bağlantılı listenin başını tutar.
2) Ağaç Veri Modeli Bu model ters çevrilmiş bir ağaca benzer bir yapıdadır. Özellikle veri kümesinin büyük olduğu ve arama işlemlerinin çok kullanıldığı uygulamalarda etkin bir çözümdür.
2) Ağaç Veri Modeli Ağaç veri modeli düğüm ve dallardan oluşur; düğümlerde verilerin kendileri veya bir kısmı tutulurken, dallar diğer düğümlere olan bağlantı ilişkilerini gösterir. En üstteki düğüm kök, kendisine alttan hiçbir bağlantının olmadığı düğüm yaprak, diğerleri de ara düğüm olarak adlandırılır. Uygulamada en çok kullanılan iki tanesi ikili ağaç ve sözlük ağacıdır. Veritabanı yönetim sisteminden sıkıştırma algoritmalarına, oyun programları, işletim sistemlerindeki dosya organizasyonu gibi birçok uygulamada ağaç veri modeli algoritmik çözüm sunar.
2) Ağaç Veri Modeli typedef struct topluluk{ int bilgi; char mesaj[100]; struct topluluk *sol, *sag; }AGAC2 AGAC2 *kok=null; bilgi mesaj sol sag kok değişkeni AGAC2 cinsinden bir işaretçidir. Bu değişken ağacın başlangıç noktası niteliğindedir.
2) Ağaç Veri Modeli Oluşturulan yapı ikili ağaç niteliğindedir, ancak kok=null yapıldığı için ağaçta hiçbir düğüm yoktur. İlk yapılacak işlem ağaca düğüm ekleyecek algoritmanın tasarlanmasıdır. Bunun için her şeyden önce sıralamada kullanılacak olan anahtar sözcüğün belirlenmesidir. Bu yapıda bilgi adlı değişken anahtar sözcüktür. Ekleme, silme, arama gibi işlemler bu anahtar sözcüğe göre yapılacaktır.
3) Graf Veri Modeli Graf veri modeli; aynı kümeye ait olan verilerin düğümler, ayrıtlar ve bunların birleşmesinden oluşur. Düğümler birleşme noktasını ayrıtlar ise düğümlerin bağlantı ilişkisini gösterir. Verilerin kendileri veya bir kısmı hem düğümlerde hem de ayrıtların bilgi kısmında tutulabilir. Yalın bir graf üzerindeki bir ayrıt, doğrudan iki düğüm arasındaki bağlantıyı gösterir; aksi belirtilmedikçe bağlantı iki yönlüdür.
3) Graf Veri Modeli Yalın bir graf, ayrıtları yönlendirilmemiş, ayrıt maliyeti 1 birim olan graftır.
3) Graf Veri Modeli Graf veri modelinde ağaçta olduğu gibi hiyerarşik bir durum yoktur ve her düğüm eşit hiyerarşidedir. Yönlendirilmiş, maliyetli, Hamilton vb. benzer bir çok özel graf tanımı vardır. Kullanım alanlarına örnek olarak; bir şehrin trafik veya su taşıma altyapısından en yüksek akışın sağlanması, taşıma şirketleri için en verimli taşıma, ağ bağlantılarında yüksek başarım elde edilmesi vb.
4) Durum Makinası Veri Modeli Durum makinası veri modeli, bir sistemin davranışını tanımlamak ve ortaya çıkarmak için kullanılan bir yaklaşım şeklidir; derleyici/yorumlayıcılarda, kontrol amaçlı yazılımlarda sistemin davranışını durumlara indirger ve durumlar arası geçiş koşulları ile sistemi ortaya koyar. Kullanım alanlarına örnek olarak; robot kolunun hareketi, şifre çözme, gerçek zamanlı işletim sistemlerinde proses kontrolü vb.
4) Durum Makinası Veri Modeli Durum makinası veri modeli şeklen yönlü graflara benzer. Ancak; bu yapıda birleşme noktaları durum, ayrıtlar da geçiş eğrileri olarak adlandırılır.
4) Durum Makinası Veri Modeli Durum makinası veri modelinde durumlar arasındaki geçişler, sistemin o ana kadar ki durumlarına ve giriş parametrelerine bağlıdır. Durum makinası veri modelinde bir başlangıç durumu vardır. Olay ilk olarak bu durumdan başlar ve diğer durumlara geçiş, sistem davranışını ortaya koyar. Eğer yapıda bir de son durum varsa bu yapı sonlu durum makinası olmuş olur.
5) Veritabanında İlişkisel Veri Modeli Bu veri modeli, tablolar üzerinde kurulan ilişkilere dayanmaktadır. Access, Microsoft SQL, ORACLE, SYBASE, Ingres gibi birçok veritabanı yönetim sistemi ilişkisel veri modelini desteklemektedir. Veritabanı yönetim sistemleri, veritabanı oluşturma, tablo yaratma-silme, alanları tanımlama gibi işlerin gerçekleştirilmesini sağlar.
Veri Modelleri
6) Ağ Veri Modeli Ağ veri modeli, modern katmanlı ağ mimarilerinde, bilgisayar sistemleri arasındaki eş katmanlar düzeyinde veri alış-verişini sağlayan dilim, paket ve çerçeve yapılarını ortaya koyar ve iletişim için gerekli davranışı ortaya tanımlar. Veri haberleşmesinde çoğu mimariler katmanlı yapılardır; mimarilere örnek temsil eden OSI başvuru modeli 7, TCP/IP protokol kümesi 4 katmanlıdır. Ağ yazılımı, ağ üzerindeki farklı bilgisayarların veya aynı bilgisayar üzerindeki farklı uygulamaların birbirleri ile etkileşim içerisinde karşılıklı olarak çalışmasını ve veri alışverişini sağlar. Ağ yazılımı doğrudan o protokol kümesinin sunduğu yapı ve hizmetler üzerinden yapılır. Bir protokol kümesi için geliştirilmiş bir program başka bir protokol kümesi altında çalışamaz.
Veri Modelleri