Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bütünlük kısıtlamları, Nitelikler Arası Bağımlılıklar ve NORMalizasyon Kaynaklar (türkçe, ing.): Prof. Dr. Ünal Yarımağan, Veri Tabanı Sistemleri Elmasri,

Benzer bir sunumlar


... konulu sunumlar: "Bütünlük kısıtlamları, Nitelikler Arası Bağımlılıklar ve NORMalizasyon Kaynaklar (türkçe, ing.): Prof. Dr. Ünal Yarımağan, Veri Tabanı Sistemleri Elmasri,"— Sunum transkripti:

1 Bütünlük kısıtlamları, Nitelikler Arası Bağımlılıklar ve NORMalizasyon Kaynaklar (türkçe, ing.): Prof. Dr. Ünal Yarımağan, Veri Tabanı Sistemleri Elmasri, Navathe, Fund. of Database Systems, 5th ed., Addison Wesley 1 Veri tabanı,2009

2  Bazı niteliklerin birbirinden bağımsız olmaması neticesinde, birbirinden bağımsız belirlenememesinden kaynaklanan kısıtlamalardır.  Bir ilişki tablosunda bağımlılıkların en az olması istenir. Çünkü, ona göre daha az denetim yapılacaktır.  Konu Başlıkları:  Aykırılıklar (anomalies.)  İşlevsel Bağımlılık (Kısmi, tam, önemli, önemsiz, geçişli bağımlılık)  İşevsel Bağımlılık Kümesinin Kapanışı, Armstrong Aksiyomları, Kanonik Örtü, Artıklık  Normalizasyon (1NF,2NF,3NF,BCNF)  Ayrıştırma Algoritmaları 2 Veri tabanı,2009

3 "good" relation schemas depends on the grouping of attributes  Some guidelines:  Attributes of different entities (EMPLOYEEs, DEPARTMENTs, PROJECTs) should not be mixed in the same relation. Only foreign keys should be used to refer to other entities. Entity and relationship attributes should be kept apart as much as possible.  Information should not be stored redundantly  Wastes storage  Causes problems with update anomalies  Insertion anomalies  Deletion anomalies  Modification anomalies  Relations should be designed such that their tuples will have as few NULL values as possible. Attributes that are NULL frequently could be placed in separate relations (with the primary key) 3 Veri tabanı,2009

4 EMP_PROJ(Emp#, Proj#, Ename, Pname, No_hours)  Update Anomaly:  Changing the name of project number P1 from “Billing” to “Customer- Accounting” may cause this update to be made for all 100 employees working on project P1.  Insert Anomaly:  Cannot insert a project unless an employee is assigned to it.  Conversely, cannot insert an employee unless a he/she is assigned to a project.  Delete Anomaly:  When a project is deleted, it will result in deleting all the employees who work on that project.  Alternately, if an employee is the sole employee on a project, deleting that employee would result in deleting the corresponding project. 4 Veri tabanı,2009

5  R ilşkisine ait şemada, X ve Y bütün niteliklerin (R)’nin alt kümeleri olsun. Yukarıdaki ifade, X  Y olması için gerekli olan koşuludur. X  Y, “X niteliği Y’yi belirler” demektir.  TAŞIT (PLAKA_NO, MARKA, MODEL, YIL, AĞIRLIK,RENK) PLAKA_NO  MARKA, MODEL, YIL, AĞIRLIK,RENK MARKA, MODEL  AĞIRLIK  Kavramsal seviyede tanımlanan bir bağımlılık bütün olgular için sağlanmalıdır. 5 Veri tabanı,2009

6 ABCD 1AXE 2AYB 2BXC 3CXC 4AXE 6 Olgu seviyesindeki bağımlılık örnekleri: D  C AB  CD AC  BD AD  BC BC  D

7 f: X  A için;  Eğer X’in en az bir özalt kümesi A’yı belirliyorsa, f kısmi ‘dir.  Eğer X’in hiç bir özalt kümesi A’yı belirlemiyorsa, f tam ‘dir.  Eğer A, X’in bir alt kümesi ise, f önemsizdir.  Eğer A, X’in bir alt kümesi değil ise, f önemlidir.  Eğer A  B ise X  B geçişli ‘dir.  En değerli, en çok bilgi taşıyan bağımlılıklar: önemli, tam ve geçişli olmayanlardır. ÖRNEK: R( ÖNO,ÖADI, BNO, BADI,FAKNO, DKODU, DADI, KRD, NOTU)  BNO,BADI,FAKNO  BNO,FAKNO önemsiz..  ÖNO, DKODU  NOTU önemli, tam  ÖNO, DKODU,DADI  NOTU kısmi  BNO  FAKNO tam  ÖNO  FAKNO geçişli 7 Veri tabanı,2009

8  Armstrong Aksiyomları, 8 Veri tabanı,2009 Dönüşlülük: Geçişlilik: Birleşim: Ayrıştırma: Sözde geçişlilik: Arttırma: R(A,B,C,D,E,G) F: A  BD BC  EG D  E ise; DG  E ? A  E ? A  ABD ? A  B ve A  D AC  EG

9  R nitelik kümesi üzerinde F: işlevsel bağımlılık kümesi olsun.  R’deki tüm önemsiz işlevsel bağımlılıklar  F’den türetilecek tüm kısmi ve geçişli bağımlılıkları içeren işlevsel bağımlılık kümesine F’in kapanışı (closure) F + denir. (Örnek için Bkz. Örnek 4.7)  R nitelik kümesi üzerinde F işl.bağ. kümesi olsun. X, R’nin alt kümesi olmak üzere X’in kapanışı X +, X’in belirlediği niteliklerin tümüdür.  X +, hesaplama algoritması: 1) T={X} 2) F’deki her W  Z için; eğer 3) T değiştiği sürece 2. adımı tekrarla.. 4) Sonuçta X + =T olarak bulunur. 9 Veri tabanı,2009

10  R ( A, B, C, D,E,G)  A  BCDE  G  BD  BC  E  CG  A  BDE  ACG Veri tabanı,  A+ = R  B+ = B  C+ = C  D+ = D  E+ = E  G+ = BDG  (AB)+ = ?  (BC)+ = ?  (CG)+ = ?  (CDE)+= ?  (DEG)+ =?  (BCDE)+=?

11  F işlevsel bağımlılık kümesine eş olup en az işlevsel bağımlılık içeren kümeye kanonik örtü, F c denir. Böylece F c ‘de önemsiz, kısmi ve geçişli bağımlılıklar olmamalı.  F= F c olması:  F’deki işl. bağ., F c ’den türetilebilir.  F c ’deki işl. bağ.,F’den türetilebilir.  F c Kanonik örtünün sağlaması gereken 4 koşul: (canonical form) 1) İşl.bağ. sol tarafları birbirinden farklı olmalı. 2) (Artık işl. Bağımlılık içermemeli.) 1) İşl.bağ. sol tarafında artık nitelik olmamalı. 2) İşl.bağ. sağ tarafında artık nitelik olmamalı.  Örnek:  R(A,B,C,D), F: B  C C  A BC  A B  A  F c = B  C C  A 11 Veri tabanı,2009

12 Example (from elmasri, navathe) Let the given set of FDs be E : {B → A, D → A, AB → D}. Find the minimum cover of E=E c. 1.) First canonical form is satisfied. (all left sides are different.) 2-1 ve 2-2) Any redundant attribute on the left/right hand side? Can AB → D be replace with A  D or B  D? B  A, B  AB, AB  D  B  D is valid.  AB → D can be replaced with B  D. E= {B → A, D → A, B → D}. 4.)Lastly, check any redundant dependency? B  D, D  A  B  A is valid. Thus B  A is redundant. Therefore, Ec={D → A, B → D}.

13  f, F-{f}’deki işl.bağ. lardan türetilebiliryorsa, f artık bağımlılıktır.  Artıklık algoritması: ((f: X  Y)’nin F’de artık olup/olmamasının bulunması) 1) T={X} 2) F-{f}’teki her W  Z için; eğer 3) T değiştiği sürece 2. adımı tekrarla.. 4) Sonuçta eğer ise f:X  Y, F’de artıktır.  2 nokta önemli:  f: X  Y ‘de Y tek değilse, ayrıştırıp her bir X .. İçin artıklık kontrolü yapılmali.  Bütün artık olan bağımlıılkları bulurken, her bulunan artık bağımlılığı F’den çıkarıp o şekilde devam etmeliyiz, yoksa hatalı olur. 13 Veri tabanı,2009

14 14 R(A,B,C,D,E,G) F: A  BCDE G  BD BC  E CG  A BDE  ACG Fc: A  BDE G  BD BC  E BDE  ACG A  B A  C A  D A  E G  B G  D BC  E CG  A BDE  A BDE  C BDE  G

15  R nitelik kümesi üzerinde  K, nitelik alt kümesinin kapanışı R’ye eşitse (K + =R ise), K, super anahtardır.  K, super anahtar ve K’nin hiçbir alt kümesi R’deki tüm nitelikleri belirlemiyorsa, K (aday) anahtardır.  Örnek: R(A,B,C,D,E) ilişki şeması için F= { A  C, B  D, D  AE, CE  B} ise R’nin aday anahtarlarını belirleyiniz?  A+  ? B+  ? C+  ? D  ? AB  ? AC  ? AD  ?  AE  ? BC  ? BD  ? BE  ? CD  ? CE  ?  TANIM: İlişkinin anahtarlarının en az birinde yer alan niteliklere ASAL; hiç birinde yer almayanlara ise ASAL OLMAYAN nitelik denir. 15 Veri tabanı,2009

16  Bir R, ilişki tablosunda  Tüm niteliklerin değer alanları yalın(atomic) ise R, 1NF’dir. (Bu zaten RM’de relation(table) tanımı..)  Asal olmayan tüm nitelikler, tüm anahtarlara tam işlevsel bağımlı ise R, 2NF’dir.  Asal olmayan tüm nitelikler, tüm anahtarlara geçişli bağımlı değil ise R, 3NF’dir. (Asal olmayan nitelikler birbirinden bağımsız olmalı...)  R’de tüm belirleyenler, ilişkinin anahtarı ise R, BCNF’dir. (asal nitelikler ile ilgili bir kısıtlama getiriyor!!) 16 Veri tabanı,2009

17  ÖĞRENCİ (ÖNO, ÖADI,DERS(DADI,NOTU)) 1nf değil  ÖĞRENCİ (ÖNO, ÖADI,DADI,NOTU) 1nf  SATICI (ÜKODU,FNO,FADI,FADRESİ,SFİYATI)  FNO  FADI, FADRESİ  2nf değil  TAŞIT (PLAKANO,MARKA,MODEL,YIL,AĞIRLIK,RENK)  PLAKANO  TAŞIT talosu  MARKA, MODEL  AĞIRLIK  O zaman TAŞIT, 2nf fakat; 3nf değil..  R(A,B,C,D,E) için F= { A  C, B  D, D  AE, CE  B} ise anahtarlar: B, D, AE, CE oluyor...  3nf sağlıyor.  A  C; fakat A anahtar değil  BCNF değil.. Veri tabanı,

18  ÖĞRDERS (ÖĞRNO,DKODU,DADI,NOTU) Veri tabanı, DKODU ÖĞRNO DADI NOTU  DADI  DKODU  DKODU  DADI  DKODU, ÖĞRNO  NOTU  DADI, ÖĞRNO  NOTU ÖĞRDERS, 3 nf olup bcnf değildir..  KURS (ÖĞRNO,DKODU,ÖĞRETMEN,NOTU) DKODU ÖĞRNO NOTU  ÖĞRETMEN  DKODU  DKODU, ÖĞRNO  NOTU ÖĞRETMEN ANAHTAR NEDİR? KURS, 2 nf değildir..

19

20

21

22 Anadolu yakası arsaları 100,200,300, m2 Avrupa Yakası arsaları: 250,550,850,1150..m2 olsun... AREA  COUNTY_NAME

23  R nitelik kümesi üzerinde F: işlevsel bağımlılık kümesi olsun. r, R’de bir durum (state) olmak üzere; {R1, R2, Rn}’nin, R’nin doğru bir ayrıştırması olması için; 1) R’nin herbir niteliği en az bir Ri’de bulunmalı. 2) Ayrıştırma yitimsiz olmalı (lossless-join)  Olabilecek her r tablo olgusunun R i ’lere göre izdüşümlerinin doğal birleşimi (natural join) r’ye eşit olmalıdır. Buna göre, Olgu seviyesinde yitimsiz olması, ayrışmanın kavramsal olarak yitimsiz olmasını gerektirmiyor. Çünkü bazı olgular için yitimsiz ayrışırken; aynı fonk. bağ. Kümesi ve parçalanma için başka olgularda yitimli olabilyor. 3) Ayrıştırma işlevsel bağımlılıkları korumalıdır.  2. madde mutlaka sağlanması gerekirken, 3. madde her zaman mümkün olmamaktadır.  Örnek: R(A,B,C) için F= {A  B, C  B} olsun.  R1 (A,B) ve R2(B,C) parçalaması için aşağıdaki olguya bakalım: 23 Veri tabanı,2009 ABC a1b1c1 a2b2c3 a3b1c2 a4b2c4 AB a1b1 a2b2 a3b1 a4b2 BC b1c1 b2c3 b1c2 b2c4 ABC a1b1c1 a1b1c2 a2b2c3 a2b2c4 a3b1c1 a3b1c2 a4b2c3 a4b2c4

24  R’nin {R1,R2} ikili ayrıştırılması için yitimsizlik koşulları şöyledir:  R1 ve R2’de ortak nitelik(ler) bulunmalıdır.  R1 ve R2’deki ortak nitelik(ler), R1 ve R2’den en az birinin anahtarı olmaldır.  Örnek: R(A,B,C) için F= {A  B, C  B} olsun.  R1 (A,B) ve R2(B,C) parçalamasında ortak nitelik B, herhangib ir tablonun anahtarı değil. Bu yüzden ayrıştırma yitimsiz değil.  Örnek: R(A,B,C,D,E) için F= {A  BC, D  B, E  A, CD  E} olsun.  R’nin anahtar kümesini belirleyin.  R1(A,B,C) ve R2(A,D,E) ayrıştırması için ne söylenebilir? Veri tabanı,

25  (Bkz. Sf:88,89) Veri tabanı,

26  Bkz. Sf:90, ve Örnek4.17 Veri tabanı,

27  R nitelik kümesi üzerinde F: işlevsel bağımlılık kümesi olsun. R, BCNF değilse ayrıştırma aşağıdaki gibidir: 1) R1=R, k=1, T={R} 2) F + ’yı hesapla 3) T’de BCNF olmayan her Ri için,  F + ’da bağımlılıklardan Ri’de tanımlı, önemli her X  Y bağımlılığı için  Eğer X Ri’nin anahtarı değilse: Ri’den Y’deki nitelikleri çıkar, k++, T’ye Rk(X,Y) ilişki şeması ekle. 4) T’deki tüm ilşkiler BCNF oluncaya kadar 3.adımı tekrar et.  Örnek için Bkz ve 4.19  Birden çok farklı BCNF ayrıştırması mümkündür.  BCNF ayrıştırmaların hepsi yitimsizdir, fakat bazı ayrıştırmalar işl. bağımlılıkları korumayabilir. 27 Veri tabanı,2009

28  R nitelik kümesi üzerinde F: işlevsel bağımlılık kümesi olsun. R, 1NF ve 2NF fakat 3NF değilse ayrıştırma aşağıdaki gibidir: 1) k=1, T={} 2) F c ’yı hesapla 3) F c ’de her X  Y bağımlılığı için eğer T’deki Ri ilişkilerinden hiçbiri XY niteliklerini içermiyorsa; k++, T’ye Rk(X,Y) ilişkisini ekle. 4) Sonuçta eğer T’deki Ri ilişkilerinden hiçbiri, R’nin anahtarlarından hiçbirini içermiyorsa; k++, T’ye Rk(K) ilişkisini ekle (K, R’nin anahtarlarından biri)  Örnek için Bkz  Her Fc için tek bir ayrıştırma mümkündür.  3NF ayrıştırma ile her zaman, yitimsiz ve işl. bağımlılıkları koruyan ayrıştırmalar mümkündür. 28 Veri tabanı,2009


"Bütünlük kısıtlamları, Nitelikler Arası Bağımlılıklar ve NORMalizasyon Kaynaklar (türkçe, ing.): Prof. Dr. Ünal Yarımağan, Veri Tabanı Sistemleri Elmasri," indir ppt

Benzer bir sunumlar


Google Reklamları