Wykład 8 RBD Relacyjne Bazy Danych Więzy realcji Bazy Danych - A. Dawid 2011 1
Więzy (Constraints) Więzy ograniczenia na związki między poszczególnymi atrybutami w bazie danych. Określają często zakres wartości jakie mogą zawierać pola danych dla poszczególnych atrybutów. Klasyfikacja więzów 1. Klucze (keys) 2. Więzy jednoznaczności (single-value-constraints) 3. Więzy integralności referencyjnej (referential integrity constraints) 4. Więzy domenowe (domain constraints) 5. Więzy zasadnicze (general constraints) Bazy Danych - A. Dawid 201
Więzy (Constraints) Więzy jednoznaczności każdy atrybut ma tylko jedną określoną wartość. Przykład Klienci mają jeden nr identyfikacyjnych, jedną datę urodzenia, jeden wiek i jedną matkę. Wszystkie klucze należą do więzow jdnoznaczności. 1. Wymaga się aby atrybut zawsze miał określoną wartość 2. Tą wartością może być NULL Bazy Danych - A. Dawid 2011 3
Więzy (Constraints) Jeśli zachodzi związek pomiędzy atrybutami pewnej realcji R a jednym atrybutem innej relacji S i żąda sia aby ten atrybut istniał, to mamy do czynienia z więzami określanymi jako więzy integralności referencyjnej. Przykład Klienci,Pacjenci,Petenci,Studenci itd wielu wskazuje jedną narodowość. Wymagane jest aby wskazywany obiekt istniał. Można zabronić usuwania obiektu, który jest wskazywany. Można zażądać aby wraz ze wskazywanym obiektem były usuwane wszystkie obiekty które nań wskazują. Bazy Danych - A. Dawid 2011 4
Więzy (Constraints) Więzy domenowe polegają na tym, że ogranicza się wartość atrybutu do pewnego zbioru. Przykład Jeżeli nr_klienta jest wartością typu integer, to nie może nr_klienta=2.6 Zbiory ograniczające. - Liczby całkowite - Liczby całkowite dodatnie - Liczby od 0 do 100 - Ciągi znaków, tylko duże litery - poniedziałek, wtorek,środa, czwartek, piątek Bazy Danych - A. Dawid 2011 5
Więzy (Constraints) Więzy zasadnicze są arbitralnie narzuconymi warunkami, których spełnienie musi być bezwzględnie przestrzegane w definiowanej bazie danych Przykłady -Każdy klient może kupić nie więcej niż 10 towarów. -Z labolatorium nie może być wiecej powiązanych studentów niż 7. -Daty urodzenia Babci,Matki,Córki,Wnuczki muszą być chronologiczne. Bazy Danych - A. Dawid 2011 6
Określenie więzów w algebrze relacji W algebrze relacji istnieją dwie konwencje więzów: 1. Jeżeli R jest pewnym wyrażeniem algebry realcji, to R= stanowią więzy. Relacja R jest pusta. 2. Jeśli R i S są wyrażeniami algebry relacji, to R S stanowią wiezy. Każda krotka z S należy do R. R S R-S= R= R Model relacyjny pozwal określić więzy integralności referencyjnej. Bazy Danych - A. Dawid 2011 7
Więzy integralności referencyjnej w modelu relacyjnym Jeśli w pewnej krotce relacji R występuje określona wartość n, to z założeń projektowania wynika, że taka sama wartość n musi występować również jako określona składowa innej relacji S. okumenty +------------+-------+-------+ NrDok NrTow cena1 +------------+-------+-------+ SP/01/2011 1 5.1 SP/01/2011 2 5.6 +------------+-------+-------+ +-------+-----------+---------+-------+ NrTow Nazwa J_miary ilosc +-------+-----------+---------+-------+ 1 Banany kg 18.5 2 Winogrona kg 15.5 +-------+-----------+---------+-------+ Bazy Danych - A. Dawid 2011 8 Towary
Więzy integralności referencyjnej w modelu relacyjnym Tak określone więzy można zapisać w postaci algebry realcji; π NrTow (dokumenty) π NrTow (towary) Lewa strona wyrażenia opisuje zbiór wszystkich numerów towarów, które występują jako składowe NrTow w krotkach relacji dokumenty. Prawa strona określa wszystkie dostępne krotki określone atrybutem NrTow z realcji towary. W konwencji przyrównania do zbioru pustego nasze więzy wyglądają następująco: π NrTow (dokumenty) - π NrTow (towary) = Bazy Danych - A. Dawid 2011 9
Więzy integralności referencyjnej w modelu relacyjnym Załużmy teraz, że mamy relacje wydruk(pozycja,nrdokumentu,klient,...), Której atrybuty znalazły się także w relacji dokumenty(nrdok,poz,data,nrtow,cena1,...) W obu tych realcjach dokument identyfikowany jest przez parę atrybutów. Tak określone więzy można zapisać w postaci algebry realcji; π NrDokumentu,pozycja (wydruk) π NrTow,Poz (dokumenty) Bazy Danych - A. Dawid 2011 10
Więzy integralności referencyjnej w modelu relacyjnym Załużmy teraz, że mamy relacje osoba(nazwisko,adres,dataurodz,płeć) Chcemy aby dla dwóch takich samych Nazwisk był ten sam adres. Relacje osoba kopiujemy 2-krotnie i zmieniamy nazwy dwóch kopi na OS1 i OS2 Nasza zależność przyjmie następujaca postać algebraiczną; σ OS1.nazwisko=OS2.nazwisko AND OS1.adres<>OS2.adres (OS1 OS2) =, gdzie przemianowannia OS1 i OS2 wyglądają następująco; p OS1(nazwisko,adres,dataUrodz,płeć) (osoba), p OS2(nazwisko,adres,dataUrodz,płeć) (osoba) Bazy Danych - A. Dawid 2011 11
Więzy integralności referencyjnej w modelu relacyjnym Więzy dziedziny Tego typu więzów nie da się przedstawić całkowicie w algebrze relacji, ponieważ nie zawiera ona mechanizmu opisu typów. Załóżmy, że wartość atrybutu płeć z relacji osoba to K lub M. Taki warunek można przedstawić za pomocą następujacego wyrażenia algebraicznego. σ płeć<> K AND płeć<> M (osoba) =, Bazy Danych - A. Dawid 2011 12
Więzy integralności referencyjnej w modelu relacyjnym Więzy zasadnicze Załóżmy, że dla klientów co dokonali zakupów za więcej niż 1000 PLN w naszym sklepie przewidujemy zniżke. osoba(nr,nazwisko,adres,dataurodz,płeć) dokumenty(nrdok,poz,data,nrklienta,nrtow,cena1,wartość) σ SUM(wartosc)<1000 (osoba Nr=NrKlienta dokumenty) = Bazy Danych - A. Dawid 2011 13
Operacje relacyjne na wielozbiorach Wielozbiory Zbiory w których elementy mogą się powtarzać. Dopuszczamy możliwość wystąpienia w relacji tych samych Krotek. R 2 3 Relacja R jest wielozbiorem krotek. Krotka (1,2) występuje 3 razy, a krotka (2,3) tylko jeden raz. Wielozbiór jest niezbędny przy stosowaniu funkcji agregujących, średnia, suma, odchylenie standardowe,... Bazy Danych - A. Dawid 2011 14
Operacje relacyjne na wielozbiorach SUMA Przy obliczaniu sumy dwóch wielozbiorów dołącza się wszystkie wystąpienia krotki z poszczególnych składników sumy. R A B S A B R S 2 3 2 2 2 3 2 3 3 2 2 2 2 3 3 2 Bazy Danych - A. Dawid 2011 15
Operacje relacyjne na wielozbiorach Przecięcie Przy przecięciu wielozbiorów w których krotka t występuje odpowiednio n i m razy w wielozbiorach R i S, to w ich przecięciu R S krotka t występuje min(n,m) razy. R S R S 2 3 2 2 2 3 2 3 3 2 Bazy Danych - A. Dawid 2011 16
Operacje relacyjne na wielozbiorach Różnica - Przy różnicy wielozbiorów w których krotka t występuje odpowiednio n i m razy w wielozbiorach R i S, to w ich róznicy R - S krotka t występuje max(0,n-m) razy. R S 2 3 2 2 2 3 3 2 R-S S-R 2 2 3 2 Oznacza to kasowanie wystąpień tych samych krotek w relacji R przez te same krotki z relacji S Bazy Danych - A. Dawid 2011 17
Operacje relacyjne na wielozbiorach Iloczyn kartezjański wielozbiorów Tworzymy wszystkie pary z dwóch relacji niezależnie od występujących powtórzeń. Przykład R S R S 2 2 R.A R.B S.A S.B 2 2 2 2 Bazy Danych - A. Dawid 2011 18
Operacje relacyjne na wielozbiorach Jeżeli krotka t występuje jeden raz w wielozbiorach R i S, to reguły przecięcia (R S) i róznicy (R S lub S R) pozostają zgodne z regułami dotyczącymi zbiorów. Dla sumy stosowanie reguł wielozbiorów daje inny wynik niż stosowanie reguł sumowania dla zbiorów. rzykład R S 2 2 zbiór R S 2 2 wielozbiór R S 2 2 Bazy Danych - A. Dawid 2011 19
Operacje relacyjne na wielozbiorach Rzutowanie wielozbiorów W wyniku rzutowania wielozbioru takie same krotki nie podlegają redukcji. C 4 2 3 5 6 7 π A,B (R) 2 3 W języku SQL operacja rzutowania; a) na zbiorach Select distinct A,B from R; b) Na wielozbiorach Select A,B from R; Bazy Danych - A. Dawid 2010
Operacje relacyjne na wielozbiorach Selekcja wielozbiorów Operację selekcji dla wielozbioru przeprowadza się niezależnie dla każdej krotki i nie eliminuje się powtórzeń. R σ C>4 (R) σ C<6 (R) C 4 2 3 5 6 C 2 3 5 6 6 ale C 4 2 3 5 6 Bazy Danych - A. Dawid 2011
Operacje relacyjne na wielozbiorach Złączenia wielozbiorów Porównuje się każdą krotkę jednej relacji złączenia z każdą krotką drugiej relacji, i jeśli ta para spełnia warunek złączenia, to powstaje nowa krotka w wyniku złączenia. Przykład R S B C 2 2 R S C 2 2 Bazy Danych - A. Dawid 2012
Prawa algebry w przypadku wielozbiorów Prawo przemienności sumowania R S = S R Zachodzi ono niezależnie od tego jakie elementy należą do relacji R i S, i niezależnie od tego, czy R i S są zbiorami czy wielozbiorami. Są przypadki gdy wyrażenia są spełnione dla zbiorów a nie są spełnione dla wielozbiorów. Prawo rozdzielności różnicy względem sumy (R S) T = (R T) (S T) Bazy Danych - A. Dawid 2013