uygulama için en etkin programın yazılmasını sağlar

advertisement
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
Download