Téma 9 Databáze úvod, modelování dat

Podobné dokumenty
Téma 9 Databáze úvod, modelování dat

Téma 9 Databáze úvod, modelovánídat

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

Téma 8 Databáze úvod

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

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

Databázové systémy trocha teorie

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

5. Formalizace návrhu databáze

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

5. Formalizace návrhu databáze

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

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

Databáze. Logický model DB. David Hoksza

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

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

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

Hierarchický databázový model

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í

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

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

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

Objektově orientované databáze. Miroslav Beneš

Datové modelování II

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

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

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

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

Střední průmyslová škola Zlín

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

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

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

4IT218 Databáze. 4IT218 Databáze

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Databázové systémy úvod

Úvod do databázových systémů. Ing. Jan Šudřich

Jiří Mašek BIVŠ V Pra r ha

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

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

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

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

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

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

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

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

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

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

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

Analýza a modelování dat. Helena Palovská

TÉMATICKÝ OKRUH Softwarové inženýrství

Maturitní otázky z předmětu PROGRAMOVÁNÍ

DATABÁZE A INFORMAČNÍ SYSTÉMY

Návrh databázového modelu

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Databázové systémy úvod

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

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

TEORIE ZPRACOVÁNÍ DAT

Geografické informační systémy p. 1

Analýza dat a modelování. Přednáška 3

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

Databázové a informační systémy

Databázové systémy BIK-DBS

Objektově relační databáze a ORACLE 8

04 - Databázové systémy

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

Databázové systémy úvod

Relace x vztah (relationship)

Databáze Bc. Veronika Tomsová

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

POKROČILÉ POUŽITÍ DATABÁZÍ

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

2 Konceptuální modelování a návrh databáze

DBS Konceptuální modelování

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

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

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

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

MBI - technologická realizace modelu

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

2 Konceptuální modelování a návrh databáze

Úvod do softwarového inženýrství IUS 2009/2010 p.1/30

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

Použití databází na Webu

S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

U Úvod do modelování a simulace systémů

7.3 Diagramy tříd - základy

DUM 12 téma: Příkazy pro tvorbu databáze

Databázové a informační systémy Jana Šarmanová

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

Marketingová komunikace. 1. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3aph)

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

7.3 Diagramy tříd - základy

Transkript:

Téma 9 Databáze úvod, modelování dat Obsah 1. Základní pojmy databází 2. Abstrakce, schémata, pohledy 3. Databázové modely 4. Modelování reálného světa 5. Entity a vztahy 6. Entity-Relationship(E-R) model 7. E-R diagramy 8. Převod E-R modelu na tabulky dat 9. Normalizace Základní pojmy Často se směšujípojmy databáze Vlastní data zpravidla ve formě tabulek systém řízení báze dat, databázový systém (stroj), DBMS Komplex softwarových komponent pro pokročilou práci s daty Základní terminologie databázových systémů Logická struktura dat abstrakce od fyzické organizace uložených dat založeno na vhodném modelu dat pohledy na data (data views) uživatelsky zajímavé dílčí údaje Prostředky pro rychlý přístup k datů klíče indexy organizované s ohledem na rychlost vyhledávání Prostředky pro pohodlné užívání dat sestavy nebo formuláře; používajíse pro výstup dat (tisk, prezentaci nebo pouhé zobrazení). Sestavy mohou být např. doplněny o filtry, které vyberou jen požadovanézáznamy. Ochranné prostředky uživatelská oprávnění definice přístupu uživatelů k objektům databáze Databáze - úvod, modelování dat 1 Účel databázových systémů Historické databáze vystavěné jako soustava souborů přímo nad OS Nevýhody přímého použití souborů Redundance a nekonzistence dat Nejednotné formáty souborů, duplikace informací v různých souborech Izolace dat Problémy s přístupem k datům Pro každou novou úlohu jee nutno napsat nový program Integritní problémy Integritní omezení(např. mzda > 0) je zanořeno někde v programu místo explicitního vyjádření v požadavcích na datový obsah Velmi obtížné aktualizace podmínek (přidání nebo změna) Atomicita operací s daty Havárie mohou nechat databázi v nekonzistentním stavu, když aktualizace proběhne jen částečně Příklad:Převod peněz z jednoho účtu na druhý musíproběhnou buď úplně nebo vůbec ne Souběžný přístup více uživatelů Souběh je nutný z aplikačního hlediska; neřízenépřístupy mohou vést k nekonzistencím Databázové systémy nabízejí řešení Databáze - úvod, modelování dat 3 Databáze - úvod, modelování dat 2 Systém řízení báze dat(sřbd=dbms) Příklad DBMS obsahuje informace o určitém podniku Kolekce vzájemně provázaných dat Množina programů pro přístup a modifikaci dat Prostředí, které je uživatelsky přívětivé a při tom efektivní Aplikace Databází Bankovnictví: veškeré transakce Aerolinky: rezervace, letové řády, opravy letadel,... University: registrace, studijní plány, rozvrhy, diplomy,... (KOS) Prodejci: zákazníci, katalogy, jednotlivé obchody Výroba: produkce, sklady, objednávky, zásobování Personalistika: záznamy o zaměstnancích, mzdy, daňové povinnosti,... Databáze jsou všude kolem nás Databáze - úvod, modelování dat 4

Úrovně abstrakce Fyzická úroveň popisuje, jak je uložen záznam (např. o zákazníkovi) Logická úroveň popisuje jaká data jsou v databázi uložena a vztahy mezi daty type customer = record customer_id: string; customer_name: string; customer_street: string; customer_zip: integer; end; Úroveň pohledů Aplikace zakrývají detaily dat. Pohledy mohou mít týžúčel, tedy např. zakrýt výši mzdy a zaručit tak důvěrnost či utajení některých údajů Pohledy Pohled 1 Pohled 2 Pohled n... Logická úroveň Fyzická úroveň Schémata a instance Schéma logickástruktura databáze Analogie s typem (třídou) proměnné v programu Příklad: Databáze obsahuje informace o množiněvyučovaných předmětů, množiněčasových úsekůučeben a vztahůmezi nimi (tj. kdy se kde co učí) Fyzické schéma: struktura databáze na fyzické úrovni Logické schéma: struktura databáze na logické úrovni Instance skutečný obsah databáze v daný okamžik Analogie s hodnotou proměnné (stavem objektu) v programu Nezávislost na fyzických datech možnost modifikovat fyzické schéma beze změny logického schématu Aplikace se opírajípouze o logické schéma a nezávisí na fyzickém zobrazení Obecně: Rozhranímezi různými úrovněmi (vrstvami) a komponentami jsou přesně definována, takže změny v některých částech neovlivňují zbytek Databáze - úvod, modelování dat 5 Modely dat Množina prostředků pro popis Vlastních dat Vztahůmezi daty Sémantiky dat Omezení kladených na data Historické modely dat Hierarchický model Síťový model Relačnímodel dat v současnosti nejužívanější model Entity-Relationshipmodel (E-R model) abstraktnía konceptuální znázorněníreality formální nástroj pro návrh databáze a jejího logického schématu Objektové modely dat Objektové databáze a Objektově relační databáze Polostrukturované datové modely sloužízpravidla pro výměnu dat mezi různými systémy typický příklad je XML (extensible Mark-up Language) Datově orientované jazyky (1) Databáze - úvod, modelování dat 6 Jazyky pro manipulaci s daty Data Manipulation Languages (DML) Jazyk pro přístup k datům a manipulaci s daty (modifikaci) organizovanými podle příslušného modelu též dotazovací jazyk (query language) Dvě třídy DML Procedurální uživatel (programátor) udává jaká data chce a jak je získat Deklarativní(neprocedurální) uživatel (programátor) udávájakádata chce, aniž by zadával způsob jejich získání Nejrozšířenější dotazovacíjazyk je SQL Structured Query Language deklarativní jazyk Příklad: select st_jmeno, st_prijmeni from studenti where st_login = xnovak Databáze - úvod, modelování dat 7 Databáze - úvod, modelování dat 8

Datově orientované jazyky (2) Jazyky pro definici dat Data Definition Language(DDL) Popis definice databázového schématu Příklad: create table ucet(cislo_uctu: char(10), zustatek: integer) Překladač DDL generuje množinu tabulek uložených v tzv. slovníkem dat (data dictionary) Slovník dat obsahuje metadata (tj. data o datech znalosti ) Databázové schéma Způsob uloženídat a datovétypy Specifikují se struktury datových souborů a způsoby přístupu Integritní omezení Doménová omezení (např. pouze kladná čisla) Referenční integrita (odkazy a vazby dat) Tvrzení(assertion) Obecnáomezeníve tvaru predikátů popisujícípovinnépodmínky, které nelze zahrnout do omezeníintegritních (např. katedramusí v každém semestru nabízet aspoň 5 předmětů) Autorizační informace Např. mzda je diskrétníúdaj, který mohou vidět jen oprávněníuživatelé (šéf a mzdová účetní) Databáze - úvod, modelování dat 9 SQL SQL nejrozšířenější neprocedurální dotazovací jazyk Příklad: Najdi jméno zákazníka s klient_id 12-345 select klient.klient_jmeno from klient where klient.klient_id = 12-345 Příklad: Najdi zůstatky všech účtů patřících klientovis klient_id 12-345 select from where ucet.zustatek vkladatel, ucet vkladatel.klient_id = 12-345 and vkladatel.ucet_id = ucet.ucet_id SQL standard je primárně DML, avšak mái DDLpříkazy Aplikační programy obvykle přistupují k databázím přes rozšíření příslušného programovacího jazyka, které umožňuje využívat SQL jako jazykový konstrukt např. propojeníphp s MySQL častépro webovéaplikace API knihoven schopných zaslat SQL příkazy databázovému (sub)systému např. ODBC = Open Database Connectivity či JDBC = Java DataBase Connectivity Relační model dat Příklad tabelovaných dat v relačním modelu Relace je zobrazena tabulkou Sloupce se nazývají atributy Špatně navrženo data se opakují Ukázka relační databáze Tabulka klient Tabulka ucet Tabulka vkladatel uvádí vztah mezi tabulkami klient a ucet Databáze - úvod, modelování dat 10 Návrh databází Obecný návrh databáze je složitý několikastupňový proces Logický návrh Vytváříse logické schéma databáze. Cílem je nalézt dobře koncipovanou sadu datových tabulek a jejich vzájemných vazeb tak, aby schéma obsahovalo minimum duplicit a bylo co nejotevřenější pro případné modifikace struktury. Obecně úloha softwarového inženýrství Logický návrh zahrnuje dvě klíčová rozhodnutí: 1. Rozhodnutí dle účelu: Jaká data mají být zaznamenávána v databázi 2. Rozhodnutío struktuře: Jak potřebnádata rozdělit mezi tabulky dat (relace) a jak koncipovat příslušné databázové schéma. Fyzický návrh Rozhodnutío zobrazenídatových tabulek do samostatných komponent v databázi Důležité z pohledu efektivity a údržby dat Databáze - úvod, modelování dat 11 Databáze - úvod, modelování dat 12

Entity-Relationship model E-R model je jedním z nejčastěji používaných návrhových prostředků Modeluje oblast zájmu (např. podnik) jako kolekci entit and a vztahů (relationships) mezi nimi Entita: je nějaká věc nebo objekt jednoznačně odlišitelná od ostatních Entita je popsána množinou svých atributů Vztah: propojení mezi dvěma či více entitami POZOR: Nezaměňovat relace (relation) a vztah (relationship)! Reprezentuje se graficky tzv. Entity-Relationship diagramem (E-R diagram) Objektově relační model a objektový model dat Objektově relačnímodel rozšiřuje relačnímodel o objektově orientovanékonstrukty Atributy mohou být hlouběji strukturované typy (objekty) včetně např. vnořených relací Zachovává principy relačního pohledu na data a deklarativní přístup k datům za současného rozšířeníschopnosti modelování obecnějších dat Poskytuje zpětnou kompatibilitu s existujícími relačně orientovanými databázovými jazyky Objektový model je plně objektově orientovaný Poskytuje možnosti klasického objektového náhledu na svět Zapouzdřování, dědění, třídy, vlastnosti, metody,... Při implementaci jsou značným problémem metody, realizované kódem, který by měl být uložen jako součást dat Existujícíobjektovédatabáze poskytují bohatou škálu datových typůvčetně strukturovaných, jako např. kolekce apod. Databáze - úvod, modelování dat 13 XML: Extensible Markup Language XML původně definován WWW Consortium(W3C) Byl vyvinut jako značkovací(markup) jazyk pro dokumenty, nikoliv jako databázový jazyk Schopnost specifikovat nové značky (příznaky, tagy) a možnost tvorby vnořovaných značkovaných struktur způsobila, že XLM se dodatečně stala skvělým prostředkem pro výměnu nejen dokumentů, ale zejména dat XML se tak stal základem téměřvšech soudobých systémů pro výměnu dat zejména mezi různými institucemi, např. přenosy účetních dokumentů (faktur) mezi podniky, daňová přiznání apod. Je k dispozici velké množství nástrojů pro analýzu, prohledávání a dotazování dat zachycených v XML formátu Nedávné analýzy však ukazují, že nadměrnérozšíření XML vzhledem ke své objemové náročnosti (XML je velmi ukecaný ) způsobilo přetížení komunikačních kanálů počítačových sítí Databáze - úvod, modelování dat 14 E-R modelování: Entity Entitaje objekt, který existuje a je odlišitelná od ostatních objektů Příklad: určitá osoba, podnik, kulturní akce, technické zařízení Entity jsou obecné řeči obvykle vyjádřeny jako podstatná jména Entity mají vlastnosti označované jako atributy Příklad: lidé mají jména a adresy Množinou entitrozumíme množinou tvořenou entitami stejného typu, tj. entitami s týmiž vlastnostmi Často se místo pojmu množina entit používá entitní typ Příklad: množina osob, množina stromů, množina bankovních půjček, množina údajů sbíraných z čidel klient pujcka Databáze - úvod, modelování dat 15 Databáze - úvod, modelování dat 16

E-R modelování: Atributy Entita je reprezentována množinou atributůpopisujících vlastnosti všech prvkůpatřících do příslušnémnožiny entit. Fakticky je tím definována struktura datového typu (záznamu), který nese informaci o jednom každém prvku množiny Příklad: klient = (klient_id, klient_jmeno, klient_ulice, klient_mesto) pujcka = (pujcka_id, castka) Doména atributu množina přípustných hodnot pro každý atribut Typy atributů Jednoduché a složené atributy Jedno- nebo vícehodnotové atributy Příklad vícehodnotového atributu: telefonni_cisla Odvozené (též počítané) atributy Dají se vypočítat z hodnot jiných atributů Např. věk, je-li známo datum_narození Složené atributy Složené a složkové atributy Složkové atributy Databáze - úvod, modelování dat 17 E-R modelování: Vztahy Vztah definuje propojení mezi dvěma či více entitami Příklad: Novák ukládá na A-102 entita klient vztah vkladatel entita ucet (zobrazeno jako entita) Vztahy jsou obvykle vyjádřeny jako slovesné fráze Množina vztahůje množina propojenímezi dvěma (či více) množinami entit matematicky zapsáno: množina vztahů mezi n 2 entitami je množina n-tic, kde každý prvek n-tice je vybrán z jedné 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 matematicky jde o relaci Příklad: (Novák, A-102) vkladatel klient Množina vztahů Množiny vztahůvyjádřeny tabulkami podobně jako entity Mohou mít dokonce připojené atributy např. datum poslední splátky Množiny vztahůmohou propojovat více množin entit např. (zaměstnanec, pozice, oddělení) většinou se ale používají binární množiny vztahů propojení dvou množin entit Databáze - úvod, modelování dat 18 pujcka množina vztahů dluzi dluzi Databáze - úvod, modelování dat 19 Databáze - úvod, modelování dat 20

Kardinalita vztahů Kardinalita určuje počet prvků množiny entit přidružené prostřednictvím množiny vztahů Pro binárnímnožiny vztahů jsou možné4 typy 1 : 1 1 : N N: 1 M: N Poznámka: V množinách entit mohou existovat i prvky, kterénejsou propojeny s žádným prvkem v druhé množině. E-R Diagramy Databáze - úvod, modelování dat 21 Klíče Klíčem množiny entitje atribut nebo skupina atributů, jejichž hodnota určuje jednoznačně konkrétní entitu Takových skupin atributů může být více někdy se říká superklíč Minimální superklíče jsou kandidáti na to, aby se stali klíčem Mezi potenciálními kandidáty bude zvolen jeden primární klíč Např. klient_id bude zvolen za primární klíč množiny entit klient Někdy se zavádísamostatný (syntetický) atribut, aby sloužil jako klíč Superklíčemmnožiny vztahůje kombinace (zřetězení) primárních klíčů participujících množin entit též značené jako složkové klíče (klient_id, pujcka_id) je superklíčem vztahu dluzi Pak ovšem nelze mít ve vztahu dluzivíce údajů o splátkách půjčky Logickou strukturu pro tato data je nutno navrhnout jinak Volba kandidátůa výběr primárního klíče vztahu závisína kardinalitě vztahu Pro 1:1 může být primárním klíčem kterýkoliv složkový klíč Pro ostatní případy zřetězení složkových klíčů Databáze - úvod, modelování dat 22 E-R diagram s vícehodnotovými, složenými a odvozenými atributy klient_jmeno klient_ulice datum druhe_jmeno klient_id klient_mesto pujcka_id castka krestni_jmeno prijmeni nazev_ulice cislo_domu klient dluzi pujcka klient_jmeno ulice Obdélníky množiny entit Kosočtverce množiny vztahů Ovály atributy zdvojené ovály se užívají pro vícehodnotové atributy čárkované ovály značí odvozené(počítané) atributy Podtržené atributy značí primární klíče klient_id klient adresa psc mesto telefon datum_naroz vek Databáze - úvod, modelování dat 23 Databáze - úvod, modelování dat 24

Role Vztahy nemusí propojovat různé množiny entit Pak je vhodné zavést role a označit tak význam částívztahu Označení řídí a je_řízen specifikují, jak jsou jednotliví zaměstnanci vzájemně podřízeni přes vztah pracuje_pro Role v ER diagramech jsou nepovinné, zlepšujíčitelnost a vyjadřují sémantiku Vyjádření kardinality vztahů Značení je nejednotné Základní metoda: Pokud se všechny entity z dané množiny musíúčastnit množiny vztahů, znázorňuje se to tlustou nebo dvojitou čarou a nazývá se to omezení účasti ve vztahu (participation constraint). Pokud se každá entita z množiny může účastnit maximálně jednoho vztahu z množiny, je to znázorněno šipkou od množiny entit k množině vztahů, je to nazýváno klíčové omezení(key constraint). Ke znázornění vztahu, kdy každá entita z množiny se účastní právě jednoho vztahu z množiny, se používátlustá šipka. Kardinalita a omezení- příklady Každý klient má právě jednu půjčku Databáze - úvod, modelování dat 25 Databáze - úvod, modelování dat 26 Alternativní vyjádření omezení kardinalitou vztahů Několik klientů má jednu společnou půjčku Jeden klient má několik půjček (nebo také žádnou) Několik klientů participuje na několika půjčkách Klient může mít libovolný počet půjček (nebo také žádnou), avšak každá existující půjčka musí mít svého klienta Alternativně se též používá značení crows feet Ke každé půjčce musí existovat aspoň jeden klient avšak ne každý klient musí mít půjčku Databáze - úvod, modelování dat 27 Databáze - úvod, modelování dat 28

Otázky návrhu modelu Entita nebo atribut? Volba závisí na struktuře modelované reality a na sémantice příslušného atributu Často entita místo vícehodnotového nebo složeného atributu Použít množinu entit nebo množinu vztahů? Možným vodítkem je právě význam: vztahy jsou slovesné fráze popisující akce, které se dějí mezi entitami Např. klient ukládá_na účet Binární nebo n-ární množiny vztahů? Kvůli zlepšení čitelnosti jsou často vhodnější n-ární množiny vztahů, neboť je zřejmé, že více entit participuje na jednom vztahu Z implementačního pohledu jsou binární vztahy efektivnější n-árnívztahy lze převést na sadu binárních Připojovat atributy k množinám vztahů? Připojeníjednoduchého atributu k množině vztahůje sice efektivní, může však způsobit komplikace při modifikaci modelu složitější atributy ke vztahům jsou nevhodné Binární vs. n-ární vztahy Některévztahy vypadající ne-binárně je lépe reprezentovat binárními vztahy Příklad: Ternárnívztah rodiče propojující dítě s jeho matkou a otcem je vhodnější nahradit dvojicí binárních vztahů je_otcem a je_matkou To dokonce přinese výhodu reprezentace možnosti zakotvenéjižve starořímském právu: Jistá je vždy jen matka Existují ale vztahy, které jsou ze své sémantiky ne-binární Např.: Máme množiny entit: studentske_projekty vedouci_ucitele a studenti a k nim množinu vztahů pracuje_na_a_vede_ho, kterépopisují, který student pracuje na kterém projektu pod vedením kterého učitele. Kdybychom nahradili takovýto ternárnívztah binárními vztahy ucitel_projekta ucitel_student, tak sice zachováme informaci o tom, že učitel Novák vede studenty Karla a Petra a že učitel Novák řídíprojekty A a B, ale nebudeme mít informaci o tom, že Karel řešíprojekt A a Petr řeší projekt B Databáze - úvod, modelování dat 29 Databáze - úvod, modelování dat 30 Formální převod n-árních vztahů na binární Ne-binární vztahy lze reprezentovat binárními Zavedeme abstraktní množinu entit E a nahradíme vztahy R mezi množinami entit A, Ba C množinou entit Ea třemi množinami vztahů: 1. R A, které propojují E a A 2. R B, propojujíe a B 3. R C, propojují E a C Vytvoříme klíč pro množinu Ea případné atributy vztahův R přesuneme do E Pro každý jeden vztah (a i, b i, c i ) v Rvytvoříme 1. novou entitu e i v množině E 2. přidáme (e i, a i ) do R A 3. přidáme (e i, b i ) do R B 4. přidáme (e i, c i ) do R C Při tomto převodu mohou nastat problémy s omezeními souvisejícími s kardinalitou Databáze - úvod, modelování dat 31 Slabé množiny entit Při modelováníreality se někdy vytvářímnožiny entit, kterésamy o soběnemajísmysl Jsou součástícelku daného souvislostís jinou množinou entit. Takové množiny entit se nazývají slabé (též slabý entitní typ) Existence slabé množiny entit závisí na existenci identifikující množiny entit Musí existovat vztah 1:N vedoucí z identifikující ke slabé množině entit Identifikující vztah se označuje v E-R diagramu zdvojeným kosočtvercem Primární klíč slabého entitního typu primární klíč identifikující množiny plus vhodný rozlišujícíatribut slabé množiny (tzv. diskriminátor či rozlišovač ) Slabémnožiny entit se značízdvojeným obdélníkem a jejídiskriminátor se podtrhává čárkovaně Příkladem slabé entity jsou položky faktury, které samy o sobě nemají smysl, pokud nejsou vztaženy ke konkrétní faktuře. Identifikující množinou budou faktury a diskriminátorem číslo položky Jiný příklad Databáze - úvod, modelování dat 32

Přehled hlavních symbolů E-R diagramů Databáze - úvod, modelování dat 33 Převod E-R modelu na logické schéma (pokr.) Složené atributy Zpravidla se převedou na skupinu jednoduchých atributů (několik sloupců v tabulce) Např. Složený atribut jmenose složkami prvni_jmenoa prijmenise převede na dvojici jednoduchych atributů jmeno.prvni_jmenoa jmeno.prijmeni Vícehodnotové atributy Pro takový atribut se vytvořísamostatná tabulka s dvěma sloupci (atributy) První sloupec je primární klíč základní množiny entit a druhý sloupec je konkrétníhodnota zobrazovaného vícehodnotového atributu Tabulka atributu klient.telefon Takto dekomponovanétabulky s atomickými atributy tvoří schéma v tzv. první normální formě Skvělý výklad je na http://en.wikipedia.org/wiki/first_normal_form Převod E-R modelu na logické schéma Data uložená v tabulkách (relace ) Množina entit Pojmenovaná tabulka Pojmenovanésloupce jsou atributy, každý atribut másvůj datový typ (datum, řetězec znaků dané délky, číslo integer,...) Řádky jednotlivé entity (instance) K prohledávání tabulky slouží primární klíč Množina vztahů Pojmenovaná tabulka Sloupce jsou primárníklíče entitních tabulek, kteréjsou vztahem propojeny; mohou být přidány další sloupce popisující atributy vztahu Řádky jednotlivé dvojice (nebo n-tice) provázaných entit Primárním klíč závisí na kardinalitě vztahu pro vztah 1:1 stačí jediný atribut, jinak zřetězení primárních klíčů propojených entit Slabá množina entit Opět tabulka se sloupcem obsahujícím primární klíč identifikující entity a sloupcem obsahujícím diskriminátor Zřetězení těchto dvou atributů je primárním klíčem slabého entitního typu Databáze - úvod, modelování dat 34 Normalizace databází Je to teorie umožňujícírigoróznínávrh databáze s ohledem na její korektní aktualizace a užití (Edgar F. Codd 1971) Příklad: Problém: Co zvolit jako klíč? Ani jeden z atributů neníklíčem =>klíčem musíbýt zřetězeníatributů Nevhodně a redundantně se opakují data Druhá normální forma Rozklad tak, aby klíče byly jednoduché atributy Avšak i nadále trváproblém: Kdyžse Kovářová vdá, budou se měnit klíče a na ty mohou být navázány další vztahy. Další argumenty viz http://en.wikipedia.org/wiki/second_normal_form Databáze - úvod, modelování dat 35 Databáze - úvod, modelování dat 36

Funkční závislosti Dalšínormálníformy jsou založeny na tzv. funkčních závislostech: Funkční závislostí rozumíme vazbu (omezení) platnou mezi dvěma množinami atributů v téže "tabulce" (relaci ) v databázi Primitivnípříklad: Rodne_cislo Datum_narozeni (datum narozenílze z rodného čísla odvodit). Nikoli však obráceně! Podmínka, z níž lze odvodit závěr, se nazývá determinant závislosti Příklady: Zde lze odvodit následující"funkční" závislosti: Triviální (konkrétní student studuje konkrétní semestr) Netriviální závislosti (méně zjevné): { { Z poslední závislosti vyplývá, že { je superklíčem K čemu je to dobré? Databáze - úvod, modelování dat 37 BCNF a další normalizace Bohužel tabulky v BCNF trpímnohdy tzv. aktualizačními problémy. Přijde-li nový učitel databází a bude používat tytéž dvě učebnice, bude nutno doplnit dva záznamy. Bude proto vhodné rozložit naši tabulku na dvě: Boyce-Coddova normální forma (BCNF) Definice BCNF: Relace Rje v BCNF právě tehdy, když pro každou netriviální závislost X Y, kde Xa Yjsou množiny atributůa zároveňy není podmnožinou X, platí, že Xje nadmnožinou nějakého klíče, nebo Xje klíčem relace R. Jinak řečeno relace Rje v BCNF tehdy a jen tehdy, kdyžkaždý determinant funkčnízávislosti v relaci Rje zároveňkandidátním klíčem relace R. Tabulky (relace) v BCNF umožňují jednoznačně odpovídat na "datové dotazy" ( ) Např.: je v BCNF Dotaz: "Kdo používá učebnici TannenbaumMOS?" je jednoznačně zodpověditelný Databáze - úvod, modelování dat 38 To pak vede na tzv. 4. NF, kde můžeme najít další drobné problémy. Závěr: Teorie normalizace databází je matematicky hluboce propracovaná V učebnicích lze najít devět stupňů normálních forem Zájemci nechť se obrátí ke specializovaných publikacím nebo k předmětům, které se věnují výhradně databázím a jejich teorii Např. A4B33DS, A7B36DBS apod. Dotazy Databáze - úvod, modelování dat 39 Databáze - úvod, modelování dat 40