Bazy danych na maturze z informatyki

Opublikowano

Baza danych to jeden z pięciu obszarów matury z informatyki - zwykle ostatnie zadanie w arkuszu. Możesz je rozwiązać w Microsoft Access albo pisząc zapytania SQL; obie drogi są dopuszczone.

Poniżej wyjaśniamy, co realnie trzeba umieć - SELECT, JOIN, WHERE i kilka konstrukcji pomocniczych - oraz jak oddać działającą bazę, żeby zdobyć komplet punktów.

Bazy danych - jeden z pięciu obszarów egzaminu

Zadanie z bazy danych to zwykle ostatnie zadanie w arkuszu - i jedno z tych, na których da się zdobyć komplet punktów, jeśli zna się schemat. Dostajesz kilka plików tekstowych z danymi (np. lekarze, pacjenci, wizyty) i odpowiadasz na pytania: „ilu…”, „którzy…”, „jaka suma…”, „kto ma najwięcej…”. Nie budujesz bazy od zera - importujesz dane i pobierasz z nich informacje.

Masz dwie równoważne drogi: Microsoft Access (gdzie zapytania układasz klikając w oknie projektu) albo zapytania SQL (które piszesz ręcznie). Oba opierają się na tych samych pojęciach. Ten artykuł prowadzi Cię przez całość krok po kroku - od podstaw baz relacyjnych, przez SQL, po pełną praktykę Accessa z zadań maturalnych.

Podstawy: tabele, rekordy, klucze i relacje

Na maturze pracujesz na relacyjnej bazie danych - dane leżą w tabelach, a między tabelami tworzy się relacje. Jedna tabela opisuje jedną rzecz. W tabeli:

  • kolumna (pole, atrybut) to jedna własność, np. imię, nazwisko, PESEL;
  • rekord to jeden wiersz, czyli konkretny obiekt (np. pacjent Jan Kowalski).

Rekordy identyfikują i łączą klucze. To pojęcie wraca w wielu zadaniach, więc warto je mieć poukładane:

KluczDo czego służy
Podstawowy (primary key)Jednoznacznie identyfikuje każdy rekord (np. id_pracownika). Nie może być pusty (NULL) ani się powtarzać.
Obcy (foreign key)Wskazuje na klucz podstawowy w innej tabeli - to on tworzy relację (np. id_pracownika w tabeli wynagrodzeń).
Unikalny (unique key)Wymusza niepowtarzalność wartości (np. e-mail), ale nie jest kluczem głównym i może być pusty.

Klucz obcy łączy tabele w jedną z trzech relacji: jeden do jednego (1:1, np. pracownik i jego jeden adres), jeden do wielu (1:N, np. pracownik i jego comiesięczne wypłaty) oraz wiele do wielu (M:N, np. pracownicy i projekty). Relację M:N realizuje się przez tabelę pośrednią (np. Pracownicy_Projekty) z kluczami obcymi obu tabel.

Schemat relacji między tabelami - klucz podstawowy i obcy na maturze z informatyki

SQL krok po kroku: SELECT, WHERE, sortowanie

Trzon każdego zapytania to SELECT - wskazujesz, które kolumny chcesz i z jakiej tabeli:

  • SELECT * FROM Pracownicy; - wszystkie kolumny.
  • SELECT imie, nazwisko FROM Pracownicy; - tylko wybrane. Gdy łączysz tabele i kolumny się powtarzają, podaj tabelę przed kolumną: Pracownicy.id.

WHERE (zapisywane po FROM) filtruje rekordy po warunku. Tekst bierzemy w pojedyncze cudzysłowy:

SELECT * FROM Lekarze WHERE specjalnosc = 'pediatra';

Zapamiętaj maturalne detale operatorów:

  • równość to pojedyncze =, a różność to <>;
  • warunki łączysz przez AND (oba muszą być spełnione) i OR (wystarczy jeden);
  • BETWEEN 2000 AND 3000 - zakres domknięty (2000 i 3000 wchodzą);
  • LIKE szuka wzorca; w Accessie * zastępuje dowolną liczbę znaków, a ? jeden znak (np. LIKE '*a' to imiona kończące się na „a”).

Na końcu sortujesz i ograniczasz wyniki: ORDER BY nazwisko ASC (rosnąco) lub DESC (malejąco), a SELECT TOP 3 … zwraca tylko kilka pierwszych rekordów (idealne do „trzech najwyższych pensji"). DISTINCT usuwa duplikaty.

Przykład zapytania SELECT z warunkiem WHERE i jego wynik

Grupowanie i funkcje agregujące

GROUP BY grupuje rekordy, a funkcje agregujące zwracają jeden wynik na grupę: SUM (suma), AVG (średnia), MIN/MAX (skrajne), COUNT (liczba). Przykład - łączne wynagrodzenie każdego pracownika:

SELECT id_pracownika, imie, nazwisko, SUM(kwota) FROM Wynagrodzenia GROUP BY id_pracownika, imie, nazwisko;

Grupujesz po tych kolumnach z SELECT, które nie są agregatem. HAVING (zaraz po GROUP BY) filtruje już pogrupowane dane - to „WHERE dla grup", np. HAVING SUM(kwota) >= 10000.

Najczęstsza pułapka punktowa: grupuj po id, nie po imieniu i nazwisku. Dwie różne osoby o tym samym imieniu i nazwisku zostałyby policzone jako jedna - i właśnie tu najczęściej znika punkt.

Złączenia tabel (JOIN)

Żeby pobrać dane z kilku tabel naraz, łączysz je złączeniem. Rodzaj złączenia decyduje, które rekordy trafią do wyniku:

ZłączenieCo zwraca
INNER JOINTylko rekordy pasujące w obu tabelach (część wspólna) - np. pracownicy, którzy mają co najmniej jedno wynagrodzenie.
LEFT JOINWszystkie rekordy z lewej tabeli + pasujące z prawej; brak dopasowania daje NULL. Kolejność tabel ma znaczenie.
RIGHT JOINOdwrotność LEFT JOIN - wszystkie z prawej + pasujące z lewej.
FULL JOINWszystkie rekordy z obu tabel. Uwaga: Access go nie obsługuje.
Rodzaje złączeń JOIN - INNER, LEFT, RIGHT - na maturze z informatyki

Przykład złączenia wewnętrznego:

SELECT imie, nazwisko, kwota FROM Pracownicy INNER JOIN Wynagrodzenia ON Pracownicy.id = Wynagrodzenia.id_pracownika;

Bardzo częsty maturalny trik: żeby znaleźć rekordy bez dopasowania (np. pracowników bez wynagrodzenia), użyj LEFT JOIN i sprawdź IS NULL na kluczu z prawej tabeli:

… FROM Pracownicy LEFT JOIN Wynagrodzenia ON … WHERE Wynagrodzenia.id_wyplaty IS NULL;

Tabele łączysz też po trzy naraz - najpierw dwie, a ich wynik z kolejną (np. Pracownicy → Pracownicy_Projekty → Projekty).

Dodawanie, zmiana i usuwanie danych

Pojawiają się też - zwykle w prostej formie - polecenia modyfikujące bazę. Warto znać ich składnię:

  • INSERT INTO Pracownicy (imie, nazwisko) VALUES ('Jan', 'Kowalski');
  • UPDATE Pracownicy SET stanowisko = 'senior' WHERE id = 5;
  • DELETE FROM Pracownicy WHERE id = 5;
  • CREATE TABLE Pracownicy (id INT PRIMARY KEY, imie VARCHAR(50)); - VARCHAR(50) to tekst do 50 znaków, INT to liczba całkowita; tabelę usuwa DROP TABLE Pracownicy;.

Access krok po kroku: import danych

Jeśli wybierasz Access, od tego zaczynasz. Import pliku tekstowego:

  1. Zakładka Dane zewnętrzne.
  2. Nowe źródło danych → Z pliku → Plik tekstowy.
  3. Wskaż plik i w kreatorze ustaw separator (na maturze zwykle tabulator - to zawsze pisze w poleceniu) oraz zaznacz, czy pierwszy wiersz zawiera nazwy kolumn.
Access - import pliku tekstowego, wybór separatora (tabulator) i nagłówków kolumn

Zanim zatwierdzisz, sprawdź dwie rzeczy, które najczęściej psują zadanie:

  • Format daty. Access lubi zmieniać datę na amerykański. W opcjach zaawansowanych ustaw właściwy format (np. RMD - rok-miesiąc-dzień), jeśli dane są w tej kolejności.
  • PESEL i numery jako tekst. Importuj je jako tekst, nie liczbę - mogą zaczynać się od zera, przekraczają zakres liczb całkowitych, a i tak nie liczysz na nich działań.
Access - ustawianie formatu daty RMD i typu tekstowego dla numeru PESEL

Na końcu wskazujesz klucz podstawowy (albo pozwalasz Accessowi dodać go automatycznie, gdy tabela go nie ma).

Access: połączenie tabel relacjami

Bez relacji Access nie wie, jak łączyć dane. Ustawiasz je tak:

  1. Zakładka Narzędzia bazy danych → Relacje.
  2. Przeciągnij tabele i połącz je po wspólnych polach (np. Lekarze i Wizyty po id_lekarza, Pacjenci i Wizyty po id_pacjenta).
  3. Zaznacz „Wymuszaj więzy integralności" - to pilnuje spójności danych.
Access - okno Relacje z połączonymi tabelami i opcją wymuszania więzów integralności

Access: budowanie kwerendy krok po kroku

Zapytania tworzysz przez Tworzenie → Projekt kwerendy. Pierwsza i najważniejsza zasada: dodawaj tylko tabele naprawdę potrzebne. Access domyślnie łączy je jak INNER JOIN (część wspólna), więc zbędna tabela zmienia wynik - np. gdy do listy pacjentów niepotrzebnie dołączysz „Wizyty", zniknie pacjent, który nie miał żadnej wizyty (102 rekordy zamiast poprawnych… i odwrotnie).

Access - okno projektu kwerendy z wierszami Pole, Kryteria, Sortuj i Podsumowanie

Co ustawiasz w oknie projektu:

  • Kryteria (WHERE) wpisujesz w wierszu „Kryteria". Warunki dla różnych kolumn połączone przez AND wpisujesz w tym samym wierszu, a połączone przez OR - w różnych wierszach. Daty zapisuj w formacie #rrrr-mm-dd#.
  • Sortowanie - w wierszu „Sortuj" wybierasz rosnąco/malejąco.
  • Grupowanie i agregaty włączasz opcją „Sumy". Jak w SQL: grupuj po id, nie po imieniu i nazwisku.
  • Limit ustawiasz w opcji „Zwróć" - do zadań „NAJ" (np. 3 najpopularniejsze specjalności).
Access - warunki AND w jednym wierszu kryteriów i OR w różnych wierszach

Kwerendy pomocnicze - klucz do trudnych zadań

Przy trudniejszych poleceniach jedno zapytanie nie wystarczy - budujesz je warstwami. Weźmy typowe: „dla każdej specjalności wskaż pacjenta z największą liczbą wizyt". Rozwiązujesz to tak:

  1. Kwerenda pomocnicza 1 - dla każdego pacjenta policz, ile razy był u danego specjalisty.
  2. Kwerenda pomocnicza 2 - odwołując się do pierwszej, znajdź dla każdej specjalności maksymalną liczbę wizyt.
  3. Kwerenda wynikowa - połącz relacjami tabelę pacjentów i obie kwerendy pomocnicze (po specjalności i po liczbie wizyt), a na końcu wypisz specjalność, pacjenta i tę maksymalną liczbę wizyt.

To standardowy wzorzec - opanuj go, bo zadania „NAJ w podziale na grupy" wracają na maturze niemal co roku.

Konstruktor wyrażeń i najważniejsze funkcje

W oknie projektu kwerendy masz przycisk Konstruktor - spis wszystkich operatorów i funkcji wbudowanych. Warto go znać, bo w stresie łatwo zapomnieć składni. Funkcje, które realnie przydają się na maturze:

  • Daty: Year(), Month(), Day() - np. do zliczania wizyt w danym roku czy miesiącu.
  • Tekst: Left(), Right(), Mid(), Len().
  • Logika i liczby: IIF() (jak JEŻELI w Excelu), Abs().

Uwaga na zaokrąglanie - to realne źródło utraty punktów. Funkcja Round() w Accessie zaokrągla „do najbliższej parzystej" (2,5 → 2, ale 3,5 → 4), co bywa niezgodne z poleceniem. Gdy zadanie chce po prostu zaokrąglić do dwóch miejsc, bezpieczniej ustawić format komórki (np. walutowy z dwoma miejscami po przecinku) niż liczyć Round().

Gotowe kreatory kwerend

Access ma kreatory, które skracają typowe zadania:

  • Wyszukująca duplikaty - np. pacjenci z więcej niż jedną wizytą.
  • Wyszukująca niepasujące dane - rekordy z jednej tabeli, których nie ma w drugiej (np. pacjenci bez wizyt). To samo osiągniesz LEFT JOIN-em, zmieniając „właściwości sprężenia" połączenia w samej kwerendzie (nie w oknie relacji - inaczej zmienisz wszystkie połączenia w bazie!).
  • Krzyżowa - do zestawień „coś w podziale na coś" (np. liczba wizyt każdego lekarza w każdym roku).
Access - kwerenda krzyżowa zliczająca wizyty lekarza w każdym roku

Jak oddać zadanie, żeby dostać punkty

Punkty rozkładają się zwykle na poprawny wybór i połączenie tabel oraz poprawne warunki wyszukiwania. Ale zanim je ocenią, muszą znaleźć Twoją odpowiedź:

  • Plik tekstowy jest obowiązkowy. Bez zapisania wyników do pliku (np. wyniki5.txt) i bez pliku z komputerową realizacją nie ma punktów - to jak oddanie pustej kartki.
  • Opisz odpowiedzi. Każda w osobnej linii, oznaczona numerem podpunktu, z czytelnym podpisem, która kolumna co zawiera.
  • Zmień domyślne nazwy agregatów. Access nadaje kolumnom nazwy typu SumaOfLiczba_dni - zamień je na zrozumiałe (np. „Liczba noclegów").
Poprawnie wypełniony plik wyniki.txt z odpowiedziami opisanymi numerem podpunktu

Jak technicznie przygotować i nazwać pliki, opisujemy w artykule Jak poprawnie oddawać zadania na maturze z informatyki, a na co zwraca uwagę sprawdzający - w oddawaniu zadań okiem egzaminatora.

Najczęstsze pułapki punktowe

  • Grupowanie po imieniu i nazwisku zamiast po id - zlewa różne osoby w jedną.
  • Zły format daty przy imporcie do Accessa (amerykański zamiast rok-miesiąc-dzień).
  • PESEL zaimportowany jako liczba (ucięte zera, przekroczony zakres).
  • Zbędna tabela w kwerendzie zmieniająca wynik przez domyślny INNER JOIN.
  • Round() zamiast formatu komórki przy zaokrąglaniu.
  • Brak pliku tekstowego z wynikami = brak punktów.

Cały zakres materiału egzaminu znajdziesz w artykule Wymagania na maturę z informatyki. Powodzenia w przygotowaniach!

Nie przegap ważnych informacji!

Dostajesz tylko to, co naprawdę wpłynie na Twój wynik - zanim będzie za późno.

  • Oficjalne odpowiedzi i stanowiska Centralnej Komisji Egzaminacyjnej.
  • Błędy w oprogramowaniu egzaminacyjnym, które mogą kosztować punkty.
  • Zmiany w przepisach i zasadach przebiegu egzaminu maturalnego.
  • Analizy informatorów i omówienia wymagań CKE.
  • Porady dotyczące ostatnich tygodni przed egzaminem.
  • I inne wartościowe informacje, które możesz też przeczytać w zakładce artykuły.
Newsletter matura z informatyki - zapis na powiadomienia e-mail przed egzaminem

Najczęściej zadawane pytania dot. artykułu (FAQ)

Oba są dopuszczone - wybór należy do Ciebie. Microsoft Access jest prostszy i szybszy (kwerendy układasz w widoku projektu), a SQL daje pełną kontrolę i można go pisać w dowolnej wersji. W obu przypadkach musi powstać działająca realizacja, a nie same wyniki.

Wystarczy kilka konstrukcji: SELECT (wybór kolumn), WHERE (warunki, w tym LIKE), JOIN (łączenie tabel), GROUP BY z funkcjami agregującymi (COUNT, SUM, AVG) oraz ORDER BY (sortowanie). Te same operacje wykonasz w Accessie i w SQL-u.

Dowolnej - CKE nie narzuca konkretnego dialektu. Warto jednak pisać zapytania standardowo i czytelnie, bo część sprawdzających konsultuje SQL ze specjalistą. Oddaj wyniki, eksport bazy do pliku .sql oraz treści zapytań.

Zwykle za dwie rzeczy: poprawny wybór i połączenie tabel oraz poprawne warunki wyszukiwania. Dlatego kluczowe jest właściwe złączenie (JOIN) oraz dokładny zapis warunków (cudzysłowy, wzorce w LIKE). Odpowiedź musi wynikać z działającej realizacji.

INNER JOIN zwraca tylko rekordy pasujące w obu tabelach (część wspólna) - np. pracowników, którzy mają co najmniej jedno wynagrodzenie. LEFT JOIN zwraca wszystkie rekordy z lewej tabeli i pasujące z prawej (brak dopasowania daje NULL) - np. wszystkich pracowników, także tych bez wynagrodzenia. Access domyślnie łączy tabele jak INNER JOIN.

Użyj LEFT JOIN i sprawdź warunek IS NULL na kluczu z prawej tabeli - zostaną tylko rekordy, które nie mają dopasowania. W Accessie osiągniesz to samo kreatorem „wyszukująca niepasujące dane” albo zmieniając właściwości sprężenia połączenia w samej kwerendzie.

Bo dwie różne osoby mogą mieć to samo imię i nazwisko. Grupując po nazwisku, baza policzyłaby je jako jedną osobę i zsumowała ich dane razem. Dlatego zawsze grupuj po unikalnym id - to jedna z najczęstszych przyczyn utraty punktów na maturze.

Uważaj na funkcję Round() - w Accessie zaokrągla „do najbliższej parzystej” (2,5 → 2, ale 3,5 → 4), co bywa niezgodne z poleceniem. Gdy zadanie chce po prostu zaokrąglić do dwóch miejsc po przecinku, bezpieczniej ustawić format komórki (np. walutowy z dwoma miejscami) niż liczyć Round().

© 2026 Software Bay. Design with ♥