Przejdź do głównej treści
  1. Strona główna
  2. Słownik
  3. INF.03
  4. Relacja wiele do wielu

Relacja wiele do wielu

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Relacja wiele do wielu oznaczana często jako n..n występuje wtedy, gdy jeden rekord z pierwszej tabeli może być powiązany z wieloma rekordami z drugiej tabeli i odwrotnie.

Przykład: jeden uczeń może uczestniczyć w wielu kursach, a jeden kurs może mieć wielu uczniów.

Dlaczego potrzebna jest tabela pośrednicząca?

Relacji wiele do wielu nie zapisuje się bezpośrednio przez pojedynczy klucz obcy w jednej z tabel. Zamiast tego tworzy się tabelę pośredniczącą nazywaną też tabelą łącznikową.

Tabela pośrednicząca przechowuje zwykle:
- klucz główny pierwszej tabeli jako klucz obcy,
- klucz główny drugiej tabeli jako klucz obcy,
- opcjonalnie dodatkowe informacje o powiązaniu.

Przykład

CREATE TABLE uczniowie (
    id_ucznia INT PRIMARY KEY,
    imie VARCHAR(50)
);

CREATE TABLE kursy (
    id_kursu INT PRIMARY KEY,
    nazwa VARCHAR(100)
);

CREATE TABLE uczniowie_kursy (
    id_ucznia INT,
    id_kursu INT,
    PRIMARY KEY (id_ucznia, id_kursu),
    FOREIGN KEY (id_ucznia) REFERENCES uczniowie(id_ucznia),
    FOREIGN KEY (id_kursu) REFERENCES kursy(id_kursu)
);

Tabela uczniowie_kursy łączy rekordy z tabel uczniowie i kursy.

Zapamiętaj na egzamin

Jeżeli pytanie dotyczy relacji wymagającej utworzenia tabeli pośredniczącej łączącej klucze główne obu tabel, poprawna odpowiedź to relacja wiele do wielu, czyli n..n.