Co sprawia, że baza danych jest "relacyjna"?
Jak wspomniano w Lekcji 1, słowo relacyjna oznacza, że dane są przechowywane w oddzielnych, powiązanych ze sobą tabelach, aby uniknąć redundancji. Jest to proces tzw. normalizacji. Zamiast trzymać pełne dane klasy (np. "Klasa 3A, Wychowawca: Jan Nowak, Sala: 201") w każdym wierszu ucznia (co byłoby marnotrawstwem miejsca i koszmarem przy aktualizacji), tworzymy oddzielne tabele (np. Uczniowie i Klasy) i łączymy je za pomocą kluczy — te powiązania są sercem modelu RDBMS.
Klucz główny (Primary Key - PK): Unikalny identyfikator wiersza
Klucz główny (PK) to kolumna lub zestaw kolumn, która jednoznacznie identyfikuje każdy wiersz w tabeli — jest to "adres" rekordu. PK musi spełniać dwie fundamentalne zasady:
- UNIQUE (Unikalny): Wartość w kolumnie PK nie może się powtórzyć w całej tabeli. Nie może być dwóch uczniów o tym samym ID_Ucznia.
- NOT NULL (Nie‑nullowy): Wartość PK musi istnieć. Nie może być ucznia bez ID_Ucznia.
W tabeli Uczniowie idealnym PK jest ID_Ucznia (zazwyczaj typu INT). Kolumna Nazwisko jest złym kandydatem na PK, ponieważ może istnieć dwóch "Kowalskich".
Klucz obcy (Foreign Key - FK): Łącznik do klucza głównego w innej tabeli
Klucz obcy (FK) to "klej" modelu relacyjnego — kolumna w jednej tabeli, która odwołuje się do PRIMARY KEY w innej tabeli (czasem nawet w tej samej). Dzięki FK baza danych może wymuszać integralność referencyjną.
Przykład:
- Tabela Klasy ma kolumnę
ID_Klasy(to jej PRIMARY KEY). - Tabela Uczniowie ma kolumnę
ID_Klasy(to FOREIGN KEY), która przechowuje wartośćID_Klasyz tabeli Klasy.
Integralność referencyjna oznacza, że RDBMS będzie strzegł tej relacji: np. odrzuci próbę wstawienia do tabeli Uczniowie wiersza z ID_Klasy = 99, jeśli w tabeli Klasy nie istnieje ID_Klasy = 99, lub (w zależności od ustawień) zablokuje usunięcie klasy, do której przypisani są uczniowie.
Wizualizacja relacji między tabelami
Relacje są często przedstawiane na diagramach ERD (Entity-Relationship Diagram): tabele jako prostokąty, a linie między nimi pokazujące powiązania PK–FK. Relacja między Klasy a Uczniowie jest przykładem relacji "jeden‑do‑wielu" — jedna klasa może mieć wielu uczniów.