W relacyjnych bazach danych relacja wiele do wielu (M:N) oznacza, że jeden rekord z tabeli A może być powiązany z wieloma rekordami z tabeli B, a jednocześnie jeden rekord z tabeli B może być powiązany z wieloma rekordami z tabeli A.
W praktyce takiej relacji nie implementuje się przez "bezpośrednie" dodanie pojedynczego klucza obcego z A do B (albo z B do A), ponieważ klucz obcy w jednej tabeli pozwala naturalnie opisać relację jeden do wielu (1:N), a nie M:N. Aby poprawnie zapisać wiele powiązań po obu stronach, stosuje się trzecią tabelę pośrednią (nazywaną też łącznikową lub asocjacyjną). Tabela ta przechowuje wiersze opisujące konkretne skojarzenia, np. (A_id, B_id).
Dlatego poprawne jest stwierdzenie: "zdefiniuje się trzecią tabelę z kluczami obcymi do tabel A i B". Takie rozwiązanie:
- umożliwia zapis dowolnej liczby powiązań,
- wspiera spójność referencyjną (FK),
- ogranicza redundancję danych,
- pozwala dodawać atrybuty relacji (np. data przypisania, rola, ilość).
Odpowiedź "tabelę A połączy się z tabelą B poprzez zdefiniowanie kluczy obcych" jest zbyt ogólna i w typowym ujęciu sugeruje brak tabeli pośredniej; samo "połączenie" dwóch tabel kluczami obcymi nie wystarcza do M:N bez struktury, w której zapisuje się wiele par powiązań.
Stwierdzenie "wiele rekordów z tabeli A zduplikuje się w tabeli B" opisuje antywzorzec: duplikowanie danych zwiększa ryzyko niespójności (aktualizacje w wielu miejscach) i zwykle narusza zasady normalizacji.
Odpowiedź "tabela A będzie zawierała te same pola co tabela B" myli podobieństwo schematu z relacją między encjami. Relacja wynika z kluczy i powiązań logicznych, a nie z tego, czy tabele mają takie same kolumny.
W zadaniach egzaminacyjnych warto pamiętać: jeśli relacja jest M:N, niemal zawsze szukasz tabeli pośredniej z co najmniej dwoma kluczami obcymi.