ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
  • Firma

Bazy danych – Model relacyjny

Napisane przez Igor Brzeżek on 2 listopada 2025
Napisane w: Bazy danych.

Contents
  1. 1. geneza i rewolucyjna idea modeli relacyjnego
  2. 2. podstawowe komponenty modelu relacyjnego
  3. Właściwości relacji (tabeli)
  4. 3. klucze – fundament identyfikacji i relacji
  5. 4. więzy integralności – gwarancja spójności danych
  6. Integralność encji (entity integrity)
  7. Integralność referencyjna (referential integrity)
  8. Integralność domeny (domain integrity)
  9. 5. przykład praktyczny w SQL
  10. Podsumowanie

1. geneza i rewolucyjna idea modeli relacyjnego

Przełom w dziedzinie baz danych nastąpił w 1970 roku dzięki pracy Edgara F. Codda, który zaproponował model relacyjny. Było to radykalne odejście od modeli nawigacyjnych (hierarchicznego i sieciowego), które wymagały od programistów pisania złożonego kodu opisującego, jak dotrzeć do danych. Codd oparł swój model na solidnych fundamentach matematycznych – teorii zbiorów i logice predykatów – co pozwoliło na stworzenie podejścia deklaratywnego.

Głównym celem była niezależność danych: oddzielenie logicznej struktury danych od ich fizycznej reprezentacji. W modelu relacyjnym użytkownik określa co chce uzyskać, a system zarządzania bazą danych (RDBMS) sam znajduje optymalny sposób, aby te dane pobrać. Dane i relacje między nimi są reprezentowane w jednolity, prosty sposób: jako zbiór tabel.

2. podstawowe komponenty modelu relacyjnego

Model relacyjny posługuje się precyzyjną terminologią, która ma swoje odpowiedniki w praktycznej implementacji.

Pojęcie Formalne (Teoria) Pojęcie Nieformalne (Praktyka) Opis
Relacja Tabela Dwuwymiarowa struktura przechowująca dane o określonej encji.
Krotka Wiersz lub Rekord Pojedynczy zapis w tabeli, reprezentujący jedną instancję encji.
Atrybut Kolumna lub Pole Nazwana właściwość encji, która opisuje jej cechę.
Domena Typ Danych + Ograniczenia Zbiór wszystkich dopuszczalnych wartości dla danego atrybutu.

Właściwości relacji (tabeli)

  • Nazwa relacji jest unikalna w obrębie bazy danych.
  • Każdy atrybut ma unikalną nazwę w obrębie relacji.
  • Wszystkie wartości w danej kolumnie pochodzą z tej samej domeny.
  • Każda krotka jest unikalna; nie mogą istnieć dwa identyczne wiersze.
  • Kolejność krotek (wierszy) i atrybutów (kolumn) nie ma znaczenia z punktu widzenia teorii.
  • Wartości atrybutów są atomowe – niepodzielne (co jest podstawą Pierwszej Postaci Normalnej).

3. klucze – fundament identyfikacji i relacji

Klucze to atrybuty (lub ich zestawy) o specjalnym znaczeniu, które służą do unikalnej identyfikacji wierszy i tworzenia powiązań między tabelami.

  • Superklucz (Superkey): Dowolny zbiór atrybutów, którego wartości jednoznacznie identyfikują każdą krotkę w relacji. Np. w tabeli studentów superkluczem może być {PESEL}, ale także {PESEL, Imię}.
  • Klucz kandydujący (Candidate Key): To minimalny superklucz, czyli taki, z którego nie można usunąć żadnego atrybutu bez utraty właściwości unikalności. W tabeli studentów zarówno {PESEL}, jak i {NumerAlbumu} mogą być kluczami kandydującymi.
  • Klucz główny (Primary Key): Jeden z kluczy kandydujących, wybrany przez projektanta bazy jako główny identyfikator krotek. Musi spełniać dwa warunki: unikalność i brak wartości NULL.
  • Klucz obcy (Foreign Key): Atrybut (lub zbiór atrybutów) w jednej tabeli, który odwołuje się do klucza głównego w innej tabeli. Jest to mechanizm, za pomocą którego model relacyjny tworzy powiązania między danymi.
  • Klucz alternatywny (Alternate Key): Każdy klucz kandydujący, który nie został wybrany jako klucz główny.

4. więzy integralności – gwarancja spójności danych

Model relacyjny definiuje zestaw reguł, zwanych więzami integralności, które zapewniają poprawność i spójność danych w bazie.

Integralność encji (entity integrity)

Reguła: Żaden atrybut wchodzący w skład klucza głównego nie może przyjmować wartości NULL.
Cel: Gwarantuje, że każdy wiersz w tabeli ma unikalny identyfikator i jest jednoznacznie rozróżnialny.

Integralność referencyjna (referential integrity)

Reguła: Jeśli w tabeli A istnieje klucz obcy, to jego wartość musi być albo równa wartości istniejącego klucza głównego w tabeli B, albo musi wynosić NULL (jeśli jest to dozwolone).
Cel: Zapobiega istnieniu „osieroconych” rekordów, czyli np. rekordu zamówienia, który odwołuje się do nieistniejącego klienta.

Integralność domeny (domain integrity)

Reguła: Wartość każdego atrybutu musi być zgodna z jego predefiniowaną domeną (typem danych, formatem, zakresem).
Cel: Zapewnia, że dane są poprawne i sensowne. Realizowane jest to przez:

  • Typy danych: np. INTEGER, DATE, VARCHAR(100).
  • Ograniczenie NOT NULL: Wartość w kolumnie nie może być pusta.
  • Ograniczenie CHECK: Wartość musi spełniać określony warunek, np. CHECK (Cena > 0).
  • Ograniczenie DEFAULT: Przypisuje domyślną wartość, jeśli żadna nie zostanie podana.

5. przykład praktyczny w SQL

Zobaczmy, jak teoria przekłada się na praktykę. Tworzymy dwie tabele: Dzialy i Pracownicy, powiązane relacją jeden-do-wielu.


-- Tabela Dzialy (strona "1" w relacji 1:N)
CREATE TABLE Dzialy (
    ID_Dzialu CHAR(3) PRIMARY KEY,  -- Klucz główny, wymusza integralność encji
    Nazwa_Dzialu VARCHAR(50) NOT NULL UNIQUE,
    Lokalizacja VARCHAR(50)
);

-- Tabela Pracownicy (strona "N" w relacji 1:N)
CREATE TABLE Pracownicy (
    ID_Pracownika INT PRIMARY KEY, -- Klucz główny
    Nazwisko VARCHAR(100) NOT NULL,
    Stanowisko VARCHAR(50),
    Pensja DECIMAL(10, 2) CHECK (Pensja >= 3000), -- Integralność domeny
    ID_Dzialu_FK CHAR(3), -- Kolumna dla klucza obcego

    -- Definicja więzu integralności referencyjnej
    CONSTRAINT fk_pracownik_dzial
        FOREIGN KEY (ID_Dzialu_FK) 
        REFERENCES Dzialy(ID_Dzialu)
        ON DELETE SET NULL  -- Jeśli dział zostanie usunięty, pracownikom ustaw NULL
        ON UPDATE CASCADE   -- Jeśli ID działu się zmieni, zaktualizuj je u pracowników
);
            

W powyższym przykładzie:

  • ID_Dzialu i ID_Pracownika to klucze główne.
  • ID_Dzialu_FK w tabeli Pracownicy to klucz obcy, który tworzy relację z tabelą Dzialy.
  • DBMS nie pozwoli na dodanie pracownika z ID_Dzialu_FK, które nie istnieje w tabeli Dzialy.
  • Ograniczenie CHECK pilnuje, aby pensja nie była niższa niż minimalna.

Podsumowanie

Model relacyjny zrewolucjonizował świat baz danych, wprowadzając matematyczną precyzję, prostotę i niezależność danych. Jego podstawowe koncepcje – relacje, atrybuty, krotki oraz, co najważniejsze, klucze i więzy integralności – stanowią do dziś fundament większości systemów informatycznych. Zrozumienie tych zasad jest absolutnie kluczowe do poprawnego projektowania, implementowania i wykorzystywania relacyjnych baz danych.

Nawigacja

← Bazy danych – Elementy modelowania
Małe wprowadzenie do baz danych →
  • Szukaj

  • Kategorie

    • IT ogólnie (110)
      • Bezpieczeństwo (19)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Sieci (25)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (3)
        • Symulator sieci GNS3 (2)
      • Software (53)
        • Bazy danych (12)
        • Programowanie (3)
        • Systemy operacyjne (15)
          • Linux Debian (14)
        • Windows (7)
      • WiFi (2)
      • Wirtualizacja (26)
    • Różne (1)
  • Ostatnie wpisy

    • Małe wprowadzenie do baz danych
    • Bazy danych – Model relacyjny
    • Bazy danych – Elementy modelowania
    • Bazy danych – Ewolucja systemów zarządzania danymi
    • Bazy danych – Wstęp do normalizacji
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y