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