Domácí práce z předmětu 36DBS

2. ledna 2001

skupina 46, 2000/2001, zimní semestr

1 Zadání

Navrhněte a vytvořte model databáze pro jednoduché účetnictví domácnosti, model realizujte.

2 Rozbor

Jedná se o systém, který má umožnit rodině s běžnými výdaji spravovat a analyzovat stav svých financí.

Základním požadavkem na systém je schopnost zadávat výši výdaje, datum vydání a pomocný, vysvětlující text. Takové uspořádání nám však neumožní získat větší přehled o celkových výdajích. Zavedeme proto ještě možnost zadávat účet, na který (ze kterého) je částka účtována a skupinu (v běžném účetnictví tomu odpovídá pojem kód). Například účet se může jmenovat Banka – výdej, Peněženka – příjem, Stavební spoření – příjem, …; skupina může být Bydlení, Jídlo, Doprava a jiné. Všechny skupiny a účty budeme mít možnost zadávat, měnit a rušit.

Protože nás může zajímat nejen výdej rodiny jako celku, ale i jejich jednotlivých členů, zavedeme ještě pojem uživatel, který data zadává.

Ve finále budeme ještě chtít data analyzovat podle různých kritérií a získávat přehled o celkových financích.

3 Analýza

3.1 E-R model

3.1 Funkční model

  • uživatelské role

uživatel – může číst, měnit i mazat data ve všech tabulkách. Dále může upravovat seznam účtů, skupin i uživatelů – všichni uživatelé jsou si rovni, je to jedna rodina.

aktualizace tabulek

aktualizace účtů, kódů a seznamu uživatelů

výstup dat

4 Vytvoření databáze

Pro vytvoření uživatelské části jsem použil Microsoft Access ve verzi 97, protože ho lépe znám než Developer 2000 a protože k němu mám lepší přístup. Jako databázový stroj jsem použil Microsoft Jet s DAO 3.5, což je nativní databázové jádro pro Access. Je optimalizováno pro desktop databáze s malým počtem záznamů a umožňuje využívat stejných výhod s definováním kardinality, cizích klíčů a referenční integrity. Mezi oběma stroji, Jet a Oracle, není podstatný rozdíl ve funkcionalitě. Protože jsou tabulky k části s uživatelským rozhraním pouze připojeny, není problém celou aplikaci přes ODBC propojit se serverem Oracle.