Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Vyšší odborná škola informačních služeb v Praze
Ladislav Pešta Porovnání databázových technologií s AD-HOC aplikací pro ukládání provozních dat
bakalářská práce
2010
2
Prohlášení Prohlašuji, že jsem bakalářskou práci zpracoval samostatně a že jsem uvedl všechny použité prameny a literaturu, ze kterých jsem čerpal.
V Praze dne 20.12.2010 ……………………. Pešta Ladislav
Poděkování Chtěl
bych
tímto
poděkovat
svému
vedoucímu
bakalářské
práce
Ing. Bc. Davidu Klimánkovi, Ph.D., dále společnosti AŽD Praha s.r.o. za poskytnutí materiálu pro tuto práci a v neposlední řadě, bych chtěl poděkovat své rodině za podporu během celého studia.
Abstrakt Tato bakalářská práce si klade za cíl porovnat databázové technologie s programem napsaným nedatabázovým jazykem. V úvodní části se nachází terminologický slovník, který přibližuje čtenáři základní pojmy obsažené v této práci. Další část obsahuje porovnání dvou databázových systémů a návrh databáze pro vybraný funkční model. Toto porovnání je provedeno z hlediska architektury, funkčních omezení, správy systému a další. V závěru je porovnání návrhu s existujícím programem.
Abstract This bachelor’s thesis aims at comparison of database technology and program written in nondatabase language. In the first part there is located glossary, which brings the basic concepts, used in this thesis, to the reader. Another section contains a comparison of two database systems and database design for the selected functional model. This comparison is done in terms of architecture, functional limitation, system administration and more. In conclusion, there is comparison of the design and existing program.
Obsah OBSAH ........................................................................................................................................... 7 1
2
3
ÚVOD ..................................................................................................................................... 10 1.1
CÍL PRÁCE .............................................................................................................................. 10
1.2
STRUKTURA PRÁCE .................................................................................................................. 10
VYSVĚTLENÍ ZÁKLADNÍCH POJMŮ .......................................................................................... 11 2.1
DATA.................................................................................................................................... 11
2.2
DATABÁZE ............................................................................................................................. 11
2.3
RELAČNÍ DATOVÝ MODEL .......................................................................................................... 11
2.4
SŘBD ................................................................................................................................... 11
2.5
RDBMS ............................................................................................................................... 12
2.6
INSTANCE .............................................................................................................................. 12
ZÁLOHOVÁNÍ DAT .................................................................................................................. 13 3.1
METODY ZÁLOHOVÁNÍ ............................................................................................................. 14
3.2
TYPY MÉDIÍ ............................................................................................................................ 15
3.2.1 4
AŽD PRAHA ............................................................................................................................ 18 4.1
5
ORGANIZAČNÍ STRUKTURA ........................................................................................................ 19
VSDMANAGER ....................................................................................................................... 21 5.1
6
Životnost medií ......................................................................................................... 16
SOUČASNÝ STAV PROGRAMU ..................................................................................................... 21
5.1.1
Databáze aplikací / kategorií.................................................................................... 21
5.1.2
Databáze verzí .......................................................................................................... 21
5.1.3
Databáze uživatelů ................................................................................................... 21
5.1.4
Databáze připomínek ............................................................................................... 22
5.1.5
Databáze změn ......................................................................................................... 22
5.1.6
Databáze příloh ........................................................................................................ 23
5.1.7
Databáze komentářů ................................................................................................ 23
ORACLE .................................................................................................................................. 25 6.1
ORACLE DATABASE 10G EXPRESS EDITION ................................................................................... 25
6.1.1
Recovery Manager.................................................................................................... 26
6.1.2
SQL*Plus ................................................................................................................... 26
6.1.3
Oracle Application Express ....................................................................................... 26
7
6.1.4
Nástroje pro import a export .................................................................................... 26
6.1.5
Dokumentace ........................................................................................................... 26
6.2
6.2.1
Datové soubory......................................................................................................... 28
6.2.2
Kontrolní soubor ....................................................................................................... 28
6.2.3
Soubory protokolu .................................................................................................... 28
6.2.4
Dočasné soubory ...................................................................................................... 28
6.3
INSTALACE A NÁSTROJE PRO SPRÁVU ........................................................................................... 28
6.3.1
Instalace ................................................................................................................... 28
6.3.2
Nástroje pro správu .................................................................................................. 29
6.4
7
MOŽNOSTI UKLÁDÁNÍ .............................................................................................................. 27
6.3.2.1
Oracle Application Express ................................................................................................ 29
6.3.2.2
SQL*Plus ............................................................................................................................ 31
IMPORT A EXPORT ................................................................................................................... 31
6.4.1
SQL*Loader ............................................................................................................... 31
6.4.2
Data Pump Import / Export ...................................................................................... 32
6.4.3
Data Load/Unload .................................................................................................... 32
MICROSOFT ........................................................................................................................... 33 7.1
MICROSOFT SQL SERVER 2005 EXPRESS EDITION ........................................................................ 33
7.2
MOŽNOSTI UKLÁDÁNÍ .............................................................................................................. 34
7.2.1
Primární datové soubory .......................................................................................... 35
7.2.2
Sekundární datové soubory ...................................................................................... 35
7.2.3
Soubory transakčního protokolu .............................................................................. 35
7.3
7.2.3.1
Jednoduchý model ............................................................................................................. 36
7.2.3.2
Úplný model ...................................................................................................................... 36
7.2.3.3
Model bez záznamu hromadných operací ......................................................................... 36
INSTALACE A NÁSTROJE PRO SPRÁVU ........................................................................................... 36
7.3.1
Instalace ................................................................................................................... 36
7.3.2
Nástroje pro správu .................................................................................................. 37
7.4
7.3.2.1
Microsoft SQL Server Management Studio Express .......................................................... 37
7.3.2.2
SQLCMD ............................................................................................................................. 39
IMPORT A EXPORT ................................................................................................................... 39
7.4.1
SQL Server Import and Export Wizard ...................................................................... 39
7.4.2
BCP............................................................................................................................ 39
7.4.3
Builk insert ................................................................................................................ 40
8
VZÁJEMNÉ SROVNÁNÍ ........................................................................................................... 41
9
NÁVRH DATABÁZE PRO VYBRANÝ FUNKČNÍ MODUL ........................................... 43 9.1
SPECIFIKACE POŽADAVKŮ .......................................................................................................... 43
8
9.2
POŽADAVKY NA FUNKCIONALITU ................................................................................................ 43
9.3
KONCEPTUÁLNÍ MODEL ............................................................................................................ 43
9.4
NÁVRH A DEFINOVÁNÍ TABULEK ................................................................................................. 44
9.4.1
Tabulka ČR ................................................................................................................ 44
9.4.2
Tabulka verzí............................................................................................................. 44
9.5 10
DEFINICE VZTAHU.................................................................................................................... 45 POROVNÁNÍ NÁVRHU S EXISTUJÍCÍ ČÁSTÍ PROGRAMU ..................................................... 46
10.1
VÝHODY NÁVRHU ............................................................................................................... 46
10.2
NEVÝHODY NÁVRHU ........................................................................................................... 47
11
ZÁVĚR ............................................................................................................................... 48
12
SEZNAM POUŽITÉ LITERATURY .......................................................................................... 50 12.1
TIŠTĚNÉ ZDROJE ................................................................................................................. 50
12.2
INTERNETOVÉ ZDROJE.......................................................................................................... 50
9
1 ÚVOD Jak je uvedeno v názvu této práce půjde o porovnávání databázové technologie s nedatabázovou na konkrétním programu. Program, který k tomuto účelu budu využívat, je majetkem společnosti AŽD Praha s.r.o., která udělila svolení k tomuto využití. Toto svolení bylo uděleno pod podmínkou, že nebudou zveřejněny interní informace obsažené v tomto programu, proto budou určité údaje pozměněné, aby byly zadané podmínky dodrženy. Zmiňovaný program nese název VSDManager a byl vyvinut za několika účely. Některé z těchto účelů rozvedu dále v této práci. Mou snahou bude seznámit čtenáře s výhodami obou dvou typů řešení v teoretické rovině. V praktické části navrhnu databázi odpovídající jednomu funkčnímu modelu z programu VSDManager. Na začátku seznámím čtenáře se základními pojmy, které považuji za klíčové k pochopení této práce, a které se vyskytují v dalších částech. Samotné srovnání provedu s jedním z databázových systému, které okrajově popíši v jedné části této práce a následným porovnáním vyberu jeden vhodný pro účel této práce.
1.1
Cíl práce
Hlavním cílem této práce je provést analýzu konkrétní databázově intenzivní softwarové aplikace, popsat a zanalyzovat konkrétní softwarovou aplikaci pro ukládání provozních dat. Navrhnout alternativu za použití databázových technologií. Na závěr se pokusím poukázat na výhody a nevýhody, které databázové technologie mají. Pro splnění těchto cílů využiji jak tištěné tak elektronické zdroje, které uvedu na konci této práce. Z těchto zdrojů bych měl být schopen získat dostatek informací, které po zpracování a utřídění se pokusím prezentovat vhodným způsobem.
1.2
Struktura práce
Práce bude rozdělena do několika částí. První bude zaměřena na popsání současného stavu a struktury VSDManageru. V praktické části provedu porovnání dvou
různých
databázových
systémů,
poté
navrhnu
databázovou
základnu
pro vybraný funkční modul. V závěrečné části bude konečné srovnání a z něj plynoucí závěr. 10
2 Vysvětlení základních pojmů Pro lepší pochopení dalších kapitol považuji za vhodné objasnit význam několika základních pojmů. Většina těchto pojmů je využívána v části, kde porovnám mezi sebou dva databázové systémy.
2.1
Data
V [1] je následující definice: Za data považujeme jakékoliv fyzicky (materiálně) zaznamenané znalosti (vědomosti), poznatky, zkušenosti nebo výsledky pozorování procesu, projevu, činností a prvků reálného světa (reality). Data mohou být zaznamenávána jak klasickým („nepočítačovým“) způsobem, tak na počítačových médiích.
2.2
Databáze
Často takto bývají v praxi mylně označovány různé programové produkty, které spravují data. Správně bychom si měli pod tímto pojmem představit skupinu dat sloužící více aplikacím. U takovéto skupiny bývá struktura uložena nějakém datovém médiu. Můžeme se též setkat s termíny jako datová základna či báze dat, nebo zkratkou DB.
2.3
Relační datový model
Je znám od roku 1970, kdy jej vynalezl Edgar F. Codd. [1] definuje RDM takto: Model využívá k vyjádření dat a vztahu mezi nimi množinu tabulek. Každá tabulka má jedinečný název a je tvořena několika sloupci a řádky. Nejmenší hodnotou v relační struktuře je datová hodnota. Řádek tabulky reprezentuje vztah množiny hodnot. Tabulka je tedy množinou takových vztahů.
2.4
SŘBD
Systém řízení báze dat, bývá také prezentován jako DBMS, což je zkratka z anglického
názvu:
database
management
system.
Pod
tímto
názvem,
ať jedním či druhým, si můžeme představit skupinu programových prostředků. Ty jsou využívány pro práci s databázovými daty. Objevují kteří SŘBD označují jako databázový server, což není zcela přesná definice.
11
se i tací,
2.5
RDBMS
Opět zkratka z anglického výrazu Relational Database Management System, což
je
překládáno
jako
SŘBD
založený
na
relačním
datovém
modelu.
Pro rozpoznání RDBMS slouží tři následující pravidla, která jsou v [1] formulována následovně: • databáze se uživateli musí jevit jako množina tabulek • mezi tabulkami neexistují žádné uživatelem viditelné fyzické vazby • musí být k dispozici alespoň jeden uživatelsky přístupný jazyk pro manipulaci s daty, který umožní realizovat základní relační operace projekce, restrikce (selekce) a join, aniž by bylo nutné psát postup získání výsledku
2.6
Instance
Databázová instance, nebo instance databázového systému nám umožňuje přístup k databázi a tím i k datům uloženým na místních nebo síťových pevných discích, ale pouze v případě, že je spuštěna. Na pozadí operačního systému běžící procesy databázového serveru jsou to, co tvoří instanci databázového systému.
12
3 Zálohování dat Proč zálohovat data? Protože většina z nás zas až tak často zálohu neprovádí, provádí-li ji vůbec. Mít data uložená jen na pevném disku, a nikde jinde se na první pohled nemusí zdát jako špatný nápad ale to pouze za předpokladu, že jsme ochotni spoléhat jenom na to, že především pevný disk ale i ostatní součásti počítače budou pořád fungovat až téměř na věky. Jenomže ono stačí, aby se jedna součástka zadrhla nebo přehřála a rázem je po datech. Tudíž je pohled na data uložená pouze na jednom místě riskantní. Kromě výše zmíněné hardwarové nespolehlivosti je tu ale celá řada možností jak přijít o data. Nejčastější příčiny ztráty dat: •
Lidská chyba – smazání nebo přepsání dat vlastní vinou
Následky takovéto chyby lze v určitých případech řešit za pomocí software pro obnovu dat. Toto je pravděpodobně nejčastější příčina ztráty dat. •
Selhání operačního systému
Operační systém, ať už se jedná o nějakou verzi Windows od společnosti Microsoft či o jiný operační systém, není v dnešní době spolehlivý na 100%. Zde bych rád zmínil, že častou chybou je neoddělení systému a dat. Což nastává, pokud jsou data ukládána na systémový oddíl – tedy oddíl, na kterém je nainstalován operační systém. Předchází se tomu tak, že se pevný disk rozdělí na více oddílů. •
Chyba aplikace
Této chybě se lze vyvarovat, pokud je do počítače instalován pouze kvalitní software, který si lze ideálně ověřit před instalací. Pokud ověření není možné a není o něm dostatek informací je možné ho nejprve vyzkoušet například ve virtuálním počítači. • Zde
Viry a malware lze
namítat,
že
v
dnešní
době
existují
spolehlivé
antivirové,
antispywarové programy, které vás většinou ochrání před většinou hrozeb. Předpoklad pro to, aby tyto programy pracovaly správně je udržovat tyto programy vždy aktualizované. I tak je tu vždy určité riziko. •
Hardwarová porucha
Jak jsem zmiňoval na začátku této kapitoly, hardwarové poruše nelze předejít. Lze se na ní pouze připravit a to tak, že existuje záloha dat z pevného disku.
13
Je možné si hardwarovou chybu rozdělit na dvě skupiny. Havárie pevného disku a havárie čehokoli jiného v PC, díky čemuž není možné jej spustit. •
Živelné pohromy
Tuto hrozbu si více uvědomují společnosti, pro které jsou data životně důležitá. Takovéto firmy většinou mají vlastní disaster recovery plán, který využijí v případě katastrofy typu požár nebo povodeň ke zprovoznění IT systémů a obnovy dat. Případně použít data, která byla zálohována a uskladněna mimo zasažené místo.
3.1
Metody zálohování
Existuje několik způsobů zálohování[14]. • Ruční zálohování dat Není nic jiného než, že se nějaký adresář ručně zkopíruje do požadovaného úložiště. Výhodou tohoto řešení je jeho cena, nestojí totiž nic. Nevýhodou je nutnost pamatovat na takovýto systém zálohy. • Automatizované kopírování dat neboli synchronizace dat Možností jak provádět takovýto systém zálohy
je
několik.
Je možné využít kupříkladu nástroj plánovač úloh, který je součástí Microsoft Windows. Další možností je za pomocí programu, který lze pořídit zdarma. V takovém programu lze nastavit detailnější požadavky na zálohování. • Kopírování dat s komprimací Programy jako WinZip či WinRAR
mohou být považovány za nástroje
pro zálohování dat s komprimací. Protože tato varianta zálohování využívá komprimaci pro zhuštění dat. Tím je docíleno na straně úložiště určité úspory místa, které je potřebné pro data tam zálohována. Logickou částí této možnosti je fakt, že pokud chceme použít zálohovaná data, tak musí dojít nejdříve k rekompilaci. • Automatizované zálohování dat s komprimací Pod touto možností si je třeba představit programy, které využívají komprimaci a přitom jsou schopny samy provádět zálohu, tak jak je zadáno. V této variantě zálohování se jedná především o placené programy, které už umožňují nastavit celou řadu parametrů pro zálohu. • Zálohování dat úplně jinak - imaging Všechny dosud popsané metody zálohování dat přicházejí s jedním problémem. A to s problémem strávit určitý čas čekáním než dojde k vytvoření zálohy. Zálohování
14
datovou
metodou
vyžaduje,
aby
programy
načetly
zdrojový
soubor,
který má být zálohován, zkomprimovaly ho a následně jej uložily do potřebného umístění. Tomuto problému se lze vyhnout tím, že se nebude zálohovat datovou metodou ale vytvářením obrazů diskových oddílů. Rozdíl a zlepšení oproti datové metodě zálohování spočívá v tom, že při tvorbě image počítač nenačítá jednotlivé soubory, ale rovnou ukládá informace z obsazených sektorů na daném diskovém oddílu. Toto řešení ale těžko využije někdo, kdo potřebuje zálohovat jeden adresář. Pro takové případy lze opět najít programy, které budou schopné vytvořit image disku, nebo image diskového
oddílu
a
přitom
bude
umět
vynechat
nepotřebné
adresáře.
Takovéto programy jsou placené.
3.2
Typy médií
V dnešní době mají nejen firmy ale i domácnosti k dispozici širokou nabídku datových nosičů. Téměř všechny se dají použít i pro účely zálohování. •
Diskety
Diskety byly využívány pro zálohování jen krátce, mohly za to především nízká kapacita médií, nízké přenosové rychlosti a nízká životnost médií. Přesto jsou dodnes diskety na několika málo místech využívány, i když většinou neslouží k zálohování. • Jsou
Magnetické pásky dosud
používané
některými
společnostmi
pro
zálohování
dat.
Magnetické pásky byly nejpoužívanější zálohovací médium. S rychlým vývojem pevných disků, ztrácejí ovšem jejich tehdejší výhody význam. Přesto stále může být jejich rychlost souvislého čtení či zápisu vyšší než je u pevných disků. Ovšem přístupové časy a sekvenční přístup je značnou nevýhodou. •
Optické a magnetooptické disky
Jsou vhodné spíše pro archivaci než pro zálohu, i když jejich udávaná životnost není příliš dlouhá, stačí pro domácí použití a pro malé firmy. Je to dáno díky nízkým nákladům na pořízení a rychlosti zápisu. Média CD-RW a DVD-RW umožňují opakovaný zápis na jedno médium a jsou tak použitelná i pro periodické zálohy. Ovšem s každým dalším přepisem se snižuje jejich životnost. Pro účely zálohování se dnes používají především DVD a Blue Ray disky. Další nevýhodou optických medií je, že každé je potřeba označit, popsat, protože při obnově dat se musí povětšinou vkládat v přesně daném pořadí a jakékoliv záměna vede k naprosté zbytečnosti 15
existence záloh na nich. Největším problémem těchto medií je, že s postupujícím časem dochází ke ztrátě dat. Výjimkou z tohoto pravidla je formát DTD, vyvinutý společností Northern Star spol. s r.o. Tento formát dosahuje životnosti až 160 let s garancí zachování dat. [17] Technologie „DTD” se odlišuje od ostatních CD-R , DVD-R/+R především v záznamové vrstvě. Původní organická je u „DTD” nahrazena anorganickými keramicko-kovovými materiály, které lépe chrání data před vlivy prostředí. Nedochází tak k přirozenému stárnutí záznamové vrstvy, jako u předešlých organických disků. •
Pevné disky
V dnešní době kdy se jejich kapacity pohybují již v jednotkách terabytů a jejich ceny nejsou závratné, není divu, že jsou pevné disky volbou hodnou zamyšlení. Možnosti připojení do systému je několik, ať už se jedná o interní či externí provedení. Výhodou externích oproti interním je jejich přenositelnost a okamžitá použitelnost. V případě pádu nemají sice odolnost, jakou nabízejí Flash disky ale mají jejich jednoduchost při zapojení. Obzvláště v případě notebooků je pořízení externího pevného disku snadnou možností jak získat více místa buď pro zálohu, nebo více pracovního prostoru. •
Online úložiště
Téměř každý se již setkal se situací, při níž byla hardwarová chyba příčinou ztráty dat. Ať už to byl výpadek interních HDD, flash disků, nebo díky škrábancům na optických mediích aj. Možná právě proto získávají online synchronizace čím dál více na popularitě. Jedná se o jednoduchou formu přenosu dat mezi více zařízeními.
3.2.1 Životnost medií Jedním z hlavních parametrů, který je zohledňován při výběru vhodného média pro zálohu či archivaci dat. Samozřejmě, že pro potřeby zálohování není životnost tak důležitým parametrem jako při archivaci, kdy je snaha o životnost dat na médiu, co možná nejvyšší. •
Diskety
5 až 10 let je doba, po kterou by měla být data na disketách stále čitelná. Jedná se ale pouze o teoretický odhad. V praxi můžeme přijít do kontaktu s disketami, na kterých jsou chyby již po dvou až třech letech. Samozřejmě je zde velkou otázkou správně zacházení, které se velmi podepisuje na životnosti disket.
16
•
Magnetické pásky
Není v dnešní době ještě jiné médium, které by bylo pro uchovávání dat na delší dobu vhodnější než právě magnetické pásky. Jejich životnost se liší s
jednotlivými
tipy a výrobci
průměrné
odhady hovoří
o
desítkách
let.
Magnetické pásky od firmy Iomega s označením REV garantují životnost 30 let. •
Optická a magnetooptická média
Tato média jsou velice náchylná na způsob skladování. Při ideálních skladovacích podmínkách se stávají kvalitním zálohovacím médiem. Ovšem optimální skladovací podmínky
nejsou
příliš
Optimální
skladování
snadno
vyžaduje
dosažitelné,
(stálou
teplotu,
krom vlhkost
velkých
společností.
vzduchu,
tmu,
aj)
při všech splněných podmínkách se tato média teoreticky dostávají až k životnosti 50 let. Tento údaj je čistě teoretický a v praxi se této hranici neblíží. Nespolehlivost se u optických médií objevuje již po třech až pěti letech. Společnost Verbatim zveřejnila, že testy provedené na médiích Verbatim prokázaly, že se životnost CD a DVD nosičů se nijak neliší. U novějších technologií Blu-ray a HDDVD disky je to podobné. •
Pevné disky
Představují výhodný prostředek zálohování. Existují různé varianty provedení. Mezi tyto varianty patří technologie hot-swap nebo technologie využívající USB disků a adaptéru, tyto možnosti nevyžadují vypnutý počítač pro připojení či odpojení disků tak, jak to je v případě výměnných rámečků. V neposlední řadě je to varianta síťových disků. Pevné disky jsou při svých parametrech (miniaturizovaná elektronika pracující vysokou rychlostí) náchylnější na selhání než ostatní výše zmíněné typy médií. Jako prevence proti selhání disků se používá zapojení více disků do pole RAID, u kterého můžeme nastavit duplicitní ukládání či zrcadlení. Vhodnější volbou pro zálohování je disk, který není umístěný na počítači, u
kterého
chceme
provádět
zálohu.
Tyto
disky
lze
rozdělit
na
externí,
které se připojují k počítači pouze v případě potřeby, a na síťové disky. Síťové disky jsou využívány především pro servery, kde se očekává chod disků 24 hodin denně 7 dní v týdnu. Jejich připojení je realizováno přes komunikační rozhraní SCSI, SAS a FC. Tyto disky jsou z důvodu použití kvalitnějších technologií spolehlivější s vyšší životností. Oproti běžným diskům, jsou tyto vlastnosti něčím, za co si budeme muset připlatit.
17
4 AŽD Praha Společnost se zabývá výrobou zabezpečovací, telekomunikační, informační a
automatizační
techniky.
Její
hlavní
zaměření
spočívá
v oblasti
dopravy,
konkrétně kolejové a silniční. Oblasti, ve kterých se společnost stará o výzkum, vývoj, projektování, výrobu, montáž, rekonstrukce a servis zařízení jsou [13]: • železniční doprava • provoz metra a závodová doprava • oblast telekomunikačních, informačních a radiových systémů • telematické aplikace • silniční, signalizační a parkovištní systémy • nové telefonní a rozhlasové systémy pro řízení železniční a pro informování cestujících Mezi významné klienty společnosti AŽD Praha s.r.o. patří [13] :
dopravy
• Kolejová doprava - SŽDC, s.o. • České dráhy, a.s. • Dopravní podnik Praha, a.s. • Silniční doprava - Metrostav • SSŽ • PSVS • Skanska • magistráty a městské úřady měst a obcí ČR Společnost AŽD působí i v zahraničí. Její obchodní aktivity se nacházejí především ve východní Evropě, v Asii, Indii a země bývalé Jugoslávie. [13] V roce 2003 byla v Srbsku založena dceřiná společnost AŽD SASI. V roce 2004 byla vytvořena dceřiná společnost v Bulharsku.
18
4.1
Organizační struktura
Je tvořena jedenácti organizačními jednotkami, které zajišťují vlastní činnost firmy. Jednotlivé jednotky jsou [16] : • Ředitelství společnosti (RSP) Společnost AŽD Praha působí v pozici předního českého dodavatele dopravních řídících a zabezpečovacích systémů a technologií již více než 50 let. • Divize Automatizace silniční techniky Brno (DAST) V roce 1993 byla zřízena divize Automatizace silniční techniky (DAST) se sídlem v Brně, ve které byly soustředěny veškeré aktivity AŽD Praha v oblasti silniční techniky. Ze strategických důvodů byl v roce 2006 v rámci ředitelství společnosti vytvořen obchodní úsek pro silniční telematiku, který je organizačně nadřízený DAST. • Divize Servisu sdělovací a zabezpečovací techniky (DSE) Servisní činnost na sdělovacích a zabezpečovacích zařízeních v rámci společnosti AŽD Praha s.r.o. vykonává samostatná organizační jednotka – divize Servisu sdělovací a zabezpečovací techniky. • Divize Teleinformatika (DTI) Divize Teleinformatiky vznikla 1.1. 2004 z původního Montážního závodu Praha. Vzhledem k úzké specifikaci oborů telekomunikací a informatiky bylo třeba vytvořit samostatnou organizační jednotku, která obsáhne tuto širokou a rychle se rozvíjející oblast produkce AŽD Praha. • Montážní závod Kolín (MZK) Již více jak padesát let je Montážní závod Kolín spjat s procesem zajišťování sdělovací a zabezpečovací techniky a ostatních moderních technologií provozu české kolejové a silniční dopravy. Od doby jeho vzniku (1954) zajišťuje především montáž zabezpečovacího a sdělovacího zařízení po území celé České republiky. • Montážní závod Olomouc (MZO) Specializuje se na zabezpečení montáže a oživení kompletních ucelených dodávek dopravní sdělovací, zabezpečovací, automatizační, diagnostické, řídicí a informační techniky především na železničních koridorech ČD na území celé České republiky a v zahraničí na železnicích na Slovensku, v Indii a Bělorusku. • Výrobní závod Brno (VZB) V rámci dlouholeté podnikové strategie se Výrobní závod Brno společnosti AŽD Praha s.r.o. specializuje zejména na výrobu elektronických sestav. Výrobní proces je orientován na výrobu malých až středních výrobních sérií rozsáhlého sortimentu výrobků. • Výrobní závod Olomouc (VZO) Výrobní závod Olomouc pokrývá oblast strojírenské i elektromechanické výroby a zajišťuje výrobu především venkovních prvků pro zabezpečení výhybek a přejezdů, které musí být odolné nejen proti působení povětrnostních vlivů, ale i vlivů železničního provozu přímo v kolejišti. V rámci volné kapacity využívá svých zkušeností a strojního 19
vybavení k poskytování služeb především v oblasti strojírenské výroby včetně konstrukčního a technologického návrhu v CAD, CAM (3D i 2D). • Výrobní závod Praha (VZP) Výrobní závod Praha je součástí výrobní základny AŽD Praha s.r.o. pro zajištění vlastní produkce průmyslové výroby. Závod zajišťuje výrobu již od vzniku AŽD a to zejména v oblasti sdělovací a zabezpečovací techniky. • Zásobovací a odbytový závod Olomouc (ZOZ) Zde se realizuje veškerý nákup potřebných dodávek pro výrobní a montážní činnost a také veškerý odbyt výrobků a komponentů ostatním odběratelům. • Závod Technika (ZTE) Závod Technika byl založen v roce 1993. Od počátku se závod věnuje vývojové činnosti a provozním zkouškám nových produktů. Kromě vlastního vývoje zařízení je zde soustředěna i rozsáhlá projekční činnost. Pracoviště závodu Technika jsou vybavena měřící a výpočetní technikou na nejvyšší úrovni.
20
5 VSDManager Tato aplikace byla vytvořena za účelem evidence, změn a verzí různých aplikací vyvíjených ve společnosti AŽD Praha s.r.o. a rovněž evidence připomínek, které jsou s těmito aplikacemi spjaty. Data budou přítomna v pracovní a v centrální databázi, přičemž jejich synchronizace bude zajišťována přes internetové rozhraní.
5.1
Současný stav programu
Současný stav popíši pomocí popsání struktury jednotlivých částí programu. Je zde několik dílčích databázových struktur, které jsou mezi sebou různě provázány.
5.1.1 Databáze aplikací / kategorií Obsahuje informace o nejrůznějších kategoriích, které jsou aplikací evidovány. Jeden záznam obsahuje následující položky: -
id_kategorie interní unikátní číslo kategorie flag rezervováno pro systémové informace (32bit) nazev jméno aplikace popis textový popis (řetězec s variabilní délkou)
5.1.2 Databáze verzí Obsahuje informace o verzích softwaru, který je používán na určitých vlakových nádražích. Jeden záznam obsahuje následující položky: -
-
id_verze unikátní interní číslo verze (nezveřejňováno) (32 bit) flag rezervováno pro systémové informace (32bit) oznaceni označení verze (16/32bit) id_baze id verze, která je kmenovou pro tuto verzi, pokud obsahuje nulovou hodnotu, pak se jedná o základní kmenovou verzi (32bit) id_souvisejících verzí unikátní interní číslo verze (nx32 bitů) form_spec formulářová specifikace verze. Pro každou aplikaci bude externím souborem definován předpis formuláře, který bude nutné při zakládání nové verze vyplnit. nazev jméno verze (řetězec s variabilní délkou) id_kategorie id kategorie / aplikace, ke které je tato verze přiřazena (32 bit) datum datum vydání verze (nespecifikováno) id_prilohy [x] id příloh asociovaných s danou verzí (pole 32bit)
5.1.3 Databáze uživatelů Bude generována aplikací CASRight. 21
Obsažené informace: -
id_uzivatele unikátní interní identifikační číslo (řetězec s variabilní délkou) titul titul (řetězec s variabilní délkou) jmeno jméno uživatele (řetězec s variabilní délkou) prijmeni příjmení uživatele (řetězec s variabilní délkou) usek pracoviště uživatele (řetězec s variabilní délkou) tel telefonní kontakt (řetězec s variabilní délkou) mail e-mailová adresa (řetězec s variabilní délkou)
5.1.4 Databáze připomínek Obsahuje informace o připomínkách z provozu. -
id_prip zveřejňované unikátní číslo připomínky (32bit) flag rezervováno pro systémové informace (32bit) stav stav připomínky: zadání/analýza/řešení/přezkoušení/uzavření (nespecifikováno) titulek titulek připomínky (řetězec s varia. délkou) datum[5] datum uváděný pro každý stav připomínky (nespecifikováno) popis[5] textový popis každého stavu připomínky (pole RTF textů) id_uzivatele[5] id uživatele zadávajícího určitý stav připomínky (pole 32bit) specifikace rezerva pro různé specifikace připomínky(32bit) id_verze[x] seznam verzí, kterých se tato připomínka týká (pole 32bit) id_souvisejících verzí (nx32 bitů) podobně jako v případě DB verzí. id_prijemce[x] id uživatelů, kterým je připomínka adresována (pole 32bit) id_prilohy[5][x] id příloh asociovaných s určitým stavem připomínky (pole 32bit) id_pripref[x] id připomínek, které s touto souvisí (pole 32bit) id_komenatr[x] seznam přiřazených komentářů
5.1.5 Databáze změn Obsahuje informace o změně zanesené do nové verze programu. -
id_zmeny zveřejňované unikátní číslo změny (32bit) src_mark značka změny uváděná ve zdrojových souborech, je uvedena pokud neodpovídá id_zmene (řetězec s varia. délkou) flag rezervováno pro systémové informace (32bit) datum datum provedené změny (nespecifikováno) titulek titulek změny (řetězec s varia. délkou) popis textový popis změny (RTF text) id_uzivatele id uživatele zadávajícího informaci o změně (32bit) autor jméno pracovníka, který změnu provedl, bude se uvádět jen, pokud je odlišný od uživatele provádějícího záznam do databáze (řetězec s varia. délkou) specifikace rezerva pro různé specifikace změny (2x32bit) id_verze[x] seznam verzí, do kterých je tato změna zanesena (pole 32bit) id_prip[x] seznam připomínek, kterých se tato změna týká (pole 32bit)
22
5.1.6 Databáze příloh Obsahuje informace o přílohách. - id_prilohy unikátní identifikační číslo přílohy (32bit) - velikost velikost přílohy - flag - popis textový popis přílohy - name název přílohy Samotné soubory nejsou přímou součástí databáze. Jsou přítomné ve speciálním adresáři na pevném disku na vyčleněném serveru. Pokud při požadavku na stažení obsahu přílohy nebude nalezena v tomto adresáři, provede se pokus o stažení z odpovídajícího serveru. Pokud přílohou není zip soubor, provede se její automatická komprimace do zip souboru. Všechny přílohy jsou pojmenovány podle jejich hexadecimální hodnoty id např: 00FA1015.zip.
5.1.7 Databáze komentářů Obsahuje informace o komentářích k jednotlivým připomínkám. - id_komentare unikátní identifikační číslo komentáře (32bit) - text text komentáře (RTF text) - flag rezervováno pro systémové informace (32 bit) - datum datum přidání komentáře (nespecifikováno) - id_uzivatele uživatel píšící komentář Komentáře může psát kterýkoli uživatel s oprávněním modifikace databáze. Jejich účelem je umožnit napsat svůj názor na připomínku i uživatelům, kteří nejsou přímo určeni jako její analytici, řešitelé, ….
Obrázek 1: Schéma dílčích databází programu VSDManger 23
Následující obrázek ukazuje, jak může uživatel pomocí programu odesílat a přijímat data ze serveru, kde jsou data uložena. Pokud má uživatel dostatečné oprávnění a je přihlášen pak se data uložená v jeho verzi programu po jeho spuštění sesynchronizují s daty na serveru.
Obrázek 2: Schéma datových toků do a z programu VSDManger Pro potřeby této práce se budu zabývat pouze jedním funkčním modulem. Jedním z produktů firmy AŽD Praha s.r.o. je zabezpečovací zařízení a jeho následná správa. Tento produkt je využíván na mnoha místech v České republice a i v několika dalších zemích. Modul, na který se zaměřím detailněji, využívá databázi verzí, ze které získává informace o aktuální používané verzi. Dále o verzích předešlých a o době, po kterou byla jaká verze používána. V programu VSDManager toto pro lepší přehlednost zpracováno tak, že lze zobrazit ve stromové struktuře všechna místa v České republice, kde je zmíněný produkt používán.
24
6 Oracle Prvním z dvou databázových systémů, které jsem si vybral pro porovnání je od společnosti Oracle. [5] Ta byla založena v 70. letech 20. století, kdy byl v roce 1977 založen předchůdce Oraclu, který byl v následujícím roce nahrazen Oraclem verzí 1. Tato první verze byla napsána jazykem Assembler a nebyla nikdy oficiálně vydána. V roce 1979 je vydána verze 2, která je první komerční verzí relačního databázového systému. Nejaktuálnější verze Oracle 11g Release 2 je oproti verzi 2 obohacen o celou řadu funkcionalit, uvedu pouze několik zásadních: • transakční zpracování • možnost programování v PL/SQL (Procedural Language/Structured Query Language) • rychlé zálohy • podpora jazyka Java • architektura „grid“ umožňující využití více databázových serverů na základě množství požadavků uživatelů
Databázový systém Oracle, je v dnešní době velice využívaný, jako jeho základní verze bych uvedl Enterprise Edition, Standard Edition, Standard Edition One a Express Edition. Oracle má i jiné verze, které se více zaměřují např. na mobilní zařízení nebo verze pro vývojáře. Taková nejnovější verze je Oracle Database Lite 10.3.0.3.0 [3]. V této práci budu nadále popisovat pouze verzi Oracle Database 10g Express Edition Release 2 (10.2.0.1).
6.1 Tato
Oracle Database 10g Express Edition verze
je
jako
jediná
zdarma
a
dokonce
je
i
volně
šiřitelná.
S tím přichází i několik omezení a to sice, že [4] : Oracle Database XE can be installed on any size host machine with any number of CPUs (one database per machine), but XE will store up to 4GB of user data, use up to 1GB of memory, and use one CPU on the host machine. • bude využívat pouze jedno jádro procesoru i v případě, že jich bude více • maximální prostor paměti RAM bude 1GB • uživatelská data budou limitována 4GB 25
• nelze provozovat více různých databází, protože lze mít spuštěnou pouze jednu instanci DBS Pro všechny verze společnosti Oracle platí, že mají společné jádro databázového systému. Samozřejmé je, že vyšší (placené) verze nemají žádné z výše zmíněných omezení. K této verzi dostáváme samozřejmě, kromě samotného databázového stroje, i následující komponenty (neuvádím všechny ale pouze některé) : • Recovery Manager • SQL*Plus • Oracle Application Express • nástroje pro import a export • dokumentace
6.1.1 Recovery Manager Tento nástroj nám umožňuje z příkazové řádky zálohování a obnovu.
6.1.2 SQL*Plus SQL*Plus je nástroj, kterým se dá z příkazové řádky manipulovat s daty a administrovat DBS.
6.1.3 Oracle Application Express Je webový administrační nástroj, díky kterému můžeme vyvíjet snadno jednoduché aplikace.
6.1.4 Nástroje pro import a export Pokud bychom chtěli provádět import nebo export z příkazové řádky tak využijeme nástroj SQL*Loader. Dále jsou tu nástroje: Data Pump Import a Data Pump Export. Pokud bychom chtěli provádět import či export nevelkého množství dat, která jsou v jedné tabulce, můžeme využít nástroj, umístěný v Oracle Application Express, Data Load/Unload.
6.1.5 Dokumentace Pokud by nám nestačila jednoduchá základní verze dokumentace, tak plnou verzi máme dostupnou pod odkazem on-line.
26
6.2
Možnosti ukládání
V databázi Oraclu [2] se informace jako uživatelská data, přístupy k databázi
a
další, ukládají do souborů nejednoho typu, které dohromady tvoří jednu část architektury databázového systému Oracle. Zmiňovanou částí je „fyzická oblast“, která je tvořena několika typy souborů, uvádím pouze ty základní :
Na
•
datové
•
kontrolní
•
soubory protokolu
•
dočasné následujícím
obrázku
je
architektura
databázového
systému
kde jsou znázorněny i jednotlivé typy souborů.
Obrázek 3: architektura databázového systému Oracle [6]
27
Oracle,
6.2.1 Datové soubory Představují samotné fyzické uložení dat, tyto soubory mají vlastní formát. Obvykle jsou to soubory s příponou *.dbf.
6.2.2 Kontrolní soubor Tento soubor bývá také nazýván soubor řídící (control file), tento soubor v sobě má důležité údaje o databázi jako je např.: datum vytvoření, název databáze, způsob
posledního
ukončení
a
další.
Jedná
se
o
binární
soubor,
který je nezbytný pro otevření fyzických souborů databáze, protože obsahuje informace o
jejich
umístění
a
názvech.
Důležitost
tohoto
souboru
vyplývá
z jeho,
zpravidla několika kopií, které bývají uloženy na různých discích nebo serverech.
6.2.3 Soubory protokolu Tyto soubory má každá databáze Oraclu, soubory protokolu (Redo Logs) obsahují informace o každém průběhu každé transakce. [2] Do těchto souborů probíhá zápis cyklicky, vždy když dojde k naplnění jednoho, začne se automaticky zapisovat do druhého. Po zaplnění posledního souboru dochází buď k archivaci dat, nebo se začne opět zapisovat do prvního souboru.
6.2.4 Dočasné soubory Jak již název napovídá, jedná se pouze o dočasné soubory (Tempfile), což je to co je odlišuje od souborů datových, do kterých si databázový systém ukládá potřebné informace pro přechodné ukládání dat např.: při řazení dat.
6.3
Instalace a nástroje pro správu
V této části se nachází stručný popis instalace Oracle Database 10g Express Edition, spolu s požadavky na diskový prostor. Dále bude následovat výčet a popis základních administračních nástrojů, které lze využít pro správu celého databázového systému.
6.3.1 Instalace Velikost instalačního balíčku je u produktu Oracle Database 10g Release 2 (10.2.0.1) Express Edition for Microsoft Windows (Western European) [4]
28
165,332,312 bytes, což je přesně 157 MB. Po stažení jednoho instalačního souboru a jeho následném spuštění se nám zobrazí okno průvodce instalací. Instalace samotná je velice jednoduchá, po té co zvolíme souhlas s licenčními podmínkami, se nám zobrazí jediná možnost cokoliv nastavit a to je cesta, kam chceme produkt umístit. Poté nás instalační program vyzve k zadání hesla pro účty SYSTÉM a SYS. Vše ostatní je pevně přednastaveno a není možná, během instalace, jakákoliv změna.
6.3.2 Nástroje pro správu Výše zmíněný produkt společnosti Oracle má dva základní nástroje pro správu databázového systému: •
Oracle Application Express (grafický nástroj)
•
SQL*Plus (nástroj příkazové řádky)
Přestože
se
jedná
o
dva
hlavní
nástroje,
tak
tu
jsou
operace,
které tyto nástroje neumožňují. Mezi tyto operace patří např. záloha celé databáze. Tyto operace se provádí v dalších specializovaných nástrojích. 6.3.2.1
Oracle Application Express
Jedná se o webový administrační nástroj, který nalezneme pouze ve verzi Express Edition. A to, z důvodu, že ostatní verze využívají k této činnosti jiný nástroj. Spuštění tohoto nástroje lze provést buď přes nabídku Start, nebo zadáním adresy : http://127.0.0.1:8080/apex v internetovém prohlížeči. Ať se spuštění provede jedním nebo druhým způsobem, budeme vyzváni k přihlášení. To je zobrazeno na obrázku č. 4 Tato aplikace, jako téměř vše, má své výhody i nevýhody. Mezi výhody bezesporu patří uživatelská jednoduchost a možnost snadného vzdáleného přístupu na databázový server. Nevýhody zde představuje doba odezvy a bezpečnostní rizika spojená s využíváním vzdálené správy přes protokol HTTP. Základní obrazovku aplikace zobrazuje obrázek č. 5. Zmíněná uživatelská jednoduchost je zde reprezentována tím, že operace jako správa uživatelů, databázové struktury, paměti a podobné se provádí pouhým „klikáním“. Pokud bychom chtěli provádět některé administrátorské úkoly jako např. :
29
Obrázek 4 : Přihlašovací obrazovka programu Oracle Application Express
Obrázek 5 : Úvodní obrazovka programu Oracle Application Express 30
• manipulaci se soubory protokolu • manipulaci s tabulkovými prostory (základní jednotka logické architektury) • a další tak musíme začít spravovat databázový systém pomocí příkazů SQL, PL/SQL a klíčových slov platformy Oracle, které můžeme zadávat buď v nástroji SQL*Plus (viz dále) nebo v příslušném okně aplikace Oracle Application Express. 6.3.2.2
SQL*Plus
Tento nástroj, spouštěný v rámci příkazové řádky Windows, má velice široké možnosti jak spravovat databázový systém Oracle. Využívání tohoto nástroje je užitečné zejména z důvodu, že zcela stejně se dají ovládat i ostatní produkty společnosti Oracle. SQL*Plus se spustí po zadání příkazu [7]: sqlplus do příkazové řádky a stejně jako u předchozího nástroje budeme vyzváni k přihlášení do databázového systému. V případě, že by okamžité připojení nebylo naším cílem, lze aplikaci SQL*Plus spustit pomocí příkazu [7] : sqlplus /nolog Jak
bylo
zmíněno
výše
v
tomto
nástroji
lze
zadávat
příkazy,
stejně jako v příslušném okně aplikace Oracle Application Express, stejně jako přes onu stránku, tak i nástroj SQL*Plus je schopen spouštět skripty uložené v souborech. Slouží
nám
k tomu
příkaz
[7]
@.
Příklad
použití
tohoto
příkazu:
@ c:\soubor.sql takto zadaný příkaz by provedl příkazy uložené v soubor.sql. Příkazy [7] exit nebo quit, nás odpojí od databáze a ukončí nástroj SQL*Plus.
6.4
Import a export
Již dříve jsem vypsal nástroje sloužící k importu či exportu v databázovém systému Oracle, nyní tyto nástroje popíši trochu detailněji tím, že popíši jejich funkce. [6]
6.4.1 SQL*Loader Umožňuje filtraci dat, práci s několika tabulkami zároveň a také je možné díky tomuto nástroji hromadně nahrávat data z textových souborů. Využití jednotlivých funkcí je podmíněno prací v příkazovém řádku.
31
6.4.2 Data Pump Import / Export I tento nástroj umožňuje filtraci dat, a navíc se dá se použít na přenos celých databází. Využití má tento nástroj pouze v případě, že máme v úmyslu přenos dat mezi jednotlivými databázovými systémy společnosti Oracle. Opět je nutné pracovat v příkazové řádce. Navíc tomuto nástroji chybí podpora dat ve formátu XML.
6.4.3 Data Load/Unload Při kterou
používání nahradí
tohoto přehledné
nástroje
se
grafické
obejdeme prostředí.
bez
příkazové
řádky,
Není
ideální
volbou,
pokud je potřeba pracovat s větším množstvím dat, což je způsobeno nemožností pracovat najednou s více tabulkami. Filtrace dat je omezena na možnost vynechat určité sloupce a navíc lze pracovat pouze s daty aktuálně přihlášeného uživatele. Výhodou tohoto nástroje je podpora formátu XML či textových souborů s oddělenými hodnotami.
32
7 Microsoft Druhý databázový systém je od této společnosti, která je známa především díky operačním systémům a kancelářského balíku. Jednotlivé produkty databázových systémů od společnosti Microsoft je několik, mezi základní bych zařadil [8]: Express Edition, Workgroup Edition, Standard Edition a Enterprise Edition. Ostatní produkty bych nezařadil mezi základní díky jejich specifickému zaměření. Vybral jsem si k porovnání produkt Microsoft SQL Server 2005 Express Edition, který je jako jediný zdarma. Tento produkt jsem upřednostnil, před novějším produktem SQL Server 2008 Express, kvůli mým zkušenostem s tímto produktem získaných během studia.
7.1
Microsoft SQL Server 2005 Express Edition
Jak název napovídá tak produkt byl uveden na trh na podzim roku 2005. Přesněji verzi SQL Server 2005 Express Edition with Advanced Services SP3, z názvu je patrné, že je tato verze rozšířena o pokročilé nástroje, jako je: SQL Server Management Studio Express. Dále je možné využívat SQL Server 2005 Reporting Services, což je nástroj, který je využitelný pro tvorbu reportů. Dílčí nástroje a zdroje ke správě tohoto nástroje jsou obsaženy v rozšiřujícím balíčku: Microsoft SQL Server 2005 Express Edition Toolkit. Vzhledem, že se jedná o produkt, který je zdarma, tak obsahuje určitá omezení [9] : •
Bude využívat maximálně jeden procesor
•
Maximální velikost paměti RAM, kterou bude využívat je 1 GB, malá část procesů využívající paměť se do tohoto omezení neřadí. Proto může nastat případ, že bude využito přes 1GB paměti RAM.
•
Velikost databáze je omezena na 4GB
•
Podpora 64 bitové technologie se odvíjí od nainstalované verze Windows
Vyšší verze DBS od Microsoftu nemají žádné z výše uvedených omezení, obsahují vlastnosti, které se v Express verzi nenacházejí např. (pozn. následující výčet je pouze malou částí všech vlastností, které vyšší verze obsahují): •
Data mining (dolování dat)
33
•
Nástroje jako : SQL Management Studio, SQL Server Profiler, SQL Server Agent a další
•
Možnost replikace databází bez jakéhokoliv omezení
Stejně jako u DBS Oracle, tak rovněž i zde dostáváme, kromě samotného databázového stroje, i další komponenty, z nichž některé uvádím v následujícím výčtu: •
SQL Server Management Studio Express což je grafický administrační nástroj
•
SQLCMD je obdoba předchozího, realizovaná ovšem v příkazové řádce
•
Reporting Services umožňuje tvorbu analýz a reportů (k dispozici pouze s rozšířenou verzí instalace)
•
BCP se dá použít pro import/export velkého množství dat, opět realizovaný v příkazové řádce
•
SQL Server Import and Export Wizard grafická obdoba předchozího, přenos dat je zde možný v různých formátech
7.2
Možnosti ukládání
Fyzické
datové
soubory,
které
jsou
uloženy
na
pevných
discích
a z nichž je jim přiřazeno určité místo. Toto místo je v databázovém systému logicky rozděleno do stránek (pages). [10] Stránka je základní jednotka v databázovém systému společnosti Microsoft pro ukládání dat. Každá stránka začíná hlavičkou, ve které jsou informace o konkrétní stránce. Informace jako volné místo na stránce, její typ a další. V tomto DBS existuje 8 typů stránek: •
Data
•
Index
•
Text/Obrázek (Text/Image)
•
Mapa globálních alokací, mapa sdílených alokací (Global Allocation Map, Shared Global Allocation Map)
•
Volný prostor stránky (Page Free Space )
•
Plán alokací indexů (Index Allocation Map)
•
Mapa hromadných změn (Bulk Changed Map)
•
Mapa rozdílových změn (Differential Changed Map)
34
Obrázek 6 : Datová stránka, [10] Data jsou fyzicky ukládána do tří základních typů souborů: •
primární datové
•
sekundární datové
•
soubory obsahující transakční protokol
Tyto soubory, spolu se soubory sloužící k záloze, dohromady tvoří fyzickou architekturu.
7.2.1 Primární datové soubory Jsou povinnou součástí každé databáze, s tím že, každá databáze má právě jeden primární soubor. Obvykle mají příponu *.mdf. V těchto souborech jsou uloženy informace o databázi. Databázové objekty jako jsou např. tabulky, mohou být rovněž uloženy v primárních datových souborech.
7.2.2 Sekundární datové soubory Tyto soubory, mají obvykle příponu *.ndf a mohou, ale nemusí být součástí každé databáze. V těchto souborech, které jsou ručně vytvářené, jsou uložena výhradně uživatelská data. K jejich použití se přistupuje v případě, že dojde k naplnění primárního souboru, nebo pokud je požadavek na využití více pevných disků.
7.2.3 Soubory transakčního protokolu Tyto
soubory
obsahují
veškeré
změny,
které
se
v databázi
provedly.
Výsledek každé operace je nejprve zapsán do těchto souborů a až následně do souborů
35
datových. Obdobně jako primární datové soubory, každá databáze musí obsahovat alespoň jeden soubor transakčního protokolu. O tom, zda se bude provádět archivace těchto souborů, rozhoduje nastavení recovery modelu (modelu obnovy), který se nastavuje při vytváření databáze. Lze nastavit jednu ze tří následujících možností: •
Jednoduchý model (simple)
•
Úplný model (full)
•
Model bez záznamu hromadných operací (bulk logged) 7.2.3.1
Jednoduchý model
U tohoto modelu k archivaci nedochází a obnova databáze je možná pouze do stavu, v jakém byla při posledním zálohování. 7.2.3.2
Úplný model
Při zvolení tohoto modelu se archivace provádí tak, že data z transakčního protokolu
nejsou
odstraněna,
dokud
není
provedena
jejich
záloha.
Je možné obnovit databázi k určitému času (point-in-time recovery) 7.2.3.3
Model bez záznamu hromadných operací
Jedná se o rozšíření modelu úplného. Využívá se zde určitého způsobu práce s hromadnými operacemi. Tyto operace se nezaznamenávají do transakčního protokolu, což má za následek menší spotřebu diskového prostoru oproti modelu plnému.
7.3
Instalace a nástroje pro správu
V této části se nachází stručný popis instalace Microsoft SQL Server 2005 Express Edition, spolu s požadavky na diskový prostor. Dále bude následovat výčet a popis základních administračních nástrojů, které lze využít pro správu celého databázového systému.
7.3.1 Instalace Velikost instalačního balíčku se liší podle zvolené verze produktu. Je k dispozici buď
verze
základní,
s pokročilými
službami
(Advanced
Services)
a pak je tu ještě dodatkový balíček obsahující nástroje jako SQL Server Management
36
Studio Express a reportovací server. Velikost balíčku s pokročilými službami je 255 MB (268 065 632 bajtů). Po stažení instalačního souboru a jeho následném spuštění dojde k extrakci obsahu a poté se nám zobrazí okno průvodce instalací. Jako první bod instalace je nutno odsouhlasit licenční podmínky, po jejich potvrzení se nám zobrazí okno kde nám instalátor oznamuje, že se chystá nainstalovat podpůrné soubory a nativního klienta. Jakmile je s tímto hotov začíná samotná instalace SQL Serveru. Jako první volitelná položka je možnost zvolit ponechat chované pokročilé instalační možnosti, což je určitě příjemné pro méně zkušené uživatele. Pokud si ovšem tyto možnosti necháme zobrazit následný průběh instalace bude pokračovat tím, že si budeme moc zvolit jednotlivé komponenty, ať už ty týkající se databázových služeb nebo tzv. „Client components“. Pod touto možností můžeme nalézt
např.
Management
Studio
Express.
Dále
je
třeba
zvolit
instanci,
standardně přednastavená je pojmenovaná SQLExpress, což lze samozřejmě změnit. Dále je možnost nastavit režim ověřování. Uživateli, který server instaluje, umožňuje instalátor přidat se do skupiny administrátorů DBS. Po potvrzení proběhne samotná instalace. U
balíčku
doplňkových
nástrojů
nalezneme
obdobnou
instalaci.
Nainstalovaný Microsoft .NET Framework 2.0. je potřebný pro běh SQL Serveru.
7.3.2 Nástroje pro správu Podobně jako produkt společnosti Oracle tak i Microsoft SQL Server 2005 Express Edition má k dispozici dva hlavní nástroje pro správu: • Microsoft SQL Server Management Studio Express (grafická aplikace) • SQLCMD (konzolový nástroj) Dále je rovněž dodáván předchůdce nástroje SQLCMD a sice nástroj OSQL, který je dodáván z důvodu zpětné kompatibility. Tento nástroj neumožňuje využívat všechny
funkčnosti
Microsoft
SQL
Serveru
2005
Express
Edition,
proto se o něm nebudu více zmiňovat. 7.3.2.1
Microsoft SQL Server Management Studio Express
Jak jsem již zmínil výše, jedná se o grafickou aplikaci, která se svým obvyklým vzhledem jasně řadí k ostatním vývojovým nástrojům využívaných v operačních
37
systémech
Microsoft
Windows.
Tato
aplikace
je
plnohodnotným
nástrojem
pro kompletní využívání Microsoft SQL Serveru 2005 Express Edition. Na
spuštění
této
aplikace
není
nic
výjimečného,
proto
není
třeba
se o něm více rozepisovat. Po samotném spuštění je nutné provést přihlášení, které lze provést dvěma způsoby. Prvním a jednodušším způsobem je zvolením možnosti aby přihlášení proběhlo s údaji, které má operační systém o právě přihlášeném uživateli. Tento způsob je možný pouze v případě, že Microsoft Windows, pod kterým je aplikace spuštěna, využívá domény. Druhý způsob vyžaduje zadání uživatelského jména a hesla, které jsou ověřovány databázovým systémem. Po úspěšném přihlášení se zobrazí úvodní obrazovka aplikace Microsoft SQL Server Management Studio Express.
Obrázek 7 : Úvodní obrazovka aplikace Microsoft SQL Server Management Studio Express
38
7.3.2.2
SQLCMD
Obdobně jako aplikace Microsoft SQL Server Management Studio Express je i tento nástroj určen ke kompletní správě Microsoft SQL Serveru 2005 Express Edition. Ovšem nevyužívá grafické rozhraní, a proto klade na správce vyšší nároky. Pro práci s tímto nástrojem jsou potřeba textové příkazy jazyka T-SQL. Spuštění tohoto nástroje se provádí zadáním příkazu [11] sqlcmd –nazev_parametru hodnota_parametru do příkazové řádky operačního systému Microsoft Windows.
7.4 Microsoft
Import a export SQL
Server
2005
Express
Edition
nabízí
několik
způsobů
pro pohyb s daty. Uživatelsky nejpříjemnější prostředí nabízí SQL Server Import and Export Wizard což je grafická aplikace. Řádková obdoba této aplikace je program BCP, který lze využít i pro přesun dat mezi jednotlivými platformami. Příkaz v jazyce T-SQL bulk insert má podobné možnosti jako program BCP, ale primárně slouží pouze k hromadnému importu textových dat. Klíčové vlastnosti, všech výše uvedených způsobů pro pohyb s daty, jsou následující:
7.4.1 SQL Server Import and Export Wizard Tato aplikace umožňuje nejen pracovat s velkým množstvím různých typů souborů, ale i filtrovat pomocí dotazů data. Spustit lze pomocí příkazu [11] dtswizard zadaného do příkazové řádky operačního systému Microsoft Windows. Je možné kopírovat celé tabulky nebo data libovolné filtrovat pomocí SQL dotazů.
7.4.2 BCP Název programu je zkratkou z anglického sousloví [12] Bulk Copy Program. Je
program
s nízkými
nároky
na
paměť,
umožňující
rychlý
přesun
dat.
Pracuje s textovými soubory a s přirozeným formátem Microsoft SQL Serveru 2005 Express Edition. Stejně jako SQL Server Import and Export Wizard je možná filtrace dat pomocí SQL dotazů. Pro upřesnění struktury přenášených dat využívá externího souboru tzv. formátovací soubor.
39
7.4.3 Builk insert Díky tomu, že se jedná o příkaz jazyka T-SQL, lze s tímto pracovat v rámci programu Microsoft SQL Server Management Studio Express nebo SQLCMD. Použití tohoto příkazu je příkazu je vázáno k nutnosti vlastnit náležité oprávnění.
40
8 Vzájemné srovnání Prvních rozdílů si lze všimnout již při instalaci obou porovnávaných systémů. Zatímco Oracle se vydal cestou, na které si jako hlavní cíl klade jednoduchost, která je reprezentována téměř žádnými možnostmi jakékoliv volby tak Microsoft do svého instalátoru zahrnul možnost zobrazit pokročilé volby. Což je podle mého názoru rozumnější varianta. Co se týče nástrojů pro správu, tak zde si jsou obě varianty velice podobné. Nabízejí obdobné možnosti. Což lze vidět na tom, že obě varianty mají jak grafickou tak textovou variantu pro správu. I když opět nutno podotknout, že v případě Oraclu je grafický nástroj ne zcela kompletní pro potřeby správy. Očividný rozdíl je i v tom, že program Oracle Application Express využívá webové rozhraní, což mu dává výhody ale samozřejmě i nevýhody. Jako nejvýraznější z těchto nevýhod bych zvolil čas, který je u webového rozhraní větší než u grafické aplikace společnosti Microsoft. Co se týče nutnosti využívat ke správě nástroj příkazové řádky tak tuto nutnost nalézáme pouze u Oracle Application Express. Tato nutnost se ovšem nedá označovat za závažnou nevýhodu, protože pro každého administrátora je znalost práce v příkazové řádce “denní chléb“. Ovšem pokud by se měl rozhodovat mezi těmito možnostmi správce, který upřednostňuje práci v grafickém prostředí, byl by tento bod zřejmě klíčový pro jeho konečné rozhodnutí. Když se podíváme na další programy jako je např. SQL Server Import and Export Wizard, tak zjistíme, že v oblasti Import / Export se obě varianty liší ve velmi málo věcech. Ovšem nutno podotknout, že Oraclu chybí program, který by umožňoval data přenést mezi platformami. Programy BCP a Data Pump Import / Export jsou si velmi podobné svými možnostmi s tím, že BCP zvládá navíc ještě běžný textový formát. Na druhou stranu Data Pump Import / Export dokáže přenést celá schémata včetně omezení objektů. Další podobnost lze nalézt mezi SQL*Loaderem a příkazem Bulk insert. Možnost zálohy mají obě dvě varianty řešeny svým vlastním způsobem. Co ale postrádají oba, je možnost provádět pravidelné automatické zálohování. Lze využít možnosti vytvoření ručních skriptů pro zálohu a ty nechávat spouštět externími programy. Kdybychom se podívali detailněji, zjistili bychom, že on-line i offline zálohy nám umožňuje vytvářet pouze Oracle, zatímco Microsoft nemusí využívat
41
externí nástroj pro obnovu, protože potřebné funkce jsou implementovány v jazyce TSQL. Díky výše popsaným bodům jsem byl schopen zvolit produkt od Microsoftu, který je pro začátky s databázovými systémy, podle mého názoru, vhodnější. Proto následující část, ve které se budu zabývat vytvořením databáze pro konkrétní modul, budu vycházet z toho, že databáze bude napsána za použití programu od této společnosti.
42
9 Návrh databáze pro vybraný funkční modul V této části se budu zabývat návrhem databázové základny pro vybraný funkční modul. o
Jedná
modul
se
pouze
využívající
o
databázi
jednu verzí.
část
z programu
Tento
modul
VSDManager obsahuje
a
sice
seznam
míst
v České republice, kde je používáno zabezpečovací zařízení od firmy AŽD Praha s.r.o. a seznam vydaných verzí s informacemi, kde je jaká verze aktuálně používána. Oproti
existující
databázi
verzí,
vytvořenou
v programu
VSDManeger,
nebude tato databáze obsahovat všechny její položky, které nejsou nezbytně nutné pro tento funkční modul.
9.1
Specifikace požadavků
Tento návrh databáze bude sloužit k zjišťování aktuální verze softwaru na jednotlivých místech v České republice. Zároveň bude umožňovat vyhledání nejaktuálnější verze. Bude počítáno s možností rozšíření pro obsažení ostatních modulů z programu VSDManger.
9.2 •
Požadavky na funkcionalitu přípis nových míst, kde je používán software od AŽD Praha s.r.o., do seznamu
•
vyhledávání podle města, podle verze případně podle data nasazení či vydání verze
9.3
Konceptuální model
Pro vytvoření konceptuálního modelu jsem použil program Power Designer.[15] CR ID_Mesta int <M> Jmeno char (30) Akt_verze int Datumi datetime Pr_verze int Poznamky char(60)
VERZE
VYUZIVA
ID_verze int <M> Jmeno char (30) Datum datetime Identifier_1
Identifier_1
43
9.4
Návrh a definování tabulek
V této části navrhnu a následně popíši jednotlivé tabulky a jejich parametry. Pro potřeby této databáze není zapotřebí mnoha tabulek, jak je vidět z konceptuálního modelu.
9.4.1 Tabulka ČR ID_Mesto - datový typ Intenger - primární klíč Jmeno - datový typ CHAR o maximální délce 30 znaků - název města - povinný atribut Akt_verze - datový typ Intenger - číslo aktuální nasazené verze - povinný atribut Datum - datový typ DATETIME - datum nasazení aktuální verze - povinný atribut Pr_verze - datový typ Intenger - číslo předchozí verze - nepovinný atribut Poznamky - datový typ CHAR o maximální délce 60 znaků - poznámky o konkrétní verzi či městě samotném - nepovinný atribut
9.4.2 Tabulka verzí ID_Verze - datový typ INTEGER 44
- primární klíč Jmeno - datový typ CHAR o maximální délce 30 znaků - označení verze - povinný atribut Datum - datový typ DATETIME - datum vydání verze - povinný atribut
9.5
Definice vztahu
Tabulka ČR obsahuje namísto označení aktuální i předchozí verze pouze jejich identifikační číslo, pod kterým jsou jednotlivé verze uvedeny v tabulce verzí. Tento
vztah
je
v
konceptuálním
modelu
znázorněn
jako
"VYUZIVA".
Díky tomuto vztahu nedochází ke zbytečnému narůstaní celkové velikosti. Co se týká povinnosti vztahu, tak každé město v databázi musí mít právě jednu aktuální verzi, zatímco verze nemusí být nasazena v žádném městě, nebo na druhou stranu, může být nasazena i ve více městech zároveň. Jedná se tedy o vztah 1:N.
45
10 Porovnání návrhu s existující částí programu části
V této
budu
porovnávat
existující
část
programu
VSDManager
s výše vytvořeným návrhem databáze. Toto porovnání provedu pomocí výčtu výhod a nevýhod obou možností s tím, že určité body podrobněji popíši.
10.1 •
Výhody návrhu Jednoduchost
Oproti stávajícímu programu se návrh skládá z pouhých dvou tabulek, přičemž je plně funkční. V případě rozhodnutí o používání tohoto návrhu není zapotřebí rozsáhlých změn. Oproti stávajícímu stavu, by na serveru, kde jsou uložené soubory s daty, byla provedena instalace databázového systému, do kterého by se jednotliví uživatelé přistupovali buď lokálně nebo vzdáleně. •
Rychlost a aktuálnost
Výhoda využívání databázových systémů spočívá v tom, že právě tyto systémy obsahují efektivní algoritmy pro vyhledávání v souborech s daty, což jim umožňuje jejich architektura. Tyto algoritmy jsou aktualizovány v momentě, kdy se objeví nějaký efektivnější.
Pokud
jsme
zvolili
databázový
systém
od
předních
výrobců,
ať už od společnosti Microsoft či Oracle, máme záruku, že tyto společnosti udržují své produkty aktuální díky konkurenčnímu boji. •
Bezpečnost
Společnost Microsoft provádí pravidelné updaty svých produktů a tím se zvyšuje i jejich bezpečnost. Hlavními prvky bezpečnosti jsou vlastnosti jako např.: pokročilé auditování, možnosti ověřování a autorizace při přístupu k databázi, šifrování dat a v neposlední řadě integrace s programem Microsoft Baseline Security Analyzer, a další. MBSA pomáhá podnikům určit jejich bezpečnostní stav, s ohledem na bezpečnostní doporučení společnosti Microsoft. Pomáhá odhalit a vyřešit případné chyby vzniklé běžnými chybami v konfiguraci zabezpečení.
46
10.2
Nevýhody návrhu
Hlavní nevýhodou, pokud bychom chtěli návrh začít využívat se skutečnými daty, je nutnost přepsání všech již existujících záznamů z programu VSDManger do databázového jazyka. S tím je spojena povinnost mít zaměstnance, který disponuje potřebnými znalostmi, či jej případně přijmout, ať už na dohodu o provedení práce, či
na
plný
úvazek.
Další
možností
je
využití
Outsourcingových
firem,
které si samozřejmě za své služby nechají platit mnohdy nepřiměřené částky. Značnou nevýhodou je i to, že návrh reprezentuje pouze jednu část z celku. Pro případné celkové převedení VSDManageru do databázového jazyka by byly nutné výrazně vyšší prostředky než jaké jsem vynaložil při tvorbě této jedné části. Z ostatních nevýhod dále uvedu pouze ty, které shledávám pádnými. •
Omezenost
Pod tímto bodem mám na mysli nutnost používat operační systém od společnosti Microsoft, pokud očekáváme bezproblémovou funkčnost návrhu. •
Ekonomická stránka věci
Sice jsem pro svůj návrh použil a popisoval variantu od společnosti Microsoft, kterou lze využívat bezplatně, ale bohužel to platí pouze pro vývoj a vzdělávací účely. Pro použití ve společnosti jako je AŽD Praha s.r.o. by již pořizovací částka nebyla nulová.
47
11 Závěr Ve své bakalářské práci jsem měl především za cíl porovnat část programu VSDManager s databází vytvořenou databázovými technologiemi. Tímto cílem jsem zabýval téměř až v úplném závěru této práce. V úvodu jsem vysvětlil několik důležitých pojmů a stručně jsem nastínil důvody a problémy spojené se zálohováním dat. Stručně jsem popsal možnosti zálohovacích medií. Zde jsem se zaměřil především na životnost jednotlivých možností. Na začátku praktické části této práce je stručný popis společnosti AŽD Praha s.r.o., dále jsem uvedl její organizační strukturu. V této společnosti jsem, během své odborné praxe, přišel do kontaktu s programem VSDManager. Následuje jeho stručný popis, doplněným o popis struktury, spolu s popisem jeho aktuálního stavu. V další části mé práce je porovnání dvou databázových systémů. Toto porovnání jsem prováděl z důvodu získání přehledu o možnostech tvorby a následné správy databáze. Porovnávané edice jsem vybral z důvodu nulových nákladů na jejich pořízení. Produkty, které jsem porovnával, jsou od předních výrobců databázových systémů a sice od společností Oracle a Microsoft. Porovnání jsem prováděl popisem vlastností obou programů, které jsem na závěr porovnal. V úvodu tohoto porovnání jsem se zaměřil na popis programu od společnosti Oracle a program od společnosti Microsoft jsem popisoval následně. U obou programů jsem při popisu postupoval ve stejném pořadí. Nejprve jsem uváděl stručné základní přehledy vlastností, které jsem po té popisoval podrobněji. Popsání teoretických částí programů následoval popis praktických úkonů, se kterými se potkává správce databázového systému. Popis těchto produktů může pomoci začínajícím správcům databázových systémů minimálně při rozhodování o výběru systému. Zmíněny jsou i nadstavbové funkce, které lze nalézt u placených edic. Navíc jsou popisy těchto edic použitelné i
pro
případný
popis
vyšších
edic
srovnávaných
databázových
systémů.
Což je způsobeno databázovým jádrem, které je stejné pro všechny edice obou společností. Vzhledem k tomu, že toto porovnání nebylo hlavním cílem této práce, nejsou určité věci řešeny do úplných detailů a určité aspekty nejsou vůbec zmíněny. V závěru jsem popsal rozdíly mezi již vytvořeným funkčním modulem obsaženým v programu VSDManager a návrhem databáze.
48
Případné rozšíření této práce bych viděl
v převedení celého
programu
VSDManager, spolu se všemi jeho částmi do databázového prostředí, spojeného s tvorbou uživatelského rozhraní, na které by si společnost AŽD Praha s.r.o. sepsala požadavky. Ať už by se jednalo o zabezpečení či možnosti vzdáleného přístupu, případně integrace do již existujících systémů.
49
12 Seznam použité literatury 12.1
Tištěné zdroje
[1] Buchalcevová, A., Stanovská, I., Šimunek, M.: Základy softwarového inženýrství – základní témata, 1.vyd., skripta VŠE, 2002, 198 s., ISBN 80-245-0346-8 [2] Loney K., Theriault M.: Mistrovství v Oracle – Kompletní průvodce tvorbou, správou a údržbou databází, 1. vydání, nakladatelství Computer Press, 2002, 896 s., ISBN 80-7226-635-7
12.2 [3]
Oracle.
Internetové zdroje Produkty
Oraclu
[online].
[cit.
2010-03-26].
Dostupná
na:
http://www.oracle.com/us/products/database/index.html
[4] Oracle. Oracle Database 10g Express Edition [online]. [cit. 2010-03-26]. Dostupná na:http://www.oracle.com/technology/products/database/xe/index.html?origref=http://www .oracle.com/us/products/database/index.html
[5] Oracle. Oracle's 30th Anniversary [online]. [cit. 2010-04-1]. Dostupná na: http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf
[6] Oracle. Database Documentation Library [online]. [cit. 2010-04-1]. Dostupná na: http://www.oracle.com/pls/xe102/homepage
[7]
Oracle.
SQL*Plus
FAQ
[online].
[cit.
2010-04-4].
Dostupná
na:
http://www.orafaq.com/wiki/SQL*Plus_FAQ
[8] Microsoft. SQL Server 2008 [online]. [cit. 2010-09-10]. Dostupná na: http://www.microsoft.com/sqlserver/2008/en/us/default.aspx
[9] Microsoft. Srovnání verzí SQL Serveru 2005 [online]. [cit. 2010-09-14]. Dostupná na: http://www.microsoft.com/sqlserver/2005/en/us/compare-features.aspx [10] Microsoft. SQL Server 2008 Books Online [online]. [cit. 2010-09-14]. Dostupná na: http://msdn.microsoft.com/en-us/library/ms190969.aspx [11] Microsoft. SQLCMD Books Online [online]. [cit. 2010-09-15]. Dostupná na: http://msdn.microsoft.com/en-us/library/ms170207.aspx
[12] Microsoft. BCP Books Online [online]. [cit. 2010-09-16]. Dostupná na: http://msdn.microsoft.com/en-us/library/aa337544.aspx
50
[13] AŽD. O společnosti a partneři [online]. [cit. 2010-07-19]. Dostupná na: http://www.azd.cz/o-firme/kdo-jsme/
[14] Zálohování.net.
Způsoby zálohování [online]. [cit. 2010-11-10]. Dostupná na:
http://www.zalohovani.net/inpage/obvykle-metody-zalohovani-dat/
[15]
Sybase.
Power
Designer
[online].
[cit.
2010-09-24].
Dostupná
na:
http://www.sybase.com/products/modelingdevelopment/powerdesigner
[16] AŽD. Organizační struktura [online]. [cit. 2010-07-19]. Dostupná na: http://www.azd.cz/o-firme/management-a-organizace/
[17]
DTD.
O
produktu
[online].
[cit.
http://datatresordisc.cz/cz_about.php?h=m3&l=cz_
51
2010-11-9].
Dostupná
na: