INF.03 · Bazy danych i SQL
Sklep komputerowy, część 1: zaprojektuj i utwórz bazę
Prowadzisz sklep internetowy ze sprzętem komputerowym i potrzebujesz bazy do zarządzania ofertą i klientami. To pierwsze z serii zadań praktycznych: zbudujesz tę bazę od podstaw, a każde następne zadanie będzie na niej pracować i dokładać nową umiejętność. Tak wygląda praca nad prawdziwym projektem: krok po kroku.
- około 40 minut
- CREATE DATABASE · CREATE TABLE
- projekt w pięciu częściach
Po tej lekcji: utworzysz bazę sklep_komputerowy z czterema powiązanymi tabelami, kluczami i podstawowymi więzami integralności.
1 · Sytuacja
Cztery tabele i dokładne nazwy
Zbuduj bazę dla sklepu internetowego. Trzymaj się podanych nazw tabel i kolumn, bo kolejne zadania i zapytania kontrolne opierają się na nich.
Na tym etapie nie wypełniasz tabel danymi. To zadanie na część 2. Planuj kolejność: tabela z kluczem obcym musi powstać po tabeli, na którą wskazuje.
Schemat tabel do utworzenia
| Tabela | Kolumny i ograniczenia |
|---|---|
Kategorie | id_kategorii (klucz główny, numerowany automatycznie), nazwa (tekst do 60 znaków, obowiązkowy, unikalny) |
Producenci | id_producenta (klucz główny, automatyczny), nazwa (do 80 znaków, obowiązkowa), kraj (do 60 znaków, obowiązkowy) |
Produkty | id_produktu (klucz główny, automatyczny), nazwa (do 120 znaków, obowiązkowa), cena (DECIMAL(10,2), obowiązkowa, większa od 0), ilosc_magazyn (liczba całkowita, obowiązkowa, domyślnie 0), id_kategorii (obowiązkowy klucz obcy do Kategorie), id_producenta (obowiązkowy klucz obcy do Producenci) |
Klienci | id_klienta (klucz główny, automatyczny), imie (do 50 znaków, obowiązkowe), nazwisko (do 80, obowiązkowe), email (do 120, obowiązkowy, unikalny), telefon (do 20 znaków, opcjonalny) |
2 · Do wykonania
Zadania do wykonania
Wykonaj pierwsze cztery kroki jako skrypt w zakładce SQL, a potem zadania kontrolne. Przy każdym zobaczysz oczekiwany wynik.
-
Utwórz bazę
sklep_komputerowyz kodowaniemutf8mb4i wybierz ją (USE).Oczekiwany wynikSHOW DATABASES; zawiera sklep_komputerowy -
Utwórz tabele
KategorieiProducenci(nie mają kluczy obcych, więc ich kolejność jest dowolna).Oczekiwany wynikdwie tabele bez błędu -
Utwórz tabelę
Produktyz dwoma kluczami obcymi i ograniczeniemCHECK (cena > 0).Powstanie dopiero po tabelach, na które wskazuje.Oczekiwany wyniktabela powstała bez błędu -
Utwórz tabelę
Klienciz unikalnym adresem e-mail.Oczekiwany wyniktabela powstała bez błędu -
Wykonaj
SHOW TABLES;.Oczekiwany wynik4 wiersze -
Wykonaj
SELECT * FROM Produkty;. Tabele są puste, ale zapytanie nie może zgłaszać błędu.Oczekiwany wynikpusty wynik (0 wierszy) -
Wykonaj
DESCRIBE Produkty;i policz kolumny.Oczekiwany wynik6 wierszy -
Wykonaj
DESCRIBE Klienci;i policz kolumny.Oczekiwany wynik5 wierszy
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.
4 · Zanim się pomylisz
Trzy pomyłki przy tworzeniu bazy
Rozwiń każdą z nich.
Tabela z kluczem obcym utworzona za wcześnie
CREATE TABLE Produkty (
...,
FOREIGN KEY (id_kategorii) REFERENCES Kategorie(id_kategorii)
);
-- Kategorie jeszcze nie istniejeBłąd: baza nie może otworzyć tabeli, do której wskazuje klucz obcy (w MySQL ERROR 1824, w MariaDB ERROR 1005).
CREATE TABLE Kategorie (...);
CREATE TABLE Producenci (...);
CREATE TABLE Produkty (...);Najpierw tabele nadrzędne, potem podrzędne.
Brak UNIQUE na adresie e-mail
email VARCHAR(120) NOT NULLBaza pozwoli dodać dwóch klientów z tym samym adresem.
email VARCHAR(120) NOT NULL UNIQUEUNIQUE dodasz przy kolumnie albo później przez ALTER TABLE.
Literówka w nazwie kolumny klucza obcego
FOREIGN KEY (id_kategoria) REFERENCES Kategorie(id_kategorii)Błąd: nazwa kolumny w Produkty nie istnieje albo nie pasuje do tej, na którą wskazujesz.
FOREIGN KEY (id_kategorii) REFERENCES Kategorie(id_kategorii)Sprawdź pisownię po obu stronach: id_kategorii, a nie id_kategoria.
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ć
- Tabele nadrzędne tworzysz przed podrzędnymi.
NOT NULL,UNIQUE,CHECKi klucze obce pilnują danych od pierwszego dnia.- Trzymaj się ustalonych nazw: kolejne zadania na nich polegają.
- Po utworzeniu struktury sprawdź ją
SHOW TABLESiDESCRIBE.
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ę →