Relacje i Kwerendy Wielotabelowe
Wszystko, co musisz wiedzieć o łączeniu tabel na maturze. Klucz główny, klucz obcy, relacje jeden do wielu oraz INNER JOIN. To absolutny pewniak 100%.
Dane na maturze przychodzą w kilku plikach tekstowych, więc zanim cokolwiek policzysz, musisz je posklejać kluczem głównym z obcym. Stąd w arkuszu z bazy prawie zawsze siedzi kwerenda na dwóch albo trzech tabelach, z tabelą pośrednią w roli mostu. Powtarzalne jest też to, na czym uczniowie się wykładają: brak nawiasów przy trzech tabelach w Accessie i kolumna podana bez nazwy tabeli. Na starcie ciężko to wytłumaczyć, ale po kilku zadaniach uczniowie zaczynają czytać powiązania wprost z budowy tabel i sami wskazują, przez co trzeba się połączyć.
- Dlaczego właściwie musimy łączyć tabele?
Na maturze z informatyki dane nigdy nie są podane na tacy w jednym wielkim arkuszu. Zamiast tego, CKE rzuca Ci 3-4 pliki tekstowe (np. uczniowie.txt, oceny.txt, przedmioty.txt).
Po ich zaimportowaniu do Accessa lub środowiska SQL stają się one osobnymi bytami. Aby wyciągnąć z nich użyteczne informacje, musimy je ze sobą posklejać, tworząc relacyjną bazę danych. Sukces całego zadania zależy od tego, czy poprawnie zidentyfikujesz i połączysz odpowiednie klucze.
- Dwa najważniejsze pojęcia: Klucz Główny i Obcy
Zanim zaczniesz pisać kwerendy, musisz zbudować "mosty" między tabelami. Pamiętaj o dwóch złotych zasadach:
Primary Key to unikalny identyfikator każdego rekordu. W tej tabeli wartości absolutnie nie mogą się powtarzać!
Np. ID_ucznia czy PESEL.
Foreign Key to pole w innej tabeli, odwołujące się do klucza głównego. Tutaj wartości mogą (i będą!) się powtarzać.
Np. jeden uczeń może mieć wiele ocen.
💡 Złota zasada łączenia:
Zawsze łączymy Klucz główny z Kluczem obcym. W ten sposób tworzymy klasyczną dla matury relację typu jeden do wielu, oznaczaną matematycznie jako .
- Jak wyciągnąć dane? JOIN vs Access
💻 Środowisko SQL
Używamy polecenia JOIN (najczęściej INNER JOIN). Zwraca ono tylko i wyłącznie te wiersze, które mają pasujące wartości w obu połączonych tabelach.
🖱️ Microsoft Access
Wystarczy w widoku projektu kwerendy dodać odpowiednie tabele i przeciągnąć myszką pole klucza głównego do klucza obcego. Gdy zobaczysz czarną linię łączącą tabele – gotowe! Access sam w tle wygeneruje kod z INNER JOIN.
- Klasyczne zadanie maturalne w praktyce
Mamy trzy typowe tabele: Uczniowie (ID_ucznia, Imie, Nazwisko), Oceny (ID_oceny, Wartosc, ID_ucznia, ID_przedmiotu) oraz Przedmioty (ID_przedmiotu, Nazwa_przedmiotu).
Zadanie
"Podaj imiona i nazwiska uczniów, którzy otrzymali ocenę niedostateczną (wartość 1) z przedmiotu o nazwie 'Informatyka'."
💡 Pokaż rozwiązanie krok po kroku▼
- Maturalne miny (Na co koniecznie uważać!)
Próba łączenia tabel, które nie mają wspólnego klucza, natychmiast wyrzuci błąd. Zawsze sprawdzaj, czy nie potrzebujesz środkowej tabeli jako "mostu".
Jeśli pole ID_ucznia znajduje się w kilku tabelach, sam zapis SELECT ID_ucznia zmyli bazę. Musisz zawsze precyzować pochodzenie: Tabela.Kolumna (np. Uczniowie.ID_ucznia).
Zwykły INNER JOIN pomija rekordy bez pary. Jeśli jednak CKE zapyta: "Podaj wszystkich uczniów wraz z liczbą wypożyczeń, nawet tych, którzy nic nie wypożyczyli", wymusza to użycie LEFT JOIN!
Plan pracy na 210 minut, kolejność rozwiązywania i format plików wynikowych, na którym najłatwiej stracić punkty.
Korepetycje z informatyki
Zdajesz maturę rozszerzoną z informatyki?
Prowadzimy indywidualne przygotowanie do matury z informatyki — algorytmy, Python i C++, bazy danych i arkusz kalkulacyjny. Zajęcia online, na arkuszach CKE. Zobacz program i cennik.
Zobacz korepetycje z informatykiUczysz się w technikum informatycznym? Prowadzimy też przygotowanie do kwalifikacji INF.02, INF.03 i INF.04. Zobacz egzaminy zawodowe →
Nadal czujesz się niepewnie?
To tylko jeden z pewniaków. Na kursie przechodzimy przez nie wszystkie, krok po kroku, aż poczujesz ten spokój.
Pomóżcie mi zdać maturę!