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.