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ř.



Podobné dokumenty
RELAČNÍ DATABÁZOVÉ SYSTÉMY

Databázové systémy trocha teorie

UNIVERZITA PALACKÉHO V OLOMOUCI

Databázové systémy úvod

Databáze SQL SELECT. David Hoksza

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

4IT218 Databáze. 4IT218 Databáze

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

Databázové systémy úvod

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

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

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

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

10. blok Logický návrh databáze

4IT218 Databáze. 4IT218 Databáze

VYUŽITÍ REGIONÁLNÍCH FUNKCÍ A WWW ROZHRANÍ V INTEGROVANÉM KNIHOVNÍM SYSTÉMU KPWINSQL

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

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

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

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

DBS Transformace konceptuálního schématu na

Databázové systémy úvod

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

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

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

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

Jazyk SQL databáze SQLite. připravil ing. petr polách

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

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Databázové systémy úvod

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

6. SQL složitější dotazy, QBE

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

Marian Kamenický. Syntea software group a.s. marian.kamenicky. MFFUK Praha 2012/13

Datové modelování. Datové modely v GIS. Úrovně abstrakce reality

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

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

Etapy tvorby lidského díla

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

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

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

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

Data v informačních systémech

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

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

DATABÁZE, ATRIBUTY. SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník

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

Relace x vztah (relationship)

DATABÁZOVÉ SYSTÉMY. Vladimíra Zádová, KIN, EF TUL - DBS

Použití databází na Webu

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

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

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Relační databáze a povaha dat

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

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

DUM 11 téma: Databázové jazyky a servery

Databázové systémy a SQL

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

Úrovně abstrakce reality

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

KIV/ZIS cvičení 1. Martin Kryl

4. Základy relačních databází, logická úroveň návrhu

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Data v informačních systémech

Transformace konceptuálního modelu na relační

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9

Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky Návrh a tvorba databáze v prostředí vybrané firmy

Datové modelování II

5. POČÍTAČOVÉ CVIČENÍ

NÁVRH ELEKTRONICKÉ TŘÍDNÍ KNIHY PRO ZUŠ

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

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

DATABÁZOVÉ SYSTÉMY MYSQL. Sestavil Mgr. Jan Kubrický. Distanční opora Poslední úprava:

KIV/ZIS cvičení 5. Tomáš Potužák

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

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

Databázové systémy BIK-DBS

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

1. Relační databázový model

Tvorba informačních systémů

2. Konceptuální model dat, E-R konceptuální model

1GIS2. Přednáška 3. Databáze vývoj, vlastnosti, přístupy ke zpracování informací, databázové modely, základy SQL FŽP UJEP

Otázka 16 A7B36DBS. Zadání. Slovníček pojmů

Metody inventarizace a hodnocení biodiverzity stromové složky

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

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

Univerzita Pardubice. Centrální správa dokumentů

Manipulace a restrukturalizace dat

Vladimír

DATABÁZE A INFORMAČNÍ SYSTÉMY

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

Tabulka fotbalové ligy

Tvorba informačních systémů

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

Optimalizace dotazů a databázové transakce v Oracle

Transkript:

2 přednáška 2 října 2012 10:32 Souborově orientované uchování dat Slabý HW Není možné uchovávat "velká data" - maximálně řádově jednotky MB Na každou úlohu samostatná aplikace, která má samostatná data Další aplikace musejí mít svá vlastní data, i když jsou stejná - problém s duplikací dat Každá aplikace musela napsat vlastní algoritmus pro manipulaci s daty Nutno naprogramovat přístupové mechanismy Vzniká základní struktura - soubor, záznam, položka Program a data jsou na sobě závislé Vhodné pro úlohy, které mají výpočtový charakter (vědecko-tech Výpočty), kde není vhodné použít SŘBD 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ř s měnou Databáze (báze dat) Množina souborů a popisu jejich dat, které jsou navzájem v logickém vztahu a jsou spravované systémem řízení báze dat Na databáze jsou kladeny následující požadavky: Neredundantnost - databáze by neměla obsahovat zbytečné duplicity Vícenásobná využitelnost - přístup k datům všem oprávněným uživatelům Integrita dat - hodnoty uložených dat nesmí být mezi sebou ve sporu Nezávislost dat - změna struktury uložení dat nevyvolá změny v aplikačních programech Možnost implementovat libovolný datový model Systém řízení báze dat (SŘBD) Programový systém, který zabezpečuje definování struktury dat, ukládání dat, výběr dat, ochranu dat a komunikaci systému s uživatelem Požadavky na SŘBD: DDL (Data Definition Language) - Jazyk, který definuje strukturu dat a omezující podmínky (integritní omezení), např CREATE TABLE, ALTER TABLE, DML (Data Manipulation Language) - Prostředky pro ukládání, výběr a obecně manipulaci s daty Procedurální jazyky - určuje, jak data získat, pracují se záznamem Neprocedurální jazyky - říká, jaká data se mají najít - popis vlastností, které hledáme - jazyk SQL Rychlík nerad používá zkratky (raději to člení do těch předchozích kategoriíí): DCL (Data Control Language) - např příkazy pro řízení uživatelských práv: GRANT, REVOKE, TCL (Transaction Control Language) - příkazy pro řízení transakcí - BEGIN TRANSACTION, COMMIT DQL (Data Query Language) - jazyk pro dotazování: SELECT 4GL - jazyky 4 generace - Access Možnost definovat přístupová práva Přístup více uživatelů Obnova systému po chybě Katalog dat (= popis dat) přístupný uživateli IS DBS DB SŘBD Příklady: Oracle, DB2, Access, PostgreSQL, MySQL, Firebird, MySQL, MSSQL, Databázové okolí Databázový administrátor - instaluje databázovou aplikaci, udržuje ji, sleduje, konfiguruje, Gestor dat (administrátor dat) - rozumí aplikaci, vidí souvislosti dat, hodnot, Vývojový programátor - navrhují model databáze - analýzy, popis problémů, Aplikační programátor Koncový uživatel Programátor - užívá dotazovací jazyk - procedury jazyka, nebo SQL Neprogramátor - specialisté pro daný proces, pro ně se ta aplikace dělá KIV-DB1 - stránka 1

Komponenty SŘBD Správce DB SŘBD Schéma databáze DDL překladač Správce slovníku Databáze a systémový katalog Uživatel Dotazy Zpracování dotazu Správce databáze Správce souborů Programátor Aplikační programy DML preprocesor Objektový kód programu Přístupové metody Vyrovnávací paměti Správce databáze Správce souborů Správce slovníku Kontrola integrity Zpracování dotazu Autorizace Zpracování příkazu Řízení transakcí Správa bufferů Objektový kód programu Optimalizace dotazu Plánovač Řízení obnovy DB Konceptuální modelování zabývá se problémem z logiky věci, ale ne z pohledu implementace nezajímají mě aplikační programy, programovací jazyk, distribuovaná databáze, fyzická omezení Objektově orientovaný model Entity a relace mezi nimi (entita = model jednoho objektu z reálného světa) Entity jsou popsány nejen atributy (stav), ale také jejím chováním Datový model orientovaný na záznamy Relační model dat Tabulky Síťový model dat Soubor, set (př student a jeho známky), spojky - ukazatel na související záznam Hierarchický model dat Speciální případ síťového modelu, grafem je strom ANSI-SPARC (1975) Tříúrovňová abstrakce při pohledu na data: External level - pohled na data jednoho konkrétního uživatele Conceptual level - jaká data se v modelu objeví, včetně všech omezení, přístupu k řádkům, Internal level - fyzické uložení dat KIV-DB1 - stránka 2

KIV-DB1 - stránka 3 3 přednáška 9 října 2012 10:14 ERA model 1976 - Chen E - entita R - relace A - atribut Pohledy na zpracování dat: souborově orientované datové modely datová struktura soubor entitní množina tabulka záznam entita sloupec položka atribut sloupec Entita Příklady název id_student rodné_číslo atributy jméno příjmení datum_nar Entita model jednoho objektu z reálného světa popsána atributy - např jméno, datum narození, adresa, musejí být navrženy podle očekávaných funkcí, např váha studenta nemá ve studijní agendě smysl jeden nebo více atributů se musí určit jako klíč - jeho hodnota jednoznačně určí entitu, Klíč pokud jej nemůžeme určit, vytvoříme si umělý klíč: id_<entita> (např id_student) vlastnosti klíče: unikátní, nenulový (UNIQUE, NOT NULL) neměl by nést další informace (např rok nástupu studia a fakulta je špatně) Atribut určuje se typ: číslo, text, datum, nemůže být žádnou další datovou strukturou, musí být "jednoduchý" (primitivní datový typ) jako text uvádět ty hodnoty, se kterými se počítá alt 11 student nemusí mít známky, alternativně N 0 Oracle 1 N(0) má Známky Známky Case 4: M studuje N Předměty Předměty Relace (vztah)

KIV-DB1 - stránka 4 Relace (vztah) vyjádření vztahu mezi dvěma entitami určujeme kardinalitu 1:1 - vzácná, pokud se použije, musí mít důvod a musím být schopen odpovědět 1:N - jednomu studentovi přísluší N známek a jedné známce přísluší jeden student M:N - jeden student studuje N předmětů a jeden předmět studuje M studentů povinnost výskytu nejčastějším modelem je vazba 1:N, kde N je nepovinné (student nemusí mít žádnou známku) Pozn: oprávněnost značení 1:N z pohledu vazby je N konců u studentů, jeden konec u známky S3 S4 S5 Chen - u vazby mohl být atribut, už se to však nepoužívá Z1 Z2 Z3 Z4 Z5 Z6 č_čtenáře jméno adresa Čtenář 1 M d_výpůjč výpůjčka záznam d_rezervace inv_číslo N Exemplář N má_kopie 1 N Kniha ISBN Autor Nedostatky tohoto modelu vůči reálnému světu: není možné udělat rozumný rejstřík (autorů, titulů, ) - nejsou strukturovaní autoři, jsou zapsaní v jedné položce nemá historii výpůjček - jeden exemplář má jen jednoho čtenáře Zavedení historie: Titul

KIV-DB1 - stránka 5 Čtenář 1 N Exemplář Č1 Č2 Č3 E1 E2 E3 E4 1 N 1 1 Čtenář Výpůjčka Exemplář datum_zpět evidence_historie Obecně vazba nemusí být binární, ale i ternární, n-nární Nahrazují se entitou Unární vazba: entita ukazuje na jinou entitu ze stejné entitní množiny, např rodokmen, jedna osoba má jednu matku a jednoho otce Entita Mezi dvěma entitami může být více vazeb: Oddělení - 1 - [zaměstnanec] - N -> Zaměstnanec Oddělení - 1 - [vede] - 1 -> Zaměstnanec (zde vazba 1:1 má smysl) Entita někdy nemůže existovat bez existence nějaké nadřazené entity - slabá entitní množina, např dítě musí mít rodiče Ne vše lze ERA modelem nakreslit EER (Enhanced ER) model může - je silnější, ale není podporován databázemi Realizace datového modelu (převod do datové struktury) entita a její atributy - tabulka a sloupečky vazba 1:N Objektově Realizace pomocí cizích klíčů

KIV-DB1 - stránka 6 Relačně id_student S3 id_znam id_student Z1 Z2 Z3 vazba M:N nejde pomocí cizího klíče zrealizovat, musí se zavést další pomocná množina ID PK_ PK_Predmet P2 P4 ID P1 P2 P3 P4 P5 Předmět Cizí klíče (ID_, ID_Predmet) jsou v pomocné entitní množině vždy a jsou primárním klíčem této pomocné entity

4 přednáška 16 října 2012 10:33 vazba M:N nejde pomocí cizího klíče zrealizovat, musí se zavést další pomocná množina ID PK_ PK_Predmet P2 P4 1 N M 1 Pom Predmety ID P1 P2 P3 P4 P5 Předmět Cizí klíče (ID_, ID_Predmet) jsou v pomocné entitní množině vždy a jsou primárním klíčem této pomocné entity 1 N M 1 Čtenář Rezervace Kniha id_rezervace id_čtenáře ISBN datum Úskalí při návrhu ERA modelů fan trap Divize Oddělení Zaměstnanci Chyba - u zaměstnance není možné určit, v jakém pracuje oddělení Oprava: KIV-DB1 - stránka 7

Chyba - u zaměstnance není možné určit, v jakém pracuje oddělení Oprava: Divize Oddělení Zaměstnanci V některých případech není chybou - např katalogy Chasm trap záleží na povinnosti vazby Přívod Trafo Vývody Při přesunu trafa by bez vazby mezi přívodem a vývodem zanikla informace o spojení mezi přívodem a vývodem M:N Unární vazba ID_domaci Mužstvo Mužstvo Zápas ID_hoste Evidence osob, které chodí do domu: Vchodem do domu projde více osob a některé osoby chodí do více domů, tzn kandidát na vazbu M:N: Dům Osoba Některé osoby však chodí do více domů ne z toho důvodu, že bydlí ve více domech, ale proto, že ty domy spravují: spravuje Dům Osoba bydlí Nutno se nad vazbou M:N zamyslet, v prvním případě to ve skutečnosti není přímo vazba M:N a jde rozložit ID_domu ID_spravce D1 O2 D2 O2 D3 O2 KIV-DB1 - stránka 8

D3 O2 ID_osoby O1 O2 O3 O4 ID_domu D1 D1 D1 D2 Kritérium rozhodovnání: E1 + E2-1 <= POM - s vazbou jsem se možná spletl, pokud E1 + E2-1 > POM, tak je oprávněná Př Elektrické vedení se dělí na úseky a na jednom stožáru může být až pět úseků z různých vedení DT DT DTS3 DTS4 Stožár Úsek vedení U1 U2 S3 U3 S4 U4 S5 U5 S6 U6 S7 U7 Některé úseky spolu vedení sdílí, jiné ne Vždy však sdílí buď celou trasu, nebo nesdílí vůbec - vznikají "úplné komponenty": Stožár Komponenta Úsek ID_stož FK_ID_komp 1 1 S3 S4 S5 S6 S7 K1 K2 K3 U1 U2 U3 U4 U5 U6 U7 KIV-DB1 - stránka 9

1 S3 1 ID_úsek U1 1 U2 1 FK_ID_komp Na vazbě se podílejí úseky se stejným ID komponenty Unární vazba STAG - rozvrhová akce - závislosti Pokud si student zapíše jednu rozvrh akci, tak si musí zapsat všechny ostatní, které jsou v závislosti Tvoří spolu úplné komponenty Rozvrh akce Učitel učí studenty 1) Učitel Předmět fan trap - nelze najít souvislost mezi studentem a učitelem 2) Předmět vyučuje studuje Učitel učí Vyučuje U1 U1 U2 U2 Studuje P1 P2 P1 P2 P1 P2 P1 KIV-DB1 - stránka 10

Učí U1 U1 U2 U2 P2 Nepoznám, jaký předmět učí učitel studenta Model je špatně 3) U1 P1 U1 P2 U2 P1 U2 P2 Předmět POM Učitel Obecná ternární vazbu nelze nahradit třemi vazbami binárními! Nutno již na úrovni analýzy je nutno ji nahradit pomocnou entitní množinou Pomocnou množinu je vhodné použít již při návrhu binárních vazeb Cykly v ERA modelech Cyklus pro 2 entity: E1 E2 Pojišťovací agenti KIV-DB1 - stránka 11

ID_PA Pojišťovací agent FK: ID_PA Smlouva Region ID_PA FK: ID_poj Pojištěnec bydlí ID_poj FK: ID_region Weby Může pojišťovací agent uzavřít smlouvu s klientem mimo jeho region? Nevíme Uživatel Komentář Příspěvek ZOO Komentář vkládá ten samý uživatel, co vkládá příspevěk? Ne ZOO Pavilon Ošetřovatel Zvíře Musí mít zvíře stejné ID pavilonu, jako ošetřovatel, který jej ošetřuje? Ano Může se sejít ID ze stejné entity dvakrát, pokaždé však přiteče z jiné vazby Pro řešení přidělíme výskytu ID roli V ZOO - ID pavilonu se u zvířete se objeví v roli že má ošetřovatele a že má pavilon Navíc provedeme úvahu, jestli musejí být stejné, nebo ne KIV-DB1 - stránka 12