Dataczwartek, 13 sierpnia 2026 Czas17:43:23
← Zadania praktyczne

Zadanie 1: Sklep komputerowy — projekt i utworzenie bazy danych (CREATE)

Podstawowy

Po co się tego uczymy?

To pierwsze z serii dwudziestu zadań praktycznych — zbudujesz od podstaw bazę danych sklepu komputerowego, a każde kolejne zadanie będzie pracować na tej samej bazie, dokładając nowe umiejętności. To dokładnie tak wygląda praca z bazą danych w prawdziwym projekcie: nie robi się wszystkiego naraz, tylko rozbudowuje krok po kroku.

Treść zadania

Scenariusz: Prowadzisz sklep internetowy ze sprzętem komputerowym. Potrzebujesz bazy danych do zarządzania ofertą i klientami. To pierwsze z dwudziestu zadań praktycznych — każde kolejne będzie pracować na tej samej bazie.

Do wykonania:
1. Utwórz bazę danych o nazwie sklep_komputerowy.
2. Utwórz tabelę Kategorie (id, nazwa).
3. Utwórz tabelę Producenci (id, nazwa, kraj pochodzenia).
4. Utwórz tabelę Produkty (id, nazwa, cena, ilość na magazynie, klucz obcy do kategorii i do producenta).
5. Utwórz tabelę Klienci (id, imię, nazwisko, e-mail unikalny, telefon).
6. Zadbaj o właściwe typy danych i podstawowe więzy integralności: klucze główne, klucze obce, NOT NULL tam, gdzie dane zawsze muszą wystąpić, CHECK pilnujący dodatniej ceny.
7. Na razie NIE wypełniaj tabel danymi — tym zajmiesz się w Zadaniu 2.

Schemat

Kategorie   1 ──── * Produkty
Producenci  1 ──── * Produkty

Klienci     (na razie bez powiązań — relacja pojawi się w Zadaniu 5)

Jak zabrać się do zadania

1. Otwórz phpMyAdmin i kliknij "Nowa", żeby założyć bazę o podanej nazwie.
2. Przejdź do zakładki SQL tej bazy — tam będziesz pisać polecenia.
3. Zaplanuj na kartce kolejność tworzenia tabel: tabela z kluczem obcym MUSI powstać PO tabeli, na którą wskazuje.
4. Napisz CREATE TABLE dla Kategorie i Producenci jako pierwsze — nie mają kluczy obcych, więc kolejność między nimi jest dowolna.
5. Dopiero potem napisz CREATE TABLE Produkty, odwołując się kluczami obcymi do obu poprzednich tabel.
6. Na końcu dodaj tabelę Klienci (na tym etapie niezależną od reszty).
7. Wykonaj cały skrypt na raz i sprawdź w lewym panelu phpMyAdmin, że powstały dokładnie 4 tabele.

Jak powinien wyglądać efekt

Po wykonaniu zadania w lewym panelu phpMyAdmin, w bazie sklep_komputerowy, zobaczysz listę tabel:

+------------------------------+
| Tables_in_sklep_komputerowy  |
+------------------------------+
| Kategorie                    |
| Klienci                      |
| Producenci                   |
| Produkty                     |
+------------------------------+

Każda tabela jest pusta (0 wierszy), ale ma poprawną listę kolumn widoczną w zakładce "Struktura". Próba SELECT * FROM Produkty; da w tym momencie pusty wynik:

Empty set (0.00 sec)

To normalne — dane uzupełnisz dopiero w Zadaniu 2.

Typowe problemy i jak sobie z nimi poradzić

Tabela z kluczem obcym utworzona za wcześnie. Co się stało: próba CREATE TABLE Produkty przed Kategorie i Producenci kończy się błędem. Dlaczego: FOREIGN KEY musi wskazywać na już istniejącą tabelę. Jak naprawić: usuń (DROP TABLE) niepełną tabelę i utwórz ją ponownie, dopiero po utworzeniu tabel nadrzędnych.

Brak UNIQUE na e-mailu klienta. Co się stało: baza pozwala dodać dwóch klientów z tym samym adresem e-mail. Dlaczego: kolumna email nie ma więzu UNIQUE. Jak naprawić: dodaj UNIQUE przy definicji kolumny albo później przez ALTER TABLE.

Literówka w nazwie kolumny klucza obcego. Co się stało: FOREIGN KEY (id_kategoria) REFERENCES Kategorie(id_kategorii) zgłasza błąd. Dlaczego: nazwa kolumny w Produkty musi dokładnie odpowiadać kolumnie, na którą wskazujesz. Jak naprawić: sprawdź pisownię po obu stronach — id_kategorii, nie id_kategoria.

Nawiązanie do egzaminu zawodowego

To ćwiczenie realizuje efekty INF.03.4.1 ("posługuje się pojęciami dotyczącymi baz danych") i INF.03.4.5 ("tworzy relacyjne bazy danych zgodnie z projektem") — dokładnie ten etap pracy, od którego zaczyna się część praktyczna prawdziwego egzaminu.

Kryteria sukcesu — sprawdź, czy wykonałeś zadanie poprawnie

Po wykonaniu zadania sprawdź, czy:
1. baza sklep_komputerowy istnieje i jest widoczna w lewym panelu phpMyAdmin,
2. masz dokładnie 4 tabele: Kategorie, Producenci, Produkty, Klienci,
3. w tabeli Produkty widoczne są dwa klucze obce (id_kategorii, id_producenta) w zakładce "Struktura",
4. każda tabela ma ustawiony klucz główny (ikona klucza przy odpowiedniej kolumnie),
5. żadna z tabel nie zgłasza błędu przy próbie otwarcia zakładki "Przeglądaj" (powinny być puste, ale bez błędu).

Rozwiązanie — zajrzyj tu dopiero na końcu

To jest rozwiązanie wzorcowe. Zajrzyj tu dopiero wtedy, gdy samodzielnie spróbujesz wykonać zadanie. Nie kopiuj kodu bezmyślnie — przepisanie go ręcznie pomaga zapamiętać składnię i kolejność działań. Kod jest celowo zablokowany do kopiowania.