Andrzej Macioł Bazy danych – model relacyjny – cz. 1 Andrzej Macioł
Modele danych Model konceptualny – spojrzenie na dane jako całość, model najbardziej stabilny, powinien on być podstawą, na której opierać się będzie przetwarzanie danych Model wewnętrzny, niskiego poziomu – opisuje sposób przechowywania danych w pamięci komputerów i przedstawia formaty rekordów czy ścieżki dostępu, modelami takimi są metody adresowania, struktury łańcuchowe i pierścieniowe
Andrzej Macioł Modele danych Modele użytkowe – stanowią podstawę do budowy systemu informatycznego: –hierarchiczny –sieciowy –relacyjny –obiektowy
Andrzej Macioł Model hierarchiczny Każdy element zwany rekordem może uczestniczyć w roli podrzędnej w co najwyżej jednym powiązaniu rekordów, w roli nadrzędnej w dowolnej liczbie powiązań Rekord podrzędny nie może istnieć bez rekordu nadrzędnego
Andrzej Macioł Więzi w modelu hierarchicznym KodPojazduNazwaTyp 1Accentkombi KodPojazduKodCzęściNazwaCzęści 11silnik V6 KodPojazduKodCzęściNazwaCzęści 12szkrzynia biegów
Andrzej Macioł Model sieciowy Każdy rekord może jednocześnie uczestniczyć w wielu powiązaniach rekordów Rekord taki może równocześnie i wielokrotnie wystąpić w roli nadrzędnej oraz w roli podrzędnej, powiązania realizowane są przez rekordy specjalne zwane łącznikami
Andrzej Macioł Więzi w modelu sieciowym KodPojazduNazwaTyp 1Accentkombi KodPojazduNazwaTyp 1Getzcupe KodPojazduKodCzęściNazwaCzęści 12szkrzynia biegów
Andrzej Macioł Modele obiektowy Wymaga istnienia trwałych obiektów, obiekty te pozostają zapisane w pamięci pomocniczej przed i po wykonaniu programów Obiekty mogą komunikować się bezpośrednio z użytkownikiem lub z innymi obiektami przez przesyłanie komunikatów, obiekty posiadają identyfikator, co umożliwia tworzenie powiązań między nimi Obiekt jest to abstrakcja czegoś w dziedzinie problemu, który odzwierciedla zdolność systemu do przechowywania informacji o tym lub interakcji z tym czymś
Andrzej Macioł Relacyjny model danych Relacyjny model danych jest obecnie najbardziej popularnym modelem używanym w systemach baz danych. Podstawą tego modelu stała się praca opublikowana przez E.F. Codda w 1970r. W pracy Relacyjny model logiczny dla dużych banków danych Codd zaprezentował założenia relacyjnego modelu baz danych, model ten oparł na teorii mnogości i rachunku predykatów pierwszego rzędu.
Andrzej Macioł Postulaty Codda 1.Postulat informacyjny – dane są reprezentowane jedynie poprzez wartości atrybutów w wierszach tabel, 2.Postulat dostępu – każda wartość w bazie danych jest dostępna poprzez podanie nazwy tabeli, atrybutu oraz wartości klucza podstawowego, 3.Postulat dotyczący wartości NULL – dostępna jest specjalna wartość NULL dla reprezentacji wartości nieokreślonej jak i nieadekwatnej, inna od wszystkich i podlegająca przetwarzaniu
Andrzej Macioł Postulaty Codda 4.Postulat dotyczący katalogu – wymaga się, aby system obsługiwał wbudowany katalog relacyjny z bieżącym dostępem dla uprawnionych użytkowników używających języka zapytań
Andrzej Macioł Postulaty Codda 5.Postulat języka danych – system musi dostarczać pełnego języka przetwarzania danych, który może być używany w trybie interaktywnym jak i w obrębie programów aplikacyjnych, obsługuje operacje definiowania danych, operacje manipulowania danymi, ograniczenia związane z bezpieczeństwem i integralnością oraz operacje zarządzania transakcjami,
Andrzej Macioł Postulaty Codda 6.Postulat modyfikowalności perspektyw – system musi umożliwiać modyfikowanie perspektyw, o ile jest ono (modyfikowanie) semantycznie realizowalne, 7.Postulat modyfikowalności danych – system musi umożliwiać operacje modyfikacji danych, musi obsługiwać operatory INSERT, UPDATE oraz DELETE, 8.Postulat fizycznej niezależności danych – zmiany fizycznej reprezentacji danych i organizacji dostępu nie wpływają na aplikacje,
Andrzej Macioł Postulaty Codda 9.Postulat logicznej niezależności danych – zmiany wartości w tabelach nie wpływają na aplikacje, 10.Postulat niezależności więzów spójności – więzy spójności są definiowane w bazie i nie zależą od aplikacji,
Andrzej Macioł Postulaty Codda 11.Postulat niezależności dystrybucyjnej – działanie aplikacji nie zależy od modyfikacji i dystrybucji bazy, 12.Postulat bezpieczeństwa względem operacji niskiego poziomu – operacje niskiego poziomu nie mogą naruszać modelu relacyjnego i więzów spójności.
Andrzej Macioł Podstawowe pojęcia Relacja jest podzbiorem iloczynu kartezjańskiego dziedzin A 1, A 2,..A n. Iloczyn kartezjański oznacza się następująco: A 1 A 2 A n Zawiera on n-tki (a 1, a 2,..a n ) nazywane krotkami takie, że a 1 A 1, a 2 A 2,... d n An
Andrzej Macioł Podstawowe pojęcia Niech A 1 = [a,b,c], A 2 =[x,y] Wtedy A 1 A 2 = {(a,x), (a,y), (b,x), (b,y), (c,x), (c,y)} Przykłady relacji, które są podzbiorami iloczynu kartezjańskiego A 1 A 2 : X = {(a,x), (b,x), (c,x)} Y = {(a,x), (a,y), (b,y)} Analogicznie jak dla iloczynu kartezjańskiego elementy relacji są nazywane krotkami
Andrzej Macioł Baza danych - relacja Rozważmy relację, której atrybutami są nazwisko, imię, wiek. Relację tę można zapisać następująco: PRAC, gdzie PRAC jest nazwą danej relacji. A oto trzy krotki relacji PRAC:.
Andrzej Macioł Zasady spełnione dla każdej relacji Każda relacja w bazie danych ma jednoznaczną nazwę, Każda kolumna w relacji ma jednoznaczną nazwę w ramach jednej relacji, Wszystkie wartości w kolumnie muszą być tego samego typu,
Andrzej Macioł Zasady spełnione dla każdej relacji Porządek kolumn w relacji nie jest istotny, Każdy wiersz w relacji musi być różny, Porządek wierszy nie jest istotny, Każde pole leżące na przecięciu kolumny/wiersza w relacji powinno zawierać wartość atomową
Andrzej Macioł Schemat relacji Schematem relacji R o danych atrybutach A 1, A 2,…, A n takiej, że R D 1 D 2 … D n nazywamy ciąg (A 1, A 2,…, A n ). W celu jawnej specyfikacji schematu relacji R piszemy R(A 1, A 2,…, A n )
Andrzej Macioł Reprezentacja tablicowa relacji EA1A1 A2A2...AjAj AnAn e1e2...ei...eme1e2...ei...em d 1,1 d 2,1. d i,1. d m,1 d 1,2 d 2,2. d i,1. d m, d 1,j d 2,j. d i,j. d m,j D 1,n d 2,n. d i,n. d m,n
Andrzej Macioł Zbiór identyfikujący relacji zbiór atrybutów który jednoznacznie identyfikuje wszystkie krotki w relacji R w żadnej relacji o schemacie R nie mogą istnieć dwie krotki t 1 i t 2 takie, że t 1 [S]=t 2 [S]
Andrzej Macioł Zbiór identyfikujący relacji
Andrzej Macioł Klucz Minimalny zbiór identyfikujący Taki zbiór atrybutów relacji, których kombinacje wartości jednoznacznie identyfikują każdą krotkę tej relacji a żaden podzbiór tego zbioru nie posiada tej własności W kluczu nie może zawierać się wartość Null
Andrzej Macioł Klucz
Andrzej Macioł Klucz Klucz jest kluczem prostym, jeżeli powyżej opisany zbiór jest jednoelementowy - w przeciwnym razie mówimy o kluczu złożonym W ogólności, w relacji można wyróżnić wiele kluczy, które nazywamy kluczami potencjalnymi. Wybrany klucz spośród kluczy potencjalnych nazywamy kluczem głównym (Primary Key PK)
Andrzej Macioł Zależność funkcjonalna Atrybut B relacji R jest funkcjonalnie zależny od atrybutu A jeżeli dowolnej wartości a atrybutu A odpowiada nie więcej niż jedna wartość b atrybutu B
Andrzej Macioł Zależność funkcjonalna
Andrzej Macioł Zależność funkcjonalna Niech X i Y będą podzbiorami zbioru atrybutów relacji R X {A 1...A N }, Y {A 1...A N } podzbiór atrybutów Y zależy funkcyjnie od podzbioru atrybutów X, jeżeli nie jest możliwe, by relacja R zawierała dwie krotki mające składowe zgodne tzn. identyczne dla wszystkich atrybutów ze zbioru X i jednocześnie co najmniej jedną niezgodną składową dla atrybutów ze zbioru Y
Andrzej Macioł Zależność funkcjonalna
Andrzej Macioł Zależność funkcjonalna Zbiór atrybutów Y jest w pełni funkcjonalnie zależny od zbioru atrybutów X w schemacie R, jeżeli: i nie istnieje takie, że
Andrzej Macioł Zależność funkcjonalna Zbiór atrybutów Y jest częściowo funkcjonalnie zależny od zbioru atrybutów X w schemacie R, jeżeli: i istnieje takie, że
Andrzej Macioł Zależność częściowa i pełna
Andrzej Macioł Zależność przechodnia Niech X, Y i Z będą trzema rozłącznymi podzbiorami atrybutów danej relacji Z jest przechodnio funkcjonalnie zależny od X, jeśli Z jest funkcjonalnie zależny od Y i Y jest funkcjonalnie zależny od X natomiast X nie jest zależny od Y i Y nie jest zależny od Z
Andrzej Macioł Zależność przechodnia
Andrzej Macioł Zależność wielowartościowa Podzbiór atrybutów Y jest wielowartościowo funkcjonalnie zależny od podzbioru X w schemacie R, jeżeli dla dowolnej relacji r w schemacie R i dla dowolnej pary krotek t 1 i t 2 z relacji r istnieje taka para krotek że: s 1 [X]=s 2 [X]=t 1 [X]=t 2 [X] i s 1 [Y]= t 1 [Y] i s 1 [R-X-Y]=t 2 [R-X-Y] i s 2 [Y]= t 2 [Y] i s 2 [R-X-Y]=t 1 [R-X-Y]
Andrzej Macioł Zależność wielowartościowa krotkaNazwiskoImię dziecka Znajomość języków t1t1 KotAnianiemiecki t2t2 KotJaśangielski s1s1 KotAniaangielski s2s2 KotJaśniemiecki SłońOlaniemiecki SłońOlaangielski XYR-X-Y
Andrzej Macioł Zależność wielowartościowa t 1 [X]=t 2 [X]=s 1 [X]=s 2 [X]=(Kot) s 1 [Y]= t 1 [Y]=(Ania) i s 1 [R-X-Y]=t 2 [R-X-Y]=(angielski) i s 2 [Y]= t 2 [Y]=(Jaś) i s 2 [R-X-Y]=t 1 [R-X-Y]=(niemiecki)
Andrzej Macioł Dekompozycja schematu Schemat zastępujemy zbiorem (niekoniecznie rozłącznych) schematów relacji takich, że każdy schemat R i stanowi podzbiór zbioru atrybutów i
Andrzej Macioł Dekompozycja schematu W schemacie występuje połączeniowa zależność funkcjonalna wtedy i tylko wtedy gdy istnieje możliwość takiej dekompozycji relacji r na relacje r 1, r 2,..., r n, że można ją zrekonstruować przy pomocy operacji połączenia
Andrzej Macioł Dekompozycja schematu połączeniowa zależność funkcjonalna wynika z zależności atrybutów schematu R od klucza wtedy i tylko wtedy gdy w dowolnej sekwencji połączeń relacji składowych w celu rekonstrukcji relacji r operacja wykonywana jest względem zbioru identyfikującego schematu R