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, INT dla liczb całkowitych, DECIMAL(10, 2) dla cen, DATETIME dla 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

 

  1. W tabeli podrzędnej (np. „Transakcje”) dodaj nowe pole, które będzie kluczem obcym (np. „PracownikID”).
  2. W opcjach tego pola, zamiast wybierać typ danych, zaznacz opcję „Foreign Key” (FK).
  3. Pojawią się nowe opcje:
    • Referenced Table: Wybierz tabelę nadrzędną (np. „Pracownicy”).
    • Referenced Field: Wybierz pole klucza głównego z tamtej tabeli (np. „PracownikID”).
  4. 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):

  1. Pracownicy (Employees)
    • Powinna przechowywać dane o pracownikach stacji.
    • Kluczowe pola: PracownikID (PK), Imię, Nazwisko, Stanowisko (np. Kasjer, Kierownik).
  2. 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.
  3. 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? 
  4. 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: DystrybutorID powinien być nullable (móc przyjmować wartość NULL), ponieważ transakcja czysto sklepowa (np. tylko zakup kawy) nie jest powiązana z żadnym dystrybutorem.
  5. 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 TransakcjaID i ProduktID.

Zadania do wykonania:

  1. Utwórz w erd.dbdesigner.net wszystkie 5 powyższych tabel.
  2. Zdefiniuj dla nich odpowiednie pola (kolumny) wraz z typami danych.
  3. Poprawnie ustaw klucze główne (PK) dla każdej tabeli.
  4. Zdefiniuj wszystkie relacje (klucze obce – FK):
    • Pracownicy (1) -> Transakcje (N)
    • Dystrybutory (1) -> Transakcje (N) (pamiętaj o NULL)
    • Relacja N:M między Transakcje i Produkty poprzez tabelę PozycjeTransakcji.

Co należy oddać (Kryteria Oceny)

Gotowy projekt oraz pliki:

  1. Plik .png lub .pdf z czytelnym, wyeksportowanym diagramem ERD.
  2. Plik .sql wygenerowany 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).

 

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *