110 likes | 246 Views
PRZYKŁAD. Anomalie w 3PN : R = ( { S , P , W }, { SP W, W P }) S – student, P – przedmiot, W – wykładowca R jest w 3PN ale wyst ę puje anomalia do łą czania i usuwania :. Nie można przypisać wykładowcy do przedmiotu zanim nie przypisze się co najmniej
E N D
PRZYKŁAD Anomalie w 3PN : R = ( { S, P, W }, { SP W, W P }) S – student, P – przedmiot, W – wykładowca R jest w 3PN ale występuje anomalia dołączania i usuwania : Nie można przypisać wykładowcy do przedmiotu zanim nie przypisze się co najmniej jednego studenta do przedmiotu. Gdy usuwamy ostatniego studenta uczęszczającego na dany przedmiot tracimy informację o prowadzącym przedmiot
Rozkład bez straty danych: E = ( { I, N, P, O } { I N, IP O } Rozkład według zależności funkcyjnej : I N E1= ( { I, N } { I N } ) E2= ({ I, P, O } , { IP O } ) E : E1: E2 : I N P O I N I P O 10 f a 3 10 f 10 a 3 10 f b 4 11 g 10 b 4 11 g a 3 12 h 11 a 3 12 h a 3 12 a 3
Rozkład bez straty zależności funkcyjnych: R = ( { S, W, D } { S W, S D, D W, W D } ) Rozkład według zal. funkcyjnej : DW R1 = ( { D, W } { DW, WD } )R2 =({ D, S }, { SD} ) R:R1:R2 : S W DD WD S 1 x a a x a 1 2 y b b y b 2 3 x a a 3 4 y b b 4
Rozkład bez straty danych • ale nie bez straty zależności funkcyjnych: R = ( {S, W, D } { SW, SD, DW, WD } ) Rozkład według zal. funkcyjnej : SW R3 = ({ S, W } { SW } )R4 =({ D, S }, { SD} ) R:R3:R4 : S W DS WD S 1 x a 1 x a 1 2 y b 2 y b 2 3 x a 3 x a 3 4 y b 4 y b 4
Rozkład bez straty zal. funkcyjnych ale nie bez straty danych: R = ( {A, B, C, D } { AB, BCD, DB, DC} ) R1= ({A, B} { AB })R2=({ B, C, D}, { BCD, DB, DC } ) R :R1: R2 : A B C D A B B C D a b c d a b b c d a1 b c1 d1 a1 b b c1 d1 a2 b c1 d1 a2 b R1R2 :A B C D a b c d a b c1 d1 a1 b c d a1 b c1 d1 a2 b c d a2 b c1 d1
ALGORYTM DEKOMPOZYCJI CODDA – FAGINA Dane : S0 = { R = (U, F ) } Wynik :SD = { Ri = ( Ui , Fi ) , i = 1,...,n } SDjest równoważny z S0bez straty danych Rijest w 3PN , 1 i n.
1. Określ wszystkie klucze w schemacie R. • 2. Przekształć S0 do S1 = { Rj = ( Uj, Fj ) , j = 1,...,k } takiego, że: • - Rj jest w 2PN , 1i k • - S1jest równoważny z S0 w sensie RD. • (Wykorzystaj Twierdzenie, tzn : • znajdź zależność funkcyjną postaci X Y F+, X K • dla pewnego klucza K i rozłóż schemat na 2 odpowiednie projekcje ; • powtarzaj postępowanie) • 3. Określ atrybuty kluczowe i niekluczowe w każdym schemacieRj , j = 1,...,k
4. Przekształć S1 do SD = { Ri = ( Ui , Fi ) , i = 1,...,n } takiego, że : • - Ri jest w 3PN , 1i n. • - SD jest równoważny z S0w sensie RD • ( tzn.: znajdź schemat Ri S1 , który nie jest w 3PN • i zależności X Y F+, Y X F+, YZ F+ • takie, że X,Y,Z są parami rozłączne • i Zjest zbiorem atrybutów niekluczowych; • rozłóż Ri na dwa schematy Ri1 = Ri [ YZ] i Ri2 = Ri [ Y(U-Z) ]; • powtarzaj )
ALGORYTM BERNSTEINA {Uproszczona wersja } Dane : S0 = { R = ( U, F ) } Wynik :SD = { Ri = ( Ui , Fi ) , i = 1,...,n } SD jest równoważny z S0 bez straty zal. funkcyjnych (RF) Ri jest w 3PN , 1i n (Nie zawsze)
1. Usuń zbędne atrybuty z lewych stron zależności funkcyjnych, tzn.: • jeśli XY F+ i X – AY F+, to F+ := F+ - { XY}. • Oznacz otrzymany zbiór zależności przez F’. • 2. Znajdź minimalny zbiór F0 F’ taki, że F0+ = F’+ . • 3. Podziel F0 na rozłączne podzbiory F1, ... Fm takie, że : • Fi zawiera zal. fun. o identycznych poprzednikach(Ui ), i = 1,...,m. • 4. Grupowanie: • niech Fi = { Ui “coś” }, Fj = { Uj “coś” }; • jeśli Ui Uj F0+ i Uj Ui F0+ , • to utwórz jeden zbiór z Fi i Fj ; • oznacz otrzymany podział przez F1, ... , Fn.
5. Utwórz schematy relacyjne : • Ri= ( Ui , Fi ) , i =1,...,n • gdzie Ui := { A U : (XYFi) ( A XY ) }, • 6. Wyznacz klucze : • Kjest kluczem Ri jeśli istnieje zal. fun. KY Fi+ . • 7. SD:= { Ri = ( Ui , Fi ) , i = 1,...,n }