INF.03 · Bazy danych i SQL

Dwa kompletne arkusze egzaminacyjne

To próba generalna: dwa arkusze w konwencji części praktycznej egzaminu INF.03, każdy z importem, kilkoma zapytaniami i dokumentacją. Na oba masz 150 minut. Jeśli nie zdążysz ze wszystkim, zanotuj, na którym punkcie utknąłeś. To cenniejsza informacja do dalszej nauki niż domknięcie arkusza na siłę.

  • 150 minut
  • 2 arkusze, 13 zapytań
  • SnowRent i DanceStudio

Po tej lekcji: wykonasz kompletny arkusz egzaminacyjny od importu po dokumentację i ocenisz, które umiejętności wymagają jeszcze ćwiczeń.

1 · Sytuacja

Arkusz 1: SnowRent

Wypożyczalnia sprzętu narciarskiego prowadzi ewidencję sprzętu, klientów i wypożyczeń. Uruchom Apache i MySQL, zaimportuj plik snowrent.sql (baza snowrent, trzy tabele: Sprzet, Klienci, Wypozyczenia) i zapisz zrzut importu jako import1.png. Zapytania dokumentuj zrzutami zap1.png … zap6.png.

Dokumentacja: zapisz wszystkie zapytania w pliku zapytania_snowrent.txt i opisz w nim system operacyjny oraz wersję MySQL lub MariaDB, na której pracowałeś.

Kryteria oceny: poprawność importu, poprawność i skuteczność każdego zapytania, czytelny zapis SQL oraz kompletność dokumentacji.

2 · Do wykonania

Arkusz 1: sześć zapytań

Przy zmianie danych (zadanie 4) najpierw SELECT, potem UPDATE.

  1. Wybierz wszystkie pola z tabeli Sprzet.
    Oczekiwany wynik8 wierszy
  2. Wybierz nazwę i cenę za dzień sprzętu typu „narty”, posortowane rosnąco po cenie.
    Oczekiwany wynik3 wierszepierwszy wiersz: Narty Rossignol Experience · 55.00
  3. Wybierz nazwę sprzętu, którego stan techniczny to „do przeglądu”.
    Oczekiwany wynik2 wiersze
  4. Zaktualizuj cenę całego sprzętu typu „deska”, podwyższając ją o 15%. Najpierw SELECT z tym samym warunkiem.
    Oczekiwany wynikzmienionych wierszy: 2
  5. Wyświetl dla każdego wypożyczenia imię i nazwisko klienta, nazwę sprzętu oraz liczbę dni (trzy tabele).
    Oczekiwany wynik8 wierszy
  6. Oblicz łączny przychód wypożyczalni z wypożyczeń sprzętu typu „narty” (cena za dzień razy liczba dni).
    Oczekiwany wynik1 wierszpierwszy wiersz: 805.00

3 · Drugi arkusz

Arkusz 2: DanceStudio (baza dancestudio)

Centrum kursów tanecznych prowadzi zapisy kursantów do instruktorów. Przygotuj stanowisko jak w arkuszu 1: baza dancestudio z pliku (cztery tabele: StyleTanca, Instruktorzy, Kursanci, Zapisy), zrzut importu import2.png, a potem siedem zapytań zap1.png … zap7.png. Czas: 150 minut na oba arkusze.

  1. Wybierz wszystkie style taneczne dostępne w ofercie.
    Oczekiwany wynik5 wierszy
  2. Wybierz imię i nazwisko każdego instruktora razem z nazwą prowadzonego stylu.
    Oczekiwany wynik5 wierszy
  3. Wybierz kursantów, którzy zapisali się na zajęcia, ale jeszcze nie zapłacili.
    Oczekiwany wynik3 wiersze
  4. Policz, ilu kursantów zapisało się do każdego instruktora (JOIN i GROUP BY).
    Oczekiwany wynik5 wierszy
  5. Znajdź styl taneczny z największą liczbą zapisów (jeden wiersz).
    Oczekiwany wynik1 wierszpierwszy wiersz: Salsa · 3
  6. Oznacz jako opłacone wszystkie zapisy kursanta o adresie e-mail „amelia.k@gmail.com”. Najpierw SELECT.
    Oczekiwany wynikzmienionych wierszy: 1
  7. Znajdź kursantów zapisanych na więcej niż jedne zajęcia (GROUP BY po kursancie i HAVING).
    Oczekiwany wynik3 wiersze

4 · Sprawdź się

Samokontrola: arkusz 2

Wpisz liczbę wierszy każdego zapytania z arkusza 2.

Ta interakcja wymaga włączonego JavaScriptu.

3 · Sprawdź się

Czy Twoje wyniki się zgadzają?

To szybka kontrola, a nie ocena. Liczba wierszy jest pierwszym sygnałem, że warunek albo złączenie działa tak, jak trzeba.

Ta interakcja wymaga włączonego JavaScriptu.

4 · Zanim się pomylisz

Pułapki egzaminacyjne w obu arkuszach

Rozwiń każdą z nich.

UPDATE o 15% bez sprawdzenia warunku
Tak nie
UPDATE Sprzet SET cena_za_dzien = cena_za_dzien * 1.15;

Wszystkie ceny wzrosły o 15%, a polecenie dotyczyło tylko desek.

Tak
SELECT * FROM Sprzet WHERE typ = 'deska';
UPDATE Sprzet SET cena_za_dzien = ROUND(cena_za_dzien * 1.15, 2) WHERE typ = 'deska';

Skopiuj warunek do SELECT i sprawdź zakres.

Przychód z ceny bez liczby dni
Tak nie
SUM(s.cena_za_dzien)

Pomijasz, że wypożyczenie trwało kilka dni.

Tak
SUM(s.cena_za_dzien * w.liczba_dni)

Przychód to cena za dzień razy liczba dni.

Wartość logiczna jako tekst
Tak nie
UPDATE Zapisy SET oplacone = 'TRUE';

W MySQL wartość logiczna to liczba: 1 lub 0. Tekst „TRUE” w apostrofach nie jest wartością logiczną.

Tak
UPDATE Zapisy SET oplacone = 1 WHERE ...;

TRUE i FALSE bez apostrofów to 1 i 0.

Brak dokumentacji
Tak nie
Dobre zapytania bez zrzutów i pliku tekstowego.

Egzaminator nie ma dowodu pracy, więc punkty za dokumentację przepadają.

Tak
Zrzuty z całym wynikiem i plik z zapytaniami oraz opisem środowiska.

Dokumentacja jest częścią oceny.

5 · Sprawdź sam siebie

Zanim oddasz pracę

Ta lista odpowiada temu, co sprawdza komisja egzaminacyjna: poprawną bazę, poprawne wyniki i dokumentację.

Podsumowanie

Co warto zapamiętać

  1. Arkusz to import, zapytania i dokumentacja: wszystkie trzy części liczą się do oceny.
  2. Zmiany danych zawsze z kontrolą warunku.
  3. Przychód liczysz z ceny razy liczba dni lub sztuk.
  4. Zanotuj, na czym utknąłeś. To plan dalszej nauki.

Dalej na swoim koncie

Rozgrzewki, quiz i zadania są w biurku ucznia.

Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.

Zaloguj się →
Źródła i dalsza nauka