SQL script pro vytvoření DB
analytická část
popis aplikace
Program Laborant byl vytvořen pro evidenci vyšetření a objednávek ve zdravotnických laboratořích.
Program je vyvíjen ve spolupráci s Zdravotním ústavem se sídlem v Kolíně. Jako databázový systém byl
vybrán Firebird 1.5 a navržena byla v programu IBExpert od firmy HK Software.
Popis tabulek databáze:
- CISBOD - číselník bodového hodnocení vyšetření
- CISDG - číselník diagnóz
- CISDMR - pomocná tabulka pro zpracování datumu
- CISKAT - číselník kategorií pacientů
- CISMAT - číselník materiálů
- CISODB - číselník lékařských odborností
- CISPOJ - číselník pojišťoven
- CISVYS - číselník vyšetření
- KODPOVED - kódovník výsledků vyšetření
- LABORATORE - seznam laboratoří v ústavu
- LEKARI - seznam již registrovaných lékařů
- OBJEDNAVKY - seznam objednávek
- PACIENTI - seznam pacientů
- PROFILY - seznam používaných vyšetření daným uživatelem
- UZIVATEL - seznam uživatelů
- VYSETRENI - seznam vyšetření
- ZEME - číselník zemí
E-R schéma úložiště dat
Toto schéma bylo vytvořeno programem CASE Studio 2.15 od firmy CHARONWare.

procedurální rozšíření
- CHECKDG - kontrola existence diagnózy v číselníku
- GEN_OBJ - získání hodnoty příslušného generátoru
- INSERT_PRIJEM - vloží dané vyšetření (skupinu vyšetření) k dané objednávce
- SAVE_NODE - uloží dané vyšetření (skupinu vyšetření) do profilu uživatele
- a další triggery pro kontrolu a úpravu nových hodnot dat
SQL dotazy
Požadavky na sadu 30 SQL dotazů:
- (A) Jednoduché dotazy
- (B) Vyber všechny, pro něž platí, že ...
- (C) Vyber všechny, pro něž NEplatí, že ...
- (D) Vyber ty, pro něž všechny ...
- (E) Vyber ty, pro něž žádné ...
- (F) v různých SQL dotazech budou použity všechny typy spojení dle SQL99
- (G) některé SQL dotazy budou obsahovat poddotazy
- (H) alespoň jeden dotaz bude obsahovat tzv. vztažený poddotaz
- (I) alespoň jeden dotaz bude obsahovat poddotaz vnořený do klauzuje Where
- (J) alespoň jeden dotaz bude obsahovat poddotaz vnořený do klauzuje From
- (K) alespoň jeden dotaz bude obsahovat poddotaz vnořený do klauzuje Select
- (L) alespoň jeden dotaz bude řešit jednostranné vnější spojení, alespoň jeden bude obsahovat plné vnější spojení
- (M) alespoň jeden dotaz použije množinovou operaci sjednocení
- (N) alespoň jeden dotaz použije množinovou operaci rozdíl
- (O) alespoň jeden dotaz použije množinovou operaci průnik
- (P) některé dotazy SQL budou předepisovat agregační výpočty
- (Q) některé dotazy SQL budou zdrojové řádky seskupovat a pro každou skupinu budou předepisovat agregační výpočty
- (R) některý dotaz v přirozeném jazyku bude vyjádřený v SQL alespoň třemi různými způsoby
- (S) některý SQL dotaz bude obsahovat všechny přípustné klauzule (Select ... From ... Where ... Group By ... Having)
Rozdělení dotazů podle požadavků:
- (A) 1,2,7
- (B) 1,7,
- (C) 2,6
- (D)
- (E) 7
- (F) 1,
- (G) 1,6
- (H) 6
- (I) 1,6,7
- (J)
- (K)
- (L)
- (M) 6
- (N) 7
- (O)
- (P) 8,9
- (Q) 8,9
- (R) 7,8,9
- (S) 8,9
Testování správnosti
Pro otestování správné funkčnosti procedurálních rozšíření jsem si připravil tři testovací skripty. Následuje jejich popis včetně zaznamenané odpovědi databáze.
- Test plánování utkání
- Zobrazení seznamu utkání před provedením změn.
- Korektní naplánování utkání.
- Nekorektní naplánování utkání (2 stejné týmy, 2 stejní rozhodčí, více než jedno utkání denně pro jeden tým,
více než jedno utkání denně pro jednoho rozhodčího).
- Zobrazení seznamu utkání po provedení změn (přidáno pouze korektní utkání).
- Výsledek testu: v pořádku, všechno proběhlo jak mělo
- SQL skript pro testování plánování utkání
- Zaznamenaná odpověď na skript
-
Test kontroly počtu hlavních trenérů
- Zobrazení seznamu trenérů včetně jejich typů a týmů které trénují po každé změně v přiřazení trenérů jednotlivým
týmům či změně typu trenéra.
- Přidání nového asistenta k týmů.
- Přidání druhého hlavního trenéra k týmu.
- Změna typu trenéra z asistenta na hlavního u týmu, který již hlavního trenéra má.
- Změna typu trenéra z hlavního na asistenta.
- Změna týmu u hlavního trenéra (přiřazení k týmu, který již hlavního trenéra má).
- Změna týmu u asistenta.
- Výsledek testu: v pořádku, všechno proběhlo jak mělo
- SQL skript pro testování kontroly počtu hlavních trenérů
- Zaznamenaná odpověď na skript
-
Test ohlídání možné nekonzistence v tabulce Hrat_VU