PBD-NORMALIZACJA
LZ-2004
1/14
Czym jest normalizacja?
Sposobem na przedstawienie
logicznego
modelu danych w dobrej postaci.
Pozwala na :
zidentyfikowanie wzajemnych zale no ci pomi dzy danymi
rozwi zanie niejednoznaczno ci
zgrupowanie danych w optymalnych (logicznie) relacjach
stworzenie podstaw do dzielenia danych przez ró ne procesy
zdefiniowanie danych elementarnych
zbudowanie łatwego do zarz dzania i rozszerzania modelu danych
Model danych w
trzeciej postaci normalnej jest wygodnym punktem wyj cia do projektowania fizycznej
struktury danych.
PBD-NORMALIZACJA
LZ-2004
2/14
Cechy relacji
Tablica, aby była relacj , musi mie nast puj ce cechy:
adne dwa wiersze nie mog by dokładnie takie same
Uporz dkowanie wierszy nie mo e mie znaczenia
Uporz dkowanie kolumn nie mo e mie znaczenia
Ka da kolumna musi mie unikaln nazw
Podczas przeprowadzania normalizacji encje (lub tablice) nazywa si
relacjami. Znaczenie tego terminu
jest okre lone przez teoriomnogo ciow definicj relacji.
Relacja jest podzbiorem iloczynu kartezja skiego jej atrybutów. Dziedzin relacji s zbiory warto ci
poszczególnych jej atrybutów
Dane wej ciowe normalizacji nale y podda pewnej obróbce. Dla ka dego ródła danych (pliku,
dokumentu, magazynu danych na modelu procesów), nale y ustali jakie ma on atrybuty. Zazwyczaj jest
to ju wykonane w poprzednich etapach projektu.
Podczas normalizacji w ka dym taki zbiorze atrybutów powinni my wskaza -klucz.
PBD-NORMALIZACJA
LZ-2004
3/14
Kroki analizy
Ustalenie kluczy w danych nieznormalizowanych
Przekształcenie do pierwszej postaci normalnej
Przekształcenie do drugiej postaci normalnej
Przekształcenie do trzeciej postaci normalnej
Optymalizacja
Przetestowanie trzeciej postaci normalnej
Stworzenie diagramu modelu danych na podstawie relacji z trzeciej postaci
normalnej
PBD-NORMALIZACJA
LZ-2004
4/14
Ustalenie kluczy w danych nieznormalizowanych
Klucz powinien spełnia pewne wymagania:
musi mie unikalne warto ci w relacji
nie mo e si powtarza w tym samym wierszu
powinien by raczej mniejszy ni wi kszy
nale y wybra nie-tekstowy klucz, je eli to mo liwe
lepsze s krótkie, stałej długo ci zmienne ni długie lub zmiennej długo ci
Kandydaci na klucze —
jest to dowolna kolumna lub kombinacja kolumn, których zawarto mo e by u yta dla
identyfikacji wierszy tablicy.
Je li tacy kandydaci na klucze istniej , projektant wybiera
jeden
jako klucz główny:
PBD-NORMALIZACJA
LZ-2004
5/14
Klucz główny
— który musi spełnia dodatkowe warunki tzn. musi by :
3
Sztuczne klucze główne -
wymy lony klucz główny, u ywany gdy unikalny identyfikator /naturalny klucz główny/ jest bardzo
zło ony (jest kombinacj wielu kolumn ).
Stosowanie kluczy sztucznych ma nast puj ce zalety:
• klucze sztuczne prowadz do prostych rozwi za , w przypadkach gdy nie istniej proste klucze główne,
• zło ony klucz główny, który wyst puje jako klucz obcy w innej tablicy wprowadza redundancj (duplikacj )
pól, której mo emy unikn wprowadzaj c klucz sztuczny,
• operacje wyszukiwania s krótsze.
Sztuczne klucze główne wstawia si przewa nie na etapie optymalizacji TNF
PBD-NORMALIZACJA
LZ-2004
6/14
Klucz (klucze) alternatywny
—unikalny lub powtarzaj cy si
jak wskazuje nazwa, jest u ywany jako alternatywny dost p do danych.
Klucz (klucze) obcy
–
Jest kolumn lub kombinacj kolumn, których warto ci s kluczem głównym innej tablicy. Oba
klucze (tzn. klucz obcy i odpowiadaj cy mu klucz główny innej tablicy powinny mie t sam
dziedzin ).
Klucze obce w projektowaniu logicznym danych reprezentuj relacje z koncepcyjnego modelu
danych (diagramu ERD).
PBD-NORMALIZACJA
LZ-2004
7/14
Zestawienie wynagrodze pracowników:
562 Kowalski
10- Sprzeda 099
Filipowicz
25- Analiza
20.05.03 1500
988 Janowski
20- Marketing 699
Walasik
15- Ocena
15.07.03 2000
902 Kowalski
10- Sprzeda 988
Janowski
15- Ocena
10.07.03 1000
988 Janowski
20- Marketing 699
Walasik
25- Analiza
14.07.03 2500
902 Kowalski
10- Sprzeda 988
Janowski
35- Testowanie 29.07.03 1000
902 Kowalski
10- Sprzeda 988
Janowski
45- Przekazanie 20.08.03 1500
...
...
... ...
...
...
... ...
...
...
988 Janowski
20- Marketing 699
Walasik
45- Przekazanie 20.08.03 2000
PBD-NORMALIZACJA
LZ-2004
8/14
Pierwsza posta normalna (FNF)
Relacja jest w pierwszej postaci normalnej wtedy i tylko wtedy,
gdy nie ma powtarzaj cych si grup i ka dy atrybut jest w postaci atomowej.
W przykładzie na rysunku tablica PRACOWNICY zawiera powtarzaj ce grupy warto ci atrybutów (i dlatego nie jest relacj ). Rozwi zaniem jest dekompozycja (nie powoduj ca
utraty danych) na dwie tablice PRACOWNICY i PRZYPISANIA. Dekompozycja ta powinna usun powtarzaj ce si grupy. Tablica PRZYPISANIA powstała z dekompozycji;
tablica zawieraj ca powtarzaj ce si grupy powinna zawiera jednocze nie jednoznaczny wyznacznik /klucz/ dla ka dej grupy (w tym przypadku NR, NR_P).
Sprowadzenie tablicy
PRACOWNICY do pierwszej postaci normalnej
PRACOWNICY (nieznormalizowana /zerowa/ posta normalna)
NR
NAZWISKO
NR_W
NAZWAW
NR_K
KIER
NR_P
PROJEKT
DATA_Z
WYNAGR
902
Kowalski
10
Sprzeda
988
Janowski
15
Ocena
10.07.96
1000
35
Testowanie
29.07.96
1000
45
Przekaz.
20.08.96
1500
988
Janowski
20
Marketing
699
Walasik
15
Ocena
150796
2000
25
Analiza
14.07.96
2500
45
Przekaz.
20.08.96
2000
562
Kowalski
10
Sprzeda
099
Filipowicz
25
Analiza
20.05.96
1500
PBD-NORMALIZACJA
LZ-2004
9/14
PRACOWNICY
(pierwsza posta normalna)
NR
NAZWISKO
NR_W
NAZWA_W
NR_K
KIER
902
Kowalski
10
Sprzeda
988
Janowski
988
Janowski
20
Marketing
699
Walasik
562
Kowalski
10
Sprzeda
099
Filipowicz
PRZYPISANIA
(pierwsza posta normalna)
NR
NRP
PROJEKT
DATA Z
WYNAGR
902
15
Ocena
10.07.96
1000
902
35
Testowanie
29 07 96
1000
902
45
Przekaz.
200896
1500
988
15
Ocena
15.07.96
2000
988
25
Analiza
14.07.96
2500
988
45
Przekaz.
20.08.96
2000
562
25
Analiza
20.05.96
1500
Na rysunku kluczem głównym w tablicy PRZYPISANIA jest kombinacja kolumn NR i NR P.
PBD-NORMALIZACJA
LZ-2004
10/14
Druga posta normalna (SNF)
Druga posta normalna stosuje si tylko do zło onych kluczy głównych.
Relacja jest w drugiej postaci normalnej wtedy i tylko wtedy, gdy:
• jest w pierwszej postaci normalnej,
• ka dy niekluczowy atrybut jest zale ny od wszystkich cz ci klucza głównego.
PRACOWNICY - druga posta normalna (bez zmian)
Sprowadzanie tablicy PRZYPISANIA do drugiej postaci normalne
PRZYPISANIA (druga posta normalna)
PROJEKTY (druga posta normalna)
NR
NR_P
DATA_Z
WYNAGR
NR_P
PROJEKT
902
15
10.07.96
1000
15
Ocena
902
35
29.07.96
1000
25
Analiza
902
45
2008.96
1500
35
Testowanie
988
15
15.07.96
2000
45
Przekaz.
988
25
14.07.96
2500
988
45
20.08.96
2000
562
25
20.05.96
1500
Jednak e, kolumna PROJEKT jest funkcjonalnie zale na tylko od NR_P to znaczy, tylko od cz ci klucza głównego.
Rozwi zaniem jest dekompozycja, polegaj ca na:
• usuni ciu atrybutu funkcjonalnie zwi zanego (PROJEKT) do osobnej tablicy (tablica PROJEKTY),
• zabranie wraz z nim jego wyznacznika (Nr_P).
PBD-NORMALIZACJA
LZ-2004
11/14
Trzecia posta normalna (TNF)
Relacja jest w trzeciej postaci normalnej wtedy i tylko wtedy, gdy:
• jest w drugiej postaci normalnej,
• aden atrybut, nie b d cy kluczem, nie jest funkcjonalnie zwi zany adnym innym
atrybutem, nie b d cym równie kluczem.
Sprowadzenie tablicy PRACOWNICY do trzeciej postaci normalnej
PRACOWNICY
( trzecia posta normalna)
WYDZIAŁY
(trzecia posta normalna)
NR NAZWISKO NR_W NR_K
NR_W NAZWA_W
902 Kowalski
10
988
10
Sprzeda
988 Janowski
20
699
20
Marketing
562 Kowalski
10
099
W tablicy PRACOWNICY NR_W jest funkcjonalnie zale ny od NAZWA_W, który nie jest kluczem głównym. Z atrybutów tych tworzy si now
tablic WYDZIAŁY. Atrybut NAZWA_W zostaje usuni ty z tablicy PRACOWNICY, natomiast NR_W pozostaje w niej jako klucz obcy.
PRZYPISANIA i PROJEKTY
bez zmian w trzeciej postaci normalnej
PBD-NORMALIZACJA
LZ-2004
12/14
UNF
1NF
2NF
3NF
Relacja R jest w pierwszej
postaci normalnej (1NF)
wtedy i tylko wtedy, gdy
wszystkie u yte dziedziny
zawieraj tylko atomowe
warto ci
Relacja R jest w drugiej
postaci normalnej (2NF)
wtedy i tylko wtedy gdy jest
w postaci 1NF oraz ka dy
niekluczowy atrybut jest w
pełni funkcyjnie zale ny od
klucza głównego
Relacja R jest w trzeciej postaci
normalnej (3NF) wtedy i tylko
wtedy, gdy jest w 2NF oraz
ka dy niekluczowy atrybut jest
nietranzytywnie
(tylko
bezpo rednio)
zale ny od klucza
głównego
Zapewnij, aby wszystkie encje
były jednoznacznie
identyfikowane przez
kombinacj atrybutów i/lub ich
zwi zki
Usu powtarzaj ce si atrybuty lub
grupy atrybutów i rozłó atrybuty
Usu wszystkie atrybuty, które
zale tylko od cz ci
jednoznacznego identyfikatora
Usu atrybuty zale ne od atrybutów,
które nie s cz ci jednoznacznego
identyfikatora
UNF
1NF
2NF
3NF
LOT
data
LOT
data
LOT
data
LOT
data
godzina
godzina
godzina
godzina
numer lotu
numer lotu
TRASA
numer lotu
TRASA
numer lotu
nazwa linii lotniczej
nazwa linii lotniczej
nazwa linii lotniczej SAMOLOT typ samolotu
nazwa lotniska
nazwa lotniska
nazwa lotniska
pojemno samolotu
typ samolotu
typ samolotu
typ samolotu
LINIA
nazwa linii lotniczej
pojemno samolotu
pojemno samolotu
pojemno samolotu LOTNISKO nazwa lotniska
osoba1
ZAŁOGA nazwisko
ZAŁOGA nazwisko
ZALOGA
rola
rola1
imi
imi
OSOBA
nazwisko
osoba 2
rola
rola
imi
rola2
osoba 3
rola3
PBD-NORMALIZACJA
LZ-2004
13/14
UNF
1NF
2NF
3NF
LOT
data
LOT
data
LOT
data
LOT
data
godzina
godzina
godzina
godzina
numer lotu
numer lotu
numer lotu <fk>
numer lotu <fk>
nazwa linii lotniczej
nazwa linii lotniczej
TRASA
numer lotu
nazwa lotniska
nazwa lotniska
TRASA
numer lotu
typ samolotu
typ samolotu
typ samolotu
nazwa linii lotniczej
nazwa linii lotniczej
pojemno samolotu
pojemno samolotu
nazwa lotniska
nazwa lotniska
osoba1
ZAŁOGA nazwisko
typ samolotu
SAMOLOT typ samolotu
rola1
imi
pojemno samolotu
pojemno samolotu
osoba 2
rola
ZAŁOGA nazwisko
LINIA
nazwa linii lotniczej
rola2
data <fk>
imi
LOTNISKO nazwa lotniska
osoba 3
godzina <fk>
rola
ZALOGA
rola
rola3
numer lotu <fk>
data <fk>
data <fk>
godzina <fk>
godzina <fk>
nazwisko <fk>
OSOBA
nazwisko
imi
ZAŁOGA
LOT
ZAŁOGA
LOT
TRASA
LOT
PBD-NORMALIZACJA
LZ-2004
14/14
LOTNISKO
nazwa lotniska
numer lotu
CHAR(20)
CHAR(10)
<pk>
<fk>
LINIA
linia lotnicza
numer lotu
CHAR(30)
CHAR(10)
<pk>
<fk>
SAMOLOT
typ samolotu
numer lotu
liczba miejsc
CHAR(3)
CHAR(10)
INTEGER
<pk>
<fk>
TRASA
numer lotu
data
godzina
CHAR(10)
DATE
TIME
<pk>
<fk>
<fk>
LOT
data
godzina
DATE
TIME
<pk>
<pk>
ZAŁOGA
rola
data
godzina
CHAR(8)
DATE
TIME
<pk>
<fk>
<fk>
OSOBA
nazwisko
rola
imi
CHAR(10)
CHAR(8)
CHAR(10)
<pk>
<fk>
Physical Data Model
Model: linie lotnicze
Package:
Diagram: LINIE_LOTNICZE
Author: lz
Date : 04-11-14
Version : 1.001