Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Relacyjny Model Danych Wykład 2 Prowadzący: dr Paweł Drozda.

Podobne prezentacje


Prezentacja na temat: "Relacyjny Model Danych Wykład 2 Prowadzący: dr Paweł Drozda."— Zapis prezentacji:

1 Relacyjny Model Danych Wykład 2 Prowadzący: dr Paweł Drozda

2 dr P. Drozda Definicja danych Relacja – dwuwymiarowa tabela, jedyna struktura danych w modelu relacyjnym Każda relacja posiada atrybuty – kolumny. Opisują dane umieszczane w relacji Schemat relacji – nazwa relacji wraz z atrybutami Przykład schematu: Miasto (id, nazwa, id_regionu) Krotki – wiersze relacji zawierające dane. Każdy atrybut ma swój odpowiednik w krotce

3 Cechy relacji jednoznaczna nazwa relacji jednoznaczne nazwy kolumn (atrybutów) relacji ten sam typ wartości w jednej kolumnie porządek kolumn w relacji nieistotny niedozwolone powtórzenia wierszy nieistotny porządek wierszy (krotek) wartości atomowe w polach relacji dr P. Drozda

4 Przykłady Nr_indeksuNazwiskoImięAdres 1234KowalskiJanAkacjowa NowakPiotrDębowa MaliniakStefanBukowa GrabowskaJaninaBrzozowa 1 Id_indeksu OcenaPrzedmiot 1234(1234), (3214)5Bazy danych 3211(3211), (4327)b. dobryBazy danych 3211(3211), (4327)b. dobryBazy danych STUDENCI ZALICZENIA spełnia reguły nie spełnia reguł

5 dr P. Drozda Definicja danych – klucze główne każda relacja musi posiadać klucz główny jedna lub więcej kolumn identyfikujących jednoznacznie każdy wiersz tabeli Klucz kandydujący – atrybut lub zbiór atrybutów identyfikujących wiersze tabeli (musi być jednoznaczny i nie zawierać wartości null) Klucz główny wybierany spośród kluczy kandydujących

6 dr P. Drozda Definicja danych Dziedzina – zbiór wszystkich możliwych wystąpień atrybutu (np. ocena_z_egzaminu wartości od 2 do 5 – dziedzina 2-5) – każdy atrybut posiada dziedzinę Klucz obcy – kolumna bądź kolumny będące kluczem głównym w innej tabeli, sposób łączenia tabel (np. numer studenta w tabeli Studenci i w tabeli Zaliczenia) Wartość null – nieznana informacja (np. brak numeru telefonu)

7 Definicja dziedziny i relacji – przykład(1) Domains Nazwa Modułów: Character Poziomy: {1,2,3} Kody Kursów: Character NryPrac: Integer Statusy: {L, SL, PL, Reader, Prof, HOD} NazwiskaPrac: Character Relation: Wykładowcy Attributes NrPrac: NryPrac NazwiskoPrac: NazwiskaPrac Status: Statusy Primary Key: NrPrac dr P. Drozda

8 Definicja dziedziny i relacji – przykład(2) Relation: Moduły Attributes NazwaModułu: NazwyModułów Poziom: Poziomy KodKursu: KodyKursów NrPrac: NryPrac Primary Key: NazwaModułu Foreign Key: NrPrac references dr P. Drozda

9 Przykład Nr_indeksuNazwiskoImięAdres 1234KowalskiJanAkacjowa NowakPiotrDębowa MaliniakStefanBukowa GrabowskaJaninaBrzozowa 1 Id_indeksuOcenaPrzedmiot 12345Bazy danych 32114Bazy danych 32113Matematyka STUDENCI ZALICZENIA Klucz główny Klucz obcy Klucz główny

10 Ćwiczenie dr P. Drozda Nr_indeksuNazwiskoImięAdres 1234KowalskiJanAkacjowa NowakPiotrDębowa MaliniakStefanBukowa GrabowskaJaninaBrzozowa 1 Dla danej relacji określ: Atrybuty Krotki Składowe jednej krotki Schemat relacji Dziedzina dla każdego atrybutu Inny równoważny sposób przedstawienia relacji

11 dr P. Drozda Operowanie danymi Algebra relacyjna – zbiór sześciu operatorów do wyszukiwania danych (selekcja, rzut, złączenie, suma, przecięcie, różnica) Operacje dynamiczne na relacjach INSERT – wstawianie DELETE – usuwanie UPDATE – modyfikowanie

12 dr P. Drozda Selekcja - ograniczenie Wydobywa wszystkie informacje z relacji z interesującymi użytkownika danymi – nie bierze pod uwagę wszystkich krotek Przykład: Restrict STUDENCI where imię = JAN odpowiednik w SQL: SELECT * FROM STUDENCI where imię=Jan; Wynikiem powyższych zapytań jest relacja Nr_indeksuNazwiskoImięAdres 1234KowalskiJanAkacjowa 8

13 dr P. Drozda Rzut – projekcja (1) ogranicza liczbę atrybutów Przykład: PracownikNazwiskoImięPłaca 1StefanekMichał3000 zł 2DębekJarosław2340 zł 3KowalskiJan4600 zł PRACOWNICY

14 dr P. Drozda Rzut (2) Wynik zapytania: PROJECT Pracownicy (Nazwisko, Płaca) SELECT Nazwisko, Płaca from Pracownicy jest następujący: NazwiskoPłaca Stefanek3000 zł Dębek2340 zł Kowalski4600 zł

15 dr P. Drozda Operowanie danymi Złączenia – oparte na relacyjnym operatorze iloczynu kartezjańskiego Typy złączeń Iloczyn kartezjański Równozłączenie Złączenie naturalne Złączenia zewnętrzne Lewostronne złączenie zewnętrzne Prawostronne złączenie zewnętrzne Obustronne złączenie zewnętrzne

16 dr P. Drozda Iloczyn kartezjański Powstaje poprzez połączenie dwóch relacji w jedną zawierającą wszystkie możliwe kombinacje wierszy tabel wejściowych Przykład Nr_indeksuNazwiskoImię 1234KowalskiJan 6587MałekMichał 1243NowakPiotr nr_indeksuOcena

17 dr P. Drozda Iloczyn kartezjański Cd przykładu: relacja wynikowa Nr_indeksuNazwiskoImięnr_indeksuOcena 1234KowalskiJan MałekMichał NowakPiotr KowalskiJan MałekMichał NowakPiotr12345

18 dr P. Drozda Równozłączenie Nr_indeksuNazwiskoImię 1234KowalskiJan 6587MałekMichał 1243NowakPiotr Iloczyn kartezjański dla którego dokonana jest selekcja poprzez wybór wierszy dla których wartość kluczy podstawowego i obcego są takie same Przykład nr_indeksuPrzedmiotOcena 6587Bazy danych2 1243Filozofia4 1243Bazy danych3 1234Statystyka5

19 dr P. Drozda Równozłączenie cd przykładu: tabela wynikowa Nr_indeksuNazwiskoImięnr_indeksuPrzedmiotOcena 1234KowalskiJan1234Statystyka5 6587MałekMichał6587Bazy danych2 1243NowakPiotr1243Filozofia4 1243NowakPiotr1243Bazy danych3

20 dr P. Drozda Złączenie naturalne Podobne do równozłączenia – usuwa jedną z kolumn po której relacje są łączone Dla poprzedniego przykładu tabel wynikowa Nr_indeksuNazwiskoImięPrzedmiotOcena 1234KowalskiJanStatystyka5 6587MałekMicha ł Bazy danych2 1243NowakPiotrFilozofia4 1243NowakPiotrBazy danych3

21 dr P. Drozda Złączenia zewnętrzne Stosowane gdy zachowane mają zostać wszystkie wiersze jednej lub drugiej relacji (nawet gdy nie występują odpowiedniki w obu relacjach) Nr_pracNazwiskoImię 1GolałJan 6ReskoPaweł 3JanikTadeusz 4FerelMichał IdPrzedPrzedmiotProwadząc y 2Bazy danychnull 5Filozofia4 6Analiza matematyczna3 3Statystyka3

22 dr P. Drozda Złączenie lewostronne Zachowuje nie pasujące wiersze z relacji będącej pierwszym argumentem złączenia Wynik złączenia dla przykładu z poprzedniego slajdu Nr_pracNazwiskoImięIdPrzedPrzedmiotProwadząc y 1GolałJannull 6ReskoPawełnull 3JanikTadeusz6Analiza matematyczna3 3JanikTadeusz3Statystyka3 4FerelMichał5Filozofia4

23 dr P. Drozda Złączenie prawostronne Zachowuje nie pasujące wiersze z relacji będącej drugim argumentem złączenia Wynik złączenia Nr_pracNazwiskoImięIdPrzedPrzedmiotProwadząc y null 2Bazy danychnull 3JanikTadeusz6Analiza matematyczna3 3JanikTadeusz3Statystyka3 4FerelMichał5Filozofia4

24 dr P. Drozda Złączenie obustronne Zachowuje nie pasujące wiersze z obydwu relacji Wynik złączenia Nr_pracNazwiskoImięIdPrzedPrzedmiotProwadząc y null 2Bazy danychnull 3JanikTadeusz6Analiza matematyczna3 3JanikTadeusz3Statystyka3 4FerelMichał5Filozofia4 1GolałJannull 1 6ReskoPawełnull 6

25 dr P. Drozda Pozostałe operatory stosowane dla zgodnych relacji - ta sama liczba argumentów w relacjach, ta sama dziedzina dla odpowiadających argumentów analogicznie do algebry zbiorów

26 dr P. Drozda Pozostałe operatory Przykład Nr_pracNazwiskoImię 1GolałJan 6ReskoRegina 7JanikTadeusz 9RewakPiotr Nr_pracNazwiskoImię 1GolałJan 2MaserPaweł 3JawoszMagda 4FerelMichał PRACOWNICY KIEROWNICY

27 dr P. Drozda Pozostałe operatory Suma Nr_pracNazwiskoImię 1GolałJan 2MaserPaweł 3JawoszMagda 4FerelMichał 6ReskoRegina 7RewakPiotr 9JanikTadeusz Nr_pracNazwiskoImię 1GolałJan Przecięcie

28 dr P. Drozda Pozostałe operatory Różnica A-B Nr_pracNazwiskoImię 2MaserPaweł 3JawoszMagda 4FerelMichał Nr_pracNazwiskoImię 6ReskoRegina 7RewakPiotr 9JanikTadeusz Różnica A-B

29 dr P. Drozda Języki zapytań składanie operatorów w celu wydobycia informacji z bazy danych Przykład – znaleźć wszystkie przedmioty prowadzone przez Janika Nr_pracNazwiskoImię 1GolałJan 6ReskoPaweł 3JanikTadeusz 4FerelMichał IdPrzedPrzedmiotProwadząc y 2Bazy danychnull 5Filozofia4 6Analiza matematyczna3 3Statystyka3 PRACOWNICYPRZEDMIOTY

30 dr P. Drozda Języki zapytań Przykład cd Proceduralny język zapytań Join PRACOWNICY with PRZEDMIOTY -> R1 SELECT R1 where Nazwisko=Janik -> R2 PROJECT R2(Przedmiot) ->R3 SQL select Przedmiot from PRACOWNICY inner join PRZEDMIOTY on PRACOWNICY.Nr_prac = PRZEDMIOTY.Prowadzacy where Nazwisko=Janik;

31 dr P. Drozda Operacje dynamiczne INSERT (wart1, wart2, …) INTO tabela – wstawia do tabeli wartości wart1, wart2, … Przykład INSERT (10, Banach, Jacek) INTO PRACOWNICY spowoduje dodanie wiersza do relacji PRACOWNICY DELETE tabela WITH warunek – usuwa z tabeli krotki określone w warunku Przykład DELETE PRZEDMIOTY WITH Prowadzący = 3 – usunie krotki dotyczące analizy matematycznej i statystyki

32 dr P. Drozda Operacje dynamiczne UPDATE tabela WHERE warunek SET nazwaKolumny = wartosc – zmienia w krotkach określonych w warunku kolumnę nazwaKolumny na podaną wartość Przykład UPDATE PRZEDMIOTY WHERE prowadzący=3 SET prowadzący=1 – zmienia prowadzącego przedmiotów analiza matematyczna i statystyka

33 dr P. Drozda Integralność danych Integralność danych zapewnia dokładne odbicie rzeczywistości w bazie danych W modelu relacyjnym istnieją dwa rodzaje integralności wewnętrznej integralność encji integralność referencyjna

34 dr P. Drozda Integralność encji Dotyczy kluczy głównych Każda relacja musi mieć klucz główny Klucz główny musi być jednoznaczny i nie może zawierać wartości null (co skutkuje jednoznacznością krotek w relacji) Przykład kluczem głównym w tej relacji może być Nr_prac, nazwisko lub imię Nr_pracNazwiskoImię 1GolałJan 2ReskoPaweł 3JanikTadeusz 4FerelMichał PRACOWNICY

35 dr P. Drozda Integralność referencyjna Dotyczy kluczy obcych dwie możliwości (w zależności od konkretnej bazy danych) - Wartość klucza obcego musi odwoływać się do wartości klucza głównego w tabeli w bazie danych - Wartość klucza obcego może być null - Wymuszenie istnienia odniesienia każdego wiersza – parametr not null

36 dr P. Drozda Integralność referencyjna Przykład Nr_pracNazwiskoImię 1GolałJan 6ReskoPaweł 3JanikTadeusz 4FerelMichał IdPrzedPrzedmiotProwadząc y 2Bazy danychnull 5Filozofia4 6Analiza matematyczna3 3Statystyka3 Integralność referencyjna zachowana, jeśli są dopuszczane wartości null klucza obcego (klucze obce mogą należeć do zbioru {1,3,4,6})

37 dr P. Drozda Zachowanie integralności referencyjnej Określenie więzów propagacji – określają co ma się stać z tabelą przy modyfikacji powiązanej tabeli Ograniczone usuwanie – usunięcie krotki z kluczem głównym możliwe w momencie, gdy klucz główny nie ma wystąpień jako klucz obcy Dla poprzedniego przykładu – z tabeli pracownicy można usunąć pracowników o numerach 1 i 6. Pozostali mogą zostać usunięci dopiero w momencie gdy zostaną usunięte odpowiednie krotki w powiązanej tabeli

38 dr P. Drozda Zachowanie integralności referencyjnej Kaskadowe usuwanie Przy usunięciu wiersza z kluczem głównym zostają usunięte wszystkie wiersze z tym kluczem z relacji powiązanej Jeśli usuniemy z tabeli PRACOWNICY pracownika o numerze 3 – zostaną usunięte Przedmioty o numerach 6 i 3 z tabeli PRZEDMIOTY Wstaw null – przy usunięciu krotki z kluczem głównym zostają wstawione wartości null zamiast klucza obcego Wstaw default – przy usuwaniu wstawia wartość domyślną

39 dr P. Drozda Integralność dodatkowa Definiowana przez użytkownika – specyficzna dla każdej bazy danych Przykład Możemy wymusić, że każdy pracownik musi prowadzić jakieś zajęcia CONSTRAINT (Project PRACOWNICY(Nr_prac)) – (Project PRZEDMIOTY(Prowadzący)) is empty


Pobierz ppt "Relacyjny Model Danych Wykład 2 Prowadzący: dr Paweł Drozda."

Podobne prezentacje


Reklamy Google