Zadanie Projektowe – Diagram ERD Bazy Danych „Stacja Benzynowa”
Twoim zadaniem jest zaprojektowanie i wykonanie diagramu ERD (Entity-Relationship Diagram) dla uproszczonej bazy danych stacji benzynowej. Do wykonania zadania użyjesz darmowego narzędzia online:https://erd.dbdesigner.net.
Poniżej znajdziesz instrukcję obsługi narzędzia oraz szczegółową specyfikację projektu.
Część 1: Jak używać narzędzia erd.dbdesigner.net
To narzędzie pozwala na wizualne projektowanie struktur baz danych. Oto szybki przewodnik, jak z niego korzystać:
1. Rozpoczęcie pracy:
- Wejdź na stronę https://erd.dbdesigner.net.
- Możesz pracować jako „Gość” (Guest) lub założyć darmowe konto (zalecane, jeśli chcesz zapisać projekt na później).
2. Dodawanie tabel (Encji):
- Aby dodać nową tabelę (encję), kliknij prawym przyciskiem myszy na pustym obszarze roboczym i wybierz „Add Table” (Dodaj tabelę).
- Kliknij dwukrotnie na nazwę tabeli (np. „table_1”), aby ją zmienić (np. na „Pracownicy”).
3. Dodawanie kolumn (Pól/Atrybutów):
- Kliknij na wybraną tabelę, aby ją zaznaczyć.
- W panelu po prawej stronie (lub bezpośrednio w tabeli, zależy od widoku) znajdź opcję „Add Field” lub kliknij na ikonę
+wewnątrz tabeli. - Wpisz nazwę pola (np. „Imie”).
- Wybierz odpowiedni typ danych (np.
VARCHAR(100)dla tekstu,INTdla liczb całkowitych,DECIMAL(10, 2)dla cen,DATETIMEdla daty i godziny).
4. Ustawianie Klucza Głównego (PK – Primary Key):
- Przy polu, które ma być kluczem głównym (np. „PracownikID”):
- Zaznacz opcję „PK” (Primary Key).
- Często warto też zaznaczyć „AI” (Auto Increment), co oznacza, że numer ID będzie nadawany automatycznie.
5. Tworzenie relacji (Kluczy Obcych / FK – Foreign Key): Relacje pokazują, jak tabele łączą się ze sobą. Np. jeśli jedna Transakcja jest obsługiwana przez jednego Pracownika
- W tabeli podrzędnej (np. „Transakcje”) dodaj nowe pole, które będzie kluczem obcym (np. „PracownikID”).
- W opcjach tego pola, zamiast wybierać typ danych, zaznacz opcję „Foreign Key” (FK).
- Pojawią się nowe opcje:
- Referenced Table: Wybierz tabelę nadrzędną (np. „Pracownicy”).
- Referenced Field: Wybierz pole klucza głównego z tamtej tabeli (np. „PracownikID”).
- Narzędzie automatycznie narysuje linię relacji między tabelami.
6. Zapisywanie i Eksport:
- W górnym menu znajdziesz opcje „Project” lub „File”.
- Możesz zapisać swój projekt (jeśli masz konto).
- Aby oddać zadanie, użyj opcji „Export”. Będziesz potrzebować dwóch eksportów:
- Export as PNG (lub PDF) – aby oddać wizualny diagram.
- Export as SQL (np. MySQL lub PostgreSQL) – aby oddać kod do utworzenia bazy.
Część 2: Opis Zadania – Baza Danych „Stacja Benzynowa”
Zaprojektuj diagram ERD, który będzie modelem dla bazy danych zbierającej informacje o sprzedaży na stacji benzynowej. Baza musi uwzględniać sprzedaż paliw oraz produktów sklepowych.
Wymagane Encje (Tabele):
- Pracownicy (Employees)
- Powinna przechowywać dane o pracownikach stacji.
- Kluczowe pola:
PracownikID(PK), Imię, Nazwisko, Stanowisko (np. Kasjer, Kierownik).
- Produkty (Products)
- Tabela ta przechowuje wszystkie towary – zarówno paliwa, jak i produkty ze sklepu (kawa, hot-dog, płyn do spryskiwaczy).
- Kluczowe pola:
ProduktID(PK), NazwaProduktu, CenaJednostkowa, JednostkaMiary (np. „szt.”, „litr”). - Wskazówka: Możesz dodać pole
CzyPaliwo(typu Boolean/BOOL), aby łatwo odróżnić paliwa od reszty asortymentu.
- Dystrybutory (Pumps)
- Informacje o dystrybutorach paliwa na stacji.
- Kluczowe pola:
DystrybutorID(PK), NumerStanowiska. - Pytanie do przemyślenia: Jak powiązać dystrybutor z konkretnym typem paliwa?
- Transakcje (Transactions/Receipts)
- Główna tabela „paragonów”. Rejestruje każdą operację sprzedaży.
- Kluczowe pola:
TransakcjaID(PK), DataGodzina,PracownikID(FK do tabeli Pracownicy),DystrybutorID(FK do tabeli Dystrybutory). - Wskazówka:
DystrybutorIDpowinien być nullable (móc przyjmować wartość NULL), ponieważ transakcja czysto sklepowa (np. tylko zakup kawy) nie jest powiązana z żadnym dystrybutorem.
- PozycjeTransakcji (Transaction_Items)
- Tabela łącząca. Jest niezbędna, ponieważ jedna transakcja (jeden paragon) może zawierać wiele produktów (np. 30l paliwa, 1x kawę, 2x hot-dogi). Jest to relacja Wiele-do-Wielu (N:M) między Transakcjami a Produktami.
- Kluczowe pola:
TransakcjaID(PK + FK do tabeli Transakcje),ProduktID(PK + FK do tabeli Produkty), Ilość. - Wskazówka: Kluczem głównym tej tabeli jest klucz złożony (composite key) składający się z
TransakcjaIDiProduktID.
Zadania do wykonania:
- Utwórz w
erd.dbdesigner.netwszystkie 5 powyższych tabel. - Zdefiniuj dla nich odpowiednie pola (kolumny) wraz z typami danych.
- Poprawnie ustaw klucze główne (PK) dla każdej tabeli.
- Zdefiniuj wszystkie relacje (klucze obce – FK):
Pracownicy(1) ->Transakcje(N)Dystrybutory(1) ->Transakcje(N) (pamiętaj o NULL)- Relacja N:M między
TransakcjeiProduktypoprzez tabelęPozycjeTransakcji.
Co należy oddać (Kryteria Oceny)
Gotowy projekt oraz pliki:
- Plik
.pnglub.pdfz czytelnym, wyeksportowanym diagramem ERD. - Plik
.sqlwygenerowany przez narzędzie (Export -> SQL).
Oceniane będą: poprawność identyfikacji encji i atrybutów, prawidłowe zastosowanie kluczy głównych i obcych oraz poprawne zdefiniowanie wszystkich relacji (szczególnie relacji N:M).
