Bazy danych
Transkrypt
Bazy danych
Plan wykładu Bazy danych • Diagramy E/R - powtórzenie • Relacyjne bazy danych • Od diagramów E/R do relacji Wykład 3: Relacyjny model danych. SQL • SQL - podstawy Małgorzata Kr towska Katedra Oprogramowania e-mail: [email protected] Bazy danych (studia dzienne) Diagramy ER Podstawy modeli relacyjnych • Podstawowe elementy ERD – – – – • • • • Reprezentacja danych: dwuwymiarowa tabela, zwana relacj zbiory encji encje atrybuty zwi zki Przykład: Atrybuty Liczno ci Klucze Podklasy Zbiory słabych encji Bazy danych (studia dzienne) 2 Tytuł urek Kingsajz Seksmisja 3 Bazy danych (studia dzienne) Rok 2003 1987 1984 Krotki Czas 71 104 117 Rodzaj Kolor Kolor Kolor 4 Podstawy modeli relacyjnych Podstawy modeli relacyjnych • Schemat relacji - nazwa relacji oraz jej zbiór atrybutów • Dziedziny -pewien okre lony typ elementarny, powi zany z ka dym atrybutem relacji 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 okre lany schematem relacyjnym bazy danych lub schematem bazy danych. • W modelu relacyjnym ka da składowa ka dej relacji musi mie okre lony typ atomowy (elementarny) np. typ całkowity, znakowy. Warto atrybutu nie mo e by ani rekordem, ani list , ani zbiorem... • Krotki - wiersze relacji, poza wierszem nagłówka, zawieraj cym atrybuty relacji • W krotce ka dy atrybut ma swój odpowiednik w postaci składowej krotki • Przykład: Film (tytuł, rok, czas, rodzaj) – Przykład: (Gwiezdne wojny, 1977, 124, kolor) • Jedna krotka nie mo e wyst pi w relacji wi cej ni jeden raz. Bazy danych (studia dzienne) 5 Bazy danych (studia dzienne) Formalny zapis krotki Instancje Równowa ne sposoby reprezentowania relacji • Krotka - funkcja przeprowadzaj ca atrybuty ze schematu relacji do ich zbiorów warto ci - do składowych tych krotek: Schematy i krotki relacji s zbiorami, st d porz dek w jakim je przedstawimy nie ma znaczenia. Tytuł urek Kingsajz Seksmisja Rok 2003 1987 1984 Czas 71 104 117 tytuł -> urek rok -> 2003 czas -> 95 rodzaj -> Kolor Rodzaj Kolor Kolor Kolor ( urek, 2003, 95, kolor) Rodzaj Kolor Kolor Kolor Tytuł urek Kingsajz Seksmisja 6 • Instancja relacji - zbiór krotek danej relacji • Instancja bie ca - zbiór krotek, które s w relacji „teraz” Rok 2003 1987 1984 Czas 71 104 117 (Kolor, urek, 2003, 95) Bazy danych (studia dzienne) 7 Bazy danych (studia dzienne) 8 Od diagramów ERD do relacji Zwi zki wieloargumentowe • Zbiory encji przekształcamy w relacj z takim samym zbiorem atrybutów: • Zwi zki z diagramów encji przyjmuj posta relacji. Relacja danego zwi zku R ma nast puj ce atrybuty: Studia Tabela kontrakty: – – – – Uwaga: w przypadku powtarzania si nazw atrybutów nale y zmieni ich nazwy 9 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) Zło enie relacji Dopuszcza si mo liwo Aktorzy Studio aktora Studio producenta – dla ka dego zbioru encji uczestnicz cego w R umieszczamy w schemacie relacji odpowiadaj cej R klucze tych zbiorów jako atrybuty tej relacji – je li zwi zek ma własny klucz, to te doł czamy jego atrybuty do zbioru atrybutów relacji Bazy danych (studia dzienne) Kontrakty Filmy 10 Zbiory słabych encji zło enia dwóch relacji: • Relacja odpowiadaj ca 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 „wspomagaj cych” zbiorów encji) oraz pozostałe atrybuty zbioru słabego. relacji zwi zanej z danym zbiorem encji E z relacj powstał ze zwi zku R wiele do jeden z E do innego zbioru encji. • Zwi zki oznaczone podwójnym rombem nie tworz oddzielnych relacji. Bazy danych (studia dzienne) 11 Bazy danych (studia dzienne) 12 Reprezentacja zwi zków isa w modelu relacyjnym Porównanie metod Trzy podej cia: • Zapytania: – Koszt zapyta zwi zanych z wieloma relacjami jest du y, st d podej cie wykorzystuj ce NULL jest lepsze. – Podejscie zorientowane obiektowo jest lepsze dla zapyta typu „jaka bro jest wykorzystywana w kreskówkach trwaj cych dłu ej ni 150 minut” – Styl E/R jest lepszy dla zapyta typu „jakie filmy z roku 1999 trwały dłu ej ni 150 minut” • zorientowane obiektowo - ka da krotka nale y tylko do jednej klasy; tworzenie relacji dla ka dej klasy bior c pod uwag wszystkie jej atrybuty • styl E/R - relacje s tworzone dla ka dej podklasy; zawieraj atrybuty kluczowe i te atrybuty, które s powi zane z podklas • Preferuje si schematy z mo liwie mał liczb relacji (E/R - 1 relacja na 1 zbiór encji; o-o - maj c korze i n podklas otrzymujemy 2n klas) • Minimalizacja zaj to ci dysku: najlepsza metoda o-o; metoda NULL - w zale no ci od liczby elementów brakuj cych mo e by lepsza lub gorsza od metody E/R. • Wykorzystuj c NULL - nale y utworzy tylko jedn relacje; encje przyjmuj warto ci NULL dla tych atrybutów, które nie wchodz w skład danego zbioru encji Bazy danych (studia dzienne) 13 Bazy danych (studia dzienne) SQL: Strukturalny J zyk Zapyta 14 Zapytania proste (ang. Structured Query Language) SELECT [ALL | DISTINCT] wyra enie [[AS] alias], ... FROM nazwa_tabeli, ... [WHERE warunek] [ORDER BY wyra enie ASC|DESC], ...]; • Definiowanie danych (DDL:Data Definition Language) • Definiowanie zapyta (DQL: Data Query Language) • Modyfikowanie danych (DML: Data Modification Language) • Sterowanie danymi (DCL: Data Control Language) Bazy danych (studia dzienne) 15 Bazy danych (studia dzienne) 16 Zapytania proste Zapytania proste [WHERE warunek] SELECT [ALL | DISTINCT] wyra enie [[AS] alias], ... FROM nazwa_tabeli, ... Operatory logiczne: =; <; >; >=; <= Operatory SQL: ALL- pokazuje wszystkie wiersze (domy lny) DISTINCT - eliminuje powtarzaj ce si wiersze BETWEEN ... AND ... - mi dzy dwiema warto ciami (wł cznie z nimi) IN (lista) - zgodnie z jednym elementów listy LIKE - zgodnie z zadanym wzorcem (interpretacja znaków typu "wildcard": ‘%’ zast puje ci g znaków, ‘-’ zast puje jeden znak) IS NULL - jest warto ci NULL wyra enie - nazwa kolumny lub wyra enie zawieraj ce nazwy kolumn, zamiast wyra enia mo e wyst pi znak '*’ oznaczaj cy wszystkie kolumny Operator negacji: alias - nazwa nadana wyra eniu na li cie SELECT, mo e mie posta identyfikatora prostego (napis zło ony z liter, cyfr i znaków podkre lenia) lub zło onego (dowolny napis ograniczony podwójnymi cudzysłowami, np. zawieraj cy spacje), Bazy danych (studia dzienne) 17 !=; NOT (NOT nazwa_kolumny = ...; NOT BETWEEN; NOT IN; NOT LIKE; IS NOT NULL) Kryteria zło one: AND (i) OR (lub) Bazy danych (studia dzienne) 18 Operator konkatenacji Hierarchia operatorów • W wyra eniu operacje s wykonywane zgodnie z priorytetem operatorów, pocz wszy od operatorów o najwy szym priorytecie: Operator konkatenacji (||) pozwala na ł czenie kolumny z kolumn , z wyra eniem arytmetycznym lub stał warto ci w celu utworzenia wyra enia. Argumenty wyst puj ce po obu stromach operatora s ł czone i tworz pojedyncz kolumn wynikow . – operatory porównania: =; <; >; >=; <=; !=, BETWEEN...AND; IN; LIKE; IS NULL – NOT – AND – OR (najni szy priorytet) • Nale y u ywa nawiasów, je eli chcemy wymusi odpowiedni kolejno wykonywania operacji. Bazy danych (studia dzienne) 19 Bazy danych (studia dzienne) 20 Zł czenia tabel SELECT [ALL | DISTINCT] wyra enie [[AS] alias], ... FROM tabela_1, tabela_2, ..., tabela_n WHERE warunki_ł cz cy_tabele minimalna liczba ł cz cych warunków = liczba tabel -1 Bazy danych (studia dzienne) 21