Kvalifiktory Ale Kutn kutinpef mendelu cz Univerzitn informan

  • Slides: 22
Download presentation
Kvalifikátory Aleš Kutín kutin@pef. mendelu. cz Univerzitní informační systém II. , Lednice 2003

Kvalifikátory Aleš Kutín kutin@pef. mendelu. cz Univerzitní informační systém II. , Lednice 2003

Obsah - kvalifikátory • • Co to je kvalifikátor Jak fungují, co dokážou Správa

Obsah - kvalifikátory • • Co to je kvalifikátor Jak fungují, co dokážou Správa a vytváření Použití dnes Použití zítra Omezení Diskuse Univerzitní informační systém II. , Lednice 2003 2

Úvodem • cílem přednášky je vysvětlit pojem kvalifikátoru jak uživatelům aplikací – integrátorům, tak

Úvodem • cílem přednášky je vysvětlit pojem kvalifikátoru jak uživatelům aplikací – integrátorům, tak aplikačním vývojářům, kteří kvalifikátorů používají • pro pochopení konceptu je nutná elementární znalost relační algebry (tabulka, spojení tabulek, cizí klíč, SQL) • pro pochopení příkladů vhodná alespoň základní znalost datového schematu UIS • kvalifikátory jsou částí samotného jádra UIS – uživatelé, (ale i apl. programátoři) vidí pouhou špičku Univerzitní informační systém II. , Lednice 2003 3

Co to je kvalifikátor • kvalifikátor (Q) - mechanizmus pro výběr podmnožiny objektů daného

Co to je kvalifikátor • kvalifikátor (Q) - mechanizmus pro výběr podmnožiny objektů daného typu splňující určité vlastnosti • kvalifikované objekty: uživatelé (nejen!) • vlastnosti: typ uživatele (student, zaměstnanec, externista), status uživatele (aktivní, vyřazený, přerušený), příslušnost uživatele (ústav, fakulta, studijní program), . . . • Q umožňují omezovat velice specifické skupiny (př. : interní doktorandi ústavu 110 s úvazkem alespoň 0. 5, zaměstnanci PEF – učitelé předmětů na AF v aktuálním období) Univerzitní informační systém II. , Lednice 2003 4

Co to je kvalifikátor • • • z DB pohledu je jeden kvalifikátor ekvivalentní

Co to je kvalifikátor • • • z DB pohledu je jeden kvalifikátor ekvivalentní záznamu v tabulce - číselníku má tedy své ID, lze se na něj odkazovat cizími klíči v jiných tabulkách pomocí PL/SQL kódu jsou ještě na DB úrovni (!!) definovány základní operace: 1. rozhodnutí o příslušnosti daného objektu do kvalifikátoru (objekt vyhovuje/nevyhovuje kvalifikátoru) 2. výběr všech objektů vyhovujících danému Q • vlastní struktura a implementace kvalifikátorů je zcela odstíněna Univerzitní informační systém II. , Lednice 2003 5

Co to je kvalifikátor • • v konečné implementaci v aplikaci UISu je kvalifikátor

Co to je kvalifikátor • • v konečné implementaci v aplikaci UISu je kvalifikátor ekvivalentní např. uživatelské skupině (výběr uživatelů však probíhá automaticky při definici kvalifikátoru a je neustále aktualizován) lze použít např. místo omezení na pracoviště nebo fakultu (nabízí však ‘jemnější’ dělení) uživatel používající Q se nemusí starat, jakým způsobem funguje výběr vyhovujících objektů, správnost a kompletnost je vždy zaručena případná změna datového modelu vyžaduje pouze úpravu definice kvalifikátoru, nikoliv aplikací, které ho využívají Univerzitní informační systém II. , Lednice 2003 6

Jak fungují • • • Q je ‘jednoduchý’ SQL dotaz (SELECT – FROM –

Jak fungují • • • Q je ‘jednoduchý’ SQL dotaz (SELECT – FROM – WHERE) SELECT - vybírá pouze ID vyhovujících objektů část FROM obsahuje všechny tabulky obsahující hodnoty nezbytné pro vyhodnocení podmínek kvalifikátoru tabulky jsou připojeny (INNER JOIN) k tabulce kvalifikovaných objektů (číselník uživatelů) v části WHERE jsou dva typy podmínek • • joinovací – zajišťují propojení tabulek omezovací – obsahují konkrétní hodnoty podmínek definovaných v kvalifikátoru SQL příkaz SELECT je uložen v datových strukturách pro definici Q a jeho provedení – vrácení vybraných objektů je zajišťováno tabulkovou funkcí tab. funkce – vlastnost RDBMS Oracle umožňující funkcím vracet sady záznamů a operovat s nimi jako s tabulkami Univerzitní informační systém II. , Lednice 2003 7

Správa kvalifikátorů • požadavky při návrhu způsobu definice a ukládání kvalifikátorů: • • jednoduché

Správa kvalifikátorů • požadavky při návrhu způsobu definice a ukládání kvalifikátorů: • • jednoduché a flexibilní ovládání přes aplikace UIS („klikání, ne psaní SELECTů”) automatické generování stromu kvalifikátorů (viz dále) kvalifikátory skládány z podmínek podmínka – atomická, definuje tabulku a sloupec, dále typ parametru, jehož hodnota se dosazuje při zařazení podmínky do kvalifikátoru dále podmínka obsahuje typ relačního operátoru (=, !=, IS NULL, . . . ) podmínky mohou být i bezparametrické správu zajišťuje PL/SQL balík PKG_KVALIFIKATOR Univerzitní informační systém II. , Lednice 2003 8

Správa kvalifikátorů • • • při definici Q jsou přidávány jednotlivé podmínky a spojovány

Správa kvalifikátorů • • • při definici Q jsou přidávány jednotlivé podmínky a spojovány logickým operátorem ‘AND’ zároveň je generována část FROM výsledného SELECTu včetně spojovacích podmínek propojení tabulek toto se děje automaticky díky evidenci tabulek do kvalifikátorů, jedné z částí jádra systému, kde u každé tabulky je definována ‘připojovací cesta’ ke kořenové tabulce, tj. všechny tabulky a jejich podmínky pokud více podmínek potřebuje stejnou tabulku, je tato připojována pouze jednou lze přidat více podmínek stejného typu (student programu) s různými hodnotami parametru takové podmínky jsou pak spojeny operátorem ‘OR’ Univerzitní informační systém II. , Lednice 2003 9

Strom kvalifikátorů • • • je zřejmé, že mezi jednotlivými kvalifikátory vznikají vztahy nadřízenosti

Strom kvalifikátorů • • • je zřejmé, že mezi jednotlivými kvalifikátory vznikají vztahy nadřízenosti a podřízenosti speciální Q s více podmínkami omezuje skupinu objektů, která je podmnožinou množiny objektů kvalifikovaných jiným, obecnějším Q (např. Q všichni studenti a Q studenti prezenční formy) z hlediska přehlednosti evidence a především budoucího použití kvalifikátorů jako ‘zobecněných subjektů’ je žádoucí tyto vztahy mezi Q evidovat Díky výše popsanému mechanizmu evidence podmínek Q, je možno vytvářet strom kvalifikátorů automaticky, přímo při definování nových Q zjednodušené pravidlo: Q 1 je podřízeným Q 2 pokud všechny podmínky Q 2 má i Q 1 Univerzitní informační systém II. , Lednice 2003 10

Unionované kvalifikátory • • • jak bylo řečeno, jednotlivé podmínky kvalifikátoru jsou spojovány vždy

Unionované kvalifikátory • • • jak bylo řečeno, jednotlivé podmínky kvalifikátoru jsou spojovány vždy operátorem ‘AND’ kombinace operátorů ‘OR’ a ‘AND’ v rámci podmínek jednoho Q nebyla možná (nutnost závorek) jako řešení byl navrhnut UNION kvalifikátor, který obsahuje dva a více klasických kvalifikátorů, jejichž SELECTy jednoduše sjednocuje klauzulí UNION strom kvalifikátorů je korektně generován i pro unionované Q, je také možné přidávat jako dílčí Q unionovaného Q jiný unionovaný Q první zkušenosti s používáním Q ukázaly, že unionované Q jsou potřeba jen zřídka Univerzitní informační systém II. , Lednice 2003 11

Obecnost kvalifikátorů • • • dosavadní výklad a příklady se týkal výhradně ‘uživatelských’ kvalifikátorů,

Obecnost kvalifikátorů • • • dosavadní výklad a příklady se týkal výhradně ‘uživatelských’ kvalifikátorů, které kvalifikují objekty třídy uživatele uživatelské kvalifikátory jsou v současné době jedinými prakticky používanými kvalifikátory je důležité poznamenat, že celý systém jádra Q a jejich správy je navržen zcela obecně a používá pojmu třída kvalifikátorů odpovídá kořenové tabulce (KC_UZIVATELE), ke které se joinují ostatní tabulky při vytváření Q kvalifikátory a podmínky jsou různých tříd jsou zcela disjunktní, mají také jiné ‘joinovací cesty’ pro tabulky kvalifikátorů jiných tříd bude plně využito především v novém právním systému (viz dále) Univerzitní informační systém II. , Lednice 2003 12

Použití Q – dnes • • první a dosud jedinou oblastí, kde byly kvalifikátory

Použití Q – dnes • • první a dosud jedinou oblastí, kde byly kvalifikátory nasazeny v ostrém provozu je automatické přidělování nároků (implicitní nároky) nutnost automatického přidělování ‘čehokoliv’ stála u zrodu Q na DB úrovni řeší PKG_IMPLICITNI, který úzce spolupracuje s PKG_KVALIFIKATOR rozlišujeme: • • • implicitní nároky – uživatel má nárok na 0 – n ‘věcí’ (účty na serverech, přístupové body, uživatelské skupiny) implicitní kategorie – uživateli je přidělována právě jedna kategorie, může-li mít kategorií víc, vybírá se na základě definovaných preferencí ta nejlepší (dotační kategorie stravování, formát loginu, druh karty) implicitní kvóty – podobné jako kategorie, avšak bez preferencí, uživateli je z kvót na které má nárok přidělena ta nejvýhodnější (nejvyšší) Univerzitní informační systém II. , Lednice 2003 13

Použití Q – dnes • při implementaci implicitních nároků do nějakého subsystému máme většinou

Použití Q – dnes • při implementaci implicitních nároků do nějakého subsystému máme většinou ve výchozím stavu: • • • pro implicitní nároky potřebujeme: • • • číselník nárokovatelných ‘věcí’ (např. seznam serverů) evidenci nároků (spojovací tabulka mezi uživatelem a ‘věcí’) definiční tabulku – pomocí kvalifikátoru specifikujeme, kteří uživatelé mají jaký nárok v evidenci nároků nutno přidat údaj o tom, kdo nárok přidělil (pokud byl přidělen uživatelem – správcem, nepodléhá implicitním updatům) definiční tabulku implementujeme jako: • • spojovací tabulku mezi číselníkem kvalifikátorů a ‘věcí’ mnohonásobný atribut typy kvalifikátor v šabloně k číselníku ‘věcí’ (lze použít jen u impl. nároků) Univerzitní informační systém II. , Lednice 2003 14

Použití Q – dnes • po spuštění garantuje implicitní přidělování automatický a transparentní refresh

Použití Q – dnes • po spuštění garantuje implicitní přidělování automatický a transparentní refresh (odebrání/přidání nároků) při: • • v současnosti je implicitní přidělování nasazeno v: • • • změně statusu uživatele (vyřazení studenta, nástup zam-ce) změně definice přidělování změně definice kvalifikátoru stravovací subsystém (kompletně včetně definičních aplikací) CPS, pošta (přidělování funguje, aplikace ve vývoji) vydávání karet (chybí aplikace na správu) přístupové body (chybí aplikace na správu) plánované nasazení: • • dokumentový server – práva právní systém – automatická práva a skupiny Univerzitní informační systém II. , Lednice 2003 15

Šablony kvalifikátorů • • • úkolem správce subsystému využívajícího impl. nároky bude kromě definice

Šablony kvalifikátorů • • • úkolem správce subsystému využívajícího impl. nároky bude kromě definice dvojic nárok-kvalifikátor bezesporu také vytváření nových kvalifikátorů vlastní správa Q je komplexní, složitá a ‘příliš mnoho dovolující’ (hlavně s ohledem na budoucí užití Q mimo implicitní přidělování) pro vytváření ‘jednoduchých’ kvalifikátorů budou sloužit tzv. šablony – kvalifikátory s nadefinovanými podmínkami ovšem bez konkrétních hodnot – ty dosadí správce při vytváření nového Q ze šablony koncept šablon je ve stádiu vývoje, před dokončením další zpřehlednění přináší (již zaimplementovaná) evidence subsystémů použití kvalifikátorů, která u každého Q definuje místa, kde se má ‘nabízet’ Univerzitní informační systém II. , Lednice 2003 16

Použití Q – zítra • • Kvalifikátory by se kromě implicitního přidělování v budoucnu

Použití Q – zítra • • Kvalifikátory by se kromě implicitního přidělování v budoucnu mohly použít v dalších oblastech jádra systému, ať už ve stávající či zobecněné podobě (parametrické, dynamické) jedná se především o (podrobněji viz dále): • • nový právní systém nové šablony výběr dvacítky Univerzitní informační systém II. , Lednice 2003 17

Právní systém a šablony • • • kvalifikátory se jeví jako ideální náhrada subjektů

Právní systém a šablony • • • kvalifikátory se jeví jako ideální náhrada subjektů do právního systému na rozdíl od subjektů umožňují mnohem jemnější omezování působnosti práv (jen zaměstnanci dané fakulty, jen doktorandi) plně se zde využijí třídy kvalifikátorů, které budou muset být zaimplementovány i do evidence práv (právo evidence osob musí být omezováno uživatelskými Q, právo evidence oborů oborovými atd. ) s problémem práv úzce souvisí také šablony a evidence práv na čtení a zápis jednotlivých atributů zapojení kvalifikátorů v této oblasti nepřichází v UIS v úvahu, neboť by si vyžádalo kompletní přepsání jádra systému Univerzitní informační systém II. , Lednice 2003 18

Výběr a dvacítky • • • pomocí kvalifikátorů by bylo možné optimalizovat stávající modul

Výběr a dvacítky • • • pomocí kvalifikátorů by bylo možné optimalizovat stávající modul Vyber. pm jde především o nahrazení patri_neco_do_subjektu funkcí kvalifikátory po implementaci právního systému také výběr objektů, na které má uživatel právo vytvoření parametrických kvalifikátorů – vlastně šablony kvalifikátorů s předáváním konkrétních hodnot omezovacích podmínek až při výběru objektů – problém s předáváním parametrů z Perlu přes DBI do PL/SQL Ve dvacítkách možnost nasadit dynamické kvalifikátory – další zobecnění parametrických Q – podmínky a hodnoty se vkládají z Perlu v závislosti na zvolených omezeních – opět problémy s předáváním Perl – DB, nutnost glob. proměnných v balících Univerzitní informační systém II. , Lednice 2003 19

Slabé stránky • Jak bylo řečeno, základem kvalifikátorů je jednoduchý SQL join SELECT. Kvalifikátory

Slabé stránky • Jak bylo řečeno, základem kvalifikátorů je jednoduchý SQL join SELECT. Kvalifikátory (alespoň v současné podobě) tedy neumožňují použití složitějších konstrukcí jako sumačních funkcí, zanořených selectů a podobně • Jsou požadavky, které nejsou schopny kvalifikátory postihnout. Takové situace vznikají často porušením některé normální formy při návrhu databáze. Další potíž je se šablonami. • Netransparentnost. Při implicitním přidělování vyžadují ošetření všech DML operací měnících status uživatele PL/SQL procedurami. Univerzitní informační systém II. , Lednice 2003 20

Závěrem • Kvalifikátory, ač ve své podstatě jednoduché zdají se být velmi mocným a

Závěrem • Kvalifikátory, ač ve své podstatě jednoduché zdají se být velmi mocným a elegantním nástrojem jádra systému použitelným k celému spektru účelů. • Dosavadní provoz v UIS ověřil jejich použitelnost a efektivnost, plného využití lze však patrně dosáhnout jen v systému projektovaného od počátku s jejich podporou. Univerzitní informační systém II. , Lednice 2003 21

Děkuji za pozornost. Dotazy ? Univerzitní informační systém II. , Lednice 2003 22

Děkuji za pozornost. Dotazy ? Univerzitní informační systém II. , Lednice 2003 22