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



pl/dydaktyka/sbd/2012/projekty/inwentarz/logiczny.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0