Ladislav Hofman, Jan Slavík TUL Předmět databázové systémy Notebook e-shop Ladislav Hofman, Jan Slavík TUL Předmět databázové systémy
Zadání projektu Zákazník žádá vytvořit databázi notebooků pro e-shop s notebooky. Databáze bude obsahovat tabulku notebooků, tabulku zákazníků a tabulku s informacemi o objednávce.
Realizace tabulka notebooků bude složena z cizích klíčů tabulek např. výrobce, typ, velikost displeje, procesor, RAM, HDD atd. tyto tabulky budou mít vlastní atributy, jako název, frekvence, velikost cache, počet jader, velikost HDD atd. tabulka zákazníků bude obsahovat přihlašovací jméno, zašifrované heslo, fakturační a kontaktní údaje tabulka objednávek obsahuje cizí klíče zákazníka, notebooku a dále datum objednávky, expedice, cena, zaplaceno atd.
Integritní omezení Notebook nelze přijmout do objednávky, pokud je počet kusů skladem menší než 0 Pokud je počet kusů skladem menši než 2, odešle se objednávka dodavateli Po objednání notebooku se sníží počet na skladě o počet v objednávce
Model ERD
Model DFD 0. úroveň
Model DFD 1. úroveň
Trigger – odečítání skladových zásob delimiter $$ CREATE TRIGGER odecteni AFTER INSERT ON Notebooky FOR EACH ROW BEGIN DECLARE poc int; SELECT pocet_kusu INTO poc FROM Polozka_objednavky WHERE Notebooky.Kod=New.Kod; UPDATE Notebooky SET Pocet_skladem = Pocet_skladem - poc WHERE Polozka_objednavky.Kod=Kod; END $$ delimiter ;
Procedura – registrace zákazníka delimiter $$ CREATE PROCEDURE registrace(nlogin_email varchar(50),nheslo varchar(32),nfaktur_udaje varchar(140),nkont_udaje varchar(100),nfirma tinyint(1),npocet_objednavek smallint(6)) BEGIN INSERT INTO Zakaznik(login_email,heslo,faktur_udaje,kont_udaje,firma,pocet_objednavek) VALUES (nlogin_email,nheslo,nfaktur_udaje,nkont_udaje,nfirma,npocet_objednavek); END $$ delimiter ;
Závěr Při exportu databáze z Case Studia na server se nám neuložili relace a bylo nutné je nadefinovat znovu. Databáze spravuje eshop se seznamem zákazníků, seznamu objednávek včetně údajů o expedici a platbě a katalogu jednotlivých modelů notebooků.
Děkujeme za pozornost