Michal Kec

Fakulta informatiky a statistiky

6. semestr

xkecm01@vse.cz

PM_352 00001

vypracováno 05.04.2001

Cestovní kancelář

Seminární práce z předmětu
Manažerská informatika 2

Obsah

1Popis aplikace 3

2Popis prostředí 4

3Struktura dat 7

3.1Datový model aplikace 7

3.2Pomocné tabulky 8

3.3Integrita dat 8

4Uživatelská dokumentace 9

4.1Instalace 9

4.2Spuštění 9

4.3Obsluha 9

5Literatura, zdroje dat 9

6Slovo závěrem 9

1Popis aplikace

Navrhněte aplikaci zajišťující objednávkový systém malé cestovní kanceláře. Cestovní kancelář zajišťuje pro své klienty každoročně zájezdy do několika vybraných míst v tuzemsku i cizině. Tyto zájezdy se uskutečňují v různých termínech (neboli také turnusech), které se liší především datem trvání, délkou pobytu a kapacitou, následně pak cenou.

Firma má tyto požadavky na funkce systému: Jedná se o objednávkový systém pro jednotlivé pobočky společnosti. Obsluhovat jej bude zaučená obsluha na přepážce pobočky, požadavkem tedy je intuitivní ovládání aplikace s využitím vizuálních prvků (barevné zvýraznění, tlačítka a grafické prvky). Systém musí umožňovat evidenci zákazníků a všech jejich objednávek. Dále pak bude obsahovat soupis nabízených zájezdů i vypsaných termínů (turnusů). Systém by měl umožňovat výstup na tiskárnu v podobě firemního katalogu zájezdů. Aplikace by měla podávat informace ve srozumitelné formě, aby např. bylo možno ihned zjistit kapacity i volná místa jednotlivých termínů.

2Popis prostředí

Aplikace je realizována v prostředí Microsoft Access a její ovládání je tedy obdobné ovládání jiných aplikací v prostředí Windows. Přístup do databáze je možný formou tzv. formulářů, což jsou pohledy do jednotlivých tabulek s vhodnou reprezentací uložených dat. Výpis dat z tabulek je tak uživatelsky přívětivý a přidávání nových záznamů je jednoduché.

Základním formulářem aplikace je Hlavní menu, ze kterého se otevírají ostatní formuláře. Hlavní menu se automaticky otevře při startu aplikace (to je zajištěno makrem AutoExec) a nelze jej zavřít jinak, než tlačítkem Stop, které zároveň vypne celou aplikaci (resp. ukončí MS Access). Formulář je tvořen jednotli­vými tlačítky s popisky, které otevírají další formuláře, či vykonávají jiné funkce (viz. níže).

Prvním tlačítkem Databáze zákazníků se otevře pohled do tabulky Zakaznik, která obsahuje údaje o registrovaných zákaznících. Formulář obsahuje vstupní pole pro všechny údaje, přičemž nepovinné údaje jsou zvýrazněny kurzívou. Záznamy lze procházet s pomocí šipek navigačních tlačítek, či vyhledávat odpovídající údaje po stisku klávesy Ctrl+F. Dále jsou ve formuláři tlačítka pro přidání nového záznamu, zrušení záznamu a uzavření formuláře.


Po stisknutí tlačítka Zájezdy a termíny se otevře formulář pohlížející do tabulky Zajezd. Je to nejkomplexnější formulář aplikace a obsahuje také nejvíce ovládacích prvků (včetně jednoho podformuláře). Jak již název napovídá slouží k zadávání údajů jednotlivých zájezdů, ovšem díky vloženému podformuláři lze u jednotlivých zájezdů rovnou vypisovat příslušné termíny. Formulář obsahuje některé prvky usnadňující jeho správné vyplnění. Textové pole země je doplněno o seznam, ve kterém se nabízejí státy dříve použitých destinací. Pole typ zájezdu, druh stravování, ubytování a druh dopravy jsou realizována formou seznamu, z nichž se vybírají vhodné údaje a program nepovolí zadání jiného1. Dále hlavní formulář obsahuje vstupní pole pro objekt OLE (fotografii) a memo pole pro text popisu. Tak jako formulář Zákazníci obsahuje i tento formulář tlačítka pro přidávání zájezdu, rušení zájezdu a uzavření formuláře, jakož i navigační šipky pro pohyb mezi záznamy.

Zvláštností tohoto formuláře je vložený podformulář, který k aktuálně zvolenému zájezdu zobrazuje všechny jeho termíny. Je to samostatně uložený formulář, který byl při vkládání propojen s hlavním formulářem přes primární klíč tabulky Termin. Protože je podformulář tvořen jako pohled do tabulky, je možno prostřednictvím něj jednoduše vkládat nové termíny k právě zobrazenému zájezdu, nebo editovat již existující termíny. Při vkládání nových záznamů se na úrovni databáze kontroluje integrita dat - např. nezápornost údajů cena, kapacita a délka, správný formát zadávaného data a zda datum ukazuje do budoucnosti2. Při zadávání se automaticky nabídne dnešní datum a nelze zadat starší.

Jak již název napovídá, pod třetím tlačítkem se skrývá Přehled vypsaných termínů. Jedná se o nekonečný formulář, který přehlednou formou (proto přehled) zobrazuje všechny vypsané termíny a údaje o nich. Lze zde sledovat například kapacity jednotlivých termínů a jejich obsazenost (resp. počet volných míst), či cenu termínů jednoho zájezdu v závislosti na datu konání3. Protože se jedná o pohled s výrazem, nelze v tomto formuláři přidávat nové záznamy, ani data aktualizovat.

Tlačítko Objednávky otevře stejnojmenný formulář, jehož hlavním účelem je vkládání nových objednávek do databáze. Každá objed­návka může být jednoznačně identifikována (viz. kapitola Datový model aplikace) objednávaným termínem a zákazníkem. Pro vnitřní potřeby je termín i zákazník identifikován pomocí ID. To je však pro potřeby obsluhy nevhodné. Proto jsou tato vstupní pole řešena formou seznamu. Z něj může obsluha vybrat pouze existujícího zákaz­níka a přiřadit mu existující termín zájezdu. Odpadají tak možné problémy s referenční integritou. Po rozbalení seznamu termínu se tedy objeví cílová země a místo rodičovského zájezdu a datum začátku4. Po rozbalení seznamu zákazníků se objeví rodné číslo (jednoznačná identifikace), příjmení a jméno zákazníka.

Formulář dále obsahuje textové okno s údajem o počtu volných míst aktuálně zvoleného termínu, takže obsluha nepřekročí kapacitu termínu. Následují doplňující informace objednávky, jako je datum vystavení, počet objednaných dospělých osob a dětí. Nelze vložit objednávku se zítřejším datem vystavení a celkový počet osob (tedy dospělí+děti) musí být větší, než nula. Poslední vstupní pole je zaškrtávací tlačítko, indikující, zda byla objednávka již zaplacena. Cena se vypočítává podle počtu dospělých a dětí (platí 75% ceny) a ceny za osobu uvedené v tabulce Termin.

Následující dvě tlačítka hlavního menu se týkají katalogu zájezdu. Katalog zájezdu je tvořen jednou sestavou s vnořenou podsestavou. Na jedné stránce se zobrazují všechny údaje o zájezdu v přehledné formě a pod nimi seznam vypsaných termínů ve dvou sloupcích. Prostor pro jeden záznam není fixně zadán a je určen především délkou popisu a počtem vypsaných termínů. Většinou se na jednu stránku A4 vejdou dva zájezdy včetně termínů. Část sestavy je zachycena na následujícím obrázku.

Výše uvedený výstup se zobrazí po zmáčknutí prvního tlačítka. Po zmáčknutí tlačítka Tisk katalogu jste nejprve dotázáni, zda chcete sestavu opravdu vytisknout, a poté je výstup sestavy poslán místo na obrazovku na implicitní tiskárnu.

Zvláštním tlačítkem je volba Archivace objednávek. Protože se jedná o nevratný zásah do databáze, je obsluha před provedením archivace dotázána a musí své rozhodnutí potvrdit. Poté se již spustí makro, které pomocí dvou dotazů provede samotnou archivaci. První je dotaz Záloha, který převede objednávky z loňského roku do tabulky Zaloha, kterou v případě neexistence vytvoří (jedná se o tzv. vytvářecí dotaz). Druhý dotaz - Čištění - archivované objednávky vymaže z tabulky Objednavka.

Tlačítkem Stop se ukončuje aplikace. Před ukončením aplikace se zobrazí dotazovací okno a v případě potvrzení volby se ukončí aplikace i Microsoft Access. Při ukončování se MS Access snaží uložit neuložené záznamy a v případě chyby zobrazí chybovou hlášku.

3Struktura dat

3.1Datový model aplikace

Data jsou uložena v databázi ve formě několika tabulek, mezi kterými jsou vztahy 1:N s cizím klíčem. Při návrhu datové struktury jsem vycházel z následujícího konceptuálního schématu.

Jak je z obrázku zřejmé, mezi entitami Zákazník a Termín je vztah M:N, který v prostředí SQL nelze jednoduše zachytit. Navíc vztah mezi těmito dvěma entitami má další, doplňující atributy datum vystavení objednávky, počet objednaných osob, počet dětí a hodnotu indikující zaplacení objednávky. Z tohoto důvodu jsem se rozhodl uvedený problém řešit pomocí vazební entity Objednávka, která obsahuje uvedené atributy, primární klíč a dva cizí klíče.

Na tomto schématu, které již zobrazí MS Access jako Relace je zachycen výše popsaný stav, kdy vztah M:N je převeden na dva vztahy 1:N, následkem čehož vznikla vazební entita. Ta má (spíše pro administrativní účely) svůj primární klíč ID, jinak pro jednoznačnou identifikaci záznamu by stačila dvojice cizích klíčů termin a zakaznik5.

3.2Pomocné tabulky

Aplikace obsahuje ještě čtyři pomocné tabulky, které určují hodnoty rozbalovacích seznamů formuláře Zájezdy a termíny (resp. přímo tabulky Zajezd) a jejich vztah k tabulce Zajezd by se dal schématicky znázornit takto:

Do tabulky Zajezd se do příslušných polí ukládají pouze jednociferné kódy, jejichž význam se načítá z pomocných tabulek a uživatel se tak s nimi vůbec nedostane do styku. Toto provedení jsem zvolil především z důvodu zjednodušení obsluhy a snížení datové náročnosti.

V hlavním panelu relací tyto vztahy nejsou zachyceny jednak pro přehlednost a jednak proto, že vztahy nejsou vytvořeny jako relace (primární a cizí klíč), ale pomocí zdroje řádků v definici struktury tabulky. (Na ilustračním obrázku je znázorněna definice pole typ zájezdu.


3.3Integrita dat

Databázový systém Microsoft Access umožňuje komplexní řešení integrity dat. Již během návrhu struktury tabulky lze definovat nejen datový typ jednotlivých položek, ale i různá integritní omezení. Lze zde vhodně definovat např. omezení na celočíselnost, nezápornost apod. Pro každou položku je také možné zadat znění chybové zprávy, která se objeví při nesplnění zadaného integritního omezení. MS Access sám navrhuje, popř. pomáhá s volbou pri­márního klíče a během provozu aplikace zajišťuje jeho jedinečnost.

Po správném určení relací (viz. kapitola Datový model aplikace) program dokáže zajistit také referenční integritu, tj. integritu mezi tabulkami. Obrázek výše ukazuje příklad využití kaskádové integrity pro aktualizaci záznamu6 a restriktivní integrity pro mazání7 u vztahu Objednavka >— Zakaznik.


4Uživatelská dokumentace

4.1Instalace

Aplikace je distribuována jako jeden .mdb soubor (Databázová aplikace Microsoft Access), který obsahuje všechny součásti potřebné k provozu, tedy:

Pro spuštění a správnou funkci aplikace je potřeba mít nainstalován databázový systém Microsoft Access odpovídající verze a vhodný operační systém.

4.2Spuštění

Do prostředí aplikace se dostanete spuštěním systému MS Access, nalezením souboru Cestovka.mdb a jeho otevřením. Pokud máme správně asociované přípony souborů, lze aplikaci spustit poklepáním na soubor. Samovolně se otevře hlavní menu, s jehož pomocí lze otevírat ostatní formuláře a aplikaci ovládat, jakož i ukončit.

4.3Obsluha

Obsluha aplikace byla podrobně vysvětlena v kapitole Popis prostředí při popisu hlavního menu a souvisejících formulářů a sestav. Aplikace se obsluhuje způsobem výběru položek z menu a vyplňováním předložených formulářů. Pro spuštění některých funkcí (např. potvrzení dat ve formuláři, či objednání zájezdu) je třeba kurzorem myši klepnout na příslušné tlačítko. Ovládání je jednoduché a intuitivní a neliší se od ovládání obdobných aplikací.

5Literatura, zdroje dat

Kubálek, T. - Čermáková, L.: Manažerská informatika. Databázový systém Microsoft Access verze 2000 CZ. VŠE, Praha 2001

Nápověda Microsoft Access pro Windows

Data získána z webové aplikace Cestovka na adrese http://sorry.vse.cz/~xkecm01/cestovka/

6Slovo závěrem

Tato aplikace byla vytvořena výhradně pro potřeby seminární práce z předmětu Manažerská informatika 2 na Vysoké škole ekonomické. Jejímu praktickému využití brání především neexistence jakéhokoliv zabezpečení dat i aplikace samotné. MS Access umožňuje realizovat zabezpečení na několika úrovních včetně definování přístupových práv jednotlivým uživatelům a skupinám. Pro studijní potřeby jsou všechny objekty vlastnictvím uživatele administrátor a nejsou definována žádná bezpečnostní opatření.

Tato dokumentace je ke stažení na adrese http://sorry.vse.cz/~xkecm01/p_links.php ve formátu Microsoft Word 95 a HTML. Na stejné adrese se nachází i dokumentovaná aplikace.


1 Do databáze se ukládají místo plného textu jen jednociferné kódy, což však uživatel nevidí.

2 Jistě je nesmysl vypisovat termíny do minulosti, neboť ty si již nikdo neobjedná.

3 Zde se nejlépe pozná, jak jsou termíny v sezóně dražší oproti termínům mimo sezónu.

4 Připomeňme, že termín je vlastně zájezd v určitém čase. Ostatní údaje jsou doplňující.

5 Nepředpokládáme, že by si jeden zákazník objednával vícekrát stejný termín. Pro tento případ je výhodnější zvýšit v objednávce hodnotu dospelych nebo deti.

6 Data změněná v nadřazené tabulce jsou automaticky aktualizována v související tabulce.

7 Nelze mazat záznam v nadřazené tabulce, pokud existuje související záznam v podřízené tabulce.