Normalleştirmenin amacı Veri fazlalığı ile bağlı sorunlar

Slides:



Advertisements
Benzer bir sunumlar
Microsoft Access Bu program Microsoft program paketinin içerisinde yer alan; çok büyük miktarlardaki verilerin depolanabileceği veritabanı oluşturmamıza.
Advertisements

Yazılım Geliştirme Süreci
VERİ TABANI VE YÖNETİM SİSTEMLERİ
Veri Tabanı Tasarlama İlk kuralımız, olabildiğince bilgileri parçalamaktır.
Varlık-ilişkisel Model
VT TASARIMI ve MODELLEME
RELATIONAL DATABASE MAGAMENT SYSTEM (RDMS)
ER diyagramının tablolara dönüşümü
Normalizasyon Kuralları & SQL
NORMALLEŞTİRME Normalleştirmenin amacı
İLİŞKİSEL VERİ MODELİ Tablolar ile Gösterim
Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği
E-R Çizelgelerini İVTYS’ye Dönüştürme
Veri Tabanı Normalizasyonu Devrim ALTINKURT
VERİTABANI ve YÖNETİMİ
Varlık-İlişki Modeli Örneği
İlişkisel Veri Modeli.
Veri Tabanı Yönetim Sistemleri
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
VERİ TABANI ve YÖNETİMİ
Gereksinim Analizi ve Varlık Bağıntı Diyagramı
4 Veri Bütünlüğü ve Constraint’ler
VERİ TABANI VE YÖNETİM SİSTEMLERİ  Birincil Anahtar Türleri  Access Veri Tabanında Bulunan İlişkiler  İlişkileri Tanımlama Bir – Çok İlişkisi Çok –
Veri Bütünlüğü Sibel SOMYÜREK.
Veritabanı Yönetim Sistemleri-I
VIEW lerle çalışmak 11.BÖLÜM.
VER İ TABANI YAPILARI (G İ R İ Ş – II. BÖLÜM) Yard.Doç.Dr. Cihad DEM İ RL İ.
SQL’e Giriş ve SELECT Komutu
GÖRÜNÜŞLER (VİEWS). Görünüş Temel tablolar üzerinde yeni bir tablo almak için yapılan işlemlerin sonucu Sanal tablo- gerçekten veri tabanında yoktur ve.
EXCEL DE VERİ TABANI (DATABASE) İŞLEMLERİ
VERİ TABANI VE VERİ TOPLAMA YÖNTEMLERİ
ÇOKLU TABLOLAR.
VERİ TABANI VE YÖNETİM SİSTEMLERİ
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Microsoft Office Access Yrd. Doç. Dr. Doğan AYDOĞAN.
ÜÇÜNCÜ BÖLÜM İÇ DENETİM VE İÇ KONTROL SİSTEMİ
Access’te İlişki Kurma
VERİTABANI ve YÖNETİMİ
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Veritabanı Tasarımı ve Yönetimi
Normalizasyon Bütünlük Kısıtları. (integrity constraints) Veritabanında yer alacak değerleri sınırlar. Nesne bütünlüğü: Her nesne “unique” olarak ifade.
İŞLEM ve MODÜLER ARİTMETİK.
Veritabanı Kavramları
Microsoft Office Access
Veritabanı Yönetim Sistemleri-I
© 2002 by Prentice Hall 1 David M. Kroenke Database Processing Eighth Edition Chapter 1 Introduction to Database Processing.
HESAP TABLOSU PROGRAMLARI
DENEME.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
İlişkisel Cebir İlişkisel Hesaplama
Hafta - 3 Gözden Geçirme.
Microsoft Office Access
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
İLİŞKİSEL VERİ MODELİ Tablolar ile Gösterim
Bölüm 4: İleri SQL.
VERİ KAYNAKLARI YÖNETİMİ 5. ÜNİTE. GİRİŞ Bilgi sisteminin öğelerinden biride “veri yönetimidir”. Geleneksel yada çağdaş, birinci yada ikinci elden derlenen.
Bölümün Amacı Bu bölüm, örgüt yapısının temel kavramlarını tanıtıyor ve bir yapıyı örgüt şemasında göründüğü şekliyle nasıl tasarlayacağımızı anlatıyor.
Veritabanı Kavramları
İnsan Kaynakları Bilgi Sistemleri
UNV13107 TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Veri tabanı Bilgisayar ortamında saklanan düzenli verilerdir. Bilgisayar ve ağ ortamındaki bilginin temel.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
Access Eğitimi Eğitim İçerikleri Bilgegüç Bilişim Danışmanlık.
E-R Çizelgelerini İVTYS’ye Dönüştürme
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
İLERİ VERİ TABANI UYGULAMALARI
VERİTABANI YÖNETİM SİSTEMLERİ 2- Tasarım ve ER Modeli
1 EXCEL DE VERİ TABANI (DATABASE) İŞLEMLERİ Excel de bir veritabanı oluşturulabilir veya başka programlarda (Access gibi) oluşturulmuş olan Veri Tabanları.
Sunum transkripti:

Normalleştirmenin amacı Veri fazlalığı ile bağlı sorunlar Güncelleme sapmaları (anomalileri) İşlevsel bağımlılıklar İlişkilerin normal biçimleri Normalleştirme süreci Yaygın Kullanılan Normal Biçimler

İlişkilerin Tasarlanması İlkeleri İlişkilerin anlamsal bütünlüğü olmalıdır Veri tekrarlanmaları önlenmelidir: sapmalar: ekleme, silme, değişiklik yapma Boş değerlerden mümkün oldukça kaçınılmalıdır Yorumlama zorluğu: Belli değil, erişile bilen değil, uygulana bilen değil… Yapay birleşmelerden kaçınılmalıdır

Varlık-İlişkisel Modelin İlişkisel Tablolara Dönüştürülmesi 1.Varlık türlerinin dönüştürülmesi- Her bir güçlü varlık türü için , bu varlık türünün tüm özelliklerini içeren tablo oluşturmalı. Karmaşık özelliklerin basit bileşenlerini kullanmalı. Anahtar özelliklerden birisini tablonun birincil anahtarı olarak kabul etmeli. Eğer, birincil anahtar varlık türündeki karmaşık özellik ise, bu özelliğin tüm bileşenlerini birlikte karmaşık anahtar olarak kabul etmeli 2.Zayıf varlık için de benzer yolla tablo oluşturmalı. Ama bu tabloya , sahip ilişkinin (uygun güçlü ilişkinin) birincil anahtarını yabancıl anahtar olarak ilave etmeli. Her 1:1 ve 1:M türlü R ilişki türü için , bu ilişkiye katılan varlık türlerine uygun ilişkileri tanımlamalı. Bu ilişkilerden birisinin birincil anahtarını diğerinde (genelde ilişkinin «M» tarafında ) yabancıl anahtar olarak kullanmalı. Her M:M türlü ilişki için yeni bir S tablosu oluşturmalı. Katılımcı ilişkilerin birincil anahtarını S tablosunda yabancıl anahtarlar olarak kullanmalı. M:M ilişki türünün tüm özelliklerini bu tabloya taşımalı

Tasarım sürecinde Normalleştirmenin yeri Kavramsal tasarım Adım 1: ER modelin ilişkilere dönüştürülmesi Adım 2: Normalleştirme: Tasarımı geliştirme Kavramsal Şema (ER Model) Mantıksal Tasarım Mantıksal Şema (İlişkisel Model

Normalleştirme süreci İlişkisel veri tabanlarının geliştirilme aşaması olan mantıksal veri modelinin oluşturulmasında başlıca hedef, verilerin, veriler 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 normalleştirme denir. Normalleştirme- veri gereksinimlerinde tanımlanmış olan, arzu olunan nitelikleri bulunan ilişkiler kümesinin üretilmesi sürecidir.

Normalleştirme süreci (devamı) Kötü tasarlanmış veri tabanlarının, sapmalar nedeniyle kullanım zorlukları bulunmaktadır: Sapmalar: Değiştirme –özelliğin değerinin değiştirilmesi veri tabanının tutarsızlığına neden olabilir Ekleme – bazı tasarım kusurlarından dolayı satır eklenmesi mümkün olmayabilir Silme - satır silinmesi bilgilerin beklenmeyen kaybına neden olabilir Normalleştirme tüm bu sapmaların kaldırılması için veri tabanı tasarımında yapılan düzenli süreçtir.

Veri Fazlalığı ve Güncelleme Sapmaları (örnek)

Staff_Branch ilişkisinde güncelleme sapmaları (ekleme) 1. Varsayalım ki, Branch_Staff ilişkisine yeni personelin kayıtları eklenmelidir. Bu halde personelin çalışacağı şubenin bilgileri de girilmelidir. Örneğin, yeni personel B7 şubesine kabul edilmişse, bu bilgiler B7 şubesi bilgileri bulunan diğer satırlardaki bilgilerle aynı olmalı, yani veri tutarsızlığı oluşmamalıdır. Bu muhtemel hatanı önlemek için Staff_Branch ilişkisinin iki ilişkiye parçalanması (Staff ve Branch) gerekmektedir. 2. Varsayalım ki, yeni şube oluşturulmuş, ama bu şubeye henüz personel atanmamıştır. Personel bilgileri yerine boş değerler yazılması mümkündür. Ama Staff_No, ilişkide birincil anahtar olduğundan boş değer alamaz. Bu ikilemi önlemek için Staff_Branch ilişkisinin iki ilişkiye parçalanması (Staff ve Branch) gerekmektedir. Staff_Branch(Staff_No,SName,SAddress, Position, Salary, Branch_no,BAddress, Tel_No)

Staff_Branch ilişkisinde güncelleme sapmaları (silme) 1. Varsayalım ki, Branch_Staff ilişkisinden şubede çalışan sonuncu personel hakkındaki bilgiler de silinmelidir. Ama bu bilgilerin silinmesi, şube hakkındaki bilgilerin de kaybına neden olacaktır(böyle ki, bu şube hakkında bilgiler ilişkinin diğer hiçbir satırında bulunmuyor). Örneğin, ilişkiden SA9 (Mary Howe) bilgilerinin silinmesi ile B7 şubesi hakkındaki bilgileri de kaybedeceğiz. Bu olası itkileri önlemek için Staff_Branch ilişkisinin iki ilişkiye parçalanması (Staff ve Branch) gerekmektedir. Staff_Branch(Staff_No,SName,SAddress, Position, Salary, Branch_no,BAddress, Tel_No)

Staff_Branch ilişkisinde güncelleme sapmaları (güncelleme) Varsayalım ki, Branch_Staff ilişkisinden her hangi bir şubenin bir veya birkaç özellik değerini değiştirmek gerekmektedir.Örneğin, B7 şubesinin telefon numarası değiştirilmelidir. Bunun için ise Staff_Branch ilişkisindeki B7 şubesinde çalışan personellere uygun tüm satırlar güncellenmelidir. Eğer tüm gereken satırlar güncellenmezse bu, veri tabanının tutarsızlığına neden olacaktır.Yani, B7 şubesi hakkındaki bilgileri içeren farklı satırlarda şubenin telefon numaraları farklı görünecektir. Staff_Branch(Staff_No,SName,SAddress, Position, Salary, Banch_no,BAddress, Tel_No)

Veri Fazlalığı ve Güncelleme Sapmaları (devamı) Ekleme anormalliği Silme Anormalliği Değiştirme anormalliği

Ne yapmalı? Mantıksal tasarım sürecinde oluşturulmuş her bir veri ilişkisini ayrılıkta gözden geçirmeli ve arzu olunan niteliklere ulaşmak için ilişkileri “iyileştirmeli” Normal biçimler Atomik değerlere (1NF) Anahtarlara ve bağımlılıklara ve İşlevsel bağımlılıklara göre tanımlanır ( 2NF, 3NF, BCNF) Normalleştirme Normalleştirme,”yukarıdan aşağıya” metodolojisinin uygulandığı ve ardışık parçalamalar ve arındırmalar yolu ile yeni ilişkilerin oluşturulduğu tasarım sürecidir.

Normalleştirme sorunları Şema arzu olunan normal biçimlere nasıl parçalanmalıdır? Kaynak şemanın anlamsal bütünlüğünü korumak için parçalanmış şemalara hangi kıstaslar koyulmalıdır? Yeniden yapılabilirlik: kaynak şemanın yeniden elde edilmesi  yapay bitiştirmeler yoktur Parçalamada kayıp olmaması: bilgi kaybı yoktur Kısıtlamaların korunması: kaynak şemada bulunan kısıtlamalar parçalanmış ilişkilerde tanımlanan kısıtlamalarla uyumlu olmalıdır. Bitiştirme işlemlerinden dolayı sorguların işlem süresi yükseler

Normal Biçimler arasında bağlılık

Tekrarlanan Gruplar Tekrarlanan grup, birincil anahtara birden fazla değeri uygun gelen özellik veya özellikler kümesidir Örnek: aşağıdaki örnekte şube ve personel bilgileri ,her bir personelle irtibat telefonları verilmiştir. (iletişim_telefonları –tekrarlanan gruptur) persNo görev şube Ş_adı kent iletişim_telefonları SL10 Satıcı 10 Satış İstanbul 018111777, 018111888, 079311122 SA51 Yönetici 20 Muhasebe İzmir 017111777 DS40 Muhas. 20 Muhasebe İzmir OS45 Muhas. 30 İşletme İzmir 079311555 Tasarımda Tekrarlanan gruplara izin verilmez, tüm özellikler bölünmez olmalıdır,yani tablonun her hücresinde tek bir değer bulunmalıdır

Normalolmayan biçim- Unnormalized Form -(UNF) Tanım: Hiçbir normalleştirme kurallarına uymayan ve sapmaların bulunduğu tablo normalleşmemiş biçimdedir. Normal olmayan tablo, bir veya daha fazla tekrarlanan gruplar içerir Tablonun satırlarında özellik veya özellikler çokdeğerli ifade edilmişse böyle tablo normal olmayan biçimdedir Normal olmayan tablo oluşturmak için Bilgi kaynaklarından verileri ikiboyutlu tabloya aktarmak yeterlidir.

UNF’den 1NF’e dönüştürme Birinci normal biçim (1NF) -her hücresi (satır ve sütunların kesişmesi) yalnız ve yalnız bir değer içeren ilişki birinci normal biçimdedir. 1NF’e dönüştürmek için Normalleştirilmemiş tablo için anahtar olacak özellik veya özellikler kümesini belirlemeli. Normal olmayan tablodaki tekrarlanan grubun her öğesini anahtarla bir yerde yeni satırda tanımlamalı (gruptaki her değer için anahtarı tekrarlamalı)

1NF özellikleri Tüm anahtar özellikler tanımlanmıştır Tabloda tekrarlanan gruplar yoktur Tüm özellikler birincil anahtara bağımlıdır

İkinci Normal Biçim (2NF) Tam işlevsel bağımlılık kavramına dayalıdır: A ve B ilişkinin özellikleridir, B özelliği A özelliğine işlevsel bağımlı olup A’nın her hangi altkümesine bağımlı değilse o zaman B, A’ya tam bağımlıdır, 2NF – İlişki birinci normal biçimde ise ve birincil anahtar olmayan özellikleri birincil anahtardan tam bağımlı ise (kısmı bağımlılığın olmaması) bu ilişki ikinci normal biçimdedir

İşlevsel Bağımlılıklar İşlevsel bağımlılık- ilişkideki özellikler arasındaki bağlantıları ifade ediyor. Eğer A ve B, R ilişkisinin özellikleri ise , ve A’nın her bir değerine B’nin kesin bir değeri uygun ise B işlevsel olarak A’ya bağımlıdır.(A B ) B A B, A’ya işlevsel bağımlıdır

İşlevsel Bağımlılıklar İşlevsel bağımlılık ilişkisel veri tabanının iki özellikler kümesi arasındaki kısıtlamayı ifade ediyor. Eğer X ve Y aynı T ilişkisinin özellikleri kümeleri ise, o zaman X  Y , X’in işlevsel olarak Y’yi tanımlaması anlamını veriyor: X’deki özellik değerleri Y’deki özellik değerlerini tekdeğerli tanımlar T’deki her hangi iki t1 ve t2 satırları için t1[X] = t2[X] olması t1[Y] = t2[Y] anlamına gelir (Eğer T ilişkisinin iki satırı X sütunu(sütunları)üzere aynıdırsa, onların Y sütunu(sütunları) da aynı olmalıdır)

İşlevsel Bağımlılıklar Belirleyici- bağımlılık işaretinin solundaki özellik veya özellikler grubuna işlevsel bağımlılığın belirleyicisi denir Position Staff_no’ya işlevsel bağımlıdır Position Staff_No Staff number SL21 Manager Staff_no Position’a işlevsel bağımlı değil Position X Staff_No Staff Number SL21 Staff Number SG5 Manager

Staff-Branch İlişkisi üzere işlevsel bağımlılıklar Staff_No SName Branch_No BAddress Staff_No SAddress Branch_No Tel_no Staff_No Position BAddress Tel_No Staff_No Salary BAddress Branch_No Staff_No Branch_No Staff_No BAddress Tel_No Branch_No Staff_No Tel_No Tel_No BAddress Staff_No,Branch_No,BAddress , Tel_No belirleyicilerdir. (Her şubenin bir telefonu olduğunu varsayıyoruz) Staff_Branch (Staff_No,SName,SAddress, Position, Salary, Banch_no,BAddress, Tel_No)

Tam ve kısmı bağımlılık Tam işlevsel bağımlılık- A ve B ilişkinin özellikleri ise, eğer B, işlevsel olarak A’ya bağımlı ise, ama A’nın her hangi alt kümesine bağımlı değilse, o zaman B özelliği A özelliğine tam işlevsel bağımlıdır A ve B özellikleri (özellikler kümeleri) işlevsel bağımlı ise (A B) ve A özellikler kümesinden her hangi özelliğin çıkarılması bu bağımlılığı bozmazsa, A B bağımlılığına kısmı bağımlılık denir Staff_No,SName Branch_No Bağımlılığı tam işlevsel bağımlılık değil, çünkü, Branch_no aynı zamanda Staff_No özelliğine de işlevsel bağımlıdır.

İkinci Normal Biçim Eğer ilişki birinci normal biçimde ise ve her bir birincil anahtar olmayan özellik birincil anahtardan tam işlevsel bağımlı ise , bu ilişki ikinci normal biçimdedir (2NF) 1NF’den 2NF’e geçmek için kısmı bağımlılıklar kaldırılmalıdır.

1NF’den 2NF’e dönüştürme 1NF ilişkisi için birincil anahtarı tanımlamalı İlişkideki işlevsel bağımlılıkları tanımlamalı Eğer birincil anahtar üzere kısmı bağımlılıklar varsa bu bağımlılıkları oluşturan özellikleri onların belirleyicilerinin kopyası ile yeni bir ilişkiye taşımalı

Customer-Rental ilişkisinin 2NF’e dönüştürülmesi Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName Customer_No,Property_No özellikler kümesini birincil anahtar olarak kabul ediyoruz İşlevsel bağımlılıklar Fd1 Customer_No,Property_No  RentStart, RentFinish (tam bağımlılık) Fd2 Customer_No  CName (kısmı bağımlılık) Fd3 Property_No  PAdderss,Rent,Owner_No, OName (kısmı bağımlılık) Fd4 Owner_No  Owner_name (dolaylı bağımlılık) FD5 Customer_No,RentStart  Property_no, PAdderss,RentFinish, Rent, Owner_No,OName (aday anahtara bağımlılık) Fd6 Property_No,RentStart  Customer_no, CName,RentFinish (aday anahtara bağımlılık)

Customer-Rental ilişkisinin 2NF’e dönüştürülmesi Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName Fd1 Fd2 Fd3 Fd4 Fd5 Fd6 Birincil anahtara tam bağımlık Kısmı bağımlılık Kısmı bağımlılık d.b Aday anahtara bağımlılık Aday anahtara bağımlılık

Customer-Rental ilişkisinin 2NF’e dönüştürülmesi Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName Fd2 Kısmı bağımlılık

Customer-Rental ilişkisinin 2NF’e dönüştürülmesi Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName Fd1 Birincil anahtar

Customer-Rental ilişkisinin 2NF’e dönüştürülmesi Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName Fd3 Kısmı bağımlılık

Customer-Rental ilişkisinin 2NF’e dönüştürülmesi Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName Fd4 Dolaylı bağımlılık

Customer-Rental ilişkisinin 2NF’e dönüştürülmesi Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName Fd5 Aday anahtar

Customer-Rental ilişkisinin 2NF’e dönüştürülmesi Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName Fd6 Aday anahtar

Customer-Rental İlişkisinin 2NF’e dönüştürülmesi

Customer_Rental İlişkisinin 2NF’e dönüştürülmesi Customer_Rental (Customer_No,Property_No, CName, PAddress, RentStart, RentFinish, Rent, Owner_No,OName) Customer_No (Customer_No,CName) Rental (Customer_No,Property_No, RentStart,RentFinish) Property_Owner(Property_No, PAddress,Rent, Owner_No,OName)

Üçüncü Normal Biçim (3NF) Dolaylı bağımlılık kavramına dayanmaktadır: A, B ve C ilişkinin özellikleridir; A  B ve B  C ise O zaman C A’dan B özelliği aracılığıyla dolaylı bağımlıdır Staff_No  Branch_No Branch_NoBAddress Üçüncü normal biçim (3NF)- eğer ilişki birinci ve ikinci normal biçimde ise ve birincil anahtar olmayan özellikler birincil anahtardan dolaylı bağımlı değilse , bu ilişki üçüncü normal biçimdedir

2NF’den 3NF’e dönüştürme Birincil anahtarı 2NF’de tanımlamalı İlişkideki işlevsel bağımlılıkları tanımlamalı. Eğer birincil anahtara işlevsel bağımlılık varsa bu bağımlılığı oluşturan özellikleri belirleyicilerinin kopyası ile birlikte yeni bir ilişkiye taşımalı

Üçüncü Normal Biçim Customer, Rental ve Property_Owner ilişkilerindeki işlevsel bağımlılıklar : Customer ilişkisi Fd2 Customer_No  CName Rental İlişkisi Fd1 Customer_No,Property_No  RentStart,RentFinish FD5 Customer_No,RentStart  Property_no, RentFinish Fd6 Property_No,RenStart  Customer_no, RentFinish Property_Owner İlişkisi Fd3 Property_No Paddress, Rent,Owner_No,OName Fd6 Owner_No  OName Customer ve Rental ilişkilerinde dolaylı bağımlılık yoktur. Tüm birincil olmayan özellikler birincil anahtara işlevsel bağımlıdır

Property_Owner ilişkisinin 3NF’e dönüştürülmesi Property_Owner ilişkisinde OName özelliğinin dışında tüm özellikler birincil anahtara işlevsel bağımlıdır. OName ise aynı zamanda Owner_No’ya bağımlıdır (Fd4). 3NF’e dönüştürmek için dolaylı bağımlılık kaldırılmalıdır. Bunu 2 yeni ilişki oluşturmakla yapa bileriz: Property_for_Rent (Property_No,PAdderss,Rent,Owner_No) Owner (Owner_No,OName)

Customer_Rental tablosunun 1NF’den 3NF’e dönüştürülmesi Property_Owner 2NF Customer Rental Property_for_rent Owner 3NF

Customer_Rental tablosunun 3NF ilişkilerinin alınması

Normalleştirme basamakları Normal olmayan biçim (UDF) Birinci normal biçim (1NF) tekrarlanan grupları silmeli İkinci normal biçim (2NF) Kısmı bağımlılıkları aradan kaldırmalı Üçüncü normal biçimm (3NF) Dolaylı bağımlılıkları aradan kaldırmalı Boyce-Codd normal form (BCNF) Diğer işlevsel bağımlılık sorunlarını aradan kaldımalı Fourth normal form (4NF) Çokdeğerli bağımlılıkları aradan kaldırmalı Fifth normal form (5NF) Diğer sapmaları aradan kaldırmalı

Örnek: Normal olmayan tablonun normalleştirilmesi süreci

Normalleşmemiş biçim (UNF) SİPARİŞ (Sipariş_no, sipariş-tarihi, müşteri-no, müşteri-adı, müşteri_adr, (ürün-no, ürün-adı, ürün-fiyatı, sip-mikt, toplam)*, genel-toplam

Birinci normal biçim (1NF) Tanım: Tüm özellikleri atomik değer içeren ilişki birinci normal biçimdedir. Yeni ilişkide tekrarlanan grupları silmeli Tekrarlanan grup parantez içinde verilmiştir SİPARİŞ (Sipariş_no, sipariş-tarihi, müşteri-no, müşteri-adı, müşteri_adr, (ürün-no, ürün-adı, ürün-fiyatı, sip-mikt, toplam)*, genel-toplam UNF’ten 1NF’e geçiş En dış tekrarlanan grubu silmeli(ve onun içerdiği tüm yuvalı tekrarlanan grupları) ve bu silinmiş grupları içeren yeni ilişki oluşturmalı. Bu yeni ilişkiye kaynak ilişkinin birincil anahtarının kopyasını ilave etmeli. Yeni ilişkiye ad vermeli Yeni ilişki için birincil anahtarı belirlemeli Tekrarlanan gruplar kalmayana dek adımları tekrar etmeli

Örnek – UNF’ten 1NF’e SİPARİŞ (Sipariş_no, sipariş-tarihi, müşteri-no, müşteri-adı, müşteri_adr, (ürün-no, ürün-adı, ürün-fiyatı, sip-mikt, toplam)*, genel-toplam 1. En dış tekrarlanan grubu silmeli(ve onun içerdiği tüm yuvalı tekrarlanan grupları) ve bu silinen grupları içeren yeni ilişki oluşturmalı. SİPARİŞ (Sipariş_no, sipariş-tarihi, müşteri-no, müşteri-adı, müşteri_adr, genel-toplam (ürün-no, ürün-adı, ürün-fiyatı, sip-mikt, toplam) 2. Bu yeni ilişkiye kaynak ilişkinin birincil anahtarının kopyasını ilave etmeli Sipariş (Sipariş_no, sipariş-tarihi, müşteri-no, müşteri-adı, müşteri_adr, genel-toplam) (sipariş_no, ürün-no, ürün-adı, ürün-fiyatı, sip-mikt, toplam) 3. Yeni ilişkiye ad vermeli ve birincil anahtarı tanımlamalı Sipariş_ürün (sipariş_no, ürün-no, ürün-adı, ürün-fiyatı, sip-mikt, toplam)

İkinci normal biçim (2NF) Tanım: 1NF’te olan ve her bir anahtar olmayan özelliği birincil anahtara tam bağımlı olan ilişki ikinci normal biçimdedir Yeni ilişkide kısmı işlevsel bağımlılıkları aradan götürmeli 1NF’ten 2NF’e geçiş: Karmaşık anahtardan kısmı işlevsel bağımlı olan özellikleri çıkarıp yeni ilişkiye aktarmalı Bu yeni ilişkiye, çıkarılmış özellikleri belirleyen özelliğin (özelliklerin) kopyasını ilave etmeli. Bu belirleyici yeni ilişkinin birincil anahtarı olacak Yeni ilişkiye ad vermeli Kaynak ilişkiye yeni ad vermeli

Örnek - 1NF’ten 2NF’e Sipariş-ürün (sipariş-no, ürün-no, ürün-ad, ürün-fiyat, sipariş-mikt, toplam) 1. Karmaşık anahtardan kısmı işlevsel bağımlı olan özellikleri çıkarıp yeni ilişkiye aktarmalı sipariş-ürün (sipariş-no, ürün-no, sipariş-mikt, toplam ) (ürün-ad, ürün-fiyat) 2. Bu yeni ilişkiye, çıkarılmış özellikleri belirleyen özelliğin (özelliklerin) kopyasını ilave etmeli. Bu belirleyici yeni ilişkinin birincil anahtarı olacak (ürün-no,ürün-ad, ürün-fiyat ) Sipariş-ürün (sipariş-no, ürün-no, sipariş-mikt, toplam ) 3. Yeni ilişkiye ad vermeli ve birincil anahtarı belirlemeli Ürün (ürün-no, ürün-ad, ürün-fiyat)

Üçüncü Normal biçim (3NF) Tanım: 2NF’te olan ve her bir anahtar olmayan özelliği birincil anahtara dolaylı olmadan bağlı olan ilişki üçüncü normal biçimdedir Yeni ilişkide dolaylı bağımlılığı aradan götürmeli 2NF’ten 3NF’e geçiş adımları Anahtar olmayan özelliğe dolaylı bağımlı olan özellikleri çıkarmalı ve onları yeni ilişkiye aktarmalı Bu ilişkiye , çıkarılmış özellikleri belirleyen özelliğin(özelliklerin) kopyasını ilave etmeli. Bu belirleyici yeni ilişkinin birincil anahtarı olacaktır. Bu ilişkiyi adlandırmalı Kaynak ilişkiye yeni ad vermeli

Örnek - 2NF’ten 3NF’e Sipariş (sipariş-no, sipariş_tarihi, müşt-no , müşt-ad, müşt-adr, genel-toplam) 1. Anahtar olmayan özelliğe dolaylı bağımlı olan özellikleri çıkarmalı ve onları yeni ilişkiye aktarmalı (müşt-ad, müşt-adr ) Sipariş (sipariş-no, sipariş_tarihi, müşt-no, toplam) 2. Bu ilişkiye , çıkarılmış özellikleri belirleyen özelliğin(özelliklerin) kopyasını ilave etmeli. Bu belirleyici yeni ilişkinin birincil anahtarı olacaktır. (müşt-no, müşt-adı, müşt-adr ) Sipariş (sipariş-no, sipariş_tarihi, müşt-no, toplam) 3. Bu ilişkiyi adlandırmalı Müşteri (müşt-no, müşt-adı, müşt-adr )

Örnek – 3NF’te bulunan ilişkiler Müşteri (müşt-no, müşt-adı, müşt-adr ) Sipariş (sipariş-no, sipariş_tarihi, müşt-no, genel-toplam) Sipariş-ürün (sipariş-no, ürün-no, sipariş-miktar, toplam) Ürün (ürün-no, ürün-ad, ürün-fiyat) Müşteri Sipariş Sipariş-ürün Ürün müşt-no sipariş-no ürün-no sipariş-no, ürün-no