Bazy danych - Politechnika Białostocka

advertisement
Plan wykáadu
• Diagramy zwizków encji
Bazy danych
–
–
–
–
–
Wykáad 2: Diagramy zwizków encji (ERD)
SQL - áczenie tabel, zapytania grupujce
elementy ERD
licznoci zwizków
podklasy
klucze
zbiory sáabych encji
• SQL - zapytanie proste, áczenie tabel
Maágorzata Kr
towska, Agnieszka Oniko
Wydziaá Informatyki
Politechnika Biaáostocka
2
Bazy danych
Proces modelowania i implementacji
bazy danych
Elementy ERD
Diagram zwizków encji - Entity-Relationship Diagram E/R (ERD)
Analiza informacji,
które b
d zawarte
w bazie danych
System zarzdzania
relacyjn
baz danych
• Zbiory encji
– Encja - rozró*nialny obiekt
– Zbiór encji (typ encji) - zbiór podobnych encji
Zbiór encji
(typ encji)
Diagram E/R
Bazy danych
Schemat bazy
danych
(Model relacyjny)
WykáDGRZFD
Kr
WRZVND0DáJRU]DWD
OniNR$JQLHV]ND
Sosnowski Zenon
.........................
3
Bazy danych
Encje
(Instancje danego
typu encji)
4
Elementy ERD
Elementy diagramu E/R
• Atrybuty - informacje opisujce encj
Imi
• Zwizki - powizania pomi
dzy dwiema lub wi
ksz liczb encji
(zbiorów encji)
Nazwisko
Jakie mog istnieü powizania pomi
dzy nast
pujcymi encjami:
– Szkoáy
– Rodzice
– Dzieci
PRACOWNIK
• Powizania bezporednie
– dziecko-szkoáa
– rodzic - dziecko
Nazwa
zwizku
Encja1
Encja2
• Powizania porednie:
– rodzic - szkoáa
Id
5
Bazy danych
6
Bazy danych
Przykáad
Przykáad
Baza danych filmów
tytuá
rok
Filmy
czas
Baza danych filmów
nazwisko
Wyst
puje
tytuá
adres
Filmy
Aktorzy
czas
rodzaj
Posiada
nazwa
adres
7
Bazy danych
nazwisko
Wyst
puje
adres
Aktorzy
rodzaj
Filmy
Potop
)XUHN
Kingsajz
Kingsajz
Seksmisja
Studia
Bazy danych
rok
Aktorzy
Daniel Olbrychski
Katarzyna Figura
Katarzyna Figura
Jerzy Stuhr
Jerzy Stuhr
8
Przykáad
Liczebnoü zwizków encji
Baza danych filmów
tytuá
rok
Filmy
czas
nazwa
Posiada
rodzaj
Filmy
Potop
)XUHN
Kingsajz
Seksmisja
Studia
adres
Studia
Studio1
Studio2
Studio1
Studio3
N:N
9
Bazy danych
1:N
1:1
10
Bazy danych
Liczebnoü zwizków encji
Zwizki wieloargumentowe
• N:N
Filmy
Wyst
puje
Filmy
Aktorzy
• 1:N
Kontrakty
Aktorzy
Studia
Filmy
Posiada
Studia
• 1:1
Studia
Bazy danych
Kieruje
Prezesi
11
Reprezentacja w postaci trzech wartoci:
(studio, aktor, film)
Bazy danych
12
Role w zwizkach
Atrybuty zwizku
Przykáad Studio, które podpisaáo kontrakt z aktorem mo*e podpisaü
kontrakt z innym studiem po to , by umo*liwiü aktorowi udziaá w filmie.
Reprezentacja zwizku: (studio1, studio2, aktor, film)
Kontrakty
Filmy
Gdzie umieciü wynagrodzenie aktora?
tytuá
Aktorzy
Filmy
Studio
aktora
Studio
producenta
rok
czas
nazwa
13
14
Przeksztaácanie w zwizki binarne
wynagrodzenie
Zwizek kontrakty: (studio1, studio2, film, aktor)
Kontrakty
Filmy
Ga*e
nazwisko
adres
Aktorzy
Studia
rodzaj
•
Studia
nazwa
Bazy danych
•
adres
Aktorzy
Studio
aktora
Studio
producenta
Kontrakty
adres
Bazy danych
Przesuni
cie atrybutu do zbioru encji
czas
Aktorzy
Studia
Bazy danych
Filmy
adres
rodzaj
Role studia:
• producent filmu
• „wáaciciel” aktora
rok
nazwisko
Kontrakty
Studia
tytuá
wynagrodzenie
15
stworzenie dodatkowego zbioru encji, którego elementy traktuje si
tak
samo jak krotki zbioru zwizków dla zwizku wieloargumentowego
(áczcy zbiór encji)
stworzenie zwizków wiele do jeden ze zbioru áczcego do
poszczególnych zbiorów encji wchodzcych w skáad pierwotnego
zwizku wieloargumentowego
Bazy danych
16
Podklasy w ERD
Podklasy i dziedziczenie w ERD
• Zakáadajc, *e C jest podklas klasy D na diagramach E/R
nale*y:
Podklasa = specjalny przypadek = mniej encji = wi
cej wáasnoci
Przykáad: Kreskówki i kryminaáy to podklasy filmów
do aktorów
czas
tytuá
rok
– wprowadziü pomi
dzy zbiorami encji C i D specjalny typ zwizku isa
(„an A is a B”) - wierzchoáek trójkta wskazuje klas
nadrz
dn
– wszystkie atrybuty i zwizki, które odnosz si
wyácznie do encji C
s doczepione do prostokta oznaczajcego C
– atrybuty i zwizki, które opisuj zarówno C jak i D s doczepione do
prostokta oznaczajcego D.
rodzaj
Filmy
• Dziedziczenie w ERD:
dubbinguje
isa
bro
isa
Kreskówki
– encje mo*na ogldaü jako záo*one ze skáadowych , które nale* do
ró*nych zbiorów encji, stanowicych cz
ci hierarchii isa
– skáadowe te s powizane w caáoü zwizkiem isa
– encja ma te wszystkie atrybuty, które nale* do którejkolwiek
skáadowej oraz wchodzi we wszystkie zwizki, w które s wáczone
jej skáadowe
Kryminaáy
17
Bazy danych
18
Bazy danych
Klucze
• Klucze - atrybuty lub zbiory atrybutów,
które jednoznacznie identyfikuj encj
wewntrz zbioru encji.
– W zbiorze encji nie mog wyst
powaü
dwie encje, które miaáyby identyczne
wartoci atrybutów tworzcych klucz.
• Atrybuty, które wchodz w skáad klucza
na diagramach ER s podkrelone.
• W hierarchii isa, tylko zbiór encji z klasy
nadrz
dnej (korze drzewa) mo*e
zawieraü klucz, który jednoznacznie
identyfikuje encje równie* w podklasach.
• Ka*dy
zbiór
encji
musi
mieü
zdefiniowany klucz.
Bazy danych
Integralnoü referencyjna
Wi
zy integralnoci referencyjnej narzucaj wymaganie, aby
wartoü, któr wskazuje encja faktycznie znajdowaáa si
w bazie.
tytuá
rok
E
Filmy
czas
R
F
Interpretacja: strzaáka o zaokrglonym grocie: zwizek jest typu wiele do jeden
ze zbioru E do F i w zbiorze F musi istnieü encja odpowiadajca encji ze zbioru E
rodzaj
E
R
F
Interpretacja: strzaáka o ostrym grocie: zwizek jest typu wiele do jeden ze
zbioru E do F i w zbiorze F mo*e istnieü co najwy*ej jedna encja
odpowiadajca encji ze zbioru E.
19
Bazy danych
20
Integralnoü referencyjna - przykáad
Filmy
Posiada
Interpretacja:
• Studio posiadajce pewien film zawsze musi
istnieü w zbiorze encji Studia
• Studio kierowanego przez pewnego prezesa
musi istnieü w zbiorze Studia
• Studio ma co najwy*ej jednego prezesa, ale w
pewnych momentach mo*e go nie mieü
• Usuni
cie studia z bazy powoduje usuni
cie
prezesa
Inne rodzaje wi
zów
• Wi
zy domenowe - wymagania, aby wartoü atrybutu nale*aáa
do okrelonego zbioru wartoci specyficznych lub znajdowaáa si
w okrelonym zakresie
• Wi
zy zasadnicze - arbitralnie narzucone warunki, których
speánienie musi byü bezwzgl
dnie przestrzegane w definiowanej
bazie danych
Studia
Kieruje
tytuá
Filmy
Prezesi
czas
21
Bazy danych
Zbiory sáabych encji
•
•
Piákarze
wiek
numer
gra
Wyst
puje
<100
adres
Aktorzy
rodzaj
Bazy danych
22
• Je*eli E jest zbiorem sáabych encji , wówczas zbiór encji F, który
dostarcza atrybutów klucza do E, musi pozostawaü z E w pewnym
zwizku R oraz
– Zwizek R musi byü binarny, typu wiele do jeden z E do F
– Atrybuty wchodzce w skáad klucza E a pochodzce z F musz byü
cz
ci klucza w F
– Je*eli zbiór F jest zbiorem sáabym, to kluczowe atrybuty z F
przekazywane do E mog pochodziü z pewnego innego zbioru encji,
z którym F jest powizany poprzez zwizek typu wiele do jednego.
nazwa
Dru*yny
• Uogólniajc:
– je*eli zbiór encji jest oznaczony podwójn ramk, to musi byü sáaby.
Jego klucz skáada si
z tych jego wáasnych atrybutów, które s
podkrelone oraz atrybutów klucza tych zbiorów encji, z którymi zbiór
sáaby jest poáczony przez zwizki typu wiele do jeden, a które
oznaczono podwójnymi kraw
dziami.
zbiór sáabych encji - prostokt o podwójnych kraw
dziach
zwizki áczce ten zbiór z innymi to zwizki wiele do jeden - romby o podwójnych
kraw
dziach
Bazy danych
nazwisko
Wymagania dla zbiorów sáabych encji
Zbiory sáabych encji - zbiory encji, dla których niektóre lub wszystkie
atrybuty klucza wybiera si
z innego zbioru encji.
Przykáad: Mamy dwa zbiory encji: Piákarze (nazwisko, wiek) oraz
Dru*yny (nazwa). Jak mo*na zdefiniowaü klucz dla zbioru encji
Piákarze?
nazwisko
rok
23
Bazy danych
24
Zasady projektowania
Unikanie redundancji
• unikanie redundancji - unikanie powtórze danych
• prostota - unikanie wprowadzania do projektu wi
cej elementów
ni* naprawd
potrzeba
• dobór wáaciwych elementów
– definiowanie zbioru encji - je*eli z elementem wi*e si
kilka
atrybutów
– definiowanie elementu jako atrybutu - z elementem wi*e si
tylko
jego nazwa
• Redundancja wyst
puje wówczas, gdy dana informacja jest
powtórzona w zbiorze danych.
• Redundancja powoduje niespójnoü bazy danych oraz zajmuje
miejsce na dysku.
Przykáad redundancji:
tytuá
• limitowanie zbiorów sáabych encji - tworzenie identyfikatorów jako
kluczy w zbiorach encji, je*eli to ma uzasadnienie.
Filmy
czas
25
Bazy danych
rok
nazwa
Posiada
rodzaj
nazwa
Studia
adres
26
Bazy danych
Baza üwiczeniowa
Záczenia tabel
SELECT [ALL | DISTINCT] wyra*enie [[AS] alias], ...
FROM tabela_1, tabela_2, ..., tabela_n
WHERE warunki_áczce_tabele
minimalna liczba áczcych warunków = liczba tabel -1
Bazy danych
27
Bazy danych
28
Operator konkatenacji
Funkcje grupowe
Operator konkatenacji (||) pozwala na áczenie kolumny z kolumn, z
wyra*eniem arytmetycznym lub staá wartoci w celu utworzenia
wyra*enia. Argumenty wyst
pujce po obu stromach operatora s
áczone i tworz pojedyncz kolumn
wynikow.
•
•
•
select 'pracownik '||ename||' pracuje na stanowisku '||job from emp;
–
–
–
–
–
–
–
–
'PRACOWNIK'||ENAME||'PRACUJENASTANOWISKU'||JOB
---------------------------------------------------pracownik SMITH pracuje na stanowisku CLERK
pracownik ALLEN pracuje na stanowisku SALESMAN
pracownik WARD pracuje na stanowisku SALESMAN
•
select 'pracownik '||ename||' pracuje na stanowisku '||job "pracownicy i
stanowiska" from emp;
pracownicy i stanowiska
---------------------------------------------------pracownik SMITH pracuje na stanowisku CLERK
pracownik ALLEN pracuje na stanowisku SALESMAN
30
Bazy danych
Zasady wykonania zapytania
grupujcego
Zapytania grupujce
• Rozwa* wszystkie kombinacje wierszy tabel
wyst
pujcych w klauzuli FROM
• Do ka*dego wiersza zastosuj warunek WHERE
• Podziel wiersze na grupy
• Do ka*dej grupy zastosuj warunek w klauzuli
HAVING
• Dla ka*dego wiersza reprezenujcego grup
oblicz
wartoci wyra*e po SELECT
SELECT lista pól
FROM tabele
WHERE warunki przed grupowaniem
GROUP BY pola grupujce
HAVING warunki po grupowaniu
Bazy danych
AVG ([DISTINCT] wyra*enie)
COUNT ([DISTINCT] wyra*enie)
COUNT(*)
MAX ([DISTINCT] wyra*enie)
MIN ([DISTINCT] wyra*enie)
STDDEV ([DISTINCT] wyra*enie)
SUM ([DISTINCT] wyra*enie)
VARIANCE ([DISTINCT] wyra*enie)
• Wszystkie funkcje grupowe, z wyjtkiem count(*) ignoruj NULL.
29
Bazy danych
Funkcje grupowe s przeznaczone do dziaáania na grupach wierszy.
Wynikiem dziaáania funkcji grupowej jest pojedyncza wartoü dla caáej
grupy, a nie jedna wartoü dla ka*dego wiersza.
Przykáady funkcji:
31
Bazy danych
32
Zapytania grupujce - ograniczenia
• Na licie wyboru polecenia SELECT u*ywajcego
grupowania wolno umieszczaü tylko te kolumny,
które s przedmiotem dziaáania klauzuli GROUP BY
chyba, *e wyst
puj one wewntrz funkcji
grupujacej.
• Ka*da kolumna lub wyra*enie wystepujce na licie
SELECT, nie obj
te funkcj grupow musi byü
przedmiotem grupowania klauzul GROUP BY.
Bazy danych
33
Download