- 1.1 - Kapitola 1: Úvod PB154 Základy databázových systém ů 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 transakcí • Správa ukládání dat • Správce databáze • Uživatelé databáze • Celková struktura systému Systém pro správu databáze (Database Management Systém DBMS) • Soubor dat ve vzájemném vztahu • Sada program ů pro p ř ístup k dat ů m • DBMS obsahuje informace o jednom konkrétním „podnikání“ • DBMS poskytuje prost ř edí, které je pohodlné i ú č inné Ú č el databázových systém ů Systémy pro správu databází byly vyvinuty kv ů li zvládnutí následujících problém ů p ř i zpracování soubor ů v tradi č ních opera č ních systémech: • Redundance a inkonsistence dat • Problémy s p ř ístupy k dat ů m • Izolace dat – r ů zné soubory a formáty • Problémy s integritou • Jedine č nost (atomicita) aktualizací • Sou č asný p ř ístup více uživatel ů • Bezpe č nostní problémy - 1.2 - Kapitola 1: Úvod PB154 Základy databázových systém ů Pohled na data Architektura databázového systému: Úrove ň „pohled ů “ ... pohled 1 pohled 2 pohled n logická úrove ň fyzická úrove ň Úrovn ě abstrakce • Fyzická úrove ň : popisuje, jak je záznam (nap ř customer ) uložen • Logická úrove ň : popisuje data uložená v databázi a vztahy mezi nimi. type customer = record name : string; street : string; city : integer; end ; • Úrove ň „pohled ů “: aplika č ní programy skrývají detaily o typech dat. Pohledy mohou také skrývat informace (jako nap ř plat ) – nap ř . z bezpe č nostních d ů vod ů Instance a schémata • Analogie s typy a prom ě nnými v programovacích jazycích • Schéma – logická struktura databáze (nap ř . množina zákazník ů a ú č t ů + vztah mezi nimi) • Instance – aktuální obsah databáze v konkrétním č asovém okamžiku Nezávislost dat • Možnost m ě nit definici schématu na jedné úrovni bez vlivu na definici schématu na jiné vyšší úrovni. • Rozhraní mezi r ů znými úrovn ě mi a komponentami by m ě la být dob ř e definována, aby zm ě ny v n ě kterých č ástech nem ě ly významný vliv na jiné č ásti. • Dva stupn ě nezávislosti dat: – Fyzická nezávislost dat – Logická nezávislost dat - 1.3 - Kapitola 1: Úvod PB154 Základy databázových systém ů Modely dat • Sada nástroj ů pro popis: – dat – vztah ů mezi daty – sémantiky dat – omezení dat ( data constraints ) • Logické modely založené na objektech – entitn ě -vztahový model (entity-relationship model) – objektov ě orientovaný model – sémantický model – funkcionální model • Logické modely založené na záznamech – rela č ní model (nap ř . MySQL, Oracle) – sí ť ový model – hierarchický model (nap ř . IMS) Entitn ě -vztahový model (Entity-relationship model) P ř íklad entitn ě -vztahového diagramu zákazník vkladatel ú č et rodné č íslo jméno m ě sto ulice z ů statek č íslo ú č tu Rela č ní model P ř íklad dat v tabulce v rela č ním modelu: jméno zákazníka rodné č íslo ulice m ě sto č íslo ú č tu Johnson 800327/6655 Alma Palo Alto A-101 Smith 735203/5312 North Rye A-215 Johnson 800327/6655 Alma Palo Alto A-201 Jones 605229/2929 Main Harrison A-217 Smith 735203/5312 North Rye A-201 č íslo ú č tu z ů statek A-101 500 A-201 900 A-215 700 A-217 750 - 1.4 - Kapitola 1: Úvod PB154 Základy databázových systém ů Jazyk pro definici dat (Data definition language; DDL) • Zna č ení pro specifikaci definice schématu databáze • DDL kompilátor generuje množinu tabulek uložených v datovém slovníku ( Data dictionary ) • Datový slovník obsahuje metadata (data o datech) • Jazyk pro ukládání a definice dat ( Data storage and definition language ) – speciální typ DDL, pomocí kterého se specifikuje struktura uložení dat a metody použité databázovým systémem k p ř ístupu k dat ů m Jazyk manipulace s daty (Data manipulation language; DML) • Jazyk pro zp ř ístupn ě ní a manipulaci s daty organizovanými p ř íslušným datovým modelem • Dv ě t ř ídy jazyk ů – Procedurální – uživatel specifikuje, která data jsou vyžadována a jak je získat – Neprocedurální (deklarativní) – uživatel specifikuje, která data jsou vyžadována, ale ne, jak je získat Správa transakcí (Transaction Management) • Transakce je sada operací, které p ř edstavují jednu logickou funkci v databázové aplikaci • Správa transakcí zajiš ť uje, že databáze z ů stává v konzistentním stavu nezávisle na selhání systému (nap ř . výpadky energie a pády OS) nebo selhání transakcí. • Správa soub ě žnosti ( Concurrency-control manager ) dohlíží na vzájemné ovliv ň ování mezi sou č asn ě probíhajícími transakcemi, aby byla zajišt ě na konzistence databáze. Správa ukládání dat (Storage Management) • Správce ukládání je programový modul, který poskytuje rozhraní mezi daty uloženými v databázi na nízké úrovni a aplikacemi a dotazy posílanými systému. • Správce ukládání je zodpov ě dný za následující úlohy: – interakce se správcem soubor ů – efektivní ukládání, získávání a aktualizace dat Správce databáze (Database Administrator) • Koordinuje všechny aktivity v databázovém systému; má dobré znalosti o informa č ních zdrojích a pot ř ebách podniku. • Povinnosti správce databáze zahrnují: – Definice schématu – Definice struktury ukládání a metody p ř ístupu – Modifikace schématu a fyzické organizace – P ř id ě luje uživatel ů m práva p ř ístupu k databázi – Specifikuje integritní omezení – Sty č ný bod s uživateli – Monitoruje výkon a zodpovídá za zm ě ny v požadavcích - 1.5 - Kapitola 1: Úvod PB154 Základy databázových systém ů Uživatelé databáze (Database Users) • Uživatelé jsou rozd ě leni podle toho, jakým zp ů sobem spolupracují se systémem • Aplika č ní programáto ř i – pracují se systémem pomocí volání DML • Chyt ř í uživatelé – formulují dotazy v databázovém dotazovacím jazyku • Speciální uživatelé – píší speciální databázové aplikace, které nespadají do klasického zpracování dat • Naivní uživatelé – spouští jeden z p ř edem napsaných aplika č ních program ů Celková struktura systému naivní uživatelé aplika č ní programáto ř i chyt ř í uživatelé správce databáze uživatelé aplika č ní rozhraní aplika č ní programy dotazy schéma databáze systém pro správu databáze ( DBMS ) zpracování dotaz ů správce ukládání dat kód aplika č ních program ů vestav ě ný DML preprocesor DML kompilátor DDL interpret vyhodnocování dotaz ů správce transakcí správce vyrovn. pam ě ti správce soubor ů ukládání na disk indexy statistická data datové soubory datový slovník - 2.1 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů 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 E-R schématu na tabulky Množiny entit (entitní množiny) • Databáze m ů že být modelována jako: – množina entit – vztahy mezi entitami • Entita je objekt, který existuje a je odlišitelný od ostatních objekt ů Nap ř .: n ě jaká osoba, spole č nost, událost, rostlina • Množina entit je skupina entit stejného typu, které sdílejí stejné vlastnosti. Nap ř .: skupina všech osob, firem, strom ů Atributy • Entita je reprezentována množinou atribut ů , to jsou popisné vlastnosti všech č len ů množiny entit. Nap ř .: zákazník = ( jméno, rodné_ č íslo, ulice, m ě sto ) ú č et = ( č íslo ú č tu, z ů statek ) tj. entita = ( atributy, ... ) • Doména – množina povolených hodnot pro každý atribut • Typy atribut ů : – Jednoduché atributy ( jméno ) a složené atributy ( datum ). – Atributy s jednoduchou hodnotou ( single-valued ) (nap ř jméno ) a s násobnou hodnotou ( vícehodnotové ) ( multi-valued ) (nap ř telefonní č ísla ) – Nulové atributy (nap ř .: nemá telefon ) ( null ) – Odvozené atributy (nap ř .: v ě k ) - 2.2 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů Množiny vztah ů • Vztah je spojení mezi n ě kolika entitami Nap ř .: Novák vkladatel A-102 entita zákazník množina vztah ů entita ú č et • Množina vztah ů je matematická relace mezi n ≥ 2 entitami, každá je braná z konkrétní množiny entit {( e 1 , e 2 , ..., e n ) | e 1 ∈ E 1 , e 2 ∈ E 2 , ..., e n ∈ E n } kde ( e 1 , e 2 , ..., e n ) je vztah , e 1 , e 2 , ..., e n jsou entity a E 1 , E 2 , ..., E n entitní množiny nap ř .: (Novák, A-102) ∈ vkladatel • Množina vztah ů m ů že mít také atributy. Nap ř . množina vztah ů vkladatel mezi množinami entit zákazník a ú č et m ů že mít atribut (poslední) datum p ř ístupu zákazník vkladatel ú č et rodné č íslo jméno m ě sto ulice z ů statek č íslo ú č tu datum p ř ístupu Stupe ň vztahu • Ukazuje po č et množin entit, které jsou sou č ástí množiny vztah ů • Množiny vztah ů , které zahrnují 2 množiny entit, se nazývají binární (nebo stupn ě 2). Obecn ě , v ě tšina vztah ů v databázovém systému je binární. • Množiny vztah ů m ů žou zahrnovat více než 2 množiny entit. Nap ř . množiny entit zákazník , p ů j č ka a pobo č ka m ů žou být spojeny ternární (stupn ě 3) množinou vztah ů CLB - 2.3 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů Role Množiny entit u vztah ů nemusí být rozdílné jméno rodné č íslo tel. č íslo zam ě stnanec pracuje pro manažer pracovník • Popisky manažer a pracovník jsou nazývány role ; specifikují, jak na sebe entity typu zam ě stnanec vzájemn ě p ů sobí p ř es množinu vztah ů pracuje pro • Role jsou v E-R diagramech znázorn ě ny popisky u č ar, které spojují koso č tverce s obdélníky. • Popisky rolí jsou dobrovolné a jsou používány pro zvýrazn ě ní sémantiky (významu) vztahu Otázky návrhu (Design Issues) • Použití entitní množiny vs. atributu Výb ě r závisí zejména na struktu ř e podniku a na významu daného atributu. Nap ř .: student – ro č ník • Použití entitní množiny vs. množiny vztah ů Možným vodítkem m ů že být sestrojení množiny vztah ů pro popis akce, která se odehrává mezi entitami. Nap ř .: vkladatel • Binární vs. n -ární množiny vztah ů P ř estože je možné nahradit ne-binární ( n -ární, pro n > 2) množinu vztah ů n ě kolika r ů znými binárními množinami vztah ů , n -ární ukazuje mnohem jasn ě ji, že n ě kolik entit je sou č ástí jednoho vztahu. Nap ř zákazník , p ů j č ka , pobo č ka Č etnosti vztah ů (Mapping Cardinalities) • Ozna č uje po č et entit, se kterými mohou být ostatní entity propojeny pomocí množiny vztah ů • Nejužite č n ě jší je v popisu binárních množin vztah ů • Pro binární množinu vztah ů musí být č etnost jednoho z následujících typ ů : – jedna na jednu – jedna na mnoho – mnoho na jednu – mnoho na mnoho • Mezi t ě mito typy rozlišujeme kreslením bu ď šipky ( Æ ) zna č ící jeden nebo normální č áry (–) zna č ící mnoho mezi množinou entit a vztah ů - 2.4 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů Vztah jedna na jednu (One-to-one) rodné č íslo • Zákazník je spojen s nejvýše jednou p ů j č kou vztahem vyp ů j č ovatel • P ů j č ka je spojena s nejvýše jedním zákazníkem vztahem vyp ů j č ovatel Vztahy jedna na mnoho a mnoho na jednu (One-to-many a many-to- one) • Ve vztahu jedna na mnoho je p ů j č ka spojena s nejvýše jedním zákazníkem a zákazník je spojen s žádnou nebo n ě kolika p ů j č kami vztahem vyp ů j č ovatel • Ve vztahu mnoho na jednu je p ů j č ka spojena s žádným nebo n ě kolika zákazníky a zákazník je spojen s nejvýše jednou p ů j č kou vztahem vyp ů j č ovatel zákazník vyp ů j č ov atel p ů jč ka ulice jméno m ě sto č íslo ú č tu č ástka rodné č íslo zákazník vyp ů j č ov atel p ů jč ka jméno m ě sto ulice č íslo ú č tu č ástka zákazník vyp ů j č ov atel rodné č íslo p ů jč ka ulice jméno m ě sto č íslo ú č tu č ástka - 2.5 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů Vztah mnoho na mnoho (Many-to-many) zákazník vyp ů j č ov atel p ů jč ka rodné č íslo jméno m ě sto ulice č ástka č íslo ú č tu • Zákazník je spojen s žádnou nebo n ě kolika p ů j č kami vztahem vyp ů j č ovatel • P ů j č ka je spojena s žádným nebo n ě kolika zákazníky vztahem vyp ů j č ovatel Existen č ní závislost • Závisí-li existence entity x na existenci entity y , pak x se nazývá existen č n ě závislé ( existence dependent ) na y – y je dominantní entita (v p ř íkladu níže p ů j č ka ) – x je pod ř ízená entita (v p ř íkladu níže splátka ) • Je-li entita p ů j č ka smazána, pak všechny s ní spojené entity splátka musí být smazány také. p ů j č ka-splátka p ů j č ka splátka Klí č e • Super klí č množiny entit je množina jednoho nebo více atribut ů , jejichž hodnoty jednozna č n ě ur č ují entitu (tedy klí č je podmnožina atribut ů – nap ř . všechny atributy). • Kandidátní klí č množiny entit je minimální super klí č – rodné č íslo je kandidátní klí č entity zákazník – č íslo ú č tu je kandidátní klí č je kandidátní klí č entity ú č et • Protože m ů že existovat n ě kolik kandidátních klí čů , jeden z nich je vybrán jako primární klí č • Sjednocení primárních klí čů zú č astn ě ných entitních množin ur č uje kandidátní klí č pro množinu vztah ů – p ř i výb ě ru primárního klí č e musíme dávat pozor na č etnosti vztah ů a sémantiku množiny vztah ů – nap ř . ( rodné č íslo , č íslo ú č tu ) je primární klí č množiny vztah ů vkladatel - 2.6 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů Komponenty E-R diagramu • Obdélníky reprezentují množiny entit. • Elipsy reprezentují atributy. • Koso č tverce reprezentují množiny vztah ů • Č áry spojují atributy s množinami entit a množiny entit s množinami vztah ů • Dvojité elipsy reprezentují vícehodnotové atributy. • Č árkované elipsy ozna č ují odvozené atributy. • Atributy primárního klí č e jsou podtržené. Slabé množiny entit • Množina entit, která nemá primární klí č , se nazývá slabá množina entit • Existence slabé množiny entit závisí na existenci silné množiny entit; musí být spojena se silnou množinou vztahem mnoho na jednu. • Diskriminátor ( parciální klí č ) slabé množiny entit je množina atribut ů , která od sebe odlišuje entity slabé množiny • Primární klí č slabé množiny je tvo ř en primárním klí č em silné množiny , na níž je tato množina závislá a parciálním klí č em této slabé množiny. splátka p ů j č ka č íslo p ů j č ky č ástka p ů j č ka- splátka č íslo platby datum platby č ástka • Slabé množiny entity znázor ň ujeme dvojitým obdélníkem. • Parciální klí č slabé množiny entit se podtrhává p ř erušovanou č árou. • č íslo splátky – parciální klí č množiny entit splátka • Primární klí č pro množinu splátka je ( č íslo p ů j č ky , č íslo splátky ) - 2.7 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů Specializace • Tvo ř íme podskupiny v množin ě entit, které jsou r ů zné od ostatních entit v množin ě (proces seshora dol ů ) • Tyto podskupiny se stávají množinami entit nižší úrovn ě , které mají atributy nebo jsou sou č ástí množin vztah ů , které se nepromítají do množiny vztah ů vyšší úrovn ě • Znázor ň ujeme trojúhelníkovou komponentou ozna č enou ISA ( termínovaný vklad „je ( is a )“ ú č et ) ú č et č íslo ú č tu z ů statek ISA termínovaný-ú č et b ě žný-ú č et úrok p ř e č erpání ISA gold senior standard po č et šek ů úrok datum nar. Min.z ů statek Generalizace (Zobecn ě ní) • Kombinujeme n ě kolik množin entit, které sdílejí stejné rysy do množiny entit vyšší úrovn ě (proces zezdola nahoru) • Specializace a generalizace jsou jednoduše vzájemn ě inverzní; jsou reprezentovány E-R diagramem stejným zp ů sobem. • D ě di č nost atribut ů – entita nižší úrovn ě d ě dí všechny atributy a ú č asti ve vztazích z množiny entit vyšší úrovn ě - 2.8 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů Omezení pro specializaci/generalizaci Omezení na to, které entity mohou být prvky entitní množiny na nižší úrovni: • omezení daná n ě jakou podmínkou • omezení definovaná uživatelem (pro každou entitu zvláš ť ) Omezení na to, jestli m ů že entita pat ř it jen do jedné nebo do více entitních množin na jedné úrovni jedné generalizace: • disjunktní • p ř ekrývající se Omezení na to, jestli každá entita z vyšší t ř ídy musí nebo nemusí pat ř it do jedné z entitních množin na nižší úrovni: • úplná specializace • č áste č ná specializace Agregace • Dlužník ( zákazník ) m ů že být kontrolován ú ř edníkem zákazník vyp ů j č ov atel p ů jč ka sociální zabezpe č ení jméno m ě sto ulice č ástka č íslo ú č tu ú ř edník zam ě stnanec rodné č íslo jméno m ě sto ulice rodné č íslo tel- č íslo jméno • Množiny vztah ů vyp ů j č ovatel a ú ř edník reprezentují stejnou informaci. • Tuto redundanci eliminujeme agregací – Se vztahem zacházíme jako s abstraktní entitou – Umož ň uje vztahy mezi vztahy – Abstrakce vztahu do nové entity - 2.9 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů • Následující diagram reprezentuje: – Zákazník si vezme p ů j č ku – Zam ě stnanec m ů že být ú ř edníkem pro dvojici zákazník-p ů j č ka zákazník vyp ů j č ov atel p ů jč ka sociální zabezpe č ení jméno m ě sto ulice č ástka č íslo ú č tu ú ř edník zam ě stnanec rodné č íslo jméno m ě sto ulice rodné č íslo tel- č íslo jméno Rozhodnutí o návrhu E-R schématu • Použití atributu nebo množiny entit pro reprezentaci objektu. • Je význam reálného sv ě ta lépe vyjád ř en entitní množinou nebo množinou vztah ů ? • Použití ternárního vztahu vs. páru binárních vztah ů • Použití silných nebo slabých množin entit. • Použití generalizace – p ř ispívá k modularit ě návrhu. • Použití agregace – m ů žeme zacházet s agregovanou množinou entit jako s jednotkou bez ohledu na podrobnosti a její vnit ř ní strukturu. - 2.10 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů P ř evod E-R schématu na tabulky • Primární klí č e umož ň ují vyjád ř it množiny entit a vztah ů jako tabulky reprezentující obsah databáze. • Databáze, která odpovídá E-R diagramu, m ů že být reprezentována jako kolekce tabulek. • Pro každou množinu entit a vztah ů je jedine č ná tabulka, která je spojená se jménem p ř íslušné množiny entit nebo vztah ů • Každá tabulka má po č et sloupc ů odpovídající atribut ů m dané množiny entit/vztah ů . Sloupce mají jedine č ná jména v rámci jedné tabulky. • P ř evod E-R diagramu na tabulky je základ pro odvozování návrhu rela č ní databáze z E-R diagramu. Reprezentace množin entit tabulkami • Silná množina entit se p ř evede na tabulku se stejnými atributy. jméno rodné č íslo ulice m ě sto Starý 800327/6655 Lidická Brno Slavík 645326/1258 Úzká Klatovy Novák 891117/1111 Lidická Brno Tabulka zákazník • Slabá množina entit se p ř evede na tabulku, která obsahuje i sloupec pro primární klí č identifika č ní silné entitní množiny. č íslo p ů j č ky č íslo splátky datum splátky č ástka splátky L-17 5 10.5.1996 50 L-23 11 17.5.1996 75 L-15 22 23.5.1996 300 Tabulka splátka Reprezentace množin vztah ů tabulkami • Množina vztah ů mnoho na mnoho je reprezentována jako tabulka se sloupci pro primární klí č e dvou zú č astn ě ných entitních množin a sloupce pro popisné atributy množiny vztah ů rodné č íslo č íslo ú č tu datum p ř ístupu ... ... ... Tabulka vkladatel • Tabulka odpovídající množin ě vztah ů spojující slabou množinu entit s její identifika č ní silnou množinou je zbyte č ná. Tabulka splátka již obsahuje informace, které by se objevily v tabulce p ů j č ka-splátka (tj. sloupce č íslo p ů j č ky a č íslo splátky ) - 2.11 - Kapitola 2: Model vztahu mezi entitami PB154 Základy databázových systém ů Reprezentace generalizace tabulkami • Metoda č . 1: Sestrojíme tabulku pro nad ř azenou entitu ú č et . Sestrojíme tabulku pro každou entitní množinu, která odvozena (na nižší úrovni) – zahrneme do t ě chto tabulek i primární klí č generalizované množiny. tabulka atributy tabulky ú č et č íslo ú č tu, z ů statek, typ ú č tu termínovaný ú č et č íslo ú č tu, úroková sazba b ě žný ú č et č íslo ú č tu, p ř ekro č ení • Metoda č . 2: Sestrojíme tabulku jen pro každou entitní množinu na nižší úrovni. tabulka atributy tabulky termínovaný ú č et č íslo ú č tu, z ů statek, úroková sazba b ě žný ú č et č íslo ú č tu, z ů statek, p ř ekro č ení Metoda č . 2 netvo ř í žádnou tabulku pro generalizovanou entitu ú č et Vztahy odpovídající agregaci zákazník jméno rodné č íslo ulice m ě sto p ů j č ka č íslo p ů j č ky č ástka vyp ů j č ovatel rodné č íslo č íslo p ů j č ky zam ě stnanec rodné č íslo jméno tel. č íslo ú ř edník rodné č íslo (zam ě stnanec) rodné č íslo (zákazník) č íslo p ů j č ky - 3.1 - Kapitola 3: Rela č ní model PB154 Základy databázových systém ů Kapitola 3: Rela č ní model • 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 Základní struktura • M ě jme množiny A 1 , A 2 , ..., A n relace r je podmnožina kartézského sou č inu A 1 × A 2 × ... × A n . Tedy relace r je množina n-tic ( a 1 , a 2 , ..., a n ), kde a i ∈ A i • P ř íklad: je-li jméno = {Novák, Starý, Coufal, Liška} ulice = {Hlavní, Severní, Sadová} m ě sto = {Hradec, Rájec, Polná} pak r = {(Novák, Hlavní, Harrison), (Starý, Severní, Rájec), (Coufal, Severní, Rájec), (Liška, Sadová, Polná)} je relace na jméno × ulice × m ě sto Rela č ní schéma • A 1 , A 2 , ..., A n jsou atributy • R = ( A 1 , A 2 , ..., A n ) je rela č ní schéma zákazník-schéma = ( jméno , ulice , m ě sto ) • r ( R ) je relace (pojmenování) na rela č ním schématu R zákazník (zákazník-schéma) zákazník (jméno, ulice, m ě sto) Instance relace • Sou č asné hodnoty ( instance relace ) jsou specifikovány tabulkou. • Element t relace r je n-tice reprezentovaná ř ádkem v tabulce. jméno Ulice m ě sto Novák Hlavní Hradec Starý Severní Rájec Coufal Severní Rájec Liška Sadová Polná zákazník - 3.2 - Kapitola 3: Rela č ní model PB154 Základy databázových systém ů Klí č e • Nech ť K ⊆ R • K je superklí č schématu R , jestliže hodnoty K jsou dostate č né pro jednozna č nou identifikaci n-tice každé možné relace r ( R ). Nap ř .: { jméno , ulice } a { jméno } jsou superklí č e schématu zákazník , jestliže dva zákazníci nemají shodné jméno. • K je kandidátní klí č , jestliže K je minimální. Nap ř .: { jméno } je kandidátní klí č schématu zákazník , jestliže dva zákazníci nemají shodné jméno a žádná jeho podmnožina není superklí č Odvozování klí čů z E-R množin • Silná entitní množina. Primární klí č množiny se stává primárním klí č em relace. • Slabá entitní množina. Primární klí č relace je sjednocení primárního klí č e silné množiny entit a parciálního klí č e slabé množiny. • Množina vztah ů Sjednocení primárních klí čů spojených množin entit se stává superklí č em relace. Pro binární vztahy mnoho na mnoho je superklí č též primární klí č . Pro binární vztahy mnoho na jednu se stává primární klí č množiny entit „mnoho“ primárním klí č em relace. Pro vztahy jedna na jednu m ů že být primární klí č relace z každé množiny entit. Dotazovací jazyky • Jazyk, kterým uživatel žádá informace z databáze. • Kategorie jazyk ů : – Procedurální = uživatel specifikuje jaké operace má systém provést pro získání výsledku; uživatel ur č í posloupnost krok ů k výpo č tu výsledku – Neprocedurální = uživatel ur č í jak má vypadat výsledek, ale ne ř íká jak výsledek vytvo ř it • Č isté jazyky („ pure “): – Rela č ní algebra (procedurální) – N -ticový rela č ní kalkul (neprocedurální) – Doménový rela č ní kalkul (neprocedurální) • Č isté jazyky jsou stru č né, formální, bez jakéhokoli syntaktického cukru. • Č isté jazyky jsou základem dotazovacích jazyk ů , které se b ě žn ě používají. - 3.3 - Kapitola 3: Rela č ní model PB154 Základy databázových systém ů Rela č ní algebra • Procedurální jazyk • 6 základních operátor ů – výb ě r (selekce) – projekce – sjednocení – rozdíl množin – kartézský sou č in – p ř ejmenování • Operátory berou jednu nebo více relací jako vstup a vrací novou relaci jako výsledek. Operace výb ě r (selekce) • Zna č ení: σ P ( r ) • Definováno jako: σ P ( r ) = { t | t ∈ r and P ( t )} Kde P je výraz v propozi č ním kalkulu, skládající se z podmínek ve form ě : <atribut> = <atribut> nebo <konstanta> ≠ > ≥ < ≤ „spojené pomocí“: ∧ ( and ), ∨ ( or ), ¬ ( not ) P ř íklad selekce • Relace r : A B C D α α 1 7 α β 5 7 β β 12 3 β β 23 10 • σ A = B ∧ D > 5 ( r ) – vybere ř ádky, kde A = B a zárove ň D > 5 A B C D α α 1 7 β β 23 10 - 3.4 - Kapitola 3: Rela č ní model PB154 Základy databázových systém ů Operace projekce • Zna č ení: Π A 1 , A 2 , ..., A k ( r ) kde A 1 , A 2,..., A k jsou jména atribut ů a r je jméno relace. • Výsledek je definován jako relace k sloupc ů , které dostaneme smazáním sloupc ů , které nejsou vyjmenovány • Duplicitní ř ádky jsou z výsledku odstran ě ny, protože relace je množina. P ř íklad projekce • Relace r : A B C α 10 1 α 20 1 β 30 1 β 40 2 • Π A , C ( r ) A C A C α 1 α 1 α 1 = β 1 β 1 β 2 β 2 Operace sjednocení • Zna č ení: r ∪ s • Definováno jako: r ∪ s = { t | t ∈ r or t ∈ s } • Aby bylo sjednocení r ∪ s platné, – r a s musí mít stejnou aritu (stejný po č et atribut ů ) – Domény atribut ů musí být kompatibilní (nap ř . 2. sloupec r obsahuje hodnoty stejného typu jako 2. sloupec s ) P ř íklad sjednocení • Relace r , s : A B A B α 1 α 2 α 2 β 3 β 1 s r • r ∪ s A B α 1 α 2 β 1 β 3