Analýza informačního systému rozvrhu a možnosti zpracování dat

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání

Efektivita informačního systému se hodnotí i podle toho, kolik času stráví uživatel než nalezne požadovanou informaci. Avšak také se odvíjí od toho, jak je možné tento systém rozšířit a přizpůsobit novým technologiím. V následující části bude popsána funkcionalita informačního systému EPI s.r.o. a možnosti jeho rozšíření.


Popis informačního systému EPI

Informační systém EPI s.r.o. se skládá z modulů jako je rozvrh hodin, internetová knihovna, omluva absence, elektronické testy, FTP, modul pro organizování státních závěrečných zkoušek atd. Přihlašování do systému probíhá pomocí LDAP skriptu napsaném v jazyce PHP. LDAP spolupracuje s netwareovým systémem NOVEL, jenž obsahuje přihlašovací údaje studentů, zaměstnanců a učitelů.


Úkolem skriptu LDAP je připojit se pomocí LDAP protokolu k LDAP serveru, pro ověření přihlašovacích údajů. [7, s. 354]


PHP je skriptovací programovací jazyk určený především pro programování dynamických internetových stránek a webových aplikací například ve formátu HTML, XHTML. Při použití PHP pro dynamické stránky jsou skripty prováděny na straně serveru. K uživateli je přenášen až výsledek jejich činnosti. Interpreta PHP skriptu je možné volat pomocí příkazového řádku, dotazovacích metod HTTP nebo pomocí webových služeb. [5, s. 17]


Pro přihlášení je potřeba tří údajů:

  • jméno, udávající příjmení studenta nebo učitele psané bez diakritiky,
  • kontext je u studentů zkratka studijního kruhu a rok zahájení studia, u učitelů je to „ucitel“ a u zaměstnanců „zamest“,
  • heslo je automaticky generované při zavedení uživatele do systému, skládá se z číslic a písmen.

Nejpoužívanější částí informačního systému EPI s.r.o. je rozvrh hodin, protože je denně využívaný studenty, učiteli a zaměstnanci vysoké školy. Vyznačuje se pestrým, přehledným a jednoduchým uživatelským rozhraním.


Struktura rozvrhu hodin je postavena na skriptovacím jazyce PHP a relační databázi implementované do MYSQL. V této databázi se nachází záznamy obsahující detailní popis jednotlivých vyučovacích hodin.


Na schématu č. 3 je zachycen entitně relační diagram školního rozvrhu, skládající se ze sedmi databázových tabulek.

Tonda bc 11.png

Schéma č. 1: Entitně relační diagram školního rozvrhu

Zdroj:Vlastní


Schéma č. 3 zachycuje relace mezi jednotlivými tabulkami, tyto relace budou popsány v následujícím textu.


Databázová tabulka epi_class eviduje studijní kruhy. Každý studijní kruh má v této tabulce vlastní a jedinečný záznam. Popis jednotlivých databázových sloupců je v následující tabulce.


Název sloupce Popis
id_class Jedinečný číselný identifikátor, identifikující každý studijní kruh
school_id Identifikátor školy, ve které se daný studijní kruh nachází
class_title_sm Zkratka studijního kruhu
class_title Celý název studijního kruhu
class_active Určije zda studijní kruh existuje, nabývá hodnot 1 a 0

Tabulka č. 1: Databázová tabulka epi_class

Zdroj: vlastní


V předcházející tabulce č. 2 jsou definovány jednotlivé sloupce databázové tabulky a jejich krátký popis.


Databázová tabulka epi_subject eviduje základní informace o jednotlivých vyučovacích předmětech. Popis jednotlivých databázových sloupců a jejich popis je v následující tabulce.


Název sloupce Popis
id_subject Jedinečný identifikátor jednotlivých vyučovacích předmětů
subject_title_sm Zkratka vyučovacího předmětu
subject_title Celý název vyučovacího předmětu
subject_info Informace o vyučovacím předmětu, zpravidla nevyplněný údaj
subject_active Indikuje, zda je tento předmět aktivní, nabývá hodnot 1 a 0

Tabulka č. 2: Databázová tabulka epi_subject

Zdroj: vlastní


Databázová tabulka epi_subject_type obsahuje záznamy o typu výuky. Typ výuky může být přednáška, cvičení, konzultace atd. Dále tato databázová tabulka obsahuje kód barvy uvedený v textovém řetězci. Barva identifikuje jednotlivé typy výuky. Popis jednotlivých databázových sloupců je v následující tabulce.


Název sloupce Popis
id_type Jedinečný identifikátor
type_title Název typu výuky, např.: Přednáška, Cvičení, atd.
type_color Textový údaj, reprezentující barvu buňky

Tabulka č. 3: Databázová tabulka epi_type

Zdroj: vlastní


Databázová tabulka epi_teacher obsahuje zkratku učitele. Další informace jsou umístěny v tabulce epi_users, kde jsou informace jako jméno, příjmení a tituly. Ostatní informace jsou pro vykreslení rozvrhu hodin nepotřebné. Tabulka epi_teacher je s tabulkou epi_users v relaci 1:N.

Následující tabulka popisuje databázové sloupce z databázových tabulek epi_users a epi_teacher, které jsou potřebné pro vykreslení rozvrhu hodin. Ostatní databázové sloupce budou ignorovány.


Název sloupce Databázová tabulka Popis
id_teacher epi_teacher Unikátní číselný identifikátor záznamu v tabulce
teacher_title epi_teacher Zkratka učitele
teacher_active epi_teacher Indikuje, zda je tento předmět aktivní, nabývá hodnot 1 a 0
user_id epi_teacher Číselný identifikátor odkazující na tabulku epi_users
id_user epi_users Unikátní číselný identifikátor záznamu v tabulce
first_name epi_users Jméno uživatele
last_name epi_users Příjmení uživatele
title epi_users Tituly před jménem
title2 epi_users Tituly za jménem

Tabulka č. 4: Databázová tabulka epi_users a epi_teacher

Zdroj: vlastní


Tabulka epi_room obsahuje informace o jednotlivých učebnách ve všech kampusech. Popis jednotlivých databázových sloupců je v následující tabulce.


Název sloupce Popis
id_room Unikátní číselný identifikátor záznamu v tabulce
building_id Číselný identifikátor budovy
room_title_sm Zkratka učebny
room_title Název učebny
room_capacity Obsahuje údaj o kapacitě učebny
room_active Informuje, zda je daná učebna provozuschopná

Tabulka č. 5: Databázová tabulka epi_room

Zdroj: vlastní


Tabulka epi_timetable je nejdůležitější tabulkou v celém relačním modelu. Skládá se zde celý rozvrh hodin. Každý záznam v této tabulce obsahuje odkazy na ostatní, již zmiňované databázové tabulky. Tato tabulka je tedy v relaci s ostatními tabulkami. Relace jsou zobrazeny na schématu č. 1 a v tabulce č. 7. Dále obsahuje informace o počtu hodin, počáteční hodině a datum daného dne.


Název sloupce Popis
id_record Unikátní číselný identifikátor záznamu v tabulce
room_id Číselný identifikátor záznamu v tabulce epi_room, relace 1:N
class_id Číselný identifikátor záznamu v tabulce epi_class, relace 1:N
teacher_id Číselný identifikátor záznamu v tabulce epi_teacher, relace 1:N
subject_id Číselný identifikátor záznamu v tabulce epi_subject, relace 1:N
type_id Číselný identifikátor záznamu v tabulce epi_type, relace 1:N
rv_date Datum, ke kterému se vztahuje záznam
rv_hour Číslo vyučovací hodiny
rv_hour_count Počet hodin
rv_group Skupina, pro kterou daný záznam platí

Tabulka č. 6: Databázová tabulka epi_timetable

Zdroj: vlastní


Z předcházející tabulky plyne, že tabulka obsahuje cizí klíče, na jejichž základě je vytvořen rozvrh hodin. Díky těmto relacím je snížena velikost záznamů a rychlost dotazování.


Možnosti rozšíření informačního systému

V rámci zlepšování kvality informačního systému EPI, s.r.o. je vhodné tento systém rozšířit do řad jiných platforem. Toto rozšíření by bylo rozsáhlé, a proto v této práci bude rozebrána jen část tohoto rozšíření a to konkrétně rozvrh hodin.


Rozšíření poskytuje přístup k rozvrhu hodin pro aplikace běžících na různých platformách. Rozšíření je umístěno na školním serveru EPI, s.r.o. odkud je přístupné z jakéhokoliv bodu v rámci vnitřní sítě EPI, s.r.o. i mimo ni.


Rozšíření se skládá ze dvou PHP skriptů neboli modulů. První modul slouží k ověření přihlašovacích údajů do školní sítě. Druhý modul slouží ke stažení určité části rozvrhu hodin ze školní databáze. Moduly byly vytvořeny v rámci této práce a jsou popsány v následujících kapitolách. Pro komunikaci s těmito moduly je potřeba dodržet pravidla jejich komunikačních protokolů.


Multiplatformní modul pro přihlášení

Modul pro přihlášení slouží k ověření přihlašovacích údajů do školní sítě. Dotaz o ověření přihlašovacích údajů probíhá pomocí HTTP dotazovací metody POST. Dotaz má následující formát.


Formát požadavku na ověření přihlašovacích údajů http metodou POST:

login:přihlašovací_jméno

pass:přihlašovací_heslo

kontext:kontext


Modul pro ověření přihlašovacích údajů spolupracuje s LDAP serverem díky čemuž je možné ověřit, zda jsou přihlašovací údaje správné. Po odeslání přihlašovacích údajů modulem do LDAP serveru tento server vyhodnotí požadované údaje a vrátí modulu výsledek ve formě logického datového typu boolean. Pokud modul obdrží logickou hodnotu false, indikující neúspěšné ověření údajů, odešle tuto hodnotu klientské straně. Klientskou stranou se myslí aplikace, jež žádá o ověření přihlašovacích údajů HTTP metodou POST. Obdrží-li hodnotu true, taktéž tuto hodnotu odešle klientské straně. Informace, jež modul zprostředkovává tazateli, jsou ve formě prostého textu (text bez formátování).


Multiplatformní modul rozvrhu hodin

Modul pro získání dat rozvrhu hodin získává data z MYSQL databáze již zaběhnutého rozvrhu hodin. Dotazování o data z tohoto modulu probíhá pomocí HTTP metody POST. Tento modul zprostředkovává data ve dvou formách, které se odvíjí od konkrétního dotazu. Formy dotazů jsou popsány v následujícím komunikačním protokolu.


Dotazy pro získání seznamů pomocí HTTP metody POST jsou tři. První dotaz získá seznam aktivních učitelů, druhý dotaz získá seznam aktivních studijních kruhů a třetí dotaz získá seznam aktivních místností. Tyto seznamy jsou důležité například při výběru, pro který studijní kruh nebo pro kterého učitele bude zobrazen rozvrh hodin.


Získání seznamu učitelů, studijních kruhů a místností:

  1. Seznam aktivních učitelů:
    • seznam:ucitel
  2. Seznam aktivních studijních kruhů:
    • seznam:kruh
  3. Seznam aktivních místností:
    • seznam:mistnost


Výstupem je serializovaný prostý text s vnitřní strukturou JSON, který reprezentuje seznam učitelů, studijních kruhů nebo místností. Tyto data jsou seřazeny sestupně. Serializace je proces, kdy se objekt transformuje do holého textu. Struktura JSON je pole objektů využívající strukturu klíč:hodnota. Jednotlivé objekty se oddělují pomocí složených závorek. Mezi jednotlivými objekty jsou čárky. Jeden objekt může obsahovat mnoho prvků klíč:hodnota.


Příklad výstupu pro dotaz seznam:ucitel je:

[
{"teacher_title":"CJ"},
{"teacher_title":"CL"},
{"teacher_title":"DV"}, 
{"teacher_title":"PT“},
… ]

Dotazy pro získání dat rozvrhu hodin jsou taktéž prováděny pomocí HTTP metody POST. Jednotlivé dotazy musí obsahovat tři údaje. Prvním údajem je zkratka učitele, místnosti nebo studijního kruhu. Další dva údaje reprezentují interval dat ve formátu „den-měsíc-rok“. Data rozvrhu hodin všech dnů z tohoto intervalu budou staženy ze školní databáze. Interval dat je (date_from, date_to), kde date_from reprezentuje začátek intervalu a date_to reprezentuje konec intervalu. Vynechá-li se údaj reprezentující konec intervalu, tedy bude-li HTTP dotaz ochuzen o údaj date_to, PHP modul automaticky tento chybějící údaj doplní a to o údaj date_from+6. To znamená, že interval stahovaných dat bude 7 dnů, tedy jeden týden.


Dotazy pro získání dat pomocí HTTP metody POST z rozvrhu hodin pro určité období:

  • Data pro učitele za určité období:
teacher:zkratka_ucitele, 
date_from:yyyy-MM-dd,
date_to:yyyy-MM-dd
  • Data pro studijní kruhy za určité období:
class:zkratka_kruhu, 
date_from:yyyy-MM-dd,
date_to:yyyy-MM-dd
  • Data pro místnosti za určité období:
room:zkratka_mistnosti, 
date_from:yyyy-MM-dd,
date_to:yyyy-MM-dd

Výstupem jsou data z databáze, které jsou serializovány a následně strukturovány metodou JSON, jejímž výstupem je prostý text s vnitřní strukturou JSON.


Část odpovědi pro dotaz room:K10, date_from:2012-02-03, date_to:2012-02-03 s vnitřní strukturou JSON:

[{„rv_date":"2012-02-03",
"rv_hour":"1",
"rv_hour_count":"4",
"room_title_sm":"K10",
"subject_title_sm":"FIT",
"teacher_title":"BN",
"type_color":"7FFFD4"}, … ]

Struktura odpovědi odpovídá záznamům z databázové tabulky epi_timetable, která je v relaci 1:N s ostatními popisovanými tabulkami.