INF.03 · Bazy danych i SQL
Od opisu do schematu: jak projektuje się bazę
Klient zamawia system dla wypożyczalni sprzętu narciarskiego. Dostajesz tylko opis słowny. Jakie tabele, jakie kolumny i jakie relacje, to Twoja praca projektowa, zanim otworzysz edytor SQL. Dobra baza nie powstaje przez pisanie CREATE TABLE na wyczucie, tylko w kilku uporządkowanych krokach.
- około 40 minut
- analiza wymagań → schemat → SQL
- wypożyczalnia sprzętu narciarskiego
Po tej lekcji: przeczytasz opis jak projektant, wskażesz w nim encje, atrybuty i relacje, ocenisz cudzy projekt i zapiszesz własny w SQL.
1 · Kolejność pracy
Najpierw rysunek, na końcu kod
Projektowanie bazy ma stałą kolejność. Pominięcie któregokolwiek z pierwszych pięciu kroków kończy się zwykle przebudowywaniem tabel w połowie projektu.
1 · Wymaganiaco mam przechowywać
Czytasz opis zdanie po zdaniu i ustalasz, jakie informacje będą potrzebne.
Na przykład w dzienniku: uczniowie, klasy, przedmioty, oceny.
2 · Encje i atrybutyrzeczy i ich cechy
Dla każdej rzeczy z opisu tworzysz encję i listę jej cech.
Na przykład UCZEŃ: imię, nazwisko, data urodzenia.
3 · Relacjejak się łączą
Ustalasz, kto z kim jest połączony i ile razy: 1:1, 1:N albo N:M.
Na przykład uczeń należy do jednej klasy (1:N).
4 · Diagram E-Rwszystko na jednym rysunku
Zbierasz kroki 2 i 3 w jeden schemat.
Na przykład prostokąty to encje, linie to relacje.
5 · Normalizacjabez powtórzeń
Sprawdzasz, czy żadne dane nie powtarzają się bez potrzeby.
Na przykład nazwa klasy zapisana raz, w tabeli Klasy.
6 · SQLdopiero teraz kod
Piszesz CREATE DATABASE i CREATE TABLE zgodnie z gotowym schematem.
Na przykład najpierw tabele nadrzędne.
2 · Kroki 1–3
Oznacz encje, atrybuty i relacje
To prawdziwy opis wymagań. Wybierz narzędzie i klikaj fragmenty tekstu: niebieskie to encje, żółte atrybuty, fioletowe relacje. Potem sprawdź swoje oznaczenia.
Najłatwiej przeoczyć relację wspomnianą w opisie tylko jednym zdaniem. Dlatego czytaj opis zdanie po zdaniu i przy każdym pytaj: czy to encja, atrybut czy relacja?
3 · Krok 6
Dopiero teraz CREATE TABLE
Po analizie schemat w SQL jest już prosty do zapisania. Zwróć uwagę na kolejność: najpierw tabele, na które inne wskazują.
CREATE TABLE Sprzet (
id_sprzetu INT AUTO_INCREMENT PRIMARY KEY,
numer_inwentarzowy VARCHAR(20) NOT NULL UNIQUE,
rodzaj VARCHAR(50) NOT NULL,
cena_za_doba DECIMAL(8,2) NOT NULL CHECK (cena_za_doba > 0)
);
CREATE TABLE Klienci (
id_klienta INT AUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(50) NOT NULL,
nazwisko VARCHAR(80) NOT NULL,
telefon VARCHAR(20) NOT NULL
);
CREATE TABLE Wypozyczenia (
id_wypozyczenia INT AUTO_INCREMENT PRIMARY KEY,
id_sprzetu INT NOT NULL,
id_klienta INT NOT NULL,
data_wypozyczenia DATE NOT NULL,
data_zwrotu DATE,
FOREIGN KEY (id_sprzetu) REFERENCES Sprzet(id_sprzetu),
FOREIGN KEY (id_klienta) REFERENCES Klienci(id_klienta)
);
Wypozyczeniato tabela pośrednicząca relacji N:M. Przechowuje też własne dane: daty.data_zwrotubezNOT NULLsprzęt, który jest jeszcze u klienta, nie ma daty zwrotu.- Typy i ograniczenia telefon jako tekst, cena jako
DECIMAL, numer inwentarzowy unikalny.
4 · Krok 5
Co jest nie tak z tym projektem?
Czasem trzeba ocenić cudzy schemat. Wskaż w każdym przypadku główny problem.
5 · Sprawdź sam siebie
Zanim oddasz projekt bazy
Projekt bazy na podstawie opisu to typowy punkt wyjścia zadania praktycznego na egzaminie (na przykład baza biura turystycznego).
Podsumowanie
Co warto zapamiętać
- Kolejność: wymagania, encje i atrybuty, relacje, diagram, normalizacja, SQL.
- Czytaj opis zdanie po zdaniu: każde mówi o encji, atrybucie albo relacji.
- Tabela pośrednicząca relacji N:M może mieć własne dane (daty, ilość).
- Jedna wielka tabela „Dane” to sygnał błędu projektu.
- SQL piszesz dopiero na gotowym schemacie.
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ę →