Projektowanie bazy danych może być procesem złożonym, szczególnie, jeśli ma ona wiele tablic danych i uwzględnia dużą liczbę relacji wiele-wiele. Wiele użytecznych baz danych ma jednak małą liczbę prostych tablic danych z kilkoma lylko relacyjnymi tablicami danych opisującymi powiązania. Jeśli zrozumiałe są podstawowe zasady relacyjnej bazy danych, to rozumienie bardziej złożonych baz danych przyjdzie samo wraz z doświadczeniem.
Niezależnie od wielkości i złożoności relacyjnej bazy danych, musi ona cechować się pewnymi własnościami. Implementacja tych własności ma kluczowe znaczenie dla uniknięcia powtórzeń elementów danych i poprawnego ich powiązania. Te istotne własności mogą być sformułowane w następujący sposób:
-wszystkie elementy danych muszą być zorganizowane w tablice;
-elementy danych w pojedynczej tablicy muszą pozostawać w relacji jedno-jedno;
-w tablicy danych nie mogą występować powtórzenia tych samych wierszy;
-w tablicy danych nie mogą występować powtórzenia tych samych kolumn;
-w każdej komórce danych może być przechowywany tylko jeden element danych.
Organizowanie danych w tablice
Pierwszą i podstawową cechą relacyjnej bazy danych jest to, że elementy danych związane z unikalnym obiektem danych muszą być zorganizowane wformie tablic, jak to miało miejsce we wcześniejszych przykładach. Tablica danych jest podstawową jednostką relacyjnej bazy danych. Każda tablica może zawierać dowolną liczbę wierszy (rekordów) i kolumn (pól). Liczba i kolejność kolumn, jak również wierszy, nie jest istotna.
Brak powtarzających się wierszy
W poprawnie zrestrukturalizowanej bazie danych nie może występować dwa lub więcej wierszy z identycznymi elementami danych. Powtarzające się wiersze nie tylko stanowią marnotrawstwo przestrzeni przechowywania danych, lecz przede wszystkim zwalniają proces przetwarzania danych poprzez nieuzasadnioną rozbudowę tablicy. Co ważniejsze, dublujące się wiersze powodują błędne wyniki (niepoprawna liczb a wierszy) przy obliczeniach statystycznych w tabeli. Powiedzmy, że w tabeli istnieją elementy danych związane z tą samą osobą sprzedawcy wwięcej niż jednym wierszu tabeli Sprzedawcy. Nie uzyska się wtedy poprawnych sum łącznych po zliczeniu liczby wierszy w tabeli. Nawet łączna suma wypłat wynagrodzeń dla wszystkich pracowników w przedsiębiorstwie nie będzie poprawna, jeśli zsumujemy wszystkie kwoty wynagrodzeń w tabeli.
Wykorzystanie pojedynczych komórek danych.
Skrzyżowanie kolumny i wiersza w tabeli danych nazywane jest często komórką danych. Inną istotną własnością relacyjnej bazy danych jest to, że tylko jeden element danych może być przechowywany w jednej komórce danych. Jako przykład dodajmy kolumnę Telefon do tablicy Sprzedawcy (patrz rysunek 9). W tablicy tej komórki danych na skrzyżowaniu tej kolumny i wierszy mogą przechowywać jedynie pojedynczą wartość oznaczającą numer telefoniczny.
Przypuśćmy jednak, że jakaś osoba ma więcej niż jeden numer telefonu. Niech Adamski ma dwa numery telefoniczne: 123-4567 i 987-6543. Teraz jest problem. Ponieważ niemożna przechowywać obu tych wartości w jednej komórce Telefon, trzeba je przechowywać w dwu różnych komórkach. Jest kilka rozwiązań tego problemu. Jedno to dodanie kolejnej kolumny na drugi numer telefoniczny. Tablica taka wyglądałaby tak, jak na rysunku 10
Jedno spojrzenie na tę nową tabelę wystarcza, aby zauważyć niepożądane zjawisko w nowej kolumnie. Jest w niej wiele pustych miejsc, i będzie tak dopóty, dopóki większość sprzedawców nie będzie miała dwóch telefonów. Z tymi pustymi komórkami wiążą się dwa duże problemy. Ponieważ każda z komórek zajmuje pewną ilość miejsca na dysku, puste komórki oznaczają marnotrawstwo miejsca. Dodatkowo, aby znaleźć określoną osobę na podstawie numeru telefonicznego trzeba przeszukać dwie kolumny. W efekcie, dłużej trwa wyszukiwanie informacji.
Tabela: Sprzedawcy | |||||
Id sprzedawcy |
Nazwisko |
imię |
Tel. |
Data zatrudnieni a |
Wynag rodzenie |
SO |
Adamski |
Paweł |
123-4567 |
07/01/86 |
2,800 |
SI |
Bednarski |
Bartek |
234-3456 |
10/12/88 |
2,400 |
S2 |
Czajkowski |
Jack |
456-9023 |
05/14/87 |
2,550 |
S3 |
Dziedzic |
Edwa rd |
234-5645 |
06/04/90 |
1,500 |