Systém SVAF pro malou videopůjčovnu.
Vedoucí a analytik : Jiří Meixner
Analytik : Jan Žďárek
Programátor PHP : Radek Brettschneider
Programátor Delphi : Josef Lottes
WWW dokumentace a programátor : Pavel Šubrt
Konceptuální datový model – E-R diagram
Diagram datových toků - dataflow
Cílem projektu je vytvořit jednoduchý systém SVAF pro evidenci videokazet v běžné domácnosti a malé videopůjčovně. Systém bude nabízet výběr filmů dle zadaných kritérií a jednoduchý přehled o výpůjčkách a rezervacích.
Systém bude založen na architektuře Client – Server pro jeho domácí využití pod OS Windows a k databázi bude přistupovat přes ODBC ovladače. Kompletní systém videopůjčovny bude realizován přes webové rozhraní pomocí PHP taktéž na databázi MS Access. Server jako databázový stroj a klient bude na kvalitním grafickém rozhraní.
Systém SVAF bude pracovat s videokazetami dané délky a typu, na kterých je nahrán jeden nebo více filmů. U filmu se budou sledovat různá data. Jméno filmu, délka, typ nahrávaní (SP/LP), žánr, charakteristické osoby pro film. K filmu také půjde doplnit vlastní poznámka.
Nad takovouto databází se bude provádět vyhledávání dle zadaných kritérií. Jako například dle jména herce, režiséra, filmu, žánru či specifikované délky a to s možností zadat více kritérií najednou. Pro část půjčovny zde budou informace o zákaznících, výpůjčkách kazet a rezervace filmů. U zákazníka se budou sledovat identifikační data, celková suma za výpůjčné a celkový počet vypůjčených kazet. Samozřejmě se budou také u každého zákazníka evidovat aktuální vypůjčené kazety a rezervované kazety. Ve výpůjčkách se bude sledovat jaká kazeta byla půjčena, kdy, komu, za jakou cenu a kdy bude vrácena. Systém bude pro zákazníka nabízet i rezervaci filmu na daný den.
Systém videopůjčovny bude realizován přes www rozhraní a budou zajištěny dva různé přístupy do systému. Administrátorský přístup, který bude moci přistupovat ke všem položkám v databázi a uživatelský – zákaznický přístup, který bude mít přístup k databázi omezen. Zákazník si bude moci prohlížet databázi filmů a kazet a rezervovat si film. Také si bude moci prohlížet svoje statistické data o výpůjčkách. Zákazník si bude moci prohlížet databázi filmů a kazet také za pomoci speciálního programu off-line. Databázi uloženou na svém disku si bude moci přes daný program aktualizovat, za předpokladu, že je připojen na www server videopůjčovny.

Datový slovník



| Kód entity | Definice entity | 
| zanr | Informace o žánru filmu | 
| film | Informace o filmu | 
| kazeta | Informace o kazetě | 
| dela | Informace o roli charakteristické osoby ve filmu | 
| osoba | Informace o charakteristické osobě filmu | 
| zakaznik | Informace o zákazníkovi | 
| rezervace | Informace o rezervaci | 
| vypujcka | Informace o výpůjčce | 
| Entita | Card. --> | <-- Card. | Entita | 
| film | 1:N | 1:1 | zanr | 
| film | 0:N | 1:1 | dela | 
| film | 1:1 | 1:N | kazeta | 
| film | 0:N | 1:1 | rezervace | 
| dela | 1:1 | 1:N | osoba | 
| rezervace | 1:1 | 0:N | Zakaznik | 
| vypujcka | 1:1 | 1:N | Zakaznik | 
| vypujcka | 1:1 | 0:N | Kazeta | 
| Entita | Kód | Datový typ | Vlastnosti | Definice | 
| zanr | typ_zanru | DB_TEXT(40) | PK | Řetězec se pojmenováním žánru | 
| 
 | id_f | DB_INTEGER | PK-FK | ID filmu s daným žánrem | 
| film | jmeno | DB_TEXT(40) | NOTNULL | Jméno filmu | 
| 
 | delka | DB_INTEGER | NOTNULL | Délka filmu v minutách | 
| 
 | lp | DB_INTEGER | NOTNULL | Kvalita nahrání LP/SP/EP | 
| 
 | poznamka | DB_MEMO | NULL | Poznámka | 
| 
 | jmeno2 | DB_TEXT(40) | NULL | Druhé nebo originální jméno filmu | 
| 
 | id_f | DB_INTEGER | PK | ID filmu | 
| 
 | id_k | DB_INTEGER | FK-NOTNULL | ID kazety, na které se film vyskytuje | 
| kazeta | delka | DB_INTEGER | NULL | Délka média při maximální kvalitě v minutách | 
| 
 | typ | DB_TEXT(20) | NULL | Druh / typ / značka média | 
| 
 | id_k | DB_INTEGER | PK | ID kazety | 
| dela | role | DB_TEXT(1) | NOTNULL | Role osoby v daném filmu Herec/Reziser/Skladatel | 
| 
 | id_f | DB_INTEGER | FK-NOTNULL | ID filmu pro danou osobu | 
| 
 | id_o | DB_INTEGER | FK-NOTNULL | ID osoby pro dany film | 
| osoba | jmeno_o | DB_TEXT(20) | NULL | Jméno osoby | 
| 
 | primeni_o | DB_TEXT(50) | NOTNULL | Příjmení nebo umělecké jméno osoby | 
| 
 | id_o | DB_INTEGER | PK | ID osoby | 
| zakaznik | jmeno_z | DB_TEXT(20) | NOTNULL | Jméno zákazníka | 
| 
 | prijmeni_z | DB_TEXT(40) | NOTNULL | Příjmení zákazníka | 
| 
 | ulice | DB_TEXT(40) | NULL | Ulice | 
| 
 | cp | DB_INTEGER | NOTNULL | Číslo popisné | 
| 
 | mesto | DB_TEXT(40) | NOTNULL | Město | 
| 
 | psc | DB_TEXT(5) | NULL | PSČ | 
| 
 | tel | DB_TEXT(15) | NULL | Telefonní číslo | 
| 
 | login | DB_TEXT(20) | UNIQ | Uživatelské jméno pro přístup do SVAF přes WWW | 
| 
 | heslo | DB_TEXT(20) | NOTNULL | Heslo zákazníka pro přístup do SVAF přes WWW | 
| 
 | id_z | DB_INTEGER | PK | ID zákazníka | 
| rezervace | nakdy | DB_DATE | NOTNULL | Datum, nakdy se film rezervuje | 
| 
 | id_r | DB_INTEGER | PK | ID rezervace | 
| 
 | id_f | DB_INTEGER | FK-NOTNULL | ID filmu, který si zákazník rezervuje | 
| 
 | id_z | DB_INTEGER | FK-NOTNULL | ID zákazníka, který si rezervuje daný film | 
| vypujcka | pujceno | DB_DATE | NOTNULL | Datum výpůjčky kazety | 
| 
 | vraceno | DB_DATE | NOTNULL | Datum smluveného vrácení kazety | 
| 
 | cena | DB_CURRENCY | NOTNULL | Cena výpůčky | 
| 
 | id_v | DB_INTEGER | PK | ID výpůjčky | 
| 
 | id_k | DB_INTEGER | FK-NOTNULL | ID půjčované kazety | 
| 
 | id_z | DB_INTEGER | FK-NOTNULL | ID zákazníka, který si půjčuje kazetu | 
Operace: správa uživatelských účtů
Popis: administrátor má výhradní právo měnit uživatelské účty DB.
 Čte:
Čte:
Mění: příslušnou systémovou tabulku DB
Posílá:
Předpokládá: nainstalovanou a funkční DB
Výsledek: požadovaná změna v DB provedena.
Operace: připojení k WWW rozhraní
Popis: zákazník se pomocí WWW prohlížeče připojí k webovému rozhraní aplikace SVAF
 Čte:
zakaznik
Čte:
zakaznik
Mění:
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený účet uživatele
Výsledek: úspěšné připojení nebo odmítnutí přístupu.
Operace: prohlížení údajů o filmech
Popis: zákazník si může prohlížet současnou nabídku videopůjčovny
 Čte:
kazeta, film, zanr, dela, osoba
Čte:
kazeta, film, zanr, dela, osoba
Mění:
Posílá:
Předpokládá: úspěšné připojení k SVAF rozhraní
Výsledek: zobrazení požadovaných údajů.
Operace: prohlížení rezervace
Popis: uživatel si může prohlížet svoje rezervace filmů
 Čte:
rezervace, film, kazeta, zakaznik
Čte:
rezervace, film, kazeta, zakaznik
Mění:
Posílá:
Předpokládá: úspěšné připojení k SVAF rozhraní
Výsledek: zobrazení požadovaných údajů nebo zobrazení informace o tom, že daný uživatel nemá nic rezervováno.
Operace: provedení rezervace
Popis: uživatel si může rezervovat film
 Čte:
rezervace, kazeta, film, zakaznik
Čte:
rezervace, kazeta, film, zakaznik
Mění: rezervace
Posílá:
Předpokládá: úspěšné připojení k SVAF rozhraní
Výsledek: zobrazení informace potvrzující úspěšnou rezervaci, nebo odmítnutí rezervace.
Operace: prohlížení výpůjček
Popis: uživatel si může prohlížet svoje výpůjčky kazet
 Čte:
vypujcka, kazeta, film, zakaznik
Čte:
vypujcka, kazeta, film, zakaznik
Mění:
Posílá:
Předpokládá: úspěšné připojení k SVAF rozhraní
Výsledek: zobrazení požadovaných údajů nebo zobrazení informace o tom, že daný uživatel nemá nic vypůjčeno.
Operace: vytvoření údajů zákazníka
Popis: obsluha ve videopůjčovně registruje nového zákazníka
 Čte:
zakaznik
Čte:
zakaznik
Mění: zakaznik
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený a funkční uživatelský účet obsluhy v DB
Výsledek: zadané údaje se zapíší do tabulky zákazníků a nový zákazník nyní může využít služeb videopůjčovny, případně přistupovat k našim WWW stránkám.
Operace: změna údajů zákazníka
Popis: obsluha ve videopůjčovně provede změny v údajích zákazníka, případně jeho odstranění z DB
 Čte:
zakaznik
Čte:
zakaznik
Mění: zakaznik
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený a funkční uživatelský účet obsluhy v DB
Výsledek: změněné údaje se zapíší do tabulky zákazníků, byl-li zákazník zrušen, ztrácí možnost vyžívat našich služeb a tím i přístup k WWW stránkám.
Operace: vytvoření / změna údajů filmu
Popis: obsluha vytváří / upravuje film v naší evidenci
 Čte:
film, zanr, dela, osoba
Čte:
film, zanr, dela, osoba
Mění: film, zanr, dela, osoba
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený a funkční uživatelský účet obsluhy v DB
Výsledek: vložené údaje o filmu a jeho žánru, pokud ještě není v evidenci, a případně o osobách, se zapíše do databáze.
Operace: vytvoření / změna údajů kazety
Popis: obsluha vytváří / mění údaje o kazetě
 Čte:
kazeta, film
Čte:
kazeta, film
Mění: kazeta
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený a funkční uživatelský účet obsluhy v DB
Výsledek: vložené údaje o kazetě se zapíší do DB.
Operace: prohlížení rezervace filmu
Popis: obsluha zjišťuje rezervace filmu
 Čte:
rezervace, zakaznik, film, kazeta
Čte:
rezervace, zakaznik, film, kazeta
Mění: rezervace
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený a funkční uživatelský účet obsluhy v DB
Výsledek: zobrazí se co a na kdy je rezervováno kterému zákazníkovi.
Operace: provedení rezervace
Popis: obsluha rezervuje zákazníkovi film
 Čte:
rezervace, kazeta, film, zakaznik
Čte:
rezervace, kazeta, film, zakaznik
Mění: rezervace
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený a funkční uživatelský účet obsluhy v DB, vybraná kazeta není vypůjčena ani rezervována.
Výsledek: zobrazení informace potvrzující úspěšnou rezervaci nebo odmítnutí rezervace.
Operace: prohlížení výpůjček
Popis: obsluha zjišťuje provedené výpůjčky
 Čte:
rezervace, zakaznik, film, kazeta, vypujcka
Čte:
rezervace, zakaznik, film, kazeta, vypujcka
Mění:
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený a funkční uživatelský účet obsluhy v DB
Výsledek: zobrazí se co a odkdy je půjčeno kterému zákazníkovi.
Operace: provedení výpůjčky kazety
Popis: obsluha zaznamenává vypůjčení kazety zákazníkovi
 Čte:
vypujcka, rezervace, zakaznik, kazeta, film
Čte:
vypujcka, rezervace, zakaznik, kazeta, film
Mění: vypujcka, rezervace
Posílá:
Předpokládá: nainstalovanou a funkční DB, vytvořený a funkční uživatelský účet obsluhy v DB, vybraná kazeta není vypůjčena ani rezervována jinému zákazníkovi.
Výsledek: je-li na kazetu rezervace, je odstraněna a kazeta je v DB vedena jako vypůjčená.


Připojení k WWW rozhraní SVAF

Prohlížení údajů o filmech zákazníkem

Prohlížení / provedení / zrušení rezervace zákazníkem

Prohlížení výpůjček zákazníkem/obsluhou

Vytvoření / prohlížení / změna údajů zákazníka obsluhou

Vytvoření / prohlížení / změna údajů filmu obsluhou

Vytvoření / prohlížení / změna údajů kazety obsluhou

Prohlížení / provedení / zrušení rezervace obsluhou

Evidence výpůjček kazet

| Zdroj | Vedoucí | Analytik | PHP prog. | Delphi prog. | Dokument. | 
| Úkol | Meixner Jiří | Žďárek Jan | Brettschneid | Lottes Josef | Šubrt Pavel | 
| Deklarace záměru | PSO | 
 | 
 | 
 | 
 | 
| Odborný článek | PSO | 
 | 
 | 
 | 
 | 
| Diagram kontextu | S | PO | 
 | 
 | 
 | 
| Harmonogram | PSO | 
 | 
 | 
 | 
 | 
| Úprava úvodní studie | PSO | PO | 
 | 
 | 
 | 
| Odevzdání úvodní studie | SO | 
 | 
 | 
 | 
 | 
| Detailní plán analýzy | PSO | PO | 
 | 
 | 
 | 
| Datový model | PSO | 
 | K | K | 
 | 
| Funkční model | S | PO | 
 | 
 | 
 | 
| Datový slovník | S | 
 | 
 | 
 | PO | 
| Úprava analytické studie | PSO | PO | 
 | 
 | 
 | 
| Odevzdání analytické studie | SO | 
 | 
 | 
 | 
 | 
| Návrh reprezentace dat | PSO | 
 | K | K | 
 | 
| Návrh uživatelského prostředí | S | 
 | PO | PO | PO | 
| Plán testování – akce AT | PSO | K | K | K | 
 | 
| WWW dokumentace | S | 
 | 
 | 
 | PO | 
| Implementace videopůjčovny | 
 | 
 | PSO | 
 | K | 
| Implementace prohlížeče | 
 | 
 | 
 | PSO | K | 
| Implementace prostředí Vpůjč. | S | 
 | K | 
 | PO | 
| Instalační příručka Vpůjč. | 
 | 
 | PSO | 
 | 
 | 
| Instalační příručka prohlížeče | 
 | 
 | 
 | PSO | 
 | 
| WWW verze instal.příruček | S | 
 | 
 | 
 | PO | 
| Uživatelské příručky | 
 | 
 | 
 | 
 | PSO | 
| Oponentura na cizí projekt | 
 | 
 | 
 | 
 | PSO | 
| Odevzdání projektu | SO | O | O | O | O | 
P ... provádí O ... je odpovědný S ... schvaluje K ... konzultuje