background image

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

- identyfikator kontraktu 

H

ours

P

er

W

eek 

- liczba godzin pracy w tygodniu 

EN

ame 

 

- Imię i nazwisko pracownika 

H

otel

N

- 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. 

background image

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 

 

 

 

background image

ZADANIE 2 (10) 

Wymień dwa powody, dla których przedstawiona tabela nie może być relacją w relacyjnym modelu 

danych (E.Codd) 

 

 

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. 

 

 

background image

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.