Bazy danych

Transkrypt

Bazy danych
Plan wykładu
• Proces dobrego projektowania relacyjnego schematu bazy
danych:
Bazy danych
– szczegółowy opis problemów, które wynikaj przy tworzeniu
schematu
– przedstawienie metody dekompozycji, która polega na podziale
schematu relacji (zbioru atrybutów) na dwa mniejsze schematy
– opis „postaci normalnej Boyce’a-Codda” (BCNF) czyli taki warunek
nało ony na schemat, dzi ki któremu mo na wyeliminowa jego
niedoskonało ci
– informacja o tym, w jaki sposób zapewni spełnienie warunków
BCNF przez dekompozycj schematów relacyjnych
Wykład 5: Postaci normalne. SQL cd
Małgorzata Kr towska
Katedra Oprogramowania
e-mail: [email protected]
• SQL cd
Bazy danych (studia zaoczne)
Anomalie
Dekompozycja relacji
• Anomalie - problemy, jakie powstaj , gdy próbujemy do
pojedynczej relacji wł czy zbyt wiele danych
• Dekompozycja relacji - sposób eliminowania wymienionych
anomalii przez podział atrybutów relacji R mi dzy dwa schematy
nowych relacji.
• Relacj R o schemacie {A1, A2,..., An} dekomponujemy mi dzy
dwie relacji S i T o schematach odpowiednio {B1, B2,..., Bm} i {C1,
C2,..., Ck} według nast puj cych zasad:
– redundancja - dane niepotrzebnie powtarzaj si w kilku krotkach
– anomalie modyfikacji - sytuacje, w których warto
zmodyfikowana w jednej krotce, a w innej nie
zostaje
– {A1, A2,..., An} = {B1, B2,..., Bm} ∪ {C1, C2,..., Ck}
– Krotki relacji S powstaj przez rzutowanie wszystkich krotek relacji
R na zbiór atrybutów {B1, B2,..., Bm}, tzn. z ka dej krotki t bie cej
instancji relacji R pobieramy warto ci atrybutów {B1, B2,..., Bm} i
tworzymy w ten sposób krotk relacji S. Je eli z relacji R
otrzymamy kilka jednakowych krotek w relacji S, w S umieszczamy
tylko jedn kopi .
– W podobny sposób uzyskuje si krotki relacji T.
– anomalie usuni - usuni cie krotki mo e powodowa usuni cie
wa nej informacji z bazy danych
Bazy danych (studia zaoczne)
2
3
Bazy danych (studia zaoczne)
4
Posta normalna Boyce’a-Codda
Dekompozycja do postaci BCNF
• Posta normalna Boyce’a-Codda (BCNF) - warunek, którego
spełnienie zapewnia, e w schemacie nie wyst puj omówione
wcze niej anomalie.
• Je li proces dekompozycji b dziemy powtarza dostatecznie długo, to
ka da otrzymana relacja b dzie si składała z kolekcji podzbiorów
atrybutów, które:
– b d schematami relacji w postaci BCNF
– dane z pierwotnej relacji b d wiernie reprezentowane w relacjach
powstałych w wyniku dekompozycji => b dzie istniała mo liwo
dokładnego odtworzenia pierwotnej relacji, na podstawie relacji
utworzonych przez wielokrotne dekompozycje.
• Relacja R jest w postaci normalnej BCNF wtedy i tylko wtedy,
gdy dla ka dej nietrywialnej zale no ci A1, A2,..., An →B, zbiór
{A1, A2,..., An} jest nadkluczem R
• Strategia dekompozycji:
– Dane: relacja R z zale no ciami funkcyjnymi ZF
– Znalezienie pewnej nietrywialnej zale no ci funkcyjnej {A1, A2,..., An} →
{B1, B2,..., Bm} , która narusza warunek BCNF (tzn. {A1, A2,..., An} nie jest
nadkluczem).
– Wyliczenie dopełnienia zbioru atrybutów {A1, A2,..., An}+.
• Dopełnienie zawiera wszystkie atrybuty, gdy {A1, A2,..., An} jest
nadkluczem.
Bazy danych (studia zaoczne)
5
Dekompozycja R do postaci BCNF
R-X+
• Zało enia:
– w wyniku dekompozycji relacji R powstaje relacja S oraz jeszcze
inna relacja.
– F - zbiór zale no ci funkcyjnych prawdziwych w R
– Aby wyznaczy zbiór zale no ci funkcyjnych prawdziwych w S,
nale y
• rozwa y wszystkie podzbiory X atrybutów S i dla ka dego
wyznaczy X+. Je li atrybut B spełnia nast puj ce warunki
– B nale y do S
– B nale y do X+
– B nie nale y do X,
to zale no funkcyjna X→ B jest spełniona w relacji S
R1
X
6
Projektowanie zale no ci funkcyjnych
– Zamie relacj R na relacje o schematach:
• R1= {A1, A2,..., An}+
• R2 = (R-{A1, A2,..., An}+) ∪ {A1, A2,..., An}
R2
Bazy danych (studia zaoczne)
X+-X
R
Bazy danych (studia zaoczne)
7
Bazy danych (studia zaoczne)
8
Problem
Problem cd
• Wyst puje jedna struktura zale no ci funkcyjnych, która mo e
powodowa problem w trakcie dekompozycji.
AB →C i C → B
• Dekompozycja relacji Zamówienia do postaci BCNF
• Zale no funkcyjna: kino → miasto nie spełnia warunku BCNF
– Dopełnienie {kino}+:
• {kino}+={kino, miasto}
– Otrzymujemy relacje:
• {kino, miasto}
• {kino, tytuł}
– Przykład: Relacja Zamówienia
• A - tytuł filmu;
• B - miasto, gdzie znajduje si kino;
• C - nazwa kina, w którym wy wietlany jest film;
– Wyodr bniamy tutaj nast puj ce zale no ci funkcyjne:
• kino → miasto
• tytuł miasto → kino
– Klucze
• {tytuł, miasto}
• {kino, tytuł}
Bazy danych (studia zaoczne)
• Problem: spełnienie zale no ci funkcyjnej:
tytuł miasto → kino
9
Bazy danych (studia zaoczne)
Trzecia posta normalna
10
Operatory ANY i ALL
• Opearatory ANY i ALL mo na stosowa w podzapytaniach
zwracaj cych wi cej ni jeden wiersz. Wykorzystuje si je w
klauzulach WHERE I HAVING ł cznie z operatorami
porównywania (=; !=; <; >; <=; >=)
Mówimy, e relacja jest w trzeciej postaci normalnej (3NF) wtedy i
tylko wtedy, gdy jest spełniony nast puj cy warunek:
je li A1, A2,..., An→ B jest zale no ci nietrywaln , to albo {A1, A2,..., An} jest
nadkluczem albo B jest elementem pewnego klucza.
• Operator ANY powoduje akceptacj (spełnienie warunku) po
stwierdzeniu zgodno ci wyra enia z któr kolwiek z warto ci
zwracanych przez podzapytanie
W przykładzie:
– Klucze: {tytuł, miasto} i {kino, tytuł}
– Relacje: kino → miasto i tytuł miasto → kino
• Operator ALL słu y do porównania z wszystkimi warto ciami
zwracanymi przez podzapytanie
• Czy relacja jest w 3NF?
• zale no funkcyjna kino → miasto nie spełnia postaci normalnej
BCNF ale spełnia 3NF, poniewa miasto jest elementem klucza.
Bazy danych (studia zaoczne)
• Przed operatorami ANY i ALL mo na stosowa zaprzeczenie NOT
11
Bazy danych (studia zaoczne)
12
Podzapytania w klauzuli HAVING
Zagnie d anie zapyta
• Wybra te departamenty, których rednie zarobki przekraczaj
redni zarobek departamentu 30.
• Znale pracowników, których zarobki przekraczaj najwy sz
pensj z departamentu SALES.
•
Select deptno, avg(sal)
from emp
group by deptno
having avg(sal) >(select avg(sal) from emp where deptno=30);
• Znale stanowisko pracy, na którym s najwy sze rednie
zarobki.
SQL> select ename, job, hiredate, sal from emp
where sal>
(select max(sal)
from emp
where deptno= (select deptno
from dept
where dname='
SALES'
));
ENAME
JOB
HIREDATE
---------- --------- -------- ---------JONES
MANAGER 81/04/02
SCOTT
ANALYST 87/04/19
KING
PRESIDENT 81/11/17
FORD
ANALYST 81/12/03
Select job, avg(sal)
from emp
group by job
having avg(sal) =(select max(avg(sal)) from emp group by job);
SAL
2975
3000
5000
3000
Nie istnieje ograniczenie poziomów zagnie d enia.
Bazy danych (studia zaoczne)
13
Bazy danych (studia zaoczne)
14
Podzapytania - wskazówki
Podzapytania po FROM
• Wewn trzne zapytanie musi by uj te w nawiasy i musi
wyst powa po prawej stronie warunku
• W podzapytaniu nie wolno stosowa klauzuli ORDER BY.
Obowi zuje zasada jednej klauzuli ORDER BY dla całego
polecenia SELECT. Je li jest potrzebna umieszczamy j jako
ostatni
• Kolumny wystepuj ce na li cie wyboru wewn trznego zapytania
musz wyst powa w klejno ci zgodnej z kolejno ci kolumn
uj tych w nawiasy warunku zapytania głównego. Musi równie
wyst powa zgodno co do liczby i typu kolumn wybieranych w
bloku wewn trznym i kolumn bloku zewn trznego
porównywanych z nimi.
• Podzapytania mog wyst powa po WHERE , HAVING i FROM:
Bazy danych (studia zaoczne)
FROM tabela1, (podzapytanie1) alias1, (podzapytanie2) alias2...
• Policzy jaki procent pracowników pracuje w poszczególnych
działach firmy.Poda nazw działu i procent pracowników.
– Liczba pracowników w poszczególnych dział ch
•
SQL> select dname, count(empno) x from emp, dept where emp.deptno (+) =
dept.deptno group by dname, dept.deptno;
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
15
Bazy danych (studia zaoczne)
X
---------3
5
6
0
16
Operator EXISTS
• W przypadku zapyta skorelowanych czasami nie interesuje nas
wynik zapytania, ale jedynie czy wiersz o zadanych przez nas
warunkach istnieje. Wówczas wykorzystujemy operator EXISTS.
– EXISTS (podzapytanie) - zwraca „true” je eli podzapytanie zwróci
przynajmniej jeden wiersz
– NOT EXISTS(podzapytanie) zwraca „true” je eli podzapytanie nie
zwróci adnego wiersza
Bazy danych (studia zaoczne)
17

Podobne dokumenty