Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych

Słowa kluczowe: ALTER TABLE w SQL CREATE TABLE w SQL Klucz obcy w SQL Relacja wiele-do-wielu

W celu stworzenia relacji wiele do wielu łączącej tabele A i B wystarczy, że

A. zdefiniuje się trzecią tabelę z kluczami obcymi do tabel A i B.
Dobrze. Tabela pośrednicząca z kluczami obcymi do obu tabel zapisuje każdą parę powiązanych rekordów.
B. tabela A będzie zawierała te same pola co tabela B.
Źle. Takie same pola w dwóch tabelach nie tworzą relacji; tworzą ją klucze.
C. tabelę A połączy się z tabelą B poprzez zdefiniowanie kluczy obcych.
Źle. Same klucze obce między dwiema tabelami dają relację jeden do wielu, a nie wiele do wielu.
D. wiele rekordów z tabeli A zduplikuje się w tabeli B.
Źle. Duplikowanie rekordów to redundancja danych, a nie sposób na relację.

Pytanie z egzaminu CKE, czerwiec 2015 (arkusz E.14-X-15.05).

Relację wiele do wielu buduje się przez trzecią tabelę, tak zwaną tabelę pośredniczącą (łączącą), która ma klucze obce do obu tabel. Przykład: uczniowie i przedmioty. Uczeń chodzi na wiele przedmiotów, a na przedmiot chodzi wielu uczniów. Tabela zapisy z kolumnami id_ucznia i id_przedmiotu przechowuje każdą parę jako osobny wiersz.

W ten sposób jedna relacja wiele do wielu rozkłada się na dwie relacje jeden do wielu. Klucz główny tabeli pośredniczącej to zwykle para obu kluczy obcych, co blokuje dwukrotny zapis tej samej pary. Tabela łącząca może też przechowywać dane samego powiązania, na przykład datę zapisu albo ocenę.

Wybór połączenia tabel samymi kluczami obcymi bierze się z doświadczenia z relacją jeden do wielu, gdzie to wystarcza. Pole klucza obcego w wierszu mieści jednak tylko jedną wartość, więc wiersz tabeli B może wskazać najwyżej jeden wiersz tabeli A. Bez trzeciej tabeli nie da się zapisać, że jeden uczeń chodzi na wiele przedmiotów i jednocześnie przedmiot ma wielu uczniów.

Duplikowanie rekordów tabeli A w tabeli B to redundancja: te same dane leżą w kilku miejscach, a zmiana jednego z nich zostawia pozostałe nieaktualne. Normalizacja bazy ma właśnie temu zapobiegać.

Identyczne pola w obu tabelach nie tworzą żadnej relacji, bo relację wyznaczają klucze, a nie podobna budowa tabel. Poprawnym rozwiązaniem jest trzecia tabela z kluczami obcymi do tabel A i B, w której każdy wiersz zapisuje jedno powiązanie.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.