Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku informačních systémů a technologie na univerzitě i v podniku II P. Burian, P. Dvořák Ústav počítačové a řídicí techniky Vysoká škola chemicko-technologická v Praze e-mail:
[email protected] Abstrakt: On-line učební texty základních příkazů jazyků SQL, PL/SQL, XML a jejich příkladů pro práci s databázovými systémy vytvořený pomocí systému Oracle iLearning. Výukové kurzy v rámci portálu Oracle AS Portal 10g a internetového portálu Oracle APEX (Application Express): Databáze pojmů Servisně orientované architektury – SOA jako pedagogický výukový kurz.. Modelová případová studie (Case Study): Oracle AS Portal 10g pro vybrané moduly podnikového ERP systému v síti Internet. Pro pedagogické účely byl vytvořen internetový portál Oracle APEX: „Porovnání základních vlastností databázových serverů: Oracle, Microsoft SQL Server, IBM DB2, Sybase, aj. a internetový portál Oracle APEX týkající se objektově orientovaných technologií. Klíčová slova: distanční výuka, E-Learning, Oracle iLearning, výuka po síti Internet, databázové servery, jazyk SQL, PL/SQL, jazyk XML, SOA (Servisně orientovaná architektura), systém typu ERP (Enterprise Resource Planning), Portály. Abstracts: On-line teaching texts of the SQL, PL/SQL, XML language basic commands and their examples for working with databases systems creating with the Oracle iLearning system. Teaching courses in frame of Oracle AS Portal 10g and Oracle APEX (Application Express) Internet portals: The Service Oriented Architecture – SOA notion database as the pedagogical teaching course. Case Study modelling: the Oracle AS Portal 10g for selected ERP system modules in Internet. For pedagogical purposes was created Oracle APEX Internet Portal concerning „The Basic database servers qualities comparsion: Oracle, Microsoft SQL Server, IBM DB2, Sybase, and others and was created Oracle APEX Internet Portal concerning object oriented technology. Key words: Internet teaching, E-Learning, Oracle iLearning, database servers, SQL, PL/SQL, XML languages, SOA (Service Oriented Architecture), ERP (Enterprise Resource Planning) systems, Portals.
1. Učební texty, učební kurzy distanční, internetové výuky z oblasti informačních systémů a technologie pro univerzitu i podnik Tento článek navazuje na stejnojmenný článek (na konci je však označený „II“), který byl publikovaný v předchozím čísle časopisu Systémová Integrace 2009. V odstavcích 2. a 3. jsou popisovány učební texty, učební kurzy vytvořené v rámci aplikace Oracle Portal a systému Oracle iLearning. Ty byly podrobněji popsány v části označené „I“. SYSTÉMOVÁ INTEGRACE 4/2009
87
P. Burian, P. Dvořák
Jedná se zejména o učební texty, učební kurzy základních příkazů jazyka SQL, PL/SQL, XML a jejich příkladů pro práci s databázovými systémy. Dále se jedná o učební texty, učební kurzy: „Návod a příklady práce se systémem Oracle AS Portal 10g pomocí prostředků tohoto portálu v intranetové síti VŠCHT – Praha“, „Databázi pojmů Servisně orientované architektury – SOA“, „Modelovou případovou studii (Case Study): Oracle AS Portal 10g pro vybrané moduly podnikového ERP systému v síti Internet“. Aplikace, výukové kurzy v rámci internetového Portálu Oracle APEX (Application Express) se týkají „Porovnání základních vlastností databázových serverů: Oracle, Microsoft SQL Server, IBM DB2, Sybase, aj. ve formě databázové tabulky, tabulek“ a „Vytvoření internetového Portálu Oracle APEX pro podporu výuky objektově orientovaných technologií“.
2. Učební texty, kurzy základních příkazů jazyka SQL, PL/SQL, XML a příklady kurzů společnosti GOPAS a.s. 2.1
On-line učební text základních příkazů jazyka SQL a jejich příkladů pro práci s databázovými systémy vytvořený pomocí systému Oracle iLearning
Tyto kurzy byly vytvořeny v rámci bakalářských prací: [Navrátilová, 2008], [Černohorský, 2009].
2.1.1 Stručně o jazyce SQL Ted Codd, pracovník společnosti IBM a absolvent Oxfordské university, přišel v jisté době s novinkou – použít základní matematické a relační operace pro práci s daty. Jeho návrh počítal s využitím jednoduchých příkazů převzatých z anglického jazyka – dal tedy základ jazyku SQL tak, jak ho známe dnes. Začalo se pracovat s množinami dat místo manipulace jen s jedním záznamem a Codd v roce 1970 publikoval svoji práci „A Relational Model of Data for Large Shared Data Banks“, návrh na implementaci nového datového modelu, dnes nazvaného „relační“. Relační model se zakládá na použití pouze základních operací (kartézský součin, sjednocení, rozdíl, projekce, selekce a spojení) – každá další operace se již dokáže vytvořit z výše jmenovaných. V současné době se používá standard SQL3 (SQL-99). Problémem však zůstává odlišná implementace v různých databázových prostředích. Standardní jazyk SQL (Structured Query Language) totiž nepodporuje některé možnosti, které si implementují jednotliví výrobci programového vybavení, ti si navíc často ponechali některé odlišnosti kvůli zpětné kompatibilitě svých produktů. Přenositelnost programů v jednotlivých prostředích je proto pouze omezená. V současnosti jsou využívány i další odnože základní verze jazyka SQL. Složitější, ale zato komplexnější verzí je PL/SQL (Procedural Language/...), nadstavba jazyka SQL umožňující použití procedur a funkcí, programových balíků, spouštěčů (triggers) a vlastních datových typů. Jedná se tedy ještě o mnohem mocnější nástroj než samotný jazyk SQL. Kurzu týkajícího se jazyka PL/SQL se věnuje odst. 4.3. 88
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Dalším využitím je pak SQLJ – SQL-Java. V dnešním velkém rozvoji jazyka Java a dalších programovacích jazyků vzniká tlak na co největší zjednodušování práce s jazyky, rychlejší práci při odlaďování, přehlednost. Proto je vhodnější příkazy jazyka SQL a Java implementovat do jednoho nástroje. Více informací například na http://www.service-architecture.com/database/articles/sqlj.html. Podobnou funkci má SQL/XML – propojuje práci s databázemi a webovými aplikacemi. Standard SQL/XML vznikl v roce 2003. Dalším standardem je XQUERRY. Programátorům v SQL dává mocný nástroj pro práci s funkcemi pro publikování a přitom není těžké se jej naučit, neboť funkcí přidaných do SQL z XML je minimum. Pro další studium doporučujeme například internetovou adresu http://www.stylusstudio.com, [Šimůnek, 2008], [Ullman, 2008], [Wikipedia, 2008].
2.1.2 Výukové materiály Základy SQL 1 - Úvod Programovací jazyk SQL (Structured Query Language) je dnes asi nejběžnější metodou pro práci s databázemi – vytváření tabulek, jejich úprava a především následné vyhledávání v nich je v rámci jazyka SQL relativně jednoduchá. Jazyk samotný pak není složitý, jeho syntaxe je intuitivní. Vychází z anglického jazyka a jednotlivé příkazy jsou často jednoduché anglické věty. Zde nalezneme příručku základních příkazů. V každé kapitole najdeme kromě vlastního učebního textu také kompletní syntaxi probíraných příkazů. Ta je určena především pokročilejším uživatelům a nebo pro vlastní studium, pokud budeme chtít v práci s jazykem SQL pokračovat i nad rámec tohoto učebního textu. Za syntaxí jsou také stručné vysvětlivky, co která část celého příkazu znamená v zjednodušené podobě. V těchto pasážích o vlastní syntaxi se kromě vlastního složení příkazu využívají některé znaky. Hranatá závorka znamená nepovinnou část příkazu. Kulaté závorky se v příkazu vyskytují reálně, tedy i ve vlastním příkazu potom musí být, stejně jako čárky a mezery oddělující jednotlivé pasáže příkazu. Složené závorky ukazují celky, ve kterých se příkazy vyskytují, abychom se v celém příkazu lépe vyznali. Tři tečky znamenají možné pokračování (stejně jako v obecném jazyce). Veškerá zde použitá základní syntaxe je syntaxe používaná v dokumentaci spol. Oracle. Může se tedy stát, že práce ve vývojovém nástroji jiné společnosti v rámci zde uváděné syntaxe nebude zcela funkční. V průběhu učebního textu budou základní rozdíly zmiňovány. Při psaní příkazů oddělujeme jednotlivá slova mezerami. Pokud je příkaz delší, je možné a často vhodné rodělit je na více řádků – zlepší se tak přehlednost. Jako každý programovací jazyk i jazyk SQL používá takzvaná klíčová slova. Ta budou v tomto učebním textu psána velkým písmem. Pro jména proměnných bude použit konvenční styl jazyka Pascal – všechna slova názvu budou začínat velkým písmenem, tedy například JmenoTabulky a podobně. Tento styl je v tomto textu obecně doporučován. Komentář do programu vložíme pomocí speciálních závorek /* a */, mezi ně vkládáme vysvětlení, co znamená předcházející příkaz. Například: CREATE TABLE Tab1 /*Vytvori tabulku Tab1*/ SYSTÉMOVÁ INTEGRACE 4/2009
89
P. Burian, P. Dvořák
O nástroji SQL Developer V rámci učebního textu budeme pracovat ve vývojovém prostředí nástroje SQL Developer od společnosti Oracle. Jedná se o nástroj umožňující vytváření jednotlivých databázových objektů (tabulek, pohledů a dalších), jejich prohlížení a samozřejmě vykonávání všech SQL příkazů. Funguje pod operačními systémy Windows, Linux i Mac OSX a je jej možné stáhnout z oficiálních webových stránek společnosti Oracle (http://www.oracle.com). Může být připojen k jakémukoliv databázovému serveru Oracle verze 9.2.0.1 a vyšší, ale i k dalším databázím, databázovým srverům (MySQL, SQL Server, MS Access a další). SQL Developer umožňuje vytvářet a pracovat s tabulkami bez nutnosti samotné znalosti jazyka SQL. Tabulku si můžeme například vytvořit pomocí intuitivního nástroje, průvodce typu „wizard“ a potom si zobrazit SQL příkaz, kterým bychom takovou tabulku vytvořili bez pomocníka. SQL Developer nám samozřejmě v případě nefunkčního příkazu vyhodnotí chybovou hlášku. Nástroj SQL Developer nepotřebuje žádnou instalaci, stačí jej stáhnout a umístit na pevný disk. Spustíme jej poté pomocí ikony sqldeveloper.exe.
Obr. 2.1. Vytváření nové tabulky. Novou databázovou tabulku vytvoříme buď pomocí SQL příkazu a nebo s pomocníkem (wizard). Toho vyvoláme, pokud pravým tlačítkem klikneme v levém sloupci na „Tables“. Potom můžeme definovat sloupce a jejich datové typy, rozsahy a podmínky. K tomu je však alespoň základní znalost jazyka SQL nutná. Tabulku samozřejmě musíme naplnit daty. Opět nám může pomoci „wizard“. Pozor, pokud chceme, aby se data opravdu uložila, musíme dát po vytvoření nového řádku „Apply“. Ostatní práce s tabulkami už je jednodušší pomocí příkazů SQL a hlavně cílem tohoto kurzu je naučit studenty pracovat s jazykem SQL, proto ostatní činnosti již nejsou s pomocí nástroje SQL Developer popsány.
90
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Obr. 2.2. Definování sloupců tabulky
Obr. 2.3. Vkládání dat
Základy SQL 2 - CREATE Syntaxe CREATE TABLE [user.] table ( { column1 datatype [DEFAULT expn] [column_constraint] |table_constrain } [, { column1 datatype [DEFAULT expn] [CLUSER cluster (column1 [,column2] ...) ] [PCTFREE n] [PCTUSED n] [INITRANS n] [MAXTRANS n] [STORAGE n] [TABLESPACE tablespace] [ ENABLE | DISABLE] [ AS query] SYSTÉMOVÁ INTEGRACE 4/2009
91
P. Burian, P. Dvořák
Proměnné: User. – název schématu, ve kterém byla tabulka vytvořena. Table – jméno tabulky, která má být vytvořena. Column1, column2 – jméno sloupce. column_constraint, table_constraint – omezení sloupce nebo tabulky. Expn – původní (defaultní) hodnoty, které budou použity v případě, že daná pole nebudou vyplněna pomocí příkazu INSERT. Datatype – datový typ daného sloupce. Klíčová slova: DEFAULT – definuje výchozí nastavení. PCTFREE, PCTUSED, INITRANS, MAXTRANS, STORAGE, TABLESPACE, CLUSTER – parametry pro ukládání tabulky. AS query – subquery pro podmínku. Rozdíly v syntaxi: MS SQL Server umožňuje použití přechodných tabulek, vlastní syntaxe je jinak prakticky stejná. Pokud chceme založit novou tabulku, musíme si nejprve řádně rozmyslet její strukturu. Kolik bude mít sloupců? Jak se budou jednotlivé sloupce jmenovat a co budou obsahovat? Jména sloupců volíme spíše kratší, ale dostatečně výstižné a bez interpunkce. Chceme-li použít víceslovné názvy, hodí se mezi ně vkládat podtržítko a nebo je odlišit velkými písmeny. Klasická jména sloupců jsou například „ID“, „Jmeno“, „RodneCislo“, nebo „Rodne_Cislo“. Čím budeme pak jednotlivé sloupce plnit? Nejčastěji čísly (ID, rodné číslo, plat) a textovými řetězci (jméno, adresa). Aby program věděl, do kterého sloupce bude co patřit, musíme při vytváření tabulky, respektive jednotlivých sloupců, zadat i datové typy, které budeme v daném sloupci používat. Klíčová slova: REPLACE – pohledem nahradíme pohled stejného jména. FORCE – subquery nemusí existovat. NO FORCE – standardní (default) nastavení. WITH CHEC -
Základy SQL 3 - INSERT Syntaxe INSERT INTO {table | (sub_query)} [(column_1[, column_2,...column_n)] {VALUES | sub_query); Proměnné: Table – jméno tabulky, do které vkládáme data. 92
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Column_1, column_2,...column_n – jména sloupců, do kterých nová data vkládáme. Sql_expression_1, sql_expression_2,...,sql_expression_n – SQL výrazy. Rozdíly v syntaxi: MS SQL Server podporuje použití aliasů s klíčovým slovem AS, lze vkládat i hodnoty typu NULL nebo standardní (default) hodnoty, Oracle syntaxe nemusí mít v příkazu klíčové slovo VALUES. Dále jsou v [Navrátilová, 2008] v obdobné struktuře uvedeny Základy SQL 4 – DELETE, Základy SQL 5 – DROP, Základy SQL 6 – UPDATE. Základy SQL 7 - SELECT Syntaxe SELECT [DISTINCT | ALL] {* | column1[, column2]...} FROM {table_1 | (subquery)} [alias] [, {table_2 | (subquery)} [alias]]... [WHERE condition] [CONNECT BY condition [START WITH condition] [GROUP BY expn] [HAVING expn] [{ UNION [ALL] | INTERSECT | MINUS } SELECT . . . ] [ ORDER BY [expn ] [ ASC | DESC] [ FOR UPDATE [OF [user.]table | view] column ] [NOWAIT] Proměnné: Column1, column2 – jména sloupců, se kterými pracujeme. Table_1, table_2 – jména tabulek, se kterými pracujeme. Subquery – vložený výraz typu SELECT. Alias – zkrácené jméno tabulky nebo reference (odkazu). Klíčová slova: WHERE condition – podmínka pro výběr DISTINCT – omezení duplicity záznamů, ALL – vše FROM – ze které tabulky CONNECT BY condition – propojení pomocí podmínky START WITH – začít s podmínkou GROUP BY expn – seskupit podle HAVING expn – omezení podmínkou UNION – propojení více příkazů dohromady INTERSECT – příkaz pro průnik příkazů MINUS – příkaz pro rozdíl příkazů ORDER BY expn – seřazení podle vhodné vlastnosti, ASC vzestupně, DESC sestupně FOR UPDATE OF – jako aktualizace SYSTÉMOVÁ INTEGRACE 4/2009
93
P. Burian, P. Dvořák
NOWAIT – pokud je uzamčeno, nečeká se na uvolnění Rozdíly v syntaxi: SQL server nepodporuje použití klíčového slova DISTINCTROW,
Příkaz SELECT je asi nejpoužívanějším příkazem jazyka SQL a slouží k vybírání a zobrazování určitých dat z tabulky. Jeho syntaxe je poměrně složitá, my si zde uvedeme jen její nejdůležitější součásti. Nejjednodušší forma příkazu SELECT vybírá (zobrazuje) celou tabulku a její podoba vypadá takto: SELECT * FROM JmenoTabulky
Obr. 2.4. Zobrazení celé tabulky. Dále je v kurzu probíráno spojování tabulek pomocí primárních a sekundárních klíčů.
2.1.3 Zkušební testy Vytváření testů Při vytváření otázek jsou dodržována následujících kritérií: Otázky by neměly být příliž těžké. Složité otázky (a jejich následné špatné hodnocení) studenty odrazuje od dalšího studia. Otázky by měly vyzkoušet všechna probíraná témata. Otázky by neměly zkoušet z přesné syntaxe nebo detailů práce s jazykem – studenti si nemusí všechno pamatovat, mohou se k učebnímu textu kdykoliv vrátit a zkontrolovat si syntaxi – měly by zkoušet spíše teoretické znalosti nutné k pochopení práce s jazykem SQL. Otázky jsou vytvářeny většinou jako výběr z více možností, kde byla jedna správná: Všeobecně je tato „testová“ forma pro studenty příjemnější, nemusejí strávit spoustu času vymýšlením odpovědí. Zároveň tato podoba umožňuje snadné hodnocení výsledků a jejich okamžité zobrazení – student si tedy ihned může zkontrolovat, jak v právě provedeném testu dopadl.
Testové otázky Základy SQL 1 – Úvod 1. 2. 3. 4.
94
Můžeme příkazy v jazyce SQL rozdělit na více řádků? (ano) Jak vypadá proměnná psaná v konvenčním stylu pascal? (JmenoPromenne) Jakým způsobem vložíme do příkazu komentář? (/*komentář*/) Pokud je v obecné syntaxi hranatá závorka: (Značí nepovinnou část příkazu)
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
5. Pokud je v obecné syntaxi kulatá (klasická) závorka: (Musí se vyskytnout v příkazu)
Základy SQL 2 – Create 1. 2.
Co je to integer? (Číselný datový typ) Jaký je rozsah čísla typu integer? (od -2 147 483 648 do 2 147 483 647)
3.
Co je specifikou datového typu float? (Pohyblivá desetinná čárka) Kolik může mít cifer číslo typu real? (18) Jaký datový typ můžeme použít pro řetězec? (Varchar) Jakým příkazem vytvoříme tabulku Studenti? (CREATE TABLE Studenti) Jak v příkazu vytvářejícím tabulku (CREATE) vytvoříme sloupec Jmeno typu Varchar? (Jmeno Varchar) 8. Co je to primární klíč? (Sloupec tabulky, v němž se hodnoty neopakují) 9. Co je to NULL? (Neznámá hodnota) 10. Jaký příkaz nám vytvoří náhled na tabulku? (CREATE VIEW) 4. 5. 6. 7.
Základy SQL 3 – Insert 1. 2. 3. 4. 5.
Příkaz INSERT slouží k: (Vkládání dat do tabulky) Správná obecná struktura příkazu INSERT je: (INSERT INTO JmenoTabulky VALUES (Hodnota1, Hodnota2 ...)) Data v závorce za klíčovým slovem VALUES: (Musí být ve stejném pořadí jako jsou sloupce tabulky) Pokud neznáme vkládanou hodnotu: (Vložíme slovo "NULL" (pokud to tabulka povoluje)) Můžeme vložit hodnotu NULL do sloupce označeného jako primární klíč? (Nepravda)
Základy SQL 4 – Delete 1. 2. 3. 4. 5.
Příkaz DELETE slouží ke: (Smazání záznamu) Klíčové slovo WHERE nám určuje: (Podmínku v příkazu) Jak smažeme všechny řádky tabulky, aby tabulka samotná zůstala zachována? (DELETE FROM JmenoTabulky) Jaká je struktura příkazu DELETE? (DELETE FROM JmenoTabulky) Můžeme příkazem DELETE smazat hodnoty NULL z tabulky? (Ano)
Základy SQL 5 – Drop 1. 2.
Příkaz DROP: (Smaže tabulku) Jaká je struktura příkazu DROP? (DROP TABLE JmenoTabulky)
Základy SQL 6 – Update 1. 2. 3.
Příkaz UPDATE slouží k: (Aktualizaci dat v tabulce) Další klíčové slovo, které musí být v příkazu společně se slovem UPDATE je: (SET) Jaká je struktura příkazu UPDATE? (UPDATE JmenoTabulky SET MěněnáData=NováData)
SYSTÉMOVÁ INTEGRACE 4/2009
95
P. Burian, P. Dvořák
4. 5.
Můžeme v příkazu pro aktualizaci dat v tabulce používat podmínku určenou klíčovým slovem WHERE? (Pravda) Můžeme příkazem UPDATE změnit všem studentům fakultu na FCHI? (Pravda)
Základy SQL 7 – Select 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
17.
Příkaz SELECT slouží k: (Vybírání dat z tabulky) Co udělá příkaz SELECT * FROM Studenti? (Vybere všechny záznamy z tabulky Studenti) K čemu slouží v příkazu SELECT klíčové slovo AS? (Ke změně zobrazení jména sloupce) Které klíčové slovo uvozuje podmínku? (WHERE) Který znak se nemůže použít při porovnávání záznamů v tabulce při vytváření podmínky? (*) Co můžeme porovnávat v podmínkách? (Záznamy typu řetězec i číselné záznamy) Co znamená klíčové slovo OR mezi jednotlivými podmínkami? (Sjednocení podmínek) Pokud v příkazu SELECT mezi podmínky vložíme klíčové slovo AND, zobrazí se nám záznamy splňující: (Obě podmínky zároveň) Klíčové slovo DISTINCT: (Nezobrazí duplicitní záznamy) Která klíčová slova slouží pro seskupování záznamů? (GROUP BY) Co je výstupem agregační funkce? (Číslo) Která agregační funkce nám nejlépe poslouží při počítání záznamů? (COUNT) Který příkaz nám seřadí záznamy? (ORDER BY) Který parametr slouží pro seřazení sestupně? (DESC) Co je to cizí klíč? (Sloupce, které logicky propojují tabulky) Jaká je struktura spojování tabulek pomocí JOIN? (SELECT JmenoSloupce1, JmenoSloupce2 ... FROM JmenoTabulky1 JOIN JmenoTabulky2 ON JmenoTabulky1.Klic = JmenoTabulky2.Klic) Jaká je struktura spojování tabulek pomocí WHERE? (SELECT JmenoSloupce1, JmenoSloupce2... FROM JmenoTabulky1, JmenoTabulky2 WHERE Tabulka1.Klic = Tabulka2.Klic)
V práci [Navrátilová, 2008] byla vytvořena On-line příručka základních příkazů jazyka SQL pro práci s databázovými tabulkami. Cílem bylo vytvořit tuto příručku tak, aby byla snadno pochopitelná a použitelná i pro uživatele, kteří se s databázovým jazykem SQL předtím nikdy nesetkali a po jejím nastudování by měli být schopni vytvořit a spravovat jednoduché databáze a získávat z nich data. Samozřejmě, jazyk SQL má širší možnosti použití, než ty, které jsou popsané v této příručce, ale právě s ohledem na cílovou skupinu nebyly pokročilé příkazy v této fázi zařazeny. V současné době je příručka zveřejněna na adrese: http://ilearnnew.vscht.cz, v rámci intranetové sítě VŠCHT – Praha.
96
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
2.2
On-line učební text základních příkazů jazyka PL/SQL – XML a jejich příkladů pro práci s databázovými systémy vytvořený pomocí systému Oracle iLearning
Tento kurz byl vytvořen v rámci bakalářské práce [Vejčíková, 2008].
2.2.1 Stručně o jazyce PL/SQL a XML Jazyk PL/SQL je jedním z důležitých jazyků, ke kterým mají vývojáři při vývoji aplikací pro databázový server Oracle přístup. PL/SQL (Procedural Language for Structured Query Language) je mnoho let součástí systému Oracle. Poprvé se jazyk PL/SQL objevuje v databázovém serveru Oracle verze 6. Až od verze 7 bylo možné používat uložené procedura, balíčky (Packages) a aktivační procedury, které v předchozí verzi k dispozici nebyly. Verze 7 byla uvedena v roce 1992.
Proč používat jazyk PL/SQL? -
V jazyce PL/SQL je vytvořena sada aplikací od společnosti Oracle. Téměř veškerá data jsou v současné době zpracovávána právě v tomto jazyce. V PL/SQL je vytvořen modul Workflow Engine, který zpracovává průběh operací databáze. Pro správu databází v systému Oracle je v jazyce PL/SQL vytvořeno celé rozhraní (např. balíčky DBMS_STATS, UTL_OUTLN, atd.). Použití jazyka PL/SQL je při práci rychlejší a efektivnější. K použití jazyka PL/SQL postačí textový editor společně s nástrojem SQL*Plus.
Základní příkazy jazyka PL/SQL Pro PL/SQL jsou důležité následující čtyři objekty: Procedury. (Procedura je deklarována v deklarační části bloku). Balíky - Packages. (Skupina anonymních PL/SQL objetů, procedur a funkcí zapouzdřených do jedné logické jednotky). Funkce. (Jsou podobné uloženým procedurám, jen musí vrátit nějakou hodnotu.) Spouštěče - Triggers. (Trigery se používají pro zajištění referenční integrity.)
Základní struktura jazyka PL/SQL DECLARE Declare block BEGIN Body block EXCEPTION Exception block END; Deklarační blok (Declare block) obsahuje definice proměnných a kursorů.
SYSTÉMOVÁ INTEGRACE 4/2009
97
P. Burian, P. Dvořák
Tělo (Body block) obsahuje proveditelný kód, který můžeme rozdělit do vnořených podbloků. Blok výjimek (Exception block) je část programu, která řídí chybové stavy pro případ předdefinovaných výjimek. Povinné je pouze tělo programu, všechny ostatní části jsou volitelné. Použití PL/SQL je ve formě databázových triggerů uvnitř databáze. Celý kód jazyka PL/SQL je možné psát a spouštět v rámci nástroje SQL*Plus nebo nástroje SQL Developer. Pomocí jazyka PL/SQL se provádí příkazy: SELECT, INSERT, UPDATE, DELETE, COMMITT, ROLLBACK. Pomocí příkazů jazyka PL/SQL lze tvořit PROMĚNNÉ, používat přiřazovací příkazy, používat OPERÁTORY POROVNÁNÍ, používat logiku podmíněných příkazů typu: IF – THEN – ELSE, dále používat struktury pro opakující se příkazy typu FOR LOOP a WHILE LOOP. Používat příkaz skoku typu GOTO. V jazyce PL/SQL není dovoleno používat příkazy DDL (Data Definition Language).
Jazyk XML Jazyk XML neboli eXtensible Markup Language, je programovací jazyk, který oceníme při práci se strukturovanými daty. Spolupráce tohoto jazyka s formáty HTML, dokumenty MS Word či Excel, nebo formátem typu PDF a mnohými jinými, dělá z tohoto nástroje všestranného pomocníka při práci s daty. Z uvedeného vyplývá, že k práci s ním není třeba žádné specielní programové vybavení. Nyní si uvedeme rozdíl mezi jazykem HTML (Hyper Text Markup Language) a jazykem XML. Rozdíl je v tom, že jazyk HTML má již nadefinovanou celou sadu značek. Tyto značky mají různý význam. Definují také způsob interpretace dat. Zato XML sady nemá. Ty si uživatel vytváří sám. Pro definování vzhledu je tedy nutné používat jazyky pro určení stylů např. CSS (Cascading Style Sheets) nebo XSL (eXtensible Stylesheet Language) a jiné. CSS vyvinulo konsorcium World Wide Web Consortium známé také pod zkratkou W3C. CSS umožňuje velkou přístupnost vytvořeného webu. XSL je stylový jazyk určený pro převod XML dokumentů na dokumenty jiné, nebo na jiný XML dokument.
XML dokumenty XML dokumenty tvoříme proto, že se HTML nehodí pro nadefinování mnoha typů dokumentů. Jsou to například: - Dokumenty určené pro uspořádání ve stromové struktuře. - Dokumenty postrádající typické části dokumentu. - HTML nemá elementy pro práci s databází. XML má přesně danou syntaxi. Všechny elementy musí mít počáteční a ukončovací značku, což u HTML není nutné. Přesně daná syntaxe jazyka XML zaručuje, že XML dokument má určitou předvídatelnou formu a tedy, že to ulehčuje tvorbu programového vybavení pro zpracování. V databázích se jazyk XML používá pro označení jednotlivých polí uvnitř záznamu z databáze. Tímto zobrazením zajistíme, že se data budou moci zobrazovat různým způsobem, řadit se, třídit se, filtrovat se, atd.
98
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Každý dokument XML se skládá ze dvou základních částí: Prolog a Kořenový element. Prolog obsahuje deklaraci XML. Deklarace udává typ dokumentu a použitou verzi XML. Další částí v prologu je prázdný řádek. Po prázdném řádku následuje komentář. Z výše uvedeného zápisu je jasné, že zápis prologu je následující: Dále může prolog obsahovat deklaraci DTD (Document Type Declaration). DTD definuje strukturu, obsah a typ dokumentu. V prologu také můžeme nalézt instrukce obsahující informace, které procesor XML předává aplikaci. Tyto části jsou nepovinné. V kořenovém elementu jsou umístěny všechny ostatní elementy. Element se skládá z počáteční značky, z obsahu elementu a z ukončovací značky. Obsahem elementu mohou být znaková data a další elementy či jejich kombinace. Při vytváření XML dokumentů je nutné zcela definovat obsah a strukturu dokumentu buď v DTD nebo v XML schematu. Až poté lze tvořit dokument XML, přičemž se dodržují všechny specifikace v DTD (DTD definuje obsah a strukturu XML dokumentu a zbývající části mají formát obsahu a struktury v souladu s deklarací typu dokumentu.) nebo XML schematu. Tímto zajistíme, že dokument, který jsme vytvořili, odpovídá specifické struktuře nebo sadě standardů DTD nebo XML schematu. Pokud se stane, že nějaká část v dokumentu neodpovídá specifikaci buď v DTD nebo v XML schematu, tak procesor zobrazí chybovou hlášku.
2.2.2 Výukové materiály, lekce jazyka PL/SQL a XML Lekce PL/SQL – XML V rámci práce [Vejčiková, 2008] byly vytvořeny záladní lekce distanční internetové výuky pomocí systému Oracle iLearning pro výuku příkazů jazyka PL/SQL a XML.
Možnosti prohlížení Do systému Oracle iLearning je možné vkládat dokumenty vytvořené pomocí prostředků, nástrojů: Microsoft Word, PowerPoint, FrontPage, pomocí nástroje Acrobat Reader, pomocí formátů .tif, .gif, .jpeg. Dále pomocí zvukových záznamů, pomocí videozáznamů, pomocí multimediálních záznamů. Systém Oracle iLearning je plně vybaven Nápovědou, proto případné dotazy budou uživateli dle možnosti zodpovězeny. Na základě výše uvedených informací bylo vytvořeno několik učebních kurzů pro Internetovou výuku v rámci systému Oracle iLearning. Vytvořené učební texty byly převedeny do požadovaného formátu a přípraveny pro zveřejnění v systému Oracle iLearning. Pro větší přehled v kurzech a lekcích je nutné před zveřejněním zajistit funkční a přehlednou strukturu ukládaných dat.
2.2.3 Vytváření kurzu Kurz vytváříme v několika krocích, které stručně uvedeme.
SYSTÉMOVÁ INTEGRACE 4/2009
99
P. Burian, P. Dvořák
Přihlášení Nejdříve je nutné přihlásit se do systému jako administrátor a přepnout se do funkce administrátora (viz Obr. 2.5.).
Obr. 2.5. Administrátorská ikona.
Administrace Poté už se v levém menu klikne na hlavní složku, pod kterou chce uživatel založit svou strukturu složek, obsahů, testů, kopií a odkazů.
Obr. 2.6. Oblast ikon pro tvorbu struktury. Samotná složka se vytvoří kliknutím na ikonu vlevo v červeném obdélníku na obr. 2.6. Poté se pod námi zvolenou složkou objeví volné okno, kam se vypíše požadovaný název složky. Po zápisu názvu se klikneme na nápis Hotovo a náš záznam se uloží. Takto se tvoří složky a stejným způsobem i složky ve složce.
Tvorba kurzu Tvorba kurzu probíhá velmi podobně jako tvorba složky ve struktuře pouze s tím rozdílem, že klikneme na druhou ikonu s názvem Nový obsah. Opět se vyplní námi požadovaný název kurzu a klikne na nápis Hotovo. Pokud klikneme na námi vytvořenou složku, tak v pravé části pracovní plochy se zobrazí možnosti pro editaci složky ve struktuře. V tomto okně se pohybujeme pomocí nabídek menu umístěných nahoře (Vlastnosti, Povolení, aj.), (viz obr. 2.7.).
Obr. 2.7. Prostředí Vlastnosti složky. V první části Vlastnosti je v nabídce editace názvu složky, zrušení složky a import, export a zavedení souborů. V další nabídce menu Povolení administrátor nastavuje 100
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
práva, která bude mít daná složka, která je právě označená v levém menu (kdo bude mít právo čtení, zápisu, mazání). Po přepnutí do této sekce se stiskne tlačítko Udělit povolení a poté se nastavují kritéria jednotlivým uživatelům. Následuje záložka Události. Na obr. 2.8. je vidět, jaké v této sekci nalezneme možnosti. Odkaz Studijní předměty umožňuje provádět správu předmětů, které jsou ve složce umístěny. Tímto se docílí toho, že studenti budou moci své předměty snáze najít. Odkaz Výukové cykly, umožňuje správu Výukových cyklů. Stejně tak je tomu i v ostatních případech. Nabídka menu Banka testů obsahuje obsah všech testů, které daná složka obsahuje. V této sekci můžeme zadané testy editovat, mazat a upravovat. Veškerá editace probíhá pomocí grafických prvků (Toto bude uvedeno dále.).
Obr. 2.8. Možnosti záložky Události. Ikony pro úpravu, editaci složky jsou na obr. 4.22.
Obr. 2.9. Ikony pro úpravu vlastností složky. Pokud vytvoříme kurz, a tedy položku Nový obsah (modrá knížka na horní liště viz obr. 2.6.), je nabídka menu Vlastnosti poněkud rozdílná od nabídky menu Vlastnosti uvedené výše. Jak je z ukázky na obr. 2.9 zřejmé, tak se menu rozrostlo o některá tlačítka pro editaci obsahu.
Povinné části Jako první se vyplňuje část Obecné. Jak je vidět na Obr. 2.10. tak pole Identifikátor má u sebe přiřazenu též hvězdičku, ovšem v tomto případě dochází k vyplnění automaticky. Program si sám hlídá, aby každá složka, kurz i test měli své unikátní označení. Dále je nutné vyplnit položky Nadpis, Typ sledování, Typ obsahu a Jazyk. Podle toho jaký jazyk uživatel nastaví, tak podle toho bude test generován. Abychom nadefinovali, že Nový obsah bude skutečně kurz, tak v poli Typ obsahu vybereme možnost Course. Další povinnou částí, kterou je nutné vyplnit je část s názvem Umístění obsahu. V této sekci je nutné vyplnit URL adresu (Server obsahu – Content Server), Adresář a Úvodní soubor. Ostatní pole i ve zbylých částech záložky Vlastnosti není nutné vyplňovat.
SYSTÉMOVÁ INTEGRACE 4/2009
101
P. Burian, P. Dvořák
Obr. 2.10. Rozlišení polí povinných částí.
Obr. 2.11. Umístění obsahu. Po vyplněných povinných (případně i nepovinných) polí se stiskne tlačítko Aktualizovat a zadaná data se uloží do systému. Systém pozná, pokud nebylo
102
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
vyplněno nějaké pole a uživatele na tuto skutečnost upozorní, jak je vidět na obr. 2.12. Pokud je vše v pořádku, tak to systém opět uživateli oznámí.
Obr. 2.12. Hlášky při stisknutí tlačítka Aktualizovat.
Kapitoly kurzu Stejným postupem vytváříme i jednotlivé kapitoly kurzu. Vždy tlačítkem Nový obsah, zadáním námi požadovaného jména do pole a stisknutím tlačítka Hotovo. V pravém poli zůstává stejná nabídka menu. Rozdíl je v obsahu nabídka menu Vlastnosti. V záložce Vlastnosti jsou opět modré hvězdičky pro určení povinně vyplnitelných v polích. Stejná je i vlastnost pole Identifikátor, které se vyplní automaticky. Tak kde je ten rozdíl? Rozdíl je v poli Typ obsahu. Zde již není na výběr z položek Course nebo Curriculum. Místo toho se tam objevily položky Topic group a Topic. Označení Topic group zařídí, že se kapitola může ještě dělit na podkapitoly. V případě, že vybereme možnost Topic, tak se již daná kapitola dále nedělí.
Obr. 2.13. Základní hlavička tvorby kurzu. V části Umístění obsahu musíme zadat umístění souboru, nebo jeho adresu, aby bylo jasné, kde se obsah nachází. V dalším kroku se stiskne tlačítko Aktualizovat a kurz je vytvořen. Stejně se postupuje i při tvorbě dalších kurzů.
Zveřejnění Po vytvoření požadovaných kurzů a kapitol se vrátíme na kořenovou složku vytvořené struktury a stlačíme tlačítko Zveřejnit. Aby mohla veřejnost přistupovat k vytvořenému kurzu, je ještě nutné stisknout tlačítko Nabídnout. Nabídnutí kurzu zjistíme i podle písma jakým je název kurzu napsán ve struktuře vlevo. Typ písma kurzíva označuje materiály, které doposud zveřejněny nebyly. SYSTÉMOVÁ INTEGRACE 4/2009
103
P. Burian, P. Dvořák
Pokud klikneme na hlavní větev daného kurzu, tak se nám v levé části pracovní plochy zobrazí lišta s možnostmi. Mimo jiné se na ní nachází nabídka menu Povolení, ve které se nastavují práva uživatelů. Na obr. 2.14 je příklad nastavení práv. Musí se zadat skupina uživatelů nebo jednotlivec, kteří budou mít oprávnění pro četbu, či zápis, nebo mazání.
Obr. 2.14. Nastavení práv. Po nastavení práv k jednotlivým uživatelům se nám objeví tabulka, dle obr. 2.14., ve které budou uvedená oprávnění a kdo toto právo smí využívat. Další informace jsou uvedeny např. v nápovědě..
2.2.4
Tvorba testů a tvorba Banky otázek
Kontrolní, testovací otázky V rámci systému Oracle iLearning byla vytvořena databáze kontrolních otázek. Tyto kontrolní otázky procvičují navržené základní lekce internetové výuky příkazů jazyka PL/SQL - XML. Stručný popis byl uveden výše. V tomto případě je nejdříve nutné vytvořit nebo vybrat složku, kde budou připraveny okruhy testovacích otázek. V přiložené struktuře na obr. 2.15. je patrné, na jaké úrovni je nutné složku vytvořit. V této složce postupně tvoříme jednotlivé banky otázek.
Obr. 2.15. Umístění banky otázek. Po kliknutí na složku Otázky, se vlevo objeví již známé záložky. V záložce Banka testů nalezneme všechny vytvořené testy. Každý test uložený v tabulce má svůj řádek. V tabulce je uveden název testu, zda je daný test zveřejněn a datum jeho vytvoření. Dále jsou v tabulce tři grafické prvky, které zpříjemňují práci s testy.
104
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Obr. 2.16. Seznam vytvořených bank otázek. V tabulce jsou uvedeny všechny testy. Je zřejmé, tak testy musí obsahovat i nějaké otázky. V tomto případě je zadávání otázek do testu velice snadné a intuitivní.
Možnosti odpovědí Nejprve si při zadávání testovacích položek, dle možnosti můžeme vybrat, jakým stylem chceme, aby student odpověděl. Na výběr jsou následující možnosti: Vyplnit (textová odpověď viz obr. 2.17.) – výsledkem je otázka, na kterou musí student odpovědět správně pouze jednu (nebo více) správnou odpověď, v tomto případě je odpověď pouze jedna a je uvedena pod polem.
-
-
-
Obr. 2.17. Textová odpověď typu Vyplnit. Vyplnit (číselná odpověď) – číselná alternativa výše uvedené odpovědi. Pravda nebo nepravda (viz obr. 2.18.) – zadá se jisté tvrzení a student musí odhadnout, zda toto tvrzení je pravdivé či nepravdivé, správná odpověď je uvedena pod tvrzením a je označena symbolem (*). Více možností (jedna správná odpověď viz obr. 2.19.) – na zadanou otázku si student musí vybrat odpověď z nabídky, z uvedených odpovědí je vždy jen jedna správná. Více možností (více správných odpovědí viz obr. 2.20.) – na zadanou otázku student musí vyznačit všechny správné odpovědi, které přísluší dané otázce.
SYSTÉMOVÁ INTEGRACE 4/2009
105
P. Burian, P. Dvořák
Obr. 2.18. Odpověď typu Pravda nebo Nepravda.
Obr. 2.19. Odpověď typu Více možností (jedna správná odpověď).
Obr. 2.20. Odpověď typu Více možností (více správných odpovědí). Jak je patrné na obr. 2.21, je možné využít možnost vložení i vlastních komentářů ke každé odpovědi. Námi zobrazený komentář se objeví při vybrání odpovědi, ke které je komentář přidán.
106
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Obr. 2.21. Odpovědi s komentáři.
Zveřejnění Když již máme všechny požadované otázky zadané a uložené, klikneme na záložku Banka testů a zobrazí se seznam všech vytvořených testů. Poté zvolíme možnost Zveřejnit a tím již bude test připraven pro další použití. Kliknutím na položku Vytvořit Rychlý test se přesuneme na stránku, kde zadáme námi požadovaný název testu. Poté se u pole Umístění klikne na symbol baterky a tím se přejde na okno, kde vybereme cestu pro uložení testu. Tím je test hotov.
Výsledky V této chvíli je možné se podívat na výslednou strukturu vytvořených složek, testů a kurzů. Všechny vytvořené složky, kurzy, lekce a testy jsou umístěny v logické struktuře dle tématu vypracování. Všechny dokumenty, které jsou nabídnuty veřejnosti, jsou označeny symbolem brýlí, jak je vidět na obr. 2.22. Byly představeny základní příkazy jazyka PL/SQL, struktury XML Schéma a dokumenty typu XML DTD. Stručně a názorně byly popsány důležité příkazy systému LMS (Learning Management System) Oracle iLearning. Struktura výukových textů v prostředí Oracle iLearning je plně připravena na on-line výuku. Práce s prostředím Oracle iLearning je vcelku intuitivní a student se v něm může orientovat poměrně snadno a rychle.
SYSTÉMOVÁ INTEGRACE 4/2009
107
P. Burian, P. Dvořák
Obr. 2.22. Výsledná struktura seznamu všech vytvořených testů.
108
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
2.3 Příklady kurzů společnosti GOPAS Společnost GOPAS (http://www.gopas.cz) nabízí kromě řady klasických kurzů v počítačové učebně též řadu kurzů typu e-Learning na CD ROM včetně kurzů v rámci systému LMS Oracle iLearning. Jedná se např. o kurzy pro: MS Office XP CZ (MS Windows XP, MS Word XP, MS Excel XP, MS Power-Point XP, MS Accsess XP, MS Outlook XP), Oracle Database 10g. Oracle Database 11g, aj.
3. Výukové texty a kurzy v rámci portálu Oracle AS Portal 10g a internetového portálu Oracle APEX Tyto materiály obsahují popis výukových, pedagogických textů, příklady, avšak neobsahují kontrolní otázky, testy, tak jak je to obvyklé v systému Oracle iLearning.
3.1
Návod a příklady práce se systémem Oracle AS Portal 10g pomocí prostředků tohoto portálu v intranetové síti VŠCHT - Praha
Tento Portál s výukovým, pedagogickým textem byl vytvořen v rámci bakalářské práce [Felber, 2008]. Stručně je popsáno vytvoření užívatelské příručky pro Oracle Application Server (AS) Portal 10g. Příručka je vytvořená pomocí prostředků Oracle Application Server Portal 10g, které jsou nainstalované na servrech umístěných ve VC VŠCHT v Praze. Tato příručka je určená zejména pro studenty navštěvujíci VŠCHT-Praha, avšak přirozeně je koncipována jako příručka pro obecnou výuku práce s Oracle AS Portal 10g. Tato příručka je sestavena tak, aby s ní mohl pracovat i ten, kdo nemá specielní znalosti (např. jazyka SQL) v oblasti databázových a informačních systémů. Příručka je rozdělená do osmich částí, které jsou tvořené formou záložek. První záložku tvoří Úvod, kde je možnost v krátkosti se seznámit s tímto Portálem. Další záložky slouží k tvorbě databázových objektů (tabulky, pohledy, procedury, spouštěče–trigery (triggers)), databázových aplikácí (Report, Formulář, Graf), vytvoření stránky a databázové aplikace. Postup vytváření těchto objektů, aplikací, stránek je aplikovaný už na konkrétním příkladě, který je doložený i názornými obrázky, čím je uživateli umožněné rychleji a lehčeji být schopen se orientovat, pracovat a chápat tento Portál, [Lacko, 2007], [Loney, 2006], [Oracle_glob_grid, 2009], [Oracle_glob, 2008].
Postup tvorby Vzorová databáze této příručky je aplikovaná na příkladě auto půjčovny. Databáze byla navržena tak, aby se dali vytvářet potřebné databázové objekty, databázové aplikace a relační vazby. Užívatelé se naučí pracovat s tabulkami a jejich vzájemným propojením pomocí primárních a cizích klíčů, vytvoření pohledu, reportu, formuláře, grafu a též samotného portálu (webové stránky, resp. webových stránek).
Příručka pro práci s Oracle Application Server Portal 10g Plný text této příručky sa nachází na portále Oracle AS Portal 10g v rámci intranetové sítě VŠCHT–Praha (http://oraias2.vscht.cz:10045/pls/portal).
SYSTÉMOVÁ INTEGRACE 4/2009
109
P. Burian, P. Dvořák
Portál Oracle slouži pro vytváření databázových objektů, databázových aplikací a též tvorbu dynamických internetových a intranetových stránek. Hlavní výhody Oracle Portálu: Při používání portálu není potřebné instalovat žádné programové vybavení na PC. Tvorba probíhá prostřednictvím Internetového prohlížeče. Všechny stránky jsou založené na standardní šabloně, která se nedá náhodně, ani úmyslně pozměnit. Obsahuje mnoho rozvinutých znaků, jako je například vyhledávání a navigáce, které jsou automaticky vytvářené průběžně během tvorby stránky. Podpora velkého počtu užívatelů. Umožňuje bezpečný přístup k informacím, samoobslužné publikování, on-line spolupráci a automatizaci procesu. Oracle AS Portal 10g se nachází na intranetové stránce http://oraias2.vscht.cz:10045/pls/portal. Přihlásit se je možné po kliknutí na Login na hlavní stránce, kde se zobrazí přihlasovací menu. Užívatelské jméno je tester02 a heslo je tester02. Na úvodní straně Portálu je náhled na hlavní stránku, kterou tvoří „tlačitka“ s těmito možnostmi. V pravém horním rohu se nacházejí odkazy Home, Builder, Navigator, Help. Odkaz Home zobrazí hlavní stránku, která se zobrazí po přihlášení. Builder slouži k návrhu stránky. Navigator poskytuje přehled struktúry stránky zobrazené jako skupina seznamů ze seznamu stránek (Page Groups), stránek a podstránek. Slouži k práci s databázovými objekty, aplikacemi a umožňuje vytváření Webových stránek (Web Pages). Při použití odkazu Navigátor je potřebná jistá opatrnost, neboť smazání jedné stránky může mít za následek i smazání její podstránky. V případě potřeby lze použít odkaz Help. Pod odkazy jsou umístěné záložky Welcome, Build, Administer. Welcome je uvítací stránka, kde je umístěn též stručný návod pro návrh portálu a vkládání obsahu. V záložce Build se tvoří a upravují stránky. Záložka Administer slouži pro správu portálu. Po kliknutí na odkaz Navigator se zobrazí záložky Page Groups, Providers, Database Objects (obr. 3.1.).
110
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Obr. 3.1. Odkaz Navigátor. Pod záložkou Page Groups jsou zobrazené stránky vytvořené užívatelem. Pod záložkou Providers jsou uložené všechny databázové aplikace. Pod záložkou Database Objects jsou uložené všechny databázové objekty. Při kliknutí na schéma TESTER01 se zobrazí nabídka vytvořených databázových objektů - objects (viz obr. 3.2.).
Obr. 3.2. Záložka Database Objects (Databázové objekty). Pod odkazem Navigátor se nachází vyhledávač (Finder), který vyhledává podle názvu (zástupným symbolem je %) např. %hledané slovo%. V záložce Database Objects se vytvářejí objekty: Table, View, Procedure, Function, Package, Sequence, Synonym, Index, Trigger, Database Link, Java Object, Script. Seznam databázových objektů je rozdělený do 5 sloupců (obr. 3.3.). - Typ objektu vytvořeného užívatelem. - Název objektu vytvořeného užívatelem. - Přístupné akce, které užívatel může vykonávat. - Název Schéma, pod kterým byl objekt vytvořen. - Datum poslední změny v objektu. Po kliknutí na tlačítko Locally Built Providers v záložce Providers (obr. 3.3.), se zobrazí aplikační prostor. SYSTÉMOVÁ INTEGRACE 4/2009
111
P. Burian, P. Dvořák
Obr. 3.3. Záložka Providers. Záložka Page Groups. Zvolení možnosti GPS (obr. 3.4.).
Obr. 3.4. Záložka Page Groups (Vytváření a prohlížení webových stránek portálu.). V případe, vytvoření stránky, je potřebné z nabídky GPS vybrat možnost Pages (obr. 3.5.).
Obr. 3.5. Nabídka GPS.
112
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Po vybrání možnosti Pages, seznam zobrazuje přehled už vytvořených stránek. Stránky se vytvářejí v nabídce Create new vybráním možnosti Page. Dále je v [Felber, 2008] a ve výše uvedené Příručce podrobně popsán postup vytváření databázových objektů, aplikací a stránek, který je též aplikovaný na konkrétním příkladě.
3.2 Databáze pojmů Servisně orientované architektury – SOA Tento Portál byl vytvořen v rámci bakalářské práce [Veselý, 2008]. Cílem této práce bylo zjistit smysl celé servisně orientované architektury, a zjistit význam jednotlivých pojmů z této oblasti pro pedagogické účely. Výstupem jsou informační stránky na školním portále VŠCHT – Praha, Oracle Portal AS 10g obsahující texty uvedené v této bakalárské práci a databázi pojmů ze Servisně orientované architektury - SOA. Servisně orientovaná architektura SOA (Service Oriented Architecture) je všeobecně chápána a přijímána jako další fáze budování podnikových informačních systémů. Informační systémy založené na SOA jsou sestaveny ze vzájemně provázaných procesů postavených na službách. Architektura SOA umožnuje vytvořit flexibilnější podnikové systémy. Výsledkem je akceschopný podnik, který muže rychleji reagovat na změny na trhu, v reálném čase přizpusobit soji činnost okolnostem a nabízet nové produkty a služby rychleji než konkurence. Za Servisně orientovanou architekturu SOA označujeme soustavu volně vázaných (programových) služeb, které jsou používané k podpoře nějakého obchodního nebo výrobního procesu. V prostředí SOA jsou zdroje (jednotlivé služby) dostupné na síti jako nezávislé služby, které mohou být používány bez znalosti toho jak je konkrétní zdroj implementován. Servisne orientovaná architektura není vázaná na konkrétní technologii a muže být implementovaná za použití velkého množství standardů, [SI2006, 2006], [SI2007, 2007], [Burian-4, 2008], [SOA, 2008], [SOA_glos, 2008], [SOA_Microsoft, 2008], [SOA_soft, 2008], [Oracle, 2008]. Portál Oracle Portal AS 10g je provozován v rámci Intra/Internetové sítě VŠCHT na adrese: http://oraias2.vscht.cz:10045/pls/portal. Pod záložkou SOA v tomto Portále je možno najít vysvětlující texty řady pojmů z oblasti SOA a popř. databází. V tomto „rejstříku“ jsou uvedeny např. pojmy z oblasti SOA jako: Aktivita: jeden krok v obchodním nebo výrobním procesu. Obvykle realizována službou. Asynchronní komunikace: Forma komunikace, kde vzniká určitý časový rozdíl mezi vysláním a přijetím. Typické pro SOA. Výhodou této komunikace je fakt, že odesílatel a príjemce nemusí být v daný okamžik oba dostupní. Backend: Sytém spravující data. V SOA je obvykle zapouzdřen do základních služeb. BPEL - Business Process Execution Language: Jazyk založený na jazyce XML, používaný k orchestraci (viz níže) a skládání služeb. Business process: Strukturovaný popis kroků nebo aktivit potřebných ke splnšní konkrétního obchodního požadavku. Composed Service - složená služba: Služba skládající se z dalších služeb. ESB (Enterprise Service Bus) – Sběrnice podnikových služeb: Infrastruktura zajištující interoperabilitu služeb. Základním úkolem je poskytovat spojení a SYSTÉMOVÁ INTEGRACE 4/2009
113
P. Burian, P. Dvořák
směrování služeb, komunikaci a řízení služeb. Podle implementace (dodavatele) může plnit i další role. Governance: V prostredí SOA se jedná o řízení procesů, nástrojů a strategického plánování. HTTP: Hypertext Transfer Protocol. Základní protokol sítě Internetu. Interoperabilita: Schopnost spolupráce mezi rozdílnými systémy. Interoperabilita mezi různými platformami a jazyky je jedním z cílu SOA. Klient: V SOA subjekt hledající nebo požadující nějakou službu. Kontrakt - Contract: Kompletní popis rozhraní služby mezi klientem a poskytovatelem. Nazýváno též"well-defined interface". Model zralosti: Znázornení vyspělosti organizace, podniku podle stádia implementace SOA. Message - zpráva: V SOA to znamená data poskytovaná spolu s provedením služby. Orchestrace: Způsob agregace služeb do obchodmího nebo výrobního procesu. Standardem pro orchestraci je jazyk BPEL. Obvykle Orchestrace skládá služby do vetší složené služby, která pokrývá celý proces. Proces: V SOA se jedná o základní články obchodního nebo výrobního procesu, popisuje obvykle nějakou základní činnost podniku, společnosti. Poskytovatel – Provider: Subjekt nabízející konkrétní službu. Registr - registry: Registry obsluhují služby po technické stránce. Obsahují technické informace pro běh služeb. Registr bývá součástí sběrnice ESB (Sběrnice podnik. služeb). Služba: Realizace nějaké obchodní či výrobní funkce. Popis jedné nebo více operací užívajících zprávy k výměně dat mezi poskytovatelem a klientem. Rozhraní služby - Service Interface: Umožnuje fungování služby v rámci SOA. Jedna služba může mít více rozhraní pro různé technologie nebo využití služby. SOA – Service Oriented Architecture: Servisně orientovaná architektura. Koncept implementace IT (Informační technologie) do struktury podniku, společnosti s důrazem na procesy a služby. SOAP - Simple Object Access Protocol: Základní protokol webových služeb založený na jazyce XML, definuje hlavičku a tělo zpráv webových služeb. UDDI - Universal Description, Discovery and Integration. Standard webových služeb pro registry. Úkol – Task: Jeden dílčí krok v obchodním nebo výrobním procesu. V SOA je obvykle realizován službou. Uložiště – Repository: Úložiště obsluhují služby z pohledu obchodního nebo výrobního procesu. Obsahují informace o rozhraních, kontraktech, SLA, závislostech. Na rozdíl od registru, tyto popisy služeb jsou nezávislé na technickém provedení a infrastruktuře. W3C: World Wide Web Consortium. Mezinárodní konsorcium pro vývoj standardů webových technologií, jako HTML, XSL, aj.
114
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
Webové služby - Web Services: Sada standardů užívaných pro realizaci infrastruktury SOA. Založeno na XML, HTTP, WSDL, SOAP a UDDI. Nyní zahrnuje asi 60 různých standardu. WSDL - Web Services Description Language: Jazyk založený na jazyce XML popisující rozhraní služeb. XML - eXtensible Markup Language: Značkovací jazyk pro výměnu dat.
3.3
Modelová případová studie (Case Study): Oracle AS Portal 10g pro vybrané moduly podnikového ERP systému v síti Internet
Tento Portál byl vytvořen v rámci bakalářské práce [Homolka, 2008]. V rámci Oracle AS Portal 10g byly vytvořeny moduly modelového podnikového ERP systému distribuční společnosti střední velikosti zabývající se distribucí mléčných výrobků. Jedná se o modelovou společnost Nortwind popsanou ukázkovými databázovými tabulkami spol Microsoft [Homolka, 2008]. Jedná se o tabulky: dodavatelů, kategorií výrobků, objednávek, přepravců, výrobků, zákazníků a zaměstnanců. Nad těmito tabulkami byly vytvořeny příslušné formuláře, grafy a reporty pro zápis a zobrazování dat. Tento portál byl vytvořen pro pedagogické účely.
3.4 Aplikace v rámci internetového Portálu Oracle APEX Portál Oracle APEX (Application Express) je určen pro snadné vytváření databázových objektů (tabulek, pohledů, procedur, aj) a databázových aplikací (formulářů, grafů reportů, aj. na webových stránkách) postupným navrhováním v připraveném rozhraní. Vytváření těchto objektů a aplikací vyžaduje pouze Internetový prohlížeč a minimální znalosti programování. Portál i možnost uchovávání databázových objektů můžeme realizovat po zaregistrování na adrese: http://apex.oracle.com. Databázové objekty i aplikace vytváříme pomocí průvodců (wizards). Pro práci s databázovými tabulkami, pohledy, procedurami, spouštěči (triggers) slouží v rámci portálu APEX SQLWorkshop a Object Browser. Object Browser je též podobný nástroji SQL Developer, který byl stručně popsán v odst. 2.1. Aplikaci tj. příslušné webové stránky vytváříme v rámci portálu APEX pomocí nástroje – průvodce (wizard) Application Builder. Pro pedagogické účely byl vytvořen internetový portál Oracle APEX týkající se „Porovnání základních vlastností databázových serverů: Oracle, Microsoft SQL Server, IBM DB2, Sybase, aj. ve formě databázové tabulky, tabulek“. V propojených databázových tabulkách jsou v rámci portálu Oracle APEX u výše uvedených databázových serverů porovnávány zejména základní parametry: název, výrobce, podpora XML, podpora ukládání objektových dat, prostorových dat, podpora zálohování a datových skladů, spolupráce s jinými servery. Pod touto tabulkou se základními parametry jsou dále uvedeny tabulky s podporovanými operačními systémy a s vývojovými nástroji. Další internetový portál Oracle APEX [Zahumenska, 2009] byl vytvořen pro podporu výuky objektově orientovaných technologií. Základ portálu tvoří objektověrelační databáze informací a odkazů týkajících se oblasti objektově orientovaných technologií, s možností využití při výuce. Tabulky databáze jsou prezentovány SYSTÉMOVÁ INTEGRACE 4/2009
115
P. Burian, P. Dvořák
pomocí reportů, které umožňují data třídit podle zvolených kritérií. Součástí portálu jsou i formuláře umožňující zadávaní nových dat. Podrobně je v [Zahumenska, 2009] popsáno vytvoření aplikace v rámci Portálu APEX, tj. analýza a návrh propojených databázových tabulek (týkajících se objektově orientovaných technologií), Formulářů pro zadávání dat do databázových tabulek, struktur Reportů pro výpis dat z databáze. Vývoj aplikace je prováděn pomocí „průvodců“ (wizards), které se spouštějí v internetovém prohlížeči. Tabulky se týkají objektových technologií, typu technologie, vývojových nástrojů a internetových odkazů. Do databáze byly též uloženy informace o konkrétních objektově orientovaných technologiích společně s odkazy na internetové stránky týkající se této problematiky. Databáze umožňuje přehledně prohlížet a třídit uložená data. Je koncipována jako otevřená s možností oprav a přidávání dat pomocí jednoduchých formulářů a nápovědy. Toto též umožňuje možnost budoucího rozvoje obsahu databáze, neboť databáze a samozřejmě celý Portál jsou přístupné obecně z libovolného místa po síti Internet. Tato práce byla vypracovaná za podpory programu č. MSM 6046137306 MŠMT ČR.
Literatura [Burian-1, 2004] Burian P. a kol.: Rozvojový projekt MŠMT ČR: „Nové formy výuky pomocí Oracle iLearning“, VŠCHT – Praha, 2004. [Burian-2, 2005] Burian P. a kol.: Rozvojový projekt MŠMT ČR č. 607: „Nové formy výuky pomocí Oracle iLearning – (pokračování z roku 2004).“, VŠCHT – Praha, 2005. [Burian-3, 2005] Burian P. a kol: Projektová dokumentace Oracle iLearning pro VŠCHT Praha, Rozvojový projekt MŠMT ČR č. 607, 2005. [Burian-4, 2008] Burian, P.: Multiagentní systémy a metodologie pro Architekturu orientovanou na služby a počítání (MAS pro SOA a SOC). Systems Integration 2008, SI2008, 16-th Internat. Conf., Prague, Czech Rep., June 10-11, 2008, ISBN 978-80-245-1373-7. [Burian-5, 2009] Burian, P.: Servisně orientovaná architektura a Multiagentní systémy zvyšují Agilitu průmyslových podnikových ERP systémů. Systems Integration 2009, SI209, 17-th Internat. Conf., Prague, Czech Rep., June 8-9, 2009, ISBN 978-80-245-1373-7. [Černohorský, 2009] Černohorský M..: On-line učební text základních příkazů jazyka SQL a jejich příkladů pro práci s databázovými systémy vytvořený pomocí systému Oracle iLearning. Akad. rok - 2008/2009. Obor ININ. 2009. Bakal. práce, VŠCHT–Praha ved. Ing. P. Burian, CSc. [Dvořák, 2008] Dvořák P.: Vytvoření Návodu (User Guide), příkladů práce a zkušebních otázek se systémem Oracle AS Portal 10g pomocí systému Oracle iLearning. Ak. rok - 2007/2008. Obor ININ (Inžen. informatika). 2008, Bakal. práce, VŠCHT–Praha, ved. Ing. P. Burian, CSc. [Felber, 2008] Felber A.: Návod a příklady práce se systémem Oracle AS Portal 10g pro uživatele sítě VŠCHT Praha pomocí prostředků Oracle AS Portal 10g v
116
SYSTÉMOVÁ INTEGRACE 4/2009
Distanční, internetová výuka, Portály a systém Oracle iLearning pro výuku …….II
síti Internet. Ak. rok - 2007/2008. Obor ININ (Inžen. informatika). 2008. Bakal. práce, VŠCHT–Praha, ved. Ing. P. Burian, CSc. [Gopas, 2005] Gopas a.s.: Knihovna elektronických kurzů Microsoft Office. http://www.gopas.cz, Praha, CD ROM, 2006. [Homolka, 2008] Homolka O.: Vytvoření modelové případové studie (Case Study): Oracle Portal 10g pro vybrané moduly podnikového ERP systému v síti Internet. Akad. rok - 2007/2008. Obor ININ, 2008, Bakal. práce, VŠCHT–Praha, ved. Ing. P. Burian, CSc. [Ilearn_vscht, 2009] Úvodní stránka Oracle iLearning na VŠCHT Praha: http://ilearn-new.vscht.cz/ilearn/en/learner/jsp/login.jsp, 2009. [Lacko, 2007] Lacko L.: Správa, programování a použití databázového systému. Computer Press, 2007, ISBN 978-80-251-1490-2. [Loney, 2006] Loney K., Bryla B.: Mistrovství v Oracle Database 10g. Computer Press, 2006, ISBN 80-251-1277-2. [Navrátilová, 2008] Navrátilová L.: On-line učební text základních příkazů jazyka SQL a jejich příkladů pro práci s databázovými systémy vytvořený pomocí systému Oracle iLearning. Ak. rok - 2007/2008. Obor PINIM. 2008, Bakal. práce, VŠCHT–Praha, ved. Ing. P. Burian, CSc. [Novák, 2007] NOVÁK, M.: E-learning - nástroje pro tvorbu a řízení výuky. 2007, http://www.volny.cz/xmichalx/bp/xnovm133_BP.htm, 2008. [Oracle, 2008] Oracle: http://www.oracle.com/index.html, 2008. [Oracle_glob_grid, 2009] Oracle_glob_grid: http://www.oracle.com/global/cz/technologies/grid/index.html. [Oracle_glob, 2008] Oracle_glob: http://www.oracle.com/global/cz/database/index.html, http://www.oracle.com/global/cz/collateral/oracle_rac_web.pdf, 2008. [SI2006, 2006] SI2006: Vybrané referáty o SOA ze Sborníku konf. Systems Integrarion 2006, Prague, June 11.-13., 2006, ISBN 80-245-1050-2. [SI2007, 2007] SI2007: Vybrané referáty o SOA ze Sborníku konf. Systems Integrarion 2007,Prague, June 10.-12, 2007, ISBN 978-80-245-1196-2. [SOA, 2008] SOA: http://www.sun.com/products/soa/index.jsp, 2008. [SOA_glos, 2008] SOA glossary: http://www.soaglossary.com/, 2008. [SOA_soft, 2008] SOA software: http://www.soa.com/, 2008. [SOA_Microsoft, 2008] SOA Microsoft: http://www.microsoft.com/soa/, 2008. [Šimeček, 2008] Šimeček M.: Porovcnání základních vlastností databázových serverů Oracle, Microsoft SQL Server, MySQL, IBM DB2, Sybase, aj. ve formě databázové tabulky (tabulek) a v rámci Internetového Portálu Oracle APEX pro pedagogické účely. Projekt programu Inžen. Inform. I (N453005), pros. 2008, VŠCHT–Praha ved. projektu: Ing. P. Burian, CSc. [Šimůnek, 2008] Šimůnek M.: SQL Kompletní kapesní průvodce, Grada Publ., spol. s.r.o., 1999. [Tichá, 2008] TICHÁ S. Systém Oracle. http://www.cs.vsb.cz/ticha/oracle/ora1.htm, 2008.
SYSTÉMOVÁ INTEGRACE 4/2009
117
P. Burian, P. Dvořák
[Ullman, 2008] Ullman, L.: PHP a MySQL: Názorný průvodce tvorbou dynamických WWW stránek, Computer Press, 2004. [Vejčíková, 2008] Vejčíková Z.: On-line učební text příkazů jazyka PL/SQL - XML a jejich příkladů pro práci s databázovými systémy vytvořený pomocí systému Oracle iLearning. Ak. rok - 2007/2008. Obor ININ. 2008, VŠCHT–Praha, Bakal. práce, ved. Ing. P. Burian, CSc. [Veselý, 2008] Veselý J.: Oracle Portal a databáze pojmů Servisně orientované architektury (SOA) podnikových popř. průmyslových procesů. Akad. rok 2007/2008. Obor ININ. 2008. Bakal. práce, VŠCHT–Praha, ved. Ing. P. Burian, CSc. [Wikipedia, 2008] Wikipedia: http://www.wikipedia.cz, http://www.wikipedia.org, 2008. [Wiki_OLTP, 2008] Wikipedia: Wikipedia Found., http://cs.wikipedia.org/wiki/OLTP, 2008. [Zahumenska, 2009] Zahumenská M.: Vytvoření internetového Portálu Oracle APEX pro podporu výuky objektově orientovaných technologií. Akad. rok 2008/2009. Obor PINIM. 2009. Bakal. práce, VŠCHT–Praha, ved. Ing. P. Burian, CSc. [Zelený, 2008] ZELENÝ J.: SQL - historie, stručný popis, MySQL, http://nb.vse.cz/~zelenyj/it380/eseje/xgulp02/SQLPrace.htm, 2008.
118
SYSTÉMOVÁ INTEGRACE 4/2009