veri tabanı tasarımı

advertisement
Veritabanı: Herhangi bir konuda, birbiri ile ilgili verilerin sistematik şekilde saklandığı
modellerdir. Nüfus, Okul, Banka, ERP vb.
Veritabanı yönetim sistemi: Veritabanı oluşturmak, tablo oluşturmak, veri girişi
yapmak, verileri aramak, verilerden bilgi (veya yeni veri) elde etmek, verileri güncellemek, verileri
silmek, yetkilendirme, güvenlik, bakım gibi işlemlerin yapılabildiği yazılımlardır.
SQL (1980), T-SQL, PL/SQL
MySQl, MsAccess, MsSQL, DB2, PostgreSQL, Oracle vb.
Metin, Ses, Resim, Grafik, Video (çoklu ortam VTYS)
VTYS Avantajları:










Veri tekrarı önlenir (maliyet de azalma)
Veriler üzerinde işlemler kolayca yapılabilir (SQL)
Veri aynı anda birçok yerde güncellenebilir (tutarlılık - cascade)
İşlemler dosya sistemine göre daha hızlıdır
Standartlaşma sağlanır
Uygulama programlarından bağımsız olarak veri tabanı oluşturulabilir
Dil zorunluluğu/Erişim
Güvenlik
Yedekleme/Bakım
İzin/Yetki (paylaşım – aynı anda erişim)
VTYS Dezavantajları:


İyi tasarlanmamış
Bakım zor ve pahalı
Veri Modellerine göre VTYS
Hiyerarşik (veri tekrarı)

Veritabanındaki kayıtlar birbirlerine ebeveyn – çocuk ilişkisi ile bağlıdır
o Veri tekrarı 
o Veri kaybı 
Ağ (karmaşık)


Hiyerarşik modelin geliştirilmiş şeklidir
İlişki hiyerarşik yapıdan farklı olarak tek yönlü değildir
o böylece veri tekrarı önlenir
o fakat daha karmaşık bir model oluşur
İlişkisel



Veriler, satır ve sütun olmak üzere iki boyutlu tablolarda saklanır
Tablolar arasındaki bağlantı, tablolar arasındaki ilişkiler ile sağlanır
Tasarlamak ve yazılımlardan erişmek daha kolaydır
Nesne (esnek yapı, hız)


Veriler sınıflar halinde saklanır
Sınıfların özellikleri ve davranışları vardır
İlişkisel veritabanı modelinde veriler, satır ve sütun olmak üzere iki boyutlu tablolarda saklanır.
Tablolar arasında geçiş fonksiyonları tablolar arasındaki ilişkiler ile kurulur. Tasarlamak ve
uygulama programından veritabanına erişmek kolaydır. Nesne Tabanlı veritabanı modelinde
veriler sınıflar halinde saklanır. İlişkisel veritabanı modelinde yazılan sorguların sözdizimi Visual
Studio gibi program geliştirme ara yüzünde kontrol edilemez iken Nesne Tabanlı veritabanı
modelinde yazılan sorguların sözdizimi Visual Studio gibi program geliştirme ara yüzünde kolayca
yönetilebilir. Nesne Tabanlı veritabanı modelinde veritabanında yapılacak oluşturma, silme,
değiştirme gibi işlemler uygulamadan bağımsız yapılamaz iken, İlişkisel Veritabanı modelinde
veritabanında yapılacak bu işlemler uygulamadan tamamen bağımsız gerçekleştirilebilir. Nesne
Tabanlı veritabanı modelinde, uygulama yazılımında yapılacak, veritabanı objeleri oluşturma,
silme, değiştirme vb. işlemler sonucu, uygulama yazılımının yeniden derlenmesi zaman kaybına
neden olurken, İlişkisel veritabanı modelinde mapping zaman kaybına neden olmaktadır. Nesne
Tabanlı veritabanı modelinde uygulama yazılımının içerisinde yazılan sorgu veritabanının türüne
(Oracle, MSSQL, MySQL vb) bağlı değil iken, İlişkisel veritabanı modelinde uygulama yazılımının
içerisinde yazılan sorgunun sözdizimi veritabanının türüne göre farklılaşabilir.
Kavramlar:

Tablo, Alan, Veri, Kayıt, Anahtar Alan, İlişki (Örneğin Okul Veritabanı)

Şema, Tablo,View, Prosedür, Kullanıcı
VERİ TABANI TASARIMI





İleride çıkabilecek sorunlar dikkate alınmalıdır
Değişik yerlerde kullanılabilme esnekliği olmalıdır
Fazladan tablolar, alanlar tanımlanabilir
Standartlaşma sağlanmalıdır
Verilerden elde edilen veriler olabilir
Varlık: Tablo haline getirilecek yapılardır. Her bir varlık bir tablo haline getirilir.
Nitelik: Bir varlığı tanımlar. Niteliğin ismi varlıkta (mümkünse veritabanı modelinde) eşsiz (tek) ve
anlaşılır (anlamlı) olmalıdır. Her nitelik bir alan ismi olur.
Anahtar Nitelik: Varlığın her bir örneği eşsiz olmalıdır. Bunun için bir anahtar nitelik
kullanılabileceği gibi birden fazla nitelik de beraberce anahtar nitelik oluşturabilirler. Anahtar nitelik
yok ise mutlaka oluşturulmalıdır. Anahtar nitelik birincil anahtar olabilir.
NORMALİZASYON KURALLARI





Tabloda tekrar eden veriler olmamalı, veri uyumsuzluğu bulunmamalıdır (Alpaslan –
Alparslan, 54 - Sakarya)
Her tabloda tek bir varlığın verileri saklanmalıdır (öğrenci notlarının bulunduğu tabloda,
dersin sınıf bilgisi bulunmamalıdır)
Tablodaki her alan tek bir veriyi göstermelidir.
Her tabloda, o tablodaki kayıtları eşsiz yapacak bir alan bulunmalıdır
Tablolarda boş değer (null) taşıyan alanlar mümkün olduğunca az olmalıdır.
Birinci normal durum:




Tekrar eden alan yok
Her varlık ayrı bir tabloda
Her tabloda bir birincil anahtar alan var
Tablodaki her hücre tek bir veri saklar (bir hücrede birden fazla öğrenci notu yok)
Kaynak: T.C. Millî Eğitim Bakanlığı Bilişim Teknolojileri Veri Tabanı Tasarımı 481bb0124
Ders Notları
İkinci normal durum:


Her varlık ayrı bir tabloda
Tablolar yabancı anahtarlar ile ilişkilendirilir
Kaynak: T.C. Millî Eğitim Bakanlığı Bilişim Teknolojileri Veri Tabanı Tasarımı 481bb0124
Ders Notları
Üçüncü normal durum:


Tablodaki alanlar birincil anahtar ile ilişkilidir
Birincil anahtar ile ilişkili olmayan alanlar diğer alanlardan elde edilebilirler (bu olay
gerçekleştirilemiyorsa, bu alanlar oluşturulan başka bir tabloya aktarılırlar)
Kaynak: T.C. Millî Eğitim Bakanlığı Bilişim Teknolojileri Veri Tabanı Tasarımı 481bb0124
Ders Notları
VARLIK İLİŞKİ DİYAGRAMI
VARLIK
İLİŞK
İ
NİTELİK
ANAHTAR
NİTELİK
İLİŞKİLER
1
1
Kaynak: Veritabanı Tasarımı ve Yönetimi, Uzm. Murat YAZICI
Kaynak: Veritabanı Ders Notları, Yrd.Doç.Dr. Buket Doğan
∞
1
TÜRETİLEN
NİTELİK
Kaynak: Veritabanı Tasarımı ve Yönetimi, Uzm. Murat YAZICI
Kaynak: Veritabanı Ders Notları, Yrd.Doç.Dr. Buket Doğan
∞
1
Kaynak: Veritabanı Ders Notları, Yrd.Doç.Dr. Buket Doğan
∞
∞
Kaynak: Veritabanı Tasarımı ve Yönetimi, Uzm. Murat YAZICI
Kaynak: Veritabanı Tasarımı ve Yönetimi, Uzm. Murat YAZICI
Zayıf Varlık: Varlığı diğer bir varlığa bağlı olan varlıklardır. Niteliklerinin tümü bile bir anahtar alan
oluşturamaz. Örneğin fakülteler farklı üniversitelerde aynı isimlerde bulunabilirler. Bu nedenle
fakülteler üniversitelere bağlı zayıf varlık kümeleridirler.
Kaynak: Veritabanı Tasarımı ve Yönetimi, Uzm. Murat YAZICI
VARLIK İLİŞKİ DİYAGRAMLARININ İLİŞKİSEL VERİTABANINA
DÖNÜŞTÜRÜLMESİ

Varlık ilişki modelindeki her varlık için bir tablo oluşturulur.

Eğer varlıkta en az bir anahtar var ise, varlığın nitelikleri direk tablo alanı olarak gösterilir.
OGRENCI (OgrNo, Ad, Soyad)
DERS (DersKod, DersAd, Kredi)

Eğer varlığın anahtar niteliği yok ise (tüm nitelikler birlikte kullanıldığında bile eşsiz kayıt
oluşmuyor ise), bu zayıf varlığın niteliklerini tablo alanı olarak oluşturmak yeterli olmayacaktır.
Bu durumda tablo alanları oluşturulurken, zayıf varlığın tablodaki alanlarına ek olarak, zayıf
varlığın bağımlı olduğu güçlü varlıktan anahtar nitelik de alan olarak bu tabloya eklenir.
UNIVERSITE (UniKod, UniAd, UniSehir)
FAKULTE (UniKod, FakulteNo, FakulteAd, FakulteYil)

Varlık ilişki diyagramındaki her ilişkinin tabloya dönüştürülmesi şart değildir. Eğer ilişki bire –
bir veya bire – çok ise, varlıklardan birinin anahtar niteliği diğer tablonun alanlarına eklenir.
Yalnızca çoka – çok ilişkiler için tablo oluşturulur.
SATTIĞI (MAĞNO, ÜRÜNKODU, MİKTAR)
Kaynak : VERİ TABANI YÖNETİMİ, Yrd. Doç. Dr. Altan MESUT, Trakya Üniversitesi, Bilgisayar
Mühendisliği

Eğer bir ilişki, ikiden çok varlık arasında kurulmuş ise, oluşturulan tabloya (ikiden çok varlık
arasındaki ilişki için mutlaka tablo oluşturulmalıdır) her varlığın anahtar niteliğine ek olarak
ilişkinin nitelikleri de alan olarak eklenir.
KONSER (KONSNO, TARİH, SALON)
MÜZİSYEN(MZSNO, ADI, SOYADI)
ESER (ESNO, ESADI, BESTECI, ESTÜRÜ)
KATILIM(KONSNO, MZSNO, ESNO, GÖREVİ)
Dikkat : Yukarıdaki varlıkların ikili ilişkilerinin tamamı çoktan – çoka.
Kaynak : VERİ TABANI YÖNETİMİ, Yrd. Doç. Dr. Altan MESUT, Trakya Üniversitesi, Bilgisayar
Mühendisliği

Birden – çoka veya çoktan – bire (bir yönde işlevsel) ilişkisi olan iki varlık tablolara
aktarılırken, ilişki için yeni bir tablo oluşturmaya gerek yoktur.
Kaynak : VERİ TABANI YÖNETİMİ, Yrd. Doç. Dr. Altan MESUT, Trakya Üniversitesi, Bilgisayar
Mühendisliği
BÖLÜM (BNO, BADI)
PERSONEL (PNO, ADI, SOYADI, DOĞTAR, BNO, GÖREVİ, GBAŞTAR)

Bire – bir ilişki olan (ilişki her iki yönde de işlevsel) iki varlık tabloya aktarılırken, ilişki için yeni
bir tablo oluşturmaya gerek yoktur. Varlıklardan birinin anahtar niteliği, ilişkinin nitelikleri ile
beraber, diğer varlığın tablosuna alan olarak eklenmelidir. Hangi varlığın anahtar niteliğinin
diğer varlığın tablosuna ekleneceği, iki varlık arasındaki ilişkinin anlamına göre seçilebilir.
BÖLÜM (BNO, BADI)
PERSONEL (PNO, ADI, SOYADI, DOĞTAR, BBNO, GBAŞTAR)
Dikkat : BBNO, Başkan olunan bölümün numarası.
Ya da
BÖLÜM (BNO, BADI, BPNO, GBAŞTAR)
PERSONEL (PNO, ADI, SOYADI, DOĞTAR)
Dikkat : BPNO, Bölümün başkanının personel numarası.

Varlığın kendisine de ilişki tanımlanabilir. Bu varlık ilişki diyagramının ilişkisel veritabanına
dönüştürme işlemi, birden çok varlık arasındaki ilişkinin ilişkisel veritabanına dönüştürülme
işlemleri ile benzerdir.
PERSONEL (SİCİLNO, ADI, GBAŞTAR, GÖREVİ, BÖLÜMÜ, YSİCİLNO)
ÜRÜNLER(Ürün ID, Ürün Adı, Alış Fiyatı, Satış Fiyatı, Kategori ID, Firma ID)
KATEGORİLER(Kategori ID, Kategori Adı, KDV Oranı)
FİRMALAR(Firma ID, Firma Adı, Telefon, Adres)
MÜŞTERİLER(Müşteri ID, Adı, Soyadı, Adresi, Telefonu)
SİPARİŞLER(Sipariş ID, Müşteri ID, Tarih)
SİPARİŞ_DETAY(Sipariş ID, Ürün ID, Adet)
Kaynak: Veritabanı Tasarımı ve Yönetimi, Uzm. Murat YAZICI
İLİŞKİSEL CEBİR
İlişki – Tablo
Herhangi bir yorumlayıcıya gerek olmadan, biçimsel olarak yapılan sorgulamadır.
Kaynak: http://e-bergi.com/y/Iliskisel-Cebir
Seçme (Selection)
Bir tablodan belirli kriterlere göre bazı kayıtları seçme sorgusudur. Sonuçta tekrarlar yoktur. Sonucun
yapısı kaynağın yapısı ile aynıdır. Sonuç başka bir ilişkisel cebir işlemi için kaynak olarak kullanılabilir.
σyil<2001(Ogrenci)
σders=mat191Λogretmen=s1112(OgrenciDers)
Yansıtma (Projection)
Bir tablodan istenilmeyen özeliklerin ve tekrarlı kayıtların çıkarıldığı sorgudur.
πOgrNo, OgrAd, OgrSoyad, mail(Ogrenci)
πOgrNo, OgrAd, OgrSoyad, mail(σyil<2001(Ogrenci))
Birleşim (Union)
Özellik sayıları aynı olan, aynı sıradaki özelliklerinin veri tipleri de aynı olan tablolar üzerinde
uygulanabilir. Tablo1 υ Tablo2
πOgrNo, OgrAd, OgrSoyad, mail(Lise) υ πOgrNo, OgrAd, OgrSoyad, mail(Dershane)
Kesisim (Intersection)
Özellik sayıları aynı olan, aynı sıradaki özelliklerinin veri tipleri de aynı olan tablolar üzerinde
uygulanabilir. Tablo1 ηTablo2
πOgrNo, OgrAd, OgrSoyad, mail(Lise) η πOgrNo, OgrAd, OgrSoyad, mail(Dershane)
Fark (set – difference)
Özellik sayıları aynı olan, aynı sıradaki özelliklerinin veri tipleri de aynı olan tablolar üzerinde
uygulanabilir. Tablosonra – Tabloonce
πOgrNo, OgrAd, OgrSoyad, mail(KayitSon) - πOgrNo, OgrAd, OgrSoyad, mail(KayitOnce)
Kartezyen Çarpım (Cross – product) (χ)
Farklı iki tabloya uygulanır. Kartezyen çarpımı işlemi yapılır. Tablo1 χ Tablo2
Tablo1
A
B
a
1
b
2
Tablo2
C
c
d
e
D
1
2
3
E
f
g
h
Tablo1 X Tablo2
A
B
C
a
1
c
a
1
d
a
1
e
b
2
c
b
2
d
b
2
e
D
1
2
3
1
2
3
E
f
g
h
f
g
h
Şartlı Birleştirme (Conditional Join)( (⋈c)
İkili bir işlemdir. İki tabloda en az 1 ortak alan olmalıdır.
Eşit Birleştirme (Equijoin)( ⋈e)
Doğal Birleştirme (Natural Join)( ⋈)
Bölme (Division)
İkili bir işlemdir. İki tabloda en az 1 ortak alan olmalıdır.
Download
Study collections