Baza danych - zbiór wzajemnie powiązanych danych pamiętancyh bez zbędnej redundacji (nadmiarowości) służący jednemu lub wielu zastosowaniom. Dane są pamiętane w sposób niezależny od programów, które z nich korzystają.
Relacyjne bazy danych - przechowują dane w postaci tablic, zwanych relacjami, między którymi zachodzą określone powiązania.
Faktury:
Numer |
1/96 |
1/96 |
|
Faktura ID |
1 |
1 |
|
Data |
01.01.96 |
01.01.96 |
|
Nazwa |
Biuro |
Biuro |
|
Adres |
80-800 Gdańsk .. |
80-800 Gdańsk .. |
|
NIP |
101-101-22-11 |
101-101-22-11 |
|
Kod towaru |
101 |
102 |
|
SWW |
277 |
277 |
|
Nazwa towaru |
Książka |
Czasopismo |
|
Jednostki miary |
szt |
szt |
|
Cena jednostk. |
100 |
10 |
|
Ilość |
1 |
1 |
|
% VAT |
0 |
0 |
|
Wartość netto |
100 |
10 |
|
Wartość brutto |
100 |
10 |
|
Tabela jest macierzą elementów danych zorganizowaną w wiersze i kolumny. Każda tablica przechowuje dane obiektów tej samej klasy, odzwierciedla klasę obiektów.
Każda kolumna tablicy jest niezależna od pozostałych tej samej tablicy, ich kolejność nie jest istotna. Kolumny muszą być niepowtarzalne, w każdej kolumnie wiersze zawierają niepowtarzalne wartości. Tu: kod faktury i numer będą unikalne.
Kolumna: obiekt, wystąpienie klasy, rekord.
Wiersze muszą być oddzielone (np. bez łączenia: numer, nazwa, adres).
Wartości wierszy muszą być niepodzielne (bez przesady, np. daty nie dzielić), podzielić adres.
(przerys. z kartki)
Dla każdego wystąpienia A występuje jedno i tylko jedno wystąpienie B (np. samochód i dowód rejestracyjny).
Dla każdego wystąpienia A istnieje zero lub jedno wystąpienie B (np. faktura i płatność - może już być lub wpłynąć później).
Dla każdego wystąpienia A występuje jedno lub wiele wystąpień B (np. klient i faktura).
Dla każdego wystąpienia A występuje zero, jedno lub wiele wystąpień B (np. klienci potencjalni z bazy marketingowej i faktury).
Proces normalizacji umożliwia stworzenie relacyjnego modelu danych, który jest efektywny i nie ma zbędnej nadmiarowości. Powyższy model jest nieefektywny, trzeba podwójnie wpisywać te same rzeczy. Proces normalizacji polega na przechodzeniu przez tzw. formy normalne (jest ich pięć). Omówimy trzy z nich:
Model jest w pierwszej formie normalnej, jeżeli wszystkie dziedziny o elementach złożonych przekształcono do postaci dwuwymiarowych tabel z niepodzielnymi wartościami wierszy.
Numer |
zależy od ID |
Pozycja faktury |
|
Faktura ID |
|
Faktura ID |
|
Data |
zależy od ID |
Kod towaru |
|
Nazwa klienta |
zależy od ID |
SWW |
zależy od kodu |
Kod pocztowy |
zależy od nazwy |
Nazwa Towaru |
- // - |
Miejscowość |
- // - |
Jednostka miary |
- // - |
Ulica |
- // - |
Cena jednostk. |
zal. od kodu i ID |
|
|
Ilość |
- // - |
|
|
% VAT |
zależy od kodu |
|
|
Wartość brutto |
zal. od kodu i ID |
|
|
Wartość netto |
- // - |
Klucze głwne tablicy to wiersz lub grupa wierszy, których wartości są różne w każdej kolumnie, co czyni każdą kolumnę niepowtarzalną.
Klucz obcy to wiersz lub grupa wierszy, które zawierają wartości odpowiadające kluczowi głównemu w innej tablicy.
Model jest w drugiej formie normalnej jeżeli jest w pierwszej formie normalnej i jeżeli każdy atrybut relacji jest w pełni funkcjonalnie zależny od klucza unikalnego. Pozycje niezależne od unikalnego klucza wydzielamy do kolejnej tablicy.
Faktura |
Pozycja faktury |
Towary |
Faktura ID |
Faktura ID |
Kod towaru |
Numer |
Kod towaru |
SWW |
Data |
Cena jednostkowa |
Nazwa towaru |
Kod klienta |
Ilość |
Jednostka miary |
Nazwa klienta |
Wartość brutto |
Cena jednostkowa |
Kod pocztowy |
Wartość netto |
% VAT |
Miejscowość |
|
|
Ulica |
|
|
Model jest w trzeciej formie normalnej jeśli jest w drugiej formie normalnej i każdy atrybut relacji nie jest przechodnio zależny od żadnego potencjalnego klucza relacji.
Tu: nazwa klienta jest zależna od kodu klienta, nie od Faktura ID. Wydzielamy więc obszar danych o kliencie tworząc odrębną tablicę.
Faktura |
Pozycja faktury |
Towary |
Klienci |
Faktura ID |
Faktura ID |
Kod towaru |
Kod klienta |
Numer |
Kod towaru |
SWW |
Nazwa klienta |
Data |
Cena jednostkowa |
Nazwa towaru |
Kod pocztowy |
Kod klienta |
Ilość |
Jednostka miary |
Miejscowość |
|
Wartość brutto |
Cena jednostkowa |
Ulica |
|
Wartość netto |
% VAT |
|
Powiązania (na kartce).