Univerzitní informační systém IV., Svojanov 2005 Databáze pro UIS provozovaný na jiné vysoké škole Ing. Aleš Kutín
2 Univerzitní informační systém IV., Svojanov 2005 Obsah Úvod, databáze UIS Oblasti synchronizace Změny na datové vrstvě Mechanizmus synchronizace Vícejazyčnost Závěr, perspektiva vývoje Diskuze, dotazy
3 Univerzitní informační systém IV., Svojanov 2005 Více UISů expanze UIS na další univerzity běh systému v jiném národním prostředí místo jednoho UIS MZLU – instance (instalace) UIS na různých VŠ víceuniverzitní provoz = VUP každá instalace má vlastní databázi zcela zásadní změna oproti původní koncepci na DB vrstvě nutné četné změny
4 Univerzitní informační systém IV., Svojanov 2005 Databáze UIS Pojem „datová vrstva UIS“ vlastní datové objekty – tabulky (jejich obsah a struktura) programový kód na straně databáze (PL/SQL balíky, procedury, funkce, triggery) správa DB – zálohování, dávkové úkoly, kontrola konzistence, monitoring, … „fyzická“ vrstva – DB server, op. systém, instalace ORACLE, síť, disky, RAC
5 Univerzitní informační systém IV., Svojanov 2005 Databáze UIS schémata – nejvyšší logická organizační jednotka databáze odpovídají vlastně uživatelům DB UIS v současnosti obsahuje: základní schéma UIS – většina objektů doplňková schémata (NEIMP, NEZAL, INDEXY) – některé subsystémy, původně v UIS, oddělené z různých důvodů a nutné pro celkovou funkčnost „externí“ schémata (KPWIN, ANETE, USKM) – komunikace UIS s ostatními systémy (výměna dat)
6 Univerzitní informační systém IV., Svojanov 2005 Změny v datech vidíme-li UIS jako velkou tabulku, lze rozdíly mezi instalacemi rozdělit na: horizontální (sloupce, tj. struktura) – pouze krátkodobě, mezi jednotlivými synchronizacemi (viz dále) vertikální (řádky, tj. vlastní data) – budou samozřejmostí, jednotlivé instalace jsou nezávislé z hlediska synchronizace lze rozlišit několik typů tabulek
7 Univerzitní informační systém IV., Svojanov 2005 Typy tabulek fixní číselníky – zcela nezávislé na instalaci a národním prostředí (státy, jazyky, mez. předvolby atd.), sem patří také „systémové číselníky“ „národní číselníky“ – fixní ve všech instalacích jednoho národního prostředí (adresy, studijní programy, grantové agentury) – v rámci různých nár. prostředí většinou dvě disjunktní množiny hodnot běžné tabulky – hlavní nositelé vlastního informačního obsahu (uživatelé, studia, předměty) „semifixní entity“ – tzv. otevřené číselníky, kde nelze obecně předpokládat ani úplnou shodnost ani disjunktnost mezi instalacemi (kvalifikátory, sestavy)
8 Univerzitní informační systém IV., Svojanov 2005 Změny struktury Běžné změny tabulky (zakládání nových, rušení starých) sloupce (přidávání, rušení, přejmenování, změna velikosti) integritní omezení (cizí klíče, kontrolní podmínky, nulovatelnost, primární a unikátní klíče) indexy, fyzické parametry tabulek programový kód PL/SQL Speciální změny vše ostatní (nová schémata, globální změny) snaha o jejich minimalizaci
9 Univerzitní informační systém IV., Svojanov 2005 Synchronizace současnost – jediný UIS, fakticky neoddělen vývoj a produkční prostředí testovací databáze – stávající řešení pro víceuniverzitní provoz nepoužitelné synchronizace dat a struktur úplným přepsáním – vytvoření kopie ostré DB zveřejňování změn možné pouze atomicky (skript, tabulka), ne po dávkách
10 Univerzitní informační systém IV., Svojanov 2005 Synchronizace nové řešení pracuje s pojmy: primární (hlavní) databáze závislá databáze veškerý vývoj a změny na datové vrstvě probíhají v primární databázi, odkud jsou vhodným mechanismem přesouvány do závislé výjimku představují národní číselníky – spravovány zvlášť v závislé DB závislé DB na jednotlivých instalacích aktualizovány pomocí dávek nutnost součinnosti při zveřejňování změn na aplikační, datové a PL/SQL vrstvě usnadní se i vlastní vývoj (úplné oddělení?)
11 Univerzitní informační systém IV., Svojanov 2005 Vertikální synchronizace (data) fixní číselníky – zůstávají stejné – elementární, prosté porovnání záznamů s primární DB, doplnění, změna národní číselníky – vlastní správa v každém národním prostředí, synchronizace většinou podle nějaké instituce (SIMS, UIR-ADR, IS VaV, …), potenciální problém při neexistenci ekvivalentních zdrojů v určitém národním prostředí běžné tabulky – datově se nesynchronizují, plní uživatelé jednotlivých instalací semifixní entity – nejproblémovější, synchronizace na úrovni řádků, potřeba fůze dat primární a závislé DB, snaha minimalizovat jejich počet (za cenu „zbytečných“ záznamů)
12 Univerzitní informační systém IV., Svojanov 2005 Horizontální synchronizace (struktury) aplikace změn sekvencí DDL příkazů tak, jak byla provedena v primární DB – všechny běžné změny PL/SQL kód – nahrazení celých programových jednotek (trigger, procedura, …), které se změnily pečlivá volba okamžiku aktualizace => minimalizace chyb vzniklých zneplatněním balíků (vzniká při většině DDL) problém – malá modularita programového kódu (je preferována transparentnost) při VUP bude každá instalace obsahovat kompletní sadu programů, řada z nich však nebude používána
13 Univerzitní informační systém IV., Svojanov 2005 Vícejazyčnost vícejazyčnost 1. druhu – možnost volby jazyka v rámci jedné instalace UIS v současnosti (až) trilinguální (CZ, SK, EN) poměrně triviální řešení na DB vrstvě – zvláštní sloupce pro jednotlivé jazyky u všech textových atributů + nutná podpora na aplikační vrstvě jeden jazyk zůstává „primární“ – část zcela systémových entit se nepřekládá – např. vývojářské nástroje obecné řešení n jazyků řádově složitější, v současnosti neimplementováno kromě vybraných subsystémů (životopisy)
14 Univerzitní informační systém IV., Svojanov 2005 Vícejazyčnost vícejazyčnost 2. druhu – možnost volby primárního, druhého a třetího jazyka v rámci konfigurace jedné instalace trilinguálního UIS řešení vícejazyčnosti 1. druhu na aplikační vrstvě automaticky řeší i 2. druh – stačí vložit překlady daného jazyka na DB úrovni možné při zachování stávající trilinguality po vytvoření obdobné evidence překladů a plnění textových atributů v rámci instalace v současnosti neplánováno, při implementaci zvážit variantu obecného řešení n jazyků
15 Univerzitní informační systém IV., Svojanov 2005 Implementace příprava plné podpory trilinguality: rozšiřování tabulek překládání odstranění přímých textových výstupů z PL/SQL úpravy PL/SQL vrstvy pro VUP odstranění „pevného“ MZLU-kódu, nahrazení konfiguračními tabulkami – řízení UIS větší modularita datová vrstva – návrh struktur pro: evidenci změn a jejich vazeb evidenci a sestavení aktualizačních dávek
16 Univerzitní informační systém IV., Svojanov 2005 Implementace vlastní mechanismus pro synchronizaci porovnání datového slovníku logování změn volba priority uskutečnění dávky periodické – přebírané číselníky, semifixní číselníky plánované (nový subsystém) okamžité (oprava chyb)
17 Univerzitní informační systém IV., Svojanov 2005 Závěrem přechod na víceuniverzitní provoz představuje bezprecedentní výzvu bude nutné zásadně přehodnotit metody vývoje systému některé otázky zůstávají nevyřešeny, další se mohou objevit během implementace
18 Univerzitní informační systém IV., Svojanov 2005 Děkuji za pozornost. Dotazy ?