Algoritma Geliştirme ve Veri Yapıları – 2 Veri Modelleri Mustafa Kemal Üniversitesi 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). Mustafa Kemal Üniversitesi Veri Modelleri • 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ı Mustafa Kemal Üniversitesi Veri Modelleri Mustafa Kemal Üniversitesi 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. Mustafa Kemal Üniversitesi Veri Modelleri Mustafa Kemal Üniversitesi 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. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri 2) Ağaç Veri Modeli typedef struct topluluk{ int bilgi; char mesaj[100]; bilgi mesaj sol sag struct topluluk *sol, *sag; }AGAC2 AGAC2 *kok=NULL; • kok değişkeni AGAC2 cinsinden bir işaretçidir. Bu değişken ağacın başlangıç noktası niteliğindedir. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri 3) Graf Veri Modeli • Yalın bir graf, ayrıtları yönlendirilmemiş, ayrıt maliyeti 1 birim olan graftır. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri 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. Mustafa Kemal Üniversitesi Veri Modelleri Mustafa Kemal Üniversitesi 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. Mustafa Kemal Üniversitesi Veri Modelleri Mustafa Kemal Üniversitesi