Relacyjny Model Danych

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

description

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 - PowerPoint PPT Presentation

Transcript of Relacyjny Model Danych

Page 1: Relacyjny Model Danych

Relacyjny Model Danych

Wykład 2Prowadzący: dr Paweł Drozda

Page 2: Relacyjny Model Danych

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

Page 3: Relacyjny Model Danych

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

Page 4: Relacyjny Model Danych

dr P. Drozda

Przykłady

Nr_indeksu Nazwisko Imię Adres

1234 Kowalski Jan Akacjowa 8

2134 Nowak Piotr Dębowa 4

4321 Maliniak Stefan Bukowa 4

3298 Grabowska Janina Brzozowa 1

Id_indeksu Id_indeksu Ocena Przedmiot

1234 (1234), (3214) 5 Bazy danych

3211 (3211), (4327) b. dobry Bazy danych

3211 (3211), (4327) b. dobry Bazy danych

STUDENCI

ZALICZENIA

spełnia reguły

nie spełnia reguł

Page 5: Relacyjny Model Danych

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

Page 6: Relacyjny Model Danych

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)

Page 7: Relacyjny Model Danych

Definicja dziedziny i relacji – przykład(1)

DomainsNazwa Modułów: CharacterPoziomy: {1,2,3}Kody Kursów: CharacterNryPrac: IntegerStatusy: {L, SL, PL, Reader, Prof, HOD}NazwiskaPrac: Character

Relation: WykładowcyAttributesNrPrac: NryPracNazwiskoPrac: NazwiskaPracStatus: Statusy Primary Key: NrPrac

dr P. Drozda

Page 8: Relacyjny Model Danych

Definicja dziedziny i relacji – przykład(2)

Relation: ModułyAttributesNazwaModułu: NazwyModułówPoziom: PoziomyKodKursu: KodyKursówNrPrac: NryPracPrimary Key: NazwaModułuForeign Key: NrPrac references

dr P. Drozda

Page 9: Relacyjny Model Danych

dr P. Drozda

Przykład

Nr_indeksu Nazwisko Imię Adres

1234 Kowalski Jan Akacjowa 8

2134 Nowak Piotr Dębowa 4

4321 Maliniak Stefan Bukowa 4

3298 Grabowska Janina Brzozowa 1

Id_indeksu Ocena Przedmiot

1234 5 Bazy danych

3211 4 Bazy danych

3211 3 Matematyka

STUDENCI

ZALICZENIA

Klucz

główny

Klucz

obcy

Klucz główny

Page 10: Relacyjny Model Danych

Ćwiczenie

dr P. Drozda

Nr_indeksu Nazwisko Imię Adres

1234 Kowalski Jan Akacjowa 8

2134 Nowak Piotr Dębowa 4

4321 Maliniak Stefan Bukowa 4

3298 Grabowska Janina Brzozowa 1

Dla danej relacji określ:AtrybutyKrotkiSkładowe jednej krotkiSchemat relacji Dziedzina dla każdego atrybutuInny równoważny sposób przedstawienia relacji

Page 11: Relacyjny Model Danych

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

Page 12: Relacyjny Model Danych

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_indeksu Nazwisko Imię Adres

1234 Kowalski Jan Akacjowa 8

Page 13: Relacyjny Model Danych

dr P. Drozda

Rzut – projekcja (1) ogranicza liczbę

atrybutów Przykład:

Pracownik Nazwisko Imię Płaca

1 Stefanek Michał 3000 zł

2 Dębek Jarosław 2340 zł

3 Kowalski Jan 4600 zł

PRACOWNICY

Page 14: Relacyjny Model Danych

dr P. Drozda

Rzut (2) Wynik zapytania:

PROJECT Pracownicy (Nazwisko, Płaca)SELECT Nazwisko, Płaca from Pracownicy

jest następujący:Nazwisko Płaca

Stefanek 3000 zł

Dębek 2340 zł

Kowalski 4600 zł

Page 15: Relacyjny Model Danych

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

Page 16: Relacyjny Model Danych

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_indeksu Nazwisko Imię

1234 Kowalski Jan

6587 Małek Michał

1243 Nowak Piotr

nr_indeksu Ocena

3214 2

1234 5

Page 17: Relacyjny Model Danych

dr P. Drozda

Iloczyn kartezjański Cd przykładu: relacja wynikowa

Nr_indeksu Nazwisko Imię nr_indeksu Ocena

1234 Kowalski Jan 3214 2

6587 Małek Michał 3214 2

1243 Nowak Piotr 3214 2

1234 Kowalski Jan 1234 5

6587 Małek Michał 1234 5

1243 Nowak Piotr 1234 5

Page 18: Relacyjny Model Danych

dr P. Drozda

Równozłączenie

Nr_indeksu Nazwisko Imię

1234 Kowalski Jan

6587 Małek Michał

1243 Nowak Piotr

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_indeksu Przedmiot Ocena

6587 Bazy danych 2

1243 Filozofia 4

1243 Bazy danych 3

1234 Statystyka 5

Page 19: Relacyjny Model Danych

dr P. Drozda

Równozłączenie cd przykładu: tabela wynikowa

Nr_indeksu Nazwisko Imię nr_indeksu Przedmiot Ocena

1234 Kowalski Jan 1234 Statystyka 5

6587 Małek Michał 6587 Bazy danych

2

1243 Nowak Piotr 1243 Filozofia 4

1243 Nowak Piotr 1243 Bazy danych

3

Page 20: Relacyjny Model Danych

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_indeksu Nazwisko Imię Przedmiot Ocena

1234 Kowalski Jan Statystyka 5

6587 Małek Michał

Bazy danych 2

1243 Nowak Piotr Filozofia 4

1243 Nowak Piotr Bazy danych 3

Page 21: Relacyjny Model Danych

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_prac Nazwisko Imię

1 Golał Jan

6 Resko Paweł

3 Janik Tadeusz

4 Ferel Michał

IdPrzed Przedmiot Prowadzący

2 Bazy danych null

5 Filozofia 4

6 Analiza matematyczna

3

3 Statystyka 3

Page 22: Relacyjny Model Danych

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_prac Nazwisko Imię IdPrzed Przedmiot Prowadzący

1 Golał Jan null null null

6 Resko Paweł null null null

3 Janik Tadeusz 6 Analiza matematyczna

3

3 Janik Tadeusz 3 Statystyka 3

4 Ferel Michał 5 Filozofia 4

Page 23: Relacyjny Model Danych

dr P. Drozda

Złączenie prawostronne Zachowuje nie pasujące wiersze z relacji

będącej drugim argumentem złączenia Wynik złączenia

Nr_prac Nazwisko Imię IdPrzed Przedmiot Prowadzący

null null null 2 Bazy danych null

3 Janik Tadeusz 6 Analiza matematyczna

3

3 Janik Tadeusz 3 Statystyka 3

4 Ferel Michał 5 Filozofia 4

Page 24: Relacyjny Model Danych

dr P. Drozda

Złączenie obustronne Zachowuje nie pasujące wiersze z obydwu

relacji Wynik złączenia

Nr_prac Nazwisko Imię IdPrzed Przedmiot Prowadzący

null null null 2 Bazy danych null

3 Janik Tadeusz 6 Analiza matematyczna

3

3 Janik Tadeusz 3 Statystyka 3

4 Ferel Michał 5 Filozofia 4

1 Golał Jan null null 1

6 Resko Paweł null null 6

Page 25: Relacyjny Model Danych

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

Page 26: Relacyjny Model Danych

dr P. Drozda

Pozostałe operatory Przykład

Nr_prac Nazwisko Imię

1 Golał Jan

6 Resko Regina

7 Janik Tadeusz

9 Rewak Piotr

Nr_prac Nazwisko Imię

1 Golał Jan

2 Maser Paweł

3 Jawosz Magda

4 Ferel Michał

PRACOWNICY KIEROWNICY

Page 27: Relacyjny Model Danych

dr P. Drozda

Pozostałe operatory

Suma

Nr_prac Nazwisko Imię

1 Golał Jan

2 Maser Paweł

3 Jawosz Magda

4 Ferel Michał

6 Resko Regina

7 Rewak Piotr

9 Janik Tadeusz

Nr_prac Nazwisko Imię

1 Golał Jan

Przecięcie

Page 28: Relacyjny Model Danych

dr P. Drozda

Pozostałe operatory

Różnica A-B

Nr_prac Nazwisko Imię

2 Maser Paweł

3 Jawosz Magda

4 Ferel Michał

Nr_prac Nazwisko Imię

6 Resko Regina

7 Rewak Piotr

9 Janik Tadeusz

Różnica A-B

Page 29: Relacyjny Model Danych

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_prac Nazwisko Imię

1 Golał Jan

6 Resko Paweł

3 Janik Tadeusz

4 Ferel Michał

IdPrzed Przedmiot Prowadzący

2 Bazy danych null

5 Filozofia 4

6 Analiza matematyczna

3

3 Statystyka 3

PRACOWNICY PRZEDMIOTY

Page 30: Relacyjny Model Danych

dr P. Drozda

Języki zapytań Przykład cd Proceduralny język zapytań

Join PRACOWNICY with PRZEDMIOTY -> R1SELECT 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’;

Page 31: Relacyjny Model Danych

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

Page 32: Relacyjny Model Danych

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

Page 33: Relacyjny Model Danych

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

Page 34: Relacyjny Model Danych

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 wtej relacji może byćNr_prac, nazwisko lub imię

Nr_prac Nazwisko Imię

1 Golał Jan

2 Resko Paweł

3 Janik Tadeusz

4 Ferel Michał

PRACOWNICY

Page 35: Relacyjny Model Danych

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

Page 36: Relacyjny Model Danych

dr P. Drozda

Integralność referencyjna Przykład

Nr_prac Nazwisko Imię

1 Golał Jan

6 Resko Paweł

3 Janik Tadeusz

4 Ferel Michał

IdPrzed Przedmiot Prowadzący

2 Bazy danych null

5 Filozofia 4

6 Analiza matematyczna

3

3 Statystyka 3

Integralność referencyjna zachowana, jeśli są dopuszczane wartości null klucza obcego (klucze obce mogą należeć do zbioru {1,3,4,6})

Page 37: Relacyjny Model Danych

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 obcyDla 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

Page 38: Relacyjny Model Danych

dr P. Drozda

Zachowanie integralności referencyjnej

Kaskadowe usuwaniePrzy 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ą

Page 39: Relacyjny Model Danych

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