Plan wykładu Bazy danych Wykład 3: Relacyjny model danych. SQL Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - podstawy Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl Bazy danych (studia dzienne) 2 Podstawowe elementy ERD zbiory encji encje atrybuty zwizki Licznoci Klucze Podklasy Zbiory słabych encji Diagramy ER Podstawy modeli relacyjnych Reprezentacja danych: dwuwymiarowa tabela, zwana relacj Przykład: Atrybuty Tytuł Rok Czas Rodzaj urek 2003 71 Kolor Kingsajz 1987 104 Kolor Seksmisja 1984 117 Kolor Krotki Bazy danych (studia dzienne) 3 Bazy danych (studia dzienne) 4
Podstawy modeli relacyjnych Schemat relacji - nazwa relacji oraz jej zbiór atrybutów Film (tytuł, rok, czas, rodzaj) W modelu relacyjnym projekt składa si z jednego lub kilku schematów relacji. Zbiór schematów relacji jest okrelany schematem relacyjnym bazy danych lub schematem bazy danych. Krotki - wiersze relacji, poza wierszem nagłówka, zawierajcym atrybuty relacji W krotce kady atrybut ma swój odpowiednik w postaci składowej krotki Przykład: (Gwiezdne wojny, 1977, 124, kolor) Jedna krotka nie moe wystpi w relacji wicej ni jeden raz. Podstawy modeli relacyjnych Dziedziny -pewien okrelony typ elementarny, powizany z kadym atrybutem relacji W modelu relacyjnym kada składowa kadej relacji musi mie okrelony typ atomowy (elementarny) np. typ całkowity, znakowy. Warto atrybutu nie moe by ani rekordem, ani list, ani zbiorem... Przykład: Film (tytuł, rok, czas, rodzaj) Bazy danych (studia dzienne) 5 Bazy danych (studia dzienne) 6 Równowane sposoby reprezentowania relacji Schematy i krotki relacji s zbiorami, std porzdek w jakim je przedstawimy nie ma znaczenia. Tytuł Rok Czas Rodzaj urek 2003 71 Kolor Kingsajz 1987 104 Kolor Seksmisja 1984 117 Kolor (urek, 2003, 95, kolor) Rodzaj Tytuł Rok Czas Kolor urek 2003 71 Kolor Kingsajz 1987 104 Kolor Seksmisja 1984 117 (Kolor, urek, 2003, 95) Bazy danych (studia dzienne) 7 Formalny zapis krotki Instancje Krotka - funkcja przeprowadzajca atrybuty ze schematu relacji do ich zbiorów wartoci - do składowych tych krotek: tytuł -> urek rok -> 2003 czas -> 95 rodzaj -> Kolor Instancja relacji - zbiór krotek danej relacji Instancja bieca - zbiór krotek, które s w relacji teraz Bazy danych (studia dzienne) 8
Od diagramów ERD do relacji Zwizki wieloargumentowe Zbiory encji przekształcamy w relacj z takim samym zbiorem atrybutów: Filmy Kontrakty Aktorzy Zwizki z diagramów encji przyjmuj posta relacji. Relacja danego zwizku R ma nastpujce atrybuty: dla kadego zbioru encji uczestniczcego w R umieszczamy w schemacie relacji odpowiadajcej R klucze tych zbiorów jako atrybuty tej relacji jeli zwizek ma własny klucz, to te dołczamy jego atrybuty do zbioru atrybutów relacji Uwaga: w przypadku powtarzania si nazw atrybutów naley zmieni ich nazwy Studio producenta Studia Studio aktora Tabela kontrakty: Klucz dla zbioru Filmy: tytuł, rok Klucz dla zbioru Aktorzy: nazwiskoaktora Klucz dla Studia producenta: studioproducenta Klucz dla Studia aktora: studioaktora Bazy danych (studia dzienne) 9 Bazy danych (studia dzienne) 10 Złoenie relacji Dopuszcza si moliwo złoenia dwóch relacji: relacji zwizanej z danym zbiorem encji E z relacj powstał ze zwizku R wiele do jeden z E do innego zbioru encji. Zbiory słabych encji Relacja odpowiadajca słabemu zbiorowi encji E powinna zawiera wszystkie atrybuty, które wchodz w skład klucza tego zbioru (tj. atrybuty ze zbioru słabego, jak te atrybuty z innych wspomagajcych zbiorów encji) oraz pozostałe atrybuty zbioru słabego. Zwizki oznaczone podwójnym rombem nie tworz oddzielnych relacji. Bazy danych (studia dzienne) 11 Bazy danych (studia dzienne) 12
Trzy podejcia: Reprezentacja zwizków isa w modelu relacyjnym zorientowane obiektowo - kada krotka naley tylko do jednej klasy; tworzenie relacji dla kadej klasy biorc pod uwag wszystkie jej atrybuty styl E/R - relacje s tworzone dla kadej podklasy; zawieraj atrybuty kluczowe i te atrybuty, które s powizane z podklas Wykorzystujc NULL - naley utworzy tylko jedn relacje; encje przyjmuj wartoci NULL dla tych atrybutów, które nie wchodz w skład danego zbioru encji Porównanie metod Zapytania: Koszt zapyta zwizanych z wieloma relacjami jest duy, std podejcie wykorzystujce NULL jest lepsze. Podejscie zorientowane obiektowo jest lepsze dla zapyta typu jaka bro jest wykorzystywana w kreskówkach trwajcych dłuej ni 150 minut Styl E/R jest lepszy dla zapyta typu jakie filmy z roku 1999 trwały dłuej ni 150 minut Preferuje si schematy z moliwie mał liczb relacji (E/R - 1 relacja na 1 zbiór encji; o-o - majc korze i n podklas otrzymujemy 2 n klas) Minimalizacja zajtoci dysku: najlepsza metoda o-o; metoda NULL - w zalenoci od liczby elementów brakujcych moe by lepsza lub gorsza od metody E/R. Bazy danych (studia dzienne) 13 Bazy danych (studia dzienne) 14 SQL: Strukturalny Jzyk Zapyta (ang. Structured Query Language) Zapytania proste Definiowanie danych (DDL:Data Definition Language) Definiowanie zapyta (DQL: Data Query Language) Modyfikowanie danych (DML: Data Modification Language) SELECT [ALL DISTINCT] wyraenie [[AS] alias],... FROM nazwa_tabeli,... [WHERE warunek] [ORDER BY wyraenie ASC DESC],...]; Sterowanie danymi (DCL: Data Control Language) Bazy danych (studia dzienne) 15 Bazy danych (studia dzienne) 16
Zapytania proste SELECT [ALL DISTINCT] wyraenie [[AS] alias],... FROM nazwa_tabeli,... ALL- pokazuje wszystkie wiersze (domylny) DISTINCT - eliminuje powtarzajce si wiersze wyraenie - nazwa kolumny lub wyraenie zawierajce nazwy kolumn, zamiast wyraenia moe wystpi znak '* oznaczajcy wszystkie kolumny alias - nazwa nadana wyraeniu na licie SELECT, moe mie posta identyfikatora prostego (napis złoony z liter, cyfr i znaków podkrelenia) lub złoonego (dowolny napis ograniczony podwójnymi cudzysłowami, np. zawierajcy spacje), Bazy danych (studia dzienne) 17 Zapytania proste [WHERE warunek] Operatory logiczne: =; <; >; >=; <= Operatory SQL: BETWEEN... AND... - midzy dwiema wartociami (włcznie z nimi) IN (lista) - zgodnie z jednym elementów listy LIKE - zgodnie z zadanym wzorcem (interpretacja znaków typu "wildcard": % zastpuje cig znaków, - zastpuje jeden znak) IS NULL - jest wartoci NULL Operator negacji:!=; NOT (NOT nazwa_kolumny =...; NOT BETWEEN; NOT IN; NOT LIKE; IS NOT NULL) Kryteria złoone: AND (i) OR (lub) Bazy danych (studia dzienne) 18 Hierarchia operatorów Operator konkatenacji W wyraeniu operacje s wykonywane zgodnie z priorytetem operatorów, poczwszy od operatorów o najwyszym priorytecie: operatory porównania: =; <; >; >=; <=;!=, BETWEEN...AND; IN; LIKE; IS NULL NOT AND OR (najniszy priorytet) Operator konkatenacji ( ) pozwala na łczenie kolumny z kolumn, z wyraeniem arytmetycznym lub stał wartoci w celu utworzenia wyraenia. Argumenty wystpujce po obu stromach operatora s łczone i tworz pojedyncz kolumn wynikow. Naley uywa nawiasów, jeeli chcemy wymusi odpowiedni kolejno wykonywania operacji. Bazy danych (studia dzienne) 19 Bazy danych (studia dzienne) 20
Złczenia tabel SELECT [ALL DISTINCT] wyraenie [[AS] alias],... FROM tabela_1, tabela_2,..., tabela_n WHERE warunki_łczcy_tabele minimalna liczba łczcych warunków = liczba tabel -1 Bazy danych (studia dzienne) 21