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.

Ta interakcja wymaga włączonego JavaScriptu.

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ą.

wypozyczalnia.sqlsql
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)
);
  1. Wypozyczenia to tabela pośrednicząca relacji N:M. Przechowuje też własne dane: daty.
  2. data_zwrotu bez NOT NULL sprzęt, który jest jeszcze u klienta, nie ma daty zwrotu.
  3. 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.

Ta interakcja wymaga włączonego JavaScriptu.

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ć

  1. Kolejność: wymagania, encje i atrybuty, relacje, diagram, normalizacja, SQL.
  2. Czytaj opis zdanie po zdaniu: każde mówi o encji, atrybucie albo relacji.
  3. Tabela pośrednicząca relacji N:M może mieć własne dane (daty, ilość).
  4. Jedna wielka tabela „Dane” to sygnał błędu projektu.
  5. 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ę →
Źródła i dalsza nauka