Download as pdf or txt
Download as pdf or txt
You are on page 1of 69

VERİTABANI YÖNETİM SİSTEMLERİ

BÖLÜM -4-
NORMALİZASYON
3

Genel Bakış…
• Veritabanı tasarım aşamaları,
• Normalizasyon,
• Örnek veritabanı.
4

4.1. Veritabanı Tasarım Aşamaları

Kavramsal Kavramsal Şema Mantıksal Mantıksal Şema


Tasarım (Varlık-İlişki Modeli) Tasarım (İlişkisel Model)

Varlık-İlişki Çizelgesi Normalizasyon


Oluşturma (Tasarımı İyileştirme)
5

4.2. Normalizasyon
• Normalleştirme, bir veritabanında veri kayıplarını engellemek,
verinin tekrarını azaltmak, silme, güncelleme ve ekleme
işlemlerinde ortaya çıkan zorlukları en aza indirmek için
yapılan işlemler topluluğudur.
• Normalizasyon tanım olarak; veritabanında çok fazla satır ve
sütundan oluşan bir tabloyu tekrarlardan arındırmak için daha
az satır ve sütun içeren alt kümelerine ayrıştırma işlemidir.
• Normalleştirmenin altyapısı da, ilişkisel modelin altyapısı gibi
matematikseldir. Temel alınan kavram, işlevsel bağımlılık
(functional dependency) denilen bir kavramdır.
6

4.2. Normalizasyon (devam…)

• İlişkisel bir veritabanı oluşturmak için


normalleştirmeyi çok iyi bilmek gerekir.
Normalleştirmenin diğer bir amacı da,
veritabanına etkinlik kazandırmaktır.

• Normalizasyon işlemi bir veritabanı


tasarlanırken başlı başına bir işlemdir.

• Normalizasyon gerçekleştirilirken bir


takım kurallar göz önüne alınarak
gerçekleştirilir.
7

4.2. Normalizasyon
• Avantajları:
• Veri bütünlüğünü sağlar
• Sorgulamalar daha hızlı çalışır
• Anomalilerin giderilmesini sağlar
• Verilerin daha iyi organize edilmesini sağlar
• Daha çok optimize disk boyutu kullanımını sağlar
• Tekrar eden verileri azaltır böylece bakım kolaylaşır ve daha düşük
depolama alanı gerekir
• Dezavantajları:
• Çoklu tablo ve bağlantı gerektirdiğinden karmaşık SQL ifadeleri
gerektirir
• VTYS’nin çok daha fazla zaman harcaması uygulamaların performansını
düşürür
• Normalize edilmiş bir VT normalize edilmemiş bir VT den daha çok
tablo içerir.
• Veri Ambarları için uygun değildir.
8

4.2. İşlevsel Bağımlılık (Functional Dependency)


Normalize edilecek ilişkilerin nitelikleri arasındaki bağımlılıklar fonksiyonel
bağımlılık yardımıyla tanımlanır. İlişkisel veritabanı tasarım teorisi büyük
oranda bu fonksiyonel bağımlılık kriterine bağımlıdır.
Veri normalizasyonu ve anahtarlar fonksiyonel bağımlılıklar sayesinde
belirlenir.
Bir ilişkideki nitelikler arasındaki bağıntılar semantik (anlamsal) olarak
düşünüldüğünde çok fazla sayıda olabilir. Bu bağıntılar kümesinin devasa
olması ve bu bağıntıların tümünün bir veritabanı tasarım surecinde kullanılması
pratik bir yaklaşım olmaz. Dolayısıyla burada tüm bağımlılıkları temsil etmek
yerine önemsiz bağımlılıkları atarak minimum düzeyde bağımlılıkları
kullanmamız gerekir.

8
9

4.2. İşlevsel Bağımlılık


R bir ilişki şeması, X ve Y nitelik kümeleri ise R’nin alt kümeleri
olsun (X ⊆ R, Y ⊆ R).
Eğer X nitelik kümesinin değerleri Y nitelik kümesinin
değerlerini belirliyorsa (X’in her farklı değeri Y’nin belirli bir
değerine karşılık geliyorsa); “Y niteliği X niteliğine işlevsel
bağımlıdır” veya “ X, Y’yi belirler “ denir ve “X → Y” şeklinde
gösterilir.
X’ten bir nitelik çıkarıldığı halde bu bağımlılık hâlâ geçerli ise
kısmi bağımlılık (partial dependency) söz konusudur.

9
10

İşlevsel Bağımlılık (Functional Dependency)


Bu ilişkide B→A sağlanmaz iken, A→B sağlanır ve "B,
A'ya bağımlıdır" denir.
Kısaca fonksiyonel bağımlılık:

"Eğer A’nın değerini bilirsek B'nin değerine de


ulaşabiliriz" anlamındadır.
A, B’yi işlevsel (fonksiyonel) olarak belirler.
B, A'ya işlevsel olarak bağımlıdır

Eğer iki kayıt aynı A değerine sahip ise, bu durumda bu


kayıtlara ait B değerleri de aynıdır.
Örneğin bir T ilişkisinde ki her hangi iki tl ve t2 satırları
için t1[A]= t2[A] olması t1[B] = t2[B] anlamına gelir.

10
11

İşlevsel Bağımlılık (Functional Dependency)

11
12

Kısmi Bağımlılık (Partial Dependence)


Bir tabloda birincil anahtar bir veya daha fazla öznitelikten
oluşabilir. Eğer birincil anahtar iki veya daha fazla öznitelikten
oluşuyorsa bu tür birincil anahtarlara birleşik anahtar (composite
key) adı verilir.
Bu tür tablolarda anahtar olmayan öznitelik, birleşik anahtarın
sadece bir kısmı ile belirleniyorsa buna kısmi bağımlılık denir.
Bir veritabanında yer alan tabloda A, B, C ve D gibi toplam dört
özniteliğin olduğunu varsayalım.
Bu tablonun birincil anahtarı da (A, B) olsun. Bu durumda
AB→CD fonksiyonel bağımlılığı yazılabilir. Bu tabloda A→C
fonksiyonel bağımlılığını da varsayalım. Bu durumda C özniteliği
birleşik anahtarın sadece bir kısmı olan A özniteliğine bağımlıdır.
Yani C özniteliği A’ya kısmi bağımlıdır.

12
13

Geçişli Bağımlılık (Transitive Dependence)


Bir tabloda yer alan bazı özniteliklerin başka bir öznitelik
aracılığıyla üçüncü bir özniteliğe bağımlı olması geçişli bağımlılık
olarak adlandırılır.
Bir veritabanında yer alan tablonun A, B, C ve D şeklinde toplam
dört özniteliği olsun.
Bu tabloda A birincil anahtar olsun. A→B ve B→C fonksiyonel
bağımlılıklarının olduğunu varsayalım.
Verilen bu iki fonksiyonel bağımlılık incelendiğinde, C
özniteliğinin B özniteliği aracılığıyla A özniteliğine bağımlı olduğu
görülür. Bu durum geçişli bağımlılık olup A→C fonksiyonel
bağımlılığı yazılabilir. Başka bir deyişle geçişli bağımlılıkta; C
özniteliği, A özniteliği ile bir diğer öznitelik B üzerinden dolaylı
olarak belirlenir
13
14

Örnek

14
15

İşlevsel Bağımlılık
DAĞITIM (müşteri_no, şehir_kodu, şehir_adı, gönderi_no,
miktar)
müşteri_no → şehir_kodu, şehir_adı
(müşteri_no, gönderi_no) → miktar
müşteri_no → şehir_adı (geçişli bağımlılık)
İlkinde anahtar alanı oluşturan niteliklerden 1 tanesi, iki farklı
niteliği belirleyebiliyor
Bir müşteriye birden fazla defa ürün gönderilebildiği için
ikincisinde iki nitelik bir anahtar oluşturuyor.
İlk ikisi anahtara göre bağımlı, üçüncüsü geçişli bağımlı (transitive
dependent).

15
16

Çok Değerli Bağımlılık (Multiple Valued Dependence)


Tabloda bir alandaki değerler virgülle ayrılarak oluşturulan liste
veya dizi değerlerinden oluşuyorsa çok değerli bağımlılık vardır.
ÖNEMLİ: Verileri virgül veya bir başka karakter ile ayırıp aynı
alana girmek ve daha sonra program içerisinde bu değerleri
ayırmak ilişkisel veritabanının doğasına terstir.

16
17

Pratik

Aşağıdaki ilişkilerdeki işlevsel bağımılıkları


bulunuz:
Çalışan_Bölüm

Çalışan_Proje

17
18

Çözüm

Çalışan_Bölüm

Çalışan_Proje
19

Pratik
Şekilde öğretim elemanları ve bölümlerde verdikleri derslerin
bilgilerinin kayıtlı olduğu tablo verilmiştir. Bu tabloda Id ve Kod
(ders kodu) birleşik anahtar olarak tanımlıdır. Bu tabloya göre
kısmi ve geçişli bağımlılığa birer örnek veriniz.

19
20

Pratik

Id ve Kod birleşik anahtardır.


Kısmi Bağımlılık:
Id → Yıl, Adı, Mahalle, Telefon Numarası
Kod → Ders Adı, Kredi
Geçişli Bağımlılık:
Id → Adı ve Adı → Mahalle, Telefon Numarası dolayısıyla; Id → Mahalle,
Telefon Numarası

20
21

AYKIRILIKLAR (Anomali)
İlişkisel veritabanında bir satırdaki verinin (veya satırlardaki
verilerin) hatalı olarak değiştirilmesine aykırılık (anomali) denir.
İyi tasarlanmış bir ilişkisel veritabanında aykırılıklar giderilmelidir.
Bir veritabanında görülebilecek üç aykırılık vardır.
Bunlar
ekleme,
silme ve
güncelleme aykırılıkları olarak sıralanabilir.
Eğer bir tabloda bu aykırılıklardan biri veya birkaçı varsa bu tablo
ve dolayısıyla veritabanının iyi tasarlanmadığı söylenir.

21
22

Ekleme Aykırılığı

22
23

Silme Ayrılığı

23
24

Güncelleme Aykırılığı
Bu aykırılık silme aykırılığına benzer. Asıl ve detay ilişkili
tablolarda güncelleme yaparken asıl tablodaki veri yok edilerek
detay tablosundaki veriler ilişkisiz bırakılmamalıdır. Bu aykırılığı
önlemek için birincil anahtar değerinde güncelleme yaparken detay
tablolarda da ilişkili yabancı anahtarlar sırasıyla (cascade)
güncellenmelidir.

24
25

4.2. Normalizasyon (devam…)


• Normalizasyon yapılırken uyulması gereken kuralların her
birine normal form adı verilir.
─ Birinci Normal Form (1NF),
─ İkinci Normal Form (2NF),
─ Üçüncü Normal Form (3NF).
• Daha yüksek düzey formlar var ama çok fazla kullanılmıyor.

• İlk üç düzey ihlal edilirse;


─ Kayıt güncelleme,
─ Kayıt silme,
─ Kayıt bulmada zorluk çekilir.
26

4.2. Normalizasyon (devam…)


• Bir tablodaki tüm alanlar, o tablonun Primary Key (PK) alanına
bağlı olmak zorundadır. Yani Kişi tablosu için konuşursak, Kişi
tablosunun PK’sı yani indekslendiği alan, KisiNo alanıdır.

• Örneğin KisiNo’su 1 olan bir kayıtta, KisiNo’su 2 olan birisinin


bilgileri bulunamaz. Eğer bulunuyorsa karışıklık meydana gelir.
Ayrıca, Kisi tablosunda Kisi’ye ait olmayan veriler tutulamaz.

• Bu kural doğal olarak ilişkide bulunulacak her tablonun PK


alanının bulunması gerekliliğini de beraberinde getirir.
− Primary Key alanı olmazsa performanslı bir yapı da olmaz.
27

4.2. Normalizasyon (devam…)


• Normalizasyonun Amacı:
─ Veri Bütünlüğünün Sağlanması
▪ Gereksiz veri tekrarını önleyerek verilerdeki bozulmaları
önlemek.

─ Uygulamadan Bağımsızlık
▪ Uygulama değişse bile veritabanı tutarlı olarak çalışmalı.

─ Performansı Arttırmak
▪ Veri tekrarı en aza iner ve arama hızlı olur.
28

4.2. Normalizasyon (devam…)


• Sonuç olarak bir veritabanı tasarlanırken;
▪ Veri tekrarı yapılmamalıdır.
▪ Boş yer mümkün olduğunca az olmalıdır.
▪ İlişkilerin anlamsal bütünlüğü olmalıdır.
▪ İlişkilerde veri artıklığı (redundancy) önlenmelidir.
▪ Ekleme, silme ve güncelleme problemleri ortadan kaldırılmalıdır.
▪ İlişkilerde NULL değerlerden mümkün oldukça kaçınmalıdır.
▪ Sorgularda bilgi tutarsızlığına yol açan tasarımlardan
kaçınmalıdır.
29

4.2. Normalizasyon (devam…)


• Normal Formlar:
▪ 1NF, 2NF, 3NF, 4NF, 5NF.
▪ Her form bir önceki formun kapsamını daraltır.
▪ Bütün 2NF bağıntılar aynı zamanda 1NF,
▪ Bütün 3NF bağıntılar aynı zamanda 2NF, …

▪ Normalizasyon:
▪ Bir formdan daha dar kapsamlı diğer forma geçiş.
▪ Normal formlar arası geçişler kayıpsız olmalıdır.
30

Normalleştirme Aşamaları
30

• Aykırılıkları, çok değerli alanları (veya ilişkisel olmayan tablo yapılarını), kısmi ve geçişli bağımlılıkları,
Sıfırıncı tekrarlanan veri gruplarını içerir
Norma Form

• Çok değerli alanlar tek değerli hâle dönüştürülür. Her bir alandaki değer atomik olur. Birden fazla bilgi tek
Birinci bir sütunda tutulmaz. Her tabloda birincil anahtar tanımlanır. Tablolar ilişkisel yapıya dönüştürülür
Normal Form

İkinci Normal
• Kısmi bağımlılıklar kaldırılır.
Form

Üçüncü
• Geçişli bağımlılıklar kaldırılır.
Normal Form

Boyce-Codd • Birincil anahtar dışındaki diğer alanlarda bire çok ilişkisi olanlar kaldırılır
Normal
Formu

Dördüncü
• Çok değerli bağımlılıklar kaldırılır. 4NF için tüm bağımsız bire çok ilişki için ayrı tablo oluşturulur.
Normal Form
31

4.2.1. Birinci Normal Form (1NF)


• Tekrar eden gruplar kaldırılır.
• Birincil anahtar tanımlanır. Birincil anahtar benzersiz olup
tekrarlı değerlere izin vermez.
• Bütün diğer alanlar birincil anahtar ile doğrudan ya da dolaylı
benzersiz olarak belirlenebilir.
• Her bir alan atomik değer içermelidir.
• Bir alandaki değerler aynı veritipinde olmalıdır.
32

Normal Olmayan Form (0 NF)


32

İlişkisel veri tabanı modelinin temel kuralına göre bütün


niteliklerin aldığı değerler atomik (tek ve basit) olmalıdır. (1 NF)
Aşağıdaki DAĞITIM tablosu bu kurala uymamaktadır, bu yüzden
normal değildir.
33

4.2.1. Birinci Normal Form (1NF) (devam…)

Tedarik Tablosu

MusteriNo sehirKodu Sehir GonderinoNo Miktar


1 34 İstanbul P1 300
1 34 İstanbul P2 200
1 34 İstanbul P3 400
1 34 İstanbul P4 200
1 34 İstanbul P6 100
2 06 Ankara P1 300
2 06 Ankara P2 400
2 06 Ankara P2 200
4 34 İstanbul P2 200
4 34 İstanbul P4 300
4 34 İstanbul P5 400
34

4.2.1. Birinci Normal Form (1NF) (devam…)

• 1NF’daki bu tablo tekrarlı verilere sahiptir. sehirKodu ve sehir


verileri her tedarikçi için tekrarlanır. Bu tekrarlar bazı
anormalliklere neden olur:
─ Satır Ekleme Sorunu
─ Konya Şehir Kodu’nun 42 olduğu bilinmektedir, ancak sistemde
Konyalı bir tedarikçi yer almadığı için bu bilgi (Konya- 42) sisteme
eklenemez.
─ Satır Silme Sorunu
─ 2 tedarikçisini sistemden silmek Ankara-06 bilgisini kaybetmeye
sebebiyet verir.
─ Güncelleme Sorunu
─ Bir tedarikçinin şehir bilgisi değişimi şehir kodunun da değişimini
gerektirir.
35

Pratik (1NF Dönüştürme)


35
36

Pratik
36
37

4.2.2. İkinci Normal Form (2NF)


• Tabloların sütunları arasındaki fonksiyonel bağımlılıktan
yararlanılarak 1NF tablolarının birden fazla tabloya
dönüştürülmesi sonucunda 2NF’a ulaşılır.
• 2NF’da, ilişkisel tablonun anahtar olmayan her bir sütunu
birincil anahtara tam fonksiyonel bağlıdır.
• Kısmi bağımlılık fonksiyonel bağımlılığın bir özel durumu olup
bir alanın birleşik anahtarın bir parçasına tam bağımlı olması
demektir. Kısaca birincil anahtara kısmi bağımlı alanlar yeni bir
tablo oluşturarak taşınmalıdır.
38

4.2.2. İkinci Normal Form (2NF) (devam…)


şehir_kodu ve şehir_adı nitelikleri (müşteri_no, gönderi_no)
birleşik anahtarının sadece müşteri_no niteliği üzerinde tam
işlevsel bağımlıdır.
O halde şehir_kodu ve şehir_adı nitelikleri müşteri_no ile beraber
ayrı bir tablo oluşturmalıdır.
39

4.2.2. İkinci Normal Form (2NF) (devam…)

Birinci normal formdaki güncelleme sorununu


ikinci normal forma dönüştürme ile ortadan
kaldırmış olsak ta, ikinci normal formda da
ekleme ve silme sorunları olabilmektedir.
40

Pratik (2 NF)
40
41

Pratik
41
42

Pratik (2 NF dönüştürme)
42
43

Pratik (2 NF dönüştürme)
43
44

4.2.3. Üçüncü Normal Form (3NF)


• 2NF’da sadece anahtarlara ilişkin fonksiyonel bağımlılıklar
kullanılmıştır.
• Bunun dışındaki bağımlılıklarda tablolara dönüştürülerek
3NF’a ulaşılır.
• İkinci normal formdaki sorunlardan kurtulmak için de nitelikler
arasındaki geçişli işlevsel bağımlılıkları ortadan kaldırmamız
gerekir.
• Örneğimizde “müşteri_no → şehir_kodu” işlevsel
bağımlılığının geçişli olduğunu belirtmiştik. Bir anahtara bağlı
olmayan bu bağımlılığı ayrı bir tabloya dönüştürerek üçüncü
normal formu (3NF) elde edebiliriz.
45

4.2.3. Üçüncü Normal Form (3NF) (devam…)


ŞEHİRLER MİKTARLAR

MÜŞTERİLER
46

Örnek
46
47

3NF’de Hesaplanmış Değerleri Saklayan Alanların


47 Durumu
3NF’de aynı tablodan hesaplanarak bulunan değerler birincil
anahtara geçişli olarak bağımlı olduklarından kaldırılır.
48

Pratik 3 NF Uygulama
48
49

Pratik 3 NF
49
50

Pratik (3 NF dönüştürme)
50
51

Pratik (3 NF dönüştürme)
51
52

Boyce-Codd Normal Formu


52

Her belirleyicinin bir anahtar oluşu halidir.


Örnek olarak aşağıdaki ilişkiyi düşünelim:
ÖĞRENCİ(ÖğrNo, Bölüm, Danışman)
53

Boyce-Codd Normal Formu


53

1NF ? EVET (bütün niteliklerin aldığı değerler atomik)


2NF ? EVET (kısmi bağımlılık yok)
3NF ? EVET (geçişli bağımlılık yok)
54

Boyce-Codd Normal Formu


54

Her üç normal formu da sağlıyor. Sorun var mı?


EVET
456 numaralı öğrenci silinirse Biyoloji ve K.SÖNMEZ yok
olacak
Bir öğrenci Matematik bölümüne kayıt olana kadar bu bölüm
var olmayacak.
55

Çözüm: Belirleyicileri anahtar yap


55

İşlevsel Bağımlılıklar:
ÖğrNo → Danışman
Danışman → Bölüm
56

(BCNF) Uygulandığında
56
57

Dördüncü Normal Form


57

Bazı durumlarda BCNF‟daki bir ilişkide de sorunlar görülebilmektedir. Örneğin;


ÖĞRENCİ(ÖğrNo, Bölüm, Spor)
58

Dördüncü Normal Form


58

Burada bir öğrenci birden çok bölüme kayıt olabilmekte ve birden çok spor
etkinliğine katılabilmektedir.
Bu nedenle ÖğrNo ile Bölüm ve ÖğrNo ile Spor arasındaki ilişkiler birer işlevsel
bağımlılık değil çok-değerli bağımlılık (multivalued dependency) halindedir.
59

Dördüncü Normal Form


59

123 numaralı öğrencinin bir bölüme daha kayıt olması yada bir
spor etkinliğine daha katılması halinde iki kayıt daha ilave
edilmelidir.
Bu gibi yineleme sorunlarını ortadan kaldırmak için ÖĞRENCİ
ilişkisi ikiye ayrılırak dördüncü normal form (4NF) oluşturulur.
60

Özet
60

• NF: Normal olmayan form


• 1NF: Bütün alan değerleri atomik ise R 1NF’de
• 2NF: R 1NF’de ise ve anahtar olmayan tüm nitelikler anahtara
tam bağımlı ise R 2NF’de
• 3NF: R 2NF’de ise ve anahtar olmayan tüm nitelikler anahtara
geçişsiz bağımlı ise R 3NF’de
• BCNF: Her belirleyici bir aday anahtar ise R BCNF’de
• 4NF : Birincil anahtar diğer sütunlar arasında birden fazlan 1-n
ilişkisi bulunmuyorsa
• Belirleyici: Başka bir niteliğin tam işlevsel bağımlı olduğu
nitelik
61

Örnek 1
62

Örnek 1

Verilen şema 1. Normal Formda (atomik değerler)


• OKUL (Ö.No, Ö.Ad, Ö.Soyad, Ders No, Ders_Adı, Vize, Final
H.No, H.Ad, H.Soyad)

• 2. NF’ye geçerken kısmi bağımlılıklar ortadan kaldırılır


• NOTLAR(Ö.No, Ders No, Vize, Final)
• ÖĞRENCİLER(Ö.No. Ö.Ad, Ö.Soyad)
• DERSLER(Ders No, Ders_Adı, H.No, H.Ad, H.Soyad)

• 3. NF’ye geçerken geçişli bağımlılıklar ortadan kaldırılır


• NOTLAR(Ö.No, Ders No, Vize, Final)
• ÖĞRENCİLER(ÖNo, Ö.Ad, Ö.Soyad)
• DERSLER(Ders No, Ders_Adı, H.No)
• HOCALAR(H.No, H.Ad, H.Soyad)
63

Örnek 2
64

Örnek 2
• Verilen şema 1. Normal Formda (atomik değerler)
• Urun_Parca (UrunNo, UrunAd, ParcaNo, ParcaAd, Miktar,
UreticiNo, UreticiAd, UreticiSehir, UreticiTel)

• 1NF → 2NF (kısmi bağımlılıklar giderilir)


• Urun_Parca (UrunNo, ParcaNo, Miktar)
• Urunler (UrunNo, UrunAd, UreticiNo, UreticiAd, UreticiSehir,
UreticiTel)
• Parcalar (ParcaNo, ParcaAd)

• 2NF → 3NF (geçişli bağımlılıklar giderilir)


• Urun_Parca (UrunNo, ParcaNo, Miktar)
• Urunler (UrunNo, UrunAd, UreticiNo)
• Ureticiler (UreticiNo, UreticiAd, UreticiSehir, UreticiTel)
• Parcalar (ParcaNo, ParcaAd)
65

Örnek 3
66

Örnek 3

Verilen şema 1. Normal Formda (atomik değerler)


• SIPARIS (SiparisNo, Tarih, UrunAd, UrunNo, Adet, MusNo,
MusAd, MusSoyad)

• 1NF → 2NF (kısmi bağımlılıklar giderilir)


• SIPARIS_URUN (SiparisNo, UrunNo, Adet)
• SIPARIS_MUSTERI (SiparisNo, Tarih, MusNo, MusAd,
MusSoyad)
• URUN (UrunNo, UrunAd)

• 2NF → 3NF (geçişli bağımlılıklar giderilir)


• SIPARIS_URUN (SiparisNo, UrunNo, Adet)
• SIPARIS_ MUSTERI (SiparisNo, Tarih, MusNo)
• MUSTERILER (MusNo, MusAd, MusSoyad)
• URUN (UrunNo, UrunAd)
67

Örnek 4
67

FilmNo FilmAdı Yılı Yönetmeni Senaristi ŞirketID ŞirketAdı

110912 Pulp Fiction 1994 Quentin Tarantino Quentin Tarantino MF Miramax Films

110912 Pulp Fiction 1994 Quentin Tarantino Roger Avary MF Miramax Films

114369 Se7en 1995 David Fincher A. Kevin Walker NL New Line Cinema

416496 Bandidas 2006 Joachim Rønning Luc Besson EC Europa Corp.

416496 Bandidas 2006 Joachim Rønning R. Mark Kamen EC Europa Corp.

416496 Bandidas 2006 Espen Sandberg Luc Besson EC Europa Corp.

416496 Bandidas 2006 Espen Sandberg R. Mark Kamen EC Europa Corp.

1375666 Inception 2010 Christopher Nolan Christopher Nolan WB Warner Bros Pic.
68

Örnek 4
68

Verilen şema 1. Normal Formda (atomik değerler). Anahtar alanlar Film_No, Yönetmeni
ve Senaristi.
Filmler (FilmNo, Film_Adı, Yılı, Yönetmeni, Senaristi, ŞirketID, ŞirketAdı)
1NF → 2NF (Yönetmeni ve Senaristi dışındaki tüm nitelikler FilmNo niteliğine kısmi
olarak bağımlı)
FilmYönetmenSenarist (FilmNo, Yönetmeni, Senaristi)
Filmler (FilmNo, FilmAdı, Yılı, ŞirketID, ŞirketAdı)
2NF → 3NF (ŞirketAdı niteliği ŞirketID niteliğine geçişli olarak bağımlı)
FilmYönetmenSenarist (FilmNo, Yönetmeni, Senaristi)
Filmler (FilmNo, FilmAdı, Yılı, ŞirketID)
Şirketler (ŞirketID, ŞirketAdı)
3NF → 4NF (Çok-değerli bağımlılık var: Yönetmen ve Senaristin aynı tabloda olması
gereksiz tekrarlara neden oluyor)
FilmYönetmen (FilmNo, Yönetmeni)
FilmSenarist (FilmNo, Senaristi)
Filmler (FilmNo, FilmAdı, Yılı, ŞirketID)
Şirketler (ŞirketID, ŞirketAdı) NOT: 4NF anlatırken verdiğimiz
ÖĞRENCİ(ÖğrNo, Bölüm, Spor)
örneğine benziyor
74

Kaynaklar
• Veritabanı Yönetim Sistemleri, Turgut Özseven
• http://www.ortogon.com.tr/video/db/
• http://www.pau.edu.tr/ali/tr
• http://tr.wikipedia.org/wiki/Veritaban%C4%B1
• https://harunkolyigit.wordpress.com/2013/03/14/veritabani/
• http://botelabs.blogspot.com.tr/2014/02/geleneksel-dosyalama-
sistemleri.html
• Maltepe Ün, YZM 307 - Veritabanı Yönetim Sistemleri ders
notları
• https://www.slideshare.net/shashanksingh161/relational-
algebra-47310566?from_action=save

You might also like