Przeczytaj
Temat projektu
Celem naszego projektu jest utworzenie bazy danych, która pozwoli na zarządzenie i przechowywanie danych pewnej restauracji.
Baza ta musi umożliwiać:
dodawanie i usuwanie dań z menu,
dodawanie i usuwanie zamówień,
utworzenie rezerwacji,
zarządzanie listą klientów,
przechowywanie informacji o dostępności wolnych stolików,
przyznawanie zniżek stałym klientom.
Ta lista nie jest jeszcze oczywiście kompletną specyfikacją bazy danych, którą należy przygotować. W praktyce dokładny wzorzec bazy powstaje dopiero w trakcie jej tworzenia i w ramach ciągłej komunikacji z zamawiającym.
Schemat tworzenia bazy danych
Tworzenie bazy danych nie ogranicza się wyłącznie do programowania. Wymaga konsultacji ze zleceniodawcą, przygotowania schematów relacji oraz znormalizowania baz danych, zanim przystąpimy do utworzenia pierwszej tabeli.
Kolejne kroki schematu tworzenia baz danych to:
analiza wymagań zleceniodawcy,
utworzenie diagramu ER,
normalizacja bazy danych,
utworzenie tabel,
dodanie warunków integralności,
interfejs bazy, np. aplikacja internetowa,
dokumentacja projektu.
Przeanalizujmy te etapy, aby lepiej je zrozumieć.
Analiza wymagań
Analiza wymagań polega na opisaniu funkcjonalnościfunkcjonalności i zawartości bazy danych, np. w pliku tekstowym. Dokument powinien zostać wysłany do zleceniodawcy, aby mógł on ocenić, czy w projekcie czegoś nie brakuje.
Warto zwrócić szczególną uwagę na analizę wymagań, gdyż jest to kluczowy etap projektu, decydujący o jego dalszym przebiegu.
Ponieważ nie mamy tu możliwości przeprowadzenia rzeczywistej rozmowy ze zleceniodawcą, etap analizy wymagań jest nieco uproszczony, a wymagania zostaną przedstawione w audiobooku, w odrębnej sekcji tego e‑materiału.
Diagram ER
Diagram ER to schemat teoretyczny bazy danych. Umożliwia określenie, jakie tabele będą w niej potrzebne i jakie powinny zachodzić pomiędzy nimi relacje.
Najczęściej przedstawiamy go w formie graficznej. Tabele reprezentowane są przez wielokąty, a relacje to łączące je odcinki.
Taki diagram relacji znacznie ułatwia planowanie oraz implementację, a dodatkowo pozwala łatwo dostrzec ewentualne błędy i powtórzenia w schemacie bazy.
Oto przykładowy fragment diagramu ER:

Więcej informacji o technikach tworzenia diagramów ER znajdziesz w II etapie tworzenia projektu bazy danychII etapie tworzenia projektu bazy danych.
Normalizacja
Normalizacja to proces polegający na zmniejszaniu liczby powtórzeń informacji w bazie danych.
Ma ona wiele zalet, m.in. zminimalizowanie ryzyka pojawienia się sprzecznych informacji w bazie oraz zmniejszenie zajmowanej przez bazę pamięci. Odbywa się to jednak kosztem zwiększenia złożoności obliczeniowej zapytań realizowanych przez bazę.
W praktyce normalizacja polega na dostosowywaniu kolumn w tabelach tak, aby spełniały konkretne wymagania zwane „postaciami normalnymi”.
Normalizacja jest złożonym zagadnieniem – szczegółowo zostało ono omówione w serii e‑materiałów dotyczących normalizacji baz danych:
Normalizacja baz danych, etap INormalizacja baz danych, etap I,
Normalizacja baz danych, etap IINormalizacja baz danych, etap II,
Normalizacja baz danych, etap IIINormalizacja baz danych, etap III.
Tworzenie tabel
Dopiero na tym etapie projektu programista zaczyna pracować nad tworzeniem tabel oraz relacji w języku SQL. Wcześniej koncepcja bazy się klaruje – np. tabele często są dodawane i usuwane w ramach planowania normalizacji, dlatego lepszym rozwiązaniem jest wówczas operowanie wyłącznie na schematach.
Warunki integralności
Warunki integralności to kryteria, jakie muszą spełniać dane wprowadzane do bazy. Jak wskazuje nazwa, zwiększają one integralność bazy danych, czyli zapewniają spójnośćspójność zawartych w niej informacji.
Przykładem warunku integralności jest uniemożliwienie, aby wartości w wybranych kolumnach miały wartość NO NULL
. Taki warunek nakłada się np. na identyfikatory i klucze główne.
Interfejs użytkownika
Baza danych powinna mieć prosty interfejs pozwalający na szybkie wykonywanie najczęstszych operacji.
Przykładowo: dodawanie dań powinno odbywać się przez prosty formularz. Nie można wymagać od klienta pisania kwerend w języku SQL (chociażby ze względów bezpieczeństwa).
Interfejs bazy, który stworzymy, wykorzystując język Python, umożliwi obsługę wybranych jej elementów za pomocą aplikacji internetowej.
Dokumentacja projektu
Dokumentacja powinna być tworzona już na etapie diagramu ER i rozwijać się jednocześnie z całym projektem bazy.
Musi ona zawierać informacje o tabelach zawartych w bazie danych oraz wyjaśnienie, jakie elementy świata rzeczywistego odwzorowują jej atrybuty.
Powinna także zawierać opisy wszystkich warunków integralności, funkcji i pozostałej funkcjonalności bazy.
Dokumentacja projektu ma spełniać funkcję „podręcznika” dla informatyków, którzy w przyszłości będą zajmowali się utrzymaniem i zarządzaniem tą bazą danych.
Słownik
operacje, które potrafi wykonać baza; należą do nich: funkcje, procedury, tabele oraz pozostałe elementy bazy danych
brak sprzecznych informacji w bazie