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

Benzer bir sunumlar


... konulu sunumlar: "Bütünlük kısıtlamları, Nitelikler Arası Bağımlılıklar ve NORMalizasyon"— Sunum transkripti:

1 Bütünlük kısıtlamları, Nitelikler Arası Bağımlılıklar ve NORMalizasyon
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, Navathe, Fund. of Database Systems, 5th ed., Addison Wesley

2 Veri tabanı,2009 Gİrİş 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ı

3 Guidelines to “good” relation schemas
Veri tabanı,2009 "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)

4 Anamolies in schemas EMP_PROJ(Emp#, Proj#, Ename, Pname, No_hours)
Veri tabanı,2009 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.

5 Veri tabanı,2009 İşlevsel Bağımlılık 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.

6 ÖRNek A B C D 1 X E 2 Y 3 4 Olgu seviyesindeki bağımlılık örnekleri:
Veri tabanı,2009 ÖRNek A B C D 1 X E 2 Y 3 4 Olgu seviyesindeki bağımlılık örnekleri: D  C AB  CD AC  BD AD  BC BC  D

7 İşlevsel Bağımlılık türlerİ
Veri tabanı,2009 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

8 İşlevsel bağımlılık türetme
Veri tabanı,2009 İşlevsel bağımlılık türetme Armstrong Aksiyomları, Dönüşlülük: Arttırma: Geçişlilik: Birleşim: Ayrıştırma: Sözde geçişlilik: 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 İşlevsel bağımlılık kümesinin kapanışı, F+
Veri tabanı,2009 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ı: T={X} F’deki her WZ için; eğer T değiştiği sürece 2. adımı tekrarla.. Sonuçta X+ =T olarak bulunur.

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

11 Kanonik örtü, Fc Veri tabanı,2009 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ü, Fc denir. Böylece Fc ‘de önemsiz, kısmi ve geçişli bağımlılıklar olmamalı. F= Fc olması: F’deki işl. bağ. , Fc’den türetilebilir. Fc’deki işl. bağ. ,F’den türetilebilir. Fc Kanonik örtünün sağlaması gereken 4 koşul: (canonical form) İşl.bağ. sol tarafları birbirinden farklı olmalı. (Artık işl. Bağımlılık içermemeli.) İşl.bağ. sol tarafında artık nitelik olmamalı. İşl.bağ. sağ tarafında artık nitelik olmamalı. Örnek: R(A,B,C,D), F: BC CA BC A B A Fc= BC CA

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=Ec. 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 Artık bağımlılık Veri tabanı,2009 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ı) T={X} F-{f}’teki her WZ için; eğer T değiştiği sürece 2. adımı tekrarla.. 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.

14 ÖRNEK: R(A,B,C,D,E,G) F: ABCDE G  BD BC  E CG A BDE  ACG
Veri tabanı,2009 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 Super anahtar, anahtar R nitelik kümesi üzerinde
Veri tabanı,2009 Super anahtar, anahtar 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.

16 Normalizasyon Bir R, ilişki tablosunda
Veri tabanı,2009 Normalizasyon 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!!)

17 ÖrnekLER: ÖĞRENCİ (ÖNO, ÖADI,DERS(DADI,NOTU)) 1nf değil
Veri tabanı,2009 ÖrnekLER: ÖĞ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..

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

19 ÖRNEKLER (ELMASRI/NAVATHE)

20 ÖRNEKLER (ELMASRI/NAVATHE)

21 ÖRNEKLER (ELMASRI/NAVATHE)

22 ÖRNEKLER (ELMASRI/NAVATHE)
Anadolu yakası arsaları 100,200,300, m2 Avrupa Yakası arsaları: 250,550,850,1150..m2 olsun... AREA  COUNTY_NAME

23 İlişkilerin ayrıştırılması
Veri tabanı,2009 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; R’nin herbir niteliği en az bir Ri’de bulunmalı. Ayrıştırma yitimsiz olmalı (lossless-join) Olabilecek her r tablo olgusunun Ri’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. 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: A B C a1 b1 c1 c2 a2 b2 c3 c4 a3 a4 A B C a1 b1 c1 a2 b2 c3 a3 c2 a4 c4 A B a1 b1 a2 b2 a3 a4 B C b1 c1 b2 c3 c2 c4

24 ikili ayrıştırılmada yitimsizlik koşulu
Veri tabanı,2009 ikili ayrıştırılmada yitimsizlik koşulu 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?

25 Veri tabanı,2009 R’nin {R1,R2,...Rk} şeklinde çok ilişkiye ayrıştırmada yitimsizlik sınaması (Bkz. Sf:88,89)

26 İşlevsel bağımlılıkların korunması algoritması
Veri tabanı,2009 İşlevsel bağımlılıkların korunması algoritması Bkz. Sf:90, ve Örnek4.17

27 Veri tabanı,2009 BCNF ayrıştırması 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: R1=R, k=1, T={R} F+’yı hesapla 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. 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.

28 Veri tabanı,2009 3NF ayrıştırması 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: k=1, T={} Fc’yı hesapla Fc’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. 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. 4.20 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.


"Bütünlük kısıtlamları, Nitelikler Arası Bağımlılıklar ve NORMalizasyon" indir ppt

Benzer bir sunumlar


Google Reklamları