PROCESOR RELAČNÍ ALGEBRY
|
|
- Nikola Urbanová
- před 5 lety
- Počet zobrazení:
Transkript
1 Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Databázové a informační systémy PROCESOR RELAČNÍ ALGEBRY Petr Lukáš (luk194) Ostrava
2 OBSAH Zadání úlohy... 3 Rozbor zadání... 3 Jazyk SQL... 3 Vlastnosti jazyka SQL... 4 Příkaz SELECT rozbor syntaxe... 4 Výběr seznamu sloupců... 5 Seznam zdrojových tabulek... 5 Omezující podmínka... 7 Seskupení a agregační funkce... 7 Podmínka skupiny... 8 Setřízení... 8 Další možnosti příkazu select... 9 Omezení duplicit... 9 Výběr prvních n záznamů... 9 Množinové operace... 9 Relační algebra... 9 Operátory RA Množinové operátory Způspoby zápisu relační algeby Lineární zápis (materiály VŠB teorie zpracování dat) Stromové zobrazení relační algebry Převod jazyka SQL na relační algebru Rozdíly SQL oproti RA Převod na RA Příklady převodu Implementace překladače Lexikální analýza Syntaktická analýza Překlad na relační algebru Vizualizace metodou Paint Lineární zápis Výsledek implementace Závěr Literatura /23
3 ZADÁNÍ ÚLOHY Naimplementujte procesor, který převede SQL dotaz na výraz relační algebry. Zaměřte se pouze na některé základní rysy SQL. Implementaci otestujte. ROZBOR ZADÁNÍ Tato úloha spadá jak do kategorie databázových systémů, tak do kategorie programovacích jazyků a překladačů. Cílem je sestrojit program překladač, který bude umět přeložit SQL dotaz na zápis v jazyce relační algebry a případně vymezit takové podmínky, za jakých bude výsledek dosažitelný a správný. Abychom mohli implementaci provést, je nutné nejprve rozebrat oba jazyky relační algebru (RA) a Structured Query Language (SQL), popsat rozdíly mezi nimi a poté navrhnout, naimplementovat a otestovat algoritmus převodu. JAZYK SQL Jako obvykle, na úvod trochu historie. První implementace vznikla v laboratořích světoznámé firmy IBM na začátku 70. let a postarali se o ni Andrew Richardson, Donald C. Messerly a Raymond F. Boyce. Původně byl jazyk pojmenován SEQUEL nebo SEQL jako zkratka Structured English QUEry Language. Vzhledem k tomu, že název SEQUEL byla registrovaná obchodní značka, změnil se název na SQL Structured Query Language, který je používán dodnes. Cílem jazyka bylo, a stále samozřejmě je, poskytnout standardizovaný způsob přístupu k datům uloženým v databázi. Jazyk SQL není závislý na jazyce, ve kterém je implementovaná samotná aplikace, je to velmi mocný a přitom jednoduchý jazyk. Syntaxe vychází z přirozené formulace vět v angličtině, avšak jako všechny programovací jazyky, i tento má svou strukturu danou přesně definovanou gramatikou. Jak již bylo řečeno, sám o sobě nám SQL nestačí, slouží pouze jako jakási mezivrstva mezi daty a aplikací. Visual Basic Delphi C++ Java SQL Databáze Jedná se o jazyk deklarativní, to znamená, že popisujeme, co chceme, ale nezajímá nás, jak se daná operace provede. Toto je jeden z důležitých rysů, kterým se odlišuje od relační algebry. Rozdíly v principech obou jazyků budou vysvětleny později. V 80. letech začal vývoj tohoto nástroje nabírat na rychlosti. Na scéně se objevuje např. Oracle a díky konkurenci jednotlivé implementace přicházejí s novými možnostmi. Proto je nutno stanovit přesná pravidla. V roce 1987 ISO a ANSI publikují počáteční standard SQL, v roce 1989 ISO publikuje dodatek Integrity Enhancement Feature a začíná se hovořit o SQL89. V roce 1992 dochází k první úpravě tohoto ISO standardu, který je pak znám jako SQL2 nebo SQL92. 3/23
4 V současné době používá SQL drtivá většina databázových systému. Jedná se např. o již zmiňovaný Oracle, dále MySQL, MS SQL, MS Access a další. Konkrétní nástroje si SQL přizpůsobují svým účelům, avšak myšlenka a základní principy syntaxe zůstávají stejné. VLASTNOSTI JAZYKA SQL Jak již bylo uvedeno, SQL pracuje s relační databází. Relační databáze je množina tabulek, kde každá tabulka charakterizuje nějakou entitu. V typické relační databázi se můžeme setkat s tabulkami např. Zaměstnanci, Faktury, Sklad, Položka atd. Sloupce v tabulkách určují vlastnosti, tzn. např. u Zaměstnance můžeme evidovat jeho jméno, příjmení, rodné číslo a další. Řádky relační databáze pak charakterizují konkrétní objekt, přesně řečeno instanci entity, řádek se z pravidla označuje jako záznam. V rámci databázových technologií rozdělujeme jazyky pro práci s daty na tři kategorie: - Jazyky pro dotazování (DQL Data Query Language) - Jazyky pro definici dat (DDL Data Definition Language) - Jazyky pro manipulaci s daty (DML Data Manipulation Language) Jazyky pro dotazování jsou pro tuto práci nejdůležitější. Ve spojitosti s SQL se jedná přímo o příkaz SELECT. Dotaz znamená, že se žádáme databázi o data podle určitých kritérií. Například potřebujeme zjistit údaje o platu nějakého konkrétního zaměstnance, nebo si potřebujeme vyjet tržby za daný měsíc. Jazyk pro definici dat slouží k nadefinování struktury databáze. Tím se rozumí definice entitních typů a jejich atributů. Zjednodušeně řečeno, potřebujeme vytvořit tabulky a nadefinovat jim sloupce. Definicí dat se také rozumí odstranění tabulek (ne obsahu, ale celých tabulek) nebo úprava sloupců. Jazyky pro manipulaci dat mění obsah tabulek. Jedná se zpravidla o operace vložení řádků a úprava nebo odstranění řádků. SQL pokrývá všechny tři uvedené kategorie, ale pro převod dotazu SQL na RA se budeme dále zabývat pouze jazyky pro dotazování. Důležité je také poznamenat, že jazyk SQL není Case-sensitive, tzn. nerozlišuje velikost písmen, pokud samozřejmě nejde přímo o textový řetězec. Je dobrým zvykem psát veškerá klíčová slova velkými písmeny. O jazyce SQL bylo napsáno mnoho knih a tato práce neslouží jako učebnice SQL. Pro naše potřeby bude nutné popsat pouze funkci příkazu SELECT a hlavně vystihnout všechny možnosti zápisu, které podporuje, protože na základě takových informací pak bude sestavena gramatika SQL, to znamená přesný způsob zápisu. PŘÍKAZ SELECT ROZBOR SYNTAXE Příkaz SELECT je vstupní bránou ke všem datům, které chceme z databáze získat. Základní syntaxe příkazu vypadá takto: SELECT seznam sloupců FROM seznam tabulek a popis vazeb mezi nimi WHERE omezující podmínka, podle které vybíráme řádky GROUP BY seznam sloupců, podle kterých vytváříme skupiny HAVING podmínka seskupených záznamů ORDER BY seznam sloupců, podle kterých chceme vybrané záznamy setřídit 4/23
5 VÝBĚR SEZNAMU SLOUPCŮ Za klíčovým slovem SELECT následuje seznam sloupců, které chceme dotazem vybrat. Položky oddělujeme čárkami. Pokud chceme vybrat všechny možné sloupce, stačí napsat *. Kromě názvů samotných sloupců se v této části mohou objevit i výrazy a agregační funkce. Vybíráme-li z více tabulek a dojde ke shodě názvu sloupců, můžeme sloupec přesně specifikovat jako tabulka.sloupec. Pokud chceme vybrat všechny sloupce pouze z určité tabulky, stačí napsat tabulka.*. Vybraný sloupec nebo výraz můžeme pro přehlednost přejmenovat tak, že za něj uvedeme alias. Za SELECTem se tedy může objevit například něco takového: SELECT Zamestnanec.Jmeno, Prijmeni, PocetKusu1 + PocetKusu2 kusy, Vyrobek.Jmeno, Seznam.* První vybraný sloupec bude představovat jméno zaměstnance, bylo nutné uvést i název tabulky, protože vidíme, že existuje i tabulka Vyrobek, která má také atribut Jmeno. Systém by pak nevěděl, ze které tabulky by měl sloupec vzít. Následuje sloupec příjmení a matematický výraz pro sečtení hodnot ze sloupců PocetKusu1 a PocetKusu2, výsledek pak bude přejmenován na kusy. Následuje jméno výrobku a všechny sloupce z tabulky seznam. Co přesně atributy znamenají a co bude v příkazu následovat dále, momentálně není důležité, je však jisté, že výstup bude vypadat nějak takto: Zamestnanec.Jmeno Prijmeni kusy Vyrobek.Jmeno Seznam.Cislo Seznam.Nazev Seznam.Poznamka Petr Lukáš 10 Hrnek 1 Položka 1 Poznámka Jan Novák 12 Reproduktor 3 Položka 3 Jakub Novotný 5 Světo 5 Položka 5 SEZNAM ZDROJOVÝCH TABULEK Další části SQL dotazu je seznam zdrojových tabulek. V některých systémech, jako např. Oracle je tato část dotazu povinná. Naproti tomu např. v MS SQL Serveru může SELECT existovat i bez FROM. V této části dotazu uvedeme kromě samotných tabulek také to, jak mají být tabulky spojeny. Spojení dvou tabulek znamená vytvoření jedné univerzální tabulky, která obsahuje sloupce z levé i pravé strany, jedná se tedy o binární operaci. Představme si například takovou situaci. Existuje tabulka Projekt, u které evidujeme číslo projektu, název projektu a zodpovědnou osobu. CisloProjektu Nazev Osoba 1 Jeřáb Martin 2 Výtah Michal Dále existuje tabulka Polozka, která uchovává informace o čísle položky, čísle projektu, do kterého patří, název položky a počet kusů. CisloPolozky CisloProjektu Nazev Kusu 1 1 Rameno Lano Kabina Tlačítko 15 5/23
6 Spojením vznikne takováto univerzální tabulka : Projekt.CisloProjektu Projekt.Nazev Osoba CisloPolozky Polozka.CisloProjektu Polozka.Nazev Kusu Jak je vidět, spojená tabulka obsahuje sloupce z obou zdrojových tabulek. To, jakým způsobem budou zkombinovány řádky určuje typ spojení. Jaké možnosti tedy máme? 1. Kartézský součin Pokud jednotlivé názvy tabulek oddělíme čárkami, pak dojde ke kartézskému součinu, to znamená, že řádky z jedné a z druhé tabulky se prokombinují všemi možnými způsoby. Teoreticky tedy pokud v jedné tabulce je a záznamů a v druhé b záznamů, pak spojená tabulka bude mít celkem a x b záznamů. V SQL se kartézský součin může provést i nad více než dvěma tabulkami. 2. Vnitřní spojení Zápis vnitřního spojení vypadá takto: FROM Tabulka1 INNER JOIN Tabulka2 ON Podmínka spojení Klíčové slovo INNER lze v zápisu vynechat. Funkci vnitřního spojení si můžeme představit tak, že se provede nejprve kartézský součin a poté se na vybrané záznamy aplikuje podmínka spojení. Typický příklad celého SQL dotazu na výše uvedený příklad s projekty by mohl vypadat takto: SELECT Polozka.Nazev NazevPolozky, Projekt.Nazev NazevProjektu FROM Polozka INNER JOIN Projekt ON Polozka.CisloProjektu = Projekt.CisloProjektu 3. Vnější levé spojení Syntaxe vnějšího levého spojení vypadá následovně: FROM Tabulka1 LEFT OUTER JOIN Tabulka2 ON Podmínka spojení OUTER lze podobně jako INNER vynechat. Levé spojení zajišťuje, že budou záznamy z levé tabulky za každých okolností vybrány alespoň jednou i v případě, že se nenajdou odpovídající záznamy v pravé tabulce. 4. Vnější pravé spojení Pravé vnější spojení se píše podobně jako levé: FROM Tabulka1 RIGHT OUTER JOIN Tabulka2 ON Podmínka spojení Princip spojení je naprosto stejný jako u levého s tím, že budou vybrány všechny záznamy z pravé tabulky. Místo názvů tabulek se může vyskytnout další spojení. Spojení tak lze do sebe libovolně zanořit a zkombinovat, vzniká tím celý výraz spojení, ve kterém můžeme používat kulaté závorky. Místo tabulky jako takové se může vyskytnout rovnou celý poddotaz. Tabulky lze podobně jako sloupce přejmenovat tak, že za ně uvedeme alias. Složitější SQL dotaz pak vypadá třeba takto: SELECT * FROM (Tab1 LEFT JOIN Tab2 ON Tab1.id = Tab2.id) INNER JOIN (Tab3, Tab4) ON (Tab4.id = Tab2.id) RIGHT OUTER JOIN (SELECT pole FROM Tab5) q ON (Tab4.pole = q.pole) Co by takový dotaz logicky znamenal by bylo asi složité odhadnout, avšak vzhledem ke konstrukci parseru SQL je důležité, že i něco takového se může v zápisu objevit. 6/23
7 OMEZUJÍCÍ PODMÍNKA Omezující podmínka následuje za seznamem tabulek a spojení. Podmínka může a nemusí být v dotazu obsažená. Pokud podmínku neuvedeme, pak vybíráme všechny možné řádky, které vznikly spojením tabulek. Podmínkou se rozumí výraz, který vrací pravdivostní hodnotu. Výrazy lze mezi sebou kombinovat pomocí logických spojek AND a OR, přičemž AND má vyšší prioritu, než OR. Možné je používat také unární logický operátor NOT. Samotné logické členy jsou pak tvořeny relačním operátory >, <, >=, <=, =, <>. Pro práci s řetězci se používá navíc operátor LIKE. Kromě toho ale v jazyce SQL existují některé speciální konstrukce: 1. a BETWEEN b AND c říká, že hodnota výrazu a musí být mezi hodnotami výrazů c a d. 2. a Ѳ ANY (vnořený dotaz) Ѳ je relační operátor a vnořený dotaz musí obsahovat pouze jeden sloupec. Operátor Ѳ se aplikuje na všechny hodnoty, které vrátí poddotaz a pokud podmínka alespoň v jednom případě vyhoví, vrátí celý výraz pravdivou hodnotu. 3. a Ѳ ALL(vnořený dotaz) jde o podobný případ jako v předchozím bodě, s tím rozdílem, že podmínka musí vyhovět pro všechny hodnoty, které vnořený dotaz vrátí. 4. a IS NULL Vrátí pravdivou hodnotu, pokud výraz a nabývá hodnoty null. Zbytek výrazu pak tvoří klasické matematické operace sčítání, odčítání, násobení a dělení (+ - * /) s možností použití unárních operátoru + a. Prioritu operátorů lze měnit pomocí kulatých závorek. Samotnými hodnotami jsou pak buď číselné konstanty (desetinná čísla používají znak. jako oddělovač), textové řetězce, které začínají a končí apostrofem. Zdvojením apostrofu získáme přímo řetězec se znakem apostrof. Jazyk SQL umožňuje použít jako hodnotu také vnořený dotaz. Zde však musí být splněna podmínka, že dotaz vrací přesně jeden sloupec a přesně jeden záznam. To znamená jedinou hodnotu. Následuje ukázka, jak může výraz v jazyce SQL vypadat: NOT(a > b) AND x < (SELECT pole FROM tabulka WHERE id = 4) OR c IN (SELECT pole FROM tabulka2) AND NOT e BETWEEN 1 AND 4+8 SESKUPENÍ A AGREGAČNÍ FUNKCE Po uvedení omezující podmínky následuje v SQL dotazu seznam polí, podle kterých má být provedeno seskupení. Seskupení se obvykle váže k použití agregací, jinými slovy souhrnů. Podle seskupujících polí se vytváří skupiny, pro které se následně počítají hodnoty agregačních funkcí. Seskupovat je možné také podle celých výrazů. Obecně platí, že v seskupení musí být minimálně všechny výrazy z části SELECT, kde nejsou použity agregace. SQL disponuje celkem 5-ti agregačními funkcemi: 1. MIN - Minimum 2. MAX - Maximum 3. AVG - Průměr 7/23
8 4. SUM - Součet 5. COUNT - Počet Dotaz s použitím agregací pak může vypadat například takto: SELECT Login, Jmeno, Prijmeni, SUM(Plat) FROM Zamestnanec z LEFT JOIN Uvazek u ON z.idzam = u.idzam GROUP BY Login, Jmeno, Prijmeni Při zpracování uvedeného dotazu se po sestavení zdroje dat z tabulek Zamestnanec a Uvazek vytvoří skupiny, tzn. z řádků, kde se Login, Jméno a Příjmení shodují se stane jeden řádek a odpovídající platy se sečtou. Je nutné uvědomit si, že agregační funkce se do sebe nesmí zanořit. Pokud před argument agregační funkce uvedeme klíčové slovo DISTINCT, pak se před výpočtem souhrnu omezí duplicitní hodnoty. Pokud bychom například uvedli místo SUM(plat) SUM(DISTINCT plat), pak v případě, že dva výskyty platu ve skupině budou nabývat stejné hodnoty, započítá se hodnota pouze jednou. PODMÍNKA SKUPINY Podmínka skupiny má podobný význam jako omezující podmínka WHERE s rozdílem, že omezení se aplikuje až po výpočtu agregací. Jinými slovy, pokud bychom chtěli ve výše uvedeném příkladu vybrat zaměstnance s celkovým platem větším než určitá hodnota, nemohli bychom toto omezení vložit do WHERE, protože v momentě, kdy se zpracovává WHERE ještě nebyly zpracován GROUP BY a agregační funkce. Správný zápis by vypadal: SELECT Login, Jmeno, Prijmeni, SUM(Plat) FROM Zamestnanec z LEFT JOIN Uvazek u ON z.idzam = u.idzam GROUP BY Login, Jmeno, Prijmeni HAVING SUM(Plat) > 2000 SETŘÍZENÍ Výsledné hodnoty se před předáním tazateli, tzn. například nám, pokud jsme se ptali, mohou setřídit. Na konci SQL dotazu se může objevit klauzule ORDER BY, za kterou následuje seznam polí z tabulek nebo výrazů, podle kterých chceme třídit. Třízení je standardně vzestupné, pokud chceme provést sestupné třízení, zapíšeme za příslušný sloupec DESC (descending sestupné). Jak bylo uvedeno, třízení se může provádět podle více atributů pokud bude hodnota jednoho shodná, pak se třídí podle dalšího. Například: SELECT Login, Jmeno, Prijmeni, SUM(Plat) FROM Zamestnanec z LEFT JOIN Uvazek u ON z.idzam = u.idzam GROUP BY Login, Jmeno, Prijmeni HAVING SUM(Plat) > 2000 ORDER BY Prijmeni, Jmeno Nad celým výsledkem se provede setřízení podle příjmení, pokud by náhodou dva zaměstnanci měli stejné příjmení, pak budou setřízeni podle jména. 8/23
9 DALŠÍ MOŽNOSTI PŘÍKAZU SELECT OMEZENÍ DUPLICIT Jazyk SQL pracuje na rozdíl od relační algebry s multimnožinami, resp. s uspořádanými poli záznamů, protože je možné používat setřízení. Relační algebra pracuje pouze s množinami, kde na pořadí nezáleží a nemohou se objevit duplicitní záznamy, protože v tu chvíli by šlo o stejný prvek množiny. Proto je v SQL implementovaná možnost omezit duplicitní záznamy tak, že za klíčové slovo SELECT uvedeme DISTINCT nebo UNIQUE. VÝBĚR PRVNÍCH N ZÁZNAMŮ V určitých případech je potřeba zobrazit pouze prvních n vybraných záznamů. V jazyce SQL je možnost, jak toto omezení provést za klíčové slovo SELECT napíšeme TOP n, kde n značí počet záznamů, které dotaz vrátí. MNOŽINOVÉ OPERACE SQL jazyk umožňuje používání celkem tří množinových operátorů. Tyto operátory provádějí množinové operace nad záznamy, ne nad sloupci. Jedná se o binární operátory, které pracují se dvěma poddotazy. Opět je možné regulovat pořadí a prioritu pomocí kulatých závorek. 1. UNION Sjednocení 2. EXCEPT Rozdíl 3. INTERSECT Průnik Průnik má vyšší prioritu než sjednocení a rozdíl. Podmínkou použití množinových operátorů je, že oba poddotazy musí vracet stejný počet sloupců. V opačném případě by nebylo možné množinové operace provést. Příklad množinové operace: SELECT a, b FROM tabulka1 UNION SELECT c, d FROM tabulka2 Tento SQL dotaz provede nejprve výběr atributů a a b z tabulky tabulka1, pak výběr c a d z tabulky tabulka2 a poté vybrané množiny záznamů sjednotí. Nastává zde problém, protože SQL nepracuje s množinami ale s multimnožinami. Množinové operátory automaticky vypouštějí duplicitu. Pokud bychom chtěli duplicitu zanechat, pak za množinový operátor uvedeme klíčové slovo ALL. Jestliže jsou v dotazu použity množinové operátory, může se setřízení (ORDER BY) vyskytovat až za výrazem všech množinových operací (Setřízení lze aplikovat pouze na výslednou vybranou multimnožinu). Tolik prozatím k SQL dotazům, pojďme se podívat na relační algebru. RELAČNÍ ALGEBRA Dle definice je relační algebra dotazovací jazyk pracující s celými relacemi, operátory RA se aplikují na relace, výsledkem jsou opět relace. Pro operace, a \ musí být relační schémata shodná. 9/23
10 V 70. letech definoval E.F. Codd relační algebru jako základ dotazovacích jazyků. Implementace SQL ale probíhala částečně odděleně, takže postupně docházelo rozdílům v principech obou jazyků. Jazyk relační algebry je spíše teoretický prostředek a pro dotazování nad SŘBD se nevyužívá. Slouží však jako mezistupeň mezi SQL dotazem a samotným prováděním výběru dat z databáze. Relační algebra totiž na rozdíl od SQL přesně definuje kroky, které vedou k dosažení výsledku. Za určitých okolností lze kroky relační algebry podle přesných pravidel zaměnit tak, aby byla výsledná relace stejná. Na tomto principu pak SŘBD provádí optimalizaci dotazů. Za základě výrazu relační algebry se sestaví fyzický plán, podle kterého dojde k samotnému výběru dat. Jakými operátory relační algebra disponuje? Podle původního návrhu E.F. Codda, obsahovala relační algebra celkem 8 operátorů sjednocení, průnik, rozdíl, kartézský součin, selekce, projekce, spojení a rozdělení. Pro účely této práce jsou popsány operátory, které budou využity při překladu z SQL. OPERÁTORY RA MNOŽINOVÉ OPERÁTORY Relační algebra nám nabízí celkem 3 binární množinové operátory, podobně jako SQL. 1. Sjednocení (R S) Je možné sjednotit záznamy relací, které mají shodné schéma. Tzn. počty atributů musí být na obou stranách stejné. 2. Průnik (R S) Pro průnik platí stejné pravidlo jako pro sjednocení. 3. Rozdíl (R \ S) Opět musí platit, že počty atributů na obou stranách jsou stejné. Podobně jako v SQL, i zde máme možnost spojovat tabulky. 4. Kartézský součin (R x S) Kartézským součinem relace R se stupněm m a relace S se stupněm n je relace R x S stupně m + n. Všechny prvky relace R se spojí se všemi prvky relace S. 5. Vnitřní spojení (R S) Vnitřní spojení funguje obdobně jako u SQL. Lze si představit, že se nejprve provede kartézský součin a na výslednou relaci se aplikuje selekce podle určité podmínky. Speciálním případem vnitřního spojení je tzv. přirozené spojení, kde se jako spojovací podmínka považuje rovnost hodnot stejně pojmenovaných atributů obou relací. 6. Vnější levé spojení (R S) Opět obdoba LEFT OUTER JOIN z SQL. Funguje podobně jako vnitřní spojení s rozdílem, že budou vybrány všechny záznamy z levé tabulky i v případě, že k nim nebude existovat připojitelný záznam z pravé tabulky. 7. Vnější pravé spojení (R S) Opírá se o stejnou logiku jako levé spojení, pouze je prohozeno pořadí relací. 10/23
11 Dalšími operátory jsou 8. Selekce () Selekce znamená omezení prvků relace podle určité podmínky. Z hlediska pohledu na tabulku se jedná o výběr řádků. 9. Projekce () Projekce znamená omezení atributů relace. Výčtem uvedeme, které atributy relace chceme dále používat. Jedná se o výběr sloupců. 10. Přejmenování () Bez přejmenování se neobejdeme, pokud potřebujeme vybírat data z jedné tabulky vícekrát. Minimálně jednu z tabulek musíme přejmenovat, abychom byli schopni rozlišit, ze které tabulky chceme získat data při zadání názvu atributu. 11. Agregace Některé publikace uvádějí možnost používání agregací. U agregace je nutné uvést podle kterých atributů se provede seskupení a pro které atributy nebo výrazy se souhrny spočítají. Možné je používat opět agregační funkce MIN, MAX, AVG, SUM a COUNT. ZPŮSPOBY ZÁPISU RELAČNÍ ALGEBY Výraz relační algebry lze zapsat více způsoby, obecně lze tvary zápisu rozlišit na lineární a stromový. LINEÁRNÍ ZÁPIS (MATERIÁLY VŠB TEORIE ZPRACOVÁNÍ DAT) Sjednocení: Průnik: Rozdíl: Kartézský součin: Projekce: Selekce: Spojení: Přirozené spojení: R S R S R \ S R x S R[seznam atributů oddělených čárkami] R(podmínka) R[spojovací podmínka]s R[*]S Uvedený způsob zápisu je sice jednoduchý, ale ve složitějších případech výrazů velice nepřehledný. STROMOVÉ ZOBRAZENÍ RELAČNÍ ALGEBRY Výraz v relační algebře je zobrazen jako graf strom, kde kořen stromu je výsledná relace a listy představují zdrojové tabulky. Každý uzel stromu představuje jednu dílčí operaci. Stromové zobrazení je velice přehledný způsob zápisu, ze kterého lze pohodlně zjistit, které operace se v jakém pořadí provedou a co je zdrojem dotazu. 11/23
12 Na obrázku je uveden příklad stromu relační algebry. PŘEVOD JAZYKA SQL NA RELAČNÍ ALGEBRU ROZDÍLY SQL OPROTI RA Před samotným převodem je potřeba si říct, ve kterých bodech se principiálně liší SQL od relační algebry. Relační algebra podle definice pracuje s množinami hodnot. To znamená, že hodnoty nejsou nijak uspořádané a nemohou se vyskytovat vícekrát. Naproti tomu SQL umožňuje použití setřízení a ve výsledné tabulce, kterou dotaz vrátí, se klidně mohou vyskytovat duplicitní záznamy. Pokud bychom se tedy drželi původní definice RA, pak by bylo možné zpracovat pouze SQL dotazy s klauzulí UNIQUE nebo DISTINCT, kde není použito řazení. Pro účely této práce se tedy dívejme na relační algebru jako na jazyk, který pracuje s uspořádanými multimnožinami stejně jako SQL. Množinové operátory nebudou odstraňovat duplicity a zavedeme novou operaci UNIQUE, která z multimnožiny duplicity vypustí. Aby bylo možné SQL dotaz přeložit je dále nutné zavést ještě další operace ORDER, která setřídí multimnožinu podle daných klíčů, a TOP, která vybere pouze prvních n záznamů. PŘEVOD NA RA Ačkoli bylo řečeno, že SQL je deklarativní jazyk, ve skutečnosti popisuje algoritmus, aniž bychom si to uvědomovali. Systém pak zadaný dotaz sice zoptimalizuje, ale z pohledu na výsledek můžeme říct, jaká je posloupnost zpracování jednotlivých částí SQL dotazu. 1. Nejprve je nutné spojit koncové tabulky. Ve stromu RA jde o listy. a. Kartézský součin jak v SQL, tak v RA existuje operace kartézského součinu. Jediným problémem je, že v SQL můžeme za sebe napsat libovolný počet tabulek (nebo už spojených relací), kdežto RA pracuje pouze s binární operací kartézského součinu. Takovýto součin, ve kterém se vyskytuje více než 2 relace, lze jednoduše rozložit na binární operace. Například FROM A, B, C, D lze převést na takovýto zápis v relační algebře. 12/23
13 b. Vnitřní, levé a pravé vnější spojení v tomto ohledu pracují oba jazyky se stejnými operacemi. Důležitým faktem je, že v zápisu RA se nemůže objevit přirozené spojení, dokud nemáme informace o struktuře všech tabulek, tzn. dokud nemáme k dispozici systémový katalog. I když je uvedena podmínka spojení, nemůžeme určit, zda obsahuje všechny atributy z levé i pravé tabulky. Jelikož v SQL lze pomocí závorek upravovat způsoby spojení, popř. používat vnořené poddotazy, není problém vytvořit ekvivalentní strom operací RA. 2. Aplikace omezující podmínky (WHERE) Poté, co je spojením vytvořena jedna univerzální tabulka, je možné aplikovat omezující podmínku (WHERE). V terminologii RA se jedná o selekci. Pokud tedy SQL dotaz obsahuje WHERE, převede se podmínka z WHERE do selekce. 3. Výpočet agregací Před výpočtem agregací je vhodné provést projekci na atributy, které budeme dále využívat. Jedná se o atributy nebo výrazy, podle nichž se provádí seskupení, nebo o výrazy, které vstupují do agregačních funkcí. Vezměme v úvahu následující příklad: SELECT a, SUM(b) + COUNT(b) + AVG(c) FROM tabulka GROUP BY a Nejprve se provede spojení všech zdrojových relací. V tomto případě jde pouze o tabulku tabulka. Než nad touto multimnožinou provedeme agregace, je vhodné nejprve vybrat pouze potřebné atributy. Vybereme tedy atribut a, protože podle něj se bude provádět seskupení. Dále vybereme atributy (výrazy) b a c, které vstupují do agregačních funkcí. Jak již bylo uvedeno výše, agregační funkce do sebe nesmí být zanořeny. Po provedení projekce potřebných atributů dojde k vytvoření skupin a výpočtu agregací. Pro úplnost by bylo vhodné počítat i s možností, že součástí výrazu v agregační funkci může být DISTINCT. 4. Aplikace omezující podmínky pro skupiny (HAVING) Máme-li vypočtené agregace (souhrny), pak můžeme opět provést selekci s tím, že se v této chvíli můžeme odvolávat na výrazy, které vznikly výpočtem souhrnu. Nesmíme zapomenout na to, že HAVING může obsahovat i agregační funkce, které nejsou v části SELECT. Při výpočtu agregací tedy nesmíme tyto funkce vynechat. 5. Výběr polí (výrazů) Až v tomto momentu proběhne samotná projekce, tzn. výběr potřebných atributů nebo výrazů, které jsou definovány za klíčovým slovem SELECT. 6. Setřízení Nakonec je možné výslednou multimnožinu setřídit podle klíčů. Pro zjednodušení předpokládám, že se třízení bude provádět podle atributů, které byly vybrány projekcí. Třízení by se sice mohlo provést ještě před samotnou projekcí, to by ale nebylo možné v případě použití množinových operátorů, kde se ORDER BY provádí až nakonec. 7. UNIQUE a TOP Přímo za SELECTem může následovat UNIQUE (DISTINCT) nebo TOP n. Na vypočtenou setřízenou multimnožinu aplikujeme DISTINCT nebo TOP n, pokud je dotaz obsahuje. 13/23
14 Algoritmus převodu jednoduchého dotazu je tedy popsán. Zbývá vyřešit množinové operace. Zde však relační algebra nabízí shodné možnosti jako SQL. Pouze nesmíme opomenout, že pokud za UNION, INTERSECT nebo EXCEPT neuvedeme klíčové slovo ALL, pak dojde k odstranění duplicit. Je tedy nutné (v případě, že ALL není zadáno) odstranit duplicity pomocí UNIQUE. PŘÍKLADY PŘEVODU 1. Jednoduchý dotaz SELECT a, b, c FROM tabulka WHERE a > b Příklad demonstruje velmi jednoduchý dotaz. Nejprve vybereme z tabulky tabulka všechny záznamy. Poté provedeme selekci těch záznamů, kde a > b. Nakonec vybereme pouze sloupce a, b a c. 2. Spojení tabulek SELECT DISTINCT a, b, c FROM tabulka1 t1 LEFT JOIN tabulka2 t2 ON t1.id = t2.id WHERE a > b Předchozí příklad je rozšířen o spojení tabulek, které jsou předtím přejmenovány. Na výsledek je navíc aplikováno omezení duplicit 14/23
15 3. Složitější dotaz SELECT DISTINCT a, b, c FROM tabulka1 t1 LEFT JOIN tabulka2 t2 ON t1.id = t2.id, (SELECT id, MAX(x) FROM tabulka3 GROUP BY id) WHERE a > b Ukázka vnořeného poddotazu s agregací a připojení pomocí kartézského součinu. Nejprve je nutné zpracovat poddotaz a levou relaci kartézského součinu, pak dojde k samotné operaci, následuje opět selekce, projekce a omezení duplicit. 4. Množinové operace SELECT a FROM TabA UNION ALL SELECT b FROM TabB EXCEPT ALL SELECT c FROM TabC Poslední ukázka nejprve se provádí projekce nad relacemi TabA, TabB a TabC. Nakonec se aplikují množinové operace sjednocení a rozdíl. IMPLEMENTACE PŘEKLADAČE Konečně se dostáváme k implementaci samotného překladače. Z teorie překladačů je známo, že překlad probíhá v několika fázích, z nichž první je lexikální analýza, následuje analýza syntaxe, sestavení syntaktického stromu a nakonec samotný překlad stromu SQL na strom RA. Pro implementaci jsem zvolil jazyk C#, což je moderní plně objektově orientovaný jazyk, který na bázi.net poskytuje značný komfort při práci. Překladač byl implementován ručně metodou rekurzivního sestupu. 15/23
16 LEXIKÁLNÍ ANALÝZA Lexikální analýza rozdělí vstupní soubor na posloupnost tzv. tokenů, čili symbolů. Jeden dílčí symbol označuje jeden nedělitelný koncový element (slovo) jazyka. Jedná se například o veškeré operátory, identifikátory, klíčová slova, závorky apod. Během této fáze se vyloučí jakékoli bílé znaky, komentáře a upraví se escapesekvence v textových řetězcích. O tuto proceduru se stará třída SQLScanner, která obsahuje metody pro práci s textem. Výstupem je tedy seznam tokenů. Typ tokenu je popsán následujícím výčtem. KEYWORD, IDENTIFIER, COMMA, DOT, LEFT_BRACKET, RIGHT_BRACKET, ASTERISK, PLUS, MINUS, SLASH, STRING_CONSTANT, NUMERIC_CONSTANT, NO_EQUALS, EQUALS, MORE_THAN, LESS_THAN, MORE_OR_EQUALS, LESS_OR_EQUALS, EOF, UNDEFINED Během této fáze může dojít k chybě Scanneru, pokud narazí na neidentifikovatelné slovo. Je generovaná výjimka typu SQLScannerException, která informuje, na které pozici byla neidentifikovatelá sekvence nalezena. SYNTAKTICKÁ ANALÝZA Po lexikální analýze následuje analýza syntaxe. Tu zajišťuje třída SQLParser, která má jako vstup sekvenci tokenů z lexikální analýzy. Syntaktická analýza jednak kontroluje syntaxi zadaného dotazu a jednak generuje syntaktický strom. Tento strom pak slouží jako podklad pro překlad na strom relační algebry. Během syntaktické analýzy opět může dojít k chybě, která je způsobena nekorektní formulací dotazu. Jedná se např. o nesprávné využití klíčového slova nebo operátoru. Je generována výjimka SQLParserException, která podobně jako SQLScannerException informuje o místu v souboru, kde byla nalezena chyba. Syntaktická analýza je řízena gramatikou, která je uvedena v příloze. Přestože pro účely této úlohy není nezbytně nutné parsovat např. matematické výrazy, je zde tato funkce implementována jednak kvůli rozšiřitelnosti a jednak kvůli úplnosti překladače. PŘEKLAD NA RELAČNÍ ALGEBRU Jakmile proběhne syntaktická analýza a je sestaven syntaktický strom, následuje překlad na relační algebru. Vzhledem k tomu, že není k dispozici systémový katalog, není možné kontrolovat správnost SQL dotazu na použité tabulky a jejich sloupce. Dále se v SQL dotazu nesmí objevit požadavek na všechny sloupce z jedné tabulky nebo všech tabulek, tzn. * nebo table.*, protože opět není možné zjistit, o které sloupce má vlastně jít. Algoritmus převodu na RA byl již popsán výše. Zde bych věnoval několik vět vnitřní struktuře RA a vizualizaci RA stromu. Jak během syntaktické analýzy, tak při vytváření výrazu relační algebry je generován strom. Každý typ uzlu je reprezentován vlastní třídou, ve velké míře zde byla využita dědičnost. Třídní diagram pro strom SQL i RA naleznete v příloze. Veškeré třídy pro strom RA pak implementují metody jednak pro generování stromového zobrazení a jednak pro generování lineárního zápisu. VIZUALIZACE METODOU PAINT Klíčovou metodou je metoda Paint, která má dva výstupní parametry bitmapu a bod napojení. public void Paint(out Bitmap bitmap, out Point junction); 16/23
17 Metoda vykreslí na bitmapu vykreslí obsah uzlu, doplní potřebné symboly, znaky nebo matematické výrazy. Nakonec celou bitmapu vrátí. Kromě toho vrátí také bod napojení, ke kterému pak směřují spojnice z nadřazených uzlů. Celá procedura samozřejmě probíhá rekurzivně. Metodu musí implementovat všechny uzly, jelikož dědí ze společného předka RANode. Pro zobrazení jednotlivých operací RA ve stromu jsou použity následující symboly Selekce Projekce Pravé vnější spojení Přejmenování relace Agregace Kartézský součin Omezení duplicit Vnitřní spojení Výběr prvních n záznamů Levé vnější spojení Množinové operace (sjednocení, průnik a rozdíl) LINEÁRNÍ ZÁPIS O lineární přepis se stará metoda ToRAString, která funguje na podobném principu jako metoda pro vykreslování. Lineární zápis operací selekce, projekce, vnitřní spojení tabulek a množinové operace byl popsán výše. Jelikož RA strom pracuje i s jinými operátory, bylo nutné vytvořit ekvivalentní zápisy. Levé vnější spojení R[* podmínka]s Pravé vnější spojení R[podmínka *]S Agregace R{seskupující atributy G agregační funkce} Přejmenování R<RENAME alias> Omezení duplicit R<UNIQUE> Výběr prvních n záznamů R<TOP n> 17/23
18 VÝSLEDEK IMPLEMENTACE Jako produkt celé úlohy vznikla aplikace s grafickým uživatelským rozhraním, která je spustitelná pod systémem Microsoft Windows na platformě.net. Ovládání aplikace je intuitivní a snadné. V horní části se nachází textové pole, kam je možno zadat SQL dotaz. Po kliknutí na tlačítko Convert to RA nebo stisknutím klávesy F5 proběhne samotný překlad. Výsledky jsou dva stromové a lineární zobrazení. Mezi těmito zobrazeními se lze přepínat pomocí záložek. V případě, že při překladu byly objeveny nějaké nejasnosti v zadaném dotazu, zobrazí se panel s chybovým hlášením a kurzor se přemístí do textového pole s SQL dotazem na místo, kde chyba pravděpodobně vznikla. Strom relační algebry je možné exportovat tlačítkem Save tree image a SQL dotaz lze načíst pomocí Load SQL. ZÁVĚR Výsledná aplikace je schopna zanalyzovat jakýkoli zadaný SQL dotaz, který vyhovuje gramatice uvedené níže. Jelikož během překladu není k dispozici systémový katalog, není možné provést typovou kontrolu nad výrazy a není možné určit, zda identifikátory v dotazu skutečně existují. Na dotazy, které jsou součástí výrazů, se neaplikuje další rekurzivní rozklad. Produkt může kromě studijních účelů sloužit také jako vizualizace provádění dotazu. Ze zobrazeného stromu lze snadněji zjistit, co má dotaz provádět. Výsledný program by bylo možné rozšířit na jednoduchý dotazovací nástroj, který by prováděl dotazování nad definovanými tabulkami a v rámci rozloženého výrazu RA by pak bylo možné dotazy optimalizovat. Tyto možnosti však daleko překračují rozsah projektu a celková implementace by zabrala mnohem více času. 18/23
19 LITERATURA Jana Šarmanová, R. F. (n.d.). Relační datový model. Retrieved from Barborka: Parsing Expression Grammar. (n.d.). Retrieved from Wikipedia: Relational Algebra. (n.d.). Retrieved from Wikipedia: 19/23
20 PŘÍLOHA 1 POUŽITÁ GRAMATIKA JAZYKA SQL Syntaktická analýza se řídí následující gramatikou. <QUERY> <ORDERBYEXPRESSIONS> <ORDERBYEXPRESSIONS1> <ORDERBYITEM> <EXPRESSION> <DISJ> <DISJ1> <CONJ> <CONJ1> <NOT> <REL> <SUM> <SUM1> <FACTOR> <FACTOR1> <TERM> <VALUE> <UNION> [ ORDER BY <ORDERBYEXPRESSIONS>] <ORDERBYITEM> <ORDERBYEXPRESSIONS1>, <ORDERBYITEM> <ORDERBYEXPRESSIONS1> e <EXPRESSION> [ DESC ASC ] <DISJ> <CONJ> <DISJ1> OR <CONJ> <DISJ1> e <NOT> <CONJ1> AND <NOT> <CONJ1> e NOT <NOT> <REL> <SUM> IN <NESTEDSELECT> <SUM> BETWEEN <SUM> AND <SUM> <SUM> IS NULL <SUM> = ( ALL ANY ) <NESTEDSELECT> <SUM> = <SUM> <SUM> <> ( ALL ANY ) <NESTEDSELECT> <SUM> <> <SUM> <SUM> > ( ALL ANY ) <NESTEDSELECT> <SUM> > <SUM> <SUM> < ( ALL ANY ) <NESTEDSELECT> <SUM> < <SUM> <SUM> >= ( ALL ANY ) <NESTEDSELECT> <SUM> >= <SUM> <SUM> <= ( ALL ANY ) <NESTEDSELECT> <SUM> <= <SUM> <SUM> <FACTOR> <SUM1> + <FACTOR> <SUM1> - <FACTOR> <SUM1> e <TERM> <FACTOR1> * <TERM> <FACTOR1> / <TERM> <FACTOR1> e [ + - NOT ] <NESTEDSELECT> [ + - NOT ] ( <EXPRESSION> ) [ + - NOT ] <VALUE> <IDENTIFIER>. <IDENTIFIER> <IDENTIFIER> ( <EXPRESSIONS> ) <IDENTIFIER> <STRINGCONSTANT>
21 <NUMERICCONSTANT> <UNION> <UNION1> <INTERSECT> <INTERSECT1> <INTERSECT> <UNION1> UNION <INTERSECT> <UNION1> EXCEPT <INTERSECT> <UNION1> e <QUERYELEMENT> <INTERSECT1> INTERSECT <QUERYELEMENT> <INTERSECT1> e <QUERYELEMENT> ( <UNION> ) <SELECT> <SELECT> SELECT [ DISTINCT TOP <NUMERICCONSTANT>] <FIELDS> [ FROM <TABLES> [ WHERE <EXPRESSION>] [ GROUP BY <EXPRESSIONS> [ HAVING <EXPRESSION>]]] <FIELDS> <FIELDS1> <FIELD> <FIELDS1>, <FIELD> <FIELDS1> e <FIELD> <IDENTIFIER>. * * <EXPRESSION> [<IDENTIFIER>] <TABLES> <TABLES1> <JOINS> <JOINS1> <JOIN> <TABLE> <EXPRESSIONS> <EXPRESSIONS1> <JOINS> <TABLES1>, <JOINS> <TABLES1> e <TABLE> <JOINS1> <JOIN> <JOINS1> e LEFT [ OUTER ] JOIN <JOINS> ON <EXPRESSION> RIGHT [ OUTER ] JOIN <JOINS> ON <EXPRESSION> [ INNER ] JOIN <JOINS> ON <EXPRESSION> <NESTEDSELECT> [<IDENTIFIER>] ( <TABLES> ) [<IDENTIFIER>] <IDENTIFIER> [<IDENTIFIER>] <EXPRESSION> <EXPRESSIONS1>, <EXPRESSION> <EXPRESSIONS1> e <NESTEDSELECT> ( <UNION> )
22 PŘÍLOHA 2 TŘÍDNÍ DIAGRAM SYNTAKTICKÉHO STROMU SQL
23 PŘÍLOHA 3 TŘÍDNÍ DIAGRAM STROMU RA
Úvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření
VíceDatabáze SQL SELECT. David Hoksza http://siret.cz/hoksza
Databáze SQL SELECT David Hoksza http://siret.cz/hoksza Osnova Úvod do SQL Základní dotazování v SQL Cvičení základní dotazování v SQL Structured Query Language (SQL) SQL napodobuje jednoduché anglické
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz
VíceInformační systémy ve zdravotnictví. 6. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace
VíceKIV/ZIS cvičení 5. Tomáš Potužák
KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 5 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování K čemu se používají
VíceInformační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek
5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené
VíceDatabázové systémy. Cvičení 6: SQL
Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi
VíceKurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.
1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace
VíceDatabázové systémy. Datová integrita + základy relační algebry. 4.přednáška
Databázové systémy Datová integrita + základy relační algebry 4.přednáška Datová integrita Datová integrita = popisuje pravidla, pomocí nichž hotový db. systém zajistí, že skutečná fyzická data v něm uložená
VíceÚvod do databází. Modelování v řízení. Ing. Petr Kalčev
Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 4 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Klauzule příkazu
VíceInformační systémy ve zdravotnictví. 10. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 10. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování K čemu
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ
Více6. blok část C Množinové operátory
6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.
VíceKIV/ZIS - SELECT, opakování
KIV/ZIS - SELECT, opakování soubor 4_databaze.accdb (lze použít ten z minula) http://home.zcu.cz/~krauz/zis/4_databaze.accdb minule: SELECT FROM WHERE ORDER BY SELECT sloupce jaké sloupce chceme vybrat
Více2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE
2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy
VíceDatabáze I. Přednáška 6
Databáze I Přednáška 6 SQL aritmetika v dotazech SQL lze přímo uvádět aritmetické výrazy násobení, dělení, sčítání, odčítání příklad z minulé přednášky: zdvojnásobení platu všem zaměstnancům UPDATE ZAMESTNANEC
VíceInformační systémy ve zdravotnictví. 8. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 8. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Klauzule
VíceDatabázové systémy I
Databázové systémy I Přednáška č. 8 Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz Skupinové a souhrnné dotazy opakování Obsah Pohledy syntaxe použití význam Vnořené
VíceJaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):
Mezi příkazy pro manipulaci s daty (DML) patří : 1. SELECT 2. ALTER 3. DELETE 4. REVOKE Jaké vlastnosti má identifikující relace: 1. Je relace, která se využívá pouze v případě modelovaní odvozených entit
VíceDatabázové systémy Cvičení 5.3
Databázové systémy Cvičení 5.3 SQL jako jazyk pro manipulaci s daty SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu
VíceOperátory ROLLUP a CUBE
Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor
VíceDatabázové systémy Cvičení 5
Databázové systémy Cvičení 5 Dotazy v jazyce SQL SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu UPDATE vymazání
VíceÚvod do databázových systémů 3. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů 3. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2012 Klauzule příkazu Klauzule
VíceTabulkový procesor. Základní rysy
Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních
VíceB0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux
B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:
VíceDatabázové systémy trocha teorie
Databázové systémy trocha teorie Základní pojmy Historie vývoje zpracování dat: 50. Léta vše v programu nevýhody poměrně jasné Aplikace1 alg.1 Aplikace2 alg.2 typy1 data1 typy2 data2 vytvoření systémů
VíceRELAČNÍ DATABÁZOVÉ SYSTÉMY
RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení
VíceDotazy tvorba nových polí (vypočítané pole)
Téma 2.4 Dotazy tvorba nových polí (vypočítané pole) Pomocí dotazu lze také vytvářet nová pole, která mají vazbu na již existující pole v databázi. Vznikne tedy nový sloupec, který se počítá podle vzorce.
VíceJazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12
Jazyk SQL 1 Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal Valenta (FIT
VíceGymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410
VíceXMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky
XMW4 / IW4 Pokročilé SELECT dotazy Štefan Pataky TOP, OFFSET-FETCH Konverze datových typů Logické funkce Práce s řetězci Poddotazy a množinové dotazy SQL Windowing Agenda TOP TOP omezení počtu vrácených
VíceDatabázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz
Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty
VíceDatabázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.
Databáze Základní pojmy Pojem databáze označuje obecně souhrn informací, údajů, dat o nějakých objektech. Úkolem databáze je hlídat dodržení všech omezení a dále poskytovat data při operacích. Objekty
VíceMicrosoft Access. Úterý 26. února. Úterý 5. března. Typy objektů databáze: Vytvoření a návrh nové tabulky
Úterý 26. února Microsoft Access Databáze je seskupení většího množství údajů, které mají určitou logiku a lze je určitým způsobem vyhodnocovat, zpracovávat a analyzovat Access je jedním z programů určených
Více2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.
2 přednáška 2 října 2012 10:32 Souborově orientované uchování dat Slabý HW Není možné uchovávat "velká data" - maximálně řádově jednotky MB Na každou úlohu samostatná aplikace, která má samostatná data
Více8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
VíceDatabázové systémy Cvičení 5.2
Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako
VíceMicrosoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení
Microsoft Access Databáze je seskupení většího množství údajů, které mají určitou logiku a lze je určitým způsobem vyhodnocovat, zpracovávat a analyzovat Access je jedním z programů určených pro zpracování
VíceDJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný
DJ2 rekurze v SQL slajdy k přednášce NDBI001 Jaroslav Pokorný 1 Obsah 1. Úvod 2. Tvorba rekurzívních dotazů 3. Počítaní v rekurzi 4. Rekurzívní vyhledávání 5. Logické hierarchie 6. Zastavení rekurze 7.
VíceZákladní přehled SQL příkazů
Základní přehled SQL příkazů SELECT Základní použití Příkaz SELECT slouží k získání dat z tabulky nebo pohledu v požadované podobě. Získání všech řádků a sloupců z tabulky SELECT * FROM Person.Contact
VíceCo bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT
Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT david@wug.cz @gesvindr Logické zpracování dotazu Jazyk T-SQL je deklarativní Popisujeme,
VíceDatabázové systémy Tomáš Skopal
Databázové systémy Tomáš Skopal - SQL * úvod * dotazování SELECT Osnova přednášky úvod do SQL dotazování v SQL příkaz SELECT třídění množinové operace 2 SQL 3 structured query language standardní jazyk
VíceRELAČNÍ DATABÁZE ACCESS
RELAČNÍ DATABÁZE ACCESS 1. Úvod... 2 2. Základní pojmy... 3 3. Vytvoření databáze... 5 4. Základní objekty databáze... 6 5. Návrhové zobrazení tabulky... 7 6. Vytváření tabulek... 7 6.1. Vytvoření tabulky
VíceKontingenční tabulky v MS Excel 2010
Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data
VíceKritéria hodnocení praktické maturitní zkoušky z databázových systémů
Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné
VíceJazyk SQL databáze SQLite. připravil ing. petr polách
Jazyk SQL databáze SQLite připravil ing. petr polách SQL - úvod Structured Query Language (strukturovaný dotazovací jazyk 70. léta min. století) Standardizovaný dotazovací jazyk používaný pro práci s daty
VíceZáklady informatiky. 08 Databázové systémy. Daniela Szturcová
Základy informatiky 08 Databázové systémy Daniela Szturcová Problém zpracování dat Důvodem je potřeba zpracovat velké množství dat - evidovat údaje o nějaké skutečnosti. o skupině lidí (zaměstnanců, studentů,
VícePopis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.
Popis ovládání 1. Úvod Tento popis má za úkol seznámit uživatele se základními principy ovládání aplikace. Ovládání je možné pomocí myši, ale všechny činnosti jsou dosažitelné také pomocí klávesnice. 2.
VíceDatabázové systémy. Dotazovací jazyk SQL - II
Databázové systémy Dotazovací jazyk SQL - II SELECT I SELECT FROM WHERE GROUP BY HAVING
VíceInovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databáze Základní seznámení s MySQL
VíceDatabáze I. Přednáška 2
Databáze I Přednáška 2 Transformace E-R modelu do relačního modelu (speciality) zaměříme se na dva případy z předmětu Analýza a modelování dat reprezentace entitního podtypu hierarchie ISA reprezentace
VíceAnalýza a modelování dat 3. přednáška. Helena Palovská
Analýza a modelování dat 3. přednáška Helena Palovská Historie databázových modelů Relační model dat Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM
VíceSQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)
SQL strukturovaný dotazovací jazyk Structured Query Language (SQL) SQL - historie 1974-75 - IBM - 1.prototyp - SEQUEL od 1979 - do praxe - ORACLE (1979) IBM - SQL/DS (1981), DB/2 (1983) postupně přijímán
VíceDotazování v relačním modelu a SQL
Databázové systémy Dotazování v relačním modelu a SQL Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YDATA: Přednáška II. 14. říjen, 2016 1 / 35 Opakování Relační
Více6. blok část B Vnořené dotazy
6. blok část B Vnořené dotazy Studijní cíl Tento blok je věnován práci s vnořenými dotazy. Popisuje rozdíl mezi korelovanými a nekorelovanými vnořenými dotazy a zobrazuje jejich použití. Doba nutná k nastudování
VíceKIV/ZIS cvičení 6. Tomáš Potužák
KIV/ZIS cvičení 6 Tomáš Potužák Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Slučování záznamů do skupin (1) Chceme zjistit informace obsažené ve více záznamech najednou Klauzule GROUP
Více5. blok Souhrnné a skupinové dotazy
5. blok Souhrnné a skupinové dotazy Studijní cíl Tento blok je věnován základům při vytváření souhrnných a skupinových dotazů s využitím agregačních funkcí SUM(), AVG(), MIN(), MAX() a COUNT() a klauzulí
VíceSQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT
-SELECT Informační a znalostní systémy 1 - Structured Query Language norma pro dotazování nad relačními databáze díky přenositelnosti- rozmach relačních databází zahrnuje jak dotazování na data, tak změny
VíceInformační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL
4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená
VíceDatabázové systémy a SQL
Databázové systémy a SQL Lekce 2 Daniel Klimeš Autor, Název akce 1 Operátory a funkce +,- Sčítání, odečítání *,/ Násobení, dělení =, , >=,
Více12. blok Pokročilé konstrukce SQL dotazů - část II
12. blok Pokročilé konstrukce SQL dotazů - část II Studijní cíl Tento blok je věnován pokročilým konstrukcím SQL dotazů, které umožní psát efektivní kód. Pozornost je věnována vytváření pohledů v rámci
VíceDatabáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová
Databáze MS-Access Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová Obsah Principy a možnosti databází. Uložení dat v databázi, formáty dat, pole, záznamy, tabulky, vazby mezi záznamy. Objekty databáze
VíceZáklady informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant
Základy informatiky 06 Databázové systémy Kačmařík/Szturcová/Děrgel/Rapant Problém zpracování dat důvodem je potřeba zpracovat velké množství dat, evidovat údaje o nějaké skutečnosti: o skupině lidí (zaměstnanců,
VíceJazyk S Q L základy, příkazy pro práci s daty
Jazyk S Q L základy, příkazy pro práci s daty Základní pojmy jazyk množina řetězců nad abecedou gramatika popisuje syntaxi výrazů jazyka pravidla, jak vytvářet platné řetězce jazyka. dotazovací jazyk je
VíceVZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý
Autor: Mgr. Dana Kaprálová VZORCE A VÝPOČTY Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového
VíceRelační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky
Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci
VíceKAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM
KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat
VíceZákladní vzorce a funkce v tabulkovém procesoru
Základní vzorce a funkce v tabulkovém procesoru Na tabulkovém programu je asi nejzajímavější práce se vzorci a funkcemi. Když jednou nastavíte, jak se mají dané údaje zpracovávat (některé buňky sečíst,
VíceGymnázium a Střední odborná škola, Rokycany, Mládežníků 1115
Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410
VíceMaterializované pohledy
Materializované pohledy Pavel Baroš, 2010 Obsah Materializované pohledy Co přináší? Řešení ostatních DBS syntaxe a semantika pro: Oracle, MS SQL, DB2 ostatní Možné řešení pro PostgreSQL PostgreSQL 2 Materializované
VíceNový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.
Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,
VíceJazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12
Jazyk SQL 2 Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12 https://edux.fit.cvut.cz/courses/bi-dbs/ M.Valenta (FIT ČVUT) Jazyk
VíceDatabázové a informační systémy
Databázové a informační systémy 1. Teorie normálních forem Pojem normálních forem se používá ve spojitosti s dobře navrženými tabulkami. Správně vytvořené tabulky splňují 4 základní normální formy, které
Více4. blok část A Logické operátory
4. blok část A Logické operátory Studijní cíl Tento blok je věnován představení logických operátorů AND, OR, NOT v jazyce SQL a práce s nimi. Doba nutná k nastudování 1-2 hodiny Průvodce studiem Při studiu
VíceDATABÁZE MS ACCESS 2010
DATABÁZE MS ACCESS 2010 KAPITOLA 5 PRAKTICKÁ ČÁST TABULKY POPIS PROSTŘEDÍ Spuštění MS Access nadefinovat název databáze a cestu k uložení databáze POPIS PROSTŘEDÍ Nahoře záložky: Soubor (k uložení souboru,
VíceKapitola 4: SQL. Základní struktura
- 4.1 - Kapitola 4: SQL Základní struktura Množinové operace Souhrnné funkce Nulové hodnoty Vnořené poddotazy (Nested sub-queries) Odvozené relace Pohledy Modifikace databáze Spojené relace Jazyk definice
VíceDatabázové systémy. Ing. Radek Holý
Databázové systémy Ing. Radek Holý holy@cvut.cz Literatura: Skripta: Jeřábek, Kaliková, Krčál, Krčálová, Kalika: Databázové systémy pro dopravní aplikace Vydavatelství ČVUT, 09/2010 Co je relační databáze?
VíceAlgoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
VíceObsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23
Stručný obsah 1. Stručný úvod do relačních databází 13 2. Platforma 10g 23 3. Instalace, první přihlášení, start a zastavení databázového serveru 33 4. Nástroje pro administraci a práci s daty 69 5. Úvod
VíceAnalýza a modelování dat. Přednáška 9
Analýza a modelování dat Přednáška 9 Další dotazování nad kostkou Rozšíření SQL99 rozšíření SQL99 (minulá přednáška): seskupovací operátory za GROUP BY CUBE statistiky dle řezů ROLLUP statistiky dle rolování
VíceModely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.
Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové
VíceRelační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:
Relační databáze Pojem databáze, druhy databází Databází se myslí uložiště dat. V době začátků využívání databází byly tyto členěny hlavně hierarchicky, případně síťově (rozšíření hierarchického modelu).
VíceAnalýza a modelování dat. Přednáška 8
Analýza a modelování dat Přednáška 8 OLAP, datová kostka, dotazování nad kostkou Motivace většina DB relační zaznamenání vztahů pomocí logicky provázaných tabulek jakou mají velmi často vztahy povahu vztah
VíceNávrh a tvorba WWW stránek 1/14. PHP a databáze
Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované
VíceDUM 12 téma: Příkazy pro tvorbu databáze
DUM 12 téma: Příkazy pro tvorbu databáze ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací
VíceInstalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.
Instalace Produkt se neinstaluje. Stačí soubor uložit na libovolné místo na Vašem počítací (klikněte pravým tlačítkem a dejte 'uložit cíl jako ), pak jen spustit. Požadavky na software Produkt je odzkoušen
VíceÚvod do MS Access. Modelování v řízení. Ing. Petr Kalčev
Úvod do MS Access Modelování v řízení Ing. Petr Kalčev Postup při tvorbě aplikace Vytvoření tabulek Vytvoření relací Vytvoření dotazů Vytvoření formulářů Vytvoření sestav Tabulky Slouží k definování polí,
VíceTiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází
Tiskové sestavy Tiskové sestavy se v aplikaci Access používají na finální tisk informací z databáze. Tisknout se dají všechny objekty, které jsme si vytvořili, ale tiskové sestavy slouží k tisku záznamů
VíceDatabáze I. 1. přednáška. Helena Palovská
Databáze I 1. přednáška Helena Palovská palovska@vse.cz Co je databáze Mnoho dat Organizovaných používá se model uspořádání Řízený přístup k datům přijímá požadavky v jazyce modelu umožňuje sdílení dat
VíceDatabázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal
Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE
VíceDistanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D.
Distanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Instalace Microsoft SQL Serveru 2 Dotazovací jazyk SQL 3 Příkaz SELECT
VíceMarketingová komunikace. 2. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)
Marketingová komunikace Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph) 2. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Minulé soustředění úvod
VíceObchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_038.ICT.34 Tvorba webových stránek SQL stručné minimum OA a JŠ Jihlava, VY_32_INOVACE_038.ICT.34 Číslo
VíceDATA CUBE. Mgr. Jiří Helmich
DATA CUBE Mgr. Jiří Helmich Analytické kroky formulace dotazu analýza extrakce dat vizualizace Motivace n-sloupcová tabulka v Excelu vs. sloupcový graf Dimensionality reduction n dimenzí data obecně uspořádána
VíceDotazovací jazyky I. Datová krychle. Soběslav Benda
Dotazovací jazyky I Datová krychle Soběslav Benda Obsah Úvod do problematiky Varianty přístupu uživatelů ke zdrojům dat OLTP vs. OLAP Datová analýza Motivace Vytvoření křížové tabulky Datová krychle Teorie
VíceVýčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
VíceKIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb. SQL dotazy. budeme probírat pouze SELECT
KIV/ZIS - SQL dotazy stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb SQL dotazy textové příkazy pro získání nebo manipulaci s daty SELECT - výběr/výpis INSERT - vložení UPDATE - úprava DELETE - smazání
VíceMS Access Dotazy SQL
MS Access Dotazy SQL Dotaz SELECT Michal Nykl Materiály pro cvičení KIV/ZIS 2012 Červeně značené výsledky odpovídají souboru cv4_testovacidatabaze250312.accdb Dotaz SELECT - struktura SELECT [ DISTINCT
Více