Pracownia baz danych
Zadania 73
Projekt roczny 5
Rok 1 34
Zadanie 01 — Środowisko pracy: XAMPP, phpMyAdmin i konsola
Uruchomienie serwera bazy danych z pakietu XAMPP, zaimportowanie bazy ćwiczeniowej sklep oraz poznanie dwóch narzędzi pracy: phpMyAdmin i konsoli mysql.
Czas: 2 × 45 min
Zadanie 02 — Analiza wymagań i projekt bazy szkolnej biblioteki
Przełożenie opisu potrzeb klienta na listę encji, atrybutów i reguł biznesowych oraz pierwszą propozycję tabel — jeszcze bez SQL.
Czas: 2 × 45 min
Zadanie 03 — Diagram ERD — encje, atrybuty i związki 1:N
Narysowanie diagramów ERD w notacji kurzej stopki z poprawnymi krotnościami i uczestnictwem — najpierw dla istniejącej bazy sklep, potem dla własnego projektu biblioteki.
Czas: 2 × 45 min
Zadanie 04 — ERD — związki N:M, tabela pośrednicząca i związek
Rozbijanie związków wiele-do-wielu na tabelę pośredniczącą, rozpoznawanie encji słabych i związków rekurencyjnych oraz samodzielne zaprojektowanie diagramu dla nowej dziedziny.
Czas: 2 × 45 min
Zadanie 05 — Model relacyjny — z diagramu ERD do schematu
Zapisanie schematu relacyjnego w notacji Tabela(atrybuty) z kluczami głównymi i obcymi, świadomy wybór między kluczem naturalnym a sztucznym oraz odczyt modelu istniejącej bazy w phpMyAdmin.
Czas: 2 × 45 min
Zadanie 06 — Normalizacja 1NF–3NF — anomalie i zależności
Rozpoznanie anomalii w tabeli nieznormalizowanej, wyznaczenie zależności funkcyjnych i rozłożenie danych krok po kroku do 1NF, 2NF i 3NF.
Czas: 2 × 45 min
Zadanie 07 — Normalizacja — implementacja i przeniesienie
Utworzenie w MySQL/MariaDB tabel w 3NF zaprojektowanych w zadaniu 6, przeniesienie do nich danych z tabeli płaskiej poleceniem INSERT … SELECT i sprawdzenie, że żadne dane nie zginęły.
Czas: 2 × 45 min
Zadanie 08 — Typy danych — dobór i testy
Sprawdzenie doświadczalnie, jak serwer zapisuje liczby, teksty i daty różnych typów, co dzieje się przy przekroczeniu zakresu w trybie ścisłym i nieścisłym, oraz dobranie typów kolumn dla bazy biblioteki.
Czas: 2 × 45 min
Zadanie 09 — DDL — tworzenie bazy i tabel biblioteki
Napisanie skryptu.sql, który tworzy bazę biblioteka z poprawnym kodowaniem i wszystkie jej tabele z kluczami, wartościami domyślnymi i ograniczeniami NOT NULL, oraz sprawdzenie go poleceniami SHOW.
Czas: 2 × 45 min
Zadanie 10 — DDL — zmiany struktury: ALTER, RENAME,
Bezpieczne zmienianie struktury istniejących tabel poleceniami ALTER TABLE i RENAME TABLE oraz doświadczalne porównanie DELETE, TRUNCATE i DROP na kopiach tabel.
Czas: 2 × 45 min
Zadanie 11 — Integralność danych — klucze i ograniczenia
Sprawdzenie w praktyce, jak klucze główne, obce, UNIQUE, CHECK, NOT NULL i DEFAULT chronią poprawność danych, oraz zaprojektowanie własnych ograniczeń z akcjami ON DELETE CASCADE, SET NULL i RESTRICT.
Czas: 2 × 45 min
Zadanie 12 — DML — INSERT, UPDATE i DELETE
Dodawanie, zmienianie i usuwanie danych poleceniami INSERT, UPDATE i DELETE oraz nawyk bezpiecznej pracy: najpierw SELECT z tym samym warunkiem, a przy ryzykownych zmianach — transakcja z możliwością ROLLBACK.
Czas: 2 × 45 min
Zadanie 13 — Import i eksport danych (CSV)
Importowanie danych z plików CSV do tabel (phpMyAdmin i LOAD DATA) z poprawnym kodowaniem, separatorem i formatem liczb oraz eksportowanie danych do CSV.
Czas: 2 × 45 min
Zadanie 14 — SELECT — wybieranie kolumn i wierszy
Pisanie prostych zapytań SELECT: wybieranie kolumn, aliasy, DISTINCT, filtrowanie wierszy warunkami WHERE i obliczenia w zapytaniu.
Czas: 2 × 45 min
Zadanie 15 — WHERE dla zaawansowanych: LIKE, IN, BETWEEN,
Stosowanie wzorców LIKE, list IN, zakresów BETWEEN i warunków IS NULL oraz sortowanie i stronicowanie wyników ORDER BY i LIMIT.
Czas: 2 × 45 min
Zadanie 16 — Zadanie kontrolne 1: DDL, DML i SELECT
Samodzielne utworzenie bazy danych według opisu, wprowadzenie i modyfikacja danych oraz napisanie zapytań SELECT — sprawdzian umiejętności z zadań 9–15.
Czas: 2 × 45 min
Zadanie 17 — Funkcje tekstowe
Stosowanie funkcji tekstowych MySQL/MariaDB do łączenia, wycinania, zamiany i formatowania tekstów oraz zrozumienie różnicy między bajtami a znakami w UTF-8.
Czas: 2 × 45 min
Zadanie 18 — Funkcje daty, liczbowe i CASE
Stosowanie funkcji daty i czasu, funkcji zaokrąglających oraz wyrażenia CASE i funkcji IFNULL do przygotowania czytelnych raportów.
Czas: 2 × 45 min
Zadanie 19 — Funkcje agregujące
Obliczanie podsumowań danych funkcjami COUNT, SUM, AVG, MIN i MAX oraz zrozumienie, jak agregaty traktują wartości NULL i puste zbiory.
Czas: 2 × 45 min
Zadanie 20 — GROUP BY i HAVING
Tworzenie raportów z podsumowaniami w grupach (GROUP BY), filtrowanie grup (HAVING) i rozumienie kolejności wykonywania części zapytania.
Czas: 2 × 45 min
Zadanie 21 — Złączenia — INNER JOIN
Łączenie danych z kilku tabel złączeniem wewnętrznym na podstawie kluczy obcych oraz rozpoznawanie błędnych złączeń.
Czas: 2 × 45 min
Zadanie 22 — Złączenia zewnętrzne i SELF JOIN
Stosowanie złączeń zewnętrznych do pokazywania wierszy bez pary i wyszukiwania braków danych, łączenie tabeli z samą sobą oraz emulacja pełnego złączenia zewnętrznego.
Czas: 2 × 45 min
Zadanie 23 — Raporty: JOIN i GROUP BY razem
Przygotowanie raportów sprzedażowych łączących dane z kilku tabel z grupowaniem oraz sprawdzanie ich poprawności zapytaniami kontrolnymi i obliczeniem ręcznym.
Czas: 2 × 45 min
Zadanie 24 — Podzapytania w WHERE i SELECT
Nauczenie się zapisywania zapytań z podzapytaniem skalarnym, listowym (IN / NOT IN) i podzapytaniem w liście SELECT oraz porównania ich z rozwiązaniem przez złączenie.
Czas: 2 × 45 min
Zadanie 25 — Podzapytania skorelowane, EXISTS i tabele
Nauczenie się pisania podzapytań skorelowanych, warunków EXISTS / NOT EXISTS i tabel pochodnych w klauzuli FROM oraz oceny, które rozwiązanie jest czytelniejsze i wydajniejsze.
Czas: 2 × 45 min
Zadanie 26 — Operacje na zbiorach i raport końcowy z SELECT
Nauczenie się łączenia wyników zapytań operatorami zbiorowymi oraz przygotowanie raportu podsumowującego, który wykorzystuje filtrowanie, złączenia, grupowanie i podzapytania.
Czas: 2 × 45 min
Zadanie 27 — Użytkownicy, uprawnienia i role
Nauczenie się tworzenia kont z minimalnymi potrzebnymi uprawnieniami, nadawania i odbierania uprawnień oraz sprawdzania ich działania przez logowanie się na ograniczone konto.
Czas: 2 × 45 min
Zadanie 28 — Kopie zapasowe i odtwarzanie bazy
Nauczenie się wykonywania kopii zapasowej bazy i pojedynczej tabeli narzędziem mysqldump i w phpMyAdmin, odtwarzania kopii do nowej bazy, sprawdzania jej kompletności oraz zaplanowania automatycznych kopii.
Czas: 2 × 45 min
Zadanie 29 — Próba egzaminacyjna INF.03 nr 1 — część
Przećwiczenie w warunkach zbliżonych do egzaminu INF.03 importu bazy z pliku, pisania czterech zapytań (wybieranie, złączenie, agregacja, modyfikacja lub uprawnienia) oraz dokumentowania wyników zrzutami ekranu i plikiem z kwerendami.
Czas: 2 × 45 min
Zadanie 30 — Próba egzaminacyjna INF.03 nr 2 — wypożyczalnia
Sprawdzenie w warunkach egzaminacyjnych (limit 60 minut) umiejętności importu bazy, pisania zapytań wybierających, złączeń, agregacji i modyfikacji danych oraz rzetelnej samooceny według kryteriów.
Czas: 2 × 45 min
Zadanie 31 — Projekt roczny cz. 1 — projekt bazy danych
Zaprojektowanie w zespole kompletnej bazy danych dla wybranej dziedziny: od wymagań i reguł biznesowych, przez diagram ERD, po schemat relacyjny w 3NF, oraz ocena projektu innego zespołu.
Czas: 2 × 45 min
Zadanie 32 — Projekt roczny cz. 2 — implementacja i dane
Zaimplementowanie zaprojektowanej bazy w skrypcie SQL z pełnym zestawem ograniczeń integralności, wypełnienie jej danymi testowymi i udowodnienie testami, że ograniczenia działają.
Czas: 2 × 45 min
Zadanie 33 — Projekt roczny cz. 3 — zapytania, użytkownicy,
Dokończenie projektu rocznego: zapytania raportowe odpowiadające na pytania z zadania 31, konta z różnymi uprawnieniami, kopia zapasowa z próbnym odtworzeniem, dokumentacja i krótka prezentacja.
Czas: 2 × 45 min
Zadanie 34 — Zadanie zaliczeniowe roku 1 — szkoła językowa
Samodzielne wykonanie w 90 minut pełnego cyklu pracy z bazą: utworzenie bazy i tabel z ograniczeniami według opisu, wprowadzenie danych, zapytania, konto z ograniczonymi uprawnieniami i kopia zapasowa.
Czas: 2 × 45 min
Rok 2 34
Zadanie 01 — Powtórka po wakacjach — zadanie diagnostyczne
Sprawdzenie, co pamiętasz z pisania zapytań SELECT z roku 1, i przygotowanie własnej mapy zaległości przed nowymi tematami.
Czas: 2 × 45 min
Zadanie 02 — Widoki — tworzenie i użycie
Nauczenie się tworzenia widoków, które upraszczają złożone zapytania i ukrywają niepotrzebne kolumny, oraz sprawdzenie, że widok nie przechowuje danych.
Czas: 2 × 45 min
Zadanie 03 — Widoki — aktualizacja i uprawnienia
Sprawdzenie, kiedy przez widok można zmieniać dane, jak WITH CHECK OPTION pilnuje warunku widoku i jak widok z uprawnieniami ogranicza dostęp użytkownika do danych.
Czas: 2 × 45 min
Zadanie 04 — Warunki w SQL: CASE, IF, IFNULL, COALESCE,
Nauczenie się wybierania wartości według warunków w zapytaniach, budowania raportów przestawnych jednym zapytaniem i bezpiecznego obchodzenia się z NULL i dzieleniem przez zero.
Czas: 2 × 45 min
Zadanie 05 — Wyrażenia CTE i zapytania rekurencyjne
Nauczenie się zapisywania złożonych zapytań jako czytelnych bloków WITH oraz przechodzenia przez hierarchie (pracownicy, drzewo kategorii) i generowania ciągów dat zapytaniem rekurencyjnym.
Czas: 2 × 45 min
Zadanie 06 — Funkcje okna
Nauczenie się liczenia rankingów, sum narastających, porównań z poprzednim okresem i udziałów w grupie bez utraty pojedynczych wierszy — za pomocą funkcji okna OVER().
Czas: 2 × 45 min
Zadanie 07 — Wyrażenia regularne i walidacja danych
Nauczenie się wyszukiwania danych według wzorca, wykrywania i poprawiania błędnych emaili, telefonów i kodów pocztowych oraz blokowania złych danych ograniczeniem CHECK z REGEXP.
Czas: 2 × 45 min
Zadanie 08 — Procedury składowane — podstawy
Nauczenie się tworzenia i wywoływania procedur składowanych z parametrami IN, OUT i INOUT, zmiennymi lokalnymi i instrukcją IF.
Czas: 2 × 45 min
Zadanie 09 — Funkcje składowane i pętle
Nauczenie się tworzenia własnych funkcji zwracających wartość, używania ich w zapytaniach oraz programowania pętli WHILE, REPEAT i LOOP.
Czas: 2 × 45 min
Zadanie 10 — Obsługa błędów w procedurach
Nauczenie się zgłaszania własnych błędów, przechwytywania błędów serwera w procedurach i wycofywania całej operacji, gdy jeden z jej kroków się nie uda.
Czas: 2 × 45 min
Zadanie 11 — Wyzwalacze — dziennik zmian (audyt)
Nauczenie się tworzenia wyzwalaczy, które automatycznie zapisują historię zmian danych, oraz poznanie ograniczeń wyzwalaczy.
Czas: 2 × 45 min
Zadanie 12 — Wyzwalacze walidujące i zdarzenia (EVENT)
Nauczenie się pilnowania reguł biznesowych wyzwalaczami (stan magazynu, dozwolone zmiany statusu, limit obniżki) oraz automatyzowania zadań okresowych zdarzeniami serwera.
Czas: 2 × 45 min
Zadanie 13 — Transakcje i ACID — przelewy między kontami
Przećwiczenie sterowania transakcjami w MySQL/MariaDB i sprawdzenie w praktyce, co gwarantują niepodzielność, spójność, izolacja i trwałość (ACID).
Czas: 2 × 45 min
Zadanie 14 — Współbieżność: poziomy izolacji i blokady
Zaobserwowanie w dwóch oknach konsoli problemów współbieżnego dostępu do danych i sprawdzenie, jak chronią przed nimi poziomy izolacji i blokady InnoDB.
Czas: 2 × 45 min
Zadanie 15 — Indeksy — EXPLAIN i pomiar czasu
Zmierzenie, jak indeks zmienia czas wykonania zapytania na tabeli z milionem wierszy, i nauczenie się czytania planu EXPLAIN.
Czas: 2 × 45 min
Zadanie 16 — Indeksy złożone, pokrywające i pełnotekstowe
Zaprojektowanie indeksów złożonych i pokrywających dla konkretnych zapytań, rozpoznanie sytuacji, w których indeks nie działa, oraz wyszukiwanie słów w tekście indeksem FULLTEXT.
Czas: 2 × 45 min
Zadanie 17 — Optymalizacja zapytań
Znalezienie wolnych zapytań za pomocą dziennika i planu wykonania oraz przepisanie ich na szybsze odpowiedniki: stronicowanie bez OFFSET, złączenie zamiast podzapytania skorelowanego, jedno zapytanie zamiast N+1.
Czas: 2 × 45 min
Zadanie 18 — Silniki składowania oraz MySQL i MariaDB
Porównanie w praktyce najważniejszych silników składowania (InnoDB, MyISAM, Aria, MEMORY, CSV, ARCHIVE) i poznanie różnic między MySQL a MariaDB.
Czas: 2 × 45 min
Zadanie 19 — Bezpieczne zapytania w aplikacji
Poprawienie aplikacji PHP tak, aby dane od użytkownika nigdy nie stawały się częścią polecenia SQL, a aplikacja łączyła się z bazą kontem o minimalnych uprawnieniach i nie ujawniała szczegółów błędów.
Czas: 2 × 45 min
Zadanie 20 — PHP i MySQLi — strona z danymi z bazy
Zbudowanie strony internetowej, która pobiera dane z bazy sklep funkcjami mysqli, wyświetla je w tabeli HTML i filtruje po kategorii wybranej w formularzu.
Czas: 2 × 45 min
Zadanie 21 — PHP i PDO — CRUD produktów
Zbudowanie w PHP i PDO kompletnego panelu do zarządzania produktami sklepu: odczyt, dodawanie, edycja i usuwanie (CRUD) z zapytaniami przygotowanymi.
Czas: 2 × 45 min
Zadanie 22 — PHP — transakcje, błędy i wzorzec repozytorium
Zaprogramowanie w PHP składania zamówienia jako jednej transakcji, która przy każdym błędzie wycofuje wszystkie zmiany, oraz uporządkowanie kodu dostępu do bazy w klasach.
Czas: 2 × 45 min
Zadanie 23 — Replikacja źródło–replika
Skonfigurowanie replikacji asynchronicznej źródło–replika, sprawdzenie, że zmiany ze źródła trafiają na replikę, oraz przećwiczenie zatrzymania, wznowienia i naprawy przerwanej replikacji.
Czas: 2 × 45 min
Zadanie 24 — Partycjonowanie tabel
Podzielenie dużej tabeli pomiarów na partycje metodami RANGE COLUMNS, LIST COLUMNS i HASH, sprawdzenie przycinania partycji (pruning) w EXPLAIN oraz porównanie usuwania starych danych przez DELETE i DROP PARTITION.
Czas: 2 × 45 min
Zadanie 25 — Dane JSON w MySQL i MariaDB
Zapisywanie, odczytywanie, wyszukiwanie i modyfikowanie danych o zmiennej strukturze w kolumnie JSON oraz przyspieszanie wyszukiwania po polu JSON indeksem na kolumnie generowanej.
Czas: 2 × 45 min
Zadanie 26 — Dane przestrzenne (GIS) — punkty odbioru i strefy
Zapisywanie położenia w kolumnach POINT i POLYGON, obliczanie odległości na kuli ziemskiej, wyszukiwanie najbliższego punktu odbioru i sprawdzanie, czy adres leży w strefie dostawy, oraz użycie indeksu SPATIAL.
Czas: 2 × 45 min
Zadanie 27 — Hierarchie i modele danych w bazie relacyjnej
Porównanie w praktyce sposobów zapisu hierarchii (lista sąsiedztwa, ścieżka materializowana, dokument JSON) i grafu (tabela krawędzi) w bazie relacyjnej oraz dobór modelu danych do zastosowania.
Czas: 2 × 45 min
Zadanie 28 — MongoDB — dokumenty i operacje CRUD
Zapisywanie danych jako dokumentów w kolekcjach MongoDB oraz wykonywanie operacji CRUD: wstawianie, wyszukiwanie z operatorami i projekcją, sortowanie, aktualizacja i usuwanie, także w polach zagnieżdżonych i tablicach.
Czas: 2 × 45 min
Zadanie 29 — MongoDB — agregacje i porównanie z SQL
Budowanie potoków agregacji w MongoDB ($match, $group, $sort, $project, $unwind, $lookup), porównanie ich z zapytaniami SQL na bazie sklep, użycie indeksu w MongoDB i ocena, kiedy wybrać model dokumentowy, a kiedy relacyjny.
Czas: 2 × 45 min
Zadanie 30 — Administracja serwerem bazy danych
Poznanie podstawowych czynności administratora serwera MySQL/MariaDB: odczyt i zmiana konfiguracji, praca z dziennikami, nadzór nad połączeniami, odczyt metadanych z information_schema, konserwacja tabel i zabezpieczenie kont.
Czas: 2 × 45 min
Zadanie 31 — Kopie zaawansowane i odtwarzanie do punktu w
Wykonanie pełnej kopii bazy spójnej w czasie, włączenie i odczyt dziennika binarnego oraz odtworzenie bazy po błędzie użytkownika do chwili tuż przed błędem (point-in-time recovery) z zachowaniem późniejszych poprawnych zmian.
Czas: 2 × 45 min
Zadanie 32 — Próbny egzamin INF.03 — baza danych i strona PHP
Wykonanie w 90 minut kompletnego zadania egzaminacyjnego: utworzenie bazy z pliku, zapisanie czterech zapytań ze zrzutami oraz zbudowanie strony internetowej z arkuszem stylów i skryptem PHP pobierającym dane z bazy przez mysqli.
Czas: 2 × 45 min
Zadanie 33 — Projekt końcowy cz. 1 — baza danych z logiką
Zaprojektowanie i wykonanie w zespole bazy danych dla wybranej dziedziny wraz z logiką po stronie serwera (widoki, procedura z transakcją, wyzwalacz audytu), indeksami i kontem aplikacji z minimalnymi uprawnieniami — jako podstawy aplikacji PHP w części 2.
Czas: 2 × 45 min
Zadanie 34 — Projekt końcowy cz. 2 — aplikacja PHP, kopia i
Zbudowanie w zespole prostej aplikacji PHP (PDO, zapytania przygotowane) korzystającej z bazy z części 1 przez konto z minimalnymi uprawnieniami, wykonanie i sprawdzenie kopii zapasowej, przygotowanie dokumentacji i 5-minutowej prezentacji projektu.
Czas: 2 × 45 min
Materiały 3
Nic nie znaleziono.