Sobes.tech
Junior

Jak osiąga się relację w relacyjnej bazie danych?

sobes.tech AI

Odpowiedź od AI

Relacje w relacyjnych systemach zarządzania bazami danych (RDBMS) osiąga się za pomocą kluczy obcych (Foreign Keys).

Klucz obcy to kolumna lub zestaw kolumn w jednej tabeli, które odwołują się do klucza głównego w innej tabeli. W ten sposób ustanawia się związek między rekordami w dwóch tabelach.

Przykłady typów relacji:

  • Jeden do wielu (One-to-Many): Jeden rekord w pierwszej tabeli jest powiązany z wieloma rekordami w drugiej tabeli. Na przykład, jeden dział może mieć wielu pracowników. W tabeli Employees będzie klucz obcy odwołujący się do klucza głównego w tabeli Departments.
  • Wiele do wielu (Many-to-Many): Wiele rekordów w pierwszej tabeli jest powiązanych z wieloma rekordami w drugiej tabeli. Na przykład, jeden student może uczęszczać na wiele kursów, a jeden kurs może być uczęszczany przez wielu studentów. Realizuje się to za pomocą tabeli pośredniczącej (tabeli relacji), zawierającej klucze obce odwołujące się do kluczy głównych obu tabel.
  • Jeden do jednego (One-to-One): Jeden rekord w pierwszej tabeli jest powiązany tylko z jednym rekordem w drugiej tabeli. Ten typ relacji jest mniej powszechny i często używany do pionowego podziału tabeli lub przechowywania danych opcjonalnych. Implementuje się to za pomocą klucza obcego w drugiej tabeli, odwołującego się do klucza głównego w pierwszej, często z ograniczeniem unikalności na klucz obcy.

Przykład tworzenia tabeli z kluczem obcym w SQL:

-- Tworzymy tabelę Departments
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Klucz główny
    department_name VARCHAR(100)
);

-- Tworzymy tabelę Employees z kluczem obcym
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Kolumna dla klucza obcego
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Definicja klucza obcego
);

Klucze obce zapewniają integralność referencyjną danych, zapobiegając tworzeniu "wiszących" odwołań (gdy klucz obcy odwołuje się do nieistniejącego rekordu w powiązanej tabeli).