Normalizasyon

advertisement
VERİTABANI YÖNETİMİ
Veritabanı Normalizasyonu
5.HAFTA
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normalizasyon




Normalizasyon, bir veritabanındaki verileri düzene koyma işlemidir.
Normalizasyon, veri tabanlarında çok fazla sütun ve satırdan oluşan bir
tabloyu tekrarlardan arındırmak için daha az satır ve sütun içeren
altkümelerine ayrıştırma işlemidir.
Normalizasyon, aynı zamanda “ilk taslak” veri tabanı tasarımının
üzerinde revizyonlar yaparak, taslağı son haline yaklaştırmanın
yöntemlerden birisidir.
Bu çerçevede en iyi tasarımı gerçekleştirmek için dikkat edeceğimiz
kurallara Normalizasyon işlemleri diyoruz.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normalizasyon




Normalizasyon, birincil anahtarları ve işlevsel bağımlılıkları kullanarak
bağıntıları analiz etme tekniğidir.
Normalizasyon kuralları bir tablo içerisinde yer alacak kaydın nelerden
oluşmasına karar vermeye yarar.
İlişkisel veritabanı tasarımı aşamasında verinin tekrarlanmasını, kaybını
veya yetersizliğini önlemek için Normalizasyon işlemi önem arzeder.
İlişkisel veritabanı tasarımında amaç, veri tekrarını azaltan ve veri
tutarlılığını yükselten bir yapının oluşturulmasıdır. İşte bunun için
yapılması gereken işlemler Normalizasyonla sağlanır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normalizasyon




İlişkisel veri tabanlarının geliştirilme aşaması olan mantıksal veri modelinin
oluşturulmasında başlıca hedef, verilerin, onların arasındaki ilişkilerin ve
sınırlamaların kesin, tam ifade edilmesidir. Bu hedefe ulaşmak için uygun
ilişkiler kümesi tanımlanmalıdır. Böyle ilişkilerin tanımlanması işlevine
Normalizasyon denir.
Normalizasyon; veri gereksinimlerinde tanımlanmış olan, arzu olunan
nitelikleri bulunan ilişkiler kümesinin üretilmesi sürecidir.
Normalizasyon, birincil anahtarları ve işlevsel bağımlılıkları kullanarak
bağıntıları analiz etme tekniğidir. Bu teknik, bir takım kuralların dizisini içerir
ve kurallar uygulanarak bir VT herhangi bir derecede normal hale getirilir.
Her bir Normalizasyonun belli bir takım özellikleri vardır. Normalizasyon
derecesi yükseldikçe bağıntılar biçim açısından daha kısıtlı ve güncelleme
bozukluklarından zarar göremeyecek duruma gelir.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normal Formlar

Normal formlar normalleştirmenin derecelerini veren formlar olup 1NF,
2NF, 3NF,BCNF, 4NF ve 5NF şeklindedir. En dışta Daha Yüksek
Dereceli NF ve en içerde 1NF olmak üzere her üst form aynı zamanda alt
formun özelliklerini de taşır.
Daha Yüksek Dereceli NF
5NF
4NF
BCNF
3NF
2NF
1NF
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normal Formlar





Çeşitli kaynaklarda Normalizasyon formları bir çok farklı şekilde tanımlanır.
Genel kabul görmüş 5 normalizasyon formu vardır. 5 Normalizasyon (5N)
kuralı yaygın olarak kullanılmaktadır. 5N, tasarım aşamasında yol
göstermek yerine hangi şartlara uygun tasarım yapılması gerektiğini anlatır.
Bazen, bu kurallardan vazgeçmek durumunda olunabilir ancak,
veritabanında saklanacak verilerin hacmi arttıkça yani veri tabanı
büyüdükçe bu kuralların daha sıkı uygulanmasına ihtiyaç duyulur.
Bir başka tanımlamada ise 1.NF, 2.NF, 3.NF, 4.NF, 5.NF hatta 6.NF,
BOYCE‐CODD, DOMAIN/KEY olmak üzere 8 adet normalizasyon kuralı
vardır.
Aslında bu normal form olayına veritabanı öğrenme aşamasındayken dikkat
ediliyor, daha sonra veritabanı analizi yaparken tecrübelerimizle otomatik
olarak normalize yapmaya başlıyoruz.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normalizasyon Basamakları
Normal olmayan biçim
(UDF)
Tekrarlanan
grupları
silmeli
Birinci normal biçim
(1NF)
İkinci normal biçim
(2NF)
Üçüncü normal biçimm
(3NF)
Source: Hoffer et al. (1998), p. 609.
Kısmı
bağımlılıkları
aradan
kaldırmalı
Geçişken
bağımlılıkları
aradan
kaldırmalı
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normalizasyon basamakları
Normal olmayan biçim
(UDF)
Tekrarlanan grupları silmeli
Birinci normal biçim
(1NF)
Kısmı bağımlılıkları aradan kaldırmalı
İkinci normal biçim
(2NF)
Dolaylı bağımlılıkları aradan kaldırmalı
Üçüncü normal biçimm
(3NF)
Diğer işlevsel bağımlılık sorunlarını aradan kaldırılmalı
Boyce-Codd normal
form (BCNF)
Çokdeğerli bağımlılıkları aradan kaldırmalı
Fourth normal form
(4NF)
Diğer sapmaları aradan kaldırmalı
Fifth normal form
(5NF)
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Tablo Normalizasyon basamakları
İşlem Basamakları
Veri tabanınız için gerekli olan tüm alanları
belirleyip tablonuzu oluşturunuz.
Oluşturmuş olduğunuz tabloyu Birinci normal
form(1NF) kuralını uygulayarak normalize
ediniz.
Tablolarınıza 2NF kuralını uygulayarak
normalize ediniz.
Tablolarınıza 3NF kuralını uygulayarak
normalize ediniz.
Eğer gerekiyorsa tablolarınıza BCNF kuralını
uygulayarak normalize ediniz.
Eğer gerekiyorsa tablolarınıza 4NF kuralını
uygulayarak normalize ediniz.
Eğer gerekiyorsa tablolarınıza 5NF kuralını
uygulayarak normalize ediniz.
Öneriler
Veri tabanınız için gerekli olan alanları
belirlerken piyasa araştırması da
yapınız.
Tekrarlanan grupları ortadan kaldırınız.
Kısmi bağımlılıkları ortadan kaldırınız.
Dolaylı bağımlılıkları ortadan
kaldırınız.
Diğer işlevsel bağımlılık sorunlarını
ortadan kaldırınız.
Çok değerli bağımlılıkları ortadan
kaldırınız.
Tüm sapmaları ortadan kaldırınız.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İşlevsel Bağımlılıklar (Functional Dependencies)







İşlevsel bağımlılık kavramı, genel anlamda, ilişkisel tasarımların olması
gerektiği gibi yapıldığının formal ölçütlerini belirlemede kullanılır.
İşlevsel bağımlılıklar ve anahtarlar ilişkiler için normal biçimleri
tanımlamada kullanılır.
İşlevsel bağımlılıklar, bir ilişkideki özelliklerin anlamı ve birbirleri
arasındaki ilişkilerden türetilen kısıtlamalardır.
X özellikler kümesinin aldığı değerler, Y özellikler kümesindeki tek bir
değere karşılık geliyorsa, X kümesi Y kümesini fonksiyonel olarak
belirliyor demektir.
(X Y : Y işlevsel olarak X’e bağımlıdır)
Nitelikler arası bağımlılık, veri tabanındaki bazı niteliklerin birbirinden
bağımsız olmaması; bu niteliklerin değerlerinin birbirinden bağımsız
olarak belirlenememesi anlamına gelmektedir.
Eğer ilişkiler oluşturulurken nitelikler arası bağımlılıklar dikkate alınmazsa,
veri tabanında bir dizi aykırılık oluşabilir. Bu durumda veri tabanının
bütünlük ve tutarlılığı korunamaz.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Nitelikler arası bağımlılıklar dikkate alınmadan tasarlanmış
örnek bir tablo: Satıcı (üKodu, fNo, fAdı, fAdresi, sFiyatı)
Bu ilişki şemasının yol açabileceği sorunlar:
a. Veri tekrarlama problemi: Firmaların ad ve adresleri, pazarladıkları her
ürün için tekrarlanmaktadır.
b. Güncelleme problemi: Bir firmanın ad veya adresi değiştiğinde, bunun tüm
kayıtlarda yapılması gerekir.
c. Ekleme problemi: Bir firmanın veritabanında saklanabilmesi için, firmanın
pazarladığı bir ürünün bulunması ve verilerin eklenmesi gerekir. Bir kayıt
eklemeyle hem firma hem de pazarladığı ürün bilgisi eklenmektedir. Bu bir
aykırılıktır.
d. Silme problemi :Veritabanında bir firmaya ilişkin tek bir kayıt varsa, bu
kaydın silinmesi de iki işleme (firma bilgisi silme ve firmanın pazarladığı ürün
bilgisi silme) karşı gelir.
Yukarıdaki tek ilişki yerine aşağıdaki iki ilişki oluşturulursa, sayılan
aykırılıkların ortadan kalktığı görülür.
 Firma(fNo,fAdı, fAdresi)
 SÜrün(fNo, üKodu, sFiyatı)
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Tam İşlevsel Bağımlılık ve Kısmi Bağımlılık (Partial Dependency)
Tam İşlevsel (Fonksiyonel) Bağımlılık : A ve B bir ilişki, eğer B işlevsel
olarak A ’ ya bağımlı ise, (fakat A’nın herhangi alt kümesine bağımlı
değilse), bu durumda B özellik kümesi A özellik kümesine tam işlevsel
bağımlıdır.
A -> B ise A fonksiyonel olarak B ’yi tanımlar. Yani B işlevsel olarak A’ya
bağımlıdır
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Tam İşlevsel Bağımlılık ve Kısmi Bağımlılık (Partial Dependency)

Kısmi Bağımlılık  A ve B özellik kümeleri işlevsel bağımlı ise (A  B)
ve A özellikler kümesinden herhangi bir özelliğin çıkarılması bu bağımlılığı
bozmazsa, A  B bağımlılığına kısmi bağımlılık denir.
{ Şirket No, Şirket Adı }  { Şirket Adresi } bağımlılığı tam işlevsel değil
(kısmi işlevsel), çünkü “Şirket Adresi” aynı zamanda “Şirket No” alanına
da bağımlıdır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Örnek(İşlevsel Bağımlılıklar)
Personel
ID
1
2
3
Eğer ID numarasını biliyorsam, ismini de biliyorum”
ADI
Ali
Fatma
Arda
ŞEHİR
Ankara
İstanbul
Antalya
ID numarası ismi belirmektedir.
ADI niteliği, ID’ye fonksiyonel bağımlıdır.
Bölüm
Bölüm kodu
105
109
Bölüm adı
Bilgisayar Mühendisliği.
Matematik
Bölüm Kodu -> Bölüm Adını
Öğrenci
numara
1
2
2
adsoyad
Ali
Fatma
Arda
bolum
Bilgisayar
Elektronik
Makine
sınıf
1
2
1
DahiliTel
111
204
Bölüm tablosu için; “Eğer bölüm
kodunu biliyorsam Bölüm Adını da
biliyorum”, Bölüm Kodu, Bölüm
Adını belirlemektedir. Bölüm Adı
Bölüm kodu ile fonksiyonel
bağımlıdır diyebiliriz.
tck
11
22
33
Yukarıdaki OGRENCI tablosunu ele aldığımız zaman aşağıdaki bağımlılıklardan söz
edebiliriz.
 numara -> adsoyad
 numara - > adsoyad , bolum , ©Veritabanı
sınıf , Yönetimi
tck
Prof. Dr.
 tck - > numara , adsoyad , bolum
, İbrahim
sınıfÇil
Örnek(İşlevsel Bağımlılıklar)
Sicil No
Proje No
Proje Adı
Personel Adı
Personel Soyadı
Unvan
Çalışma Saati
1
23
F-16
Taner
Akbaş
Uzman
15
2
17
UAV
Aysu
Demir
Mühendis
30
3
21
Göktürk
Fatih
Sarı
Teknisyen
25
İşlevsel Bağımlılıklar
 Proje No  Proje Adı
 Sicil No  {Personel Adı, Personel Soyadı, Unvan}
 {Personel Adı, Personel Soyadı}  Unvan
 {Sicil No, Proje No}  Çalışma Saati
-- Kısmi
-- Kısmi
-- Dolaylı
-- Tam
Proje Adı, birincil anahtara kısmi bağımlıdır.
{Personel Adı, Personel Soyadı, Unvan}, birincil anahtara kısmi bağımlıdır.
Çalışma Saati, birincil anahtara {Sicil No, Proje No} tam bağımlıdır. Çünkü
Sicil No veya Proje No, tek başına Çalışma Saati’ni belirleyemiyor. İkisi
birlikte belirliyor.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Dolaylı yada Geçişken Bağımlılık (Transitive Dependency)
A,B ve C, R tablosunun nitelikleri olsun. B, A’ya ve C de B’ye işlevsel
bağımlı ise C, A’ya (B yoluyla) geçişken bağımlıdır denir.
Yani;
A, B ve C özellik kümelerini içeren bir R ilişkisinde A  B ve B  C işlevsel
bağımlılıkları bulunmakta ise, C, A’ya B aracılığı ile dolaylı bağımlıdır.
•
Sicil No
Personel Adı
Personel Soyadı
Birim
Yönetici
1
Sevil
kala
Personel
Ali kaya
2
Ayşe
saka
Kalite
Serap er
3
Aslan
bilgi
Bilgi işlem
Aylin ker
4
Can
civelek
Muhasebe
Ahmet Celp
Sicil No, Birim’i belirlemektedir. Anahtar olmayan Birim özelliği de,
Yönetici özelliğini belirlemektedir.
• Yönetici özelliği, Sicil No’ya dolaylı
bağımlıdır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Tek değerli ve Çok değerli bağımlılık
Tek değerli
bağımlılık
Çok
değerli
bağımlılık
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Source:
Fertuck (1995), p. 268.
Örnek-1
Normal Olmayan Form
 İlişkisel
veri tabanı modelinin temel kuralına göre bütün niteliklerin
aldığı değerler atomik (tek ve basit) olmalıdır.
 Aşağıdaki DAĞITIM tablosu bu kurala uymamaktadır, bu yüzden
normal değildir.
DAGITIM
müşteri_no şehir_kodu şehir_adı gönderi_no
miktar
1
34
İstanbul
1,2,3,4,6
30,20,40,20,10
2
6
Ankara
1,2
30,40
3
6
Ankara
2
20
4
34
İstanbul
2,4,5
20,30,40
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Birinci Normal Form Uygulandığında:
müşteri_no
şehir_kodu
şehir_adı
gönderi_no
miktar
1
34
İstanbul
1
30
1
34
İstanbul
2
20
1
34
İstanbul
3
40
1
34
İstanbul
4
20
1
34
İstanbul
6
10
2
6
Ankara
1
30
2
6
Ankara
2
40
3
6
Ankara
2
20
4
34
İstanbul
2
20
4
34
İstanbul
4
30
4
34
İstanbul
5
40
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Birinci Normal Formun Sorunları


Birinci normal formdaki bir tablo bazı alanlarda tekrarlı verilere sahiptir.
Örneğimizde şehir_kodu ve şehir_adı alanlarında her müşteri için tekrarlı
veriler vardır.
Bu tekrarlar ekleme, silme ve güncelleme işlemlerinde sorunlara neden
olacaktır.
 Güncelleme –özelliğin değerinin değiştirilmesi veri tabanının
tutarsızlığına neden ola bilir
 Ekleme – bazı tasarım kusurlarından dolayı satır eklenmesi mümkün
olmaya bilir
 Silme - satır silinmesi bilgilerin beklenmeyen kaybına neden ola bilir

Normalizasyon tüm bu sorunların kaldırılması için veri tabanı tasarımında
yapılan düzenli süreçtir. Güncelleme, ekleme ve silme anomalilerini
içermeyen bir ilişkisel şema tasarlanmalıdır.

İlişkilerde NULL değerler içerecek tasarımlardan mümkün oldukça kaçınmalıdır
Bir ilişkide sıklıkla NULL değeri alan özellikler, birincil anahtar tanımlanarak ayrı bir
ilişkide toplanabilir. NULL değerlerin sebepleri; Özellik, aslında ilişki ile ilgili
olmayabilir, Özelliğin neyle ilgili olduğu kullanıcı tarafından bilinmeyebilir, Özelliğin
©Veritabanı Yönetimi
değeri o an için bilinmeyebilir
Prof. Dr. İbrahim Çil
Satır Ekleme Sorunu

Başka bir müşterinin bilgilerinin (müşteri_no, şehir_kodu, şehir_adı)
girilmesi için mutlaka o müşteriye bir dağıtım işleminin yapılması
(gönderi_no ve miktar değerlerinin girilmiş olması) gerekiyor.
müşteri_no şehir_kodu
şehir_adı
gönderi_no
miktar
1
34
İstanbul
1
30
…
…
…
…
…
4
34
İstanbul
5
40
5
35
İzmir
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Satır Silme Sorunu
 Bir müşteriye tek bir dağıtım yapıldıysa (örn. 3 no’lu müşteri), o dağıtım
işlemi iptal edildiğinde, sadece gönderi_no ve miktarı değil, o dağıtımın
yapıldığı müşteri hakkındaki diğer bilgiler de (müşteri_no, şehir_kodu,
şehir_adı) yok olur.
müşteri_no şehir_kodu
şehir_adı
gönderi_no
miktar
1
34
İstanbul
1
30
1
34
İstanbul
2
20
…
…
…
…
…
3
6
Ankara
2
20
…
…
…
…
…
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Güncelleme Sorunu
1 numaralı müşteri Ankara’ya taşınırsa, bu müşteri ile ilgili tüm satırların
güncelleştirilmesi gerekecektir. Eğer tablo çok büyük ise, sadece bir
müşteri ile ilgili küçük bir değişiklik bile binlerce kaydın
güncelleştirilmesini gerektirebilir.
müşteri_no şehir_kodu
şehir_adı
gönderi_no
miktar
1
34
İstanbul
1
30
1
34
İstanbul
2
20
1
34
İstanbul
3
40
1
34
İstanbul
4
20
…
…
…
…
…
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İkinci Normal Form


Birinci normal formdaki sorunlardan (en azından güncelleme sorunundan)
kurtulmak için nitelikler arasındaki işlevsel bağımlılıktan yararlanılarak
birinci normal form (1NF) tablolarının birden fazla tabloya dönüştürülmesi
sonucunda ikinci normal forma (2NF) ulaşılır.
İkinci normal formda, ilişkisel tablonun her bir anahtar olmayan sütunu
birincil anahtara kısmi bağımlı değil, tam işlevsel bağımlı olmalıdır.
İş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
şehir_kodu  şehir_adı (geçişli bağımlılık)
İlkinde anahtar alanı oluşturan niteliklerden 1 tanesi, iki farklı niteliği
belirleyebiliyor (kısmi bağımlılık)
Bir müşteriye birden fazla defa ürün gönderilebildiği için ikincisinde iki nitelik
bir anahtar oluşturuyor.
©Veritabanı Yönetimi
Prof. Dr. İbrahimgeçişli
Çil
İlk ikisi anahtara göre bağımlı, üçüncüsü
bağımlı.
İkinci Normal Form
ş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.

DAĞITIM(müşteri_no, şehir_kodu, şehir_adı, gönderi_no, miktar)

MÜŞTERİLER(müşteri_no, şehir_kodu, şehir_adı)

MİKTARLAR(müşteri_no, gönderi_no, miktar)
İkinci Normal Form Uygulandığında:
MÜŞTERİLER
MİKTARLAR
müşteri_no
gönderi_no
miktar
1
1
30
1
2
20
1
3
40
1
4
20
müşteri_no
şehir_kodu
şehir_adı
1
34
İstanbul
2
6
Ankara
3
6
Ankara
1
6
10
4
34
İstanbul
2
1
30
2
2
40
3
2
20
4
2
20
4
4
30
4
5
40
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İkinci Normal Formun Sorunları



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.
Satır Ekleme Sorunu: Yeni bir müşteri kaydı girilmediği sürece yeni bir
şehir tanımı yapılamaz. İzmir ilini tabloya dahil edebilmek için İzmir’de
bulunan bir müşteriye ihtiyaç vardır.
Sorunu: Tablodan bir müşteri silindiğinde, eğer o şehirdeki tek müşteri ise,
şehir_kodu ve şehir_adı bilgileri de yok olacaktır.
Satır Silme
Satır Ekleme
müşteri_no
şehir_kodu
şehir_adı
müşteri_no
şehir_kodu
şehir_adı
1
34
İstanbul
1
34
İstanbul
2
6
Ankara
2
6
Ankara
3
6
Ankara
4
34
İstanbul
3
6
Ankara
4
34
İstanbul
5
35
İzmir
35
İzmir
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Üçüncü Normal Form


Birinci normal formdaki sorunlardan kurtulmak için nitelikler arasındaki
kısmi işlevsel bağımlılıkları ortadan kaldırmıştık.
İ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.
DAĞITIM (müşteri_no, şehir_kodu, şehir_adı, gönderi_no, miktar)
şehir_kodu  şehir_adı (geçişli bağımlılık)
müşteri_no şehir_kodu


şehir_adı
gönderi_no
miktar
Örnekte “şehir_adı  şehir_kodu” işlevsel bağımlılığının geçişli olduğu
görülmektedir.
Bir anahtara bağlı olmayan bu bağımlılığı ayrı bir tabloya dönüştürerek
üçüncü normal formu (3NF) elde edebiliriz.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Üçüncü Normal Form Uygulandığında:
ŞEHİRLER
MİKTARLAR
şehir_kodu
şehir_adı
6
Ankara
1
1
30
34
İstanbul
1
2
20
35
İzmir
1
3
40
1
4
20
MÜŞTERİLER
1
6
10
müşteri_no şehir_kodu
2
1
30
müşteri_no gönderi_no miktar
1
34
2
2
40
2
6
3
2
20
3
6
4
2
20
4
34
4
4
30
5
35
4
5
40
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normal Formlar




Her bir normal biçimin belli bir takım özellikleri vardır. Derece yükseldikçe
bağıntılar biçim açısından daha kısıtlı ve güncelleme bozukluklarından
zarar göremeyecek duruma gelir.
Varlık-İlişki modeli için en önemli derece bağıntıların 1NF (1. Normal
Form) olmasıdır.
Geri kalan tüm NF seçime kalmıştır ancak güncelleme bozukluklarından
tamamen kaçınmak için tablolar en az 3NF olmalıdır.
Normal Olmayan Form (UNF)
UNF
1 NF
2 NF
• Veri artıklığı giderilir
• Kısmi bağımlılıklar kaldırılır
• Çok değerli özellikler, birleşik özellikler ve
tekrarlayan gruplar kaldırılır
•Anahtarlar tanımlanır
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
3 NF
• Dolaylı bağımlılıklar kaldırılır
Örnek-2
Normal Olmayan Biçim (Unnormalized Form – UNF)


Bir veya daha fazla tekrarlanan gruplar içeren iki boyutlu tablo normal
olmayan tablodur. Tekrarlanan grup: Birincil anahtar değeri için birden
fazla değeri bulunan özellik veya özellikler (multivalued attributes)
kümesidir.
Herhangi bir bilgi kaynağından verileri iki boyutlu tabloya olduğu gibi
aktarmak, büyük olasılıkla, normal olmayan bir tablonun ortaya çıkmasına
neden olacaktır.
UNF
Birleşik özellik
Çok değerli özellik
Sicil No
Personel Adı
Personel Soyadı
Personel Adı Soyadı
Telefonları
1
Soner
Kara
Soner Kara
2902451, 2941821, 2986883
2
Ela
Taş
Ela Taş
2903912, 2982039
3
Ali
Coş
Ali Coş
2905793, 2819283
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Birinci Normal Biçim (1NF)
Anahtar özellikler tanımlanmıştır.
 İlişkide birleşik özellikler, çok değerli özellikler ve tekrarlanan gruplar
yoktur.
 İlişkinin her bir hücresi yalnız ve yalnız tek değer içerir.
 Tüm özellikler birincil anahtara bağımlıdır.
UNF den 1NF’ geçişte;
 İlişkiler için anahtar özellik kümesi belirlenir
 İlişkide çok değerli özelliğin her öğesi için yeni bir satır oluşturulur.
 Birleşik özellikler için ilişkilerden çıkarılır.
 İliişkide tekrarlanan gruplar için yeni bir ilişki tanımlanır ve bu ilişkide ana
ilişkinin birincil anahtarı yabancı anahtar olarak yer alır.

©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normalize Edilmemiş Formdan, 1.NF’e ulaşmak için iki farklı yol izlenir


1. Tekrarlayan gruplar için tekrarlamayan nitelikler tekrarlanarak ayrı
varlıklar oluşturulur. Oluşan tekrarla her satır ve her sütun bir değer
bulunacak yeni tablo 1.NF’e ulaşacaktır.
Bir tabloda her satır ve her sütunun kesişiminde bir ve yalnız bir değer
vardır.
Sicil No
Personel Adı
Personel Soyadı
Telefon
1
Soner
Kara
2902451
1
Soner
Kara
2941821
1
Soner
Kara
2986883
2
Ela
Taş
2903912
2
Ela
Taş
2982039
3
Ali
Coş
2905793
3
Ali
Coş
2819283
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Normalize Edilmemiş Formdan, 1.NF’e ulaşmak için iki farklı yol izlenir



2. Tekrarlayan grup ve anahtar öznitelik alınarak ayrı bir tablo oluşturulur.
Yeni tablo için birincil anahtar tanımlanır.
Bazen normalize edilmemiş tablo birden çok tekrarlayan gruba sahip
olabilir. Bu durumda buradaki yaklaşım tekrar eden grup kalmayana kadar
uygulanır!
Her iki yaklaşım da doğrudur ancak ikinci yaklaşım daha az tekrara izin
veren tablolar elde edilmesini sağlar.
Sicil No
Personel Adı
Personel Soyadı
Satır No
Telefon
Sicil No
1
Soner
Kara
1
2902451
1
2
Ela
Taş
2
2941821
1
3
Ali
Coş
3
2986883
1
4
2903912
2
5
2982039
2
6
2905793
3
7
2819283
3
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İkinci Normal Biçim (2NF)
Tam işlevsel bağımlılık kavramına dayalıdır.
 Birincil anahtarı birden çok özelliğe sahip olan ve 2NF olmayan ilişkilere
uygulanır.
 İlişki, öncelikle 1 NF şartını sağlamalıdır. Ayrıca; İlişkide, birincil anahtar
olmayan tüm özellikler birincil anahtara tam işlevsel bağımlı olmalıdır.
1 NF den 2 NF’ geçişte
• İlişkideki işlevsel bağımlılıklar listelenir.
• Kısmi bağımlılıklar kaldırılır. Bunun için;
• Birincil anahtar üzerindeki kısmi bağımlılıkları oluşturan özellikler
yeni bir ilişkiye taşınır

©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İkinci Normal Biçim (2NF)
Sicil No
Proje No
Proje Adı
Personel
Adı
Personel
Soyadı
Unvan
Çalışma
Saati
1
23
F-16
Taner
Akbaş
Uzman
15
2
17
UAV
Aysu
Demir
Mühendis
30
3
21
Göktürk
Fatih
Sarı
Teknisyen
25
İşlevsel Bağımlılıklar
 Proje No  Proje Adı
 Sicil No  {Personel Adı, Personel Soyadı, Unvan}
 {Personel Adı, Personel Soyadı}  Unvan
 {Sicil No, Proje No}  Çalışma Saati
-- Kısmi
-- Kısmi
-- Dolaylı
-- Tam
Proje Adı, birincil anahtara kısmi bağımlıdır.
{Personel Adı, Personel Soyadı, Unvan}, birincil anahtara kısmi bağımlıdır.
Çalışma Saati, birincil anahtara {Sicil No, Proje No} tam bağımlıdır. Çünkü
Sicil No veya Proje No, tek başına Çalışma Saati’ni belirleyemiyor. İkisi
birlikte belirliyor.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
İkinci Normal Biçim (2NF)

İkinci Normal Biçim kuralı uygulandığında oluşan tablolar:
Sicil No
Personel
Adı
Personel
Soyadı
Unvan
Proje No
Proje Adı
1
Taner
Akbaş
Uzman
23
F-16
2
Aysu
Demir
Mühendis
17
UAV
3
Fatih
Sarı
Teknisyen
21
Göktürk
Sicil No
Proje No
Çalışma
Saati
1
23
15
2
17
30
3
21
25
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
2NF
Üçüncü Normal Biçim (3NF)

Dolaylı bağımlılık kavramına dayalıdır.

İlişki, öncelikle 2 NF şartını sağlamalıdır.

Ayrıca; İlişkide, birincil anahtar olmayan özellikler birincil anahtara dolaylı
bağımlı olmamalıdır.
2NF den 3NF’ geçişte;

İlişkideki işlevsel bağımlılıkları listelenir

İlişkide birincil anahtara dolaylı bağımlı özellikler, yeni bir ilişkiye(tabloya)
taşınır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Üçüncü Normal Biçim (3NF)

2N Formdaki bir tablo aşağıdaki gibidir:
Sicil No
Personel
Adı
Personel
Soyadı
Unvan
Birim
No
Birim
Adı
Birim
Yönetici
1
Taner
Akbaş
Uzman
23
F-16
15
2
Aysu
Demir
Mühendis
17
UAV
30
3
Fatih
Sarı
Teknisyen
21
Göktürk
25
Tam
Dolaylı
Dolaylı
İşlevsel Bağımlılıklar
 Sicil No  {Personel Adı, Personel Soyadı, Unvan, Birim No}
 {Personel Adı, Personel Soyadı}  Unvan
 Birim No  {Birim Adı, Birim Yönetici}
Unvan, dolaylı olarak Sicil No’ya bağlıdır.
Birim Adı ve Birim Yöneticisi, dolaylı olarak Sicil No’ya bağlıdır.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
--- Tam
--- Dolaylı
--- Dolaylı
İkinci Normal Biçim (2NF)

Üçüncü Normal Biçim kuralı uygulandığında oluşan tablolar:
Sicil
No
Personel
Adı
Personel
Soyadı
Unvan
No
Birim
No
1
Taner
Akbaş
5
23
2
Aysu
Demir
2
17
3
Fatih
Sarı
7
21
Birim
No
Birim
Adı
Birim
Yönetici
23
F-16
15
17
UAV
30
21
Göktürk
25
Unvan No
UnvanAdı
5
Uzman
2
Mühendis
7
Teknisyen
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Örnek-3
Normal formlar
1.Normal form
Tekrar eden
gruplar,
anahtar
alanla ayrı bir
tablo olarak
ilk tablodan
ayrılırlar
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Source: Kendall & Kendall (1998), pp. 627, 628.
Normal formlar
2. Normal Form
•
İlişki, öncelikle 1 NF
şartını sağlamalıdır. Ayrıca;
İlişkide, birincil anahtar
olmayan tüm özellikler
birincil anahtara tam
işlevsel bağımlı olmalıdır.
• 1 NF den 2 NF’ geçişte
• İlişkideki işlevsel
bağımlılıklar listelenir.
• Kısmi bağımlılıklar
kaldırılır. Bunun için;
Birincil anahtar
üzerindeki kısmi
bağımlılıkları oluşturan
özellikler yeni bir ilişkiye
taşınır
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Source: Fertuck (1995), p. 273.
Normal formlar
3.Normal Form
• İlişkide, birincil anahtar
olmayan özellikler birincil
anahtara dolaylı bağımlı
olmamalıdır.
• 2NF den 3NF’ geçişte;
• İlişkideki işlevsel
bağımlılıkları listelenir
• İlişkide birincil anahtara
dolaylı bağımlı özellikler,
yeni bir ilişkiye taşınır.
Source: Fertuck (1995), p. 276.
©Veritabanı Yönetimi
Prof. Dr. İbrahim Çil
Download