Procesy normalizacji muszą mieć jedną istotną cechę, a mianowicie muszą być bezstratne. Polega to na tym, że tabele powinny być redukowane w taki sposób, aby nic następowała utrata informacji. Dobrym sprawdzianem jakości procesu normalizacji jest próba powrotu, czyli denormalizacja, która w efekcie powinna doprowadzić do tabeli wyjściowej z wszystkimi danymi. Przy niewłaściwym podejściu do projektu może się okazać, żc w trakcie redukcji zagubiono istotne więzy kojarzące dane i me można ich odtworzyć.
Jak pokazano na przykładzie (rys. 3.6), proces normalizacji może przebiegać bardzo niepomyślnie, jeżeli nie dopilnuje się pewnych zasad. Redukcja przebiegła tu tak, że me utrzymano związku między tabelami ZAKUPY i TOWARY. W tabeli ZAKUPY brakuje bowiem kolumn dotyczących informacji o towarze, podawana jest tylko ilość. Z tego powodu nic możemy, opierając się na danych z etapu 2 normalizacji, powrócić do tabeli z etapu I. Zagubieniu ulegają dane o kodzie towaru, klasie, dostawie i cenie. Można jedynie odzyskać informację o ilości, co jest zupełnie bezsensowne, gdyż nie wiadomo jakiego towaru to dotyczy.
ETAP 1 (POSTAĆ WYJŚCIOWA)
pis d_Mien|fl |
Miasto |
IÅ‚osc zukupionn |
Klasa towaru |
Onal— 1 ęggą mart | ||
— KI |
Al |
T5 |
100 |
A |
nnęrta I | |
A2 |
Tl |
100 |
B |
kurier |
•0 | |
K3 |
A3 |
Tl |
100 |
B |
kurier |
» |
K4 |
Ad |
TS |
100 |
A |
DOCZU_ |
_Sfi_ |
XI |
Al |
Tl . |
100 |
B |
kurier 1 BB_ | |
--KI |
Al |
_U_ |
220 |
c |
odb wtasn-/ 1 50 |
ETAP 2 (REDUKCJA STRATNA)
KLIENCI
Kod klient* |
Miasto |
K1 |
A1 |
K2 . |
A2 |
K3 |
A3 |
K4 |
Ad |
TOWARY
KÅ‚osa Å‚owom | |||
Tl |
B |
kurier | |
T3 |
c |
M_ | |
_15_ |
_4_ |
_BSSU- |
... .aa_ |
ZAKUPY
Kod klient* | |
KI |
100 |
K2 |
100 |
K3 |
100 |
K4 |
100 |
_KI_ |
_100_ |
— KI 1 120_ |
ETAP J (DENORMALIZACJA)
“ii Mania |
... Ki |
llMC Mkunlnna | ||||
— — XI |
Al |
1P0 | ||||
---Wf. |
A2 |
100 |
- - | |||
-JUL |
AJ |
100 | ||||
~ JM______ |
M |
lOp | ||||
â– - Jtl______ |
Al |
100 |
— | |||
— — Ki |
._.....Al . |
__jao— |
[ - 1 |
ftyaui*)! ] A Moiiki f«dulu.)i stratnej