Relacja wiele-do-wielu

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

Co to jest relacja wiele-do-wielu?

Relacja wiele-do-wielu zachodzi wtedy, gdy wielu rekordom z jednej tabeli może odpowiadać wiele rekordów z drugiej tabeli.

Inaczej: jeden wiersz z tabeli A może być powiązany z wieloma wierszami z tabeli B, a jednocześnie jeden wiersz z tabeli B może być powiązany z wieloma wierszami z tabeli A.

Przykład

Typowy przykład to relacja między tabelami uczniowie i kursy:

  • jeden uczeń może uczestniczyć w wielu kursach,
  • jeden kurs może mieć wielu uczniów.

To oznacza relację wiele-do-wielu.

Jak zapisuje się ją w bazie danych?

W relacyjnych bazach danych relacji wiele-do-wielu zwykle nie zapisuje się bezpośrednio między dwiema tabelami. Tworzy się trzecią tabelę pośredniczącą, np.:

uczniowie(id_ucznia, imie)
kursy(id_kursu, nazwa)
uczniowie_kursy(id_ucznia, id_kursu)

Tabela uczniowie_kursy przechowuje pary identyfikatorów i łączy uczniów z kursami. Zawiera zwykle dwa klucze obce: jeden do tabeli uczniowie, drugi do tabeli kursy.

Jak odróżnić od innych relacji?

  • jeden-do-jednego: jednemu rekordowi z A odpowiada dokładnie jeden rekord z B,
  • jeden-do-wielu: jednemu rekordowi z A odpowiada wiele rekordów z B,
  • wiele-do-jednego: wielu rekordom z A odpowiada jeden rekord z B,
  • wiele-do-wielu: wielu rekordom z A odpowiada wiele rekordów z B.

Najważniejsze na egzaminie

Jeśli w pytaniu pojawia się opis: „wielu wierszom z tabeli A odpowiada wiele wierszy z tabeli B”, chodzi o relację wiele-do-wielu.