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

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

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

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

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

Databázové systémy Cvičení 5.2

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

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

Transakce a zamykání Jiří Tomeš

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

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

04 - Databázové systémy

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

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

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

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

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

1. Databázové systémy (MP leden 2010)

Databázové systémy. Cvičení 6: SQL

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

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

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

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

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

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

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

Kapitola 6: Omezení integrity. Omezení domény

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

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

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Semestrální práce 2 znakový strom

Text úlohy. Systémový katalog (DICTIONARY):

Zápisování dat do databáze

Oracle XML DB. Tomáš Nykodým

Operátory ROLLUP a CUBE

Access. Tabulky. Vytvoření tabulky

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

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

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

Databáze SQL SELECT. David Hoksza

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

Jazyk SQL 3 - DML, DDL, TCL, DCL

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

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

4. Databázové systémy

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Programování a implementace Microsoft SQL Server 2014 databází

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka

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

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

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

Databáze Bc. Veronika Tomsová

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

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

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

DATABÁZE MS ACCESS 2010

Databázové systémy úvod

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová

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

Konceptuální modelování a SQL

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

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Databázové systémy BIK-DBS

Roční periodická zpráva projektu

Optimalizace dotazů a databázové transakce v Oracle

Access Tabulka letní semestr 2013

4IT218 Databáze. 4IT218 Databáze

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Databáze v MS ACCESS

PA152. Implementace databázových systémů

B Organizace databáze na fyzické úrovni u serveru Oracle

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

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

RELAČNÍ DATABÁZE ACCESS

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

Databázové systémy trocha teorie

Administrace Oracle. Práva a role, audit

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy

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

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

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

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

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

6. Fyzická (interní) úroveň databázového systému

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

Organizace a zpracování dat I

Nápověda aplikace Patron-Pro

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

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

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

Databázové systémy a SQL

Microsoft. Access. Nová databáze, návrh tabulky. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

UNIVERZITA PALACKÉHO V OLOMOUCI

Transkript:

Databáze I 5. přednáška Helena Palovská palovska@vse.cz

SQL jazyk definice dat - - DDL (data definition language)

Základní databáze, schemata, tabulky, indexy, constraints, views DATA

Databáze/schéma Logické členění spravovaných databázových objektů na celky odpovídající oblastem zájmu či zodpovědnostem V různých SŘBD různá koncepce (ne)překrývání schémat vztah uživatelů a schémat vlastnictví, přístup k objektům schématu

Definice tabulky Určení sloupců a jejich datových typů Primární klíče a další constraints Způsob fyzické organizace a metody správy

K čemu jsou 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

Primární klíč Slouží pro odkazování na řádek tabulky Musí být unikátní (UNIQUE) Musí existovat (tj. NOT NULL) Neměl by se měnit V některých SŘBD to ani nejde, pokud na řádek existuje odkaz. tzn. neměl by vzniknout důvod ho měnit! Významový/nevýznamový event. automaticky generovaný

Další constraints NOT NULL, DEFAULT UNIQUE CHECK() FOREIGN KEY http://krokodata.vse.cz/sql/createtable http://krokodata.vse.cz/sql/altertable

Referenční integrita SŘBD musí zajistit, aby odkazy cizí klíč primární klíč nebyly do prázdna. Stát by se to mohlo zadáním chybného odkazu (ve slave řádku) změnou či smazáním odkazovaného (master) řádku

Pravidla pro mazání master řádků Pravidlo je součástí definice FOREIGN KEY Může být: nesmí se mazat, když existuje odkaz (RESTRICT) když se smaže, všechny odkazy na něj se přepíší na prázdnou hodnotu (SET NULL) se smazáním "master" se smažou k němu příslušné "slave" (CASCADE) http://krokodata.vse.cz/dm/refint

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íčů 3 až 4 úrovně stromu stačí pro 10 6 až 10 8 ~ 3 až 4 čtení k nalezení záznamu Listy sekvenčně propojeny uspořá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

Pohledy Odvozené tabulky definované jako výsledek určitého dotazu uživatelský pohled přístupová práva legacy pohledy usnadnění formulace požadavků materializovaný pohled pro zefektivnění zpracování požadavků http://krokodata.vse.cz/sql/createview

Pohledy "with check option" Aktualizovatelné pohledy slouží pro zápis či mazání dat aktualizace nesmí způsobit nekonzistenci pohledu

SQL jazyk manipulace dat - - DML (data manipulation language)

Pro dotazy slouží SELECT...

Pro aktualizaci dat INSERT vložení nového řádku UPDATE změna dat v existujícím řádku DELETE smazání řádku http://krokodata.vse.cz/sql/dml

Manipulace dat v aplikaci Aktualizační příkaz nemusí být proveden nedostatečná oprávnění porušil nějaké omezení, a tím způsobil chybu jiná chyba nedostatek prostředků na provedení uváznutí... Jak to v aplikace zjistí? návratové kódy příkazu

Logická jednotka zpracování dat Buď se mají udělat všechny z určitého seznamu operací, nebo žádná z nich. K tomu si musí SŘBD vést žurnál operací, a umět se vrátit zpět k danému bodu. Zpracování dělíme na tyto logické jednotky transakce.

Transakce Jednotka zpracování dat ACID Atomická: má se provést vše nebo nic. Pokud nelze dokončit, má se navrátit stav zpracovávaných dat před začátek transakce Udržuje databázi v konzistentním stavu. Před dokončením transakce mohou být data špatně neodrážejí fakta tak, jak jsou ale po potvrzení jsou správně. pokračování

Transakce Jednotlivé transakce jsou navzájem izolovány: nevědí o nepotvrzených stavech dat měněných jinou transakcí. (V SQL lze zmírnit nastavením transaction isolation level) Změny provedené potvrzenou transakcí jsou trvalé ACID zkratka: Atomicity, Consistency, Isolation, Durability pokračování

Řízení transakcí v SQL Určení začátku transakce BEGIN, event. BEGIN TRANSACTION režim může být nastaven tak, že jednotlivé příkazy jsou automaticky považovány za samostatnou transakci (obvykle při interaktivním zadávání příkazů) po ukončení předchozí transakce někdy automaticky začíná následující pokračování

Řízení transakcí v SQL Ukončení transakce COMMIT požadavek na trvalé uložení změn pokud se transakce dostala do stavu chyby (návratový kód některého příkazu sdělil chybu), pak COMMIT není proveden, je nutný ROLLBACK ROLLBACK požadavek vrátit změny před začátek transakce pokud nastala chyba (viz výše) pokud stav dat nevyhovuje

Transakce a zámky Automaticky se zamykají pro zápis záznamy měněné transakcí lze explicitně zamknout i příkazem Zámky pro čtení závisí na nastavení TIL Zámky se uvolňují s ukončením transakce

Uváznutí Uváznutí zámků mezi jednotlivými transakcemi SŘBD obvykle mají proces detekce deadlocků, násilně ukončí některou z transakcí dle vlastních pravidel

Deadlock příklad 1. transakce: 2. transakce: update ucty set stav=stav-100 where cislouctu=501; update ucty set stav=stav+100 where cislouctu=1230; update ucty set stav=stav+200 where cislouctu=1230; update ucty set stav=stav-200 where cislouctu=501;

Konec