Databázové systémy. Helena Palovská palovska@vse.cz



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

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

Objektově orientované databáze

4IT218 Databáze. 4IT218 Databáze

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

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

Aplikace počítačů v provozu vozidel 9

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

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

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ů

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

Jazyk S Q L základy, příkazy pro práci s daty

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

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS

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

průvodce správou, využitím a programováním

Databázové systémy trocha teorie

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

účetních informací státu při přenosu účetního záznamu,

Praktické úlohy- zaměření specializace

Univerzita pro obchodní partnery InfoSphere Guardium. Jan Musil 2009 IBM Corporation

Dobývání znalostí z databází. Databáze. datum jmeno prijmeni adresa_ulice adresa_mesto cislo_uctu platba zustatek

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Import certifikátů a vytvoření keystore

Maturitní témata z předmětu Programování a databázové systémy. pro šk. rok 2012/2013

Příloha č. 2 - Integrace SpiritÚAP do ESB Jihočeského kraje

Operace nad celými tabulkami

Analýzy v GIS. Co se nachází na tomto místě? Kde se nachází toto? Kolik tam toho je? Co se změnilo od? Co je příčinou? Co když?

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

INFORMAČNÍ SYSTÉM O AREÁLU

Databázové systémy úvod

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 4 DOPLNĚNÍ DAT A ALGORITMŮ MODULOVÉSCHÉMA

MINISTERSTVO PRO MÍSTNÍ ROZVOJ UŽIVATELSKÁ PŘÍRUČKA IS KP 14+ PRO INTEGROVANÉ NÁSTROJE: ŽÁDOST O PODPORU STRATEGIE CLLD. Verze: 1.

Budování aplikačních rozhraní pro obousměrnou komunikaci mezi ERMS a jejich vztah k Národnímu standardu pro komunikaci mezi ERMS.

Zákon o elektronickém podpisu

GIS Informačního Systému Krizového řízení - problematika datového skladu

Příloha č. 13. Statistický metainformační systém - úvod

EXTRAKT z české technické normy

Software IS Řízení stavebních zakázek

Podíl zdrojů informací

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

Algoritmizace a programování

Příloha č. 1. Specifikace jednotlivých e-learningových výukových kurzů:

Informační systém pro rezervaci pokojů hotelu SPORT

Nerelační databázové modely. Helena Palovská

Pravidla pro využívání lokální počítačové sítě Slovanského gymnázia v Olomouci. Preambule

O Apache Derby detailněji. Hynek Mlnařík

1) vložení záznamu o smlouvě a jeho atributy (rozumí se i možnost opravy záznamu)

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

MV ČR, Odbor egovernmentu. Webové stránky veřejné správy - minimalizace jejich zranitelnosti a podpora bezpečnostních prvků

V této části manuálu bude popsán postup jak vytvářet a modifikovat stránky v publikačním systému Moris a jak plně využít všech možností systému.

Studie proveditelnosti. Marketingová analýza trhu

Inovované řešení VDT/VT

VERZE: 01 DATUM: 05/2014

OBEC HORNÍ MĚSTO Spisový řád

Rozšířená nastavení. Kapitola 4

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

VYR-32 POKYNY PRO SPRÁVNOU VÝROBNÍ PRAXI - DOPLNĚK 6

Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika:

Tekla Structures Multi-user Mode

Aplikace pro správu uživatelů

VÝROBEK V MARKETINGOVÉM MIXU. doc. PhDr. Dušan Pavlů, CSc. dusan.pavlu@vsfs.cz

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

TERÉNNÍ ÚPRAVY U NOVĚ BUDOVANÉ DÍLENSKÉ VÍCEÚČELOVÉ HALY, VČETNĚ REKONSTRUKCE PŘÍSTUPOVÉ CESTY A OSVĚTLENÍ

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

ROZKLIKÁVACÍ ROZPOČET - ONLINE ZVEŘEJŇOVÁNÍ EKONOMICKÝCH DAT ÚŘADU

VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s. Fakulta ekonomických studií katedra řízení podniku. Předmět: ŘÍZENÍ LIDSKÝCH ZDROJŮ (B-RLZ)

DATOVÉ SCHRÁNKY. Seminární práce z předmětu Information and communication policy

Management projektů. Programová podpora auditu sytému managementu kvality HOT 4IT. Návrh

Nástroje produktivity

ORGANIZAČNÍ ŘÁD ŠKOLY

Poukázky v obálkách. MOJESODEXO.CZ - Poukázky v obálkách Uživatelská příručka MOJESODEXO.CZ. Uživatelská příručka. Strana 1 / 1. Verze aplikace: 1.4.

Specifikace předmětu plnění veřejné zakázky: Poskytování mobilních hlasových a datových služeb pro potřeby Města Uherské Hradiště

Datasheet Fujitsu Transportní brašny pro notebooky - univerzální Příslušenství

Miroslav Kunt. Srovnávací přehled terminologie archivních standardů ISAD(G), ISAAR(CPF) a české archivní legislativy

Uživatelská dokumentace

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

Ukázka knihy z internetového knihkupectví

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

2008 Nokia. Všechna práva vyhrazena. Nokia, Nokia Connecting People a Nseries jsou ochranné známky nebo registrované ochranné známky společnosti

Západní město Stodůlky, Administrativní dům A2 plynovod 1.etapa

13. Sítě WAN. Rozlehlé sítě WAN. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme rozlehlé sítě typu WAN. Doba nutná k nastudování

Metody hodnocení rizik

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Java a Caché IV: Manipulace s objekty

Algoritmizace a programování

MAGIS MIS - Manažerský systém v předním dřevařském podniku AGROP NOVA a.s.

Podrobný postup pro doplnění Žádosti o dotaci prostřednictvím Portálu Farmáře. 1. kolo příjmu žádostí Programu rozvoje venkova ( )

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM

PODMÍNKY ELEKTRONICKÉ AUKCE SPOLEČNOSTI RWE GAS STORAGE, s.r.o. NA NOVOU SKLADOVACÍ KAPACITU

IMPLEMENTACE SW NÁSTROJE PROCESNÍHO ŘÍZENÍ ATTIS

Provozní řád DTM DMVS Plzeňského kraje

FOND VYSOČINY NÁZEV GP

Provozní řád víceúčelové a školní tělocvičny v Jilemnici

S_5_Spisový a skartační řád

Vysoká škola ekonomická v Praze

Registr UJO. Příručka pro uživatele. Institut biostatistiky a analýz. Lékařské a Přírodovědecké fakulty Masarykovy univerzity.

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

Transkript:

Databázové systémy Helena Palovská palovska@vse.cz

Třívrstvá architektura komunikační, presentační modul aplikační modul databáze

pokročilý uživatel Role aplikační programátoři běžný uživatel aplikační programátoři běžná uživatelka správce databáze

Přístup k datům Sdílení dat aplikacemi, paralelní přístup aplikace aplikace DATA DATA aplikace aplikace Vrstva odstiňující aplikace od ukládání dat a chránící data.

Technologická architektura SQL aplikační server tenký klient tlustý klient data DATA SQL data SŘBD (DBMS) systém řízení báze dat (database management system) říká se mu databázový server např. IBM DB2, Oracle, Informix, MS SQL Server, Sybase,, MySQL, PostgreSQL, Firebird

aplikační server tenký klient DATA SQL data Tenký klient : např. web browser Aplikační server: např. Apache s PHP Databázový server: např. MySQL

DATA SQLtlustý klient data Aplikační logika je v tlustém klientovi: programován v C, Javě, nebo v proprietárním prostředí příslušném k db serveru, nebo to může být i např. aplikace v MS Access. Databázový server může být např. Oracle

file server Datový soubor klientská databáze Klientská databáze např. MS Access, Paradox, DBase

Databázový server vs. file server Přístup k jednotlivým datovým položkám záznamů, nikoli k celému souboru názvy pro různé objekty databázové struktury na strukturu je možno se dotázat... Specifická přístupová práva k jednotlivým typům záznamů pro různé uživatele v rámci OS má k datovému souboru přístup pouze SŘBD

Databázový server vs. file server Zajišťování integrity a konzistence dat Validace vstupu Obnova po poruchách až k poslednímu konzistentnímu stavu Efektivní správa velkého objemu dat

Databázový systém (maximální) požadavky sdílení dat, paralelní přístup nezávislost aplikací na fyzickém uložení dat, logický přístup k datům, centrální popis dat ochrana před neoprávněným přístupem před poruchami kontrola konzistence dat velké objemy dat

Různé modely pro databázovou strukturu databázové modely 1960 SŘBD síťový, hierarchický síťové, hierarchické relační 1970 1980 relační objektový multidimenzionální objektově-relační 1990 objektové data warehouse objektově-relační

Databázová struktura obecně Definují se typy záznamů výčet položek, jejich typů (domén) a jmen V typu záznamu může být určen primární klíč skupina položek k jednoznačné identifikaci záznamu užitív relačních a objektových databázích Záznamy mohou být vyhledávány navigací podle odkazů mezi záznamy v síťových a objektových databázích Vyhledávat se může také sekvenčně hierarchických databázích když to nejde jinak

Indexy Jsou pomocné databázové struktury sloužící k urychlení vyhledávání záznamů vyhledávání podle daných příznaků podle primárního klíče podle hodnot v dané položce či skupině položek SŘBD je udržuje v aktuálním stavu

Indexy Nejčastější způsoby organizace: B-stromy Bitové indexy Hashované/clusterované indexy

B-stromy Jsou optimalizovány pro čtení stránek* při vyhledávání Mají nejlepší dynamické vlastnosti při reakcích na aktualizace v databázi *) stránka je jednotkou čtení/zápisu z/do vnější paměti

B-stromy stránky indexního souboru ukazatele na další stránky ukazatele na záznamy v databázi

B-stromy Na 1 stránce mohou být stovky klíčů stačí 3 až 4 úrovně stromu ~ 3 až 4 čtení k nalezení záznamu Listy sekvenčně propojeny uspřádání záznamů podle ind. klíče

Bitové indexy Vhodné pro malou doménu (množinu hodnot) vyhledávacího klíče Pro každou hodnotu vytvořen bitový vektor pozicím odpovídají jednotlivé záznamy Možná i vhodná komprimace vektorů rozbalování od začátku

Hash indexy Hash funkce vypočítá adresu stránky uložení záznamu Nutné značné rezervy pro ukládání záznamů Nejrychlejší index Můžeme mít nejvýše jeden hash index (clustrerovaný index) protože je to fyzické uložení záznamu

Databázové modely - specifické způsoby organizace dat

Data a vztahy mezi nimi Sídlo-ulice Havlova 3 31 Číslo dveří Oddělení Prodej Je zaměstnána v Má vedoucího Je zaměstnán v Jméno Anna Jméno Jan 690318/1478 54 800 Kč Sezimovo Ústí Adresa-město Praha 4 Základní plat Adresa-město Adresa-ulice Kollárova 4 855912/0671 Foto Adresa-ulice Sládkovičova 13 Foto 22 400 Kč Základní plat

Relační databáze Zaměstnenec RČ Jméno Adresa-město Adresa-ulice Základní plat Foto Oddělení 690318/1478 Jan Praha 4 Sládkovičova 13 54 800 Kč Prodej 855912/0671 Anna Sezimovo Ústí Kollárova 4 22 400 Kč Prodej Oddělení Název Sídlo-ulice Číslo dveří Vedoucí Prodej Havlova 3 31 690318/1478 Primární klíče Relace, relační tabulky Cizí klíče

Relační databáze Data jsou organizována do tabulek Jeden záznam = jeden řádek nějaké tabulky Sloupce tabulky tvoří pole/položky záznamů Položky jsou atomické nejsou složeny z částí, které by nesly nějaký význam (ve světě aplikace) není v nich více údajů

Co jsou atomické položky? Nejsou atomické: Vysoká škola ekonomická Vysoká škola finanční a správní W.Churchilla 4, 130 00 Praha 3 Estonská 500, 101 00 Praha 10 224-095-111 210-088-800 271-741-597 Vnitřní struktura významů. Více hodnot se stejným významem.

Svět aplikace Číslo objednávky Zákazník Zaměstnanec Datum objednávky Dodat dne 11074 SIMOB King, Robert 06.05.1998 03.06.1998 11075 RICSU Callahan, Laura 06.05.1998 03.06.1998 11076 BONAP Peacock, Margaret 06.05.1998 03.06.1998 Číslo objednávky Výrobek Jednotková cena Množství Sleva 11074 16 436,25 Kč 14 5,00% 11075 2 475,00 Kč 10 15,00% 11075 46 300,00 Kč 30 15,00% 11075 76 450,00 Kč 2 15,00% 11076 6 625,00 Kč 20 25,00% 11076 14 581,25 Kč 20 25,00% 11076 19 230,00 Kč 10 25,00% databázová struktura Číslo výrobku Název výrobku Dodavatel 1 Chai Aux joyeux ecclésiastiques 2 Chang Exotic Liquids 46 Spegesild Lyngbysild 76 Lakkalikööri Karkki Oy Kód zákazníka Firma Adresa Město Země RICAR Ricardo Adocicados Av. Copacabana, 267 Rio de Janeiro Brazílie RICSU Richter Supermarkt Grenzacherweg 237 Ženeva Švýcarsko ROMEY Romero y tomillo Gran Vía, 1 Madrid Španělsko relační databáze

Síťové databáze Typ vztahu ve schématu: Kolej Jméno_K, Adresa Student Č_ST,... Švehlova,Slavíkova 22 B65 J45 K35 R24 T32 A81 Jeho fyzická realizace Sinkuleho,Zikova 13 C15 E44 H35 H24

Příklad schématu síťové databáze FAKULTA jméno_fak, adresa zaměstnává vychovává ZAMĚSTNANEC č_zam, STUDENT č_st, přednáší si_zapsal PŘEDNÁŠKA č_před, název ZÁPIS č_před,č_st, známka je_zapsána Pro každý typ vztahu jsou vytvořeny kruhové seznamy od master recordů, takže např od každé fakulty máme dva kruhové sezamy.

Hierarchické databáze ODDĚLENÍ číslo oddělení, jméno oddělení,vedoucí MÍSTNOST číslo místnosti, počet židlí ZAMĚSTNANEC číslo zam., jméno zam., dat. nar., vzdělání, FUNKČNÍ HISTORIE datum, funkce DĚTI jméno dítěte, datum narození Takto vypadají záznamy: 03 PROGRAMOVÁNÍ Novák Jiří 324 4 322 10 321 5 1321 Albl Antonín 25.1.1953 VŠ 1.1.1983 programátor Jiří 28.4.1981 Eva 6.2.1980 Jan 5.1.1978 1239 Kusý Jan 31.12.1938 SŠ 1.8.1983 programátor 1234 Novák Jiří 27.5.1950 VŠ 1.1.1984 vedoucí 15.5.1983 programátor 1.7.1982 operátor Eva 12.8.1982

Objektové databáze ODMG 3.0 norma (2001): Adoptován je objektový model OMG objekt, typ/třída - objekty stejné třídy mají mít stejné chování a stejnou množinu stavů metody, atributy, přidány jsou vztahy -vazby na jiný objekt Je definován ODL Je definován OQL Jsou vytvářeny bindingy pro programovací jazyky - příkazy pro persistenci dat nativní v příslušném jazyce

ODL CLASS Person { SRING Name, DATE Birthdate, } také metody, konstruktor Referenční vztahy, integrita INT Age, REF <Apartment> Lives_in INVERSE Apartment::IS_used_by jiné konstrukty SET, BAG, ARRAY, STRUCT, LIST 1:1 SET<REF<Apartment>> 1:n, n:m

OQL SELECT c.lives_in.building.address FROM p IN Person, c IN p.children výsledkem je Bag porušení zapouzdření SELECT STRUCT( me:p.name, my_address:p.lives_in.building.address) FROM p IN Person WHERE porušení zapouzdření výsledkem je struktura Do SELECT možno i zahnízďování struktur, i metody Porušení zapouzdření možno v ad-hoc dotazech.

Co je O-R mapping Vrstvy mezi OO aplikací a SQL databází podpora myšlení v objektech ev.cashe objektů, zodpovědné za persistenci Co potřebjeme: INSERT,UPDATE,DELETE metody proxy objektů SELECTy Typové Navigační na malém počtu objektů Přehledové/rozsáhlé - lépe SQL přímo Ad-hoc - lépe SQL přímo

Porovnání R,OO,O-R Relační db výkon na tradičních datech, výkon na rozsáhlých dotazech O-R mapping programátorské pohodlí, rychlý, udržitelný vývoj aplikací OO db výkon na netradičních datech slabší v databázových rysech

Objektový přístup v databázích Objektová identita Složité objekty Abstraktní datové typy Chování dat

Objektová identita Záznamy mají/mohou mít OID v relační db mohou být použity jako primární klíče k odkazům z jiných záznamů V jiných záznamech : atribut typu REF odkaz, ukazatel jeho obsahem je OID nějakého záznamu nelze s ním manipulovat jako s hodnotou, ale jako s odkazem

Referenční integrita a OID Slave records INSERT (u REF není třeba hlídat) UPDATE (u REF není třeba hlídat Master records UPDATE (OID není možno měnit) DELETE Nemaže se Maže se ale není to kritické použití utilit na řešení odkazů doprázdna Maže se a je to kritické nutno definovat vztah FOREGN KEY Jediný důvod pro hlídání referenční integrity

Reference a dereference v SQL navigační dotazování Tabulka Ucty má pole Vlastnik typu REF do tabulky Klient, tabulka Klient má pole Jmeno a pole Adresa strukturovaného typu: SELECT U.Vlastnik.Jmeno FROM Ucty U WHERE U.Vlastnik.Adresa.Mesto= Pardubice AND U.Zustatek>100000;

Objektové typy v SQL databázi Složité objekty id name contact phone lineitems item qty unit_price možno použít jako řádkový typ při CREATE nové tabulky, lineitems mohou být logicky dostupné v nested table (ORACLE)

Objektové typy v SQL databázi Metody příslušného objektového typu v definici typu Těla metod v uložených procedurách a funkcích SELECT Formalni(Jmeno) FROM Ctenar WHERE Vek(Ctenar)>=40 je nejistá optimalizace dotazů

Datové typy Validace vstupu Operace, funkce, metody Význam, užití Objem, čas uložení zpracování operací vyhledávání, indexace

Základní datové typy číslo množství, počet přesná pevná desetinná čárka nepřesná plovoucí desetinná čárka měna výpočty text dané maximální délky název, jméno, kód kdy ano/ne datum a čas logická hodnota zobrazení, porovnání, slepení manipulace po písmenech co bylo/je/bude dříve, výpočet intervalu Year, Month, Day logické výrazy typ vyjmenovaných hodnot zařazení do nějaké kategorie vyhledání, třídění

Datové typy v SQL Základní datové typy číslo textový údaj datum a čas ano/ne (logický) Nové datové typy bitovéřetězce volný text obrázky, audio, multimedia prostorová data časové intervaly + uživatelsky definované typy

UDTs and UDFs Existují balíky, které je možno koupit DataBlades Cartridges Extenders Jejich výhodou je indexace takových typů v SŘBD

Odlišující typy v SQL Emulace domén přínos prostřednictvím strong typing

Chování dat v SQL databázi Idea: Databáze = data + aplikace datům vlastní K tomu slouží Triggery Uložené procedury

Objekty SQL databáze databáze, schemata, tabulky, indexy, constraints, views uložené procedury triggery DATA datové typy funkce SQL data aplikační server SQL data tenký klient tlustý klient

Triggery Účel: Integritní omezení Odvozené datové objekty Repliky, archivy, vypočtená pole Akce ven E-mail, zaslání objednávky Množství možných triggerů na jednu tabulku je omezené!

Struktura triggeru událost před/po tabulka INSERT UPDATE DELETE BEFORE/AFTER (u UPDATE výběr polí) jméno pro referenci na vkládaný/měněný/mazaný řádek podmínka akce pro FOR EACH ROW STATEMENT

Integritní omezení triggerem - příklad Titul (ISBN, název, ) Svazek (signatura, titul Titul.ISBN,, umístění) Vypujcka (ctenar, svazek, od, do) Rezervace (ctenar, titul, od, do) Titul není možno rezervovat, když existuje volný svazek tohoto titulu.

pokračování příkladu událost: INSERT do tabulky Rezervace podmínka: existuje volný svazek EXISTS SELECT * FROM Svazek s LEFT OUTER JOIN Vypujcka v ON (v.svazek=s.signatura AND v.do IS NULL) WHERE s.titul=new.titul AND v.svazek IS NULL akce: vyvolat chybu, vrátit nepovolit málo efektivní

pokračování příkladu Svazek (signatura, titul Titul.ISBN,, umístění, je_volný:a/n) podmínka: existuje volný svazek EXISTS SELECT * FROM Svazek s WHERE s.titul=new.titul AND s.je_volný trigger na údržbu odvozeného pole je_volný

pokračování příkladu událost: UPDATE pole do v tabulce Vypujcky podmínka: - akce: u toho svazku napiš, že je volný UPDATE Svazek SET je_volny=t WHERE Svazek.signatura=NEW.svazek

pokračování příkladu událost: INSERT do tabulky Vypujcky podmínka: - akce: u toho svazku napiš, že není volný UPDATE Svazek SET je_volny=f WHERE Svazek.signatura=NEW.svazek

Uložené procedury Jsou spravované db serverem Přístupová práva Zkompilované, prováděné db serverem Rychlost, sdílení paměti Logika aplikace je na jediném místě Snadná údržba (opravy, aktualizace) Může programovat nejlepší programátor, jednou Lze omezit přístupová práva k datovým objektům Bezpečnost, spolehlivost přístupu

Uložené procedury Zatěžují DB server Vhodné jsou datově intenzivní procesy

Uložené procedury Užití: Jednotlivé typové SELECTy (proti nebezpečí neoptimalizovaných SELECTů) Těla triggerů Údržbové procedury

Uložené procedury Napsané v SQL Od verze 1999 je SQL úplný programovací jazyk Proměnné Napsané v jiném programovacím jazyce Db server musí mít kompilátor toho jazyka

databázové modely 1960 SŘBD síťový, hierarchický síťové, hierarchické relační 1970 1980 relační objektový multidimenzionální objektově-relační 1990 objektové data warehouse objektově-relační

Trendy v databázových modelech Fuzzy dotazování Prostorová data XML databáze Temporární databáze, verzování

DALŠÍ ČÁSTI SQL Recursive SQL SELECT WITH RECURSIVE Reachable_From (Source,Destin) AS (SELECT Source,Destin FROM Flights UNION SELECT in.source, out.destin FROM Reachable_From in, Fights out WHERE in.destin=out.source) SELECT * FROM Reachable_From Podobně: Nalezněte nejlevnější spojení z jednoho města do druhého!

Architektura databázových aplikací

databáze, schemata, tabulky, indexy, onstraints, views uložené procedury triggery DATA datové typy funkce SQL data aplikační server SQL data tenký klient tlustý klient embedded SQL předkompilátor dotaz na SQLcode connect begin (transaction) insert,update,delete select commit/rollback disconnect ODBC API vrstvy recordset level1,2,3

SQLcode ~ informace o úspěšnosti příkazu Příklad v PosgreSQL dbtest=> begin; BEGIN dbtest=> insert into pokus values ('eee'); INSERT 38414 1 dbtest=> update ucty set stav=-100 where cislouctu=1230; ERROR: new row for relation "ucty" violates check constraint "$1" dbtest=> insert into pokus values ('fff'); ERROR: current transaction is aborted, commands ignored until end of transaction block dbtest=> rollback; ROLLBACK dbtest=> select * from pokus; a ------------ aaaa (1 row)

Deadlock begin; update ucty set stav=stav-100 where cislouctu=501; update ucty set stav=stav+100 where cislouctu=1230; begin; update ucty set stav=stav+200 where cislouctu=1230; update ucty set stav=stav-200 where cislouctu=501;

Design databázového schématu

ANSI/SPAC 1975 Externí schéma Externí schéma Externí schéma integrovány do zvelkéčásti rutinně mapováno Konceptuální schéma Schéma databáze Schéma fyzické implementace Různé pohledy na problematiku z hlediska uživatelů běžně provádí DBMS, správce databáze to může poněkud ovlivňovat

Proč konceptuální model Srozumitelný a věcně správný model, na jehož základě bude databáze navržena srozumitelný, přehledný vše podstatné věcně správný Společný základ pro chápání objektů aplikace uživateli, analytikem, správcem databáze i programátory Dokumentace

Značení P. P. Chena název Diskusní klub správce klíč, určuje entitu login Osoba heslo členství zařazení typy entit typy vztahů Příspěvek odesílatel parcialita, tj. nepovinné členství ve vztahu atributy datum a čas text kardinalita : n

Jiná značení název Diskusní klub správce má správce členství Osoba login heslo zařazení odesílatel Příspěvek datum a čas text

Jiná značení Diskusní klub 0..* má správce 1 Osoba

Jiná značení Diskusní klub má správce Osoba

Jiná značení Diskusní klub má správce správce Osoba

Jiná značení název správce login heslo Diskusní klub členství Osoba login heslo zařazení odesílatel Příspěvek datum a čas text

Jiná značení název Diskusní klub správce členství Osoba login heslo zařazení odesílatel Příspěvek datum a čas text

Jiná značení název Diskusní klub správce členství Osoba login heslo zařazení odesílatel Příspěvek datum a čas text

Jiná značení název Diskusní klub správce členství Osoba login (PK) heslo zařazení odesílatel Příspěvek datum a čas text

Další prvky ER(A) totální, tj. povinný atribut název správce login heslo Diskusní klub Osoba členství e-mail zařazení odesílatel Příspěvek parciální, tj. nepovinný atribut datum a čas text

Další prvky ER(A) název správce login heslo Diskusní klub Osoba členství e-mail zařazení odesílatel Klíč? Příspěvek datum a čas text Příspěvky jsou identifikovatelné podle odesílatele a časového razítka

Další prvky ER(A) název správce login heslo Diskusní klub Osoba členství e-mail zařazení odesílatel Příspěvek Identifikační závislost datum a čas text

Další prvky ER(A) název správce login heslo Diskusní klub Osoba členství e-mail zařazení zařazení odesílatel adresát odesílatel odesílatel Příspěvek Příspěvek Dopis datum a čas datum a čas text text datum a čas text

Další prvky ER(A) název správce login heslo Diskusní klub Osoba členství e-mail zařazení odesílatel adresát odesílatel Příspěvek Dopis datum a čas text datum a čas text

Generalizace název správce login heslo Diskusní klub Osoba členství e-mail zařazení adresát odesílatel Dopis Dokument Příspěvek datum a čas text

Specializace název správce login heslo Diskusní klub Osoba členství e-mail zařazení odesílatel Příspěvek datum a čas text

Specializace název jméno a příjmení Diskusní klub správce členství Správce adresa login heslo zařazení odesílatel Osoba Příspěvek e-mail datum a čas text

Generalizace/specializace Dopis Dokument Příspěvek členění Dokumenty Dopisy Příspěvky

Vztahy Binární Diskusní klub má správce Osoba Diskusní klub je správcem Osoba více-ární

Více-ární vztahy Učitel Student výuka Předmět V tomto semestru

Atributy vztahů Diskusní klub členství Osoba datum od Učitel Student výuka Předmět počet hodin

Vazební entity Učitel Student vyzkoušel Předmět známka datum Učitel zkoušený Student zkoušející Zkouška Předmět z čeho známka datum

Vazební entity Binarizace více-árního vztahu Atributy vztahu K tomu můžeme být přinuceni použitou technologií Opakovaný vztah: Učitel v celém průběhu studia Student vyzkoušel Předmět známka datum

Opakovaný vztah v celém průběhu studia! Učitel zkoušený Student zkoušející Zkouška Předmět z čeho známka datum Co je klíčem zkoušky?

Opakovaný vztah Učitel zkoušený Student zkoušející Zkouška Předmět z čeho známka datum

Distribuované uložení dat

Distribuované databáze Zvnějšku se chovají stejně jako jiná databáze (centralizovaná) něco trvá trochu déle Co musířešit: dlouhé (distribuované) transakce replikace dat distribuce správy dat distribuce ochrany dat, včetně autorizace

volně vázané Federace databází řízení integrity a transakcí schémata importu a exportu multidatabáze (globální datový model = kompozice) úzce vázané architektura 5ti schémat (integrované glob. schéma) import/export multidatabáze 5 schémat uživatel a lokální uživatel globální zodpovědnost správce dat správce dat z lokálního globální rozhraní globální přístup syslému systém žádné částečné úplné globální řízení

Schémata importu a exportu: Schéma importu2 Schéma exportu2 Schéma importu1 Privátní schéma2 Privátní schéma1 Schéma exportu1

Multidatabáze: Externí schéma1 Externí schéma1 Externí schéma3 Konceptuální schéma1 Logické schéma1 Fyzické schéma1 Konceptuální schéma2 schéma1 Logické schéma2 Fyzické schéma2 Schéma závislostí

Globální schéma: globální dotaz je formulován nad globálním konceptuálním (event. externím) schématem Globální externí schéma Globální externí schéma Globální konceptuální schéma Globální schéma distribuce Schéma lokální reprezentace Schéma lokální reprezentace Lokální konceptuální schéma Lokální konceptuální schéma Lokální interní schéma Lokální interní schéma