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

Slides:



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

Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Aplikační a programové vybavení
Ing. Monika Šimková. Máme-li data reprezentovat v databázi, jak vybereme jejich strukturu na konceptuální úrovni? Konceptuální modelování analyzuje požadavky.
Databáze.
Microsoft Office Access
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Přednáška č. 5 Proces návrhu databáze
Výpočetní technika Akademický rok 2006/2007 Letní semestr Mgr. Petr Novák Katedra informatiky a geoinformatiky FŽP UJEP
Teorie zpracování dat Ukázková písemka. Kapitola 4 Je dána tabulka Zam (login, jmeno, plat, funkce), implementovaná je v SŘBD používajícím indexové soubory.
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
A4B33DS & X33MIS Zdeněk Kouba
Úvod do databází Databáze.
1IT Relační datový model
Databáze Jiří Kalousek.
Cvičení 13 Ing. Pavel Bednář
Základní číselné množiny
1IT S ÍŤOVÝ DATOVÝ MODEL Ing. Jiří Šilhán. S ÍŤOVÝ DATOVÝ MODEL Je historicky nejstarším datovým modelem. Jeho základem jsou vzájemně propojené množiny.
Databázové systémy Štěpán Šípal.
Databáze Úvod.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
KONCEPTUÁLNÍ MODELOVÁNÍ
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
DATOVÉ MODELY (c) Tralvex Yeap. All Rights Reserved.
Databázové systémy přednáška+cvičení
Fakulta elektrotechniky a informatiky
Relační databáze.
Normalizace.
Konceptuální návrh databáze
Vypracoval: Ondřej Dvorský Třída: VIII.A
Základní pojmy Systém je abstrakce, kterou si lidé vytvářejí v procesu poznávání jako nástroj zkoumání reálných objektů.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 4 Proces návrhu databáze.
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
Modelování a simulace MAS_02
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Teorie zpracování dat KONCEPTUÁLNÍ SCHÉMA.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databáze.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Konceptuální návrh databáze
Databázové modelování
Databázové systémy Relační model.
Access Vysvětlení pojmu databáze - 01
Teorie zpracování dat DATABÁZOVÁ TECHNOLOGIE.
Databázové systémy Informatika pro ekonomy, př. 18.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B17 Autor Ing. Jiří Kalousek Období vytvoření Duben 2013.
Aplikační a programové vybavení
Databázové systémy Datové modely.
Databázové systémy Normalizace dat.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
Perzistence XML dat Kamil Toman
Návrh struktury - normalizace
DATABÁZE.
24 Používání relačních databází (základní pojmy a principy z oblasti relačních databází, struktura databáze,oblasti použití relačních databází, vkládání.
Úvod do databází zkrácená verze.
● Databaze je soubor dat,slouží pro popis reálného světa(např.evidence čkolní knihovny..) ● Relační databaze je databáze založená na relačním modelu.
Úvod do databázových systémů
Unix a Internet 9. SQL server
Výpočetní technika Akademický rok 2008/2009 Letní semestr
Databázové systémy 1 – KIT/IDAS1 Ing. Monika Borkovcová, Ph.D.
Informatika pro ekonomy přednáška 8
Relační model databáze
Databázové systémy UIN010
Transkript prezentace:

Téma 9 – Databáze – úvod, modelování dat Obsah Základní pojmy databází Abstrakce, schémata, pohledy Databázové modely Modelování reálného světa Entity a vztahy Entity-Relationship (E-R) model E-R diagramy Převod E-R modelu na tabulky dat Normalizace Databáze - úvod, modelování dat

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

Úč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

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

Úrovně abstrakce ... Fyzická úroveň Logická úroveň Úroveň pohledů 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ů Logická úroveň Fyzická úroveň Pohled 1 Pohled 2 Pohled n ... Pohledy Databáze - úvod, modelování dat

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

Modely dat Množina prostředků pro popis Historické modely dat 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-Relationship model (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) Databáze - úvod, modelování dat

Datově orientované jazyky (1) 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

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 nezáporná čísla) 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ř. katedra musí 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é (např. šéf a mzdová účetní) Databáze - úvod, modelování dat

Relační model dat Příklad tabelovaných dat v relačním modelu Relace je množina () zobrazená výčtovou tabulkou Sloupce se nazývají atributy Špatně navrženo – data se opakují Ukázka relační databáze Databáze - úvod, modelování dat

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 klientovi s klient_id 12-345 select ucet.zustatek from vkladatel, ucet where vkladatel.klient_id = ‘12-345’ and vkladatel.ucet_id = ucet.ucet_id SQL standard je primárně DML, avšak má i DDL pří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 Databáze - úvod, modelování dat

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í: Rozhodnutí dle účelu: Jaká data mají být zaznamenávána v databázi 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

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) Databáze - úvod, modelování dat

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 (aspoň částečnou) 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

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 dokonce i přetížení komunikačních kanálů počítačových sítí Nastudujte sami např. http://www.w3schools.com/xml/default.asp Databáze - úvod, modelování dat

E-R modelování: Entity Entita je 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 entit rozumí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 Databáze - úvod, modelování dat

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 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í Příklad: klient = (klient_id, klient_jmeno, klient_ulice, klient_mesto ) pujcka = (pujcka_id, castka ) Databáze - úvod, modelování dat

Složené a složkové atributy Složené atributy jmeno prvni_jmeno druhe_jmeno prijmení adresa PSC mesto ulice nazev_ulice cislo_orient cislo_popis Složkové atributy Databáze - úvod, modelování dat

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 obvykle představují 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 {(e1, e2, … en) | e1  E1, e2  E2, …, en  En} kde (e1, e2, …, en) je vztah matematicky jde o relaci  Příklad: (Novák, A-102)  vkladatel Databáze - úvod, modelování dat

Množina vztahů Množiny vztahů vyjádřeny tabulkami dluzi 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

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ě. Databáze - úvod, modelování dat

Klíče Klíčem množiny entit je 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íčem množ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 dluzi ví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

E-R Diagramy 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 Databáze - úvod, modelování dat

E-R diagram s vícehodnotovými, složenými a odvozenými atributy Databáze - úvod, modelování dat

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 Databáze - úvod, modelování dat

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. Databáze - úvod, modelování dat

Kardinalita a omezení - příklady Každý klient má právě jednu půjčku 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 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

Alternativní vyjádření omezení kardinalitou vztahů 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í Crow‘s feet Databáze - úvod, modelování dat

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é Databáze - úvod, modelování dat

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_projekt a 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

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, B a C množinou entit E a třemi množinami vztahů: 1. RA, které propojují E a A 2. RB, propojují E a B 3. RC, propojují E a C Vytvoříme klíč pro množinu E a případné atributy vztahů v R přesuneme do E Pro každý jeden vztah (ai , bi , ci) v R vytvoříme 1. novou entitu ei v množině E 2. přidáme (ei , ai ) do RA 3. přidáme (ei , bi ) do RB 4. přidáme (ei , ci ) do RC Při tomto převodu mohou nastat problémy s omezeními souvisejícími s kardinalitou Databáze - úvod, modelování dat

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

Přehled hlavních symbolů E-R diagramů Databáze - úvod, modelování dat

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ů 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

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 jmeno se složkami prvni_jmeno a prijmeni se převede na dvojici jednoduchych atributů jmeno.prvni_jmeno a 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 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 Databáze - úvod, modelování dat

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

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í Student_ID  Semestr (konkrétní student studuje konkrétní semestr) Netriviální závislosti (méně zjevné): {Student_ID, Předmět}  Učitel {Student_ID, Předmět}  {Učitel, Semestr} Z poslední závislosti vyplývá, že {Student_ID, Předmět} je superklíčem K čemu je to dobré? Databáze - úvod, modelování dat

Boyce-Coddova normální forma (BCNF) Definice BCNF: Relace R je v BCNF právě tehdy, když pro každou netriviální závislost X → Y, kde X a Y jsou množiny atributů a zároveň Y není podmnožinou X, platí, že X je nadmnožinou nějakého klíče, nebo X je klíčem relace R. Jinak řečeno relace R je v BCNF tehdy a jen tehdy, když každý determinant funkční závislosti v relaci R je 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 Tannenbaum MOS?" je jednoznačně zodpověditelný Databáze - úvod, modelování dat

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í Franta a bude používat tytéž dvě učebnice, bude nutno doplnit dva záznamy. Bude proto vhodné rozložit naši tabulku na dvě: 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. Databáze - úvod, modelování dat

? Dotazy Databáze - úvod, modelování dat