PODSTAWY BAZ DANYCHmath.uni.lodz.pl/~cybula/bd/pbd/wyklad_01_04_podstawy_baz_danych... · System...
Transcript of PODSTAWY BAZ DANYCHmath.uni.lodz.pl/~cybula/bd/pbd/wyklad_01_04_podstawy_baz_danych... · System...
Literatura
1. Connolly T., Begg C.: Systemy baz danych. Tom 1 i tom 2.
Wydawnictwo RM 2004.
2. R. Elmasri, S. B. Navathe: Wprowadzenie do systemu baz
danych, Wydawnictwo Helion 2005.
3. Garcia-Molina H., Ullman J.D.,:Widom J.: Implementacja
systemów baz danych. WNT 2003.
4. Ullman J.D., Widom J. : Podstawowy wykład z systemów baz
danych. PWN, 1999.
5. Ladanyi H.: SQL. Księga eksperta. Wydawnictwo Helion 2000.
6. Barker R.: Case metod - modelowanie funkcji i procesów 2004.
7. Barker R.: Case metod - modelowanie związków encji. 2004.
22009/2010 - Notatki do wykładu "Podstawy baz danych"
PODSTAWY
BAZ DANYCH
1. Pojęcie Bazy Danych i
Systemu Zarządzania Bazą
Danych
32009/2010 - Notatki do wykładu "Podstawy baz danych"
Proces przechodzenia od świata rzeczywistego do jego
informacyjnej reprezentacji w komputerze nazywać będziemy
modelowaniem,
a pewien dobrze zdefiniowany sposób jego opisu
modelem danych,
przy czym sposób zapisania wyselekcjonowanych informacji jaka
będzie potrzebna użytkownikowi
schematem danych.
Pomiędzy informacjami mogą występować powiązania (też są
informacjami).
Zbiór danych (razem z powiązaniami) nazywać będziemy
bazą danych (BD).
Środki sprzętowe i oprogramowanie umożliwiające współpracę z
bazą danych nazywamy
systemem zarządzania bazą danych, (SZBD).
System zarządzania bazą danych (SZBD)
42009/2010 - Notatki do wykładu "Podstawy baz danych"
• występowanie obiektów (entity – encja) - przedmiotów
materialnych lub abstrakcyjnych reprezentowanych przez
pewne nazwy o których chcemy pamiętać informacje,
np. osoba, zatrudnienie .
• pozostawanie tych obiektów we wzajemnych powiązaniach
(relationship) między sobą wyrażonych przez n-argumentową
funkcję zdaniową (n > 1), której argumentami są nazwy
obiektów,
np. osoba jest zatrudniona
• posiadanie przez obiekty wartości atrybutów (value attribute).
np. pesel, nazwisko, imie, data_ur dla obiektu osoba
Fakty świata rzeczywistego, o których wiedza reprezentowana jest w bazach danych
52009/2010 - Notatki do wykładu "Podstawy baz danych"
• opis danych
- logiczny,
- fizyczny;
• możliwości korzystania z bazy;
• integralność danych;
- określenie pewnych warunków, które muszą być spełnione
w bazie danych, niezależnie od tego, jakie są w niej
aktualnie zapisane wartości;
• poufność danych;
- prawa dostępu poszczególnych użytkowników; ( ustawa o
tajności danych)
• współbieżność dostępu;
- mechanizmy wykrywające sytuacje konfliktowe w
przypadku korzystania jednocześnie z BD przez wielu
użytkowników i ich rozwiązywanie;
• niezawodność.
Funkcje systemu zarządzania bazą danych
62009/2010 - Notatki do wykładu "Podstawy baz danych"
Poziomy opisu baz danych
Poziom pojęciowy
w procesie modelowania tworzenie przez projektanta bazy
danych przy pomocy pewnego języka opisu schematu danych
(DDL - Date Description Language ) i ściśle z nim związanego
modelu danych schematu pojęciowego.
Poziom wewnętrzny
schemat fizyczny określający sposoby organizacji danych w
pamięci zewnętrznej.
Poziom zewnętrzny
sposób widzenia danych przez poszczególnych użytkowników.
82009/2010 - Notatki do wykładu "Podstawy baz danych"
W zależności od
• języka opisu schematu danych
( DDL - Data Description Language ),
• języka manipulowania danymi
( DML - Data Manipulation Language )
wyróżnia się następujące modele danych:
Modele danych
• model hierarchiczny i model sieciowy; (historia)
• model relacyjny, (E. F. Cood - 1970); (obecny)
• model zorientowany obiektowo; (przyszłość)
• model relacyjno – obiektowy;
• model semistrukturalny. (przyszłość)
• …
92009/2010 - Notatki do wykładu "Podstawy baz danych"
W zależności od organizacji systemu bazy danych można dokonać
następujących podziałów:
1. ze względu na rozproszenie:
• lokalne bazy danych
- pamiętanie i udostępnianie danych odbywa się w obrębie
jednej instalacji komputerowej;
Organizacja systemu bazy danych
102009/2010 - Notatki do wykładu "Podstawy baz danych"
Organizacja systemu bazy danych
• rozproszone bazy danych
- składają się z wielu lokalnych baz danych znajdujących
się w różnych instalacjach komputerowych;
112009/2010 - Notatki do wykładu "Podstawy baz danych"
Organizacja systemu bazy danych
2. ze względu na liczbę modeli danych:
• jednomodelowe bazy danych
- przyjmuje się jeden model danych (np. relacyjny);
122009/2010 - Notatki do wykładu "Podstawy baz danych"
• wielomodelowe bazy danych
- dla jednej bazy danych może współistnieć wiele
schematów utworzonych na podstawie różnych modeli
danych.
Organizacja systemu bazy danych
132009/2010 - Notatki do wykładu "Podstawy baz danych"
Wybór SZBD
Wybór odpowiedniego SZBD
• model danych (relacyjny, obiektowy, …);
• rozmiar bazy;
• koszty oprogramowania;
• wydajność;
• niezawodność;
• bezpieczeństwo;
• ….
• kadra.
142009/2010 - Notatki do wykładu "Podstawy baz danych"
Oprogramowanie systemu zarządzania bazą danych
UNIX Linux Windows As 400
Oracle …, 8, 8i, 9i, 10i, 11 X X X X
DB2 7, 8, 9 X X X X
SQL Server 2000/…/2008 X
Sybase X
Informix X
MySQL 4, 5 (darmowe) ? X X
PostgreSQL (darmowe) X
Access X
…
152009/2010 - Notatki do wykładu "Podstawy baz danych"
Wspomnienia: dBase, FoxPro, Paradox, …
Języki programowania wykorzystywane do baz danych
• SQL – Structured Query Language
• Rozszerzenia np. PL/SQL, …
• Kompilatory
C++, Visual Basic, C# ...
• Java
• PHP
• …
• XML
• inne
162009/2010 - Notatki do wykładu "Podstawy baz danych"
Plan dalszych wykładów
• Modelowanie danych.
• Pojęcie modelu relacyjnego.
• Projektowanie – 2PN, 3PN, ......
• Metody implementacji baz danych.
– indeksy, pamiętanie danych, …
• SQL.
• PL/SQL.
• Optymalizacja zapytań.
• Transakcje.
• Współbieżność.
• Pojęcie modelu obiektowego.
172009/2010 - Notatki do wykładu "Podstawy baz danych"
PODSTAWY
BAZ DANYCH
2. Pojęcie modelu relacyjnego
182009/2010 - Notatki do wykładu "Podstawy baz danych"
Model danych definiuje:
– struktury danych,
– operacje,
– ograniczenia integralnościowe.
Relacyjny model danych:
– relacje,
– selekcja, projekcja, połączenie, operacje na zbiorach,
– klucz podstawowy, klucz obcy, zawężenie dziedziny,
unikalność, wartość pusta/niepusta.
Pojęcie modelu danych
192009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Niech dany będzie skończony zbiór
U := { A1, A2, ..., An },
którego elementy nazywać będziemy atrybutami. Niech każdemu
atrybutowi Ai U przyporządkowany będzie zbiór wartości
DOM(Ai) (może zawierać wartość pustą NULL) zwany dziedziną
atrybutu Ai (domeną).
Niech
Elementy tego zbioru nazywać będziemy krotkami.
Uwaga. Zbiór KROTKA(U) może być zbiorem nieskończonym
(gdy jeden ze zbiorów DOM(Ai) jest zbiorem nieskończonym).
Definicja. Relacją typu U nazywamy dowolny skończony
podzbiór zbioru KROTKA(U).
Zbiór wszystkich relacji typu U oznaczać będziemy przez
REL(U).
)ADOM(X : )UKROTKA(i
1..ni
Pojęcie krotki - definicja
202009/2010 - Notatki do wykładu "Podstawy baz danych"
Pojęcie krotki i relacji - oznaczenia
• Relację typu U oznaczać będziemy przez R(U), S(U), T(U), ..
• Jeżeli z kontekstu wynikać będzie jednoznacznie o jaki zbiór
atrybutów chodzi, pisać będziemy R, S, T, ...
• Krotki typu U oznaczać będziemy r(U), s(U), t(U)....
• Jeżeli z kontekstu wynikać będzie jednoznacznie typ krotki,
pisać będziemy r, s, t, ....
• Podzbiory zbioru atrybutów U oznaczać będziemy dużymi
literami X, Y, Z, ....
• Do oznaczenia sumy dwóch zbiorów X, Y U stosować
będziemy zapis XY zamiast XY.
• Dla zbioru atrybutów { A, B } zamiast pisać R({A, B}),
stosować będziemy zapis R(A,B).
212009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Relacja typu U := { I, N, P, O }
I N P O
10 Nowak a 3
10 Nowak b 4
11 Norek a 3
12 Burek a 3
… … … …
… … … …
Pojęcie krotki i relacji - przykład
U := { nr_Indeksu, Nazwisko_studenta, nr_Przedmiotu, Ocena}
R3
R2R1
krotka
wiersz
rekord
ang. tuple
222009/2010 - Notatki do wykładu "Podstawy baz danych"
Na relacjach definiuje się pewne operacje:
• operacje mnogościowe,
• operacje relacyjne.
Definicja. Sumą, różnicą, przekrojem i dopełnieniem relacji R(U)
nazywamy odpowiednio zbiory
(a) { tKROTKA(U) | tR(U) tS(U) };
(b) { tKROTKA(U) | tR(U) tS(U) };
(c) { tKROTKA(U) | tR(U) tS(U) };
(d) KROTKA(U) - R(U) ,
przy czym zbiór KROTKA(U) musi być zbiorem
skończonym, gdyż w przeciwnym wypadku byłaby
sprzeczność z definicją relacji.
Operacje na relacjach - Operacje mnogościowe
232009/2010 - Notatki do wykładu "Podstawy baz danych"
Operacje na relacjach - Operacje mnogościowe
Zbiory te będziemy oznaczać odpowiednio przez
R(U) S(U), R(U) S(U), R(U) - S(U), - R(U).
Zauważmy, że definicje te dotyczą relacji tego samego typu.
Przykład. Mamy dwie relacje Osoby i Osoby1 postaci:
ID_OS NAZWISKO IMIE
1 Lis Jan
2 Kot Adam
3 Norek Tadeusz
4 Krawczyk Adam
5 Lis Anna
242009/2010 - Notatki do wykładu "Podstawy baz danych"
Operacje na relacjach - Operacje mnogościowe
Przykład. Operacje mnogościowe w SQL.
SELECT id_os, nazwisko, imie FROM osoby
UNION /* suma */
SELECT id_os, nazwisko, imie FROM osoby1;
SELECT id_os, nazwisko, imie FROM osoby
INTERSECT /* część wspólna */
SELECT id_os, nazwisko, imie FROM osoby1;
SELECT id_os, nazwisko, imie FROM osoby
MINUS /* różnica */
SELECT id_os, nazwisko, imie FROM osoby1;
252009/2010 - Notatki do wykładu "Podstawy baz danych"
Operacje na relacjach – Operacja selekcji
Przykład. Przykład operacji selekcji w SQL.
SELECT *
FROM osoby
WHERE nazwisko = ’Lis’ AND imie =’Anna’;
( * oznacza, że wybieramy wszystkie atrybuty )
Operacja selekcji polega na wyborze z relacji podzbioru krotek
spełniających określony warunek selekcji, gdzie warunek selekcji
może np. być postaci:
• <atrybut> <operator relacyjny> <atrybut>
• <atrybut> <operator relacyjny> <wyrażenie>
• …
Te predykaty mogą być łączone operatorami logicznymi AND ,OR.
262009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Niech U będzie zbiorem atrybutów i X, Y U,
r KROTKA(X), s KROTKA(Y), Z := X Y.
Krotkę t KROTKA(Z) nazywamy złączeniem krotki r i s, co
oznaczamy t = r s, gdy t[X] = r i t[Y ] = s,
gdzie t[X] i t[Y ] oznacza obcięcie krotki t do atrybutów X i Y.
Przykład. Niech U := { I, N, P, O } i X := { I, N } i Y := { I, P, O }
oraz Z := X Y = { I, N, P, O }.
Jeżeli r(X) = { 10, Nowak } i s(Y) = { 10, a, 3 } to krotka t typu Z
postaci t(Z) = { 10, Nowak, a, 3 } jest złączeniem krotek r(X) i s(Y),
bo t[X] = { 10, Nowak } i t[Y] = { 10, a, 3 }.
Złączenie krotek - definicja
272009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Dla danej relacji R(U) oraz zbioru X U zbiór
R[X]: ={ t KROTKA(X) | ( r R(U) ( t = r[X] ) }.
nazywamy projekcją R na X.
Stwierdzenie. Jeżeli dana jest relacja R(U) i X U to
R[X]={ tKROTKA(X) | ( sKROTKA(U-X) ) (t s R(U))}.
Projekcja - definicja
Przykład. Mamy relację Student typu U := { I, N, P, O }, gdzie
U :={ nr_Indeksu, Nazwisko_studenta, nr_Przedmiotu, Ocena}
I N P O
10 Nowak a 3
10 Nowak b 4
11 Norek a 3
12 Burek a 3
282009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Przykłady dwóch projekcji:
I N
10 Nowak
11 Norek
12 Burek
Projekcja - przykład
I P O
10 a 3
10 b 4
11 a 3
12 a 3
Student[IN] Student[IPO]
SELECT I,N
FROM Student; SELECT I,P,N
FROM Student;
SELECT DISTINCT I,N
FROM Student;
SELECT DISTINCT I,P,N
FROM Student;
Przyjmijmy, że SELECT … zwraca tylko różne wiersze.
292009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Dla danych relacji R(X) i S(Y) relację
T := { tKROTKA(XY) | ( t[X]R ) ( t[Y]S ) }
typu XY nazywamy złączeniem relacji i oznaczamy przez R S.
Stwierdzenie. Jeżeli dane są relacje R(X) i S(Y) to
R S={ t KROTKA( XY ) | ( r R(X) ) ( s S(Y) )
( t = r s ) }.
Złączenie relacji - definicja
302009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Student(X), X = { I, N } i Oceny(Y), Y = { I, P, O }
U = XY = { I, N, P, O }
I N
10 Nowak
11 Norek
12 Burek
I P O
10 a 3
10 b 4
11 a 3
12 a 3
Złączenie relacji - przykład
Student (X) Oceny (Y)
312009/2010 - Notatki do wykładu "Podstawy baz danych"
I N P O
10 Nowak a 3
10 Nowak b 4
11 Norek a 3
12 Burek a 3
Złączenie relacji - przykład
Relacja Student Oceny typu U := { I, N, P, O } ma postać:
W języku SQL realizuje to polecenie:
SELECT s.I, s.N, o.P, o.O
FROM Student s JOIN Oceny o ON s.I = o.I;
lub równoważne
SELECT s.I, s.N, o.P, o.O
FROM Student s, Oceny o
WHERE s.I = o.I;
322009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Student(X), X = { I, N } i Oceny(Y), Y = { P, O }
U = XY = { I, N, P, O }
I N
10 Nowak
11 Norek
12 Burek
P O
a 3
b 4
Złączenie relacji - przykład
Student(X) Oceny(Y)
W języku SQL realizuje to polecenie:
SELECT s.I, s.N, o.P, o.O
FROM Student s, Oceny o;
lub równoważne
SELECT s.I, s.N, o.P, o.O
FROM Student s CROSS JOIN Oceny o;
332009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Niech U będzie zbiorem atrybutów i X,Y U.
Mówimy, że istnieje zależność funkcyjna między X i Y, co
oznaczamy X Y, gdy w każdej relacji
R(U) KROTKA(U)
istnieje pewna funkcja R[X] R[Y],
( przy różnych relacjach R(U) funkcje te mogą być różne ).
Zależności funkcyjne - definicja
Gdy
X = { A1, A2..., An } i Y = { B1, B2..., Bm },
gdzie Ai, Bi oznaczają pojedyncze atrybuty z U, to będziemy
również używać oznaczenia
A1A2...An B1B2...Bm.
342009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Dla danej relacji
R(U), X, Y U,
mówimy, że w R(U)
spełniona jest zależność funkcyjna X Y,
gdy
() ( r1, r2R(U) ) [ ( r1[X] = r2[X] ) ( r1[Y] = r2[Y] ) ].
Zależności funkcyjne - definicja
Przykład. Niech dany będzie
U:={nr_Indeksu, Nazwisko_studenta, nr_Przedmiotu, Ocena}
i relacja R(U) będzie określona następująco:
352009/2010 - Notatki do wykładu "Podstawy baz danych"
I N P O
1 A 101 3
1 A 102 4
2 B 101 3
3 C 101 3
Zależności funkcyjne - przykład
W relacji R(U) spełnione są następujące zależności funkcyjne
(nasze założenie): I N , IP O.
Zauważmy, że dla zbiorów { P } i { O } warunek z () jest również
spełniony, ale między tymi zbiorami nie istnieje zależność
funkcyjna.
Istotnie, po dodaniu krotki ( 3, C, 102, 3 ) warunek z () nie będzie
spełniony.
362009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Niech U := { Przedmiot, nr_Indeksu, Ocena,
nr_Egzaminatora, Godzina_egzaminu, Sala }
tzn. U := { P, I, O, E, G, S }.
Aksjomaty Armstronga - przykład
Zamiast zależności funkcyjnej P GS można łatwo wprowadzić
dwie zależności P G i P S. Poza tym np. z zależności P GS
i PGS E wynika zależność P E.
Na tym zbiorze atrybutów można określić np. następujący zbiór
zależności funkcyjnych:
F := { P GS, GS P, PI O, GI PS, PGS E }.
372009/2010 - Notatki do wykładu "Podstawy baz danych"
Przez F+ oznaczmy najmniejszy (ze względu na relację
zawierania) zbiór zależności funkcyjnych, który zawiera zbiór F i
dla dowolnych X, Y, Z U spełnia następujące aksjomaty:
Aksjomaty Armstronga - domknięcie zbioru F
Definicja. Niech U będzie zbiorem atrybutów i niech
F { X Y | ( X U ) ( Y U ) }.
F1. ( Y X ) [ (X Y ) F+ ], (zwrotność);
F2. [ (X Y ) F+ ] [ (XZ YZ ) F+ ], (poszerzalność);
F3. [ (X Y ) F+ (Y Z ) F+] [ (X Z ) F+ ],
(przechodniość).
Zbiór F+ nazywamy najmniejszym domknięciem zbioru F.
382009/2010 - Notatki do wykładu "Podstawy baz danych"
Aksjomaty Armstronga
Uwaga. Armstrong (1974) wykazał, że zbiór F+ można otrzymać
ze zbioru F używając tylko reguł wnioskowania F1, F2 i F3.
Uwaga. Niech U będzie zbiorem atrybutów i niech F będzie
zbiorem zależności funkcyjnych. Wykazano, że zbiór F+ jest
zbiorem wszystkich możliwych zależności funkcyjnych, które
można w sposób logiczny wyprowadzić z zależności ze zbioru F.
Stwierdzenie. (wynikające z aksjomatów Armstronga).
F4. [ (X Y ) F+ (YW Z ) F+] [ (XW Z ) F+ ],
F5. [ (X Y ) F+ (X Z ) F+] [ (X YZ ) F+ ],
F6. [ (X YZ ) F+ ] [ (X Y ) F+ (X Z ) F+ ].
392009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Niech dla danego zbioru atrybutów U zbiór F będzie
zbiorem zależności funkcyjnych określonych na U.
Parę uporządkowaną
RR := ( U, F )
nazywamy schematem relacyjnym o zbiorze atrybutów U i ze
zbiorem zależności F.
Schemat relacyjny i jego związek z relacją - definicja
Definicja. Mówimy, że relacja R jest przypadkiem schematu
relacyjnego RR := ( U, F ), (lub, że jej schematem jest RR ), gdy R
jest relacją typu U i spełniona jest w niej każda zależność
funkcyjna X Y F.
Zbiór wszystkich relacji R o schemacie RR oznaczać będziemy
przez INST(RR).
402009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Dla danego schematu relacyjnego
RR := ( U, F ) i X U
schemat relacyjny ( X, G ) nazywamy projekcją schematu RR na
zbiór X,
co oznaczamy przez RR[X], gdy
G+ = { (Y Z ) F+ | Y Z X }+,
tzn. G jest podzbiorem zbioru tych zależności ze zbioru F+, w
których występują tylko atrybuty ze zbioru X.
Schemat relacyjny - projekcja
412009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Dla schematów relacyjnych
RR := ( X, F ) i SS := ( Y, G )
schemat relacyjny ( Z, H ) nazywamy złączeniem schematów RR i SS,
co oznaczamy przez RR SS, gdy
Z = X Y i H = F G.
Schemat relacyjny - złączenie
422009/2010 - Notatki do wykładu "Podstawy baz danych"
Rozkładalność schematów relacyjnych
Twierdzenie. Schemat relacyjny RR := ( U, F ) jest rozkładalny bez
straty danych na schematy relacyjne
RR[XY] i RR[XZ], X Y Z = U, Y Z =
wtedy i tylko wtedy, gdy
( X Y ) F+ lub ( X Z ) F+
tzn., gdy dla każdej relacji R o schemacie R R := ( U, F ) mamy
( R = R[XY] R[XZ] ) [ (XY)F+ (XZ )F+ ].
X Y Z
Definicja. Mówimy, że schemat relacyjny RR := ( U, F ) jest
rozkładalny bez straty danych na dwa schematy relacyjne
RR[X] i RR[Y],
gdy
a) X Y = U,
b) ( R INST(RR ) ) ( R = R[X] R[Y]).
432009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Relacja EGZ(U), U := { I, N, P, O }, gdzie
I N P O
10 f a 3
10 f b 4
11 g a 3
12 h a 3
jest przypadkiem schematu relacyjnego
EGZEGZ := ( { I, N, P, O }, { I N, IP O } ).
Rozkładalność schematów relacyjnych
W zależności od wyboru zbioru zależności funkcyjnych jako
podstawy rozkładu relację tą można rozłożyć bez straty danych na
dwa sposoby:
442009/2010 - Notatki do wykładu "Podstawy baz danych"
W obydwu przypadkach mamy:
EGZ=E1 E2, EGZ=E3 E4.
Rozkładalność schematów relacyjnych
E1: I N E2: I P O
10 f 10 a 3
11 g 10 b 4
12 h 11 a 3
12 a 3
E3: I P O E4: I P N
10 a 3 10 a f
10 b 4 10 b f
11 a 3 11 a g
12 a 3 12 a h
452009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Mówimy, że schemat relacyjny RR := ( U, F ) jest
rozkładalny bez straty zależności na dwa schematy relacyjne
RR1 := ( X, G ), RR2 := ( Y, H ),
gdy
a) X Y = U,
b) F+ = ( G H )+.
Przykład. Oba rozkłady ze slajdu 45 są rozkładami bez straty
zależności.
EE1 := ( { I, N }, { I N } ), EE2 := ( { I, P, O }, { I PO } ),
EE3 := ( { I, P, O }, { I PO } ), EE4 := ( { I, P, N }, { I N } ),
Rozkładalność schematów relacyjnych
462009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Dla schematu relacyjnego RR := ( U, F )
U := { A, B, C, D },
F := { A B, BC D, D B, D C }
rozważmy następujące schematy:
RR1 := ( { A, B }, { A B } ),
RR2 := ( { B, C, D }, { BC D, D B, D C } ),
będące rozkładami schematu RR bez straty zależności.
Rozkład ten nie jest jednak rozkładem bez straty danych.
Rozkładalność schematów relacyjnych
Istotnie, rozważmy relację RINST(R) postaci:
R: A B C D
a b c d
a1 b c1 d1
a2 b c1 d1
472009/2010 - Notatki do wykładu "Podstawy baz danych"
Wówczas relacje:
R1 := R[AB] i R2 := R[BCD]
mają postać:
Rozkładalność schematów relacyjnych
R1: A B R2: B C D
a b b c d
a1 b b c1 d1
a2 b
i RR1 R2 (następny slajd).
Zauważmy, że zależności B A i B CD nie należą do F+, tzn.
nie są spełnione założenia twierdzenia o warunku koniecznym i
dostatecznym rozkładalności bez straty danych.
482009/2010 - Notatki do wykładu "Podstawy baz danych"
R1 R2 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
Rozkładalność schematów relacyjnych
R: A B C D
a b c d
a1 b c1 d1
a2 b c1 d1
492009/2010 - Notatki do wykładu "Podstawy baz danych"
Pojęcie klucza
Definicja. Mówimy, że zbiór K U jest kluczem dla schematu
relacyjnego RR := ( U, F ), gdy spełnia warunki:
a) ( K U ) F+,
b) ( X U ) ( [ ( X U ) F+ ] [ ( X K ) ] )
c) wartościami K nie mogą być wartości NULL.
Jeżeli zbiór K spełnia tylko warunek a) i c) to nazywamy go
nadkluczem.
Elementy zbioru K nazywamy atrybutami kluczowymi.
502009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Dla schematu relacyjnego
EE := ( { I, N, P, O }, { I N, IP O } )
warunek a) definicji klucza spełniają zbiory
{ I, P }, { I, N, P }, { I, N, P, O }.
Warunek b) definicji klucza spełnia tylko zbiór
{ I, P }
i ten zbiór jest kluczem schematu EE.
Pojęcie klucza
512009/2010 - Notatki do wykładu "Podstawy baz danych"
Uwaga. Schemat relacyjny może posiadać wiele kluczy (klucze
kandydujące).
Jeden z nich nazywamy kluczem głównym (Primary key).
Atrybuty nie należące do żadnego klucza nazywamy atrybutami
niekluczowymi.
Pojęcie klucza
Atrybuty niekluczowe K2K1
522009/2010 - Notatki do wykładu "Podstawy baz danych"
PODSTAWY
BAZ DANYCH
3. Normalizacja schematów
relacyjnych
532009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - 1PN
Definicja. Schemat relacyjny
RR := ( U, F )
jest w pierwszej postaci normalnej (1PN), gdy dla każdego atrybutu
AU zbiór DOM(A) składa się z wartości elementarnych (atomic
value).
Przykład. Np. gdybyśmy przyjęli, że mamy atrybut Adres i
wartościami byłyby np. 95-003 Łódź ul. Piotrkowska 5 m.6 to
dziedzina tego atrybutu nie składałaby się z wartości
elementarnych (o ile w jakimś zapytaniu występowałyby tylko np.
miasta) .
542009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - 2PN
Definicja. Niech X, Y U i X Y = .
Mówimy, że Y jest w pełni funkcyjnie zależny od X, gdy istnieje
zależność funkcyjna X Y i nie istnieje zależność z żadnego
właściwego podzbioru X1 zbioru X w Y.
XY F+
Y
X
X1Y F+
X1
552009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Schemat relacyjny
RR := ( U, F )
jest w drugiej postaci normalnej (2PN), gdy każdy niekluczowy
atrybut A U jest w pełni zależny od każdego klucza tego
schematu.
Oznacza to, że nie ma miejsca przypadek:
Normalizacja schematów relacyjnych - 2PN
K2AK1
K1A F+
K11A F+
562009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - 2PN
Przykład. Schemat relacyjny EE = ( U, F )
gdzie
U := { Indeks, Nazwisko, Kierunek, Adres, Przedmiot, Ocena },
F := { I NAK, IP O }
z kluczem K := { I, P } nie jest w 2PN, bo np. niekluczowy atrybut
N jest zależny funkcyjnie tylko od { I } K.
Niech E będzie relacją o schemacie EE = ( U, F ) określoną
następująco:
E: I N A K P O
10 f x mat a 3
10 f x mat b 4
11 g y inf a 3
12 h x inf a 3
10 f x mat c 5
572009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - 2PN
W relacji tej można zauważyć następujące anomalia:
dołączania - nie można dołączyć
studenta, który nie zdał żadnego
egzaminu;
aktualizacji - zmiana adresu studenta wymaga zmiany w
kilku krotkach;
usuwania - np. przy unieważnieniu egzaminu studenta o
indeksie 11 należy usunąć całą krotkę, co spowoduje utratę
informacji o studencie.
E: I N A K P O
10 f x mat a 3
10 f x mat b 4
11 g y inf a 3
12 h x inf a 3
10 f x mat c 5
582009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - 2PN
Dla każdej relacji E INST(EE) mamy
E = E[INKA] E[IPO]
tzn. uzyskaliśmy dwa schematy relacyjne
EE1 := ( { I, N, K, A }, { I NAK } )
i
EE2 := ( { I, P, O }, { IP O } )
odpowiednio z kluczami { I } i { I, P }.
Jest to rozkład bez straty danych.
592009/2010 - Notatki do wykładu "Podstawy baz danych"
E1: I N A K E2: I P O
10 f x mat 10 a 3
11 g y inf 10 b 4
12 h x inf 11 a 3
12 a 3
10 c 5
Stwierdzenie. Jeżeli każdy klucz schematu jest zbiorem
jednoelementowym to schemat jest w 2PN.
Relację E można zastąpić dwiema relacjami:
Normalizacja schematów relacyjnych - 2PN
Każdy ze schematów EE1 i EE2 jest w 2PN.
602009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - 3PN
Definicja. Niech X, Z U. Zbiór atrybutów Z jest tranzytywnie
zależny od zbioru X, gdy
Z
Y
X
(XY )F+ (YX)F+ (YZ)F+
a) X Z = ,
b) ( Y U ) { ( Y X = Y Z = )
[ ( X Y ) F+ ( Y X ) F+ ( Y Z) F+ ] }.
612009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Schemat relacyjny
RR := ( U, F )
jest w trzeciej postaci normalnej ( 3PN ), gdy
• jest w 2PN;
• każdy zbiór niekluczowych atrybutów Z U nie jest
tranzytywnie zależny od każdego zbioru atrybutów K
będącego kluczem tego schematu.
Normalizacja schematów relacyjnych - 3PN
622009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Rozważmy schemat relacyjny EE := ( U, F ) gdzie
U :={ Wykonawca, Adres, Projekt, Data_zakonczenia },
F := { W APD, P D }
z kluczem K := { W } jest w 2PN.
Normalizacja schematów relacyjnych - 3PN
Zakładamy, że
1. wykonawca może realizować tylko jeden projekt,
2. wszyscy wykonawcy dany projekt muszą zakończyć tego
samego dnia.
Niech E będzie relacją o schemacie EE := (U, F) określoną
następująco:E: W A P D
30 x a 01/01/2000
40 y a 01/01/2000
50 y b 01/01/1999
60 z c 01/01/2000
632009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - 3PN
Ponieważ W P P D to W D tzn. zbiór { D } jest
tranzytywnie zależny od zbioru { W }.
W relacji tej można zauważyć następujące anomalia:
dołączania, aktualizacji i usuwania.
Dla każdej relacji E INST(EE) mamy
E = E[WAP] E[PD]
tzn. uzyskamy dwa schematy relacyjne będące w 3PN
E1 := ( { W, A, P }, { W A, W P } )
i
E2 := ( { P, D }, { P D } ).
Jest to rozkład bez straty danych.
642009/2010 - Notatki do wykładu "Podstawy baz danych"
E1: W A P E2: P D
30 x a a 01/01/2000
40 y a b 01/01/1999
50 y b c 01/01/2000
60 z c
Normalizacja schematów relacyjnych - 3PN
Relację E można zastąpić dwoma relacjami:
Uwaga. W każdym schemacie będącym w 3PN między
atrybutami niekluczowymi nie ma zależności funkcyjnych.
Zadanie. Sprawdzić, czy schemat relacyjny
EE := ( { A, B, C }, { AB C, C A } )
jest w 3PN.
652009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - 3PN - Przykład
Przykład.
Pesel Nip Nazwisko Imie D_urodzenia Plec
Przyjmijmy założenie, że każda osoba posiada Pesel i Nip.
Wtedy kluczami mogą być np. zbiór { Pesel } lub { Nip }.
Niekluczowymi atrybutami są
{ Nazwisko, Imie, D_urodzenia, Plec }.
Ten schemat relacyjny jest w 3PN (dlaczego?).
662009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - PNB-C
Definicja. Schemat relacyjny
RR := ( U, F )
jest w postaci normalnej Boyce'a-Codda, (PNB-C),
gdy z faktu
( X Y ) F+, Y U - X,
wynika, że ( X U ) F+.
Przykład. Schemat relacyjny
EE := ( { Student, Przedmiot, Wykładowca }, { W P, SP W } )
z kluczem K := { S, P } nie jest w PNB-C, bo mimo, że W PF+,
to nie istnieje zależność W U.
Uwaga. Każdy schemat w PNB-C jest w 3PN. Jest bardziej
restrykcyjny niż schemat w 3PN.
672009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - PNB-C
K2AK1
K11A F+
Gdyby nie był w 2PN to z faktu K11A F+
wynikałoby z B-C, że K11 U tzn. K1 nie byłoby kluczem. Z
YK1
(K1Y )F+ (YK1)F+ (YZ)F+
Gdyby nie był w 3PN to istniałyby atrybuty niekluczowe Y, Z
i z B-C Y U F+ tzn. Y albo jego podzbiór byłby kluczem co
jest sprzeczne z tym, że Y jest atrybutem niekluczowym.
682009/2010 - Notatki do wykładu "Podstawy baz danych"
Przykład. Niech E będzie relacją o schemacie RR := ( U, F )
określoną następująco:
Normalizacja schematów relacyjnych - PNB-C
E: S P W
10 a x
11 a x
10 b y
11 b z
W relacji E występują anomalia usuwania i dołączania:
• Nie można dołączyć wykładowcy i przedmiotu jeżeli brak
chociaż jednego studenta uczęszczającego na wykład.
• Nie można również usunąć ostatniego studenta uczęszczającego
na dany przedmiot.
692009/2010 - Notatki do wykładu "Podstawy baz danych"
Normalizacja schematów relacyjnych - PNB-C
Schemat E można rozłożyć na dwa schematy relacyjne
E1 := ( { W, P }, { W P } ) i E2 := ( { W, S }, ),
z których każdy jest w PNB-C.
Wtedy relację E można przedstawić w postaci:
E1: W P E2: W S
x a x 10
y b x 11
z b y 10
z 11
Ponieważ E = E1 E2 , więc rozkład ten jest rozkładem bez
straty danych, ale nie jest rozkładem bez straty zależności,
bowiem
{ W P, SP W }+ { { W P } }+.
702009/2010 - Notatki do wykładu "Podstawy baz danych"
Zależność wielowartościowa
Definicja. Niech X, Y U, Z := U - XY.
Mówimy, że istnieje
zależność wielowartościowa między zbiorami X i Y,
co oznaczamy przez X ─>>Y, gdy dla każdego zbioru
KROTKA(U) istnieje pewna funkcja
: KROTKA(X) (KROTKA(YZ)),
gdzie (KROTKA(YZ)) oznacza zbiór wszystkich podzbiorów
zbioru KROTKA(YZ), taka, że jeżeli do zbioru (x) należą krotki
(y, z) i (y, z), to należą również krotki ( y, z ) i (y, z ).
X Y Z
712009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Niech dana będzie relacja R(U), X, Y U i Z:=U-XY.
Mówimy, że w R spełniona jest zależność wielowartościowa
X─>>Y, gdy spełniony jest jeden z równoważnych warunków:
a)
b)
x R X y y R Y z z R Z, ,
}
{
RzyxRzyx
RzyxRzyx
.XZRXYRR
Zależność wielowartościowa
X Y Z
722009/2010 - Notatki do wykładu "Podstawy baz danych"
Uwaga. Każda zależność funkcyjna X Y F+ jest zależnością
wielowartościową tzn. mamy X ─>> Y . Spełniony jest warunek
konieczny rozkładu bez straty danych (punkt b).
Uwaga. Zależności X ─>> U i X ─>> spełnione są w każdej
relacji R(U). Istotnie
Nazywamy je trywialnymi zależnościami wielowartościowymi.
Zależność wielowartościowa
.XZRXYRR
.XZRXYRR
, Z = , Y = U
, Z = U-X, Y =
732009/2010 - Notatki do wykładu "Podstawy baz danych"
E: P D Z R
a x 1000 1983 D ─>> P
a y 1000 1983 P ─>> ZR
a x 1500 1984
a y 1500 1984
b z 1200 1983
b z 1600 1984
Przykład. U := { Pracownik, Imię_Dziecka, Zarobki, Rok }
Zależność wielowartościowa
E1: P D E2: P Z R
a x a 1000 1983
a y a 1500 1984
b z b 1200 1983
b 1600 1984
( D ─> P ) PR ─> Z
742009/2010 - Notatki do wykładu "Podstawy baz danych"
Zależność wielowartościowa
Definicja. Niech U będzie zbiorem atrybutów i
M { X ─>> Y | X U Y U }.
Przez M + oznaczmy najmniejszy (ze względu na relację ) zbiór
zależności wielowartościowych takich, że M M + i dla
( X, Y, Z U ) ( X Y = X Z = Z Y = )
spełnione są następujące aksjomaty:
752009/2010 - Notatki do wykładu "Podstawy baz danych"
M0. (zwrotność),
M1. (dopełnialność),
M2. (poszerzalność),
M3. (przechodniość),
M4.
(pseudo-przechodniość),
M5.
(addytywność),
M6.
(dekompozycja).
Zależność wielowartościowa
, MYXXY
, MXYUXMYX
, MYZXZMYX
, MZXMZYMYX
, MWXZMWYZMYX
, MYZXMZXMYX
, MZYXMZXMYX
762009/2010 - Notatki do wykładu "Podstawy baz danych"
Uwaga. Między zależnościami funkcyjnymi i wielowartościowymi
zachodzą następujące związki:
FM1.
FM2.
Zależność wielowartościowa
, MYXFYX
.
FVX
ZYZVMVYMZX
X Y Z
V
772009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Dla zbioru atrybutów U i zbiorów F i M, (zakładamy, że
zbiór M nie zawiera zależności funkcyjnych), parę
RR := ( U, F M )
nazywamy schematem relacyjnym i mówimy, że relacja R jest
przypadkiem schematu relacyjnego RR jeśli jest relacją typu U oraz
każda zależność funkcyjna i wielowartościowa jest spełniona w R.
Schemat relacyjny
782009/2010 - Notatki do wykładu "Podstawy baz danych"
Zależność wielowartościowa - 4PN
Definicja. Mówimy, że schemat relacyjny
RR := ( U, F M )
jest w czwartej postaci normalnej (4PN) gdy jest w 3PN i
. FUXXUYMYX
Przykład. Dla schematu relacyjnego
RR := ( { P, D, Z, R }, { D P, PR Z, P > D, P > ZR } )
który nie jest w 4PN i relacji E z przykładu ze slajdu 74 rozważmy
dwa schematy
RR1 := ( { P, D }, {D P }),
RR2 := ( { P, Z, R }, { PR Z }).
Wtedy schematy RR1 i RR2 są w 4PN.
-
E P D Z R
a x 1000 1983 D ─>> P
a y 1000 1983 P ─>> ZR
a x 1500 1984
a y 1500 1984
b z 1200 1983
b z 1600 1984
792009/2010 - Notatki do wykładu "Podstawy baz danych"
Postacie normalne - Podsumowanie
-
Uwaga. Między postaciami normalnymi zachodzą następujące
relacje zawierania:
1PN 2PN 3PN B-C 4PN 5PN
802009/2010 - Notatki do wykładu "Podstawy baz danych"
Definicja. Schematem relacyjnej bazy danych nazywamy zbiór
:= { Ri := ( Ui , Fi ) | i = 1,2,..,n }.
wszystkich schematów relacyjnych występujących w danej bazie
danych
Schemat relacyjnej bazy danych
812009/2010 - Notatki do wykładu "Podstawy baz danych"
PODSTAWY
BAZ DANYCH
4. Projektowanie Schematu Bazy
Danych
822009/2010 - Notatki do wykładu "Podstawy baz danych"
1. Określamy jeden schemat relacyjnej bazy danych
{ RR := ( U, F ) },
gdzie U jest zbiorem wszystkich atrybutów występujących w
bazie danych, przy czym zbiór U dobieramy w taki sposób aby
można było na zbiorze U określić zależności funkcyjne.
2. Rozkładając schemat relacyjny RR na schematy
RRii := ( Ui , Fi ), i = 1,2,..,n
spełniające wybrane przez nas warunki normalizacji
otrzymamy schemat bazy danych
:= { RRii := ( Ui , Fi ) | i = 1,2,..,n }.
Algorytm tworzenia schematu relacyjnej bazy danych
832009/2010 - Notatki do wykładu "Podstawy baz danych"
Równoważność schematów
Niech dane będą następujące schematy baz danych:
1 := { RR := ( U, F ) },
2 := { RRi := ( Ui , Fi ) | i = 1,2,..,n }, (n 2).
Wprowadzimy definicję równoważności schematów.
n
i
iUU1
,
.1
i
n
i
URR
Definicja. Mówimy, że dane schematy 1 i 2 są
EQ1-równoważne, gdy dla każdej relacji RINST(1)
Definicja. Mówimy, że dane schematy 1 i 2 są
EQ2-równoważne, gdy
F Fii
n
1
U
842009/2010 - Notatki do wykładu "Podstawy baz danych"
Równoważność schematów
Definicja. Mówimy, że dane schematy 1 i 2 są
EQ3-równoważne, gdy są EQ1 i EQ2-równoważne.
Uwaga. Rozkład 2 EQ1-równoważny rozkładowi 1 jest
rozkładem bez straty danych.
Uwaga. Rozkład 2 EQ2-równoważny rozkładowi 1 jest
rozkładem bez straty zależności.
Uwaga. Przy rozkładach schematów baz danych wymaga się
zazwyczaj aby każdy z wynikowych schematów był w 3PN i aby
liczba ich była jak najmniejsza.
Uwaga. Rozkłady nie muszą być jednoznaczne.
852009/2010 - Notatki do wykładu "Podstawy baz danych"
Algorytmy pomocnicze
Przy rozkładach schematów baz danych wykorzystywane są
algorytmy rozwiązywania następujących zagadnień:
A1. Sprowadzenie schematu relacyjnego do 2PN.
A2. Sprowadzenie schematu relacyjnego do 3PN.
A3. Rozstrzygnięcie, czy dla zadanych X, YU, zachodzi XYF +.
A4. Usunięcie z lewej strony każdej zależności XYF + zbędnych
atrybutów, tzn. takich atrybutów AX , dla których (X-A)YF +.
A5. Znalezienie minimalnego generatora zbioru F tzn. takiego zbioru
G, że F + = G + i żaden jego podzbiór tej własności nie posiada.
A6. Sprawdzenie, czy dla zadanych dwóch zbiorów zależności F1 i F2
zachodzi równość F 1+ = F2
+.
A7. Określenie wszystkich kluczy w schemacie R:= ( U, F ) .
862009/2010 - Notatki do wykładu "Podstawy baz danych"
Algorytmy pomocnicze
Wyznaczenie wszystkich kluczy w schemacie
RR :=( U, F ),
( algorytm A7 ), jest bardziej złożone. Jednym ze sposobów
mogłoby być wyznaczenie, korzystając z aksjomatów Armstronga,
całego zbioru F + i wybranie z niego wszystkich zależności
spełniających warunki występujące w definicji klucza.
Uwaga. Wszystkie algorytmy A3 - A7 można sprowadzić do
problemu wyznaczenia zbioru F +.
872009/2010 - Notatki do wykładu "Podstawy baz danych"
Algorytm dekompozycji
Dla danego schematu bazy danych := { RR := ( U, F ) } należy wykonać
następujące czynności:
1. Wyznaczyć wszystkie klucze w schemacie R.
2. Wykrywanie niepełnych zależności funkcyjnych i rozkład schematu
relacyjnego na zbiór 1
:= {RRii
:= (Ui, F
i) | i = 1,2,..,m } schematów
relacyjnych z których każdy jest w 2PN.
3. Wyznaczyć zbiory atrybutów kluczowych i niekluczowych w każdym
schemacie relacyjnym RRi
1.
4. Wykrywanie tranzytywnych zależności funkcyjnych w schematach
relacyjnych Ri, i=1,2,..,m i sprowadzenie ich do 3PN.
Otrzymany w ten sposób schemat 1 := { RRii := ( Ui , Fi ) | i = 1,2,..,n }
jest EQ1-równoważny schematowi := { RR := ( U, F ) } tzn. zachowuje
dane i nie musi zachowywać zależności funkcyjnych.
902009/2010 - Notatki do wykładu "Podstawy baz danych"