Baza danych księgarni zawiera tabelę książki z polami: id, idAutor, tytul, ileSprzedanych oraz tabelę autorzy z polami: id, imie, nazwisko. Aby stworzyć raport sprzedanych książek z tytułami i nazwiskami autorów, należy
Pytanie z egzaminu CKE, październik 2016 (arkusz E.14-X-16.08).
Poprawna jest odpowiedź o relacji 1..n i kwerendzie łączącej tabele. Jeden autor może napisać wiele książek, a każda książka ma jednego autora, więc między tabelami jest relacja jeden do wielu. Kolumna idAutor w tabeli książek jest kluczem obcym wskazującym klucz główny id w tabeli autorów.
Raport z tytułami i nazwiskami powstaje z jednego zapytania łączącego obie tabele, np. SELECT tytul, nazwisko, ileSprzedanych FROM ksiazki JOIN autorzy ON ksiazki.idAutor = autorzy.id;. Do zapamiętania: kolumna z prefiksem „id” plus nazwą innej tabeli to zwykle klucz obcy po stronie „wiele”, a złączenie robi się zawsze po parze klucz obcy - klucz główny.
Wybór dwóch osobnych kwerend bierze się z myślenia o tabelach jak o niezależnych listach. Dwie listy - tytuły i nazwiska - nie mówią jednak, który autor napisał którą książkę, więc raport nie powiązałby danych. Podobnie kwerenda wyszukująca same tytuły daje tylko połowę informacji: bez nazwisk autorów raport jest niepełny.
Najbliżej poprawnej jest odpowiedź z relacją 1..1, ale błędnie opisuje dane. Relacja jeden do jednego oznaczałaby, że każdy autor ma dokładnie jedną książkę, a w księgarni jeden autor ma ich zwykle wiele, np. kilka powieści tej samej pisarki. Typ relacji wynika z budowy tabel: skoro w tabeli książek jest pole idAutor, to wiele wierszy książek może wskazywać ten sam wiersz autora. To jest właśnie relacja jeden do wielu, a dopiero na niej buduje się kwerendę ze złączeniem.