Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy. Przejście od modelu związków encji do modelu relacyjnego: odwzorowanie zbiorów encji, odwzorowanie związków encji o liczebności 1:1, 1:N, N:M, odwzorowanie słabych zbiorów encji.
Relacyjny model danych Relacyjny model danych jest aktualnie najbardziej użytecznym modelem danych, bazujący na jednym pojęciu: relacji rozumianej jako dwuwymiarowa tabela, do której wpisywane są dane. Ze względu na brak elastyczności modelu relacyjnego na etapie projektowania łatwiej jest zaprojektować bazę danych w oparciu o model związków encji a następnie przejść do modelu relacyjnego. Dlatego naszym celem będzie najpierw poznanie modelu relacyjnego a następnie sposobu przejścia od modelu związków encji do modelu relacyjnego.
Podstawy Jedynym sposobem reprezentowania danych w modelu relacyjnym jest dwuwymiarowa tabela nazywana relacją. tytuł rok długość typtaśmy GwiezdneWojny 1977 124 kolor Świat Wayne a 1992 95 kolor Szczęki 1975 124 kolor Atrybuty: W nagłówku relacji(tabeli) podaje się atrybuty. Służą do nazwania kolumn w tabeli. Na ogól oddają znaczenie danych umieszczanych w kolumnach pod nimi. Schematy: Nazwa relacji oraz zbiór atrybutów nazywa się schematem relacji. Schemat relacji zapisuje się podając jej nazwę oraz listę atrybutów umieszczonych w nawiasach okrągłych, które oddzielająprzecinki:r(a 1,A 2,...,A n ). Przykład schematu relacji Film o atrybutach: tytuł, rok, długość i TypTaśmy: Film(tytuł, rok, długość, typtaśmy).
Podstawy Krotki: Wiersze tabeli(relacji), nie wliczając wiersza atrybutów, nazywane są krotkami. W każdej krotce reprezentującej pewien obiekt każdy atrybut relacji ma swój odpowiednik w postaci składowej krotki, która jest wartością atrybutu. Pojedyncza krotka bez schematu relacji nie jest czytelna, gdyż nie wiemy których atrybutów dotyczą jej kolejne wartości. Relacja jest zbiorem krotek, a zatem nie może być takiej sytuacji, że w tabeli znajdą się dwie takie same krotki, takie same wiersze. Dziedziny: W modelu relacyjnym każda składowa relacji musi mieć określony typ atomowy, tzn. musi być typem elementarnym- niepodzielnym np. całkowitym, znakowym itp. Wartość atrybutu nie może być ani rekordem, ani listą, ani tablicą, ani żadnym innym złożonym obiektem. Zakłada się, że każdy atrybut relacji jest powiązany z dziedziną, czyli z pewnym typem elementarnym. Przezstanrelacjir(R)oschemacieR(A 1,A 2,...,A n)rozumiesięzbiórkrotekrelacji Rnależącychdobazydanychr={t 1,t 2,...,t m}.
Instancje relacji Relacje nie muszą być statyczne, tzn. mogą zmieniać się w czasie. Zmiany te dotyczą głównie krotek relacji. Np. w przypadku relacji filmcojakiśczaspojawiasięnowytytuł.takżewrazzupływem czasu relacja ta zmienia się. Rzadziej zmianie ulega zmiana schematu relacji. Mogą jednak zdarzyć się takie sytuacje. W systemach komercyjnych takie zmiany są bardzo kosztowne i często niewykonalne. Zbiór krotek danej relacji nazywa się instancją relacji. W konwencjonalnych systemach baz danych udostępnia się tylko jedną instancję każdej relacji, czyli zbiór krotek, które są w relacji teraz. Takie instancje nazywane są instancjami bieżącymi.
Ograniczenia modelu relacyjnego oparte na schemacie bazy Ograniczenia dziedziny. Oznacza, że wartość dowolnego atrybutu krotki musi być atomowa. Ograniczenia klucza. Stan relacji jest zbiorem krotek, a zatem nie mogą do jednej relacji należeć dwie identyczne krotki, co oznacza, że każda z krotek musi być unikatowa. Przeważnie istnieją jednak podzbiory atrybutów, które identyfikują jednoznacznie krotki w relacji przez co rozumiemy, że w danej relacji nie istnieją dwie krotki o tych samych wartościach wskazanych atrybutów. Każdy taki zbiór atrybutów SK nazywana się nadkluczem relacji(superkey). Zbiór ten może być jednak nadmiarowy. Bardziej przydatnym pojęciem jest klucz czyli zbiór atrybutów relacji będący nadklucze relacji o minimalnej liczbie atrybutów. Oznacza to, że usunięcie któregokolwiek z atrybutów klucza spowoduje, że otrzymany zbiór nie jest nadkluczem relacji. Klucz jest związany ze strukturą relacji i nie ulega zmianie w czasie. Musi zostać zachowany w trakcie aktualizacji relacji, tzn. dodana nowa krotka nie może mieć wartości klucza takiej samej jak którykolwiek z istniejących już rekord w tabeli. Ograniczenie wartości pustych. Na atrybuty można nałożyć ograniczenie, które określa czy stosowanie wartości pustych jest dozwolone, czy też zabronione.
Od relacji do relacyjnej bazy danych Do tej pory omawialiśmy tylko pojedyncze relacje czyli tabele przechowujące dane dotyczące pewnego obiektu świata rzeczywistego. W praktyce w relacyjnych bazach danych istnieje wiele relacji(tabel) najczęściej wzajemnie ze sobą powiązanych. Schemat relacyjnej bazy danych jest zbiorem schematów relacji tworzących bazę S ={R 1,R 2,...,R n } oraz zbiorem więzów integralności WI, który zawiera ograniczenia wynikające z modelu relacyjnego, więzy integralności encji, więzy integralności odwołań i klucze obce.
Więzy integralności Więzy integralności encji określają, że żadna wartość atrybutu klucza głównego nie może mieć wartości pustej. Więzy integralności odwołań są definiowane pomiędzy relacjami i oznaczają tyle, że krotka należąca do jednej relacji odwołująca się do drugiej relacji zawsze musi wskazywać na istniejącą krotkę tamtej relacji. Przykład. Pomiędzy dziekanem i wydziałem mamy taką więź, gdyż dziekan musi być związany zawsze z istniejącym wydziałem. Kluczobcy.ZbióratrybutówFKwschemacierelacjiR 1 jestkluczemobcymtego schematu,któryodwołujesiędorelacjir 2 wtedyitylkowtedy,gdy: 1 wartości atrybutów w zbiorze FK należą do tej samej dziedziny co argumenty pełniącerolękluczagłównegowrelacjir 2, 2 wartośćkluczaobcegowkrotcet 1 wstanier(r 1 )musibyćrównawartości kluczagłównegopewnejkrotkit 2 wstanier(r 2 )(t 1 [FK] =t 2 [PK])alboma wartośćpustą.wpierwszymprzypadkumówimy,żekrotkat 1 odwołujesiędo krotkit 2. Jeśliobydwawymienionepowyżejwarunkisąspełnione,wówczasrelacjęR 1 nazywasię odwołującąarelacjęr 2 wskazującąiuważasię,żewięzyintegralnościodwołania relacjir 1 dor 2 sąspełnione. W bazach danych składających się z wielu relacji występuje wiele tego typu odwołań.
Od modelu związków encji do modelu relacyjnego Opiszemy teraz kolejne kroki algorytmu odwzorowującego model E/R w relacyjny schemat bazy danych. Krok 1: Odwzorowanie zwykłych(silnych) zbiorów encji. Dla każdego zbioru encji E w modelu E/R należy stworzyć odpowiadającą mu relację R w modelu relacyjnym, która będzie zawierała wszystkie atrybuty proste typu zbioru encji E. W nowej relacji możemy tylko wstawić atrybuty proste tworzące atrybut złożony. Krok 2: Odwzorowanie słabych zbiorów encji. Dla każdego słabego zbioru encji należy stworzyć relację zawierającą wszystkie proste atrybuty zbioru encji. Dodatkowo nowa relacja powinna zwierać w postaci klucza obcego atrybut(atrybuty) klucza głównego zbioru encji będącego w związku binarnym 1:N z omawianym słabym zbiorem encji. Klucz główny tak powstałej relacji powinien być sumą atrybutów kluczy głównych zbiorów encji będących w związku 1:N z słabym zbiorem encji oraz klucza częściowego(o ile istnieje) słabego zbioru encji.
Od modelu związków encji do modelu relacyjnego Krok 3: Odwzorowanie binarnych związków 1:1. Podejście oparte na wykorzystaniu klucza obcego- wybieramy jedną z relacji odpowiadających jednemu ze zbiorów encji tego związku i wstawiamy w niej dodatkowy atrybut(atrybuty) klucza obcego wskazującego na klucz główny drugiej relacji tego związku. Krok 4: Odwzorowanie binarnych związków 1:N. W relacji reprezentującej zbiór encji będący w związku po stronie N wstawiamy dodatkowy atrybut(atrybuty) klucza obcego reprezentującego klucz główny relacji reprezentującej zbiór encji w związku po stronie 1. Takie podejście wynika z faktu, że dla każdego egzemplarza relacji(każdej krotki) po stronie N istnieje co najwyżej jeden egzemplarz drugiej relacji po stronie 1. Krok 5: Odwzorowanie binarnych związków N:M. Należy stworzyć nową relację tego związku. Relacja ta powinna posiadać klucze obce wskazujące na klucze główne zbiorów encji będących w tym związku. Relacja ta powinna zawierać również wszystkie atrybuty proste tego związku.
Od modelu związków encji do modelu relacyjnego Krok 6: Odwzorowanie atrybutów wielowartościowych. Dla każdego atrybutu wielowartościowego należy stworzyć nową relację, która zawiera atrybuty odpowiadające wielowartościowemu atrybutowi zbioru encji i atrybutom klucza głównego relacji reprezentującej zbiór encji posiadający atrybut wielowartościowy. Krok 7: Odwzorowanie związków wieloargumentowych. Dla każdego wieloargumentowego związku należy stworzyć nową relację zawierającą (w postaci kluczy obcych) klucze główne wszystkich relacji reprezentujących zbiory encji należących do tego związku oraz atrybuty proste związku. Uwaga! W przypadku związków 1:1 lub 1:N, kiedy niewielka ilość encji uczestniczy w związek lepiej stworzyć nową relację reprezentującą związek podobnie jak w przypadku związków N:M. Uniknie się wówczas dużej ilości wartości pustych.
Przykład książka telefoniczna id_zn imie numer nazwisko id_tele typ ZNAJOMI Posiada TELEFONY t adres data ur. ZNAJOMI +(PK) id_znajomego: int +imie: char(15) +nazwisko: char(20) +adres: char(50) +data_ur: date POSIADA +(FK) id_znajomego: int +(FK) id_telefonu: int TELEFONY +(PK) id_tele: int +numer : char(11) +typ: char(10)
Przykład firma data_roz imie nazwisko numer nazwa id_prac Zarzadza lokalizacja adres plec PRACOWNICY DZIALY pensja zwierzchnik Pracuje w podwladny Uczestniczy Nadzoruje Kieruje PROJEKTY numer lokazacja
Przykład PKS Baza danych powinna zawierać informację o autobusachunikatowy numer, numer rejestracyjny, markę oraz rocznik. O każdym z kierowców powinny być przechowywane dane: imię, nazwisko, data urodzenia, adres zamieszkania, pensja. Autobusy kursują po liniach składających się z ciągu przystanków, które również identyfikowane są unikatowym numerem, ulicą oraz miejscowością. Każda linia ma nadany unikatowy numer oraz określony jest przystanek początkowy i końcowy linii. Każdy planowy przejazd autobusu w ramach danej linii nazywa się kursem. Na każdym z przystanków linii autobus odjeżdża o określonej porze i czas ten należy przechowywać w bazie.
Przykład PKS- diagram E/R nazwa id_aut nr_rej marka id_k data id_l rodzaj rocznik AUTOBUSY Realizuje KURSY odbywa sie LINIE Nalezy czas_odj Wykonuje PRZYSTANKI nazwa id_kier KIEROWCY id_prz ulica miejscowosc imie nazwisko adres pensja