Studijní systém z pohledu datamanagementu Aleš Kutín Sekce datamanagementu Vývojový tým Univerzitního informačního systému Mendelova zemědělská a lesnická univerzita v Brně Výjezdní zasedání UIS Lednice, 23. – 26. 10. 2002
Obsah úvodní charakteristika problému základní tabulky srovnání UIS a STUDENT stav studia ročník v UIS přerušení studia matrika – včera, dnes a zítra závěr a diskuze Výjezdní zasedání UIS
Úvodem I studijní subsystém = nejdůležitější součást UISu (zatím) zaměříme se na „strategickou“ část studijního systému základní charakteristiky: komplexnost neukončený vývoj komplexnost těsné provázání s jinými oblastmi našeho IS, především: matrika pojišťovna karty, přístupový systém, autentifikace (loginy) stravování, (koleje) některé zdánlivě jednoduché operace, které mění status uživatele (uživatel => student, aktivní student => přerušený ), vyvolávají automaticky změny v jiných datových strukturách z toho plyne (aplikační) nevratnost některých operací Výjezdní zasedání UIS
Úvodem II neukončený vývoj datově navazuje na starý STUDENT struktura datového schematu je odlišná od starého systému, i když v některých ohledech je jím značně ovlivněna stávající struktura vyšla v podstatě z implementace ve FISu, který nebyl zcela nezávislý na STUDENTU, spíše s ním koexistoval až do zápisů na akad. rok 2002/03 proudila do systému většina dat nikoli aplikačně, ale exporty zajišťovanými datamanagementem (ze STUDENTA, UCHAZEČE, FISu) teprve ostrý aplikační provoz a potřeba generováni matriky ukázaly nevhodnost některých struktur v současnu je každá strukturální změna spojena s nutností zásahu do mnoha aplikací musí se složitě řešit problémy, které mohly být odstraněny vhodnějším návrhem struktury Výjezdní zasedání UIS
Základní tabulky I SC_STUDIUM základní tabulka studijního systému záznam v ní dělá z uživatele studenta jeden záznam = studium jednoho uživatele v jednom stud. programu započaté k určitému datu struktura: ID jednoznačná identifikace studia v DB UZIVATEL odkaz do tabulky uživatelů PROGRAM odkaz to tabulky stud. programů NASTUP_NA_SKOLU datum začátku daného studia VYRAZENI_ZE_STUDIA není-li zadáno, je student aktivní pod pojmem „student“ budeme v dalším výkladu rozumět jeden záznam v SC_STUDIUM (úvodní stránka stud. evidence studenta z více studii na různých fakultách) Výjezdní zasedání UIS
Základní tabulky II S_PRUBEH_STUDIA základní funkce - spojuje studium s obdobím jednotlivé záznamy odpovídají obdobím (roky, semestry), ve kterých student studoval jeden záznam = jeden zápis studenta (většinou) struktura: ID jednoznačná identifikace STUDIUM odkaz do tabulky SC_STUDIUM OBOR odkaz to tabulky stud. oborů FORMA prezenční / kombinovaná SPECIALIZACE STAV stav studia dle číselníku ze STUDENTA PRERUSENO_OD vymezení úseku v daném období, kdy bylo studium přerušené PRERUSENO_DO (standardní stránka průběhu studia) Výjezdní zasedání UIS
Rozdíly oproti STUDENTu Ročníky versus období ve STUDENTu jedno studium obsaženo v jediném záznamu tabulky std*1/ste*1 klíčové z hlediska exportu do našich struktur byly záznamy PRUBSTU1-6 obsahující stav studia jednotlivých ročníků a DAT_ZAP1-6 s datumy zápisu do jednotlivých ročníků primární informace ve STUDENTu: v kolikátém je student ročníku informace o časovém průběhu studia byla podružná, zjistitelná pouze zprostředkovaně přes datum zápisu popř. kód stavu požadavek UISu: mít záznam o každém období (školním roce), který student na škole strávil, bez ohledu na to, zda v něm ročník uzavřel oba pohledy jsou v souladu pouze u standardně studujích (příklady nestandardních průběhů – opakování, přestup, ISP s odpovídajícím stavem v STUDENTu: 1171, 91, 2313) Výjezdní zasedání UIS
Stav studia filozofie číselných kódů STUDENTa přijata beze zbytku do UISu skupiny kódů: 1 – 10: „otevírací“ („zápisové“) kódy, mohou se vyskytovat pouze v aktivním (posledním) záznamu o průběhu 12,13,22,23 – kódy přerušení 70 – 79: neúspěšné uzavření studia (vždy spojeny s ukončením studia) 80 – 90: úspěšné uzavření ročníku (období) / studia (význam závisí na tom, zda je studium ukončeno) 1000 – opakování ročníku z formálního hlediska ne zcela korektní – některé kódy vyjadřují stav období (ročníku), jiné stav celého studia na rozdíl od STUDENTa, kde ročník musel být vždy uzavřen kódem ≥80, může být v UISu období ukončeno kódem <80 (pokud v něm student neuzavřel ročník), konkrétně: 12 – 23, 4, 1000 Výjezdní zasedání UIS
Ročník v UIS zatímco ve STUDENTu byl ročník základním kamenem a jeho určení bylo vždy zcela deterministické, struktury UIS s tímto pojmem původně vůbec nepočítaly v UISu se nikde informace o ročníku neukládá, nýbrž se generuje ze záznamů v S_PRUBEH_STUDIA vývoj funkcí pro odhadu ročníku: délka studia v letech (souhlasila s ročníkem pouze u standardně studujících) počet úspěšně uzavřených období – řeší opakování, ISP i přerušení korekce ročníku – řeší přestupy a „kreditní rozvolňování“ v současnosti je údaj o ročníku spolehlivý především na AF a LDF, kde je stále základním atributem studenta v budoucnosti důležitost údaje patrně klesne, i když zřejmě zcela nevymizí (doporučené plány) Výjezdní zasedání UIS
Problematika přerušení I evidence přerušení má zásadní význam – přerušení a návrat z přerušení jsou akty stejné úrovně jako nástup a vyřazení přerušení po stránce datové – současný stav: nastavení kódu přerušení do aktuálního průběhu (stejné v UIS i STUDENTu) záznam o začátku a konci přerušení ve STUDENTu čtyři dvojice políček pro záznamy o přerušení v UIS – vyplnění PRERUSENO_OD, PRERUSENO_DO v příslušném záznamu o průběhu vznikají problémy: evidence délky přerušení typy přerušení, návrat po přerušení operace s předměty Výjezdní zasedání UIS
Problematika přerušení II evidence délky přerušení ani jeden z popsaných modelů ukládání není pro UIS optimální výhody „UIS způsobu“ u každého záznamu o průběhu stojí neoddělitelně informace o čas. období, které student strávil na přerušení jasné přiřazení přerušení ke konkrétnímu období nevýhody více přerušení v jednom období dlouhodobé přerušení ( > 1 rok ) – po návratu rozdělováno mezi jednotlivá období => nepřehledná evidence historie přerušení přerušení začínající po konci období, ke kterému se vztahují řešení – přesun vlastní evidence přerušení do zvláštní tabulky, sloupce PRERUSENO_OD, _DO zachovat pro čtení a plnit automaticky => plní dále informační funkci + zpětná kompatibilita (příklady dlouhodobě přerušených, příklad 1000=12 na LDF) Výjezdní zasedání UIS
Problematika přerušení III různé typy přerušení a jejich dopad na studium z celkem 4 kódů přerušení se v praxi používají především 12 a 23, první často na místě „polozapomenutých“ 13 a 22 čtyři následující případové studie ukáží opodstatněnost používání všech čtyř kódu (některé v mírně odlišném významu oproti STD): 1. odložená SZZ nepůsobí větší problémy – kód 23, poté buď 84 nebo 72,73 chybou je vracet studenta do studia (postup 2 -> 82) 2. přerušení jako způsob uzavření období, návrat v dalším období období uzavřeno kódem 12 (tj. neuzavřel ročník) návrat většinou k zápisu do dalšího a.r., alternativně také během dalšího období provedení návratu vždy přes aplikaci zápis (změna oproti současnému stavu – provizorně zkoušeno na AF a LDF) problém k diskusi – co s předměty zapsanými/ukončenými v roce přerušení – rušit? , uznávat? Výjezdní zasedání UIS
Problematika přerušení IV 3. přerušení v průběhu období, návrat do stejného období typicky po zápise s návratem „až na zkouškové“, na PEF dříve v případě neúspěšné postup. zkoušky rozdíl oproti 2. – student se vrátí ještě před zápisem do dalšího období a splní povinnosti v daném období => uzavře ho pro tento typ se navrhuje používat kód 13 (ve změněném významu, čistě pro odlišení od případu 2.) v praxi návrat přes stávající odkaz „ukončit přerušení“ 4. přerušení po úspěšném (uzavření) ročníku / splnění požadavků v daném období student splnil předepsané povinnosti, ale „chce si dát pauzu“ – přijde k zápisu až za rok postup přerušení i návratu identický s 2., ale přerušovat kódem 22 pro indikaci, že po návratu má být původní období uzavřeno 81 Výjezdní zasedání UIS
Matrika I co je to matrika sdružené informace matrik studentů (SIMS, matrika) je evidence studentů, kterou jsou dle zákona č. 111/1998 Sb. vysoké školy povinny vést o svých studentech je vypracována závazná struktura dat, které se odesílají ve čtvrtletních intervalech (k 31.3., 30.6., 31.10. a 31.12. každého roku) při sběrech se jednak oznamují data o nově přijatých studentech a také se aktualizují dříve poslané věty. definice věty: „student ve spojení se studijním programem, který studuje na dané škole“ věta má celkem 48 položek, z nichž 5 ji jednoznačně identifikuje (rodné číslo, škola/fakulta, program, nástup do studia, začátek platnosti věty) jednomu studiu ve smyslu definovaném výše může odpovídat jedna nebo více vět mající společné 4 údaje (rodné číslo, škola/fakulta, studijní program, nástup do studia) Výjezdní zasedání UIS
Matrika II struktura věty 48 položek věty lze rozdělit na skupiny: personální data (tituly, stav, občanství, rodné příjmení, adresa) údaje o předchozím studiu (střed. škola, rok maturity, nejv. vzdělání) údaje o aktuálním studiu (program, obor, nástup, forma, stav studia) ukončení studia (způsob, datum, udělený titul) údaje související se studiem (financování, místo výuky, koleje) dle dopadu na větu při změně dané položky, lze tyto rozdělit na: změna vyvolá vytvoření zcela nové věty (sekvence vět) – RČ, program, škola, datum nástupu změna způsobí ukončení platnosti aktuální věty a založení věty nové (financování, forma, stav, obor, místo studia, občanství, trv. pobyt) změna položky se zaznamenává do aktuální věty (struktura věty z ics.sims.muni.cz) Výjezdní zasedání UIS
Matrika III implementace v UIS – první přiblížení jednotlivé sekvence vět skladovány ve zvláštní tabulce – vazba na ID v SC_STUDIUM, položky věty umístěny v šabloně přechod pro nedoktorské programy PEF proveden v květnu, po vygenerování výchozího stavu a synchronizaci se SIMS byly spuštěny databázové triggery zajišťující průběžné generování dat v návaznosti na změny klíčových údajů v souvislosti s přechodem došlo k omezení možnosti manipulace s některými záznamy (mazání, vkládání k datu předcházejícímu poslednímu sběru) při implementaci byly odhaleny některé nedostatky datového schématu: nutnost evidence data změny „větouzavíracích“ položek – financování, forma změna způsobu evidence přerušení (složité zachycení v triggerech) Výjezdní zasedání UIS
Matrika IV finální implementace pro celou univerzitu v současnosti probíhá na základě zkušeností s provozem první verze zásadní přebudování systému generování matriky dochází k následujícím systémovým změnám: přesun veškerých DML operací nad studijními tabulkami z aplikační na databázovou úroveň (SQL příkazy INSERT a UPDATE nahradí volání speciálních procedur a funkcí zajišťující operace typu: zápis studenta, založení studia, přerušení studia, změna formy, ...) přesun PL/SQL kódu zajišťujícího matriku (a další operace) z triggerů do výše zmíněných funkcí a procedur většina z uvedených změn zůstane koncovému uživateli skryta, kromě: nový způsob evidence formy, financování a přerušování možnosti zrušení některých (dříve aplikačně nevratných) operací popisované změny vstoupí v platnost koncem října (ještě před podzimním termínem matriky) Výjezdní zasedání UIS
Následuje (bouřlivá) diskuse Výjezdní zasedání UIS