05. Veri Tabanı Tasarımı

Transkript

05. Veri Tabanı Tasarımı
License
c
2002-2012
T. Uyar, Ş. Öğüdücü
Veri Tabanı Sistemleri
You are free:
Veri Tabanı Tasarımı
I
I
to Share – to copy, distribute and transmit the work
to Remix – to adapt the work
Under the following conditions:
H. Turgut Uyar
Şule Öğüdücü
I
Attribution – You must attribute the work in the manner specified by the author or licensor (but not in any
way that suggests that they endorse you or your use of the work).
I
I
Noncommercial – You may not use this work for commercial purposes.
Share Alike – If you alter, transform, or build upon this work, you may distribute the resulting work only
under the same or similar license to this one.
2002-2012
Legal code (the full license):
http://creativecommons.org/licenses/by-nc-sa/3.0/
1 / 44
Konular
2 / 44
İşlevsel Bağımlılık
Normalizasyon
Giriş
Normal Formlar
3. Normal Form
Tanım
Varlık/İlişki Modeli
Giriş
V/İ Çizenekleri
I
Z : R bağıntısının bütün nitelikleri kümesi
I
A, B ⊆ Z
I
A, B’yi işlevsel olarak belirliyor: A → B
her A değerine karşılık tek bir B değeri olabilir
I
her işlevsel bağımlılık bir bütünlük kısıtlaması
3 / 44
Örnek Bağıntı
İşlevsel Bağımlılık Örnekleri
Örnek
Örnek
I
MOVIEID → COUNTRY
I
ACTORID → NAME
ORD
I
MOVIEID → {TITLE, COUNTRY, LANGUAGE}
2
1
2
9
14
I
{MOVIEID, ACTORID} → COUNTRY
I
{MOVIEID, ACTORID} → MOVIEID
I
{MOVIEID, ACTORID} → ORD
I
{MOVIEID, ACTORID} → {COUNTRY, ORD}
I
COUNTRY → LANGUAGE
R
MOVIEID
6
228
70
1512
70
I
4 / 44
TITLE
Usual Suspects
Ed Wood
Being John Malkovich
Suspiria
Being John Malkovich
COU
LANG
UK
US
US
IT
US
EN
EN
EN
IT
EN
ACTORID
308
26
282
745
503
NAME
Gabriel Byrne
Johnny Depp
Cameron Diaz
Udo Kier
John Malkovich
varsayım: film hangi ülkede çekildiyse o ülkenin dilinde
5 / 44
6 / 44
İndirgenemez Küme
I
I
Örnek
S: bağıntının bütün işlevsel bağımlılıkları kümesi
T ⊆ S, öyle ki
I
I
I
İndirgenemez Küme Örneği
T olabildiğince az eleman içerir
S’deki her işlevsel bağımlılık T ’dekilerden türetilebilir
işlevsel bağımlılıkların sağ yanlarında tek nitelik yer alsın
I
MOVIEID → TITLE
I
MOVIEID → COUNTRY
I
COUNTRY → LANGUAGE
I
ACTORID → NAME
I
{MOVIEID, ACTORID} → ORD
7 / 44
Bağımlılık Çizeneği
8 / 44
Normal Formlar
Örnek
I
I
1NF, 2NF, 3NF, BCNF, 4NF, 5NF
her form bir önceki formun kapsamını daraltır
I
I
I
bütün 2NF bağıntılar aynı zamanda 1NF
bütün 3NF bağıntılar aynı zamanda 2NF, ...
1NF: nitelik değerleri bölünmezdir
9 / 44
Normalizasyon
10 / 44
Kayıpsız Geçiş Örneği
Örnek
Tanım
normalizasyon:
bir formdan daha dar kapsamlı bir sonraki forma geçiş
I
R1
formlar arası geçişler kayıpsız olmalı
MOVIEID
6
228
70
1512
Teorem (Heath Kuramı)
I
Z : R bağıntısının bütün nitelikleri kümesi
I
A, B, C ⊆ Z
I
A → B ise R bağıntısı {A, B} ile {A, C } bağıntılarının
birleştirilmesiyle elde edilebilir
TITLE
Usual Suspects
Ed Wood
Being John Malkovich
Suspiria
COU
LANG
UK
US
US
IT
EN
EN
EN
IT
I
R2
11 / 44
MOVIEID
ACTORID
6
228
70
1512
70
308
26
282
745
503
NAME
Gabriel Byrne
Johnny Depp
Cameron Diaz
Udo Kier
John Malkovich
R = R1 JOIN R2
ORD
2
1
2
9
14
12 / 44
Kayıplı Geçiş Örneği
Aykırılıklar
Örnek
R1
MOVIEID
TITLE
6
228
70
1512
LANG
UK
US
US
IT
EN
EN
EN
IT
R2
ACTORID
UK
US
US
IT
US
308
26
282
745
503
ekleme
I
silme
I
güncelleme
I
COU
Usual Suspects
Ed Wood
Being John Malkovich
Suspiria
COU
I
NAME
Gabriel Byrne
Johnny Depp
Cameron Diaz
Udo Kier
John Malkovich
I
I
I
R 6= R1 JOIN R2
{MOVIEID, ACTORID} → ORD
I
ORD
2
1
2
9
14
bilinen bir verinin kısıtlamalar nedeniyle tutulamaması
bir veri silinmek istendiğinde başka bir verinin de yitirilmesi
bir veriyi güncellemek için birden fazla çokluda değişiklik
gerekmesi
14 / 44
13 / 44
Aykırılık Örnekleri
2. Normal Form
Tanım
2NF: anahtar olmayan her nitelik birincil anahtara bağımlı
Örnek
I
”Gattaca” filminin ülkesinin US olduğu biliniyor
ama filmde oynayan bir oyuncu olmadıkça eklenemiyor
I
Gabriel Byrne’in ”Usual Suspects” filminde oynadığı silinirse
filmin ülkesinin UK olduğu da siliniyor
I
1NF’den 2NF’ye geçiş
I
1NF’ye uyan bir R bağıntısında:
I
I
”Being John Malkovich” filminin ülkesinin güncellenmesi
iki çokluda değişiklik gerektiriyor
I
R(A, B, C , D), birincil anahtar: {A, B}
A→D
2NF olması için:
I
I
R1(A, D), birincil anahtar: A
R2(A, B, C ), birincil anahtar: {A, B}
A, R1’e başvuran dış anahtar
15 / 44
1NF-2NF Geçişi Örneği
1NF-2NF Geçişi Örneği
Örnek
I
16 / 44
Örnek
anahtar olmayan niteliklerden ORD dışındakiler
birincil anahtara bağımlı değil
I
I
I
I
A:
B:
C:
D:
MOVIEID
ACTORID
{NAME, ORD}
{TITLE, COUNTRY, LANGUAGE}
17 / 44
I
R1(MOVIEID, TITLE, COUNTRY, LANGUAGE)
birincil anahtar: MOVIEID
I
R2(MOVIEID, ACTORID, NAME, ORD)
birincil anahtar: {MOVIEID, ACTORID}
MOVIEID, R1’e başvuran dış anahtar
18 / 44
1NF-2NF Geçişi Örneği
2NF Bağıntı Örnekleri
Örnek
Örnek
I
R2 hala 2NF değil: ACTORID → NAME
I
I
I
I
I
I
A:
B:
C:
D:
R1
ACTORID
MOVIEID
ORD
NAME
MOVIEID
6
228
70
1512
R3(ACTORID, NAME)
birincil anahtar: ACTORID
TITLE
Usual Suspects
Ed Wood
Being John Malkovich
Suspiria
COU
LANG
UK
US
US
IT
EN
EN
EN
IT
R4
R3
ACTORID
R4(MOVIEID, ACTORID, ORD)
birincil anahtar: {MOVIEID, ACTORID}
ACTORID, R3’e başvuran dış anahtar
308
26
282
745
503
NAME
Gabriel Byrne
Johnny Depp
Cameron Diaz
Udo Kier
John Malkovich
MOVIEID
ACTORID
ORD
6
228
70
1512
70
308
26
282
745
503
2
1
2
9
14
20 / 44
19 / 44
Bağımlılık Çizeneği Örneği
2NF Düzelen Aykırılıklar
Örnek
Örnek
I
”Gattaca” filminin ülkesinin US olduğu biliniyorsa
bu bilgi R1 bağıntısına eklenebilir
I
Gabriel Byrne’in ”Usual Suspects” filminde oynadığı silinse de
filmin ülkesinin UK olduğu bilgisi R1 bağıntısında kalır
I
”Being John Malkovich” filminin ülkesini güncellemek için
R1 bağıntısında tek çokluda değişiklik yapmak yeterli
22 / 44
21 / 44
2NF Düzelmeyen Aykırılıklar
3. Normal Form
Tanım
3NF: anahtar olmayan nitelikler birincil anahtar dışında
niteliklere bağımlı değil
Örnek
I
Brezilya’da çekilen filmlerin Portekizce olduğu biliniyor
ama Brezilya’da çekilen bir film olmadıkça eklenemiyor
I
”Suspiria” filmi silinirse İtalya’da çekilen filmlerin
İtalyanca olduğu da siliniyor
I
2NF’den 3NF’ye geçiş
I
2NF’ye uyan bir R bağıntısında:
I
I
Amerika’da çekilen filmlerin dilinin güncellenmesi
iki çokluda değişiklik gerektiriyor
I
3NF olması için:
I
I
23 / 44
R(A, B, C , D), birincil anahtar: A
C →D
R1(C , D), birincil anahtar: C
R2(A, B, C ), birincil anahtar: A
C , R1’e başvuran dış anahtar
24 / 44
2NF-3NF Geçişi Örneği
3NF Bağıntı Örnekleri
Örnek
Örnek
I
R1: COUNTRY → LANGUAGE
I
I
I
I
A:
B:
C:
D:
MOVIEID
TITLE
COUNTRY
LANGUAGE
I
R5(COUNTRY, LANGUAGE)
birincil anahtar: COUNTRY
I
R6(MOVIEID, TITLE, COUNTRY)
birincil anahtar: MOVIEID
COUNTRY, R5’e başvuran dış anahtar
R6
MOVIEID
TITLE
6
228
70
1512
Usual Suspects
Ed Wood
Being John Malkovich
Suspiria
R5
COU
COU
LANG
UK
US
US
IT
UK
US
IT
EN
EN
IT
R4
R3
ACTORID
308
26
282
745
503
NAME
Gabriel Byrne
Johnny Depp
Cameron Diaz
Udo Kier
John Malkovich
MOVIEID
ACTORID
ORD
6
228
70
1512
70
308
26
282
745
503
2
1
2
9
14
26 / 44
25 / 44
Bağımlılık Çizeneği Örneği
3NF Düzelen Aykırılıklar
Örnek
Örnek
I
Brezilya’da çekilen filmlerin Portekizce olduğu biliniyorsa
R5 bağıntısına eklenebilir
I
”Suspiria” filmi silinse de İtalya’da çekilen filmlerin
İtalyanca olduğu R5 bağıntısında kalır
I
Amerika’da çekilen filmlerin dilini güncellemek için
R5 bağıntısında tek çokluda değişiklik yapmak yeterli
28 / 44
27 / 44
Boyce-Codd Normal Formu
BCNF Örneği
Örnek (filmlerin başlık nitelikleri eşsiz)
Tanım
I
BCNF: bütün işlevsel bağımlılıklar anahtar adaylarına
I
anahtar adayları:
I
I
anahtarı oluşturan nitelikler arasındaki bağımlılıklar
dikkate alınmalı
I
aykırı işlevsel bağımlılıklar:
I
I
29 / 44
{MOVIEID, ACTORID}
{TITLE, ACTORID}
MOVIEID → TITLE
TITLE → MOVIEID
30 / 44
Kaynaklar
Varlık/İlişki Modeli
I
modelleme yaklaşımı
I
bileşenleri
Okunacak: Date
I
Chapter 11: Functional Dependencies
I
Chapter 12: Further Normalization I: 1NF, 2NF, 3NF, BCNF
I
I
I
I
Chen 1976
varlıklar
özellikler
ilişkiler
32 / 44
31 / 44
Varlıklar
Varlık Örnekleri
Tanım
Örnek
varlık: aynı özellikleri taşıyan ”şeyler” kümesi
I
varlık: film, kişi
küme elemanları varlık tipinin birer örneği
I
kişi örneği: Johnny Depp
I
güçlü: tek başına var olabilir
I
güçlü varlık: kişi
I
zayıf: varlığı başka bir varlığa bağlı
I
zayıf varlık: film
I
33 / 44
Özellikler
Özellik Örnekleri
Tanım
Örnek
özellik: varlıkları ya da ilişkileri betimleyen veriler
I
basit - bileşke
I
anahtar
34 / 44
I
özellik: başlık, ülke, dil
I
basit: önad, soyad
I
bileşke: tam ad
I
tekli - çoklu değerli
I
boş
I
taban: doğum tarihi
I
taban - türetilmiş
I
türetilmiş: yaş
35 / 44
36 / 44
İlişkiler
İlişki Türleri
Tanım
ilişki: varlıklar arasındaki bağlantılar
I
bire bir
I
katılımcı: ilişkideki varlıklar
I
bire çok
I
derece: katılımcı sayısı
I
çoka çok
I
total - kısmi: bütün örnekler ilişkiye katılıyor - katılmıyor
37 / 44
İlişki Örnekleri
Varlık/İlişki Çizenekleri
Örnek (bire bir)
I
38 / 44
I
varlık: dikdörtgen
I
özellik: elips
I
ülkeler ile şehirler arasındaki başkentlik ilişkisi
I
Örnek (bire çok)
I
I
I
çalışanlar ile projeler arasındaki yöneticilik ilişkisi
I
türetilmiş: kesikli çizgi
çoklu değerli: çift çizgi
bileşke: alt-elipsler
ilişki: eşkenar dörtgen
I
Örnek (çoka çok)
I
zayıf: çift çizgi
I
I
öğrenciler ile dersler arasındaki kayıt ilişkisi
zayıf-güçlü arasında: çift çizgi
total: bağlantı çift çizgi
ilişkinin türüne göre 1 ya da n
40 / 44
39 / 44
Varlık/İlişki Çizeneği Örneği
Varlık/İlişki Çizeneği Örneği
Örnek
Örnek
41 / 44
42 / 44
Tasarıma Geçiş
I
her varlık bir bağıntı
I
her özellik bir nitelik
her çoka çok ilişki bir bağıntı
I
I
I
Kaynaklar
Okunacak: Date
I
katılımcı varlıklara dış anahtarlar
Chapter 14: Semantic Modeling
her bire çok ilişki için ilişkinin ”çok” tarafından
”bir” tarafına dış anahtar
43 / 44
44 / 44

Benzer belgeler

Buradan - Matematik Olimpiyat Okulu • Ana sayfa

Buradan - Matematik Olimpiyat Okulu • Ana sayfa adım da, ilk iki adımın sonuçlandırılma şeklinden bağımsız olarak, 2 farklı yoldan gerçekleştirilebileceğinden, tüm görevler için atama yapılması 4 · 3 · 2 = 24 farklı yoldan yapılabilir. ...

Detaylı