Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky
4IT450 Podpora CASE při vytváření databází Závěrečná práce týmu CASE jaro 2011
Tým Jana Svitalská (vedoucí týmu) Timur Nigmatullin Radim Klepetko Julie Koroleva Petr Varadinov Roman Lelek Artur Kashapov Datum odevzdání
Obsah 1 ÚVOD
4
2 VYBRANÁ FUNKČNOST DATABÁZOVÝCH NÁSTROJŮ CASE
5
2.1 FORWARD ENGINEERING
5
2.1.1 TRANSFORMACE MODELŮ
6
2.1.2 GENEROVÁNÍ DDL SKRIPTU
8
2.1.3 PARAMETRY TÝKAJÍCÍ SE VELIKOSTI DATABÁZE
8
2.2 REVERSE ENGINEERING
9
2.2.1 ZPŮSOBY GENEROVÁNÍ MODELU PROSTŘEDNICTVÍM RE
10
2.2.2 MOŽNOSTI RE
11
2.2.3 OMEZENÍ RE
13
2.3 EXPORT DOKUMENTACE
13
2.3.1 RTF DOKUMENTACE
14
2.3.2 HTML DOKUMENTACE
15
2.4 VALIDACE MODELU
15
2.4.1 MOŽNOSTI VALIDACE
16
2.4.2 PRAVIDLA DATOVÉHO MODELOVÁNÍ
17
2.4.3 OBCHODNÍ PRAVIDLA
18
2.5 PODPORA TÝMOVÉ PRÁCE
19
2.5.1 REPOSITORY
19
2.5.2 KOLABORACE
21
2.5.3 VERZOVÁNÍ
22
2.5.4 BEZPEČNOST
22
2.6 PODPORA TVORBY DIMENZIONÁLNÍCH DATABÁZÍ
23
2.6.1 PODSTATA MULTIDIMENZIONÁLNÍCH DATABÁZÍ
24
2.6.2 NÁVRH FAKTOVÝCH A DIMENZIONÁLNÍCH TABULEK
24
2.6.3 NÁVRH OLAP KOSTEK
26
2.6.4 METADATA DIMENZIONÁLNÍHO MODELU
27
3 VYBRANÉ DATABÁZOVÉ NÁSTROJE CASE
28
3.1 ERWIN DATA MODELER (COMPUTER ASSOCIATES)
29
3.2 ENTERPRISE ARCHITECT (SPARX SYSTEMS)
30
3.3 INFOSPHERE DATA ARCHITECT (IBM)
32
3.4 POWERDESIGNER (SYBASE)
33
3.5 SQL DEVELOPER DATA MODELER (ORACLE)
35
3.6 ER/STUDIO DATA ARCHITECT
36
4 ZÁVĚR
37
5 POUŽITÁ LITERATURA
37
3
1 Úvod Návrh databáze je složitý iterační proces, který je však možno automatizovat pomocí moderních nástrojů CASE. Pod zkratkou CASE se skrývá sousloví „Computer Aided Software Engineering“, jedná se tedy o počítačem podporované softwarové inženýrství. Tato semestrální práce se zaměřuje na nástroje CASE pro návrh databází, které jsou v textu někdy také označovány jako databázové nástroje CASE. Touto problematikou se zabývaly již dvě semestrální práce vytvořené v rámci kurzu 4IT450. První z nich (Filippi et al., 2009) popisuje tři významné nástroje CASE v této oblasti (Oracle Designer, Toad Data Modeler a Sybase PowerDesigner). Druhá z nich (Potančok et al., 2010) zkoumá čtyři vybrané nástroje CASE z hlediska úrovní návrhu v rámci tzv. principu tří architektur. Zaměřuje se zejména na funkčnost těchto nástrojů, která se týká datového modelování. Tato práce má za cíl přinést jiný pohled na tuto oblast nástrojů CASE. Cílem práce je popsat významnou funkčnost1 těchto nástrojů a srovnat vybrané nástroje z hlediska této funkčnosti. Předmětem a tedy ani cílem této práce není poskytnout vyčerpávající přehled2 funkcí a nástrojů CASE pro tvorbu databází, spíše je cílem poskytnout pohled na tyto nástroje z hlediska možných a nejpoužívanějších funkcí, které podporují životní cyklus vývoje databází, na konkrétních příkladech nástrojů CASE. V práci je nejdříve analyzována funkčnost databázových nástrojů CASE. Funkce byly vybrané na základě předchozí analýzy databázových nástrojů CASE a to zejména dle jejich přítomnosti ve více nástrojích a dle relevantnosti a užitečnosti pro tvorbu databází. Vybraná funkčnost se tedy objevovala ve více nástrojích CASE, na základě čehož je možno usuzovat, že je její používání časté, nebo je výjimečná pro určitý nástroj, ale zdá se být natolik sofistikovaná a užitečná, že je zmíněna. Druhou část pak tvoří popis vybraných nástrojů CASE, ze kterých vychází první část. Výběr těchto nástrojů spočívá zejména na dodržení dvou základních charakteristik nástrojů CASE – kvalitní grafické rozhraní umožňující tvorbu diagramů, modelů a grafů a přítomnost repositáře (úložiště) pro efektivní řízení
1
Funkčností je v práci rozuměn soubor funkcí a možností, které jsou nějakým
způsobem praktické či vhodné pro vývoj databázových aplikací 2 Např. datové modelování zde je jen probíráno z hlediska multidimenzionálního modelování, na tomto místě odkazujeme na předchozí práci (Potančok et al., 2010), která tuto funkčnost popisuje dostatečně.
vývoje a jeho kontrolu (Agarwal, 2010). Druhým výběrovým kritériem pak je možnost tvorby datových modelů a používání dalších funkcí s tvorbou databází souvisejících.
2 Vybraná funkčnost databázových nástrojů CASE Nástroje CASE umožňují zrychlit, usnadnit a automatizovat vývoj databází a pomáhají také zlepšovat kvalitu již vytvořených databází. Zaměřují se zejména na fázi analýzy a návrhu a menším dílem i na fázi testování. Pomáhají vizualizovat a zpřehledňovat návrh databází. Díky automatizovaným funkcím navíc redukují množství manuálních chyb (Teorey, 2005) Nejstěžejnější funkci těchto nástrojů představuje možnost datového modelování, kdy je možno snadno prostřednictvím uživatelsky přívětivého grafického rozhraní vytvářet tabulky, indexy, procedury, pohledy, triggery a další objekty. Kromě toho lze i modelovat různé vztahy mezi těmito objekty, vznikají tak normální formy, cizí klíče a různé typy vztahů (dědičnost, agregace, kompozice atd.). Výsledkem jsou potom modely např. ve formě ER diagramu, které je možno dále detailněji specifikovat a následně odvodit i skripty pro vytvoření databáze. Jak již bylo výše uvedeno v poznámce, funkčnost datového modelování je v této práci popisována jen z hlediska multidimenzionálního modelování a na tomto místě odkazujeme na dostatečný zdroj týkající se této problematiky (Potančok et al., 2010). Níže následuje popis vybraných funkcí a vlastností databázových nástrojů CASE, které jsou dokládány často praktickými ukázkami z prostředí některých nástrojů.
2.1
Forward Engineering
Jedna z nejvíce užívaných funkcí každého dobrého modelovacího nástroje zahrnuje tzv. forward engineering (dále jen „FE“). FE v obecném pojetí znamená technologický postup tvorby programového kódu nebo databáze z diagramu abstraktního modelu (Beneš, 2008). V běžné praxi se tedy jedná o převedení neformálních požadavků do formálnější specifikace v podobě různých diagramů, ze kterých se pak odvozuje programový kód nebo databáze. Z hlediska databázového nástroje CASE potom tato funkcionalita představuje možnost generovat všechny potřebné skripty pro vytvoření fyzické databáze na cílový server. Jedná se tedy o tradiční proces přechodu od vysoké úrovně abstrakce, přes logické návrhy databáze až k její fyzické implementaci (Garg, 2009).
5
FE je základním stavebním kamenem modelem řízené architektury (Modeldriven architecture, dále jen „MDA“). Myšlenkou MDA je provedení návrhu jednotlivých částí systému do příslušných diagramů, které jsou díky své vizuální podobě a znázorněným vazbám lépe čitelné a je tak snazší i rychlejší s nimi pracovat. Tento koncept tak umožňuje standardizovat modely a dále definuje způsob transformace jednoho modelu v druhý (Šveřepa, 2004). FE přístup umožňuje platformní nezávislost návrhu systému. Nejdříve jsou vytvořeny diagramy, které reflektují aktuální požadavky, a později se rozhoduje o jejich fyzickém provedení. Systém je tak přenositelný mezi různými platformami. FE tak umožňuje přímé použití diagramů modelu při realizaci daného systému tak, že je zpracuje buď přímo do kódu zvoleného programovacího jazyka, nebo do diagramů s nižším stupněm abstrakce logicky navazujících v procesu vývoje daného systému. Tyto činnosti není tedy nutné ručně opakovat vývojářem, pouze vždy na každé úrovni zapracovat konkrétní zpřesnění modelu podle stupně abstrakce. Přínosem tohoto přístupu je rychlá tvorba výchozího modelu a automatizovaný postup až ke zdrojovému kódu. V případě generování zdrojového kódu databáze hovoříme spíše o generování kostry výsledné databáze, která odráží zejména modelované vazby a datové typy, nicméně samotný funkční kód je nutno doplnit programátorem. 2.1.1 Transformace modelů Předpokladem správného návrhu databáze přístupem shora-dolů (top-down přístup) je zachování konzistence mezi modely různé úrovně abstrakce. Většina nástrojů CASE respektuje tzv. princip tří architektur, kdy je možné postupovat od konceptuálního návrhu, který pak je doplňován technologickými specifiky a následně převeden do fyzické realizace databáze. Nástroje CASE tak umožňují vytvářet konceptuální, logické a fyzické modely.3 Názvosloví těchto modelů se však může v jednotlivých nástrojích lišit (např. logický model je omezen u nástroje SQL Developer Data Modeler jen na technologii relačních databází a tak je i nazýván relačním) a ne vždy jsou všechny podporovány (jen PowerDesigner z námi zkoumaných nástrojů podporuje všechny tři úrovně návrhu). Při převodu modelu vyšší úrovně abstrakce do detailnějšího modelu je možno vybrat jen některé objekty, které jsou pro následný model relevantní. Nástroj CASE pak sám vytvoří potřebné cizí klíče, příp. vazby M:N převede do referenční tabulky (za předpokladu relačního návrhu). Entity v konceptuálním modelu se tak stávají tabulkami, příp. třídami (např. u programu Enterprise Architect), atributy se přemění
3
Některé nástroje CASE umožňují vytváření i tzv. multidimenzionálních modelů a OLAP kostek, o těch je ale více pojednáno v podkapitole 0.3. 6
na sloupce, příp. operace. U převodu do fyzického modelu je nutno zadat i cílový databázový systém a jeho verzi, neboť každý má svá implementační specifika, která se potom promítají i do modelu. Tato specifika představují zejména syntaktická pravidla a používání datových typů. Příklad těchto specifik demonstruje Obrázek 1 pomocí karty pro SQL Server, kde je možno nastavit mj. průměrnou velikost tabulky a datový typ pro fyzickou implementaci databáze.
Obrázek 1 ERwin Data Modeler - nastavení specifik databázového serveru SQL
7
2.1.2 Generování DDL skriptu Od fyzického modelu je pak jen krůček k vygenerování DDL (Data Definition Language) skriptů nutných pro vytvoření databáze na konkrétním databázovém serveru. Nástroje CASE umožňují generovat skript, který je pak možné později spustit na serveru, nebo přímo se připojí na server a provedou příkazy pro vytvoření tabulek, indexů, pohledů, procedur atd. Nástroje CASE tak umožní vybrat jen některé prvky diagramu (tabulky, pohledy apod.) nebo konkrétní objekty, pro které je žádoucí vygenerovat skript. Pokud nástroj umožňuje i nastavení práv (permissions) uživatelů k danému databázovému objektu, generují se i skripty nastavující tato oprávnění. Lze tak produkovat i skripty pro tvorbu indexů, triggerů, aktualizačních pravidel a mnoho jiného. Ukázka dialogového okna, které umožňuje tento výběr, představuje Obrázek 2.
Obrázek 2 ERwin Data Modeler – dialogové okno Forward Engineer Schema Generation
2.1.3 Parametry týkající se velikosti databáze Při fyzickém návrhu databáze se velmi často musí řešit i kapacitní otázky týkající se jednotlivých tabulek a indexů. Cílem takové analýzy je zvýšení výkonnosti a zefektivnění správy dat. Nástroje CASE mohou být i v tomto případě nápomocné, neboť některé z nich obsahují funkce pro nastavení odhadované počáteční velikosti daného objektu (tabulky, index apod.) a atributů týkajících se nárůstu velikosti 8
např. za měsíc. Tato velikost se nejčastěji vyjadřuje v jednotkách počtu záznamů. Jakmile je u jednotlivých tabulek a indexů určena jejich velikost, lze odhadnout požadavky na celkovou velikost databáze (Embarcadero, 2011a).
Obrázek 3 ER/Studio Data Architect - dialogové okno Capacity Planning Options
Na Obrázek 3 je zobrazeno dialogové okno Capacity Planning Options, které nabízí program ER/Studio Data Architect. Jak je zde vidět, je možno tato nastavení použít ke specifikaci počátečního množství řádků v tabulce, zadání parametrů týkajících se nárůstu velikosti tabulky (procentuálně nebo počtem řádků), dále slouží k analýze těchto parametrů do budoucna. Také je možno do odhadů týkající se velikosti tabulky zahrnout i indexy a primární klíče. V levém dolním rohu se následně zobrazují hrubé odhady týkající se velikosti tabulky. V případě potřeby ER/Studio Data Architect umožňuje i generovat a tisknout reporty s těmito odhady (Kalis, 2007).
2.2
Reverse engineering
V předchozí kapitole jsme si představili možnosti nástrojů CASE v oblasti tzv. „dopředného“ návrhu databází – tedy postup od nejvyššího stupně abstrakce až ke 9
konkrétní implementaci v podobě databáze v určitém DDL. Mnohé podniky, zejména ty malé, však tento systematický přístup návrhu databáze odmítají či jej nemohou realizovat z důvodů finančních či časových (Blaha, 1999). Většinou tak vytvoří v poměrně rychlé době konkrétní implementaci databáze, která vyhovuje aktuálním požadavkům. Časem se však údržba této databáze může prodražit, neboť je nutné provést změny v její struktuře díky měnícím se požadavkům. Databáze tak není flexibilní, obsahuje duplicity, nepodporuje podnikové standardy, je nepřehledná a stává se tak neefektivní. Podnik se proto může rozhodnout pro použití metody tzv. zpětného inženýrství (reverse engineering, dále jen „RE“), kdy se analyzuje již implementovaná databáze a odvozují se obecnější modely. Tento proces vyžaduje intelektuální přístup spočívající ve využití podnikových znalostí a zkušeností a v práci analytika, který ručně prochází DDL skripty databáze. Nicméně tento přístup většinou selhává, neboť původní návrháři mohli již podnik opustit a není nikdo, kdo by se v současné databázi vyznal. V těchto případech se RE neobejde bez podpory automatizovanými nástroji a přichází do popředí nástroje CASE, které disponují touto vlastností (Müller et al., 2000). Prakticky je téměř nemožné se bez těchto nástrojů obejít, pokud má být proces RE úspěšný (Hainaut, 2002). Příslušný nástroj CASE tak pomáhá velmi rychle převést DDL skript databáze do modelu. Je tak redukována manuální práce analytika spočívající ve čtení skriptů a dále se snižuje riziko chybovosti, které je s tím spojeno (Müller et al., 2000). Takové nástroje CASE musí zahrnovat tzv. DDL extraktory, které umí číst DDL skripty různých databázových jazyků. Mají v sobě dále zakomponovány různé inteligentní analyzátory, které dokáží na základě heuristických pravidel odvodit z těchto DDL skriptů databázové schéma tvořené tabulkami, vztahy mezi nimi apod. Jsou v nich také zabudovány i různá integrační schémata, která jsou schopna určit sémantické vztahy a vyloučit duplicity (Hainaut, 2002). Procesem RE je tak možné odvodit ze stávající databáze dokumentaci na vyšší úrovni abstrakce, což redukuje chybovost v případě manuálního zpracování. Dalším důvodem pro použití funkčnosti RE je potřeba přenosu existující databáze do jiného databázového prostředí (např. z DB2 do SQL Serveru) (Silpiö, 2009). Své využití tak RE nalezne v případě aktualizace staré databáze bez dokumentace na novou, kde je možné některé koncepty staré databáze využít (Hainaut, 2002). 2.2.1 Způsoby generování modelu prostřednictvím RE a)
Nástroje CASE umožňují v zásadě dva možné přístupy generování modelu: ze souboru obsahujícího skript v příslušném databázovém jazyce, který většinou obsahuje kromě struktury databáze i příkazy pro tvorbu různých procedur a definující přístupová práva; 10
b) z existující databáze, přičemž je nutné vytvořit síťové připojení k datovému zdroji. Podmínkou pro vygenerování fyzického modelu je samozřejmě definování příslušného databázového systému, na kterém bude model založen. Na Obrázek 4 je tak zobrazeno dialogové okno Reverse Engineer v programu Erwin Data Modeler, kde je vybrán jako cílový databázový systém SQL Server 2005.
Obrázek 4 ERwin Data Modeler - dialogové okno Reverse Engineer s výběrem cílové databáze
2.2.2 Možnosti RE Většinou je možné zvolit volbu, zda se má automaticky vytvářet referenční integrita u sloupců s identickými názvy a datovými typy v různých tabulkách, či zda se automaticky má vytvořit primární klíč u tabulek bez klíče, které ale mají primární unikátní klíč. ERwin Data Modeler například dokáže odvodit primární klíč v případě, že tabulka v databázi má definován primární nebo unikátní index. Vztahy mezi tabulkami pak odvozuje z indexů. Pokud tabulka obsahuje index, který zahrnuje stejná pole jako index identifikovaný jako primární klíč v jiné tabulce, definuje vztah parent-child. Odvozování se dá také provádět na základě názvů polí – pokud tabulka A obsahuje index se stejným názvem jako index v jiné tabulce B, který v ní tvoří primární klíč, je index v tabulce A určen jako cizí klíč do tabulky B (Computer 11
Associates, 2011a). Dialogové okno, které umožňuje zvolit možnosti týkající se převodu databáze do modelu je znázorněno na Obrázek 5.
Obrázek 5 CA Erwin – dialogové okno Reverse Engineer s nastavením možností
Dále se vybírají i prvky, které mají být do modelu vygenerovány. Např. v programu InfoSphere Data Architect je možné zvolit pro import tabulky, indexy, pohledy, rutiny, uživatelsky definované typy, role, uživatele a mnoho dalšího. Enterprise Architect umožňuje import existující databáze do modelu přes ODBC připojení. Výhodou je, že kromě filtrování prvků databáze nabízí i výběr konkrétních objektů. Ty jsou pak přeneseny do modelu jako třídy. Další funkci, kterou je možné využít v souvislosti s RE, je synchronizace změn v modelu a databázi. Pokud tak například jsou v modelu přidány nové tabulky, při využití funkce Compare and sync v programu InfoSphere Data Architect mohou být tyto změny přeneseny do databáze – program umí tyto změny nalézt, vygenerovat ALTER skript a spustit patřičné příkazy v databázi. Funkce umí provést i opačnou synchronizaci, tedy přenést změny provedené v databázi do modelu. Tato funkčnost umožňuje zachovat konzistenci mezi fyzickou implementací a metadaty k databázi. Ukázku synchronizace databáze a modelu nástroje InfoSphere Data Architect je znázorněna na Obrázek 6. V dialogovém okně je možné porovnat datový model a fyzickou databázi. V prvním sloupci lze odkrývat jednotlivé objekty a vidět tak konkrétní hodnoty pro model a databázi. V tomto případě je patrné, že v tabulce 12
PRODUCT přibyl v databázi sloupec GROSS_MARGIN, který v modelu není. Vpravo dole se pak nachází tlačítko umožňující zahrnout tuto změnu do modelu.
Obrázek 6 InfoSphere Data Architect - ukázka synchronizace modelu a databáze
Z výše uvedeného by mohlo vyplývat, že RE v nástrojích CASE znamená převod fyzické implementace databáze či skriptu do některé úrovně datového modelu. Tato dedukce je pravdivá pouze částečně – RE umožňuje obecně totiž převod z nižší úrovně abstrakce do vyšší úrovně abstrakce. SQL Developer Data Modeler od společnosti Oracle tak také kromě převodu databáze do fyzického modelu nabízí i transformaci fyzického modelu (nižší úrovně abstrakce) do relačního modelu. 2.2.3 Omezení RE Silpiö (2009) uvádí i některá omezení této funkčnosti nástrojů CASE. Zejména se jedná o neaktuálnost podporovaných verzí databázových systémů. Dalším omezením může být různý stupeň podpory daného databázového systému v rámci jednoho nástroje CASE. Stává se také někdy, že parser převádějící databázi do modelu ohlásí chybu, na kterou je možno pak reagovat několika akcemi (přeskočení chyby, zastavení zpracování apod.). Důvodem je většinou nesoulad mezi syntaxí ve skriptu nebo databázi a cílovým serverem, který byl vybrán pro fyzický model (Computer Associates, 2011a).
2.3
Export dokumentace
Samozřejmostí by v dnešní době měla být schopnost nástroje CASE generovat dokumentaci k databázovému systému podle určitých zadaných pravidel. Kvalitní nástroje CASE musí mít i možnost parametrické specifikace obsahu dokumentace tak, aby bylo možné vytvářet různé verze dokumentace např. pro manažery, analytiky nebo programátory, ale ze stejného modelu. Dokumentace či reporty vytvořené z modelů mohou sloužit i jako kontrakt mezi dodavatelem a zadavatelem řešení a dále zejména usnadňují komunikaci mezi
13
analytikem a vývojářem, byznys uživatelem a řešitelem a mnoha různými stakeholdery. Enterprise Architect umožňuje generovat následující typy dokumentace (Sparx Systems, 2011a): a) textovou ve formátu RTF (Rich Text Format), která obsahuje formátovaný text a tabulky; b) interaktivní ve formátu HTML (HyperText Markup Language), která vygeneruje pro každou entitu v modelu HTML stránku a všechny propojí pomocí odkazů. SQL Developer Data Modeler umožňuje uložit dokumentaci na lokální disk ve formátu XML, která se dá pak snadno zobrazit v kterémkoliv textovém programu. Druhou možností pak je export reportu do tzv. reportovacího repozitáře, který umožňuje snadné verzování a systematický přístup v rámci celé organizace. Do něj se ukládají všechny návrhy, diagramy, modely, databázová schémata a další metadata týkající se řešení informačního systému celé organizace. Kromě exportu dokumentace týkající se konkrétního návrhu databáze může uživatel tohoto nástroje CASE generovat i přehledné reporty obsahující pravidla návrhu (různá obecná pravidla modelování, byznys pravidla a další omezení, která musí model splňovat), dále reporty s informacemi o bezpečnostních aspektech databáze (uživatelé a jejich práva, šifrované sloupce, politiky apod.) a další uživatelsky definované reporty (Murray, 2011). Do reportu nemusí být zahrnut jen jeden datový model. PowerDesigner dovoluje přidat i více modelů. Pomáhá tak přehledně mapovat např. to, jak koresponduje nějaká tabulka ve fyzickém datovém modelu s entitou/entitami v modelu logickém (Sybase, 2008). 2.3.1 RTF dokumentace Textová dokumentace je kompatibilní s aplikacemi, jako je MS Word a je vhodná zejména pro tisk. Některé nástroje CASE poskytují tvorbu vlastních šablon nebo použití předdefinovaných a např. PowerDesigner nabízí i výběr jazykové mutace pro dokumentaci (angličtina, němčina, francouzština, čínština apod.). Většinou je možno i vybrat objekty, které se mají, nebo naopak nemají zahrnout do dokumentace (např. jaké entity, vztahy apod.), možnosti třídění objektů, úroveň podrobnosti nebo změnu kódovací stránky výsledného textu. Existuje zde také možnost vyexportovat pouze diagramy. RTF reporty obsahují titulní stránku, obsah a samotnou dokumentaci, která je většinou členěna podle typu objektů a zahrnuje souhrnné tabulky pro větší přehlednost. V PowerDesigneru jsou široké možnosti kastomizace reportu vlastním
14
potřebám (nastavení vlastností písma, nadpisů, hlavičky, patičky apod.). Většinou je možné zobrazovat v reportu i diagramy ve formě obrázku. 2.3.2 HTML dokumentace Velkou výhodu HTML dokumentace představuje její „interaktivnost“ – jednotlivé entity jsou propojeny hypertextovými odkazy, kde lze nalézt podrobnější informace a odkazy na další entity. Je vhodná pro sdílení na internetu nebo firemním intranetu. Tento typ dokumentace vyžaduje prohlížeč a umožňuje zahrnout snadno i JPG, GIF nebo BMP obrázky částí modelů (Embarcadero, 2011a). Nevýhoda by mohla spočívat v tom, že ji nelze jednoduše - na rozdíl od textové dokumentace – již upravovat, je tak vhodná spíše pro uživatele, kteří nemají kompetence model či dokumentaci upravovat, ale potřebují jej nastudovat, případně okomentovat, např. byznys uživatelé (Embarcadero, 2011a).
2.4
Validace modelu
Některé nástroje CASE umožňují validaci modelů po syntaktické a logické stránce. Díky tomu lze průběžně ověřovat správnost modelu, snížit tak jejich chybovost a urychlit ladící a testovací část celého projektu tvorby databáze. Tím se stává vývoj databází standardizovaným a kontrolovaným. Validace modelu tedy slouží k ověření jeho správnosti dle předdefinovaných pravidel a omezení. Validace modelu upozorňuje na různé chyby, které neodpovídají principům datového modelování nebo byznys pravidlům, a zajišťuje tak konformitu s těmito pravidly. Kromě chyb však může validace zobrazovat různá upozornění, což mohou být jen drobnější nedostatky, které však nejsou natolik závažné, aby musely být ihned opraveny. Validace by se měla provádět po každé změně modelu a jeho předání do repositáře, případné chyby by měly být opraveny. Většinou nástroj CASE obsahuje i přídavné informace o chybě (popis chyby) a návrhy na jejich opravu (Sybase, 2008). Důležitou komponentou nástrojů CASE z hlediska validace modelu je tzv. slovník, v němž je obsažena definice datových struktur a vztahů mezi datovými prvky. Obsahuje tedy logické souvislosti modelu a tak se používá k jeho kontrole. Díky slovníku tak mohou být odhaleny např. izolované a nedefinované jednotky dat, nekonzistence související s uložením dat jako externího zdroje a dále porušení syntaktických pravidel (Kozelková, 2006). Obrázek 7 prezentuje konkrétní výsledek validace datového modelu v programu ERwin Data Modeler. Jak je vidět, v osmi objektech je dohromady devět
15
chyb či varování. Například je zobrazena chyba v indexu, který nemá definován žádný sloupec.
Obrázek 7 ERwin Data Modeler - Model Validation Report
2.4.1 Možnosti validace Nástroje CASE umožňují automatizovat kontrolu modelu a objektů v něm obsažených. Lze tak vybrat všechny nebo jen některé kontroly a zahrnout do validace všechny nebo jen některé objekty. Ukázka parametrů ověřování modelu je znázorněna na Obrázek 8. Na záložce „Options“ se vybírají pravidla, která mají být ověřena (např. lze ověřit jen unikátnost názvů entit). Je zobrazena i závažnost dané kontroly, přičemž žluté trojúhelníky s vykřičníkem symbolizují pouhá varování, zatímco červená kolečka s křížkem znamenají závažnou chybu. Na záložce „Selection“ je pak možno zvolit jen určité objekty ke kontrole (tabulky, vztahy apod.), to je zejména užitečné v případě, když některé objekty ještě nejsou ve finální podobě a validace by našla proto mnoho chyb.
16
Obrázek 8 PowerDesigner - dialogové okno Check Model Parameters
2.4.2 Pravidla datového modelování Většina nástrojů CASE má v sobě implementovány základní kontroly principů datového modelování (zejména UML a relačního, i když se objevují i validace dimenzionálního modelování) a dále je možno dodefinovat specifická vlastní pravidla (viz následující podkapitola). Organizace tak mohou vytvářet vlastní metodiky a definovat vlastní pravidla pro modely, které vyhovují jejím potřebám. Obecnými pravidly tak většinou bývá unikátnost názvu objektů v modelu, povinnost alespoň jednoho atributu v entitě a jednoho sloupce v indexu. ERwin Data Modeler například generuje jako chybu případ, kdy jsou některé tabulky bez sloupců, indexů nebo primárního klíče. Dalším závažným problémem datového modelu je sloupec, který nemá nadefinovaný datový typ či se tento typ liší od pole v jiné tabulce, na které se odkazuje. Lze nastavit i ověřování použití neplatných znaků (např. otazník nebo diakritika v názvech tabulek), omezení délky názvů tabulky a sloupců, povinnost vyplnění komentáře u sloupce apod.
17
2.4.3 Obchodní pravidla Omezení v modelu, která nevyplývají z obecných pravidel datového modelování, ale spíše z pravidel obchodních, lze dodefinovat v modelu přirozeným jazykem. Obchodními pravidly (business rules) mohou být například různé zákonem stanovená omezení, požadavek zákazníka nebo interní směrnice (Sybase, 2008). PowerDesigner rozlišuje mezi různými typy obchodních pravidel: a) definice – textový popis objektu (např. definice pojmu zákazník); b) skutečnost/fakt – obecné konstatování (např. klient provádí jednu nebo více objednávek); c) vzorec – výpočet používaný v rámci systému (např. výpočet marže); d) požadavek – slovní popis nějakého požadavku (např. student se může zapsat jen na jeden termín zkoušky pro daný předmět); e) validační omezení – omezení týkající se hodnoty nějakého objektu v systému (např. datum zahájení projektu je menší než datum jeho ukončení); f) OCL (Object Contraint Language) omezení – dodatečné omezení hodnoty (např. datum zaplacení by nemělo přesáhnout jeden měsíc od data splatnosti). Dva poslední typy obchodních pravidel se přímo generují do DDL skriptu v podobě „constraint“ příkazu, jak je vidět na Obrázek 9, kde je omezení týkající se data zaplacení, které nesmí překročit 30 dnů od data splatnosti. Výhodou přirozeného jazyka je, že je snadno srozumitelný, oproti zápisu v nějakém formalizovaném jazyce (např. OCL). Nevýhodu však pak představuje nemožnost automatizovat kontrolu těchto pravidel nástroji CASE. Nicméně identifikace těchto pravidel by se neměla v modelu opomíjet a měla by být uvedena u patřičného objektu, aby veškerá omezení model reflektoval.
18
Obrázek 9 PowerDesigner - obchodní pravidlo generované ve skriptu
2.5
Podpora týmové práce Projektů vývoje databází podporovaných nástroji CASE se zpravidla účastní
více než jeden pracovník, což automaticky vede k nutnosti předávání informací a rozpracovaných částí projektu. Stejně tak je nutné zajistit možnost sdílení jednotlivých vytvářených komponent mezi několika vývojáři, kteří potřebují pracovat současně. Obvykle je zároveň nutné na jedna a tatáž data pohlížet z různých úhlů pohledu, tedy podle rolí jednotlivých participantů: jinou představu si potřebuje utvořit návrhář databáze, jinou tester a jinak chceme i navrženou databázi prezentovat například vedení společnosti nebo významnému klientovi. 2.5.1 Repository Klíčem pro podporu týmové spolupráce je repository, česky také repositář nebo skladiště. Jedná se o prostor, který slouží k ukládání veškeré práce na projektu. Repositář může mimo jiné výrazným způsobem zvyšovat efektivitu projektů díky tomu, že umožňuje snadno znovu využít veškerých zpracovaných materiálů. 19
Do repository tak ukládají zejména vývojáři a analytici modely systému, detailní popisy, specifikace a jiné výstupy plynoucí z vývoje systému. Jelikož je většinou repository uložena na serveru, je možno sdílet tato metadata napříč organizací a tak další participující na projektu je mohou prohlížet (Agarwal, 2010). Repository by měla být reprezentací všech relevantních informací o systému, který je vyvíjen a to v konzistentní, úplné formě. Repository tak představuje centrální místo pro integraci, ukládání a údržbu všech dat o systému a jeho souvisejících procesech (metadata systému). Dále repository slouží pro řízení těchto metadat, umožňuje tak generování reportů, správu uživatelů metadat, provádění dotazů do těchto metadat, používání diagnostických nástrojů atd.
Zejména však přináší
usnadnění komunikace mezi nástroji a napříč skupinami uživatelů (Welke, 1988). Repository musí být dostatečně robustní ke zvládnutí velkých projektů a mnoha uživatelů najednou. Důležitá též může být přenositelnost repository na jiné platformy. Některé nástroje CASE mají repository založenou na textových souborech, většina využívá některý databázový systém. Mezi klíčové vlastnosti patří: • robustnost: je připraven zvládnout (za odpovídající infrastrukturní podpory) velké zatížení stranou počtu uživatelů a množství ukládaných, vyzvedávaných a upravovaných dat; • inteligentní verzování: možnost ukládat jeden konkrétní dokument (v tomto případě například diagram) v mnoha různých verzích a také možnost snadným způsobem zobrazit snapshop (obraz) daných dat v libovolném okamžiku v minulosti; • ukládání dokumentů všech typů: a tedy neomezení na jeden (či několik) proprietárních formátů, například datových modelů užívaných jednou konkrétní aplikací; • nastavení přístupových práv: obvykle je třeba, aby k repositáři mohlo přistupovat více uživatelů, přičemž někteří z nich potřebují data pouze číst, jiní měnit, dalším můžeme dát například práva pro založení celé nové vývojové větve; • inteligentní sdílení: s předchozím bodem úzce souvisí i nutnost souběžného
přístupu
více
uživatelů
k repositáři
a
přiléhající
problematika (nekonzistentní verze, zamykání vývojových větví).
20
I repository by měla mít svůj model,, který obsahuje informace o struktuře a možnostech repositáře: co může být jeho obsahem a jakým způsobem je možné k tomuto obsahu přistupovat a manipulovat s ním. Model repository nachází využití převážně v situacích, kdy je potřeba v jediném repositáři pracovat s různými nástroji od různých výrobců. Díky dostupným metainformacím tak mohou i původně nekompatibilní nástroje spolupracovat. Následující obrázek názorně demonstruje okno pro řešení konfliktů v repositáři nástroje ER/Studio.
Obrázek 10 Řešení konfliktů v repositáři programu ER/Studio Data Architect
Repositář je základem týmové spolupráce v nástrojích CASE. Z jeho vlastností vycházejí klíčové funkce, které podporu spolupráce zajišťují. Pro přehlednost jsou níže uvedeny výčtem a rozděleny do tří kategorií. 2.5.2 Kolaborace •
Možnost souběžné práce více uživatelů na jednom projektu (včetně upozornění, kdo další na projektu / s daným dokumentem právě pracuje).
•
Vytváření jednotlivých (pod)projektů v rámci repositáře pro snazší organizaci práce.
21
•
Inteligentní řešení konfliktů mezi dokumenty, což zahrnuje kombinování nebo sloučení změn do většího projektu.
•
Možnost
udržovat
strukturu
projektu
/
kategorizovat
jednotlivé
dokumenty. 2.5.3 Verzování •
Zachycování a ukládání všech změn, které na dokumentech proběhly, s neomezenou historií.
•
Možnost kdykoliv přejít k libovolné verzi kterékoliv dokumentu nebo celého projektu v libovolném čase.
•
Funkce pro srovnávání jednotlivých verzí dokumentů a sledování konkrétních změn/rozdílů v nich.
•
Možnost okomentovat každou změnu odeslanou do repositáře.
•
Možnost správy několika souběžných větví téhož projektu (například produkční a vývojová verze). 2.5.4 Bezpečnost
•
Dostatečně robustní systém umožňující přidělovat nejrůznější typy práv uživatelům i skupinám (možné rozdělení rolí a zodpovědností při práci s repositářem názorně ukazuje Obrázek 11).
•
Dostatečné zabezpečení dat před neoprávněným přístupem.
•
Ochrana dokumentů před přístupem dalšího uživatele, zamkl-li ho primární uživatel z důvodu aktuálně prováděných úprav (prevence konfliktu).
22
Obrázek 11 Možné rozdělení rolí a zodpovědností při práci s repositářem
2.6
Podpora tvorby dimenzionálních databází Specializovanou funkcionalitou menšího počtu nástrojů CASE pro návrh
databází je podpora tvorby multidimenzionálních databází, které jsou zejména aplikované v oblasti Business Intelligence (dále jen „BI“). Zatímco návrh relačních databázových struktur je standardně podporován většinou nástrojů CASE, návrh multidimenzionálních databází je spíše specializovanou funkcí menšího počtu CASE nástrojů (Wu, 2001). Důvodem může být skutečnost, že BI je poměrně mladou disciplínou, která však v posledních několika letech dosahuje velkého rozvoje a investic ze strany podniků. Do relačních databází jsou data ukládána do dvourozměrných databázových tabulek (sloupec/řádek), mezi kterými jsou definovány relační vztahy vyplývající z aplikační logiky. Probíhá v nich mnoho transakcí v reálném čase a tak bývají tyto databáze nazývány OLTP (On-Line Transaction Processing). Oproti tomu multidimenzionální databáze jsou optimalizovány pro provádění analytických operací nad velkým objemem dat (např. sumarizace a agregace 23
informací). To je umožněno denormalizovaným modelem, který většinou obsahuje redundance. 2.6.1 Podstata multidimenzionálních databází Na začátku je na místě stručně objasnit pojmy související s problematikou dimenzionálního modelování. V rámci řešení datových tržišť a dalších BI komponent se pro návrh databází používají tabulky faktů a dimenzí. Faktové tabulky zachycují sledované ekonomické ukazatele (např. objem tržeb, náklady, výši pohledávek apod.) a jejich primární klíč je většinou tvořen cizími klíči do tabulek dimenzí. Ty obsahují různé pohledy na faktové tabulky (např. z hlediska času, produktů, zákazníků). Dalším důležitým pojmem v oblasti multidimenzionálního modelování jsou star a snowflake schémata. Schéma hvězdy se od schématu sněhové vločky odlišuje v tom, že neobsahuje další dělení dimenzionální tabulky. Dimenze většinou obsahují statická (neměnná) data, ale některé se mohou měnit (např. adresy zákazníků, produkty apod.), takové dimenze se nazývají Slowly Changing Dimension (Computer Associates, 2011a). Podrobnější popis principů multidimenzionálního modelování není předmětem této práce, byly uvedeny pouze základní pojmy, které jsou dále v textu používány. 2.6.2 Návrh faktových a dimenzionálních tabulek Dimenzionální model může být odvozen z logického či fyzického datového modelu, případně i z SQL dotazu. U některých nástrojů CASE se pouze zvolí dimenzionální notace u logického či fyzického modelu a automaticky dojde ke změnám v zobrazení tabulek a možných vlastností. Primární klíč dimenzionálních tabulek je převeden jako cizí klíč ve faktové tabulce. Důležité je správné nastavení typu tabulky v dimenzionálním modelu. Většina nástrojů podporující tuto funkci dokáže odvodit typ tabulky na základě obecných pravidel. Např. ERwin Data Modeler nastavuje při vložení tabulky standardní hodnotu „dimension“ pro typ tabulky, ale na základě těchto pravidel se tato hodnota automaticky mění: • Pokud tabulka nemá žádné rodičovské vztahy (není nadřízenou tabulkou), stává se faktovou. • Pokud tabulka je nadřízená (rodičem) faktové tabulky nebo pokud je rodičovskou a zároveň podřízenou tabulkou, stává se dimenzionální tabulkou (v případě star schématu). • Pokud tabulka je nadřazená dimenzionální tabulce, stává se tzv. outrigger tabulkou (v případě snowflake schématu) a vzniká hierarchie dimenzí. Typ tabulky lze samozřejmě i ručně nastavit, program ale zahlásí v případě nesprávného přiřazení typu chybu, jako je vidět na Obrázek 12, kdy byl zvolen 24
chybně typ tabulky na faktovou, přičemž se jedná o dimenzionální tabulku (je rodičem faktové tabulky).
Obrázek 12 Erwin Data Modeler – nesprávně nastavený typ tabulky v dimenzionálním modelu
Na Obrázek 13 jsou zobrazeny typy tabulky, které umožňuje nastavit dimenzionální model v programu ERwin Data Modeler. Je tedy možno zvolit typ dimenzionální, faktové tabulky, nebo v případě rozdělené dimenze typ outtriger (u snowflake schématu).
Obrázek 13 ERwin Data Modeler – výběr typu tabulky v dimenzionálním modelu
Příklad diagramu dimenzionálního modelu je na Obrázek 14, který obsahuje faktovou tabulkou s objemem prodeje, na který lze pohlížet z pohledu podle poboček či produktů a jejich kategorií.
25
Obrázek 14 PowerDesigner – dimenzionální model ve snowflake schématu
2.6.3 Návrh OLAP kostek V některých nástrojích CASE je možno vytvořit z tabulek v dimenzionálním modelu nebo přímo na základě existující databáze OLAP kostku. Příklad takové kostky ukazuje Obrázek 15, kde je kostka s názvem „Smlouvy“ obsahující ukazatele (measures) a vypočítané ukazatele (např. očekávaná doba splatnosti je počítána na základě předchozích statistik). Dimenze této kostky pak tvoří „Zákazníci“ a hierarchická dimenze „Regiony“.
26
Dim_Pobocka Id_Pobocka
Mesto Hierarchy_1
Fakt_Prodej - Dim_Pobocka
Fakt_Prodej Id_Prodej Datum Prodej_Kc
Dim_Kategorie_Dim_Produkt Id_Kategorie Fakt_Prodej - Dim_Kategorie_Dim_Produkt Kategorie_Nazev ID_Produkt Produkt_Nazev
Fakt_Prodej
Hierarchy_1
Obrázek 15 PowerDesigner - OLAP kostka
U kostky se pak definuje název ukazatelů (measures), jejich popisky a agregační funkce, která má být použita (sum, count, min, max, avg, distinct apod.). Kostka se pak může vyexportovat do XML formátu či do skriptu, který ji generuje. 2.6.4 Metadata dimenzionálního modelu Dimenzionální model má svá specifika, co se týče metadat, která je nutno o něm shromažďovat. Nástroje CASE by měly tato specifika respektovat a většinou proto i umožňují zadat potřebné informace (zejména silný je v tomto směru PowerDesigner). U každého modelu datového skladu či datového tržiště jsou důležitými informacemi zdroj dat pro daný objekt a transformační pravidla popisující převod z tohoto zdroje do datového skladu či tržiště. Nemělo by se ani zapomínat na nastavení frekvence a časování aktualizace datového skladu, je to velmi důležitý údaj. K těmto účelům např. slouží v programu ERwin Data Modeler tzv. Data Movement Rules Editor (Obrázek 16), ve kterém se nastavují aktualizační pravidla (např. vložení nového záznamu do tabulky, aktualizace, archivace záznamu nebo smazání). Co se týče popisných dat dimenzionálních tabulek, je důležité, aby bylo možno nastavit informaci o případné hierarchii dimenze, sdílené dimenzi, dále identifikovat SCD a specifikovat atributy a ukazatele, které s dimenzí souvisí. U faktových tabulek je pak žádoucí možnost zadat vypočítané ukazatele a vztahy k dimenzím.
27
Obrázek 16 ERwin Data Modeler - karta Data Movement Rule
3 Vybrané databázové nástroje CASE V této části semestrální práce jsou představeny vybrané nástroje CASE pro tvorbu databází. Na základě pečlivé analýzy byly zařazeny tyto produkty velkých dodavatelů v této oblasti: • InfoSphere Data Architect od společnosti IBM, • Erwin Data Modeler od společnosti Computer Associates, • PowerDesigner od firmy Sybase, • SQL Developer Data Modeler od společnosti Oracle, • ER/Studio Data Architect od firmy Embarcadero, • Enterprise Architect od společnosti Sparx Systems, • SQL Power Architect od společnosti SQL Power Group 28
V následujícím textu je stručně popsána a vyzdvihnuta jejich funkčnost pro oblast tvorby databází (jejich pořadí v uvádění v textu nemá žádnou zákonitost).
3.1
ERwin Data Modeler (Computer Associates)
Společnost Computer Associates, vlastník, vývojář a producent nástroje Erwin Data Modeler jej charakterizuje jako řešení umožňující datové modelování, vytváření a správu databáze, datových skladů a datových modelů podniku. Pomáhá vizualizovat datové struktury a usnadňuje tak organizování a řízení dat a databázových technologií (Computer Associates, 2011b). Computer Associates nabízí několik edicí tohoto nástroje: a) Community Edition je volně dostupná a vhodná zejména pro studenty a začínající uživatele v datovém modelování; b) Navigator Edition, která funguje pouze v módu pro čtení; c) Standard Edition zahrnující rozsáhlé funkce pro datové modelování; d) Workgroup Edition navržená pro modelování v rámci týmu. Následuje tabulka se stručným popisem funkcí programu ERwin Data Modeler pro oblast tvorby databází, uváděné informace pocházejí z přímého ozkoušení dané funkce v programu nebo na základě informací z webových stránek společnosti Computer Associates (2011b) nebo z manuálu programu (Computer Associates, 2011a). Forward/Reverse Engineering ERwin Data Modeler Standard Edition umožňuje flexibilní tvorbu logického a fyzického datového modelu a převod mezi těmito úrovněmi. Samozřejmostí je přímé vytvoření DDL skriptů z modelů, které zvyšuje efektivnost a redukuje chybovost. Podporována je i tvorba spouští (triggerů), maker a uložených procedur. Program navíc nabízí pro FE přizpůsobitelné šablony, kde je možno modifikovat způsob vytváření DDL. Program podporuje dvě metody datového modelování a to IDEF1X, která je používána v mnoha státních organizacích, letectví a finančním sektoru v USA, a dále IE (Information Engineering), která je obecně široce používaná. Zajímavé možnosti přinášejí tzv. uživatelsky definované vlastnosti u tabulek/sloupců, které mohou být různého typu (příkaz, datum, text nebo seznam). Je tak možno obohatit metadata o informace týkající se data poslední změny, data schválení modelu aj. Z hlediska FE a RE má ERwin Data Modeler Standard Edition podporu mnoha databázových systémů a to konkrétně tyto: DB2, IDS (Informix), MySQL, ODBC, Oracle, Progress, SQL Server, Sybase, Sybase IQ a Teradata. Export dokumentace ERwin Data Modeler Standard Edition zahrnuje prohlížeč reportů, které jsou vytvořené pomocí Crystal Reports. Dokumentaci je tak možno přizpůsobit vlastním
29
požadavkům a exportovat ji do formátu RPT, PDF, XLS, DOC, RTF, XML nebo HTML. Validace modelu Zajímavou funkci v oblasti zajištění správnosti modelu tzv. Domain Dictionary se znovupoužitelnými atributy nebo Naming Standards Editor umožňující vytvořit slovník validních slov, zkratek a pravidel pro použití uvnitř modelu. Oba tyto nástroje umožňují zajistit konzistenci modelů napříč celým projektem a organizací. Podpora týmové práce Erwin Data Modeler Workgroup Edition poskytuje velmi užitečné funkce pro práci v týmu. Samozřejmostí je možnost využívat centrálního repozitáře, kam jednotliví návrháři mohou ukládat své modely. Repository může být uložena v různých databázových systémech (SQL server, Oracle, Sybase ASE). Tato edice nabízí také funkce týkající se souběžné práce více uživatelů na jednom projektu (zamykání modelů, řešení konfliktů mezi více modely od různých uživatelů, spojování modelů). Dále umožňuje kontrolovat a sledovat změny, což zahrnuje verzování modelů/submodelů, vracení změn z historie a dopadovou analýzu těchto změn. Podpora tvorby dimenzionálních databází Erwin Data Modeler Standard Edition umožňuje modelování datových skladů, tedy tvorbu star a snowflake schémat. Lze definovat i specifická metadata pro datové sklady v podobě zdrojů dat, transformačních a aktualizačních pravidel.
Dalšími nadstandardními funkcemi tohoto nástroje je možnost integrace s jinými nástroji, příp. výměny dat. Umí si tak vyměňovat dat s BI aplikacemi jako Cognos ReportNet QueryStudio nebo Oracle Business Intelligence Answers a dále s jinými nástroji pro datové modelování, ETL nástroji apod.) a široké možnosti vizualizace a personalizace pracovního prostředí (nastavení formátovacích vlastností apod.). Nepostradatelná může být v případě anglického popisu modelu i automatická kontrola pravopisu v definicích, komentářích, poznámkách apod. (Computer Associates, 2011a).
3.2
Enterprise Architect (Sparx Systems)
Distributorem a vývojářem nástroje Enterprise Architect je australská společnost Sparx Systems. Enterprise Architect je komplexní analytický a návrhářský UML nástroj zahrnující všechny aspekty životního cyklu vývoje SW od sběru požadavků, přes jejich analýzu, návrh, testování a řízení změn až k realizaci a údržbě. Jedná se o víceuživatelský, vizuální nástroj s velkou sadou funkcí (Sparx Systems, 2011b). Sparx Systems nabízí několik edicí tohoto nástroje: a) Desktop určená pro jednotlivce; b) Professional zahrnující široké modelovací nástroje pro pracovní skupiny, analytiky a vývojáře; 30
c) Corporate podporující práci ve velkých týmech. Kromě toho poskytuje rozšiřující edice (Ultimate, Systems Engineering a Business and Software Engineering). Následuje tabulka se stručným popisem funkcí programu Enterprise Architect pro oblast tvorby databází, uváděné informace pocházejí z přímého ozkoušení dané funkce v programu nebo na základě informací z webových stránek společnosti Sparx Systems (2011b) nebo z manuálu programu (Sparx Systems, 2011a). Forward/Reverse Engineering Význačným rysem programu Enterprise Architect je možnost komplexního návrhu pomocí UML (Unified Modeling Language) a to ve více než deseti jazykových mutací. Tabulky jsou tak z databáze reprezentovány formou tříd s vhodnými definicemi dat pro daný databázový systém. Program umí generovat DDL skripty z modelu a ty mohou zahrnovat uložené procedury, spouště, primární klíče, indexy, pohledy aj. Z hlediska RE potom je možné importovat databázové schéma do standardního modelu UML prostřednictvím připojení přes ODBC konektor. Lze také zajistit synchronizaci mezi živou databází a modelem, kdy je možno kopírovat změny z modelu/databáze do databáze/modelu. Enterprise Architect navíc poskytuje speciální šablonu pro DDL transformace. Podporuje databázové systémy DB2, Firebird/InterBase, Informix, Ingres, MS Access (97, 2000, 2003), Access 2007, MS SQL Server 2000, 2005, 2008, MySQL, Oracle 9i, 10g, 11g, PostgreSQL, Sybase ASA a Sybase ASE. Export dokumentace Jak již bylo v kapitole 2.3 uvedeno, Enterprise Architect poskytuje generování dokumentace k modelu ve formátu RTF nebo HTML. Je tak možno dokumentovat jen některé vybrané elementy v modelu a pro zajištění jednotné formy dokumentace lze k dokumentaci navázat sdílenou šablonu. Validace modelu Enterprise Architect definuje čtyři (4) základní skupiny validačních pravidel (Sparx Systems, 2011a): a) pravidla „správnosti struktury“ (Well-formedness rules) ověřující validitu UML prvků, b) pravidla kompozice (Composition rules) ověřující například, zda element obsahuje požadovaný počet správných potomků, c) pravidla „správnosti vlastností“ (Property Validity) jednotlivých UML prvků, d) pravidla shody s OCL (Object Constraint Language Conformance) kontrolující, zda element vyhovuje OCL omezením, která jsou dodefinována uživatelem v tomto jazyce. Podpora týmové práce Některé edice programu (Corporate, Ultimate aj.) umožňují velice pokročilou správu modelů v rámci týmů. Dokonce je rozlišována i různá forma této spolupráce (Sparx Systems,
31
2011c): a) kolaborace (centralizovaný tým), kdy jsou všichni účastníci spojeni prostřednictvím sítě a sdílejí stejný model v rámci nějakého databázového systému; b) kooperace (distribuovaný tým), kdy účastníci zřídka pracují v rámci jedné sítě, a tak mohou model upravovat offline po nahrání kopiie na svůj počítač. Enterprise Architect potom nabízí různé postupy, jak tyto rozdíly ve spolupráci řešit (více viz Sparx Systems, 2010). V rámci kolaborace týmu tak lze koordinovat sdílená metadata mezi uživateli a povolit některým jen přístup pro čtení. Je tak zaručeno, že práce na různých částech modelu je koordinována a synchronizována. Samozřejmostí je ukládání historie změn a případné obnovení do některé dřívější verze. Pro distribuovaný tým jsou pak k dispozici nástroje pro převod dat mezi více repozitáři prostřednictvím XML. Co se týče změn v modelu, nabízí např. edice Corporate revizi modelů, která zpřehledňuje administrátorům repozitáře prohlížení informací týkající se těchto změn (kdo změnil daný prvek, proč byl změněn, jaká byla dřívější hodnota, kdy byl daný prvek změněn apod.). Podpora tvorby dimenzionálních databází Žádná edice programu Enterprise Architect nenabízí funkce pro dimenzionální modelování.
3.3
InfoSphere Data Architect (IBM)
Dle společnosti IBM (2010b) InfoSphere Data Architect představuje řešení umožňující spolupráci při návrhu dat, které je možno použít k modelování, vizualizaci, spojování a standardizaci různých a distribuovaných dat. Následuje tabulka se stručným popisem funkcí programu InfoSphere Data Architect pro oblast tvorby databází, uváděné informace pocházejí z přímého ozkoušení dané funkce v programu nebo na základě informací z webových stránek společnosti IBM (2010b) nebo z online nápovědy k programu (IBM, 2010a). Forward/Reverse Engineering InfoSphere Data Architect dovoluje vytvářet logického, fyzické a dimenzionální modely. Nabízí široké možnosti transformací nejen v rámci těchto modelů, ale umožňuje například transformaci logického datového modelu do UML modelů a naopak. Datové modely jsou reprezentovány prostřednictvím IE (Information Engineering) notace, pro fyzické modely je navíc možno využít i UML notaci. Pro administrátory databáze a další relevantní osoby je k dispozici k doinstalování Optim Development Studio a Optim Database Administrator, kde je možné definovat přístupová práva jednotlivých uživatelů Databáze či datové sklady mohou být vytvářeny pro databázové systémy DB2, Informix, Oracle, Sybase, MS SQL Server, MySQL a Teradata.
32
Export dokumentace Dokumentace modelu je standardně nabízena ve formě publikování na web, kde jsou jednotlivé prvky modelu provázány odkazy. Pro pokročilé reporty je možné upravit XSLT šablony nebo použít šablony BIRT (Business Intelligence and Reporting Tools). Validace modelu V souvislosti se zajištěním správnosti modelu nabízí InfoSphere Data Architect definici korporátních standardů prostřednictvím doménových modelů a rejstříků. Doménové modely (domain models) popisují doménové typy, které organizace dovoluje a na které jsou návrhy databáze omezeny. Rejstříky (glossary models) pak popisují názvy a zkratky, které si přeje organizace používat pro datové objekty. Tyto standardy se definují jednou a pak se naváží na konkrétní modely a databáze. Je tak dosaženo vyšší kvality dat. Podpora týmové práce Po stránce týmové podpory je program InfoSphere Data Architect sofistikovaný. Umožňuje sdílet modely a další artefakty přes Eclipse instanci nebo repository jako je Rational Clear Case. Infosphere Data Architect nabízí pokročilé práce související s porovnáváním modelů, modelu a databáze nebo dvou databází. Porovnání umožňuje znázornit rozdíly mezi dvěma objekty (např. tabulkami) nebo dvěma modely. Tyto změny lze kopírovat do druhého modelu/objektu/databáze. Je možné také vygenerovat patřičný DDL skript, který se pak spustí v databázovém systému a zapracuje tak tyto změny do fyzické podoby databáze. Dále je možno provádět tzv. analýzy dopadů, které definují seznam všech závislostí pro zvolené datové prvky v modelu. Podpora tvorby dimenzionálních databází InfoSphere Data Architect umožňuje i dimenzionální modelování a to jak na úrovni logického, tak na úrovni fyzického modelu. Kromě toho lze tyto modely propojit s aplikacemi Cognos a InfoSphere Warehouse. Program tak podporuje významně tvorbu datových skladů a zpřístupňuje prostřednictvím JDBC připojení různorodé datové zdroje. Information Engineering notaci nebo Unified Modelling Language.
InfoSphere Data Architect je nejen modelovací nástroj, ale představuje i silný integrační návrhový nástroj pro podnik. Program umí importovat a exportovat modely z jiných nástrojů pro datové modelování (CA ERwin Data Modeler, Sybase PowerDesigner aj.).
3.4
PowerDesigner (Sybase)
Vývojář programu PowerDesigner, společnost Sybase o něm uvádí, že je jedinečně vybaven pro podporu všech architektonických prostředí, konkrétně pro podporu datové, informační a podnikové architektury. Dále společnost na svých stránkách vyzdvihuje flexibilitu tohoto nástroje, široké možnosti pro podporu standardů, analýzu a synchronizaci modelů (Sybase, 2011). 33
Tyto benefity PowerDesigner skutečně dle našeho zkoumání zahrnuje. Jedná se o robustní program pro podporu nejen datového modelování, umožňuje i tvorbu dalších modelů (procesních, objektově orientovaných aj.). Následuje tabulka se stručným popisem funkcí programu PowerDesigner pro oblast tvorby databází, uváděné informace pocházejí z přímého ozkoušení dané funkce v programu nebo na základě informací z webových stránek společnosti Sybase (2011) nebo z manuálu programu (Sybase, 2008). Forward/Reverse Engineering PowerDesigner podporuje RE tím, že umí generovat model z databáze nebo souboru se skriptem. Je možno se z něho připojit prostřednictvím ODBC až k více jak 60 relačním databázovým systémům. Při generování DDL skriptu je možno rozšířit šablony pro toto generování a zahrnout tak do skriptu statistiky (počet jedinečných hodnot ve sloupci, průměrná délka znakových polí apod.) sloužící k optimalizaci databáze. Program nabízí na výběr všechny tři úrovně datových modelů (tedy konceptuální, logický a fyzický) a ještě k tomu v něm lze vytvářet dimenzionální modely tvořené faktovými a dimenzionálními tabulkami a OLAP kostky. PowerDesigner umožňuje navíc použít několik notací pro datové modely, kromě standardní IE (Information Engineering) notace podporuje také Barker, IDEF1X a Merise notace. Export dokumentace Dokumentace modelu může být generována jak v podobě statického textového dokumentu (RTF), tak v podobě interaktivní HTML stránky. K dispozici jsou poměrně estetické standardní šablony, které je možno doupravit, nebo přímo vytvořit šablony vlastní. Validace modelu PowerDesigner zahrnuje funkce pro kontrolu správnosti modelu (check model). Celá validace modelu se vyhodnocuje přehledně v okně Output. Výsledky validace lze pak v některých případech automaticky opravit, v každém případě program vždy nabízí k dané chybě nebo varování zobrazení pomocné nápovědy (nabídka Help po kliknutí pravým tlačítkem na konkrétní výsledek validace). Jak bylo zmíněno v podkapitole 2.4.3, PowerDesigner umožňuje komplexní správu obchodních pravidel, do kterých je možno zahrnout další omezení a pravidla modelu prostřednictvím přirozeného jazyka nebojazyka OCL. Podpora týmové práce PowerDesigner zahrnuje repositář s metadaty, který zlepšuje komunikaci a spolupráci mezi všemi zúčastněnými stranami v podniku a usnadňuje rychlejší reakce na změny. Program nabízí funkce pro sloučení změn v modelech a jejich porovnání. Pokud je model uložen do repositáře a jiný model má jím být přepsán, automaticky se zobrazí dialogové okno, kde je nutné vyřešit případné konflikty mezi verzemi (přijmout či odmítnout
34
změnu). Podporovanými databázemi použitelnými pro repositář jsou Sybase ASA, Sybase ASE a Oracle. Bezpečnost repositáře je pak zajištěna formou nastavení oprávnění pro dané role uživatelů. Tato oprávnění definuje administrátor repositáře a jsou typicky odlišné od práv použitých v databázi. V repositáři je podporováno vytváření vývojových větví, verzování a zamykání modelů. Podpora tvorby dimenzionálních databází V programu PowerDesigner může uživatel vytvářet dimenzionální modely a kostky a to i přímo z fyzického datového modelu. Program sám odvodí faktové tabulky a dimenze. Kromě toho lze vytvářet hierarchické dimenze a vypočítané ukazatele. Nespornou výhodou tohoto nástroje je dále možnost mapování datových zdrojů pro datový sklad či jiný dimenzionální model. Program tak umožňuje zajistit prostřednictvím Mapping editoru či karty Mapping u daného objektu spojení mezi objekty patřícími k různým modelům. Této vlastnosti se dá využít např. pro identifikaci vazeb mezi zdrojovými operačními modely systému v podobě fyzických datových modelů a jejich transformacemi v dimenzionálním modelu.
3.5
SQL Developer Data Modeler (Oracle)
Producentem programu SQL Developer Data Modeler je společnost Oracle. Jedná se o volně dostupný nástroj pro modelování a návrh databází. Následuje tabulka se stručným popisem funkcí programu SQL Developer Data Modeler pro oblast tvorby databází, uváděné informace pocházejí z přímého ozkoušení dané funkce v programu nebo na základě informací z webových stránek společnosti Oracle (2011) nebo z manuálu programu (Oracle, 2008). Forward/Reverse Engineering SQL Developer Data Modeler zahrnuje nástroje pro modelování ERD (Entity Relationship Diagrams), relačních, fyzických a dimenzionálních modelů a to prostřednictvím FE a RE. Umožňuje uplatnit modelem řízenou architekturu. Pro návrh datových modelů je možno využít notaci Barker nebo Bachman, částečně je podporována i IE (Information Engineering) notace. Jelikož producentem programu SQL Developer Data Modeler je společnost Oracle, tedy vývojář databázových systémů, nabízí program speciální podporu právě pro tyto databázové systémy (např. podpora klastrů, balíčků, dočasné tabulky, sekvence, synonyma apod.). Dalšími podporovanými databázovými systémy v tomto programu jsou MS SQL Server 2000 a 2005, IBM DB2/390 a DB2 LUW V7 a V8 a samozřejmě zahrnuje patřičné zohlednění specifik těchto jednotlivých systémů ve fyzických modelech. Export dokumentace Co se týče reportování informací o datových modelech, SQL Developer Data Modeler obsahuje repositář pro dokumentaci, ve které se s každým nahráním nových nebo
35
změněných reportů vytváří nová verze. Dále lze vyexportovat jednotlivé reporty ve formátu XML, který je zobrazitelný v programech jako MS Word. Validace modelu Program zahrnuje sadu předdefinovaných návrhových pravidel sloužících pro validaci správnosti informací v modelu. Je však možno uživatelem dodefinovat další pravidla a vytvářet knihovny těchto pravidel. Pro standardizaci a zajištění správnosti modelu může sloužit i slovníček, jenž obsahuje povolené hodnoty, strukturu a délku názvu nebo neplatné znaky pro prvky v datových modelech Podpora týmové práce SQL Developer Data Modeler podporuje verzování, porovnávání a spojování modelů. Je tak možno ukládat „oficiální“ verze návrhů v centrálním repositáři. Program dále umožňuje víceuživatelský přístup a práci na stejném modelu formou koordinování změn (zamčení a odevzdávání modelu). Uživatelé mohou zobrazovat v příslušném okně schválené změny, které ukazuje, jaké soubory byly přidány, upraveny nebo odstraněny, dále soubory, jež jsou v rozporu s jinými verzemi a mnoho jiného. Podpora tvorby dimenzionálních databází Program podporuje návrh dimenzionálních modelů, zahrnující tvorbu star a snowflake schémat, dimenzí a její hierarchie, dále tvorbu sdílených dimenzí, faktových tabulek, ukazatelů s nastavením různých agregačních funkcí, napočítaných ukazatelů. Podporováno je i vytváření Oracle OLAP kostek. Dále program umí propojit fyzický datový model s modelem dimenzionálním a tak zajistit identifikaci metadat v podobě vazeb mezi zdrojovým systémem a systémem např. datového skladu.
3.6
ER/Studio Data Architect
Vydavatel, společnost Embarcadero charakterizuje program ER/Studio Data Architect jako komplexní řešení pro modelování a vytváření návrhů databází. Kombinuje modelování procesů, dat a aplikací a napomáhá k pochopení, návrhu a komunikování komplexních systémů a architektur (Embarcadero, 2011b). Následuje tabulka se stručným popisem funkcí programu ER/Studio Data Architect pro oblast tvorby databází, uváděné informace pocházejí z přímého ozkoušení dané funkce v programu nebo na základě informací z webových stránek společnosti Embarcadero (2011b) nebo z manuálu programu (Embarcadero, 2011a). Forward/Reverse Engineering ER/Studio Data Architect umožňuje vytvářet logické a fyzické datové modely a provádět mezi nimi transformace. Podporuje následující databázové systémy: InterBase, Oracle, DB2, Sybase, SQL Server, Netezza, Teradata, MySQL, PostgreSQL aj. Export dokumentace
36
Podporovanými formáty pro export dokumentace jsou HTML a RTF. Program usnadňuje komunikaci a dokumentaci prostřednictvím publikování metadat modelu přímo do podnikového intranetu nebo na web (produkt ER/Studio Portal). Mají tak k těmto informacím přístup i další zúčastněné strany, které přímo nepoužívají ER/Studio Data Architect (např. výkonný management nebo byznys analytici). Validace modelu ER/Studio poskytuje datový slovník, který umožňuje podporu standardů, opětovného použití a vytvoření společného rámce pro všechny modely v organizaci. Domény, výchozí hodnoty a pravidla stanovené v tomto slovníku tak vytváří obecný seznam datových prvků, které mohou být použity v datových modelech. V případě potřeby lze přidat k metadatům další informace v podobě přílohy. Podpora týmové práce Program podporuje bezpečnou a kontrolovanou distribuci práce týmových členů do repositáře. Jsou implementovány funkce pro souběžné modelování, porovnání, spojování a verzování modelů. Podpora tvorby dimenzionálních databází Program ER/Studio Data Architect nepodporuje tvorbu dimenzionálních databází.
4 Závěr Tato semestrální práce byla vytvořena s cílem seznámit čtenáře s nástroji CASE pro návrh databází z hlediska jejich funkčnosti. Nejdříve byla nejvýznamnější funkčnost popsána na obecné úrovni s uvedením názorných ukázek z programů a následně byla popsána specifika jednotlivých funkcí ve vybraných nástrojích. Z výše uvedeného docházíme k závěru, že většina námi vybraných nástrojů má velmi podobné možnosti použití s odlišnostmi spočívajícími v rozsahu těchto funkcí. -
PWD a Erwin hodně propracované nástroje SQL Power Architect „chudší“ porovnání funkcionalit formou tabulky (pracovní verze v Excelu)
5 Použitá literatura AGARWAL, B. B.; TAYAL, S. P.; GUPTA, M. 2010. Software engineering & testing. Sudbury (USA) : Jones and Bartlett, 2010. 10.7 CASE Repository, s. 229231. ISBN 978-1-934015-55-1.
37
BENEŠ, Michal. 2008. Terminologický slovník [online]. 2008, 03.02.2008 [cit. 2011-06-02]. Dostupné z WWW: . BLAHA, Michael R. 1999. The Case for Reverse Engineering. IT Professional [online]. Mar/Apr 1999, vol. 2, [cit. 2011-05-22]. Dostupný z WWW: . ISSN 1520-9202. Computer Associates. 2011a. CA ERwin Data Modeler : Online Help CA ERwin® Data Modeler r8 [elektronická dokumentace]. [New York, (USA)] : Computer Associates, c2011. Dostupné po nainstalování programu z nabídky Help. Computer Associates. 2011b. CA ERwin Data Modeling [online]. c2011 [cit. 2011-02-19]. Dostupné z WWW: . Embarcadero. 2011a. ER/Studio® Data Architect : User Guide version 9.0.1 [online]. [San Francisco (USA)] : Embarcadero Technologies, January, 2011 [cit. 2011-05-03]. Dostupné z WWW: . Embarcadero. 2011b. Data Modeling Enteprise Software : Embarcadero ER/Studio [online]. Embarcadero, c2011 [cit. 2011-05-11]. Dostupné z WWW: . FILIPPI, Tomáš, et al. 2009. Podpora CASE nástrojů při vytváření databází : 4IT450 - Computer aided software engineering [online]. Praha : Vysoká škola ekonomická, 2009. 44 s. Semestrální práce. Vysoká škola ekonomická. Dostupné z WWW: . GARG, Mamta; JINDAL, Manoj Kumar. 2009. Reverse Engineering : Roadmap to Effective software Design. International Journal of Recent Trends in Engineering [online]. May 2009, vol. 1, no. 2, [cit. 2011-06-01]. Dostupný z WWW: . ISSN 1797-9617. HAINAUT, Jean-Luc. 2002. Introduction to Database Reverse Engineering [online]. Namur (Belgie) : Laboratory of Database Application Engineering, May 2002 [cit. 2011-06-09]. Dostupné z WWW: . IBM. 2010a. Help - IBM InfoSphere Data Architect Version 7.5.3 [online]. IBM Corporation, c2010 [cit. 2011-03-11]. Dostupné z WWW: . IBM. 2010b. InfoSphere Data Architect [online]. IBM Corporation, c2010 [cit. 2011-06-19]. Dostupné z WWW: . 38
KALIS, Frank. 2007. Data Architecture and Database Design Made Easy With ER/Studio. SQL Server Performance : SQL Server Performance Tuning [online]. January 02, 2007 [cit. 2011-06-13]. Dostupný z WWW: . KOZELKOVÁ, Hana. 2006. Editor ER diagramů s podporou převodu do relačního modelu [online]. Praha : Univerzita Karlova v Praze, 2006. 59 s. Bakalářská práce. Univerzita Karlova v Praze, Matematicko-fyzikální fakulta. Dostupné z WWW: . MURRAY, Chuck. 2011. Oracle® SQL Developer : User’s Guide 3.0 [online]. [s.l.] : Oracle, May 2011. 276 s. [cit. 2011-03-24]. Dostupné z WWW: . MÜLLER, Hausi A., et al. 2000. Reverse engineering : a roadmap. In Proceedings of the Conference on The Future of Software Engineering [online]. New York (USA) : ACM, 2000 [cit. 2011-05-12]. Dostupné z WWW: . ISBN 1-58113-253-0. Oracle. 2011. SQL Developer Data Modeler [online]. Oracle, [2011] [cit. 2011-03-10]. Dostupné z WWW: . Oracle. 2008. Oracle SQL Developer Data Modeler 3.0.0 : Help Center [elektronický manuál]. [s.l.] : Oracle, c2008 [cit. 2011-05-20]. Dostupné z nápovědy v programu. POTANČOK, Martin et al. 2010. Podpora CASE při vytváření databází : Semestrální práce 4IT450 [online]. Praha : Vysoká škola ekonomická, 2010. 53 s. Semestrální práce. Vysoká škola ekonomická. Dostupné z WWW: . SILPIÖ, Kari. 2009. Database reverse engineering. In DBTech_EXT Workshop [elektronická prezentace]. Thessaloniki (Řecko) : HAAGA-HELIA University of Applied Sciences, 2009-09-10 [cit. 2011-04-03]. Dostupné z WWW: . Sparx Systems. 2011a. Enterprise Architect 7.1 User Guide [online]. [Creswick (Austrálie)] : Sparx Systems, May 2011. 1655 s. [cit. 2011-03-12]. Dostupné z WWW: . Sparx Systems. 2011b. Enterprise Architect : UML design tools and UML CASE Tools for software development [online]. c2000-2011 [cit. 2011-03-10]. Dostupné z WWW: . Sparx Systems. 2010. Version Control Best Practices for Enterprise Architect [online]. [s.l.] : Sparx Systems, 2010. 17 s. [cit. 2011-04-05]. Dostupné z WWW: . 39
Tool
Sybase. 2011. PowerDesigner Modeling and Metadata Management Software [online]. Sybase, c2011 [cit. 2011-04-06]. Dostupné z WWW:
. Sybase. 2008. PowerDesigner v15.0 Data Modeling [elektronický manuál]. [Dublin, CA (USA)] : Sybase, c1991-2008 [cit. 2011-06-18]. Dostupné v rámci nápovědy programu. ŠVEŘEPA, Jaromír. 2004. MDA, aneb architektura řízená modelem. Softwarové noviny [online]. 2004, 10, [cit. 2011-05-25]. Dostupný z WWW: . ISSN 1210-8472. TEOREY, Toby, et al. 2005. Database modeling and design : Logical design. 5. Burlington, USA : Elsevier, 2005. 331 s. ISBN 978-0-12-382020-4. WELKE, Richard J. 1988. The CASE Repository : More than another database application [online]. Ann Arbor (USA) : Meta Systems, 1988 [cit. 2011-0509]. Dostupné z WWW: .
40