1. Projektowanie tabel, kluczy, kluczy obcych, powiązań między tabelami, indeksów
W programie zaprojektowaliśmy sześć tabel:
Accounts – tabela przechowująca dane o administratorze – osobie zarządzającej Inwentarzem. Zawiera 2 kolumny: login oraz password, których wartości są sprawdzane podczas logowania do systemu; wartości typu varchar o długości znaku wynoszącej 100.
Cabinets – tabela przechowujące informacje o szafach w magazynie. Zawiera 2 kolumny: barcode (int), czyli kod kreskowy szafy, oraz description (varchar), czyli opis szafy do długości 100 znaków.
Boxes – tabela obejmująca dane dotyczące pudełek przechowywanych w szafach. Zawiera 3 kolumny: barcode (int) kod kreskowy pudełka, cabinet_barcode (int) kod kreskowy szafy, w której umieszczone jest pudełko oraz description (varchar) opis pudełka do długości 100 znaków.
Items – tabela przechowują spis wszystkich przedmiotów w magazynie. Zawiera 4 kolumny: barcode (int) kod kreskowy przedmiotu, box_barcode (int) kod kreskowy pudełka, w którym umieszczony jest przedmiot, description (varchar) opis przedmiotu do długości 100 znaków oraz is_lent (bit) flaga wypożyczenia – wartość '1' oznacza Wypożyczony
, wartość '0' Dostępny.
Lent_items – tabela przechowująca dane o przedmiotach aktualnie wypożyczonych. Zawiera 2 kolumny: barcode (int) kod kreskowy wypożyczonego przedmiotu oraz description (varchar) notatka związana wypożyczeniem o długości do 100 znaków.
Last_barcode – jednokolumnowa oraz jednorekordowa tabela z kolumną barcode (int), w której przechowywany jest ostatni użyty kod kreskowy.
Kluczami głównymi dla poszczególnych tabel są: Accounts – login, Cabinets – barcode, Boxes – barcode, Items – barcode, Lent_items – barcode, Last_barcode – barcode.
Na diagramie ERD klucze oznaczone są symbolem żółtego kluczyka.
Kluczami obcymi są: Accounts – brak, Cabinets – brak, Boxes – cabinet_barcode, Items – box_barcode, Lent_items – barcode, Last_barcode – barcode.
Na diagramie ERD klucze obce oznaczone są symbolem niebieskiego hash.
Indeksami we wszystkich tabelach są klucze główne.
2. Diagram ERD w notacji Barkera/Oracle
3. Tablica krzyżowa
T1 - Items
T2 - Lent_items
T3 - Boxes
T4 - Cabinets
T5 - Accounts
T6 - Last_barcode
4. Projekt bazy w języku SQL
5. Słowniki danych
Items
Nazwa | Typ | Funkcja |
barcode | Liczba całkowita | Klucz główny – kod przedmiotu |
box_barcode | Liczba całkowita | Klucz obcy – kod kreskowy pudełka |
description | Łańcuch znaków długości 1 - 100 | Opis przedmiotu |
is_lent | Bit | Flaga wypożyczenia |
Lent_items
Nazwa | Typ | Funkcja |
item_barcode | Liczba całkowita | Klucz, klucz obcy – kod przedmiotu |
description | Łańcuch znaków długości 1 - 100 | Opis wypożyczenia |
Boxes
Nazwa | Typ | Funkcja |
barcode | Liczba całkowita | Klucz główny – kod kreskowy pudełka |
cabinet_barcode | Liczba całkowita | Klucz obcy – kod kreskowy szafy |
description | Łańcuch znaków długości 1 - 100 | Opis pudełka |
Cabinets
Nazwa | Typ | Funkcja |
barcode | Liczba całkowita | Klucz główny – kod kreskowy szafy |
description | Łańcuch znaków długości 1 - 100 | Opis szafy |
Accounts
Nazwa | Typ | Funkcja |
login | Łańcuch znaków długości 1-100 | Klucz główny - nazwa administratora |
password | Łańcuch znaków długości 1-100 | Hasło administratora |
Last_barcode
Nazwa | Typ | Funkcja |
barcode | Liczba całkowita | Ostatni wydrukowany kod kreskowy |
6. Analiza zależności funkcyjnych i normalizacja tabel
Pierwsza postać normalna 1NF – każda składowa w każdej tabeli jest elementarna (atomowa i niepodzielna) – spełnione.
Druga postać normalna 2NF – wszystkie atrybuty niekluczowe są w pełni funkcjonalnie zależne od wszystkich kluczy – spełnione.
Trzecia postać normalna 3NF – wszystkie atrybuty niekluczowe są bezpośrednio zależne od wszystkich kluczy – spełnione.
7. Projektowanie operacji na danych
Logowanie administratora
Dodawanie nowego sprzętu do bazy
Wypożyczenie sprzętu
Przyjęcie zwróconego sprzętu
Przeniesienie sprzętu do innego pudełka
Usunięcie sprzętu
Wyświetlenie informacji o danym sprzęcie
Wyświetlenie listy wszystkich sprzętów
Wyświetlenie listy aktualnie dostępnych sprzętów
Dodanie nowego pudełka
Edycja opisu pudełka
Przeniesienie pudełka do innej szafy
Wyświetlenie listy wszystkich pudełek
Usunięcie pudełka
Dodanie nowej szafy
Edycja opisu szafy
Wyświetlenie listy wszystkich szaf
Usunięcie szafy