Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 4 DOPLNĚNÍ DAT A ALGORITMŮ MODULOVÉSCHÉMA



Podobné dokumenty
Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

účetních informací státu při přenosu účetního záznamu,

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Objektově orientované databáze

Algoritmizace a programování

MĚSTSKÁ ČÁST PRAHA 3 Rada městské části U S N E S E N Í

Algoritmizace a programování

ROZKLIKÁVACÍ ROZPOČET - ONLINE ZVEŘEJŇOVÁNÍ EKONOMICKÝCH DAT ÚŘADU

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

NÁVOD K OBSLUZE MODULU VIDEO 64 ===============================

Software IS Řízení stavebních zakázek

Počáteční nastavení aplikace WiFiS

PŘÍLOHA 1.6 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI LOGISTIKA KONCOVÝCH ZAŘÍZENÍ

Směrnice DSO Horní Dunajovice a Želetice - tlaková kanalizace a intenzifikace ČOV. Dlouhodobý majetek. Typ vnitřní normy: Identifikační znak: Název:

Integrovaný Ekonomický Systém Zakázkový list - IES WIN 2006

ORGANIZAČNÍ ŘÁD ŠKOLY

Metodika testování navazujících evidencí

VNITŘNÍ NORMA (Směrnice) č. 4/2010

Miroslav Kunt. Srovnávací přehled terminologie archivních standardů ISAD(G), ISAAR(CPF) a české archivní legislativy

PODMÍNKY ELEKTRONICKÉ AUKCE SPOLEČNOSTI RWE GAS STORAGE, s.r.o. NA NOVOU SKLADOVACÍ KAPACITU

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

PROGRAM PODPORY OBNOVITELNÝCH ZDROJŮ A ÚSPOR ENERGIE V OBYTNÝCH BUDOVÁCH

Modul Řízení objednávek.

OBEC HORNÍ MĚSTO Spisový řád

IMPLEMENTACE SW NÁSTROJE PROCESNÍHO ŘÍZENÍ ATTIS

Příloha č. 2 - Integrace SpiritÚAP do ESB Jihočeského kraje

Protokol o atestačním řízení

KOMORA DAŇOVÝCH PORADCŮ ČR STANDARD PRO SDÍLENÍ ÚČETNÍCH / FAKTURAČNÍCH ÚDAJŮ. (Short Invoice Descriptor)

PŘÍLOHA 10 SMLOUVY O PŘÍSTUPU KE KONCOVÝM ÚSEKŮM. Pravidla a postupy

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO PŘÍRUČKA UŽIVATELE

Návod k používání registračního systému ČSLH

tímto vyzývá k podání nabídky a prokázání kvalifikace a poskytuje zadávací dokumentaci na veřejnou zakázku malého rozsahu na dodávky

Konzistence databáze v nekonzistentním světě

I. Základní pojmy a zkratky. - provedení koordinační funkční zkoušky EPS a navazujících zařízení,

Podrobný postup pro vygenerování a zaslání Žádosti o podporu a příloh OPR přes Portál farmáře

INFORMAČNÍ SYSTÉM O AREÁLU

Program rovného zacházení provozovatele distribuční soustavy Pražská plynárenská Distribuce, a.s., člen koncernu Pražská plynárenská, a.s.

UŽIVATELSKÁ PŘÍRUČKA K INFORMAČNÍMU SYSTÉMU O STÁTNÍ PODPOŘE STAVEBNÍHO SPOŘENÍ

SMĚRNICE - OBĚH ÚČETNÍCH DOKLADŮ

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS

VERZE: 01 DATUM: 05/2014

PŘÍLOHA č. 2C PŘÍRUČKA IS KP14+ PRO OPTP - ZPRÁVA O REALIZACI

Dynamický model predikovaného vývoje krajiny. Vilém Pechanec

Server. Software serveru. Služby serveru

Protokol o atestačním řízení

Databázové a informační systémy

Rozvaha finančních institucí Aktiva (zjednodušená) Pasiva Peněžní prostředky (hotovost, vklady) Závazky z přijatých vkladů

Spisový a skartační řád. č. 13/2006/SŘ

Zadávací dokumentace dle ustanovení 44 zákona č. 137/2006 Sb., o veřejných zakázkách (dále jen zákon )

S_5_Spisový a skartační řád

Napájení požárně bezpečnostních zařízení a vypínání elektrické energie při požárech a mimořádných událostech. Ing. Karel Zajíček

Obecně závazná vyhláška města Žlutice č. 2/2011 Požární řád obce

SMLOUVA O PODMÍNKÁCH A PRAVIDLECH ÚČASTI NA ELEKTRONICKÝCH AUKCÍCH DŘÍVÍ

verze Uživatel akceptuje návrh Smlouvy zaslané mu Poskytovatelem, anebo

Co najdete v ASPI? (pro uživatele SVI FSE UJEP)

Kolejní řád. K o l e j n í ř á d. 1 Základní ustanovení

Příloha č. 13. Statistický metainformační systém - úvod

Uživatelská dokumentace

ZPRÁVA O PRŮBĚHU ŘEŠENÍ PROJEKTU

EXTRAKT z české technické normy

ČÁST TŘETÍ ŘÍDICÍ A KONTROLNÍ SYSTÉM HLAVA I POŽADAVKY NA ŘÍDICÍ A KONTROLNÍ SYSTÉM

Manuál uživatele čipové karty s certifikátem

Směrnice kvestorky AMU č. 1/2004

VŠEOBECNÉ OBCHODNÍ PODMÍNKY SPECIFIKACE ZBOŽÍ A CENA ZBOŽÍ. Veškeré ceny jsou včetně DPH. PLATEBNÍ PODMÍNKY DODACÍ PODMÍNKY

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

Obec Svépravice ORP Pelhřimov, kraj Vysočina SMĚRNICE. O SYSTÉMU ZPRACOVÁNÍ ÚČETNICTVÍ obce Svépravice

POKYNY PRO PLATBY FINANČNÍ MECHANISMUS EHP A NORSKÝ FINANČNÍ MECHANISMUS (1.revize - 21.června 2007)

Informační systém pro rezervaci pokojů hotelu SPORT

Obchodní podmínky pro spolupráci se společností Iweol EU s.r.o.

Novela zákona o DPH a změny v programu Účtárna k

MAGIS ve strojírenské firmě Strojírna Vehovský s.r.o.

INFORMATIKA V CHOVECH PRASAT

Příloha č. 1. Specifikace jednotlivých e-learningových výukových kurzů:

INTERNETOVÝ TRH S POHLEDÁVKAMI. Uživatelská příručka

Pokyny České pošty pro označování Doporučených zásilek čárovými kódy

Protokol o atestačním řízení

Směrnice pro oběh účetních dokladů Obce Batňovice

PALETOVÉ REGÁLY SUPERBUILD NÁVOD NA MONTÁŽ

BMI a akreditace nemocnice

Definice, metody měření a výpočtu

DUM 05 téma: Základy obsluha Gimp

Aplikace počítačů v provozu vozidel 9

Všeobecné obchodní podmínky Simply Events s.r.o.

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

Úspěšnéřízení projektu v průběhu realizace a udržitelnosti

Návrh individuálního národního projektu. Podpora procesů uznávání UNIV 2 systém

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

4. Zápůjčka je bezúročná. 5. Žadatel o Zápůjčku odpovídá za pravdivost údajů uvedených v Žádosti i dokladech poskytnutých ke kontrole.

INFORMATIKA pro LÁZEŇSTVÍ. Ing. Petr Janík

13. Sítě WAN. Rozlehlé sítě WAN. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme rozlehlé sítě typu WAN. Doba nutná k nastudování

2008 Nokia. Všechna práva vyhrazena. Nokia, Nokia Connecting People a Nseries jsou ochranné známky nebo registrované ochranné známky společnosti

Celková částka pro tuto výzvu: Kč v rozdělení dle tabulky č.1

Knihovní řád. Středisko vědeckých informací Vysoké školy zdravotnické, o. p. s. Duškova 7, Praha 5

o užívání služby elektronického dodávání dokumentů a dalších služeb kooperačního systému e-pk uzavřená mezi

Windows 7 kompletní příručka. Bohdan Cafourek. Vydala Grada Publishing a.s. U Průhonu 22, Praha 7 jako svou publikaci

Nastavení telefonu Samsung I9195 Galaxy S4 mini

Směrnice pro poskytování odměn funkcionářům SBD a pravidla odměňování pracovních funkcí na samosprávách a společenství vlastníků

Transkript:

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 4 DOPLNĚNÍ DAT A ALGORITMŮ MODULOVÉSCHÉMA 1

Návrhimplementace Doplnění algoritmů víceuživatelský provoz identifikace transakcí řešení transakcí zamykáním v rámci SŘBD) transakční analýza (označení transakcí v algoritmu každé funkce) 2

Návrhimplementace 3

Transakční analýza Transakční analýza Princip transakční analýzy spočívá ve vyhledávání částí algoritmů v minispecifikacích, které reprezentují samostatné transakce. Transakce je zhruba ohraničena prvním a posledním příkazem, manipulujícím s daty v databázi. obvykle k 1 minispecifikaci je definována 1 transakce, do transakce nesmí být zahrnuty vstupy uživatele, příkazy, které jen čtou z databáze (nemění její obsah) buď tvoří samostatnou transakci, nebo nejsou součástí transakce příkazy modifikující obsah databáze jsou seskupeny a tvoří transakci Podle použitého SŘBD se toto vymezení transakce jen označí (begin transaction... end transaction, begin work, commit, rollback) u SŘBD s podporou transakcí, nebo se při implementaci doplní příkazy zamykání a odemykání tabulek, záznamů,..., přičemž se dodržuje dvoufázový protokol, zabezpečí proti uváznutí, řeší se konflikty uživatelů, 4

Transakční analýza Příklad 1: algoritmus bankéře - transakce begintransaction read(a,a) a:=a-100 write(a,a) read(b,b) b:=b+100 write(b,b) if ERROR then rollback else commit end transaction 5

Transakční analýza Příklad: algoritmus bankéře - zamykání LX(A) read(a,a) a:=a-100 write(a,a) LX(B) UN(A) read(b,b) b:=b+100 write(b,b) UN(B) 6

Transakční analýza Příklad 2: 1.1. příjem do skladu základ, nesprávně 1. Pro všechen přijatý materiál na faktuře dodavatele proveď begintransaction {před prvním databázovým příkazem} 2. zobraz seznam karet ze Sklad uživatel vybere kartu 3. zapamatuj Sklad.karta, Sklad.cenj a Sklad.mnoz 4. zobraz formulář příjmu pro vybranou kartu, uživatel vyplní karta : vybraná, opsáno ze Sklad, jen pro čtení název : opsáno ztabulky Sklad, jen pro čtení změna : =1 (příjem), bez editace datum : dnešní, možnost přepsat, kontrola na měsíc mnozpri : >0 cenpri: >0 nebo NULL cizakaz : kontrola na existenci vzakázka nebo NULL cifak : kontrola na existenci ve Faktpnebo NULL 5. zapiš vyplněný formulář jako nový záznam do Pohyb 6. vypočti novémnožství ve skladu, cenu jedn -zprůměrovanou 7. modifikuj v záznamu Sklad.karta hodnoty Sklad.mnoza Sklad.cenj end transaction {po posledním databázovém příkazu} 8. Konec cyklu pro jeden materiál 7

Transakční analýza Příklad: 1.1. příjem do skladu transakce po záznamech 1. Pro všechen přijatý materiál na faktuře dodavatele proveď begintransaction {nemusí být, jedenpříkaz, jen čte} 2. zobraz seznam karet ze Sklad endtransaction 3. uživatel vybere kartu 4. zapamatuj Sklad.karta, Sklad.cenj a Sklad.mnozdo pole PSklad 5. zobraz formulář příjmu pro vybranou kartu, uživatel vyplní karta : vybraná, opsáno ze Sklad, jen pro čtení mnozpri : >0 cenpri : >0 nebo NULL 6. zapiš vyplněný formulář jako nový záznam do pole PPohyb begintransaction 7. zapišnový záznam z Ppohyb do Pohyb 8. přečti aktuální záznam ze Sklad 9. vypočti novémnožství ve skladu, cenu jednotkovou -zprůměrovanou 10. modifikuj aktuální záznam karty ve Sklad endtransaction 10. Konec cyklu pro jeden materiál 8

Transakční analýza Příklad: řešení bez přístupu uživatele uvnitř globální transakce OK 1. Pro všechen přijatý materiál na faktuře dodavatele proveď 2. načti seznam karet ze Sklad do pole NSklad (karta, nazev, ) 3. zobraz seznam karet z PSklad (karta, nazev, ) 4. uživatel vybere kartu 5. zobraz formulář příjmu pro vybranou kartu, 6. uživatel vyplní mnozpri, cenpri 7. zapiš vyplněný formulář jako nový záznam do pole PPohyb 8. Konec cyklu pro jeden materiál 9. Zobraz kontrolní výpis celépříjemky z PPohyb begintrans 10. Pro všechny hodnoty karta z PPohyb proveď 11. záznam z PPohybzapiš jako nový do Pohyb 12. přečti záznam s hodnotou karta ze Sklad do PSklad 13. vypočti novémnožství PSklad.mnoz=PSklad.mnoz+ PPohyb.mnozpri 14. vypočti zprůměrovanou cenu jednotkovou PSklad.cenj =.. 15. modifikuj aktuální záznam v Sklad - hodnoty PSklad.mnoz,PSklad.cenj 16. koneccyklu pro záznamy z PPohyb endtrans 9

Transakční analýza Příklad 3: Informační systém ABC soukromého zdravotnického střediska s několika lékaři eviduje lékaře, pacienty, objednanépacienty a uskutečněné návštěvy u lékaře i lékařů u pacientů (datum a čas objednaný i realizovaný, diagnóza, vykony, cena pro pojišťovnu). Lekar(RC_L, jmeno_l, spec) Pacient (RC_P, jmeno_p, pojistovna) Navsteva(id_navst, RC_L, RC_P, datum, hodina, diagnoza, id_vykon) Cisel_vykonu(id_vykon, cena) Napište minispecifikaci pro funkci "záznam o návštěvě pacienta = záznam diagnózy a výkonu Označte do minispecifikacetransakce. Označte do minispecifikaceuzamykání a odemykání objektů databáze sdodržením požadavku sériovosti transakcí. 10

Transakční analýza Příklad pokr. 1. Zobraz seznam objednaných Návštěv pro aktuální den Objednávky ze dne jmeno datum hodina 2. Lékař vybere objednanou návštěvu aktuálního pacienta. 3. Uložvybraný záznam do proměnných Pid_navst, Pjmeno,. 4. Zobraz formulář pro doplněníúdajů Jméno: xxxxxx Datum: xxxxxx Diagnóza: zpaměti bez kontroly Výkon: pomocí nabídky z číselníku 5. Lékař doplní diagnózu do Pdiaga doplní výkon do Pvykon dle seznamu z číselníku. begin trans 6. Modifikuj aktuálnízáznam v Navsteva (s Pid_navst) hodnotami Pdiag a Pvykon end trans 11

Transakční analýza Příklad pokr. LS(Navsteva) 1. Zobraz seznam objednaných Návštěv pro aktuální den UN(Navsteva) Objednávky ze dne jmeno datum hodina 2. Lékař vybere návštěvu aktuálního pacienta. 3. Uložvybraný záznam do proměnných Pid_navst, Pjmeno,. LS(Cisel_vykonu) 4. Zobraz formulář pro doplnění údajů Jméno: xxxxxx Datum: xxxxxx Diagnóza: zpaměti bez kontroly Výkon: pomocí nabídky z číselníku UN(Cisel_vykonu) 5. Lékař doplnídiagnózu do Pdiaga doplnívýkon do Pvykon dle seznamu z číselníku. LX(záznam s Pid_navst) 6. Modifikuj aktuální záznam v Navsteva(s Pid_navst) hodnotami Pdiag a Pvykon UN(záznam s Pid_navst) 12

Transakční analýza Příklad 4: Je dána část databáze IS HOTEL pro krajskou síť hotelů firmy ABC. POKOJ (cis_pok, poc_luzek, cena_luzka) CISEL_SLUZ (id_sluzby, naz_sluzby) HOST (rodcis, jméno, adresa, datum_od, pocet_noci, cis_pok, zaplaceno) SLUZBY (rodcis, datum, id_sluzby, cena) Napište minispecifikaci pro funkci "výpočet platby za ubytování a služby hosta". Označte do minispecifikacetransakce. Označte do minispecifikaceuzamykání a odemykání objektů databázesdodržením požadavku sériovosti transakcí. Jestliže 2 recepční současně účtují dvěma hostům pobyt, může dojít k uváznutí? 13

Příklad -pokr. Minispecifikace 1. Načti aktuální hosty do pole PHost (pro zaplaceno = NULL) 2. Zobraz seznam jmen a rodcis aktuálních hostů 3. Uživatel vybere platícího hosta dle jména s kontrolou dle rodcis v případě stejných jmen, zapamatuj Pjmeno, Prodcis, Padresa, Pdatum_od, Ppočet_noci, Pcis_pokoj 4. Zobraz formulář pro výpočet platby vybraného hosta jméno rodcis datum od počet nocí číslo pokoje 5. Uživatel odsouhlasí nebo opraví počet nocí 6. Přečti z tabulky Pokoj dle Pcis_pokoj hodnotu Pcena_luzka 7. Vypočti x = cena_luzka * pocet_noci 8. Vyber z tabulky Služby záznamy dle rodcis a datum mezi datum_od a aktuálním datem do PSluzby 9. Vypočti y = suma(cena) vybraných služeb 10. Vypočti Z = x + y 11. Zobraz a vytiskni Doklad o zaplacení obsahující Hlavička hotelu Jméno hosta Adresa hosta Ubytován od do Cena ubytování Cena za služby Cena celkem podpis a razítko 12. Modifikuj v Host zaplaceno = Ano x y Z 14

Příklad -pokr. Zjednodušený zápis minispecifikace 1. Načti aktuální hosty do pole PHost (pro zaplaceno = NULL) 2. Zobraz seznam jmen a rodcis aktuálních hostů 3. Uživatel vybere platícího hosta dle jména s kontrolou dle rodcis v případě stejných jmen, zapamatuj Pjmeno, Prodcis, Padresa, Pdatum_od, Ppočet_noci, Pcis_pokoj 4. Zobraz formulář pro výpočet platby vybraného hosta 5. Uživatel odsouhlasí nebo opravípočet nocí 6. Přečti z tabulky Pokoj dle Pcis_pokoj hodnotu Pcena_luzka 7. Vypočti x = cena_luzka* pocet_noci 8. Vyber z tabulky Služby záznamy dle rodcisa datum mezi datum_od a aktuálním datem do PSluzby 9. Vypočti y = suma(cena) vybraných služeb 10. Vypočti Z = x + y 11. Zobraz a vytiskni Doklad o zaplacení obsahující. 12. Modifikuj v Host zaplaceno = Ano 15

Příklad -pokr. Transakce 1. Načti aktuální hosty do pole PHost (pro zaplaceno = NULL) 2. Zobraz seznam jmen a rodcis aktuálních hostů 3. Uživatel vybere platícího hosta dle jména s kontrolou dle rodcis v případě stejných jmen, zapamatuj Pjmeno, Prodcis, Padresa, Pdatum_od, Ppočet_noci, Pcis_pokoj 4. Zobraz formulář pro výpočet platby vybraného hosta 5. Uživatel odsouhlasí nebo opravípočet nocí 6. Přečti z tabulky Pokoj dle Pcis_pokoj hodnotu Pcena_luzka 7. Vypočti x = cena_luzka* pocet_noci 8. Vyber z tabulky Služby záznamy dle rodcisa datum mezi datum_od a aktuálním datem do PSluzby 9. Vypočti y = suma(cena) vybraných služeb 10. Vypočti Z = x + y 11. Zobraz a vytiskni Doklad o zaplacení obsahující Begintrans 12. Modifikuj v Host zaplaceno = Ano Endtrans 16

Příklad -pokr. Zamykání LS(Host) 1. Načti aktuální hosty do pole PHost (pro zaplaceno = NULL) UN(Host) 2. Zobraz seznam jmen a rodcis aktuálních hostů 3. Uživatel vybere platícího hosta dle jména s kontrolou dle rodcis v případě stejných jmen, zapamatuj Pjmeno, Prodcis, Padresa, Pdatum_od, Ppočet_noci, Pcis_pokoj 4. Zobraz formulář pro výpočet platby vybraného hosta 5. Uživatel odsouhlasí nebo opravípočet nocí LS(Pokoj) 6. Přečti z tabulky Pokoj dle Pcis_pokoj hodnotu Pcena_luzka UN(Pokoj) 7. Vypočti x = cena_luzka* pocet_noci LS(Sluzby) 8. Vyber z tabulky Služby záznamy dle rodcisa datum mezi datum_od a aktuálním datem do PSluzby UN(Sluzby) 9. Vypočti y = suma(cena) vybraných služeb 10. Vypočti Z = x + y 11. Zobraz a vytiskni Doklad o zaplacení obsahující LX(záznam v Host s Prodcis) 12. Modifikuj v Host zaplaceno = Ano UN(záznam v Host s Prodcis) 17

Transakční analýza Příklad: Databáze: Sklad, Prijem, Vydej Fce: příjem do skladu, výdej ze skladu, výpisy, inventury Příklad: Databáze: Sklad, Pohyb (příjemivýdej) Fce: příjem do skladu, výdej ze skladu, výpisy, inventury 18

Analýza možného uváznutí Příklad: V IS Banka je definována databáze účtů a nad ní se provádějí tyto transakce: Převod z účtu na jiný účet Vklady na účet Výběry z účtu Platby inkasa Platby za vedení účtu Připisováníúroků účet U kteréz následujících dvojic transakcí může dojít k uváznutí? 1. Pan A platí 100.-panu B, pan B vybírá200.- 2. Panu A jepřipisován úrok, pan B platí panu A. 3. Pan B vrací panu A, pan A platí panu B. 4. Pan A platí panu B, pan B platípanu C. 5. Všem jsou připisovány úroky, pan A platí panu B. účet pana A účet pana B účet pana C suma 1000 3000 2000 19

Analýza možného uváznutí Příklad: ISodborných lékařů eviduje lékaře, pacienty, objednávky a návštěvy pacientů (diagnóza a vykon se doplnípři návštěvě, cena je pro pojišťovnu, ucto je logickáhodnota = zaúčtováno pojišťovně). Lekar (RC_L, jmeno_l, spec) Pacient (RC_P, jmeno_p, pojistovna) Navsteva(id_navst, RC_L, RC_P, datum, hodina, diagnoza, id_vykon, ucto) Cisel_vykonu (id_vykon, cena) U kteréz následujících dvojic transakcí může dojít k uváznutí? 1. Lékař A objednávápana X, lékař B objednávápana Y 2. Lékař B objednávápana Z, pan X rušíobjednávku u lékaře A 3. Správce DB zapisuje nového lékaře F, pan U se objednávák lékaři A 4. Správce pořizuje měsíční seznam výkonů podle lékařů pro pojišťovnu, lékař A zapisuje informace o návštěvě pana X 5. Panu X provádí správce změnu pojišťovny, lékař B zapisuje panu X výsledek návštěvy 20

Trans. analýza a řízení transakcí při běhu aplikace Závěr Návrh implementace vždy identifikace transakcí v minispecifikacích SŘBD podporuje transakce hotovo SŘBD nepodporuje transakce zámky pomocí 2-fázového protololu obrana proti uváznutí funkce znovuspustitelné časové omezení pokusů o zámek lineární uspořádání zámků Implementace podle návrhu Provoz - paralelní běh aplikací SŘBD podporuje transakce detekce uváznutí plánovač SŘBD nepodporuje transakce realizuje program pokud dojde k chybě, řeší uživatel 21

Řízení transakce v SŘBD 2-fázový protokol, detekce uváznutí, řešení uváznutí Animace\uvaznuti\ 3.exe 22

Řízení transakce v SŘBD plánovač s časovými razítky Animace\uvaznuti\ 4.exe 23

Návrhimplementace Doplnění algoritmů doplnění o systémové funkce z STD a ELH (kontroly podmínek přechodu stavů, kontrola spuštění funkcí, přechodové akce, případně pomocná data) úplná definice datových pamětí (doplnění mezivýsledků z funkcí původních i systémových, z optimalizace ERD 3 ) analýza afinity (podobnost formulářů, sestav, funkcí víc fcí v jedné proceduře) 24

Matice a analýza afinity (příbuznosti) Matice a analýza afinity I v návrhu lze některé aspekty IS analyzovat pomocí matic. U aplikací, ve kterých je použito velké množství obrazovek a jsou vytvořeny různými analytiky, je vhodné vytvořit matici zobrazující, na kterých obrazovkách se vyskytují které atributy. Při pohledu na matici obrazovek pak zjistíme, které obrazovky používají (téměř) stejné údaje a které bude případně možno ztotožnit a systém tak zjednodušit. Obrazovky mají k sobě tvarově blízko, jsou příbuzné, jsou afinní. Hledání afinních částí systému, v tomto případě obrazovek, se nazývá analýza afinity. Obdobně analýza afinity pro reporty nebo pro příbuzné funkce. Pro rozsáhlejší aplikace je provedení analýzy afinity prakticky velmi obtížné a proto existují programy např. jako součást CASE systémů, které vypisují dvojice shodných či podobných formulářů nebo reportů. 25

Matice a analýza afinity Příklad analýza afinity pro matice obrazovek O1 O5 Operace: I = insert, D = delete, U = update, S = select Datovéatributy Obraz1 Obraz2 Obraz3 Obraz4 Obraz5 ICO I U I S D Název organizace zákazníka U I S S I Bankovní spojení D I S S I Kontaktní osoba I DU DU Kontaktní telefon I DU DU Kontaktní fax I DU DU Kód obsluhy D DU I 26

Návrhimplementace Objektový návrh -pokračování automatické ukládání změn (log) automatické ukládání chyb (automat program, uživatelsky) protokol o využívání funkcí a uživatelů (jejich analýza, optimalizace) 27

Návrhimplementace Objektový návrh -pokračování implementace řízení, přístupových práv, systémových funkcí nové entity, které to budou hlídat: přihlášení, uživatelé, hesla, práva, osobní prostředí stav jako část programu, přístupné jen některé fce, hlídání nepoužitelných fcí v daném stavu přidělení odpovědnosti za operace, data uživatelským rolím skrývání informací (v analýze se vidí všechno, v praxi ne) zálohování dat (log -obnova dat po havárii) automatická archivace (analýza co archivovat, kdy) 28

Návrhimplementace Objektový návrh mezní provoz kontrola přechodových fcí (mezistavové, denní, měsíční, roční,...) instalace a inicializace systému ukončení práce se systémem, úklid (pack), reindexace, pád systému, obnovení práce systému, obnova databáze --------------------------------------------------------------------------- Celý objektový návrh modulovéschéma budoucí implementace 29

Návrhimplementace Modulovéschéma Modulem na úrovni implementace rozumíme samostatnou programovou jednotku, volatelnou část programového systému, rozlišitelnou při překladu. Může to být procedura nebo funkce v nějakém programovacím jazyce, řada procedur či celý program. Obecně má tyto aspekty: název definované vstupy a výstupy (údaje od volajícího modulu a údaje volajícímu modulu vracející) definované funkce (co modul dělá při transformaci vstupů na výstupy) způsob práce (vnitřní logika modulu, algoritmy, kód procedury) interní data (lokální data, vlastní pracovní oblast modulu) volané funkce a procedury uvnitř příp. další atributy. 30

Návrhimplementace Modulovéschéma vnější pohled na modul = název, vstupy, výstupy a funkce vnitřní pohled = způsob práce, lokální data Modularita vyjadřuje míru rozkladu programu na komponenty takové, že změna jedné komponenty má minimální vliv na ostatní komponenty. modulární návrh je vytvářen -dle datových struktur (fce k entitě) -dle funkcí (form, reporty, výpočty, systémové, ) -dle datových toků (stejné přenosy dat) výsledkem je modulové schéma, obsahující moduly s algoritmy z funkční analýzy funkcemi zabezpečujícími přechody stavů, konzistenci databáze funkcemi systémovými 31

Návrhimplementace Modulovéschéma Pravidla návrhu modulů maximalizace soudržnosti modulů (zapouzdření dat do modulu) minimalizace souvztažnosti modulů (komunikace mezi moduly) neomezování velikosti modulů (menší pohodlnější, větší levnější) sdružování centrálních dat v globálním modulu (jinak nutno předávat argumenty) omezení řetězu vnoření modulů dle principu 7 2 eliminace nedeklarovaných proměnných (jinak roste počet chyb) využívání modulů opakovaně (úspory a rychlejší odhalení chyb) 32

Návrhimplementace Modulovéschéma pravidla pro pojmenování funkcí, modulů, procedur nástroje pro získání podkladů pro návrh modulů transformační analýza transakční analýza zobecnění společného chování funkcí, formulářů, reportů (analýza afinity -ISUD matice) oddělení společných systémových funkcí 33