ZADANIE 1 (80)
Brytyjska agencja pracy InstantCover dostarcza czasowych pracowników do hoteli w Szkocji.
W arkuszu danych firmy istnieje poniższa tabela:
NIN
- Numer Ubezpieczenia pracownika (National Insurance Number)
C
ontract
N
o
- identyfikator kontraktu
H
ours
P
er
W
eek
- liczba godzin pracy w tygodniu
EN
ame
- Imię i nazwisko pracownika
H
otel
N
o
- Identyfikator hotelu
H
otel
L
ocation - lokalizacja hotelu
Zadanie A (20):
Stwórz relację w 0NF, następnie w1NF.
Przedstaw przykłady możliwych efektów ubocznych (anomalii), które mogą wystąpić podczas
przetwarzania danych w tej tabeli.
Zadanie B(60):
Przedstaw wszystkie zależności funkcjonalne i przeprowadź proces normalizacji (do BCNF).
Narysuj Logiczny Model Informacji ERD.
ROZWIĄZANIE:
1.
0NF: ZATRUDNIENIE = NIN + CN + HPW + EN + HN + HL.
2.
Lista FD:
FD1 = {NIN → EN}
FD2 = {HN → HL}
FD3 = {CN → (HN, HL)}
FD4 = {(NIN, CN) → (HPW, EN, HN, HL)}
3.
1NF:
Brak dodatkowych danych o metodach przetwarzania wpisów w tabelce powoduje, że nie
dokonuję dekompozycji żadnego atrybutu i nominuję FD4 do roli PK, bowiem obejmuje
wszystkie atrybuty relacji:
R
ZATRUDNIENIE
= {(NIN, CN) → (HPW, EN, HN, HL)}
EFEKTY UBOCZNE:
a)
WPROWADZANIA: nie można wprowadzić osobno informacji o nowym pracowniku,
hotelu lub kontrakcie.
b)
MODYFIKACJI: zmiana atomowej informacji, np.: nazwiska jednego pracownika, będzie
wymagała modyfikowania wielu wierszy relacji.
c)
USUWANIA: usunięcie wiersza zatrudnienia pracownika, który był zatrudniony tylko w
jednym kontrakcie, spowoduje utratę jego danych z bazy.
4.
NORMALIZACJA:
4.1. FD1 łamie 2NF w relacji ZATRUDNIENIE – dokonuję dekompozycji relacji
ZATRUDNIENIE:
R
ZATRUDNIENIE
= {(NIN, CN) → (HPW, HN, HL)}
R
PRACOWNICY
= {NIN → EN}
5.
4.2. FD3 łamie 2NF w relacji ZATRUDNIENIE – dokonuję dekompozycji relacji
ZATRUDNIENIE:
R
ZATRUDNIENIE
= {(NIN, CN) → HPW}
R
PRACOWNICY
= {NIN → EN}
R
KONTRAKTY
= {CN → (HN,HL)}
6.
4.2. FD2 łamie 3NF w relacji KONTRAKTY – dokonuję dekompozycji relacji
KONTRAKTY:
R
ZATRUDNIENIE
= {(NIN, CN) → HPW}
R
PRACOWNICY
= {NIN → EN}
R
KONTRAKTY
= {CN → HN}
R
HOTELE
= {HN→ HL}
Model ERD
ZADANIE 2 (10)
Wymień dwa powody, dla których przedstawiona tabela nie może być relacją w relacyjnym modelu
danych (E.Codd)
A
B
A
1
2
3
4
5
6
7
8
9
9
?
1
2
3
ROZWIĄZANIE:
Powód 1
W prawidłowej relacji, każdy atrybut musi posiadać unikalną nazwę, tym czasem dwie
kolumny tabeli posiadają taki sam nagłówek (nazwa ‘A’).
Powód 2
Prawidłowa Relacja musi posiadać klucz główny. Na przedstawionej tabeli nie można
wypromować klucza głównego, bo wiersze: pierwszy i ostatni mają takie same
wartości.
ZADANIE 3 (10)
Załóżmy, że istnieje relacja R, która posiada cztery atrybuty A,B,C,D i klucz główny złożony z pary
atrybutów A i B, co można zapisać następująco:
1
,, ,
. Zdefiniuj taką listę
dodatkowych zależności funkcjonalnych FD
n
relacji R(A,B,C,D), żeby relacja była w 1NF i 2NF, ale nie
spełnia 3NF.
ROZWIĄZANIE:
•
Przedstawiona relacja R spełnia 1NF, bowiem zawiera FD1, która łączy wszystkie atrybuty
relacji R i definiuje klucz główny.
•
Przedstawiona relacja R spełnia 2NF, bowiem nie posiada innych FD, w których atrybutem
dominującym byłaby część klucza głównego.
•
Złamanie 3NF będzie zachodziło, jeżeli w relacji R będzie istniała FD, zdominowana przez
atrybut, niebędący kluczem głównym relacji R.
•
Wystarczy zdefiniować następującą zależność:
2 → , która doprowadzi do
złamania 3NF.