1 / 39

Relacyjny Model Danych

Relacyjny Model Danych. Wykład 2 Prowadzący: dr Paweł 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

dillon
Download Presentation

Relacyjny Model Danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 dr P. Drozda

  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 STUDENCI spełnia reguły ZALICZENIA nie spełnia reguł dr P. Drozda

  5. 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 dr P. Drozda

  6. 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) dr P. Drozda

  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 STUDENCI Klucz główny Klucz główny ZALICZENIA Klucz obcy dr P. Drozda

  10. Ćwiczenie • 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 dr P. Drozda

  11. 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 dr P. Drozda

  12. 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 dr P. Drozda

  13. Rzut – projekcja (1) • ogranicza liczbę atrybutów • Przykład: PRACOWNICY dr P. Drozda

  14. Rzut (2) • Wynik zapytania: PROJECT Pracownicy (Nazwisko, Płaca) SELECT Nazwisko, Płaca from Pracownicy • jest następujący: dr P. Drozda

  15. 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 dr P. Drozda

  16. Iloczyn kartezjański • Powstaje poprzez połączenie dwóch relacji w jedną zawierającą wszystkie możliwe kombinacje wierszy tabel wejściowych • Przykład dr P. Drozda

  17. Iloczyn kartezjański • Cd przykładu: relacja wynikowa dr P. Drozda

  18. Równozłączenie • 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 dr P. Drozda

  19. Równozłączenie • cd przykładu: tabela wynikowa dr P. Drozda

  20. Złączenie naturalne • Podobne do równozłączenia – usuwa jedną z kolumn po której relacje są łączone • Dla poprzedniego przykładu tabel wynikowa dr P. Drozda

  21. Złączenia zewnętrzne • Stosowane gdy zachowane mają zostać wszystkie wiersze jednej lub drugiej relacji (nawet gdy nie występują odpowiedniki w obu relacjach) dr P. Drozda

  22. 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 dr P. Drozda

  23. Złączenie prawostronne • Zachowuje nie pasujące wiersze z relacji będącej drugim argumentem złączenia • Wynik złączenia dr P. Drozda

  24. Złączenie obustronne • Zachowuje nie pasujące wiersze z obydwu relacji • Wynik złączenia dr P. Drozda

  25. 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 dr P. Drozda

  26. Pozostałe operatory • Przykład PRACOWNICY KIEROWNICY dr P. Drozda

  27. Pozostałe operatory Suma Przecięcie dr P. Drozda

  28. Pozostałe operatory Różnica A-B Różnica A-B dr P. Drozda

  29. Języki zapytań • składanie operatorów w celu wydobycia informacji z bazy danych • Przykład – znaleźć wszystkie przedmioty prowadzone przez Janika PRACOWNICY PRZEDMIOTY dr P. Drozda

  30. 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’; dr P. Drozda

  31. 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 dr P. Drozda

  32. 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 dr P. Drozda

  33. 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 dr P. Drozda

  34. 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ę PRACOWNICY dr P. Drozda

  35. 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 dr P. Drozda

  36. Integralność referencyjna • Przykład Integralność referencyjna zachowana, jeśli są dopuszczane wartości null kluczaobcego (klucze obce mogą należeć do zbioru {1,3,4,6}) dr P. Drozda

  37. 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 dr P. Drozda

  38. 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ą dr P. Drozda

  39. 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 dr P. Drozda

More Related