UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY. Přírodovědecká fakulta RELAČNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA) Zdeňka Telnarová. Aktualizovaná verze 2006

Rozměr: px
Začít zobrazení ze stránky:

Download "UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY. Přírodovědecká fakulta RELAČNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA) Zdeňka Telnarová. Aktualizovaná verze 2006"

Transkript

1 UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY Přírodovědecká fakulta RELAČNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA) Zdeňka Telnarová Aktualizovaná verze 2006 Ostravská univerzita

2 OBSAH 1 Modul Relační datový model Úvod Operace relační algebry Nejpoužívanější operace Základní množinové operace aplikované na relace Normalizace relačních schémat První normální forma relace Funkční závislosti atributů Druhá normální forma relace Třetí normální forma relace Transformace konceptuálních schémat Nejpoužívanější konstruktory E - R modelu Principy transformace E-R schématu do relačního Integrita relačních schémat Referenční integrita Způsoby zachování referenční integrity Modul Úvod do databázových jazyků Opakování některých pojmů predikátové logiky Symboly predikátové logiky Konstrukty predikátové logiky Interpretace formulí Databázové jazyky Definice dotazu Relační algebra a relační kalkul Operace relační algebry Další operace relační algebry Přepisovací jazyk relační algebry Relační kalkul Abeceda n-ticového relačního kalkulu Formule relačního kalkulu Přepis z relační algebry do relačního n-ticového kalkulu Přepisovací jazyk n-ticového relačního kalkulu

3 Obecný tvar existenčně kvantifikovaných formulí Obecný tvar univerzálně kvantifikovaných formulí Doménový relační kalkul Atomické formule doménového relačního kalkulu Věta o ekvivalenci Řešené příklady v relační algebře a relačním kalkulu Modul Jazyk SQL Části jazyka SQL Základní příkazy DDL Základní příkazy DML Základní příkazy DQL Řešení příklady na dotazování v SQL, definování schématu a manipulaci s daty Modul QBE - Query By Example Agregační funkce v QBE Manipulace v QBE Inkluze Řešené příklady v QBE Modul Transakce - základní pojmy a vlastnosti Vlastnosti transakcí Globální a lokální transakce Distribuovaný databázový systém Dvoufázový potvrzovací protokol Výpadky uzlů a přerušení transakce Transakce jako jednotka zotavení z chyb Žurnály(log files) Kontrolní body- checkpoints: UNDO / REDO algoritmus Synchronizace Dvoufázový uzamykací protokol Globální uváznutí Transakce v SQL Modul Přehled architektur databázových systémů

4 6.1.1 Distribuce globálních relací Základy replikace dat Zpracování dotazů v distribuované prostředí Metody výpočtu spojení Modul Objektově orientovaná analýza a návrh Úvod Nedostatky relačních SŘBD Objektově orientovaná metodika Další objektově orientované metodologie Požadavky, kladené na OODBS Objektově orientované SŘBD Hlavní přínosy objektové technologie Kriteria kladená na OOSŘBD Tři základní modely objektové metodologie Model objektů Základní charakteristiky Základní pojmy Dynamický a funkční model Dynamický model Základní pojmy Funkční model Základní pojmy Deduktivní pravidla při analýze a návrhu IS Úvod do deduktivních pravidel Stratifikace Všeobecné principy dobře formovaných deduktivních pravidel Využití deduktivních pravidel pro odvozování dat Příklady implementace v jazyku Chimera Srovnání relačního a objektového pojetí Využití deduktivních pravidel pro definování integritních omezení Vestavěná a generická integritní omezení Generické integritní omezení Řešené příklady deduktivních pravidel Použitá literatura

5 5

6 1 MODUL RELAČNÍ DATOVÝ MODEL Cíl: Cílem této kapitoly je, aby si čtenář zopakoval základní znalosti o relačních datových modelech, jak se s nimi již seznámil v předmětu Úvod do databází. Kapitola přináší základní ideje, na kterých je relační datový model založen, definici relačního modelu dat, základní pojmy. Čtenář si rovněž zopakuje základní manipulační prostředky, které lze v relačním datovém modelu nad daty využít. Po prostudování textu by měl mít čtenář přesnou představu o strukturách, do kterých se ukládají data v databázi. Dále by měl již naprosto přesně umět definovat pojmy uvedené v klíčových slovech. Co se týká databázových operací, čtenář by měl po přečtení této kapitoly mít základní přehled o operacích relační algebry. V následujících textech ještě bude databázovým operacím věnována značná pozornost. Pro správné navržení relačního schématu dat je nutné dodržovat pravidla normalizace, kterou si čtenář v této kapitole rovněž zopakuje, stejně jako integritní omezení schémat a pravidla pro transformaci konceptuálních schémat na datová relační schémata. Klíčová slova: RMD, databázová relace, NF, doména, primární klíč, cizí klíč, operace relační algebry, integritní omezení, transformace konceptuálních schémat. Průvodce studiem: RMD má jediný konstrukt, kterým je databázová relace. Proto při transformaci konceptuálního modelu na model relační je třeba celou složitou realitu transformovat na množinu vcelku jednoduchých relací. Již tento fakt naznačuje, že bude skutečně velmi složité a někdy dokonce nemožné realitu natolik zjednodušit. Tato úvaha vede ke snaze vývoje datových modelů založených na objektových principech. To je ovšem v této kapitole ještě téma předčasné, přesto je dobré si uvedenou skutečnost uvědomit Úvod Relační datový model (RDM) byl poprvé popsán v roce 1970 E.F. Coddem a je zatím nejrozšířenějším datovým modelem, na kterém je založen návrh a tvorba databází. Základní ideje relačního modelu RMD důsledně odděluje data, která jsou chápána jako relace, od jejich implementace. Přístup k datům je symetrický, tj. při manipulaci s daty se nezajímáme o přístupové mechanizmy k datům. Pro manipulaci s daty jsou k dispozici dva silné prostředky - relační kalkul a relační algebra. 6

7 Pro omezení redundance dat v relační databázi jsou navrženy pojmy umožňující normalizovat relace. Základní definice RMD Mějme množiny D 1, D 2, D 3,...D n. Z každé vyberme 1 prvek. Tím vytvoříme uspořádanou n-tici. Kartézský součin D 1 x D 2... je množina všech posloupností (x 1,x 2,...) kde x 1 je prvkem D 1, x 2 je prvkem D 2... Relace je každá podmnožina kartézského součinu. Z hlediska databázových systémů jsou množiny D 1, D 2,.. množiny hodnot atributů a označují se jako tzv.domény. Od matematické relace se liší databázová relace v několika aspektech Relace je vybavena pomocnou strukturou, které se říká schéma relace. Schéma relace se skládá ze jména relace, jmen atributů a domén. Prvky domén, ze kterých se berou jednotlivé komponenty prvků relace, jsou atomické (dále nedělitelné) hodnoty. Tomuto omezení se říká 1.normální forma relací (1NF). Schéma relace R se vytvoří nad množinou atributů A 1 :D 1,...A n :D n, kde A i jsou jména atributů a D i jsou domény. Dvojici A i :D i se říká atribut relace. Schéma relace lze zapsat R(A 1 :D 1,...A n :D n ). Relace R nad množinou A je libovolná podmnožina kartézského součinu domén D 1 x... x D n. Doména náležící atributu C se označuje jako dom(c). Domény jsou obvykle primitivní typy dat (STRING, INTEGER...). Prvkům relace se říká n-tice, přičemž n určuje řád relace. Relační schéma databáze je dvojice (R,I), kde R je množina schémat relací a I je množina integritních omezení. Jedno z významných IO na relaci R(A) je existence primárního klíče. Primární klíč je množina atributů K z A, jejichž hodnoty jednoznačně určují (identifikují) n-tice relace R. K je minimální v tom smyslu, že nelze odebrat žádný atribut, aniž by to narušilo identifikační vlastnost. Atribut, který je součástí nějakého klíče se nazývá klíčový. Atributy, které nejsou součástí žádného klíče se nazývají neklíčové. Z podstaty RMD vyplývá, že každá relace má primární klíč. Protože relace jsou množiny, nesmí relace obsahovat duplicitní prvky. Dalším důležitým IO je referenční integrita. Toto omezení popisuje vztahy mezi daty ve dvou relacích. Atribut, kterého se referenční integrita týká, se nazývá cizí klíč (foreign key). Takové dvě relace se obvykle nazývají master/ detail, resp. parent/child, resp. independent/dependent. Česky obvykle hlavní/závislá někdy taky nezávislá/závislá, nadřazená/podřízená. Cizí klíč je atribut relace, který je v nadřazené relaci primárním klíčem. Příklad: Hlavní tabulka: UČITEL(ČÍSLO, JMÉNO, PLAT, PŘÍPLATEK,...) Závislá tabulka: PŘEDMĚT(ZKRATKA, NÁZEV,...,GARANT) ČÍSLO z relace UČITEL je primárním klíčem a objevuje se v relaci PŘEDMĚT jako atribut GARANT. Atribut GARANT je cizí klíč. Jméno cizího klíče nemusí být stejné jako jméno 7

8 primárního klíče nadřazené relaci, ale cizí klíč musí být definován nad stejnou doménou, nad jakou je definován příslušný primární klíč nadřazené relace. Přípustnou relační databází se schématem (R, I) nazýváme množinu relací R 1,...R k takových, že jejich prvky vyhovují I. O takové množině relací říkáme, že je konzistentní. Formou reprezentace relací může být dvojrozměrná tabulka. Podmínky, které musí splňovat relační tabulka Všechny hodnoty v tabulce musí být elementární - tj. dále nedělitelné - podmínka 1NF. Sloupce mohou být v libovolném pořadí. Řádky mohou být v libovolném pořadí. Sloupce musí být homogenní, tzn. ve sloupci musí být údaje stejného typu (z jedné domény). Každému sloupci musí být přiřazeno jednoznačné jméno. V relační tabulce nesmí být dva zcela stejné řádky. Tzn., že každý řádek je jednoznačně rozlišitelný. Shrnutí: Doména je množina hodnot stejného datového typu. Tyto hodnoty popisují nějakou vlastnost objektu. Relace je každá podmnožina kartézského součinu, jejíž konkrétní n-tice vznikly vybráním příslušných prvků z domén. Atribut je pojmenování pro každé užití hodnoty z domény v relaci. Záhlaví relace obsahuje jméno relace a jména atributů v relaci. Je v čase neměnné. Tělo relace obsahuje v čase proměnnou množinu n-tic hodnot, jejichž pořadí je dáno záhlavím relace. Stupeň relace je počet atributů relace. Kardinalita relace je počet řádků relace. Primární klíč je atribut nebo skupina atributů, který jednoznačně určuje n-tice relace. Pokud je třeba použít více atributů pro jednoznačné určení n-tice, potom hovoříme o tzv. složeném primárním klíči. Pokud je více atributů, které splňují pravidlo pro primární klíč, jeden zvolíme jako primární a ostatní jsou alternativní klíče. Definice primárního klíče: Primární klíč je podmnožina atributů relace, která: 1) jednoznačně identifikuje každý prvek relace 2) 2) není redundantní, tj. žádný její atribut nelze vynechat, aniž by podmínka 1) přestala platit. Pokud více atributů může splňovat výše uvedenou definici, jedná se pak o tzv. kandidáty primárního klíče. Primární klíč v relaci smí být pouze jeden, ostatní kandidáti se stávají tzv. alternativními klíči. Kontrolní otázky: 1. Co je to databázová relace a čím se liší od relace matematické? 8

9 2. Jak lze vytvořit každou instanci databázové relace? 3. Čím lze identifikovat jednotlivé n-tice relace? 4. Kolik může mít relace primárních klíčů? Pojmy k zapamatování: Doména Atribut Relace Kandidát primárního klíče Primární klíč Alternativní klíč Kardinalita relace Stupeň relace Cizí klíč 1NF Operace relační algebry Průvodce studiem: Operace relační algebry, ať již speciální operace (projekce, selekce a spojení) nebo operace množinové jsou základem mnoha dotazovacích jazyků a jsou základem (spolu s relačním kalkulem) pro pochopení problematiky dotazování a následně získávání informací z databáze. Jedná se o širokou problematiku, které bude věnován dostatečný prostor v následujících kapitolách, proto jsou zde umístěny pouze základní informace, které jsou opakováním z předmětu Úvod do databází. Relační algebra je nástrojem pro manipulaci s relacemi. Je to jazyk, který pracuje s celými relacemi. Operátory relační algebry se aplikují na relace a výsledkem jsou opět relace Nejpoužívanější operace Projekce Selekce Spojení Projekce Umožňuje potlačit označené atributy v relaci. Umožňuje přejít z relace o n sloupcích na relaci o p sloupcích, přičemž p < n. Nově vzniklá relace bude obsahovat p sloupců. Může 9

10 obsahovat i méně řádků než původní relace, protože duplicitní řádky se v relaci nesmějí vyskytovat. Selekce Někdy se vyskytuje termín restrikce. Operací selekce vznikne nová relace vybráním řádků z původní relace na základě logické podmínky. Podmínka je zadána Booleovským výrazem (pomocí logických spojek and, or, not), jehož atomické formule mají tvar t 1 θ t 2, kde θ je <,>,=,<=,>=,<>, t i je buď konstanta nebo jméno atributu. Spojení Spojení dvou relací vytvoří třetí relaci. Výsledná relace vždy obsahuje všechny kombinace, které vyhovují zadané podmínce. Podmínka vyjadřuje vztah mezi dvěma relacemi. Spojení relací se zajišťuje pomocí společného atributu. Jednotlivé řádky z 1.relace se spojí s příslušnými řádky z 2.relace. Relace se nespojují podle názvů atributů, ale podle jejich hodnot. Definice: Spojení relací R a S podle podmínky θ na atributu A z R a atributu B z S je relace R[ A θ B] S = { rs r R s S rr[a] θ rs[b]} kde rr[a], rs[b] jsou hodnoty atributů A, resp. B relací R, resp. S. 3 druhy spojení 1. spojení na rovnost atribut1 = atribut2 2. spojení na nerovnost atribut1 <> atribut2 3.vnější spojení - INKLUZE Funguje stejně jako spojení na rovnost s tím rozdílem, že do výsledné relace se přidají i nespojené řádky z první relace (ev. z druhé relace, ev. z obou relací). Pak příslušné atributy nejsou vyplněny (nabývají hodnoty NULL). Příklad: Relace 1 Číslo Jméno Město Ulice Věk 1 Jiří Kladno Pražská Karel Praha Evropská Jan Brno Tichého Karel Brno Dlouhá Tomáš Praha Široká

11 Relace 2 ČísloS Č-typu Rok-výroby Cena Podmínka pro spojení na rovnost: Číslo Relace 1 = ČísloS Relace 2 Vznikne nová relace: Číslo Jméno Město Ulice Věk Č- typu Rokvýroby 1 Jiří Kladno Pražská Jiří Kladno Pražská Karel Praha Evropská Zavedeme jednoduchý jazyk pro vyjádření operací relační algebry: Cena Příklad: Z relace AUTA vybereme všechna identifikační čísla, názvy a rok výroby aut, jejichž cena je menší než Kč. Klíčová slova budou podtržena. restrict AUTA where cena < giving MEZIVYS1 project MEZIVYS1 over ident_a, nazev_a, rok_vyr, cena giving VYSL Tuto operaci provedeme pomocí vhnízdění (nesting): project (restrict AUTA where cena < ) over ident_a, nazev_a, rok_vyr, cena giving VYSL Základní množinové operace aplikované na relace Podmínky pro všechny množinové operace: Obě relace jsou stejného stupně, tj. mají stejný počet sloupců. Každý i-tý atribut z obou relací je definován na stejné doméně. Sjednocení R S = {t t R t S} 11

12 Sjednocení vytvoří novou relaci, která obsahuje n-tice obou výchozích relací. Pokud mají tyto relace některé n-tice shodné, ve výsledné relaci se objeví pouze jednou. Průnik R S = {t t R t S} Výsledná relace bude obsahovat pouze totožné n-tice obou relací. Množinový rozdíl R - S = {t t R t S} Nová relace bude obsahovat všechny n-tice první relace, ale pouze ty, které se nevyskytují v druhé relaci. Symetrický rozdíl Nová relace bude obsahovat všechny n-tice obou relací, s výjimkou těch, které se vyskytují v obou relacích. Kartézský součin Již není typickou množinovou operací, protože nesplňuje její 2 podmínky. R x S relace R stupně m a relace S stupně n je relace stupně m+n, která je definována: R x S = {rs r R s S} kde rs představuje prvek relace (r 1, r 2,...r m,s 1,s 2,...s n ) r,s označuje prvky relací R a S. Kartézský součin vytvoří novou relaci tak, že spojuje n-tice z obou relací systémem každý s každým. Počet n-tic (kardinalita) nové relace je součinem kardinalit obou vstupních relací. Kontrolní otázky: 1. Jaké typy operací spojení znáte? 2. Co musí platit o relacích, pokud na ně chceme uplatnit operaci sjednocení, průniku či rozdílu? 3. Jaká je kardinalita a studeň relace, která je výsledkem operace kartézský součin? 4. Ze kterých operací lze odvodit operaci spojení? 12

13 Projekce Selekce Spojení Sjednocení Průnik Rozdíl Kartézský součin Pojmy k zapamatování: Normalizace relačních schémat První normální forma relace Báze dat je nejjednodušší a nejpřehlednější, jsou-li relace, které ji reprezentují, definovány nad doménami, jejichž prvky jsou jednoduché (nejsou to opět relace, či jiné struktury). O takových relacích se říká, že jsou v první normální formě a příslušné atributy se nazývají jednoduchými. Relace je v první normální formě (1NF), jsou-li všechny její atributy atomické (nedělitelné) Atributy, které nejsou jednoduché, jsou složené. Některé relace v první normální formě však mají i negativní vlastnosti z hlediska redundance a konzistence dat. Problémy spojené s redundancí dat vyplývají zpravidla ze skutečnosti, že hodnota některého atributu může zcela určovat hodnoty jiných atributů. Sdružování takových atributů v jedné relaci se ukazuje jako nevhodné. Problematice dekompozice relací neboli jejich normalizaci budou proto věnovány následující odstavce Funkční závislosti atributů Problém, který byl nastíněn v předcházejícím odstavci, spočívá ve vzájemných závislostech atributů jedné relace. Pro tuto závislost se zpravidla používá termínu funkční závislost, i když z hlediska matematického nejde o funkci, stejně jako pojem relace zcela neodpovídá matematickému pojetí (v databázovém pojetí se totiž relace stejně jako funkční závislosti mění v čase ). Nechť R(A:D) je relační schéma a X, Y jsou jednoduché nebo složené atributy. Atribut Y je funkčně závislý na atributu X, (X Y ), platí-li pro každou instanci (n-tici) relace R, že pro libovolné dva prvky relace, které se shodují v hodnotě atributu X, platí, že se shodují i v atributu Y. Jinými slovy: Atribut Y je funkčně závislý na atributu X, je-li ke každé hodnotě atributu X přiřazena právě jedna hodnota atributu Y. Atribut Y je úplně funkčně závislý na složeném atributu X, je-li na X funkčně závislý a zároveň není funkčně závislý na žádné z jeho složek Druhá normální forma relace Samotný požadavek, aby se relace nacházela v první normální formě, tj. aby každý atribut relace byl definován na jednoduché doméně, nevede vždy k nejžádanějším výsledkům. 13

14 Relace R je ve druhé normální formě (2NF), je-li v první normální formě a jestliže pro každý neklíčový atribut platí, že je úplně funkčně závislý na primárním klíči. Proces transformace relace z nižší normální formy (zde v 1.NF) na relaci ve vyšší normální formě (zde ve 2.NF) se nazývá normalizace relace. Relace v některé z vyšších normálních forem je zároveň relací ve všech vůči ní nižších normálních formách. Je zřejmé, že vyšší normální formu relace lze vytvořit vhodnou dekompozicí relace původní. Požaduje se však, aby výchozí relace byla z výsledných komponent rekonstruovatelná, tj. aby při dekompozici nedošlo ke ztrátě informace Třetí normální forma relace Nechť X, Y, Z jsou atributy (jednoduché nebo složené) daného relačního schématu a nechť mezi dvojicemi atributů platí: Pak je atribut Z tranzitivně závislý na atributu X. Nutnost podmínky nezávislosti X na Y vyplývá ze skutečnosti, že v opačném případě by v každém relačním schématu se dvěma a více možnými klíči byly všechny neklíčové atributy tranzitivně závislé na kterémkoliv z klíčů. Relace R je v třetí normální formě (3NF), je-li ve druhé normální formě a platí-li, že žádný neklíčový atribut není tranzitivně závislý na žádném klíči relace R. Z definice relace ve třetí normální formě vyplývají tyto její vlastnosti Žádný neklíčový atribut relace není ani částečně ani tranzitivně závislý na nějakém klíči relace, jsou pouze úplně funkčně závislé na primárním klíči. Neklíčové atributy jsou navzájem nezávislé. Problémy, které mohou u relací v třetí normální formě nastat, mohou však vyplynout ze vzájemně částečně nebo tranzitivně závislých klíčových atributů. Kandidátní klíče, pokud nejsou jednoduché, se totiž mohou částečně překrývat. Dekompozice relací, které vedou ke třetí normální formě, mohou navíc být nejednoznačné a vést k nestejně kvalitním výsledkům. Nedostatky plynoucí ze vzájemných závislostí klíčových atributů eliminuje Boyce - Coddova normální forma BCNF, která vylučuje všechny netriviální funkční závislosti atributů kromě závislostí na klíčích relace. Schéma relace R(A:D) je v Boyce-Coddově normální formě ( BCNF), je-li v první normální formě a platí-li pro každou funkční závislost atributu A na atributu X, která není triviální, že X je klíčem v R a A je neklíčový atribut. Je zřejmé, že každé relační schéma, které je v BCNF je též ve třetí normální formě, nikoliv však naopak. Existují relační schémata ve třetí normální formě, která nejsou v BCNF Transformace konceptuálních schémat Nejpoužívanější konstruktory E - R modelu ENTITA Obecná (bez rozlišení druhu). 14

15 Silná (kmenová, základní, regulární), tj. taková, která existuje nezávisle na jiných entitách. Slabá (popisná) je entita, která je identifikačně závislá na jiné entitě, resp. na jiných entitách. Vazební (asociativní) je entita, která realizuje vazbu mezi entitami. Generalizace (nadtyp). Specializace (podtyp). VZTAH n -ární vztah je vztah obecně mezi n entitami. Binární vztah existuje mezi dvěma entitami. Kardinalita vztahu vyjadřuje max. a min. počet výskytů zúčastněných entit ve vztahu. Existenční závislost (někdy také označována jako tzv. povinné členství ve vztahu) vyjadřuje tu skutečnost, že instance existenčně závislé entity nemohou existovat, aniž by vstoupily do vztahu s nadřazenou entitou. Identifikační závislost je silnější formou existenční závislosti. Identifikačně závislá entita je rovněž existenčně závislá a navíc její instance nelze identifikovat pomocí vlastních atributů a k identifikaci takové entity se používá identifikační klíč nadřazené entity. ATTRIBUT Jednoduchý, tj. dále nedělitelný. Složený z více atributů. Základní, tj. takový, který nelze odvodit z jiných atributů. Odvoditelný z jiných atributů. Vícehodnotový, tj. takový který v rámci jedné instance entity může nabývat více hodnot. KLÍČ Identifikační - slouží k identifikaci jednotlivých instancí entity. V rámci jedné entity smí být pouze jeden. Alternativní - Kandidát na identifikační klíč, který však nebyl vybrán. Slouží k rychlému vyhledávání. Cizí klíč umožňuje modelovat vztahy mezi entitami. Je to atribut entity, který je v nadřazené entitě identifikačním klíčem. Inverzní klíč slouží k rychlému vyhledávání. Jeho hodnoty v rámci jedné entity mohou být duplicitní Principy transformace E-R schématu do relačního Entitní a vztahové typy se převádějí na relace. Čtenář relačního schématu, který nezná konceptuální schéma tedy obecně nemusí být schopen rozlišit, která relace odpovídá entitnímu a která vztahovému typu. Převedení silného entitního typu Entita se převede na relaci. 15

16 Identifikační klíč se převede na primární klíč. Popisné atributy definují domény relace. Problém může nastat v souvislosti s normalizací relací. Cílem je, aby výsledná relace byla aspoň v 3. NF nebo v BCNF. Dekompozice pak způsobí nárůst relací, které nemají odpovídající entity v E-R diagramu. Do jisté míry toto lze řešit pohledy. Reprezentace vztahů vztahy 1 : 1 a) Má-li E1 i E2 nepovinné členství ve vztahu V, definují se 3 relace E1 - R1, E2 - R2, V - R. R bude obsahovat klíče schémat R1 a R2,jako cizí klíče. Libovolný z nich může v R být primárním klíčem. Další atributy v R budou odpovídat atributům ve V. b) Má-li E1 nepovinné a E2 povinné (nebo obráceně). Budou se vytvářet pouze relace R1 a R2. Existenční závislost E2 na E1 vyjádříme tak, že k R2 připojíme jako cizí klíč klíčové atributy R1. Atributy vztahu V budou umístěny do R2. c) Mají-li oba povinné členství, můžeme vytvořit jediné schéma relace R, které vznikne z těchto dvou entit. Primárním klíčem bude libovolný z identifikačních klíčů, přidáme atributy V. vztahy 1 : N Ve vztahu s kardinalitou 1 : N je entita vstupující n -ti instancemi do vztahu nazývána determinantem vztahu. a) Má-li determinant (E1) povinnou účast ve vztahu V, definujeme 2 relace R1 a R2. Ke schématu R1 připojíme klíčové atributy R2. Primární klíč R1 odpovídá identifikačnímu klíči determinantu E1. b) Má-li determinant (E1) nepovinnou účast ve vztahu V, definujeme tři relace R1, R2, R. R bude obsahovat klíče schémat R1 a R2 jako cizí klíče. Klíč schématu R1 bude v R primárním klíčem. Další atributy budou odpovídat atributům vztahu V. Reprezentace vícehodnotových atributů Příklad: Následující příklad ukazuje možnost výskytu vícehodnotového atributu v konceptuálním modelu a jeho transformaci. Analytik sestavil konceptuální schéma tak, že použil vícehodnotový atribut ZAMĚSTNANEC (OSOBNÍ ČÍSLO,... RODNÉ_ČÍSLO_DÍTĚTE: Multi) To konceptuální model připouští Jak převést takovou entitu na relace? 1. Některé relační SŘBD připouštějí tabulky s vícehodnotovými sloupci 2. Jestliže se vícehodnotový atribut váže na maximální počet výskytů m a databázový model připouští hodnotu NULL ve sloupci tabulky, budou atributy v tabulce RODNÉ_ČÍSLO_DÍTĚTE_ i pro i = 1,... m a nevyužité atributy budou mít hodnotu NULL. 3. Zavést dvě relace: 16

17 ZAMĚSTNANEC (OSOBNÍ ČÍSLO,...) DATA_NAROZENÍ (OSOBNÍ ČÍSLO, RODNÉ ČÍSLO DÍTĚTE) Každému dítěti bude odpovídat jedna n -tice v relaci data_narození. Konstrukce klíče je nejednoznačná a) Klíčem může bát složený klíč např. OSOBNÍ ČÍSLO, RODNÉ ČÍSLO DÍTĚTE b) Klíčem může být pouze vícehodnotový atribut RODNÉ ČÍSLO DÍTĚTE Reprezentace slabého entitního typu Slabý entitní typ je reprezentován relací, který kromě svých atributů mái atributy identifikačního vlastníka. Je třeba dbát na to, aby identifikační vlastník byl pouze jeden. Identifikační klíč je pak tvořen množinou atributů slabého entitního typu + atributy identifikačního vlastníka Integrita relačních schémat Požadavek integrity dat v databázi (jejich souladu se zobrazovaným světem objektů) vede k nutnosti definovat pro domény atributů jednotlivých relačních schémat a jejich vzájemné vztahy jistá omezení, která zabraňují možnostem atributů nabývat nereálných hodnot. Tato omezení se formulují pomocí soustavy uzavřených logických formulí v jazyce predikátové logiky. Pro relační báze dat je kromě skutečnosti, že entity i vztahy se reprezentují stejným způsobem, tj. pomocí relací, charakteristickým rysem i to, že splňují tři pravidla integrity. Prvním z těchto pravidel je pravidlo entitní integrity pro relační báze dat a spočívá v požadavku, aby primární klíč relace měl pro všechny její prvky (n-tice) svou hodnotu. Druhé pravidlo integrity je doménová integrita, která požaduje, aby hodnoty atributů odpovídaly předem definovaným doménám (množinám hodnot atributů). Základní definicí domény je datový typ atributu. Kromě toho je však možno definovat podmínky platnosti (logické formule), které musí být při vkládání dat do databáze splněny. Třetí je pravidlo referenční integrity (vztahové), které se týká možností používání "cizích" klíčů relací a spočívá v požadavku, aby ke každé definované hodnotě cizího klíče existovala odpovídající hodnota primárního klíče nadřazené relace. Tomuto tématu se budeme věnovat podrobněji Referenční integrita K definování referenční integrity slouží primární klíč (Primary Key) nezávislé entity a cizí klíč (Foreign Key) závislé entity. Na primární klíč jsou kladeny následující podmínky Hodnota primárního klíče musí být unikátní. Entitní typ může mít pouze jeden primární klíč. Primární klíč může být i složený klíč, tj. složený z více atributů. Každá složka primárního klíče musí být definována jako NOT NULL. Podmínky kladené na cizí klíč Cizí klíč a primární klíč se musí skládat ze stejného počtu atributů. Odpovídající atributy musí být definovány nad stejnými doménami a jejich pořadí musí být stejné. 17

18 Závislý entitní typ může mít více cizích klíčů z více nadřazených entit. Cizí klíč může nabývat hodnoty NULL, pokud definuje pouze existenční typ vztahu. Cizí klíč nesmí nabývat hodnoty NULL, pokud definuje identifikační typ vztahu. Cizí klíč nabývá hodnoty NULL, pokud aspoň jedna jeho složka nabývá hodnoty NULL. Pro nezávislé entitní typy je referenční integrita hlídána u operací DELETE a UPDATE. Pro závislé entitní typy je hlídána operace INSERT a UPDATE Způsoby zachování referenční integrity RESTRICT - při mazání a aktualizaci v nezávislém entitním typu se restriktivně vyžaduje, aby v podřízeném entitním typu byla nejdříve vymazána nebo aktualizována svázaná instance. Neníli tomu tak, mazání resp. aktualizace v nadřazeném entitním typu je zakázáno. Zápis nové instance do podřízeného entitního typu je zakázán, nenachází-li se odpovídající instance v nadřazeném entitním typu. CASCADE - způsobí kaskádovou aktualizaci resp. mazání v podřízeném entitním typu při aktualizaci resp. mazání v entitním typu nadřízeném. Tento způsob může způsobit kaskádovité mazání velkého počtu instancí, proto je třeba jeho použití bedlivě zvážit. SET NULL - při aktualizačních operacích je možno z důvodu zachování referenční integrity použít nastavení cizího klíče na hodnotu NULL. Tento způsob nelze použít u identifikačního typu vztahu, kde cizí klíč podřízeného entitního typu je součástí primárního klíče. Primární klíč (a to žádná jeho složka, pokud se jedná o složený klíč) nesmí nabývat hodnoty NULL. Příklad: Příklad demonstruje jedno z možných nastavení pravidel pro zachování referenční integrity. Typ entity/operace Identifikační vztah Existenční vztah Závislá/Delete Bez omezení Bez omezení Závislá/Insert Restrict Set Null Závislá/Update Restrict Set Null Nezávislá/Delete Cascade Set Null Nezávislá/Insert Bez omezení Bez omezení Nezávislá/Update Cascade Set Null 18

19 Shrnutí: Prostředkem pro správné navržení relačních schémat s důrazem na odstranění redundance dat je normalizace relačních schémat. Je založena na odhalování funkčních závislostí mezi jednotlivými atributy relace. Podmínkou je, aby byly všechny relace v relačním schématu minimálně v 3NF. Při transformaci konceptuálních schémat na relační datová schémata je třeba se držet navržených postupů a především se zabývat typy vztahů mezi jednotlivými entitami, povinným či nepovinným členstvím ve vztahu, typy atributů (vícehodnotový atribut, složený atribut, atd). Relační datové schéma disponuje mocným nástrojem pro udržování konzistence databáze a tímto nástrojem jsou integritní omezení. Existují tři typy integritních omezení, které je třeba při definici schématu databáze definovat. Jedná se o IO doménové, entitní a referenční. Kontrolní otázky: 1. Co je základní vlastností atributů navržených relací pro určení normální formy? 2. Jaké znáte normální formy a co vyjadřují? 3. Jaký je postup při transformaci E-R modelu na relační datový model? 4. Co je to referenční integrita a jak je možné ji hlídat? Pojmy k zapamatování: 1NF, 2NF, 3NF, BCNF Transformace konceptuálních schémat Doménová integrita Entitní integrita Referenční integrita Průvodce studiem: Tato kapitola byla poněkud obsáhlá, ale doufám, že jste ji bez komplikací zvládli. Přece jen se jedná o opakování, čili o věci, které by vám měly být známy. Pokud po prostudování této kapitoly ještě stále existují místa, která vám nejsou jasná, ev. máte o něčem pochybnosti, nerozpakujte se kontaktovat tutora, ev. vyvolat diskusi se svými spolužáky. Pro čtení 19

20 následujících kapitol je totiž bezpodmínečně nutné, abyste tuto opakovací kapitolu zvládli na výbornou! 20

21 2 MODUL ÚVOD DO DATABÁZOVÝCH JAZYKŮ Cíl: Cílem této kapitoly je připomenout čtenáři základní pojmy predikátové logiky, se kterými budou pracovat další kapitoly. Dalším cílem je seznámit čtenáře s pojmem databázové jazyky a provést jejich rozčlenění. Čtenář po prostudování kapitoly by měl umět vyjmenovat symboly a konstrukty predikátové logiky. Dále by měl umět definovat, co to jsou dotazovací jazyky a z jakých částí se skládají a měl by umět definovat, co je to v relačním pojetí dotaz a odpověď. Klíčová slova: JDD, JMD, JRD, dotazovací jazyk, dotaz, relační algebra, relační kalkul, term, atomická formule, formule Opakování některých pojmů predikátové logiky Průvodce studium: Pro definování dotazů v relačních databázích se neobejdeme bez znalostí predikátové logiky. To základní a nejdůležitější, co potřebujete vědět z této oblasti logiky, vám předkládá kapitola Samozřejmě není možné se pouštět do podrobných definic a důkazů, jsou zde uvedeny pouze základní pojmy. Pokud vám nebude cokoli jasné, bude potřeba sáhnout po učebnici nebo skriptech z logiky. Mohu doporučit [7] Symboly predikátové logiky 1) proměnné a, b, c, x, y... 2) n-ární funkční symboly 0-ární funkční symbol je konstanta n-ární predikátové symboly 3)logické spojky,,,, 4) kvantifikátory, Konstrukty predikátové logiky 1) TERM Termem může být konstanta, proměnná, funkce. Vyhodnocením termu se získá prvek množiny hodnot (universa discursu). Př. sin(x), a2 - a + 1, 5, y... 2) ATOMICKÁ FORMULE 21

22 Se skládá z predikátového symbolu, za kterým v závorkách je term. Př. R(x), kde x je n-ticová proměnná, do které se ukládají hodnoty n atributů relace R (n-tice relace R), R je jméno relace (predikátový symbol). Vyhodnocením atomické formule se získá hodnota true nebo false. 3) FORMULE Z atomických formulí lze vytvářet formule pomocí: Logických spojek. Kvantifikátorů. Hodnota formule je vždy true nebo false. Proměnná ve formuli (n-ticová proměnná) může být buď volná nebo vázaná. Proměnná x je vázaná ve formuli A, jestliže A tvoří dosah kvantifikátoru obsahujícího x. Formule, které obsahují alespoň jednu volnou proměnnou, se nazývají otevřené Interpretace formulí Interpretace I se skládá z: 1) Neprázdné množiny U, která se nazývá doména. 2) Množiny n-árních funkcí f pro každý funkční symbol. 3) Množiny n-árních relací R pro každý predikátový symbol. Ohodnocení h proměnných v interpretaci I je funkce: h : Var U, kde Var je množina všech proměnných, U jsou jména prvků světa objektů. Formule A je splněna v interpretaci I, jestliže je pravdivá pro každé ohodnocení proměnných h Databázové jazyky Databázové jazyky, dodávané s příslušným systémem řízení báze dat (SŘBD), se obecně dělí na: 1) Jazyky pro definici dat JDD, angl. DDL (Data Definition Language) Jsou určeny pro správce databáze. Jazyky obsahují prostředky pro definice a modifikaci schématu databáze, definice relací a integritních omezení. Dále prostředky pro definování tzv. pohledů. 2) Jazyky pro manipulaci dat JMD, angl. DML (Data Manipulation Language) Tyto jazyky transformují jeden stav databáze do druhého a představují následující operace: Přidávání dat do databáze (INSERT). Odebírání dat z databáze (DELETE). Změna dat v databázi (UPDATE). Veškeré operace musí být vykonány tak, aby nebyla narušena integrita dat. O integritu databáze se stará SŘBD na základě definovaných integritních omezení. 3) Jazyky pro řízení dat JRD, angl. DCL (Data Control Language) Prostředky pro zpracování transakcí, prostředky administrace databáze atd. 22

23 4) Jazyky pro dotazování - dotazovací jazyky, angl. DQL (Data Query Language) Jazyky pro dotazování (získávání informací z databáze) jsou nejpouživanějšími. V relačních databázích dotazování vychází ze dvou teoretických základů, z relační algebry a relačního kalkulu. Vhodnou interpretací dat uložených v databází lze z databáze získat informace. Proces interpretace dat se dá jednoduše vyjádřit jako proces tvorby dotazu (formule dotazu), vyhodnocení dotazu a poskytnutí odpovědi. V relačních databázích je odpovědí relace, jejíž n- tice splňují podmínky, tj. ohodnocují formuli dotazu jako true. Rozlišujeme tyto dotazovací jazyky: a) Navigační (procedurální, preskriptivní, algebraické). Při formulaci dotazu je třeba zadat algoritmus, jako posloupnost operací prováděných nad relacemi, který zajistí výběr příslušných dat. Navigační jazyky jsou založeny na relační algebře. b) Specifikační (neprocedurální, deskriptivní, deklarativní). Požadavky na výběr se zadávají jako predikát, charakterizující výslednou relaci. Výsledek výběru dat je relace, jejíž n-tice splňují podmínky výběru uvedené ve formuli. Specifikační jazyky jsou založeny na relačním kalkulu. Každý požadavek zadaný v relační algebře se dá vyjádřit v relačním kalkulu a naopak! Definice dotazu Dotaz typu S je funkce q, která pro každou databázi S* poskytne odpověď q(s*), případně je na S* nedefinována. V relačních databázích je q (S*) opět relace. Dotazovací jazyky obsahují: 1) Porovnávací operátory 2) Logické spojky 3) Aritmetické operátory 4) Množinové operátory 5) Relační operátory (projekce, selekce, spojení) 6) Množinové funkce (COUNT) 7) Agregační funkce (MAX, MIN, SUM...) 8) Operátory pro práci s časem Nejpoužívanější relační dotazovací jazyky: SQL, QUEL, QBE Shrnutí: Systémy řízení báze dat, založené na relačním datovém modelu, disponují poměrně velmi dobře propracovaným aparátem tzv. databázových jazyků. Databázové jazyky jsou členěny na jazyky pro definování dat, jazyky pro manipulaci s daty, jazyky pro řízení dat a dotazovací jazyky. Nejfrekventovaněji používané jsou operace dotazovacích jazyků, protože se používají k získávání informací z databáze. Dotazovací jazyky v relační modelu jsou založeny na relační algebře (vychází z množinové matematiky, kterou rozšiřuje o speciální operace) a na relačním kalkulu (vychází z predikátové logiky 1. řádu). 23

24 Kontrolní otázky: 1. Co je to n-ticová proměnná? 2. Co je to term a jakých hodnot může nabývat? 3. Co je to formule a jakých hodnot může nabývat? 4. Jak se člení databázové jazyky v relačních SŘBD? 5. Co je to dotaz, co je to odpověď? Pojmy k zapamatování: JDD JMD JRD Dotazovací jazyky Dotaz - odpověď Relační algebra Relační kalkul Term Atomická formule Formule 2.2 RELAČNÍ ALGEBRA A RELAČNÍ KALKUL Cíl: Kapitola Relační algebra a relační kalkul je z hlediska dalšího pochopení problematiky dotazování v prostředí relačních databází klíčovou. Čtenář po jejím prostudování by měl znát veškeré operace relační algebry a relačního kalkulu a to jak z definice, tak pomocí přepisovacího jazyka. Každý dotaz na data by měl být schopen zapsat v obou dotazovacích jazycích. Každý dotaz v relační algebře by měl umět přepsat do relačního kalkulu a opačně. Klíčová slova: Základní operace relační algebry, odvozené operace, přepisovací jazyk relační algebry, relační kalkul, přepisovací jazyk relačního kalkulu, věta o ekvivalenci. Relační algebra je procedurální jazyk. Skládá se z množiny operací, které jsou uplatňovány na jednu nebo dvě relace. Výsledkem operace relační algebry je opět relace. Soubor základních 24

25 operací relační algebry představuje operace sjednocení, rozdíl, součin, projekce a selekce. Ostatní operace jako je průnik, podíl a spojení jsou operace, které se dají vyjádřit pomocí základních operací a neovlivňují výběrovou schopnost relační algebry Operace relační algebry Sjednocení UNION je binární operace, která se uplatňuje na relace stejného stupně, jejich atributy jsou definovány nad týmiž doménami. Výsledná relace obsahuje řádky buď jedné nebo druhé relace. Duplicitní řádky nejsou připuštěny. Sjednocení relací R a S se označuje R S a je definováno R S = {t t R t S} Příklad: R: A B S: C D x 5 y 8 y 9 z 5 z 1 z 1 R S : x 5 y 9 z 1 y 8 z 5 Rozdíl DIFFERENCE je binární operace, která se uplatňuje na relace stejného stupně, jejich atributy jsou definovány nad týmiž doménami. Výsledná relace obsahuje řádky relace R, které neobsahuje relace S. Rozdíl relací R a S se označuje R - S a je definován R - S = {t t R t S} Příklad: R - S: x 5 y 9 25

26 Součin CARTESIAN PRODUCT je binární operace nad relací R stupně n a relací S stupně m. Součin se označuje R x S a je definován R x S = {rs r R s S} rs = (r 1, r 2,..., r n, s 1, s 2,..., s m ). Stupeň výsledné relace je n+m, kardinalita výsledné relace je n*m. Příklad: R: A B S: C D x 5 y 8 y 9 z 5 z 1 z 1 R x S: x 5 y 8 x 5 z 5 x 5 z 1 y 9 y 8 y 9 z 5 y 9 z 1 z 1 y 8 z 1 z 5 z 1 z 1 Projekce PROJECT Nechť R je relace stupně n. Projekcí je nazýván výběr specifikovaných atributů A i1,...a im, kde 1 ij n a je označován jako R[A]. Projekce je definována R[ A ] = { r[ A ] r R }, kde r[ A ] = (r i1,..., r im ) Příklad: R: A B C R[A]: A R[A,B]: A B a 1 x a a 1 b 2 y b b 2 c 3 z c c 3 a 4 x a 4 26

27 Selekce SELECTION Nechť R je relace stupně n a ϕ( r ) je výraz tvaru i θ a, a θ i resp. i θ j, kde i, j jsou indexy komponent, a je prvek domény, θ je binární predikát (např. <, =, >,,, ). Výběr z relace R podle ϕ se označuje R(ϕ) a je definován R(ϕ) = {r r R ϕ( r ) } Příklad: R: A B C R( A = a ): A B C R( A = C): A B C a 1 x a 1 x a 4 a b 2 y a 4 a c 3 z a 4 a Další operace relační algebry Následující operace se dají vyjádřit pomocí základních operací relační algebry Průnik INTERSECT je binární operace, která se uplatňuje na relace stejného stupně, jejich atributy jsou definovány nad týmiž doménami. Výsledná relace obsahuje řádky jak jedné tak druhé relace. Duplicitní řádky nejsou připuštěny. Průnik relací R a S se označuje R S a je definováno R S = {t t R t S} platí: R S = R - (R -S) Příklad: R: A B S: C D x 5 y 8 y 9 z 5 z 1 z 1 R S: A B z 1 27

28 Spojení JOIN Nechť R je relace stupně m a S je relace stupně n. R[ i θ j] S je spojení relací R a S podle θ na i - tém atributu relace R a j - tém atributu relace S a je definováno R[ i θ j] S = { rs r R s S r[i] θ s[ j]} Platí: R[ i θ j] S = (R x S)[ i θ (m + j)], pro i { 1,2,..., m}, j {1, 2,..., n} Příklad: R: A B S: C D x 5 y 8 y 9 z 5 z 1 z 1 R[ A = C]S: A B C D y 9 y 8 z 1 z 5 z 1 z 1 Podíl QUOTIENT Mějme relaci R stupně m a relaci S stupně n, kde m > n S 0. Podíl R S je relace stupně r - s, a je definován R S = R[i 1,..., i r-s ] - ((R[i 1,..., i r-s ] x S) - R)[i 1,..., i r-s ] Příklad: R: A B C D S: X Y a b c d c d a b e f e f b c e f 28

29 e d c d e d e f Operaci R S rozdělíme na jednotlivé kroky 1. R[A, B]: A B a b b c e d 2. V = R[ A, B] x S: A B X Y a b c d a b e f b c c d b c e f e d c d e d e f 3. (V - R)[A, B]: A B b c 4. R[A, B] - (V - R)[A, B]: A B a b e d Přepisovací jazyk relační algebry Sjednocení Union Relace1 and Relace2 Rozdíl Minus Relace1 and Relace2 Součin Cartesian Relace1 and Relace2 Projekce Project Relace over Seznam_Atributů Selekce Restrict Relace where podmínka Průnik Intersect Relace1 and Relace2 29

30 Spojení Join Relace1 and Relace2 over Atribut Dělení Devide Relace1 by Relace Relační kalkul Relační kalkul vychází z predikátové logiky 1. řádu a v relačních databázích se vyskytuje ve dvou formách. Jedná se o n-ticový a doménový relační kalkul Abeceda n-ticového relačního kalkulu 1. Individuové konstanty (prvky domén, např. '2', 'P3'...) 2. Indexové konstanty (přirozená čísla, případně jména atributů) pomocí těchto konstant se odvoláváme na jednotlivé komponenty n-ticových proměnných 3. n-ticové proměnné, jejich oborem hodnot jsou n-tice prvků domén 4. Predikátové konstanty: unární: {R/R je jméno relace} binární: =, <, >,,, 5. Logické symboly:,,,, 6. Oddělovače: [, ], (, ) Atomické formule relačního kalkulu: 1. R(s) R...unární predikát (jméno relace) s...n-ticová proměnná Tato atomická formule znázorňuje tvrzení, že hodnota n-ticové proměnné s je prvkem relace R s[i] θ u[j] s[i] θ 'a' 'a' θ s[i] s,u...n-ticové proměnné i,j...indexové konstanty 'a'...individuová konstanta θ...binární predikát n-ticové proměnné mohou být volné nebo vázané N-ticová proměnná s je vázaná ve formuli A, jestliže A tvoří dosah kvantifikátoru obsahující s Formule relačního kalkulu 1. Každá atomická formule je formule 2. Jsou -li Φ 1, Φ 2 formule, pak jsou formulemi i Φ 1 Φ 2, Φ 1 Φ 2, Φ 1 30

31 3. Je-li Φ formule a s volná proměnná, pak s (Φ) a s (Φ) jsou rovněž formule. Proměnná se stává v těchto formulích vázanou 4. Nic jiného není formule Přepis z relační algebry do relačního n-ticového kalkulu Sjednocení R S {t t R t S} {t R(t) S(t)} Rozdíl R - S {t t R t S} {t R(t) S(t)} Součin R x S R stupně n, S stupně m {t (n+m) ( u (n) ) ( v (m) ) (R(u) S(v) t[1] =u[1]... t [n] =u[n] t[n+1] = v[1]... t[n+m]=v[m])} Projekce R[i 1, i 2,..., i m ] {t (m) ( u) (R(u) t[1]=u[i 1 ]... t[m] =u[i m ] Selekce {t R(t) ϕ} R(ϕ) Příklad: Příklady požadavků v relačním kalkulu D1: vyučující, kteří vyučují aspoň jeden předmět {t (1) r(v(r) t[1] = r[1])} rel. algebra V[1] D2: nevyučují žádný předmět {t (1) s r(u(s) t[1] = s[1] ( V(r) t[1] r[1]))} rel. algebra U[1]-V[1] D3: vyučují předmět P2 {t (1) r(v(r) t[1] = r[1] r[2] = P2 )} rel.algebra V[2=1]{ P2 }[1] D4: vyučují alespoň jeden předmět, ale ne P2 {t (1) s r(v(s) t[1] = s[1] ( V(r) t[1] r[1] r[2] P2 ))} rel. algebra V[1]-((V[2=1]{ P2 }[1] D5: nevyučují předmět P2 31

32 {t (1) s r(u(s) t[1] = s[1] ( V(r) t[1] r[1] r[2] P2 ))} rel. algebra U[1]-((V[2=1]{ P2 }[1] D6: vyučují jiný předmět než P2 {t (1) r (V(r) t[1] = r[1] r[2] P2 ))} rel. algebra V[2 1]{ P2 }[1] D7: vyučují pouze předmět P2 {t (1) s r(v(s) t[1] = s[1] s[2] = P2 ( V(r) t[1] r[1] r[2] = P2 ))} rel. algebra ((V[2=1]{ P2 }[1])-((V[2 1]{ P2 })[1]) Přepisovací jazyk n-ticového relačního kalkulu Pro přepis dotazu v relačním kalkulu slouží jednoduchý přepisovací jazyk, v němž má dotaz následující syntaxi: seznam_hodnot WHERE formule Seznam hodnot představuje především seznam atributů, spojených n-ticovou proměnnou s danou relací, dále může obsahovat agregační funkce, resp. aritmetické výrazy. Formule se skládá z atomických formulí s unárním predikátem (jména relací s příslušnými n-ticovými proměnnými), atomických formulí s binárním predikátem (porovnávací operátory), logických spojek a kvantifikátorů. Kvantifikátory v relačním kalkulu jsou: Existenční - v přepisovacím jazyku používáme klíčové slovo EXISTS Univerzální - v přepisovacím jazyku používáme klíčové slovo FORALL Příklad: Následující příklady jsou použity z publikace [5]. Mějme následující schéma databáze: KINO (NÁZEV_K, ADRESA) FILM (JMÉNO_F, HEREC, ROK) PROGRAM (NÁZEV_K, JMÉNO_F, DATUM) Veškeré následující příklady budou pracovat s výše uvedeným schématem. Příklad 1: Najděte adresy všech kin. x.adresa where KINO (x) Pro formuli KINO (x) hledáme všechna TRUE ohodnocení proměnné x a z nich bereme komponentu x.adresa V relační algebře jde o projekci KINO [ADRESA] 32

33 Příklad 2: Najděte herce, kteří hrají ve filmu Černí baroni. film.herec where FILM (film) and film.jméno_f = Černí baroni V relační algebře jde o selekci FILM (JMÉNO_F = Černí baroni ) Příklad 3: Proveďte spojení relací PROGRAM a KINO na rovnost. x.název_k, k.adresa, x.jméno_f, x.datum where PROGRAM (x) and exists k(kino (k) and k.název_k = x.název_k) Příklad: Dotaz s existenčním kvantifikátorem. Ve kterých kinech je možné vidět herce M. Brando. Algoritmus: 1. pro každý řádek p tabulky PROGRAM nalezneme řádky f tabulky FILM, které obsahují stejné jméno filmu. p.jméno_f = f.jméno_f 2. v řádcích f zkontrolujeme, zda f. HEREC = M. Brando 3. v případě nalezení alespoň jednoho takového řádku f splňující podmínky 1 a 2 vložíme p. NÁZEV_K do odpovědi. výraz v NRK: p.název_k where PROGRAM (p) and exists f(film (f) and p.jméno_f = f.jméno_f and f.herec = M. Brando ) Příklad: Dotaz s univerzálním kvantifikátorem. Najdi film, který dávají ve všech kinech, která něco hrají. Algoritmus: 1. zafixujeme řádek p tabulky PROGRAM 2. procházíme tabulku PROGRAM po řádcích x tak, že pro každý právě prohlížený řádek x hledáme další řádek y, pro který platí: x.název_k = y.název_k a dále platí, že p.jméno_f = y.jméno_f 3. opakujeme kroky 1 a 2 do vyčerpání tabulky PROGRAM 33

34 výraz v NRK: p.jméno_f where PROGRAM(p) and forall x (PROGRAM(x) and exists y (PROGRAM (y) and y.název_k = x.název_k and p.jméno_f = y.jméno_f)) Obecný tvar existenčně kvantifikovaných formulí EXISTS x (R(x) and F (x)) (1) R(x) označuje, že proměnné se hledají v R* F (x) je podmínkou výběru Obecný tvar univerzálně kvantifikovaných formulí FORALL x (R(x) and F (x)) (2) Výrazy (1) a (2) definují omezené kvantifikátory, které se zapisují EXISTS x Є R(G(x)) FORALL x Є R(G(x)) G(x) je formule, která neobsahuje exists a forall. Proměnná x ve formuli G splňující tuto vlastnost se nazývá volná proměnná. Příklady: 1. Zobrazte všechna kina, v nichž hrají všechny filmy s M. Brando. p.název_k where PROGRAM (p) and forall f(film(f) where f.herec = M. Brando and exists q(program(q) and q.název_k = p.název_k and q.jméno_f = f.jméno_f) 2. Najdi průměrné množství dodaných knih do knihoven mn where mn = AVG (DODÁVÁ, MNOŽSTVÍ) 3. Najdi průměrné množství různých množství dodaných knih musíme nejdříve provést projekci relace DODÁVÁ na atributu MNOŽSTVÍ a teprve pak uplatníme agregační funkci mn where mn = AVG (x.množství where DODÁVÁ (x), MNOŽSTVÍ) 4. Najdi průměrné množství dodaných knih pro každou knihovnu x.název_k, mn where DODÁVÁ (x) and mn = AVG (y where DODÁVÁ (y) and x.název_k = y.název_k, MNOŽSTVÍ) 5. Najdi průměr různých množství dodaných knih pro každou knihovnu 34

35 x.název_k, mn where DODÁVÁ(x) and mn = AVG (y.množství where DODÁVÁ(y) and x.název_k = y.název_k, MNOŽSTVÍ) 6. Vyber knihovny, do kterých bylo dodáno více než 50 knih x.název_k where DODÁVÁ (x) and sum (y where DODÁVÁ (y) and x.název_k = y.název_k, MNOŽSTVÍ) > Najdi pro každou knihovnu minimální a maximální počet dodaných knih x.název_k, mi, ma where DODÁVÁ (x) and mi = min (y where DODÁVÁ(y) and y.název_k = x.název_k, MNOŽSTVÍ) and ma = max (z where DODÁVÁ(z) and z.název_k = x.název_k, MNOŽSTVÍ) 8. Najdi knihovny, kde množství do nich dodávaných knih z Čapkova knihkupectví je menší než 20. x.název_k where DODÁVÁ (x) and sum (y where DODÁVÁ (y) and x.název_k = y.název_k and x.jméno_k = "Čapkovo", MNOŽSTVÍ) < Doménový relační kalkul Nepoužívá n-ticové proměnné, ale jednoduché proměnné. Relace v DRK: R (A : x, B : y, C : z) x, y, z... proměnné obecně: R (A1 : t1,...an : tn ) Obor hodnot proměnných v doménovém relačním kalkulu jsou prvky domén. n-ticový kalkul využívá n-ticové proměnné, doménový kalkul využívá doménové proměnné. Doménové proměnné nejsou strukturovány, neexistují tedy indexové proměnné a indexové konstanty. Predikáty příslušnosti k relaci: n-ticový kalkul...unární predikát R(x) doménový kalkul...n-arní, n závisí na stupni relace Atomické formule doménového relačního kalkulu 1. R(x 1,...x n ) R je jméno relace stupně n, x i, n i 1 35

Modely 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é. 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íce

5. Formalizace návrhu databáze

5. Formalizace návrhu databáze 5. Formalizace návrhu databáze 5.1. Úvod do teorie závislostí... 2 5.1.1. Funkční závislost... 2 5.1.2. Vícehodnotová závislost (multizávislost)... 7 5.1.3. Závislosti na spojení... 9 5.2. Využití teorie

Více

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model Databázové systémy Tomáš Skopal - relační model * relační kalkuly Osnova přednášky relační kalkuly doménový n-ticový Relační kalkuly využití aparátu predikátové logiky 1. řádu pro dotazování rozšíření

Více

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti Relační datový model Integritní omezení funkční závislosti multizávislosti inkluzní závislosti Normální formy Návrh IS Funkční závislosti funkční závislost elementární redundantní redukovaná částečná pokrytí

Více

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče. Primární a cizí klíč Kandidát primárního klíče (KPK) Je taková množina atributů, která splňuje podmínky: Unikátnosti Minimálnosti (neredukovatelnosti) Primární klíč (Primary Key - PK) Je právě jedna množina

Více

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS Relační databázový model Databázové (datové) modely základní dělení klasické databázové modely relační databázový model relační databázový model Základní konstrukt - relace relace, schéma relace atribut,

Více

5. Formalizace návrhu databáze

5. Formalizace návrhu databáze 5. Formalizace návrhu databáze 5.1. Úvod do teorie závislostí... 2 5.1.1. Funkční závislost... 2 5.1.2. Vícehodnotová závislost (multizávislost)... 7 5.1.3. Závislosti na spojení... 9 5.2. Využití teorie

Více

Databázové systémy BIK-DBS

Databázové systémy BIK-DBS Databázové systémy BIK-DBS Ing. Ivan Halaška katedra softwarového inženýrství ČVUT FIT Thákurova 9, m.č. T9:311 ivan.halaska@fit.cvut.cz Kapitola Relační model dat 1 3. Relační model dat (Codd 1970) Formální

Více

J. Zendulka: Databázové systémy 4 Relační model dat 1

J. Zendulka: Databázové systémy 4 Relační model dat 1 4. Relační model dat 4.1. Relační struktura dat... 3 4.2. Integritní pravidla v relačním modelu... 9 4.2.1. Primární klíč... 9 4.2.2. Cizí klíč... 11 4.2.3. Relační schéma databáze... 13 4.3. Relační algebra...

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází 1 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Požadavky kreditového systému. Relační datový model, relace, atributy,

Více

Databáze. Logický model DB. David Hoksza

Databáze. Logický model DB. David Hoksza Databáze Logický model DB David Hoksza http://siret.cz/hoksza Osnova Relační model dat Převod konceptuálního schématu do logického Funkční závislosti Normalizace schématu Cvičení převod do relačního modelu

Více

Hierarchický databázový model

Hierarchický databázový model 12. Základy relačních databází Když před desítkami let doktor E. F. Codd zavedl pojem relační databáze, pohlíželo se na tabulky jako na relace, se kterými se daly provádět různé operace. Z matematického

Více

Relační model dat (Codd 1970)

Relační model dat (Codd 1970) Relační model dat (Codd 1970) Odkud vychází, co přináší? Formální abstrakce nejjednodušších souborů. Relační kalkul a relační algebra (dotazovací prostředky). Metodika pro posuzování kvality relačního

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČ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íce

Databáze I. Přednáška 2

Databá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íce

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1 4. Relační model dat 4.1. Relační struktura dat... 3 4.2. Integritní pravidla v relačním modelu... 9 4.2.1. Primární klíč... 9 4.2.2. Cizí klíč... 11 4.2.3. Relační schéma databáze... 13 4.3. Relační algebra...

Více

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací Obsah přednášky Databázové systémy Logický model databáze normalizace relací normální formy tabulek 0NF, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, DNF denormalizace zápis tabulek relační algebra klasické operace

Více

Analýza a modelování dat 3. přednáška. Helena Palovská

Analý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íce

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Jaký 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íce

8.2 Používání a tvorba databází

8.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íce

Databá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 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

Michal Valenta DBS Databázové modely 2. prosince / 35

Michal Valenta DBS Databázové modely 2. prosince / 35 Relační model dat (Codd 1970) Odkud vychází, co přináší? Formální abstrakce nejjednodušších souborů. Relační kalkul a relační algebra (dotazovací prostředky). Metodika pro posuzování kvality relačního

Více

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky. Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky. Projekt ESF OP VK reg.č. CZ.1.07/2.2.00/28.0209 Elektronické opory a e-learning pro obory výpočtového

Více

Databázové systémy trocha teorie

Databá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íce

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek Otázka 06 - Y01MLO Zadání Predikátová logika, formule predikátové logiky, sentence, interpretace jazyka predikátové logiky, splnitelné sentence, tautologie, kontradikce, tautologicky ekvivalentní formule.

Více

Úvod do databázových systémů

Ú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íce

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Databá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íce

DBS Konceptuální modelování

DBS Konceptuální modelování DBS Konceptuální modelování Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze Michal.Valenta@fit.cvut.cz c Michal Valenta, 2010 BIVŠ DBS I, ZS 2010/11 https://users.fit.cvut.cz/

Více

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel Obsah přednášky Databázové systémy Konceptuální model databáze Codd a návrh relační databáze fáze návrhu pojem konceptuální model základní pojmy entity, relace, atributy, IO kardinalita, 2 historie: RDBMS

Více

Úvod do databázových systémů

Ú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íce

Kapitola 6: Omezení integrity. Omezení domény

Kapitola 6: Omezení integrity. Omezení domény - 6.1 - Omezení domény Referenční integrita Aserce Spouštěče (Triggers) Funkční závislosti Kapitola 6: Omezení integrity Omezení domény Omezení integrity zabraňují poškození databáze; zajišťují, že autorizované

Více

platné nejsou Sokrates je smrtelný. (r) 1/??

platné nejsou Sokrates je smrtelný. (r) 1/?? Predikátová logika plně přejímá výsledky výrokové logiky zabývá se navíc strukturou jednotlivých jednoduchých výroků na základě této analýzy lze odvodit platnost některých výroků, které ve výrokové logice

Více

Databázové systémy. Cvičení 2

Databázové systémy. Cvičení 2 Databázové systémy Cvičení 2 Matematické a databázové relace Matematická relace podmnožina kartézského součinu A = {X, Y}, B = {1,2,3} kartézský součin: A B A B = {(X,1),(X,2),(X,3),(Y,1),(Y,2),(Y,3)}

Více

Predikátová logika. prvního řádu

Predikátová logika. prvního řádu Predikátová logika prvního řádu 2 Predikát Predikát je n-ární relace - vyjadřuje vlastnosti objektů a vztahy mezi objekty - z jednoduchého výroku vznikne vypuštěním alespoň jednoho jména objektu (individua)

Více

DBS relační DB model, relační algebra

DBS relační DB model, relační algebra DBS relační DB model, relační algebra Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2012/13 https://edux.fit.cvut.cz/courses/bi-dbs/

Více

Konceptuální modelování. Pavel Tyl 21. 3. 2013

Konceptuální modelování. Pavel Tyl 21. 3. 2013 Konceptuální modelování Pavel Tyl 21. 3. 2013 Vytváření IS Vytváření IS Analýza Návrh Implementace Testování Předání Jednotlivé fáze mezi sebou iterují Proč modelovat a analyzovat? Standardizované pracovní

Více

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice) - 7.1 - Kapitola 7: Návrh relačních databází Nástrahy návrhu relačních databází Dekompozice (rozklad) Normalizace použitím funkčních závislostí Nástrahy relačního návrhu Návrh relačních databází vyžaduje

Více

4.2 Syntaxe predikátové logiky

4.2 Syntaxe predikátové logiky 36 [070507-1501 ] 4.2 Syntaxe predikátové logiky V tomto oddíle zavedeme syntaxi predikátové logiky, tj. uvedeme pravidla, podle nichž se tvoří syntakticky správné formule predikátové logiky. Význam a

Více

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná ZKOUŠKOVÉ TESTY Leden 2010 souhrn Červené dobře (nejspíš), modré možná Pomocí kterého databázového objektu je implementován ATRIBUT z konceptuálního modelu? sloupec referenční omezení index tabulka Omezení

Více

Databá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 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íce

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace - 3.1 - Struktura relačních databází Relační algebra n-ticový relační kalkul Doménový relační kalkul Rozšířené operace relační algebry Modifikace databáze Pohledy Kapitola 3: Relační model Základní struktura

Více

Kapitola 2: Entitně-vztahový model (Entity-Relationship model) Množiny entit (entitní množiny) Atributy

Kapitola 2: Entitně-vztahový model (Entity-Relationship model) Množiny entit (entitní množiny) Atributy - 2.1 - Kapitola 2: Entitně-vztahový model (Entity-Relationship model) Množiny entit Množiny vztahů Otázky návrhu Plánování mezí Klíče E-R diagram Rozšířené E-R rysy Návrh E-R databázového schématu Redukce

Více

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α 1. JAZYK ATEATIKY 1.1 nožiny nožina je souhrn objektů určitých vlastností, které chápeme jako celek. ZNAČENÍ. x A x A θ A = { { a, b a A = B A B 0, 1 2 a, a,..., a n x patří do množiny A x nepatří do množiny

Více

Databáze SQL SELECT. David Hoksza http://siret.cz/hoksza

Databá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

Otázka č. 1 (bodů za otázku: 4)

Otázka č. 1 (bodů za otázku: 4) Otázka č. 1 (bodů za otázku: 4) Agendy - redundance Která z následujících tvrzení charakterizují redundanci dat v databázi? Je to opakování stejných dat pouze v různých souborech. Je zdrojem nekonzistence

Více

teorie logických spojek chápaných jako pravdivostní funkce

teorie logických spojek chápaných jako pravdivostní funkce Výroková logika teorie logických spojek chápaných jako pravdivostní funkce zabývá se způsoby tvoření výroků pomocí spojek a vztahy mezi pravdivostí různých výroků používá specifický jazyk složený z výrokových

Více

Teorie zpracování dat DATABÁZOVÁ TECHNOLOGIE

Teorie zpracování dat DATABÁZOVÁ TECHNOLOGIE Teorie zpracování dat DATABÁZOVÁ TECHNOLOGIE 1 2. DATABÁZOVÁ TECHNOLOGIE 2.1. Obecnévlastnosti databázovétechnologie 2.2. Entity, atributy, vztahy, integritníomezení 2.3. Architektura databáze 2.4. Databázovéjazyky,

Více

Výroková a predikátová logika - VI

Výroková a predikátová logika - VI Výroková a predikátová logika - VI Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - VI ZS 2017/2018 1 / 24 Predikátová logika Úvod Predikátová logika Zabývá

Více

Databáze I. 5. přednáška. Helena Palovská

Databáze I. 5. přednáška. Helena Palovská Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma

Více

Okruh č.3: Sémantický výklad predikátové logiky

Okruh č.3: Sémantický výklad predikátové logiky Okruh č.3: Sémantický výklad predikátové logiky Predikátová logika 1.řádu formalizuje úsudky o vlastnostech předmětů a vztazích mezi předměty pevně dané předmětné oblasti (univerza). Nebudeme se zabývat

Více

Úvod do databázových systémů. Lekce 1

Úvod do databázových systémů. Lekce 1 Úvod do databázových systémů Lekce 1 Sylabus Základní pojmy DBS Životní cyklus DB, normalizace dat Modelování DBS, ER diagram Logická úroveň modelu, relační model Relační algebra a relační kalkul Funkční

Více

Krité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ů 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íce

Informační systémy ve zdravotnictví. 6. cvičení

Informač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íce

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace Téma 2.2 Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace Obecný postup: Každá tabulka databáze by měla obsahovat pole (případně sadu polí), které jednoznačně identifikuje každý

Více

Databázové systémy. Cvičení 3

Databázové systémy. Cvičení 3 Databázové systémy Cvičení 3 Normální formy relací normální formy relací definují určité vlastnosti relací, aby výsledná databáze měla dobré vlastnosti, např. omezena redundance dat snažíme se převést

Více

Úvod do databázových systémů

Ú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íce

Databázové systémy úvod

Databázové systémy úvod Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2011 BI-DBS, ZS 2011/12 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal

Více

Formální systém výrokové logiky

Formální systém výrokové logiky Formální systém výrokové logiky 1.Jazyk výrokové logiky Nechť P = {p,q,r, } je neprázdná množina symbolů, které nazýváme prvotní formule. Symboly jazyka L P výrokové logiky jsou : a) prvky množiny P, b)

Více

Databázové systémy úvod

Databázové systémy úvod Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2012/13 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal

Více

Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola

Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Co je to databáze? Jaké

Více

Úvod do databázových systémů 10. cvičení

Úvod do databázových systémů 10. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů 10. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2012 Opakování Univerzální

Více

TEORIE ZPRACOVÁNÍ DAT

TEORIE ZPRACOVÁNÍ DAT Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky TEORIE ZPRACOVÁNÍ DAT pro kombinované a distanční studium Jana Šarmanová Ostrava 2003 Jana Šarmanová, 2003 Fakulta

Více

Databázové systémy. Ing. Radek Holý

Databá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íce

Modely Herbrandovské interpretace

Modely Herbrandovské interpretace Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší

Více

Databázové systémy Tomáš Skopal

Databázové systémy Tomáš Skopal Databázové systémy Tomáš Skopal - relační model * funkční závislosti, odvozování * normální formy Osnova přednášky Armstrongova pravidla atributové a funkční uzávěry normální formy relačních schémat Armstrongova

Více

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,

Více

4IT218 Databáze. 4IT218 Databáze

4IT218 Databáze. 4IT218 Databáze 4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Program přednášek

Více

Databáze I. Přednáška 6

Databá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íce

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 OBJECT DEFINITION LANGUAGE Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 ODL a OQL ODL Objektové Object Definition Language popis objektového schéma SQL DDL Relační Data Definition Language příkazy CREATE,

Více

Dotazování v relačním modelu a SQL

Dotazová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íce

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

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 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íce

Terminologie v relačním modelu

Terminologie v relačním modelu 3. RELAČNÍ MODEL Relační model reprezentuje databázi jako soubor relací. Každá relace představuje tabulku nebo soubor ( ve smyslu soubor na nosiči dat ). Terminologie v relačním modelu řádek n-tice ( n-tuple,

Více

Výroková a predikátová logika - VII

Výroková a predikátová logika - VII Výroková a predikátová logika - VII Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - VII ZS 2018/2019 1 / 15 Platnost (pravdivost) Platnost ve struktuře

Více

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony. Booleovská algebra. Booleovské binární a unární funkce. Základní zákony. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz

Více

Databázové systémy. Přednáška 1

Databázové systémy. Přednáška 1 Databázové systémy Přednáška 1 Vyučující Ing. Martin Šrotýř, Ph.D. K614 Místnost: K311 E-mail: srotyr@fd.cvut.cz Telefon: 2 2435 9532 Konzultační hodiny: Dle domluvy Databázové systémy 14DATS 3. semestr

Více

04 - Databázové systémy

04 - Databázové systémy 04 - Databázové systémy Základní pojmy, principy, architektury Databáze (DB) je uspořádaná množina dat, se kterými můžeme dále pracovat. Správa databáze je realizována prostřednictvím Systému pro správu

Více

0. ÚVOD - matematické symboly, značení,

0. ÚVOD - matematické symboly, značení, 0. ÚVOD - matematické symboly, značení, číselné množiny Výroky Výrok je každé sdělení, u kterého lze jednoznačně rozhodnout, zda je či není pravdivé. Každému výroku lze proto přiřadit jedinou pravdivostní

Více

6. blok část C Množinové operátory

6. 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íce

10. blok Logický návrh databáze

10. blok Logický návrh databáze 10. blok Logický návrh databáze Studijní cíl Tento blok je věnován převodu konceptuálního návrhu databáze na návrh logický. Blok se věnuje tvorbě tabulek na základě entit z konceptuálního modelu a dále

Více

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: 3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...

Více

Matematická logika. Miroslav Kolařík

Matematická logika. Miroslav Kolařík Matematická logika přednáška šestá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika

Více

Krité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ů 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íce

Databáze I. 4. přednáška. Helena Palovská

Databáze I. 4. přednáška. Helena Palovská Databáze I 4. přednáška Helena Palovská palovska@vse.cz Mapování ER modelu do relačního DB schématu Od 80. let 20. stol. znám algoritmus, implementován v CASE nástrojích Rutinní postup s volbami rozhodnutí

Více

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D. Databáze 2013/2014 Konceptuální model DB RNDr. David Hoksza, Ph.D. http://siret.cz/hoksza Osnova Organizace Stručný úvod do DB a DB modelování Konceptuální modelování Cvičení - ER modelování Náplň přednášky

Více

Matematika B101MA1, B101MA2

Matematika B101MA1, B101MA2 Matematika B101MA1, B101MA2 Zařazení předmětu: povinný předmět 1.ročníku bc studia 2 semestry Rozsah předmětu: prezenční studium 2 + 2 kombinované studium 16 + 0 / semestr Zakončení předmětu: ZS zápočet

Více

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Úvod do informatiky přednáška čtvrtá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Pojem relace 2 Vztahy a operace s (binárními) relacemi

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relač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íce

Návrh databázového modelu

Návrh databázového modelu Návrh databázového modelu Informační a znalostní systémy 1 2 Konflikty 3 návrh musí pokrývat požadavky zadavatele návrhbyměl reflektovat i možné budoucí poslání návrh od shora dolů zdola nahoru Vývoj modelu

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou

Více

Database engine (databázový stroj, databázový motor, databázové jádro) Systém řízení báze dat SŘBD. Typy SŘBD podle způsobu práce s daty

Database engine (databázový stroj, databázový motor, databázové jádro) Systém řízení báze dat SŘBD. Typy SŘBD podle způsobu práce s daty Systém řízení báze dat SŘBD programový systém umožňující vytvoření, údržbu a použití báze dat databáze program Database engine (databázový stroj, databázový motor, databázové jádro) funkce: přenos (načítání)

Více

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

Relač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íce

Matematická analýza 1

Matematická analýza 1 Matematická analýza 1 ZS 2019-20 Miroslav Zelený 1. Logika, množiny a základní číselné obory 2. Limita posloupnosti 3. Limita a spojitost funkce 4. Elementární funkce 5. Derivace 6. Taylorův polynom Návod

Více

Databázové systémy BIK-DBS

Databázové systémy BIK-DBS Databázové systémy BIK-DBS Ing. Ivan Halaška katedra softwarového inženýrství ČVUT FIT Thákurova 9, m.č. T9:311 ivan.halaska@fit.cvut.cz Stránka předmětu: https://edux.fit.cvut.cz/courses/bi-dbs/parttime/start

Více

6. blok část B Vnořené dotazy

6. 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íce

Databáze I. 1. přednáška. Helena Palovská

Databá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íce

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody 37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody Využití databázových indexů Databázové indexy slouží ke zrychlení přístupu k datům a měly by se používat

Více

Databáze I. Přednáška 3

Databáze I. Přednáška 3 Databáze I Přednáška 3 Normální formy relací normální formy relací definují určité vlastnosti relací, aby výsledná databáze měla dobré vlastnosti, např. omezena redundance dat snažíme se převést navržené

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce

Více

Databázové systémy Cvičení 5.3

Databá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íce