Informatika
verze 1.2
Obsah Obsah.......................................................................................................................................... 1 1. Struktura osobního počítače ................................................................................................... 2 2. Výstupní zařízení osobních počítačů...................................................................................... 4 3. Vnější paměti počítače a zobrazení informací na nich........................................................... 6 4. Zobrazení údajů v pevné a pohyblivé řadové čárce ............................................................... 8 5. Operační systémy – definice a vývoj ..................................................................................... 9 6. Funkce operačního systému, virtuální paměť, víceprocesorové systémy ............................ 11 7. Programovací jazyky – strojově a problémově orientované ................................................ 13 9. Neprocedurální jazyky a aplikační balíky............................................................................ 15 10. Základní datové struktury................................................................................................... 17 13. Sekvenční a indexsekvenční organizace souborů dat ........................................................ 18 14. Přímá a invertovaná organizace souborů dat...................................................................... 19 15. Typy souborů dat a operace se soubory ............................................................................. 20 16. Nevýhody tradičních organizací souborů........................................................................... 22 17. Databázové zpracování, vlastnosti databázových souborů ................................................ 23 18. Systémy řízení báze dat...................................................................................................... 25 19. Datové struktury a relační databáze ................................................................................... 27 20. Informační systémy, jejich struktura a typy ....................................................................... 29 21. Algoritmus, vlastnosti a metody zobrazení ........................................................................ 32 22. Rozhodovací tabulky.......................................................................................................... 33 23. Počítačové sítě, typy a topologie........................................................................................ 34 24. Distribuované zpracování a informační služby.................................................................. 37 25. Deklarace proměnných, vět a procedur v Pascalu.............................................................. 39 26. Cykly a větvení programů v Pascalu.................................................................................. 43 27. Relace, atributy, klíče v Microsoft Access......................................................................... 45 28. Vytvoření, naplňování a aktualizace tabulek v Microsoft Access ..................................... 48 29. Dotazy v Microsoft Access (QBE)..................................................................................... 49
Tyto podklady slouží pouze pro přípravu ke zkoušce z předmětu INFORMATIKA. Kapitoly se shodují s jednotlivými okruhy otázek. Některé otázky chybějí nebo se s jinými překrývají. Veškerý zde uvedený text je převzat z přednášek a cvičení a není určen pro komerční účely.
-1– Jiří Sitta © 2004
Informatika
verze 1.2
1. Struktura osobního počítače Počítač Počítač je složitý univerzální číslicový systém určený k samostatnému vykonávání požadované posloupnosti operací (výpočtů) nad údaji na základě předem připraveného programu.
VON NEUMANNŮV POČÍTAČ (1945) Základní jednotka Paměť
Řadič
V/V
Procesor
ALU
Von Neumannovo blokové schéma
Blokové schéma počítače
Vstupní zařízení
Systémová jednotka
Výstupní zařízení
Vnější paměťová média
Základní rysy této koncepce můžeme shrnout do následujících bodů: 1. Počítač je tvořen blokem paměti M, řadičem C, operační jednotkou (aritmeticko-logickou) ALU, blokem vstupů I (IN) a výstupů O (OUT). (ALU s řadičem C je procesor, procesor s pamětí M je označován jako základní jednotka ZJ). 2. Počítač je tzv. univerzální, protože jeho struktura je neměnná. Díky programům může řešit jakoukoliv algoritmizovatelnou úlohu. 3. V paměti M jsou uložena data D společně s instrukcemi I programu.
-2– Jiří Sitta © 2004
Informatika
verze 1.2
4. Paměť je tvořena jednotlivými paměťovými místy (buňkami), do kterých lze zapisovat a z nichž se dá obsah číst po zadání adresy toho příslušného místa. V historii počítačů můžeme najít "předvonneumannovské počítače", které uvedenou definici ve všech bodech nesplňují. Jde o reléový počítač MARK 1 (1943) nebo ENIAC (1946). Od prvních počítačů, které byly zkonstruovány podle v.N. koncepce (EDSAC v r. 1949 v Cambridge a EDVAC v . 1949/51 v Pensylvánii), je tato koncepce základem převážné většiny počítačů. Oproti v.N. koncepci, byla ve stejné době definována tzv. harvardská koncepce, která měla paměť M rozdělenou na část datovou D a instrukční I. Pro větší složitost ale nezvítězila, stala se však standardním rysem počítačů posledního zhruba pětiletého období.
-3– Jiří Sitta © 2004
Informatika
verze 1.2
2. Výstupní zařízení osobních počítačů Pod pojmem vstupní zařízení si můžeme představit všechna zařízení, kterými můžeme ovlivnit zadávaná data v počítači (klávesnice, myš, scanner, tablet aj.). Naopak výstupní zařízení nám zobrazí výstup z daného programu. Sem patří monitor, tiskárna.
Tiskárny Je to zařízení schopné potisknout list papíru nebo jiného materiálu znaky i grafikou podle příkazů počítače. Jsou to výstupní periferie, neboť slouží k výstupu informací. Vzájemná komunikace se provádí pomocí řídících příkazů (jazyk tiskárny). K počítači se tiskárna připojuje většinou přes paralelní rozhraní nebo USB. V textovém módu jsou definovány jednotlivé znaky (podle tabulky ASCII), které jsou uloženy v paměti, nebo jsou definovány znakovým generátorem tiskárny. V grafickém módu jsou tisknuty jednotlivé body a do tiskárny se předávají pouze informace o poloze bodu na papíru.
Jehličkové tiskárny Tištěný znak se skládá z jednotlivých bodů. Tisková hlava obsahuje příslušný počet tiskových jehliček. Tyto tiskárny mohou tisknout libovolné typy písma a znaky. Nevýhodou je značná hlučnost a to, že kvalita tisku není vysoká (zubaté písmo). Výhoda spočívá v nízké pořizovací ceně, slušné spolehlivosti, velmi levném provozu a hlavně v možnosti současného tisku více kopií průpisem na samopropisovací papír.
Tryskové tiskárny Pod pojem tryskové tiskárny jsou zahrnuty tiskárny s různým principem činnosti. Tryskové tiskárny se používají všude tam, kde je potřeba kvalitní tisk s menší rychlostí, a jako tiskárny k notebookům. Jsou to tiskárny inkoustové a grafitové.
1. Inkoustové tiskárny Inkoustové tiskárny kladou velké nároky na kvalitu inkoustu. Výhodou je poměrně dokonalý tisk (závisí však na papíru) při prakticky nehlučném provozu. Další výhodou je velice nízká spotřeba. Určitou nevýhodou je potřeba kvalitního papíru a inkoustu. Tím se zvyšuje i cena potřebná pro vytvoření jedné stránky tisku.
2. Grafitové tiskárny Používá se skleněná patrona naplněná grafitem. Kvalita tisku však nedosahuje kvality inkoustových tiskáren.
Tepelné tiskárny Konstrukční uspořádání je stejné jako u jehličkových tiskáren. Rozdíl je v tom, že v tiskové hlavě mají místo jehliček topné drátky. Tyto drátky zanechávají stopy na termocitlivém papíru (papír se speciální povrchovou úpravou – nános tepelně citlivé emulze). Výhodou je nehlučný provoz a poměrně dobré rozlišení. Nevýhodou je potřeba speciálního papíru a malá rychlost. Tisk časem bledne a papír tmavne, čímž se trvanlivost tisku znehodnocuje. -4– Jiří Sitta © 2004
Informatika
verze 1.2
Laserové tiskárny Nejkvalitnější třída černobílých tiskáren, která tiskne pomocí laserového paprsku a zapékání jemného prášku do listu papíru. Jsou vhodné pro tisk jak textu, tak i grafiky. Nejlepší modely dosahují rozlišovací schopnosti až 1 200 dpi. Díky tomu je možné tisknout i složitou grafiku ve velmi dobré kvalitě. Výhoda laserových tiskáren spočívá v nedostižné kvalitě černobílého tisku a mimořádné rychlosti. Nevýhoda pak ve vysoké pořizovací ceně.
LED tiskárny Pracují na podobném principu jako laserové, pouze místo laserového paprsku je používáno liniové pole svítivých diod (LED).
Další typy tiskáren (S typovým kolečkem, Tepelné tiskárny, Voskové tiskárny, Odpařovací tiskárny)
Monitory Je to výstupní zařízení. Monitory dělíme do dvou velkých skupin a to na CRT (klasické monitory) a LCD, TFT (ploché monitory) monitory. Monitory jsou analogové přístroje. Monitor připojíme do grafické karty. CRT monitory: Mají větší spotřebu než ostatní monitory. Nejdražší součástí je obrazovka. Tyto monitory mohou mít buď „delta obrazovku“ nebo „trinitronovou obrazovku“ (vyvinutá firmou SONY). V případě trinitronové technologie se neskládá maska uvnitř obrazovky z děr v černé fólii, nýbrž z velmi tenkých vertikálních černých kovových vláken. Kromě toho projde maskou více světla, což vede k ostřejším obrazům a zářivějším barvám. LCD monitory: jsou mnohem úspornější jak co se týče velikosti tak i spotřeby. Jejich cena je poměrně vyšší než u klasických monitorů, protože jsou složité na výrobu. Tyto monitory pracují na principu tekutých krystalů, které při průchodu napětí mění barevné spektrum. Připojují se ke grafické kartě buď klasickým konektorem nebo přes speciální konektor (DVI). V současné době se opouští od vývoje CRT monitorů a vylepšují se LCD monitory.
-5– Jiří Sitta © 2004
Informatika
verze 1.2
3. Vnější paměti počítače a zobrazení informací na nich Vnější paměť slouží k ukládání a zálohování dat a k jejich archivaci. Jedná se o pomalé paměti (10 – 50 ms) s velkou kapacitou (100 MB – 200 GB). U těchto pamětí se většinou používá magnetické nebo optické medium. Druhy venkovních pamětí Jednotka pevného disku (HDD) Jednotka pružných disků (FDD) CD-ROM DVD-ROM Páskové jednotky (Streamery)
Jednotka pevného disku – HDD HDD je paměťová jednotka pro trvalé uchovávání dat s možností čtení, zápisu a mazání. Je tvořen několika kovovými disky sestavenými nad sebou. Každý disk má oba povrchy opatřeny magnetickou vrstvou podobnou jako u magnetofonové pásky. Každý povrch má samostatnou hlavu umožňující čtení, mazání a zápis. Hlavy jsou připevněny na rameno vystavovacího mechanismu a neseny tenkým vzduchovým polštářem se pohybují těsně nad povrchem. Z tohoto důvodu jsou všechny hlavy nastavovány nad stejnou stopu. Hlava ukládá data na stopu podobně jako magnetofon. Použití: Pro trvalé uchovávání dat. Výhody: Možnost čtení, zápisu a mazání. Velká kapacita.
Jednotka pružných disků – FDD Klasická jednotka pružných disků je vytvořena velmi podobně jako HDD. Má však pouze jeden kotouč a z toho plynoucí omezení kapacity. Použití: Pro přenos dat. Výhody: Možnost čtení, zápisu a mazání. Nevýhodou je malá kapacita a možnost poškození.
CD-ROM Princip spočívá v ovlivňování odraženého laserového paprsku. Na plastovém disku jsou vylisovány drobné výstupky a důlky (záznam jedniček a nul), které ovlivňují odraz laserového paprsku od odrazové vrstvy disku do optického čtecího čidla. Vyhodnocení je již prováděno klasickou cestou. Na rozdíl od ostatních disků nejsou data nahrána na stopy, ale na spirálu. Toto uložení dat vede k tomu, že rychlost otáčení není konstantní, ale proměnná. Jejich rozměr je totožný s rozměrem klasických zvukových CD disků, t. j. „5 1/4“ a kapacita dosahuje až 790 MB. Oprava chyb je pro mechanické nepřesnosti techniky CD stále důležitější. Žádný CD disk většinou nelze na unášecí hřídel vycentrovat s dostatečnou přesností. Následkem toho je nerovnováha, jež vede při vysokých otáčkách k vibracím.
DVD-ROM Na DVD se vejde celých 4,7 GB, tedy více než sedmkrát víc než na dnešní CD-ROM. Na jednostranný disk DVD o dvou úrovních lze zapsat 8,5 GB dat, na oboustranné 9,4 a 17 GB. Tím přestává být problémem uložit na CD celovečerní film. Vedle vyšší hustoty dat, pro kterou je třeba používat krátkovlnnou laserovou diodu, zvyšuje kapacitu této paměti především technologie „multilayer“, tedy technologie více -6– Jiří Sitta © 2004
Informatika
verze 1.2
vrstev. Celý trik spočívá v tom, že během procesu čtení vnitřní vrstvy prochází světlo od zdroje vnější, částečně propustnou vrstvou. Tu laser sejme, jen pokud zaostří přesně na ni. Oboustranné disky DVD disponují dvěma takovými kombinacemi vrstev.
Páskové jednotky – Streamery Tyto magnetopáskové mechaniky jsou určeny pro zálohování dat. Jsou to „1/4“ kazety podobné magnetofonovým, o šířce 4 až 8 mm a kapacitě 120 MB až 1 GB. Princip záznamu a čtení je stejný jako u magnetofonových pásků. Použití: Výhody: Poměrně příznivá cena. Nevýhody: Obtížné a zdlouhavé vyhledávání dat a nevhodnost pro dlouhodobou archivaci.
-7– Jiří Sitta © 2004
Informatika
verze 1.2
4. Zobrazení údajů v pevné a pohyblivé řadové čárce Pevná řadová čárka Celočíselné údaje se zobrazují v pevné řadové čárce, tj. celé číslo je uloženo na pevném počtu bitu, přičemž bit nejvíce vlevo je vyhrazen pro znamínko. Důležité je, že absolutní hodnota čísla je omezena kapacitou slova.
Pohyblivá řadová čárka Desetinné údaje se zobrazují v tzv. pohyblivé řadové čárce, kdy desetinné číslo je ve slově uloženo ve dvou složkách: 1. mantice (M) 2. charakteristika (C) Mantisa má úplně vlevo opět uvedeno znamínko.
-8– Jiří Sitta © 2004
Informatika
verze 1.2
5. Operační systémy – definice a vývoj Operátor a raný systémový software U prvních počítačů, jejich ovládání probíhalo z operátorské konzoly byl uživatel/programátor zároveň operátorem zajišťující obsluhu počítače. Vzájemná komunikace probíhala na úrovni strojového kódu. Toto programování bylo rychle nahrazeno produktivnější tvorbou programů v jazycích symbolických adres. Tyto programy musely být transformovány do strojového kódu tzv. překladačem. Postupně vznikající systémový software (ještě neexistoval operační systém) byl tvořen překladačem jazyka symbolických adres a dále tzv. zaváděčem – zavádějící do vnitřní paměti (přeložený) program.
Monoprogramové systémy Rozšiřování raného systémového softwaru vedlo ke vzniku operačního systému. První operační systémy přebíraly funkci řízení počítače a byly monoprogramové. V paměti počítače byl uložen pouze jeden program. Po jeho ukončení byl na jeho místo zaveden další program. Zdroje počítače byly plně k dispozici právě zpracovávanému programu. Velká část paměti zůstala nevyužita.
Dávkové systémy Redukce ztrátových časů spojených s manipulacemi ze strany operátora, byly programy čekající v daném okamžiku na zpracování seskupovány do prací (spuštění určitého programu) a ty pak technologicky do dávek prací (setřídění vystupujících dat). Každá dávka pak zahrnovala práce, které byly obdobným způsobem technologicky zpracovávány, a tvořily na sebe navazující programy výpočtu mezd. Jednotlivé práce v dávce byly realizovány automatiky postupně za sebou => úspora času. OS této úrovně se nazývaly supervizity. Tyto rozsáhlejší programy nemohly být uloženy jako celek ve vnitřní paměti (zaujímaly pouze určitý úsek paměti). Pouze v mezidobích zpracovávání programů byla celá paměť obsazena supervizorem. Supervizor tedy způsobil minimalizaci časových ztrát spojených se zásahy operátora. Rychlost přídavných jednotek je nižší než rychlost práce procesoru. Při běžném opakování vstupu a výstupu dat tak po většinu času zpracovávání byl procesor nečinný.
Spooling Spooling byl prvním krokem k souběžnému zpracování programů – multiprogramování. Jde ve své podstatě o simulaci pomalých přídavných jednotek (tiskárna, magnetická páska) rychlou jednotkou (magnetický disk) využívající faktu, že rychlost zpracování dat na disku je mnohonásobně vyšší než u ostatních přídavných jednotek. Vstupní a výstupní operace (čtení a záznam dat) proběhne zprostředkovaně. Během konverze výstupních dat ze spoolingového disku na pomalou přídavnou jednotku může probíhat zpracování jiného programu, který čže a zapisuje data na disk. Souběžně tak mohou být zpracovávány až tři procesy: • konverze vstupních dat jednoho programu z pomalé přídavné jednotky na disk • obrácená konverze z disku • zpracování třetího programu, který pracuje jen s daty na disku
-9– Jiří Sitta © 2004
Informatika
verze 1.2
Multiprogramování Diskové operace jsou podstatně rychlejší než operace ostatních přídavných jednotek, jsou zase výrazně pomalejší, než rychlost centrální jednotky (procesor a řadič). Jako řešení se ukázala realizace principu, kdy další programy čekají ve vnitřní paměti připravené ke zpracování, jakmile je dokončen nebo přerušen aktuální program. Programy (procesy) se tak mohou nacházet v jednom ze tří možných stavů: • aktivní • blokovaný (čekající na odstranění příčiny přerušení) • připravený (čekající na aktivaci) Příčiny přerušení: - výskyt chyby při zpracování - čekání na provedení operace vstup/výstup U multiprogramování je v kterémkoliv okamžiku v paměti přítomno několik programů čekajících na zpracování. Multiprogramování umožňuje realizaci takových metod zpracování jako je interaktivní zpracování, víceuživatelský přístup, sdílení času až po rozvoj zpracování v reálním čase. Uvedené metody podstatně zvýšily složitost OS, vznikly nové komponenty řízení paměti a plánování.
Sdílení času a zpracování v reálném čase Ve víceuživatelském interaktivním prostředí je čas procesoru přidělován OS uživatelům přihlášeným do systému po časových kvantech. Jedním z možných přístupů je tzv. polling. Ten se ukázal neefektivní v situaci, kdy je řada uživatelů není v okamžiku přidělení kvanta připravena požadovat práci procesoru. Proto většinou OS aplikují systém přerušení. Systémy pracují v reálném čase umožňují realizovat požadavek údržby dat dříve než se vyskytne požadavek další transakce. Celkové paměťové nároky a požadavky na rychlost zpracování jsou pak u těchto systémů ve srovnání jinými vyšší.
- 10 – Jiří Sitta © 2004
Informatika
verze 1.2
6. Funkce operačního systému, virtuální paměť, víceprocesorové systémy Stránkování a virtuální paměť Po dobu běhu programu byl celý program přítomen ve vnitřní paměti. To působilo dva problémy: 1) velké programy měly jen minimální šanci na zpracování v malých volných úsecích paměti 2) v interaktivních víceuživatelských prostředcích rozsah vnitřní paměti limitoval počet uživatelů V průběhu zpracování programu v časovém intervalu byla aktivní jen jeho malá část tj. vždy je sekvenčně zpracovávána určitá skupina instrukcí programu. Této skutečnosti bylo využito k realizaci tzv. stránkování v OS. Program je rozdělen na úseky stejné délky, stránky, které jsou předmětem přenosu z a do vnitřní paměti. Neaktivní stránky zůstávají uloženy na disku připravené k přenosu do paměti v okamžiku potřeby. Disková paměť tak plní funkci rozšíření vnitřní paměti => virtuální paměť. Metoda stránkování opět zvyšuje komplexnost (složitost) OS. Každá další stránka kterékoliv práce může být uložena namísto uvolněné stránky. Zvýší se dále počet prací současně uložených v paměti a tím se dosáhne i lepšího využití výkonu procesoru. Stránkování má určité problémy. Jsou jimi časté výměny stránek, který nastává při cyklickém volání podprogramu umístěného na jiné stránce, kdy v paměti současně je přítomná pouze jedna stránka programu. To zvyšuje režijní čas procesoru. OS během činnosti monitoruje své využití. Dojde-li k poklesu využití, snaží se zvýšit úroveň multiprogramování zavedením dalších prací do paměti.
Vícepočítačové a víceprocesorové systémy Snaha o zvýšení výkojnu počítačového systému je spojení více počítačů či procesorů do jednoho celku, do tzv. vícepočítačových a víceprocesorových systémů. Oba tyto termíny spojuje pojem tzv. multiprocessing. Výhodou je vyšší výkon, vyšší flexibilita v požadavcích na zpracování a vyšší spolehlivost systému. Tento rys spočívající v zálohování procesorů se významně projeví u tzv. nepřetržitého zpracování, kdy je odstavení systému v důsledku výskytu určité chyby prakticky nemyslitelné. Z pohledu uložení dat v paměti při zpracování je možné multiprocessing dělit na: - volně spojený, kdy ke každému procesoru existuje lokální vnitřní paměť - těsně spojený, kdy kromě lokálních vnitřních pamětí existuje i paměť globální Multiprocessingové OS sdílí mnoho vlastností multiprogramových systémů. Řeší problém vyrovnávání vytížení mezi jednotlivými procesy, využití souběžného zpracování v hardwaru i softwarové podpoře. Z hlediska koncepčního řešení lze rozlišit systémy: • typ pán a sluha, u kterých procesor v roli „pána“ řídí všechny procesory „sluhů“ • typu samostatné řízení, každý procesor má svůj operační systém a řídí své periferní jednotky a soubory. - 11 – Jiří Sitta © 2004
Informatika •
verze 1.2
typu symetrického systému, kdy všechny procesory jsou identické a jsou řízeny OS
Soustava počítačů spojených do jednoho funkčního celku pomocí komunikačního subsystému se nazývá síť.
Konkrétní operační systémy Existuje značný počet konkrétních OS pracujících na jednotlivých typech počítačů na jednom počítači může být nainstalováno více OS z nichž jeden je v danou chvíli aktivní (řídí činnost počítače); např. Windows (98, NT, 2000) pro osobní počítače a jejich sítě, systém Unix ve variantách pro různé typy počítačů (AIX, Linux, Ultrix apod.).
- 12 – Jiří Sitta © 2004
Informatika
verze 1.2
7. Programovací jazyky – strojově a problémově orientované Všechny tyto charakterizované jazyky lze také označit souhrnně jako procedurální jazyky, na rozdíl od modernějších jazyků neprocedurálních, které jsou opět bližší uživateli.
Strojové jazyky Počítač pracuje na dvojkovém základě, tedy s hodnotami vyjádřenými dvojkovými číslicemi 1 a 0. Přirozeným jazykem je tedy pro něj strojový kód (jazyk), operující pouze s dvojkovými hodnotami: s instrukcemi (operacemi) a daty (operandy). Instrukce je tvořena řetězcem bitů zvaným instrukční (operační) kód.
Strojově orientované jazyky Jazyk symbolických adres (asemblery) používají symbolů, mnemotechnických zkratek, k zakódování strojových instrukcí, které mají číselný charakter. Mezi strojovými instrukcemi a instrukcemi jazyka symbolických adres jedna k jedné. Dokonalejší verze asembleru jsou navíc vybaveny tzv. makroinstrukcemi, které jednou mnemotechnickou zkratkou označují podprogram často se opakujících strojových instrukcí. Jazyky symbolických adres jsou strojově orientovanými jazyky, tj. jazyky, které jsou svou strukturou úzce spjaty s konkrétním hardwarem. Program v asembleru musí být přeložen do strojového kódu tak, aby byl pak realizovatelný procesorem. Překlad se uskuteční programem zvaným překladač.
Problémově orientované jazyky Přirozené jazyky slouží ke komunikaci mezi lidmi, programovací jazyky byly vyvinuty pro uživatele ke komunikaci s počítačem a k zajištění požadovaných operací s daty. Po strojově orientovaných jazycích, které byly jedinými programovacími jazyky, byly vyvinuty problémově orientované jazyky. Jejich konstrukce nesledovala konkrétní strukturu hardwaru, byly bližší přirozené řeči a zaměřily se na řešení určité třídy problémů, například na zpracování ekonomických dat, matematické výpočty, řízení procesů v reálném čase apod. Problémově orientované programovací jazyky se označují jako vyšší programovací jazyky. Podle původní koncepce těchto jazyků lze říci, že patřili k jednomu ze dvou základních typů: • jazyky pro zpracování dat (šlo o orientaci na řešení ekonomických agend) • algoritmické jazyky (tvorba algoritmů matematického charakteru) Uvedené jazyky jsou procedurálního charakteru. Nejznámějšími z těchto jazyků jsou Cobol, Pascal, Fortran, C, Basic, Smalltalk. Programy jsou transformovány do strojového kódu a pak jsou připraveny k provedení. Překlad probíhá pomocí programů (překladačů) zvaných kompilátory. Funkcí kompilátoru je kontrola a identifikace chyb. Jde o chyby formálního charakteru (uživatel je informován informačním výstupem – na obrazovku, tiskový výstup).
- 13 – Jiří Sitta © 2004
Informatika
verze 1.2
Kompilátory Je program, který překládá programy napsané v problémově orientovaných jazycích do strojově zpracovatelné formy (například kompilátor programu Pascal). Kompilátory jsou navrhovány a vypracovány pro standardizované programovací jazyky. Kompilátory uvedených vlastností jsou nazývány generátory, protože generují celý kód zdrojového programu do jazyka strojového a až následně je přikračováno ke spuštění výpočtu programu. Vedle generátorů existují interpretátory. Nerozlišují překlad programu a spuštění do dvou fází. Po překladu jednoho řádku programu do strojového jazyka se provede jeho realizace. Poté se přejde na další řádek. Generátory a interpretátory mají přednosti. Předností interpretátorů je jednodušší konstrukce, menší paměťový nárok. Zdržují naopak rutinní zpracování. Jsou vhodnější k aplikaci ve fázi vývoje programu. Generátory jsou důmyslněji konstruovány, poskytují dokonalejší analýzu kvality programu. Jsou nezbytné pro překlad programů s již ukončeným vývojem. Prvky definice programového jazyka. Definice programovacího jazyka je tvořena třemi základními prvky: • abecedou • syntaxí • sémantikou Každý programovací jazyk má svou vlastní podobu definice. Ze symbolů abecedy se pomocí syntaktických pravidel vytvářejí slova. Mezi slova patří tzv. klíčová slova, která mají přesně definovaný tvar a význam, dále identifikátory, které pojmenovávají jednotlivé objekty programu, a číselné či abecedněčíselné konstantní hodnoty (například „ABCD5“). Kombinací slov a operátorů vznikají výrazy jazyka. Slova a výrazy formulují příkazy jazyka. Každý program obsahuje kromě výkonných instrukcí také deklarace popisující vymezení proměnných, konstant, vět, soborů a dále pomocné popisy sloužící k označení významných míst v programu, k informacím pro kompilátor apod.
- 14 – Jiří Sitta © 2004
Informatika
verze 1.2
9. Neprocedurální jazyky a aplikační balíky Neprocedurální jazyky Jsou tvořeny pro interaktivní prostředí programování a jsou dobře strukturované. Ve srovnání s problémově orientovanými jazyky jsou uživatelsky přátelštější. Jsou dobře vybaveny pro práci s databází a jsou výkonnějšími nástroji, protože jejich jednotlivé instrukce představují obvykle množinu instrukcí problémově orientovaných jazyků. Například pomocí jednoho strukturovaného příkazu se provede výběr dat z několika datových struktur a prezentuje se na výstupu v požadovaném uspořádání. Existuje široké spektrum prostředků čtvrté generace. Od prostředků tzv. softwarového inženýrství sloužících k vývoji programových aplikací a využívaných tedy specialisty, přes dotazovací jazyky, které jsou věci širší programátorské veřejnosti, až po generátory informačních výstupů generující požadované výstupní informační přehledy z databází a přístupné koncovým uživatelům. Představitelem neprocedurálních jazyků je Prolog postavený na odlišném principu jazyků založených na logice. Vysoká výkonnost moderních neprocedurálních jazyků vedla k opuštění tradičního vývoje aplikací členěného do postupných oddělených stádií k plynulému postupnému vývoji k tzv. prototypování. Podstatou je rychlý vývoj rané verze systému, která je ověřena a postupně upravována do finální podoby. Další vývoj počítačových jazyků probíhá přes objektově orientované jazyky, funkční jazyky a jazyky založené na logice.
Aplikační balíky Aplikačními balíky se rozumí programové vybavení, které slouží ke zpracování určitých často se vyskytujících tříd aplikačních problémů. Je pohodlnější využít některého z aplikačních balíků než připravovat často opakované vlastní řešení problému. Jsou rychlejší a s nižším rizikem chyb realizovatelné. Aplikační balíky po stránce komunikace s uživatelem: • dotazovací • nabídkovou • příkazovou Struktura aplikačních balíků podléhá vývoji. Mezi základní jasně specifikované balíky patří: • textové procesory • tabulkové procesory • databázové systémy Dále programy pro počítačovou grafiku, komunikační programové vybavení a dále specializované programové balíky zaměřené na ekonomické aplikace.
- 15 – Jiří Sitta © 2004
Informatika
verze 1.2
Textové procesory jsou aplikačními balíky, které komplexně zpracovávají texty napsané v příslušné národní abecedě. Nejjednodušší formou textových procesorů jsou tzv. editory, umožňující vytváření, úpravu, uchování a tisk textových souborů. Textové procesory obsahují nástroje pro formátování textu, tiskové efekty, různé řezy a druhy písem. Ke speciálním funkcím patří vyhledávání v textu, srovnávání dvou textů, kontrola mluvnické správnosti slov, tvorba obsahu a indexů. Nejlépe funkčně vybavené procesory slouží k tzv. „vydavatelství na stole“. Tabulkové procesory jsou základním nástrojem pro realizaci jednoduchých ekonomických výpočtů (účetního, finančního, statistického charakteru). Podstatou je dvojrozměrná tabulka, řádky jsou identifikovány přirozenými čísly a sloupce pak písmeny. V průsečíku řádku a sloupce se nachází tzv. buňka. V buňce může být uložen text, číslo nebo vzorec. Databázové systémy zajišťují ukládání, aktualizaci a výběry dat uložených v databázi. Vlastní programové vybavení tvořící spolu s databází databázový systém se nazývá systém řízení báze dat. V praktických aplikacích bývá integrován se systémovým softwarem, z tohoto důvodu je někdy klasifikačně řazen k systémovému. Data v databázi jsou obvykle uspořádána do tzv. tabulek (relací), jejichž sloupce (atributy) definují jednotlivé údaje (položky), z nichž pak sestávají řádky tabulky. Tabulka popisuje studenty fakulty, řádky charakterizují jednotlivé studenty a sloupce definují údaje o studentech. Údaje, které jednoznačně identifikují jednotlivé řádky tabulky, se nazývají klíče. Databázové systémy dovolují provádět výběry dat v nejrůznějším uspořádání a agregaci, a to snazším způsobem než pomocí programového řešení. Existuje řada konkrétních programových řešení aplikačních balíků.
- 16 – Jiří Sitta © 2004
Informatika
verze 1.2
10. Základní datové struktury Základním prvkem datové struktury je údaj, množina údajů vztahující se k jednomu objektu reality tvoří větu (číslo pracovníka, číslo oddělení aj.). Údaje, které jednoznačně identifikují větu se nazývají klíč věty. Někdy se také hovoří o primárním klíči na rozdíl od klíče sekundárního, který je tvořen z jiných údajů věty a danou větu jednoznačně neidentifikuje (na stejnou hodnotu pro více vět). Sekundární klíče mají svůj význam při zpracovávání různých informačních přehledů pro uživatele. Z hlediska fyzického uložení údajů v paměti počítače je důležité určení formy zobrazení každého údaje. Pro navazující zpracování je třeba vědět, zda údaj je celočíselný, desetinný, znakový apod. Jinak se totiž zpracovávají číselné hodnoty, jinak textové, a desetinná čísla. Věty podobného charakteru tvoří soubor dat (takto můžeme hovořit o souboru studentů, souboru účtů, souboru materiálů apod.). Ze strukturálního hlediska mohou být soubory: • homogenní • heterogenní Homogenní soubor je tvořen větami stejné struktury, heterogenní pak větami různých struktur (soubor kalkulací výrobků obsahující ke každému kalkulovanému výrobku větu o materiálu, o živé práci, o režijních nákladech). Každá z těchto vět má rozdílnou strukturu údajů a v souboru jsou vzájemně promíchány. Heterogenní soubory jsou výjimečné. Věty samotné mohou být strukturovány do pevného nebo proměnného formátu. Pevný formát znamená, že všechny věty souboru mají stejnou celkovou délku vyjádřenou součtem délek jednotlivých údajů (délka údaje je dána počtem znaků, bytů, které údaj tvoří). Proměnný formát připouští různé délky vět souboru. Věta představuje jednotku souboru z hlediska logického smyslu pro uživatele. Na paměťovém nosiči jsou věty součástí fyzických jednotek záznamu, tzv. bloků. Velikost bloků vyplývá z fyzického uspořádání paměťových nosičů. Jeden blok obsahuje jednu nebo několik vět souboru, nikdy jen část věty. Blok je jednotkou přenosu mezi vnější a vnitřní pamětí.
Návěští souborů dat Soubor dat uložený na magnetickém nosiči musí být jednoznačně identifikován a musí být zřejmé, kde je jeho začátek i konec. Stejně tak musí být jednoznačně identifikován i samotný magnetický nosič. Tato identifikace je zajišťována pomocí takzvaných návěští. Návěští u magnetické pásky jsou členěna na počáteční a koncová. Počáteční návěští jsou na začátku pásky a označují její začátek a dále začátek souboru. Analogicky je to u koncových návěští. U disku jsou návěští umístěna pouze na jeho začátku (na stopě 0, válec 0). Návěští nosiče obsahuje číslo a jméno nosiče a dále údaje o formátování nosiče. Návěští souborů je uloženo za návěštím nosiče a zahrnuje informace jednak o umístění souboru na disku, jednak jméno souboru a některé jeho charakteristiky. Smyslem všech návěští je identifikace a kontrola nosiče a souboru při operaci otvírání a zavírání souborů. OS v okamžiku pozná, zda hledaný soubor se na nosiči nachází, je schopen jeho fyzicky uložené části spojit v jeden logický celek. - 17 – Jiří Sitta © 2004
Informatika
verze 1.2
13. Sekvenční a indexsekvenční organizace souborů dat Metody organizace souborů dat Metoda organizace souborů dat vyjadřuje způsob jejich uspořádání na vnějších paměťových nosičích ve vztahu k logické návaznosti jednotlivých vět. Přístup znamená způsob, jakým se k uloženým větám přistupuje za účelem jejich výběru. Existují dva základní způsoby: • sekvenční • přímý Sekvenční přístup je dán postupným prohledáváním vět. Přímý přístup vyhledá požadovanou větu přímo, bez průchodu jinými větami. Uplatnění přístupů závisí na druhu vnější paměti. Disková paměť umožňuje aplikaci obou přístupů, pásková paměť dovoluje jen sekvenční přístup. Základními metodami organizace souborů dat jsou: • sekvenční • indexsekvenční • přímá • invertovaná
Sekvenční organizace Věty sekvenčně organizovaného souboru jsou zpracovávány ve fyzické posloupnosti uložení. Identifikačním klíčem může být například číslo účtu zákazníka a číslo faktury. V něm budou věty uloženy za sebou podle vzestupné hodnoty klíče. Některé soubory nemají věty uspořádané podle hodnot primárního klíče. Jde o tzv. nesetříděné soubory. Tyto soubory se používají méně často, například jako soubory dočasné, které mají charakter dílčí dávky následně slučované s ostatními dávkami do výsledného setříděného souboru. Fyzické uložení vět v blocích za sebou je shodné s jejich logickou návazností vyjádřenou hodnotou klíče. Sekvenční organizace je vhodná pro často zpracovávané soubory. Například měsíční soubor mezd, ze kterého budou tištěny výplatní pásky všech zaměstnanců. Při rušení některých vět v sekvenčním souboru se rušené věty pouze označí za neplatné, i když fyzicky na nosiči existují, pro uživatel jsou však nepřístupné a mohou být přepsány Novými větami.
Indexsekvenční organizace Je realizovatelná pouze u pamětí dovolujících přímý přístup. U diskových pamětí lze vytvořit na každém válci (bloku) souboru tzv. oblast přeplnění. Jde vlastně o rezervu, která slouží pro dodatečné zařazování vět, které není fyzicky místo mezi logicky předcházejíc a následující větou. Věty v přeplňovaní oblasti jsou logicky svázány s bloky (větami) v „základní“ oblasti pomocí tzv. směrníků (zvláštní údaje obsahující odkaz – adresu – návazné věty). Doplňování vět nevyžaduje každá aktualizace souboru jeho přepis. Jakmile se přeplňovaní oblast zaplní, je nutno provést tzv. reorganizaci souboru, kdy se přidruží věty z přeplňovacích oblastí k ostatním větám a přeplňovaní oblasti se uvolní pro další zpracování. Indexsekvenčně organizovaný soubor je zpracován a udržován index sloužící k přímému vyhledávání vět. Tato metoda není vhodná pro zpracování velkého počtu vět. - 18 – Jiří Sitta © 2004
Informatika
verze 1.2
14. Přímá a invertovaná organizace souborů dat Přímá organizace Soubor je prohledáván a vytvářen pomocí přímého přístupu, může být uložen pouze na nosiči s přímým přístupem (disk). K nalezení dané věty je třeba znát její fyzickou adresu tj. číslo válce, stopy a bloku, kde je uložena. OS vyžaduje tzv. relativní adresu věty, tj. její pořadové číslo od počátku souboru. Systém z relativní adresy vypočte adresu fyzickou (absolutní). Tato organizace dat se obvykle nazývá relativní organizací. Přímé adresování spočívá na principu jednoznačného určení relativní adresy. Buďto hodnota klíče přímo adresu udává (méně četný případ), protože zřídkakdy jsou logicky objekty identifikovány pořadovými čísly. Problém přímého adresování je ten, že vyžaduje rezervování paměťového místa. Například soubor zaměstnanců podniku bude mít každou větu identifikovánu klíčem buďto tvořeným rodným číslem nebo interním číslem zaměstnance. V obou případech půjde strukturní hodnoty zahrnující i jiná hlediska. Výhodou přímého adresování je jednoznačné stanovení adresy věty z hodnoty klíče, nevýhodou pak nevyužitý paměťový prostor rezervovaný pro věty s nevyužitou hodnotou klíče. Nepřímé adresování je založeno na principu přepočtu hodnoty klíče algoritmem, který poskytne jednu hodnotu relativní adresy k několika hodnotám klíče poskytne stejnou hodnotu adresy. Někdy se této metodě říká náhodné adresování. Celočíselné dělení. Smyslem této metody je redukovat velké rozsah hodnot klíče na interva odpovídající očekávanému počtu vět. Je-li tento počet N, pak zbytek po dělení bude
0. (Příklad: věty jsou identifikované třímístným klíčem a očekáváme maximálně 95 vět….. 355 : 95 = 3, zbytek 64 – adresou je tedy 64) Slučování číslic. Její podstatou je redukce velkého číselného rozsahu klíče na adresu sčítáním některých nebo všech číslic klíče (například pro klíč s rozsahem 8 číslic, chceme-li dosáhnout adresy v intervalu 0 ≤ adr ≤ 8888; je-li dílčí součet > 9, odečte se od něj 10 …… (8 + 3) (1 + 2) (1 + 0) (7 + 6) 1 3 1 3. výsledná adresa 1313 odpovídá požadovanému rozsahu.
Invertovaná organizace Invertovaný soubor je organizován na základě sekundárního klíče a to vzhledem k základnímu indexsekvenčně organizovanému souboru.
- 19 – Jiří Sitta © 2004
Informatika
verze 1.2
15. Typy souborů dat a operace se soubory Typy souborů dat Z hlediska úlohy můžeme rozdělit do tří skupin: - kmenové - transakční - dočasné Kmenové soubory mají zásadní význam v procesu zpracování, obsahují věty, jejichž údaje jsou permanentně udržovány v aktuálním stavu. Tyto soubory jako celek mají relativní stálost. Intervaly aktualizace souborů závisí na povaze programové aplikace, které slouží (denně, měsíčně aj.) Organizace kmenových souborů opět závisí na charakteru jejich zpracování, nejčastěji jsou organizovány sekvenčně, ale mohou být indexsekvenčně i přímě. Transakční soubory obsahují data vztahující se k událostem nebo činnostem krátkodobého charakteru. Např. soubor obdržených objednávek daného dne. Tyto soubory mohou být sekvenční a ve zpracování slouží k pořízení určitých přehledů a k aktualizaci příslušných kmenových souborů. Dočasné soubory vznikají během zpracování a po jeho úspěšném ukončení jsou zrušeny. Na rozdíl od dvou předchozích skupin souborů se nearchivují ani dlouhodobě (jako kmenové) ani krátkodobě (jako transakční).
Operace se soubory dat K základním operacím se soubory dat patří: • třídění • slučování • přiřazování • součtování • aktualizace • vyhledávání Třídění souboru znamená uspořádání jeho vět ve vzestupném pořadí podle hodnot třídícího klíče (libovolná kombinace sekundárních a primárního klíče věty). Především se týká sekvenčních souborů. Slučování spočívá ve vytvoření výsledného souboru z dílčích shodně uspořádaných vstupních souborů. Přiřazování je jedna z nejběžnějších operací, zpracovává dva nebo více souborů uspořádaných shodně podle stejného klíče. Často je tato operace aplikována pro ověření platnosti určitých vstupních hodnot podle číselníku platných hodnot (číslo závodu, číslo účtu).
- 20 – Jiří Sitta © 2004
Informatika
verze 1.2
Součtování znamená vytvoření jedné výsledné věty, která vznikne součtem hodnot jednoho nebo několika údajů z několika vět vstupního souboru. Součtují se věty, které mají stejnou hodnotu sekundárního klíče nebo hierarchie sekundárních klíčů. Aktualizace v sobě zahrnuje tři dílčí operace: • vkládání nových vět do souboru • rušení neaktuálních vět • změnu obsahu (modifikaci) existující věty souboru. Aktualizace je vždy vázána ke kmenovému souboru. Vyhledávání vět souboru probíhá na základě výběrového kritéria týkajícího se zvolených údajů věty. Např. výběr vět ze souboru studentů, pro které platí, že studují ve 2. ročníku. Vyhledávání vět je finální operací pro zabezpečování potřeb uživatele.
- 21 – Jiří Sitta © 2004
Informatika
verze 1.2
16. Nevýhody tradičních organizací souborů Hlavní nevýhody tradičního přístupu k organizaci datových struktur lze shrnout do následujících bodů: • redundance dat • nedostatečná integrace dat • nekonzistence dat • závislost dat • nepružnost systémů Tradiční přístup může být charakterizován jako aplikačně orientovaný v tom smyslu, že tvar datových struktur je závislý na neustále se vyvíjejících specifických požadavcích uživatele. Soubory dat obsahují řadu redundantních (nadbytečných) údajů, neboť aplikace využívají zpravidla řady shodných údajů. Např. některé údaje o zaměstnanci budou v souboru zaměstnanců pro účely personální evidence a v souboru sloužícímu k výpočtu mezd zaměstnanců. Redundance dat vede k jejich nedostatečné integraci, struktura spjatých dat je roztříštěná do řady souborů konstruovaných pro odlišné účely. Integrace těchto souborů je v tradičním přístupu samozřejmě možná vyžaduje však úsilí spojené s přestavbou již fungujících a postupně vyvíjených programových systémů. Dalším důsledkem redundance dat je nekonzistence dat. Stejný údaj je udržován na více místech (v několika souborech) a neexistuje záruka, že na všech těchto místech je uložena jeho aktuální hodnota. Závislost dat těsnou spjatost mezi způsobem, jakým data uspořádána a programy, které s těmito daty pracují. Každá změna struktury vyvolá nutnou úpravu odpovídajících programů, i když se změna přímo těchto programů netýká. Programové systémy založené na tradičním přístupu k organizaci dat jsou právě v důsledku uvedené závislosti dat a programů nepružné, je velmi nákladné řešit předem neočekávané požadavky uživatelů.
- 22 – Jiří Sitta © 2004
Informatika
verze 1.2
17. Databázové zpracování, vlastnosti databázových souborů Databázové zpracování Nejjednodušší počítačové aplikace jsou představovány jednotlivým programem, který pracuje s jednoduchou datovou strukturou – souborem, organizovaným některou z dříve uvedených metod. Konstrukce programu pak přímo závisí na uspořádání souboru, se kterým pracuje, tedy dojde-li ke změně struktury souboru, vyvolá to i změnu příslušného programu. Rostoucí komplexnost zpracování vede k tzv. datové redundanci, kdy se některé údaje vyskytují ve dvou nebo více souborech. Redundanci vyvolává fakt, že jednotlivé soubory jsou individuálně konstruovány. Negativním důsledkem redundance je nekonzistence údajů. Vzhledem k těsné závislosti programů na struktuře dat se pak celý systém stává málo pružným z pohledu běžných změn, úprava datové struktury vyvolává lavinu programových změn. Tyto důvody vedly k vytvoření databázového konceptu. Podstatou je práce s databází, jakožto s množinou souvisejících dat, která jsou jednotně ukládána, aktualizována a jako celek slouží k následným výběrům pro aplikační programy. U databázového zpracování dochází k oddělení té složky programového vybavení, která zajišťuje naplňování, úpravu a aktualizaci datové struktury, od vlastních aplikací. Aplikační programy tedy nepracují bezprostředně s uloženými daty, ale zprostředkovaně přes standardní programy ovládajícími databázi. Těmto programům se říká systém řízení báze dat. Výsledkem takovéto koncepce je odstranění závislosti aplikačních programů na struktuře dat. Existuje široké spektrum databázových systémů od přenosných počítačů až po nejvýkonnější výpočetní systémy. Podle toho pak vypadají i výkonnostní a funkční parametry databázového systému. Velké databázové systémy pracují na síti počítačů v mnohauživatelském prostředí. Lze rozlišit tři skupiny uživatelů, kteří pracují s databází: • Správce databáze – odpovědný za definování a rozvoj struktury databáze, formuluje politiku práv uživatelů, údržby databáze. Sleduje maximální výkonnost celého systému. • Aplikační programátor – pro uživatele připravuje programy pro ukládání, aktualizaci a výběr dat způsobem přijatelným pro uživatele. Aplikační programy komunikují se systémem řízení báze dat. • Koncový uživatel – pracuje s databází prostřednictvím aplikačních programů nebo přímo pomocí prostředků dodazovacího jazyka, ty dovolí zpracovávat některé snazší aplikace.
Vlastnosti databázových systémů Redundance dat je u databázových systémů minimalizována. Praktické důvody technického a výkonnostního charakteru vedou v existenci redundance. V tomto případě však databázový systém musí existující redundanci plně kontrolovat, tj. dojde-li k aktualizace redundantně se vyskytujícího údaje, systém zajistí shodnou úpravu všech jeho výsledků. Takto se zabrání k jakékoliv nekonzistenci dat.
- 23 – Jiří Sitta © 2004
Informatika
verze 1.2
Nezávislost dat. Tato vlastnost je důležitá s ohledem na potřebu využívání stejných dat různými aplikacemi, permanentního rozvoje datové struktury odrážejícího vývoj informačního systému. Sdílení dat = aplikace využívají stejná data. Ochrana dat souvisí s problémem redundantních dat, která zvyšují nebezpečí nekonzistence (necelistvosti) uložených dat. Integrita dat však může být dále narušena zadáním hodnot, které nepatří do oboru přípustných hodnot. Databázový systém musí disponovat kontrolami vylučujícími takové možnosti. Vzhledem k mnohauživatelskému využití dat je tento aspekt nebezpečnější. Také softwarové či hardwarové chyby mohou narušit integritu databáze. Proto jsou databázové systémy vybaveny prostředky zálohování a obnovy databáze. Pružnost z hlediska požadavků uživatele. Vybírat data z databáze podle okamžitých potřeb uživatelů. Uživatel tedy není odkázán jen na předem připravené aplikace. Další vlastnosti: - snaží a systematičtější uplatnění rady technických standardů - integrace dat do databáze přináší rady konfliktních požadavků mezi uživateli Databázová koncepce přináší možnost integrovanějšího pohledu na tvořící jádro daného informačního systému.
- 24 – Jiří Sitta © 2004
Informatika
verze 1.2
18. Systémy řízení báze dat Obecně každý systém řízení báze dat zabezpečuje následující základní funkce: • definování struktury databáze • naplnění databáze daty • aktualizace obsahu databáze • výběr dat Uvedené funkce jsou realizovány pomocí těchto čtyř částí systému řízení báze dat: • překladače databázových jazyků • programy pro práci se slovníkem dat • výkonné programy databáze • služební programy Překladače databázových jazyků transformují popisy a příkazy, které definují datové struktury a provádějí operace s nimi do příslušné cílové formy. Mezi databázové jazyky patří především definiční jazyk, pomocí něhož se definuje struktura dat uložených v databázi, manipulační jazyk, sloužící k programování operací s databází, dotazovací jazyk pro zabezpečení především výběru dat z databáze ze strany uživatele. U některých databázových systémů jsou tyto jazyky spojeny do jednoho univerzálního jazyka. Překladače definičního jazyka pracují na interpretačním principu. Manipulační jazyk bývá konstruován buď jako samostatný jazyk nebo využívá tzv. hostitelského jazyka. Hostitelským jazykem je běžný programovací jazyk (Pascal, Cobol), v němž hostují příkazy pro práci s databází. Program obsahující vedle hostitelského jazyka i „databázové“ příkazy musí být nejprve pomocí předkompilátoru přeložen do hostitelského jazyka a teprve poté se provede překlad programu do strojového jazyka. Programy pro práci se slovníkem dat zajišťují naplňování a aktualizace slovníku dat. Výkonné programy realizují funkce systému řízení báze tj. naplňování, aktualizace. Výkonné programy těsně spolupracují s operačním systémem počítače a dále využívají slovníku dat, z něhož získávají informace o datových strukturách a přístupových právech k nim. Služební programy slouží správce databáze a zajišťují řadu doplňkových i pomocných funkcí. Poskytují různé informace o stavu databáze, umožňují naplňování databáze nestandardním způsobem, vyhodnocují výkonnostní charakteristiky navrhované organizace dat, dovoluji reorganizaci databáze, zabezpečují prostředky ochrany dat před zničením.
Formy systémů řízení báze dat Nejznámější systémy řízení báze dat (Paradox, Progress) jsou konstruovány pro širokou třídu aplikací – univerzální. Jinou formou jsou specializované systémy, které se orientují za konkrétní třídu aplikací nebo na jednu aplikaci. Vedle centralizovaného databázového systému, kdy uživatelé přistupují k datům v jednom místě, je efektivnější aplikace distribuované databáze. Přednosti distribuovaného databázového systému je mnohem širší a pružnější. Databáze je rozdělena do různých fyzických míst počítačové sítě. Na druhé straně distribuované databáze se musí vyrovnat - 25 – Jiří Sitta © 2004
Informatika
verze 1.2
s problémem konzistence dat při jejich redundantním uložení na více místech distribuce. Řada variant distribuovaného databázového zpracování např. klient/server. Tento systém řízení báze dat pracuje na počítači server, vlastní aplikace probíhají na počítačích označovaných jako klient. Z hlediska kvantity tedy jeden server obsluhuje mnoho klientů. Zpracování klientských aplikací nezdržuje procesy probíhající na serveru a obráceně, server realizuje pomocí jednoho přístupu k databázi více klientských požadavků. Distribuované zpracování dovoluje jednomu klientu pracovat současně s více databázovými servery. Dnešní databázové systémy jsou založeny na plné distribuované formě, kdy nejen databáze je rozdělena mezi uzly sítě, ale také jednotlivé dílčí databáze jsou obsluhovány vlastními systémy řízení báze dat. Pro uživatele celý systém působí jako nedělitelný celek. Na systémy řízení báze dat jsou kladeny nároky: • musí být zabezpečena optimalizace zpracování výběrů, které se mohou vztahovat k různým dílčím databázím • slovník dat musí zahrnovat informace o celé datové struktuře, s níž pracuje informační systém, a to pomocí: o centralizaci slovníku o kopírováním celého slovníku do jednotlivých uzlů distribuce o dělením slovníku do dílčích uzlů adekvátně datům • při datové redundanci vzniká problém aktualizace. Ne každá kopie údaje je v daném okamžiku přístupná, to se řeší principem tzv. primární kopie a ta je permanentně aktuální, ostatní se musí podle potřeby na ni odvolat. • Musí být zabezpečeny procesy obnovy databáze, zablokování systému (tzv. deadlock, kdy uživatelé čekají na sebe navzájem na uvolnění dat, s nimiž právě prcují).
- 26 – Jiří Sitta © 2004
Informatika
verze 1.2
19. Datové struktury a relační databáze Datové struktury Základní pojmy, s nimiž pracuje datové modelování, které tvoří strukturu konkrétní databáze. Entita a atribut Množiny podobných objektů reálného světa, které vnímáme za účelem jejich modelování ve struktuře databáze, nazýváme entitami. Příkladem entit může být pracovník, materiál, dodavatel, faktura, účet apod. Každá entita má řadu konkrétních výskytů. Entita STUDENT může nabývat výskytů NOVÁK apod. Entita má určité vlastnosti, které jsou podstatné z hlediska modelovaného informačního systému. Těm se říká atributy pole. Atributy entity STUDENT mohou být jméno studenta, adresa, datum narození apod. Každý atribut má opět své konkrétní výskyty. Každý výskyt entity by měl být identifikován hodnotou jednoho nebo několika atributů, kterým říkáme klíče. Každý student, který je výskytem entity STUDENT, může být identifikován hodnotou atributu rodné číslo, který se tak stane klíčem entity. Architektura databáze Je zpravidla založena na tříúrovní koncepci navržené americkou normou. Externí úroveň
Globální úroveň
Interní úroveň
Ta rozlišuje tzv. fyzickou úroveň (způsob fyzického uložení dat v databázi). Globální úroveň vymezuje strukturu dat v celé databázi a nezávisle na jejich fyzickém uložení. Globální úroveň obsahuje logické uspořádání dat tak, jak s nimi pracují všichni, kdo je využívají. Třetí úrovní je externí, která obsahuje překrývající se podmnožiny dat globální úrovně. Smyslem externí úrovně je poskytnout uživateli tu část databáze, kterou potřebuje. Existence externí úrovně přispívá i k ochraně dat před zneužitím, neboť uživatel nemá přístup k datům, která se netýkají jeho aplikace. Externí struktury se mohou vzájemně jakkoli překrývat. S externími strukturami pracují programátoři jednotlivých aplikací databázovacích jazyků i uživatelé. Globální struktura patří plně do kompetence správce databáze. Interní úroveň je zabezpečována spoluprací správce databáze a provozních specialistů, systémových programátorů. - 27 – Jiří Sitta © 2004
Informatika
verze 1.2
Relační databáze Je tvořena soustavou tabulek. Relace odpovídá určité entitě. Každá relace je tvořena sloupci neboli atributy a řádky neboli n-ticemi. V závislosti na něm se pak hovoří o relaci unární (má jeden sloupec), binární (se dvěma sloupci), ternární (tři sloupce) až n-ární (pro n sloupců). ČÍS_STUDENTA E95181 E95200 E95201 E95202 E95210
JMÉNO Jiří Novák Michaela Dušková Miroslav Drtina Radan Seidler Jan Neděla
ADRESA 703 00 Ostrava 3, Lesní 78 746 01 Opava, Ostrožná 10 735 01 Havířov 1, Nemocniční 5 704 00 Ostrava 3, Nová 234 701 21 Ostrava 1, Sokolská 33
V relačním systému opět jeden nebo několik atributů dohromady jednoznačně identifikuje řádky relace, nazývají se klíči. Hodnoty atributu formují tzv. domény. Obecně mohou být dva nebo více atributů definováno nad stejnou doménou. Tak třeba množina jmen studentů může být přiřazena jak k atributu JMÉNO znamenajícímu jméno studenta v relaci R, tak i k atributu JM_POJ vyjadřujícímu jméno pojištěnce zdravotního a sociálního pojištění v relaci S.
- 28 – Jiří Sitta © 2004
Informatika
verze 1.2
20. Informační systémy, jejich struktura a typy Pojem data znamená souhrn znaků, který je předmětem zpracování. Jako taková nemusí mít data pro zpracovatele žádný význam. Informace je vždy vztažena k určité činnosti a k určitému příjemci. Data, která jsou informací pro jednoho příjemce, nemusí být tímtéž pro jiného příjemce. Informační systém slouží k poskytování informací uživatelům, a to zpravidla ke dvěma základním účelům: • k naplňování informačních potřeb uživatelů • k podpoře jejich rozhodovacích činností Informační systém shromažďuje data jak z okolí, tak i zevnitř organizace a tato data zpracovává pro prezentaci jako informace uživateli, který je využije při rozhodování. Informační systém nemusí být založen na informační technologii. Moderní informační systémy jsou však s ohledem na rostoucí potřebu kvalitních a včasných informací pro rozhodování na informačních technologiích přímo založeny. Základní složky: • programové vybavení • hardware • databáze • uživatele Uživatel je aktivní složkou informačního systému, jeho informační potřeby jsou ostatními složkami zabezpečovány, on naplňuje příslušné databáze. Požadavky na funkčnost informačního systému Fungování vyžaduje podrobnější specifikaci požadavků, které z hlediska uživatele by měl informační systém obecně splňovat: Především by tento systém měl být: - spolehlivý - efektivně provozovatelný - pružně koncipovaný - udržovaný Pružnou koncepcí se zde rozumí schopnost rozvoje systému, snadného rozšiřování, modifikace jeho funkční v závislosti na měnícím se prostředí a budoucím vývoji. Efektivnost provozování je třeba chápat jako nákladovou přijatelnost ve vztahu ke spolehlivosti a včasnému zabezpečování požadavků uživatele. Informace produkované systémem, ať už jde o periodické předem definované výstupy nebo reakce na ad hoe dotazy, by měly být: • včasné (neaktuální informace má pro řízení jen okrajový význam) • relevantní, odpovídající skutečné potřebě organizace • přesné • ověřitelné pomocí řady kontrolních mechanismů • komplexní
- 29 – Jiří Sitta © 2004
Informatika
verze 1.2
Struktura a typy informačních systémů Struktura informačního systému Informační systém lze strukturovat do tzv. subsystémů. Každý subsystém lze dále zkoumat jako celek, lze jej tedy opět členit do subsystémů atd. Subsystémy mají své specifické vlastnosti a také cíle, které je odlišují od ostatních subsystémů. Existuje řada hledisek, podle kterých může být daný systém strukturován do subsystémů. Nejčastější je hledisko věcné a hledisko úrovní řízení. Věcné hledisko strukturuje informační systém podle tradičních oblastí věcného řízení, které je promítnuto do útvarové struktury (marketing a prodej, finance, výroba, účetnictví apod.) Každý z těchto subsystémů může být dále strukturován (marketing a prodej se dále člení na prognózu prodeje, přijaté objednávky, vyřizování reklamací apod.). Hledisko úrovní řízení vyjadřuje hierarchii řízení dané organizace. Může jít o členění do jednotlivých divizí nebo závodů, řízení provozů, řízení dílen. Podle této hierarchie může být informační systém členěn do analogických čtyř subsystémů. Další hlediska: - hledisko času - hledisko výrobkové
Typy informačních systémů Aktivní komponentou systému je člověk. Návrh každého informačního systému musí brát v úvahu potřeby, požadavky a také očekávání lidí při respektování jejich schopností, dovedností a znalostí. Tímto směrem musí být orientovány aplikace moderních informačních technologií. Jedná se o komunikace člověk-stroj, která je realizována tak, aby motivovala uživatele výpočetní techniky k jejímu využívání, aby byla adaptabilní k různým schopnostem uživatele, aby rozvíjela jeho sebevzdělávání. Z hlediska orientace na podporu různých stránek uživatelských aktivit se v dosavadním vývoji konstituovaly různé varianty informačních systémů. Označujeme je jako typy: • informační systém pro řízení (MIS) • informační systém pro vrcholové řízení (EIS) • informační systémy na podporu rozhodování (DSS) • strategické informační systémy (SIS) Nejde o zcela vzájemně odlišné systémy, v jednotlivých případech se jedná o zdůraznění určité orientace směrem k uživateli, ale principiálně jde vždy o informační systém dané organizace. Informační systém pro řízení se zaměřuje na zabezpečování informací pro potřebu řízení celé organizace. Zahrnuje zpracování dat, vytváření a využívání podnikových databází, poskytování podkladů pro řízení na všech jeho úrovních. Pracuje s dobře strukturovanými problémy.
- 30 – Jiří Sitta © 2004
Informatika
verze 1.2
Informační systém pro vrcholové řízení je úžeji orientován. Jeho základním cílem je poskytovat relevantní informace vrcholovému řízení organizace. Tomu je podřízena struktura systému. Informační systém na podporu rozhodování řeší i méně strukturované problémy, zaměřuje se však na podporu rozhodovacích procesů v organizaci. Strategický informační systém je vybudován za účelem úspěšné realizace podnikatelské strategie firmy. Není omezeno pouze zabezpečováním informační potřeby, zpracováním podkladů pro řízení, ale je definováno podnikatelským cílem.
- 31 – Jiří Sitta © 2004
Informatika
verze 1.2
21. Algoritmus, vlastnosti a metody zobrazení Algoritmus = posloupnost operací, která řeší daný úkol. Aby byl postup řešení opravdu algoritmem, musí mít minimálně následující vlastnosti: • •
•
Hromadnost. Algoritmus musí řešit danou úlohu pro různé vstupní hodnoty (nepočítá tedy třeba 1 + 2 = 3, ale X + Y = Z, kdy můžeme zadat libovolná čísla X a Y). Determinovanost (podmíněnost). Všechny operace i jejich návaznosti jsou jednoznačně určeny, nic nesmí být náhodné, neurčené. Důsledkem také je, že při stejných vstupních hodnotách dostaneme stejný výsledek při prvním běhu algoritmu i při stopadesátém. Rezultativnost (konečnost). Algoritmus musí celý proběhnout v konečném počtu kroků.
Základní pojmy: -
program = posloupnost příkazů popisující nějakou činnost proces = provádění programu (jednotlivých příkazů)
Zápis algoritmu, vývojový diagram Vývojový diagram je grafické znázornění jednotlivých příkazů, ze kterých se algoritmus skládá. K tomuto zápisu používáme normalizovaných značek.
Grafické značky: •
START
mezní značky
S
E
KONEC o pokud pracujeme s podprogramem, konečná mezní značka obsahuje „R“ (RETURN) •
spojení, orientace, napojení
•
vstup dat
•
blok přiřazení (zpracování dat)
•
výstup (tisk) dat
•
spojka
•
větvení (rozhodovací blok)
A, B P: = P+1
T: A,B
1
1
-
A=B
+
- 32 – Jiří Sitta © 2004
Informatika
verze 1.2
22. Rozhodovací tabulky Rozhodovací tabulka slouží k vyjádření algoritmu tabulkovou formou, její předností je přehledné řešení složitých rozhodovacích situací. Tvoří ji záhlaví a čtyři kvadranty. Záhlaví tabulky 1. kvadrant 2. kvadrant Seznam podmínek Volby podmínek 3. kvadrant 4. kvadrant Seznam činností Volby činností Záhlaví je tvořeno v levé části názvem tabulky a v pravé části jsou uvedena čísla pravidel tvořících sloupce procházející třetím a čtvrtým kvadrantem. 1. kvadrant obsahuje v jednotlivých řádcích veškeré podmínky obsažené v algoritmu. Ve 2. kvadrantu jsou všechny činnosti, které tvoří algoritmus a jejichž provedení je vyvoláno kombinacemi voleb určitých podmínek. Volby podmínek jsou obsahem 3. kvadrantu, konkrétně je v jednotlivých sloupcích pravidel pro každou podmínku uvedena buď jedna ze dvou voleb indikujících splnění či nesplnění podmínky nebo jedna z více voleb varianty splnění podmínky. 4. kvadrant pokračuje ve stejných sloupcích pro každou činnost určením voleb indikujících, zda a případně v jakém rozsahu se má tato činnost provést. Sestavení rozhodovací tabulky probíhá v následujících krocích: • vymezení všech podmínek • určení navazujících činností • formulace pravidel kombinací voleb podmínek s přiřazením voleb činností • prověření úplnosti tabulky Postup vyhodnocování rozhodovací tabulky je založen na logickém součinu voleb podmínek v pravidlech a na logickém součtu jednotlivých pravidel. Na pořadí pravidel ani podmínek v tabulce nezáleží. Vyhodnocování se provádí pravidlo po pravidle zleva doprava. Úplnost rozhodovacích tabulek Počet pravidel roste geometricky v závislosti na počtu podmínek. Po sestavení rozhodovací tabulky nastává problém prověření její úplnosti, tj. zjištění, zda jsou uvažovány všechny kombinace voleb podmínek, jinými slovy, zda jsou uvedena všechna pravidla. Prvním krokem je z tabulky vyloučit pravidla nadbytečná a pravidla rozporná. Postupuje se porovnáváním po dvojicích pravidel v celé tabulce. Po těchto úpravách se přikročí k prověření úplnosti tabulky.
- 33 – Jiří Sitta © 2004
Informatika
verze 1.2
23. Počítačové sítě, typy a topologie Definice pojmu síť - počítačovou síť tvoří dva nebo více počítačů, které jsou navzájem propojeny určitým fyzickým médiem. Počítače zapojené v takové síti mohou sdílet data a periferie.
Třídění sítí podle rozlehlosti LAN - je to lokální síť, jejíž prvky jsou rozmístěny v určitém ohraničeném objektu, např. na jednom patře, v jedné budově. Délky propojení se pohybují řádově kolem stovek metrů až po kilometry. Celá síť tak může být pod kontrolou jednoho zaměstnance - správce sítě. CAN - jde v podstatě o podmnožinu sítí LAN, které svým rozsahem přesahují rámec jedné budovy, ale neopustí pozemek majitele. MAN - je to síť v rozsahu jednoho města - řádově desítky kilometrů. Pracuje vysokou rychlostí (100 Mb/s). WAN - je to síť propojující uživatele v rámci rozsáhlé oblasti přesahující hranice měst a států. Její správa nemůže být věcí jednoho zaměstnance, ale např. správ spojů apod. Pod tímto pojmem se může skrývat i několik LAN sítí (Internet - desítky tisíc lokálních sítí) propojených na větší vzdálenosti
Rozdělení LAN Lokální počítačové sítě můžeme rozdělit do dvou kategorií podle způsobu uchování dat v síti: Sítě typu peer-to-peer V sítích typu peer-to-peer jsou data uchovávána na všech stanicích sítě, přičemž ostatní stanice k nim mohou přistupovat (mají-li to dovoleno). Z toho vyplývá, že každá stanice může být jak serverem tak pracovní stanicí a může na ní být připojena tzv. síťová tiskárna. Peer-to-peer by se dalo volně přeložit jako „rovný s rovným“, což potvrzuje fakt, že žádná ze stanic v síti není nijak privilegována. Výhody: Mezi její základní výhody patří to, že při budování takové sítě lze bez problémů využít stávající výpočetní techniku, což vede ke snížení celkových nákladů na výstavbu takové sítě. Nevýhodou je nižší rychlost oproti druhému typu sítí, náročné zajištění bezpečnosti sítě. Sítě typu client-server Sítě tohoto typu mají sdílená data a také ostatní sdílené periferie umístěny na jednom centrálním uzlu sítě (většinou nejvýkonnějším počítači celého systému) - nejčastěji na File serveru. Jednotliví uživatelé přistupují k těmto prostředkům jako klienti, z čehož plyne i označení sítě Mezi výhody takovéto sítě patří především jednoduchá správa dat a kvalitní zajištění bezpečnosti samotných dat i celé sítě. - 34 – Jiří Sitta © 2004
Informatika
verze 1.2
Hlavní nevýhodou sítí client-serveru je skutečnost, že při jakémkoliv výpadku serveru, není síť schopná dále pracovat a nabízet své služby.
Topologie Sběrnicová topologie Tato topologie patří mezi nejjednodušší a také nejčastěji používanou. V podstatě se jedná o dlouhý celistvý kabel, ke kterému jsou vhodně připojeny jednotlivé uzly, ukončený na obou stranách pomocí terminátorů. TERMINÁTOR
U
U
U
U
U
U
Výhodou této topologie je to, že při poruše kterékoliv stanice je síť dál v provozu a dále velmi jednoduché připojování nových uzlů. Nevýhoda plyne z uspořádání - přerušení kabelu vede k nefunkčnosti celé sítě. Sběrnicová topologie se používá pro sítě, u nichž je požadována komunikace každého uzlu s každým a je typická pro sítě typu Ethernet. Kruhová topologie Jednotlivé uzly této topologie jsou propojeny do kruhu a informace putují tímto kruhem ve zvoleném směru přes jednotlivé uzly až k adresátovi.
U
U
U
U
Při tomto uspořádání lze používat vyšší přenosové rychlosti, více uzlů zapojených v síti. Podstatnou nevýhodou je vysoká cena síťových desek, které jsou elektronicky komplikované.
Hvězdicová topologie
U U
HUB
Středem této topologie koncentrátor (hub - anglicky střed loukoťového kola), ke kterému jsou jednotlivé uzly připojeny. Zprávy jsou ze všech stanic posílány na koncentrátor a ten pak otevře logickou cestu k příslušné stanici, pro kterou je U zpráva určena. Stanice jsou většinou ke koncentrátoru připojeny pomocí zdvojeného kabelu (např. dvojitá kroucená dvoulinka).
Výhodou je necitlivost na přerušení spojení mezi jedním uzlem a koncentrátorem - nijak neovlivní činnost dalších stanic. Další výhodou jsou nižší náklady na síťové kabely. Nevýhod této topologie je více: porucha koncentrátoru vede ke kolapsu celé sítě, vysoká cena koncentrátoru, nižší odolnost dvoulinky vůči rušení.
U
- 35 – Jiří Sitta © 2004
Informatika
verze 1.2
Struktura hvězdicový kruh U
U K
U
KONCENTRÁTOR
U
K
K
U
Tato topologie vzniká kombinací hvězdy a kruhu. Jednotlivé uzly jsou připojeny ke koncentrátorům jako ve hvězdě a koncentrátory jsou mezi sebou propojeny kruhovou strukturou. Tato topologie v sobě spojuje U výhody obou dílčích struktur: spolehlivost, rekonfigurovatelnost. Tuto topologii požívají sítě typu U Token Ring.
K U
U
U
Stromová struktura
U
U
U
R
R
U
U
Tato modifikace vychází z hvězdicové topologie a je tvořena několika vzájemně propojenými hvězdami, jejichž centrální uzly (rozvětvovače) jsou U propojeny. Stromovou topologii používají sítě typu ROZVĚTVOVAČ ARCNET.
Polygonální topologie U U
U
V tomto případě je každý uzel propojen s každým (označuje se také jako přímé propojení). Za cenu vysokých nákladů na síťová vedení (počet kabelů pro n stanic = n*(n-1)) je dosaženo nejvyšší U výkonnosti počítačové sítě. U
U
- 36 – Jiří Sitta © 2004
Informatika
verze 1.2
24. Distribuované zpracování a informační služby Distribuované zpracování Vedle centralizovaného zpracování realizovaného jedním centrálním počítačem s případnou sítí terminálů, je distribuované zpracování založeno na počítačové síti. Distribuovaným však není jakékoliv decentralizované zpracování v síti, u plně distribuovaného zpracování jsou veškeré funkce zpracování dat, uložení dat i řízení rozptýleny mezi uzly sítě. Pro uživatele se tento systém jeví jako jednoprocesorový. Počítačová síť musí být vybavena vhodným OS, aby na ni mohlo být realizováno distribuované zpracování. Obsah distribuce • hardware (procesory, vnitřní i vnější paměť) – je v tomto případě řešen prostřednictvím počítačové sítě. • data – data bývají uložena v místě nejčastějšího zpracování, snižuje se tak objem dat, přenášených sítí a je to bezpečnější než jejich uložení na jednom místě. • řízení – může být rozděleno mezi jednotlivé prvky sítě, • zpracování – funkce zpracování jsou rozděleny v síti (např. tisk je realizován specializovaným uzlem – tiskovým serverem). Cíle distribuovaného zpracování a) vytvořit technologické předpoklady pro realizaci IS b) zvýšení výkonu počítačového systému rozdělením jeho funkcí do míst zpracování c) snadná rozšiřitelnost systému d) zvýšení spolehlivosti systému e) sdílení zdrojů (např. výkonných počítačů aj.) Realizace distribuovaného zpracování vyžaduje nároky, zejména potřebu náročnějšího komunikačního systému, řešení hardwarových softwarových prostředků, ochrana sdílení dat a jejich integrity. Samotný projekt i organizační zabezpečení distribuovaného zpracování je oproti centralizovanému náročnější, to ovšem )úzce souvisí s náročnější koncepci informačního systému jako celku.
Informační služby Prostřednictvím zejména globálních počítačových sítí je realizována řada informačních služeb spočívajících ve zpřístupnění pro uživatele databází informací z nejrůznějších oblastí života. Systém elektronické pošty je základní informační služkou, která dovoluje efektivně posílat zprávy libovolným adresátům připojeným na síť. Zprávy lze archivovat, prohlížet, je možné připojit soubor a ověřit přijetí zprávy. Každý uživatel má svou vlastní poštovní schránku, k níž je vztažená adresa složená z jména a označení uzlu a státu (např. [email protected]) Další službou je World-Wide Web. Tato služba je založena na hypertextovém principu, tj. na hierarchickém strukturování textu, v němž zvýrazněná slova představují odkaz na text „další úrovně“. Přístup ke stránkám webu lze realizovat na základě znalosti příslušné adresy
- 37 – Jiří Sitta © 2004
Informatika
verze 1.2
(např. http://ws.vsb.cz). Potřebné informace lze získat využitím programu prohlížeče (Netscape Navigátor nebo IE). Při vyhledávání informací z databází slouží programy vyhledávacích služeb (např. AltaVista, Yahoo, Seznam). Obvykle obsahují dotazovací mechanizmus a seznamy stránek uspořádaných o běžných problémových kategorií. Některé služby hledají zadaný řetězec znaků (klíčové slovo) v titulcích stránek, jiné v celém textu (tzv. fulltextové služby). V současné době se dynamicky rozvíjí komerční využití řady informačních služeb, například nabídka zboží s možností jeho elektronického objednání a úhrady.
- 38 – Jiří Sitta © 2004
Informatika
verze 1.2
25. Deklarace proměnných, vět a procedur v Pascalu Program je tvořen moduly, které se člení do bloků. Struktura bloku: • deklarační část • příkazová část
Deklarace proměnných Formát: var ident1 [,ident2 …]: typ; Typ může být předem deklarován nebo je předdefinovaný. Deklarace typu: type ident1=typ1; [ident2=typ2;…] Příklad: type cislo=integer; var rocnik,stipendium,rok,znamka: cislo; prumer: real; Třídy Typů 1. Jednoduchý a. Ordinální i. Celočíselný ii. Znakový iii. Intervalový b. Reálný 2. Řetězcový 3. Strukturovaný a. Pole b. Věta c. Soubor
Předdefinované typy Jednoduchý typ a) celočíselný a. integer (2 byty) b. longint (4 byty) c. shortint (1 byty) b) znakový a. char c) typ interval – Formát: konstanta1 … konstanta2 d) reálný typ: a. real (6 bytů) b. single (4 byty) c. double (8 bytů)
- 39 – Jiří Sitta © 2004
Informatika
verze 1.2
Řetězový typ Formát: string[(. Délka.)]; Příklady: var prijmeni,jmeno: string[25]; rocnik: integer; plat: longint; Strukturovaný typ Typ pole Formát: array (.Typ indexů.) of typ prvků; Příklad: var suma: array[1..10] of real; tabulka: array[1..5,1..8] of integer; Typ věta Formát: record [ident1[,ident2 …]:typ1;]… end; Příklad: type veta=record cislo:integer; jmeno:string[25]; prijmení:string[30]; plat:longint; adresa:string[50]; end; var zaznam:veta; Typ soubor Formát: file [of typ-věty]; Příklad: var soubor: file of veta; Předdefinovaný typ je text – definuje textový soubor
Příkazová část bloku Výrazy jsou tvořeny operátory a operandy. Priorita operátorů: 1. NOT 2. *, /, DIV, AND, MOD 3. +, -, OR 4. =, <>, <, >, <=, >= - 40 – Jiří Sitta © 2004
Informatika
verze 1.2
Prioritu lze upravit kulatými závorkami. Operátory: aritmetické, booleovské, řetězcové (+), relační Aritmetické operátory Operátor +, -, * +, -, * / Div, Mod
Operandy Oba celočíselné Nejsou oba celočíselné Celočíselné, reálné Oba celočíselné
Výsledek Celočíselný Reálný Reálný Celočíselný
Příkazy: • jednoduché – přiřazovací příkaz, příkaz volání procedury, skokový příkaz • strukturované – složený příkaz (begin … end), příkazy pro větvení programu, zpracování syklů Jednoduché příkazy 1) Přiřazovací příkaz – Ident:=výraz, Hodnota výrazu je přirazena identifikátoru. Mezi výrazem a typem proměnné musí být kompatibilita pro přiřazení. 2) Skokový příkaz – goto návěští1, předání řízení na příkaz označení návěštím1. 3) Příkaz procedury – vyvolá se procedura označená ident-procedury s předáním skutečných parametrů (uvedených v seznamu) formálním parametrům obsaženým v definici procedury.
Standardní procedury a funkce Jsou produkovány standardními moduly jako: Systém, Crt, Graf, Printer aj. Modul Systém je připojen automaticky, není jej nutné deklarovat klausulí USES, zahrnuje procedury pro vstup a výstup dat.
Procedura READ Formát: read ([soub,]ident1[,ident2…]); Členění vstupních dat ze souboru (nebo klávesnice) do proměnných ident1, ident2, atd. Je-li proměnná celočíselného nebo reálného typu, čte se posloupnost znaků až do nalezení prvního prázdného znaku, tabulátoru nebo znaku eoln (end of line) a hodnota se přiřadí proměnné. Další uplatnění read začíná od prázdného znaku, tabulátoru či eoln, který ukončil předchozí hodnotu. U řetězcových proměnných se čte posloupnost znaků až do nalezení eoln, který je čten následujícím read (nepřechází na další řádek) a do další řetězcové proměnné se přiřadí prázdný řetězec. Je tedy nutno použít proceduru readln. Procedura READLN Formát: readln ([soub,]ident1 [,ident2…]); Procedura je stejná jako read, ale s následným přechodem na začátek nového řádku. Procedura WRITE Formát: write ([soub,]param1 [,param2…]);
- 41 – Jiří Sitta © 2004
Informatika
verze 1.2
Zápis jedné nebo několika hodnot do souboru (nebo na obrazovku). Parametr má tvar: výraz [:délka,[:počet-desetin-míst]] Délka udává minimální počet znaků, na které se zobrazí hodnota výrazu. Není-li uvedena, nebo potřebuje-li hodnota větší počet znaků, zobrazí se potřebný počet míst. Je-li výraz reálného typu se zadaným počtem desetinných míst, výstup je v desetinném tvaru, jinak je ve tvaru semilogaritmickém. Procedura WRITELN Formát: writeln ([soub,]param1 [,param2…]); Procedura je stejná jako write, navíc se do výstupního souboru zapíše znak eoln. Na obrazovce se provede posun na nový řádek. Funkce EOF Formát: eof [(soub)]; Pouze, pokud budeme pracovat se souborem. Slouží pro testování konce souboru. Poskytuje funkční hodnotu booleovského typu. Je TRUE, je-li soubor nastaven na pozici za posledním znakem. Procedura ASSIGN Formát: assign (soub, externí-jméno); Přiřazení externího jména souboru SOUB. Tvar externího jména: zařízení:\cesta\jméno souboru. Příklad: assign (soubor,‘student.dat‘); Procedury RESET, REWRITE, APPEND Formát: reset (soub); rewrite (soub); append (soub); RESET – otevření existujícího souboru pro čtení, soubor se nastaví na začátek. REWRITE – otevření souboru pro zápis, soubor se nastaví na začátek, existuje-li soubor stejného jména, přepíše se. APPEND – otevření textového souboru pro pokračování v zápise, soubor se nastaví na konec. Procedura CLOSE Formát: close (soub); Uzavření otevřeného souboru.
- 42 – Jiří Sitta © 2004
Informatika
verze 1.2
26. Cykly a větvení programů v Pascalu Strukturované příkazy Složený příkaz Specifikuje posloupnost příkazů, které se provedou v zapsaném pořadí. Složený příkaz lze uvést všude tam, kde Pascal připouští pouze uvedení jednoho příkazu. Formát: Begin Příkaz1; Příkaz2; End; Podmíněný příkaz IF Příkaz IF realizuje větvení algoritmu v závislosti na vyhodnocení podmínky. Výraz musí poskytovat výsledek booleovského typu; nabývá-li hodnoty True, provede se příkaz 1, v případě hodnoty False a přítomnosti části else se provede 2. Příkaz před else nesmí končit středníkem. Formát: If výraz then Příkaz Else Příkaz; Podmíněný příkaz CASE Výraz (selektor) musí být ordinálního typu, konstanty musí být navzájem různé a kompatibilního typu s typem selektoru. Příkaz 1 se provede, jestliže hodnota selektoru se rovná nebo je v intervalu konst1, konst2 atd. Jestliže hodnota selektoru se nerovná (nebo není v intervalu) žádné z uvedených konstant, provede se příkaz v části else. Formát: Case výraz of konst1: příkaz1; . . . konst4: příkaz 4 end; Příkaz cyklu REPEAT Realizuje opakování sekvence příkazů s testem na konci. Výraz musí být booleovského typu. Cyklus (příkaz1, příkaz2 …) se opakuje, dokud hodnota výrazu je false. Jakmile je hodnota výrazu True, cyklus končí. Cyklus se provede nejméně jednou. Formát: Repead Příkaz1; Příkaz2; - 43 – Jiří Sitta © 2004
Informatika
verze 1.2
Until výraz; Příkaz cyklu WHILE Příkaz se opakuje, dokud výraz je true. Jakmile je hodnota výrazu false, zpracování cyklu se ukončí (cyklus se nemusí provést ani jednou). Výraz musí být booleovského typu. Formát: While výraz do příkaz; Příkaz cyklu FOR Opakované provádění příkazu předem známým počtem opakování nezávislým na tomto příkazu. Formát: For ident:=výraz to výraz2 do příkaz; For ident:=výraz downto výraz2 do příkaz; ident- identifikátor řídící proměnné cyklu, je ordinálního typu Výraz1 – počáteční hodnota identifikátoru ident Výraz2 – koncová hodnota Ireny To – zvýšení ident o 1 Downto – snížení Ireny o 1
- 44 – Jiří Sitta © 2004
Informatika
verze 1.2
27. Relace, atributy, klíče v Microsoft Access Databázový systém ACCESS Access je relační databázový systém. Relační databáze je z pohledu uživatele tvořena řadou tabulek. Základním pojmem je zde tabulka neboli relace (ralation), která zobrazuje určitou entitu (např. student, předmět aj.). Objekty: • Tabulka • Dotaz • Formulář • Sestava • Makro • Modul procedur Vytvoření databáze Nabídka Soubor / Nová databáze, v dialogovém okně se vybere Prázdná databáze, zadá se jméno nové databáze a domáčkne tlačítko vytvořit, čímž se zobrazí okno databáze (Je možné vytvořit databázi pomocí Průvodce, který nabízí již specifikované tabulky a vztahy mezi nimi). Okno databáze Obsahuje tři funkční tlačítka: 1. Nový definování nového objektu, např. struktury tabulky 2. Otevřít otevření a prohlížení existujícího objektu, např. obsahu tabulky 3. Návrh modifikace existujícího objektu Úpravy v okně databáze Forma zobrazení seznamu objektů se dá upravit tlačítky umístěnými v panelu, takže můžeme volit: • použití velkých ikon • použití malých ikon • seznam objektů • podrobný seznam objektů Je-li objekt aktivován myší, pak pravým tlačítkem myši se zobrazí volby pro přejmenování objektu, kopírování objektu, vypuštění objektu nebo přidání popisu volbou vlastnosti. Definování databázových položek (polí) V okně databáze volba Nový (při aktivizaci ouška tabulky) a dále volbou návrhové zobrazení. Jména polí jsou maximálně na 64 libovolných znaků. Pro možné použití Visual Basicu doporučuje se použit 40 znaků, nepoužívat mezery a znaky s diakritikou. Typy polí: • Text • Číslo (number)
Obsah, délka: 1 – 255 libovolných znaků číslice, znaménko, desetinná značka
- 45 – Jiří Sitta © 2004
Informatika
• • • • • •
verze 1.2
Byte (1), celé číslo – Integer (2), dlouhé celé číslo – Long Integer (4), jednoduchá přesnost – Single (4), dvojnásobná přesnost – Double (8) – v závorce jsou délky v bytech Poznámka (memo) až 64 000 libovolných znaků Datum/čas dny nebo hodiny, délka 8 bytů Měna peněžní hodnoty, délka 8 bytů Automatické číslo generována číselná hodnota s krokem 1, délka 4 až 16 bytů Logický typ Ano/Ne True/False nebo Yes/No nebo On/Off nebo 1/0 Objekt OLE obrázky, grafy enbo jiné objekty z jiných aplikací – až 1GB
Definování tabulek • • •
v okně databáze se aktivuje objekt tabulka, odmáčkne se tlačítko Nový v okně nová tabulka se zvolí návrhové zobrazení definuje se struktura tabulky specifikací jednotlivých polí uvedením jejich jména, typu případně popisu. Ve spodní části okna lze nastavit další vlastnosti pro dané pole.
Definování vlastností pole (ouško obecné): - velikost pole (max. počet znaků) - formát - počet desetinných míst - vstupní maska (předloha pro vstup) - titulek (název pole pro formulář) - výchozí hodnota - ověřovací pravidlo - ověřovací text (specifikuje chybové hlášky) - je nutno zadat (hodnota pole je vyžadována) - povolit nulovou délku - indexovat (vytvoření indexu k hodnotám pole pro přímý přístup) - nové hodnoty (specifikace přírůstku pro typ automatické číslo) Pokud příslušná pole je primárním klíčem tabulky, zvolíme nabídku Úpravy/Primární klíč při definici pole. Řádek definice pole před volbou primárního klíče označíme myší (kliknutím vlevo).
Formáty zobrazení Existují standardní formáty a uživatelské formáty. Formáty nemají vliv pro vstup dat, slouží pouze pro zobrazování dat. U číselných polí lze použít 4 formáty oddělené středníkem tzv. SEKCE. První je kladnou hodnotou pole, druhá pro zápornou, třetí pro nulovou hodnotu a čtvrtá pro prázdnou položku. U znakových typů jsou sekce dvě: první pro pole s textem, druhá pro prázdnou položku. Vstupní maska = slouží jako předloha pro vstup dat, lze ji použít i pro nezobrazování vstupních znaků.
Definování vztahů (relationships) mezi tabulkami Mezi základní vlastnosti databázových systémů patří integrita databáze. Mezi tabulkami existují vztahy, např. objednávka je vyplněna určitým zákazníkem, objednávka má - 46 – Jiří Sitta © 2004
Informatika
verze 1.2
několik položek. Vztah u relačních databází je nejčastěji zajištěn přidáním primárního klíče jedné tabulky jako pole do jiné tabulky. Např. přidáním čísla zákazník k tabulce Objednávka je řešen vztah mezi objednávkou a zákazníkem, který objednávku vystavil. Pro zajištění tohoto vztahu nestačí pouze přidat do struktury tabulky Objednávka pole číslo zákazníka, ale zajistit referenční integritu. To znamená, že v tabulce objednávka nesmí být uvedeno číslo zákazníka, který neexistuje v tabulce zákazník. Pro zajištění této integrity lze použít Lookup tabulku (seznam přípustných hodnot) a dále definovat vztahy mezi tabulkami grafickou formou. Postup při definování vztahů: • Výběr tabulek pro definování vztahu mezi nimi se provede volbou Nástroje / relace / zobrazit tabulku / přidat tabulku • Definování vazby se provede myší. Uchopí se primární klíč jedné tabulky a přetáhne se na odpovídající pole druhé tabulky (sekundární klíč). V dialogovém okně Relace se zadá, zda chceme zajistit referenční integritu a zda se mají zahrnout do tabulek pouze záznamy se stejnými hodnotami odpovídajících si polí. Při zavedení referenční integrity Access nepovolí vložení nebo aktualizaci záznamu tabulky tak, aby neexistovala vazby na záznam tabulky. • Zrušení vztahu se provede aktivaci vztahu myší a stiskem klávesy Del. Obdobně se ze vztahu vymaže tabulka. Definování vztahů mezi tabulkami slouží především pro zajištění integrity dat a automatickém zajištění vazby při dalším použití tabulek jako je definování dotazů.
- 47 – Jiří Sitta © 2004
Informatika
verze 1.2
28. Vytvoření, naplňování a aktualizace tabulek v Microsoft Access Využití dotazu pro aktualizaci dat a vytvoření nové tabulky Vytvoření nové tabulky v režimu dotazu. Vytvoří se výběrový dotaz na tabulky, jejíchž pole se použijí pro vytvoření nové tabulky. Dále se vybere volba Dotaz / Vytvářecí dotaz, kde v dialogovém okně se zadá název nové tabulky. V dotazovacím formuláři se zvolí pole, která se mají vložit do nové tabulky a mohou se zadat výběrová kritéria pro výběr řádků do nové tabulky. Přidání záznamů do existující tabulky z jiné tabulky. Vytvoří se výběrový dotaz na tabulku, ze které se budou záznamy vybírat. Z nabídky Dotaz se vybere volba Přidávací dotaz a v dialogovém okně se zadá jméno existující tabulky, kam budou řádky vloženy. Do dotazovacího formuláře je přidán řádek Přidat, kde se uvádí názvy polí cílové tabulky. Vypouštění řádků na základě podmínky. Vytvoří se výběrový dotaz na tabulku, ze které se mají řádky vypustit. Z nabídky Dotaz se vybere volba Odstraňovací dotaz a v dotazovacím formuláři se uvede výběrové kritérium pro vypuštění řádků. Aktualizace hodnot polí záznamů, které splňují zadané kritérium. Vytvoří se dotaz na tabulku. Z nabídky Dotaz se vybere volba Aktualizační dotaz. Do dotazovacího formuláře je přidán řádek Aktualizovat, do nějž se vloží výraz pro změnu hodnoty pole pro záznamy, které odpovídají zadanému výběrovému kritériu.
- 48 – Jiří Sitta © 2004
Informatika
verze 1.2
29. Dotazy v Microsoft Access (QBE) Microsoft Access používá metody Query by Example pro definování výběrových kritérií. Režim tvorby dotazu aktivujeme volbou Vložit -> Dotaz a Návrhové zobrazení. Přidáme z nabízených tabulek příslušnou tabulku. Okno dotazu má dvě části: v horní části je uvedena tabulka se jmény polí, v dolní části je formulář pro zadávání dotazu (mřížka QBE), každý sloupec se váže k poli nebo výrazu. V řádcích je uvedeno: jméno pole (výraz), název tabulky, řazení dat, požadavek na zobrazení dat, výběrové kritérium, slovo pro zadání kritéria, pokud nemají podmínky ve sloupcích platit současně. Při definování dotazu v QBE mřížce se provede: • výběr polí, která se budou jako výsledek dotazu zobrazovat – řádek pole • zadají se výběrová kritéria pro výběr řádků tabulky – řádek kritéria • nemají-li výběrová kritéria platit současně, zadají se do řádku nebo • zadá se způsob řazení vybraných řádků (vzestupně, sestupně, neřadit) – řádek řadit • požadavek na zobrazení dat je implicitně označen – řádek zobrazit Spuštění dotazu je ikonou!! V panelu nebo nabídka Dotaz volba Spustit. Uložení dotazu je nabídkou File -> Save. Ve formuláři pro zadávání dotazu lze zadávat výrazy, které mohou obsahovat dále uvedené operátory: • aritmetické: +, - , * , / , \ (celočíselné dělení), ˆ (umocňování), & (spojení řetězců) • relační: =, <, >, <>, <=, >=, Like (porovnání řetězců, který se uvede za Like), In (v seznamu hodnot), Is Null, Between…And • logické operátory: Not, And, Or, Xor Znaky * (nahrazuje libovolnou posloupnost znaků) a ? (nahrazuje 1 libovolný znak) lze použít pouze u operátoru Like pro textová a datumová pole. V řádku pole lze rovněž uvést výraz, ve kterém názvy polí se uvádějí v hranatých závorkách (např. [cena] * [množství]). Pro definování výrazu lze použít Tvůrce výrazu, který zavoláme pomocí pravého tlačítka myši a volba Sestavit.
Dotazy z více tabulek V režimu návrhu se přidá další tabulka, nabídka dotaz / zobrazit tabulku, tlačítko Přidat tabulku. Mezi tabulkami musí existovat vazby buď již definované nebo se specifikují volbou Relace z nabídky Nástroje. Spojení tabulek může být vnitřní (u Access tzv. přímá vazba), kdy se vybírají pouze řádky se stejnou hodnotu pole, které určuje spojení. Vnější spojení (u Access tzv. krajní vazba) probíhá tak, že z jedné tabulky /určí se volbou Vlastnosti spojení) se vyberou všechny její řádky a z druhé tabulky jen řádky se stejnou hodnotou odpovídajícího pole. Je možné provést spojení stejných tabulek (zrcadlová vazba) tím, že se vytvoří kopie dané tabulky a propojí se.
- 49 – Jiří Sitta © 2004
Informatika
verze 1.2
Do výběrového kritéria lze uvést i jméno pole. Pro dotaz lze provést spojení přes více spojovacích polí. Pro zobrazování vybraných dat lze pro pole určit formát zobrazování (pravé tlačítko myši, volba Vlastnosti / Formát).
Použití sumárních operátorů Dotazovací formulář (QBE mřížka) umožňuje sumární operace se skupinami záznamů definováním souhrnných dotazů. V těchto dotazech se používají sumární operátory. Sumářní (statistické) operátory: Operátor Význam Datový typ Avg Průměr Číselný, datumový, logický Sum Součet Číselný, datumový, logický Min Minimum Číselný, datumový, logický Max Maximum Číselný, datumový, logický Count Počet Všechny typy First Hodnota v 1. řádku Všechny typy Last Hodnota v posledním řádku Všechny typy
Definování souhrnného dotazu V nabídce Zobrazit se vybere volba Souhrny, v dotazovacím formuláři se zobrazí řádek Souhrn, pokud se provádějí sumární operace za celou tabulku, uvede se v sloupci zvoleného pole v řádku. Souhrn příslušný sumární operátor, který se vybere z nabízeného seznamu. Provádí-li se sumární operace za skupinu záznamů se stejnou hodnotou určitého pole, musí se určit pole pro seskupování tím, že v řádku Souhrn u daného pole se nevybere sumární operátor, ale slovo Seskupit, v dalších sloupcích se uvedou sumární operátory pro výpočet za skupinu. Např. u tabulky Studen se provede seskupení na Obor studia a u sloupce Číslo studenta se uvede v řádku Souhrn sumární operátor Count. Tím se zobrazí počty studentů za jednotlivé obory.U těchto dotazů lze rovněž zadat výběrové kritérium, které se váže k součtům za skupinu. Např. chceme zobrazit jen ty odbory, kde studuje více jak sto studentů, přidáme do řádku Kritéria podmínku > 100 u pole Číslo studenta. Názvy sloupců u výsledné tabulky je možné zadat pomocí pravého tlačítka myší volbou Vlastnosti / Titulek u příslušného sloupce.
- 50 – Jiří Sitta © 2004