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

Rozměr: px
Začít zobrazení ze stránky:

Download "Databázové systémy I. 7. Přednáška"

Transkript

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

2 Co nás dnes čeká Uživatelské pohledy (Views) Optimalizace SQL dotazů Zpracování dotazu Naplnění tabulek daty (DML) Sekvence Transakce Indexy

3 Pohledy (views) představují zobecnění tabulek jde o virtuální tabulky definované pomocí dotazů nad jinými tabulkami nebo pohledy (nazýváme je základními tabulkami) neobsahují vlastní data obvykle jen pro čtení (read only), protože nelze jasně definovat zpětný rozpad na původní sloupce) při dodržení určitých pravidel můžeme vytvořit zapisovatelný (updatable) pohled

4 Proč používat pohledy? omezují přístup k datům základní tabulky, protože pohled může zobrazovat selektivní sloupce či řádka z původní tabulky v případě často opakovaných spojení usnadní uživateli dotazování poskytují uživatelům (skupinám uživatelů) přístup k údajům podle jejich konkrétních oprávnění

5 Jak na pohledy v SQL CREATE OR REPLACE VIEW jméno (definice pohledu) AS dotaz Definice pohledu představuje přehled sloupců, integritních omezení těchto sloupců a vícesloupcových integritních omezení na pohled Lze užít přejmenování sloupců dotazu V rámci dotazu nelze použít klauzuli ORDER BY Část s definicí pohledu vč. () lze vypustit

6 Vytvoření pohledu CREATE [OR REPLACE] [FORCE NOFORCE] VIEW view_name [(alias [, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY [CONSTRAINT constraint]];

7 Typy pohledů Vlastnost Jednoduchý pohled Komplexní pohled Počet tabulek z nichž jsou získávána data Jedna Jedna nebo více Smí obsahovat funkce Ne Ano Smí obsahovat seskupování Lze provádět DML operations (INSERT, UPDATE, DELETE) prostřednictvím pohledu Ne Ano Ano Ne vždy

8 Modifikace pohledu K modifikaci pohledu dochází prostřednictvím přetvoření pohledu Použitím klauzule OR REPLACE při vytváření pohledu dojde k nahrazení staré verze nově definovaným pohledem

9 Omezení DML operací Nelze použít: víceřádkové funkce (D, U, I) GROUP BY (D, U, I) DISTINCT (D, U, I) pseudosloupec ROWNUM (D, U, I) sloupce definované pomocí výrazů (U, I) Neosahuje NOT NULL sloupce ze zdrojové tabulky (I)

10 Optimalizace dotazů Optimalizace de facto znamená nalezení optimální strategie zpracování dotazu Relační SŘBD je tak dobrý, jak je dobrý jeho optimalizátor dotazů. Optimalizace je vedena ve dvou krocích: Konstrukce alternativních plánů vyhodnocení. Odhad ceny alternativních plánů a volba plánu s nejnižší odhadnutou cenou. Optimalizaci provádí SŘBD, má více informací než programátor

11 Strategie optimalizace dotazů Algebraická optimalizace Indexy a velikost relace Řízené cenou operace Syntaxí řízená optimalizace

12 Algebraická optimalizace Nahrazuje jeden relační výraz druhým za účelem efektivnějšího přímého vyhodnocení. Zásada zmenši před operací spojení co nejvíce řádků a sloupců. Optimalizátor vyžaduje jisté informace o databázi. Je vhodná znalost, jak jsou podmínky omezující.

13 Algebraická optimalizace Prakticky se provádí transformacemi stromů dotazů. Listy jsou tvořeny základními relacemi, ostatní uzly reprezentují operace relační algebry Pravidla pro převod vycházejí z komutativních a distributivních zákonů vyplývajících z definice relačních operací.

14 Zákony

15 Zákony

16 Příklad Nalezněte jména filmů, u nichž existují kopie, které mají být vráceny do Pokorný (2007)

17 Příklad Použitím pravidel 1 a 2 rozdělíme čtyři spojení do dvou, nahradíme je kartézskými součiny a použijeme přejmenování atributů. Pokorný (2007)

18 Příklad Poslední výskyt spojení přepíšeme také pomocí kartézského součinu. Pokorný (2007)

19 Příklad Aplikací zákona 3 na selekci (DATUM_V > ) obdržíme záměnu selekční podmínky projekcí [K.JMÉNO_F, REŽISÉR, ROK, JMÉNO, ADRESA, V.Č_KOPIE, V.ROD_Č, DATUM_V], následně zaměníme danou selekci se selekcí V.Č_KOPIE=K. Č_KOPIE a po použití zákona 4 dostaneme danou selekci až k levému kartézskému součinu. Další aplikací zákona 3 a ze zákona 4 dostaneme tutéž selekci do kartézského součinu VÝPŮJČKY ZÁKAZNÍCI. Zároveň také podle 8 se zredukovaly po sobě jdoucí závěrečné projekce v jednu. Pokorný (2007)

20 Příklad Výsledek předchozích operací Pokorný (2007)

21 Příklad Další aplikací zákona 3 dostaneme před podmínku V.Č_KOPIE=K. Č_KOPIE projekci [K.Č_KOPIE, K.JMÉNO]. Pokorný (2007)

22 Příklad Nakonec je patrné, že první argument vnějšího kartézského součinu lze zjednodušit na VÝPŮJČKY (DATUM_V< )[V.Č_KOPIE] J. Pokorný. Databázové systémy 2. Praha: ČVUT, ISNB

23 Optimalizace založená na indexech a velikostech relací Problém bývá určit optimální pořadí operací spojení. Většina SŘBD používá jako základní algoritmy pouze binární spojení => vícenásobné spojení je nutné rozložit na posloupnost binárních. Řešení pomocí technik dynamického programování případně heuristických přístupů

24 Optimalizace řízená cenou Jedná se o jeden z heuristických přístupů pro spojení n relací, kde n > 2, generuje plány ve tvaru (((R 1 R 2 ) R 3 ) R n ). Vybere nejlepší plán pro spojení dvou relací, potom plám pro spojení třetí atd. Mají-li podmínky realizující spojení dvou relací R 1 a R 2 resp. R 3 a R 4 nízké ceny, je vhodnější zvolit způsob zpracování (R 1 R 2 )* (R 3 R 4 ).

25 Syntaxí řízená optimalizace Zde se předpokládá, že uživatel zahrne informaci pro optimalizaci od textu dotazu. SELECT * FROM zaměstnanci WHERE plat > 6700 AND adresa= 'Zemědělská 1 SELECT * FROM zaměstnanci WHERE adresa= 'Zemědělská 1' AND plat > 6700

26 Optimalizace v Oracle Oracle disponuje vlastním optimalizátorem dotazů Nastavení režimu optimalizace ALTER SESSION SET OPTIMIZER_MODE = {FIRST_ROWS FIRST_ROWS_ n ALL_ROWS RULE CHOOSE } Volíme Cíle optimalizace Minimální doba odezvy Maximální propustnost Přístup k optimalizaci Založený na statistikách (doporučený) Založený pouze na pravidlech

27 Data modification language Prostředek pro zanášení změn do databáze (modifikace relací) Nemůže ovlivnit datový slovník Musí realizovat tři základní operace: INSERT DELETE UPDATE Provádění operace musí být atomické, konzistentní a nesmí porušit integritu

28 Úplná kopie tabulky Je realizováno kombinací příkazů CREATE a SELECT CREATE TABLE copy_názevtabulky AS (SELECT * FROM názevtabulky) Omezení, příkaz nekopíruje primární klíče a IO cizího klíče Pro kontrolu takto zkopírovaných dat provedeme DESCRIBE copy_názevtabulky; SELECT * FROM copy_názevtabulky;

29 Vkládání nových záznamů Je realizováno přidáváním nových řádků do tabulky příkazem INSERT Existují dvě varianty vkládání: jeden řádek specifikovaný hodnotami více řádků určených dotazem Při vkládání se kontrolují integritní podmínky tabulky (definovanost, implicitní hodnoty, omezení, klíče) a provádí se současně potřebné definované indexování

30 Vkládání nových záznamů

31 Jak na to v SQL INSERT INTO tabulka [ (sloupce) ] VALUES (hodnoty) dotaz Počet hodnot musí odpovídat počtu sloupců (včetně domén), analogicky počet sloupců dotazu musí odpovídat počtu sloupců v definici INSERT Než začneme vkládat, zkontrolujeme si cílovou tabulku (DESCRIBE) Neuvedením sloupců se uvažují všechny sloupce z tabulky v pořadí odpovídající definice

32 Kontrola tabulky

33 Jak na NULL Při vkládání je nutné uvést hodnoty všech sloupců pro které vkládáme hodnoty Pro vložení nedefinovaných hodnot, lze použít NULL, pro chybějící údaje se používá prázdný řetězec ( )

34 Vkládání speciálních hodnot Typicky se jedná o hodnoty jako SYSDATE nebo USER SYSDATE, vloží aktuální datum a čas USER, vloží jméno uživatele aktuální session U APEXu to bude OAE_PUBLIC_USER

35 Vkládání speciálních hodnot Kromě funkcí (př. SYSDATE), lze vkládat rovněž výrazy

36 Použití zanořených dotazů Pro vkládání více údajů z jiné tabulky je možné požít vnořeného dotazu Představte si přesun banned uživatelů na fóru Namísto 100 samostatných insertů tak spustíme jeden Při tomto způsobu není potřeba uvádět VALUES klauzuli

37 CREATE TABLE lidi (id NUMBER(5) NOT NULL PRIMARY KEY, jmeno VARCHAR2(50) NOT NULL, login VARCHAR2(8) UNIQUE, vek NUMBER(3) CHECK (vek > 0)); INSERT INTO lidi (id,jmeno,vek) VALUES (1, Metuzalém,784) INSERT INTO lidi VALUES (1, Metuzalém, xmetuz,784) Příklad použití INSERT

38 Problém primárního klíče Často řešený problém co je primárním klíčem redukuje se na tvorbu sloupce ID Tento sloupec je číselný, vždy definovaný a označený jako primární klíč (a tedy automaticky také indexovaný) Jak zajistit přidělování čísel záznamům? Problém MAX(id) při kolizi dvou uživatelů Řešením jsou sekvence

39 Sekvence Představují jediný nástroj nezávislý na transakcích a relacích uživatele Jdou napříč celým DBS Sekvence na zavolání vždy vrátí další číslo v řadě (podle stanovených podmínek) V jednom SQL příkazu vrátí sekvence vždy jen jedno číslo (tzv. nextval) Nelze získat aktuální stav sekvence

40 Práce se sekvencí v SQL Součást datového slovníku (DDL): CREATE SEQUENCE jméno Pro získání nové hodnoty slouží funkce sekvence.nextval Pro získání hodnoty již jednou vytvořené v SQL příkazu slouží sekvence.currval Příklad použití: INSERT INTO lidi (id,jmeno) VALUES (lidi_seq.nextval, Eva )

41 Rušení záznamů Je realizováno vyhledáním a rušením existujících řádků tabulky příkazem DELETE Existují dvě varianty rušení: vybraných řádků určených podmínkou všech řádků tabulky Při rušení se kontroluje konzistence integritních omezení, rušení tak může být zakázáno nebo vyvolá kaskádové rušení Co se stane když vynecháme podmínku WHERE?

42 Jak na to v SQL DELETE [ FROM ] tabulka [ WHERE podmínka ] Neuvedením části WHERE dojde k vymazání celé tabulky (ovšem pouze obsahu, vlastní tabulka je součástí datového slovníku nemůže jí zrušit DML) Klíčové slovo FROM je nepovinné pouze v Oracle

43 Neopomenout IO

44 Určení podmínky v DELETE Lze užít část dotazovacího jazyka SQL Kombinujeme sloupce z příslušné tabulky, relační operátory, konstanty, závorky a logické spojky (AND, OR, NOT) Můžeme použít množinový vnořený dotaz pomocí operátoru IN (ptáme se, zda je hodnota obsažena v množině) Můžeme použít množinový poddotaz o jedné hodnotě místo konstanty v relaci

45 Použití zanořených dotazů v DELETE

46 DELETE FROM lidi DELETE FROM lidi WHERE vek < 18 DELETE FROM lidi WHERE vek < 18 OR vek > 62 DELETE FROM lidi WHERE vek IN (15,18,21) DELETE FROM lidi WHERE vek < (SELECT prah FROM limity WHERE typ = plnoletost ) Příklad použití DELETE

47 Změna (modifikace) záznamů Je realizováno vyhledáním a změnou existujících řádků tabulky příkazem UPDATE Existují dvě varianty rozsahu změn: vybraných řádků určených podmínkou všech řádků tabulky Při modifikaci se též kontroluje veškerá konzistence integritních omezení a všechny podmínky jako při vkládání nových záznamů

48 Který z řádků bude změněn? Kontrolní otázka?

49 Jak na to v SQL UPDATE tabulka SET změnový seznam [ WHERE podmínka ] Neuvedením části WHERE dojde ke změně v celém rozsahu tabulky Změnový seznam je čárkou oddělená posloupnost údajů tvaru jméno sloupce = hodnota Podmínka se určuje stejným způsobem jako u DELETE

50 Použití vnořeného dotazu

51 Update 2 sloupců 2 vnořenými dotazy

52 MERGE Umožňuje provést současně INSERT i UPDATE a to ve 2 případech Chybí-li vkládaná hodnota, pak je vložena nová Je-li nutné aktuální hodnotu nahradit novou Pro provedení těchto změn je nutné disponovat právy pro pro příkazy INSERT a UPDATE MERGE umožňuje použití aliasů

53 MERGE v příkladu

54 Datové typy Znakové typy CHAR(n), pevný počet znaků, až do 2000 znaků VARCHAR2(n), variabilní počet znaků, až do 4000 znaků CLOB, variabilní počet znaků, až do 128 TB Číselné typy NUMBER(prec, scale), variabilní počet číslic, až do 38 desetinných míst Typ datum a čas DATE, TIMESTAMP, INTERVAL Binární objekty (jako JPG, WAV, MP3 atd.) RAW(n), variabilní délka, až do 2000 bytů BLOB, variabilní délka, až do 128 TB

55 Datové typy Best practices Pro znakové typy je lepší použití VARCHAR2 nebo CLOB na místo CHAR (úspora místa) NUMBER ukládá kladná i záporná čísla, např. NUMBER(6,2) > uloží +9999,99 i -9999,99 TIMESTAMP WITH LOCAL TIME ZONE uloží hodiny včetně odchylky od Universal Coordinated Time (UCT), dříve GMT Při použití v SELECT je čas automaticky převeden na aktuální čas v dané časové zóně

56 CREATE TABLE time_example (first_column TIMESTAMP WITH TIME ZONE, second_column TIMESTAMP WITH LOCAL TIME ZONE); INSERT INTO time_example (first_column, second_column) VALUES ('15-NOV :00:00 AM -05:00, '15-NOV :00:00'); Uživatel v Istanbulu provede: a uvidí... LOCAL TIME ZONE TIMESTAMP WITH

57 Intervalové datové typy Pro uchování uběhlého času, nebo intervalu času mezi dvěma dny-časovými hodnotami INTERVAL YEAR TO MONTH, uloží časovou periodu měřenou rokem a měsícem INTERVAL DAY TO SECOND, uloží časovou periodu měřenou ve dnech, hodinách, minutách a sekundách

58 Intervalové datové typy

59 Co si představíte pod pojmem transakce?

60 Transakce provedení, uzavření obchodu, převod ( je dohoda, komunikace, přenos nebo výměna čehokoliv mezi dvěma samostatnými entitami nebo objekty. (

61 Bankovní transakce

62 Databázová transakce Databázová transakce je skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého. (

63 Bankovní transakce

64 Vlastnosti transakcí Atomicity (atomičnost) Consistency (zajištění konzistence) Isolation (izolovanost) Durability (trvalost)

65 Atomičnost transakce Databázová transakce je jako operace dále nedělitelná (atomární). Provede se buď jako celek, nebo se neprovede vůbec. Při neprovedení transakce dochází zpravidla k chybovému hlášení

66 Konzistence Databáze zůstává neustále konzistentní. Při a po provedení transakce nesmí být porušeno žádné integritní omezení.

67 Izolovanost Transakce musí být vzájemně nezávislé, dílčí efekty transakce neovlivní jiné transakce. Operace uvnitř transakce jsou skryty před vnějšími operacemi. Vrácením transakce není zasažena jiná transakce, jinak i tato musí být vrácena. V důsledku tohoto chování může dojít k tzv. řetězovému vrácení.

68 Trvalost Změny, které se provedou jako výsledek úspěšných transakcí, jsou skutečně uloženy v databázi a již nemohou být ztraceny. Efekt celé transakce je trvalý perzistentní.

69 Způsoby ukončení transakce COMMIT veškeré změny transakce jsou přijaty, od okamžiku potvrzení se stávají viditelné pro všechny ostatní transakce v databázovém systému ROLLBACK situace se vrací do okamžiku před zahájením transakce, všechny změny jsou označeny za neplatné

70 Příkazy pro řízení transakce SAVEPOINT: Vytvoří značku v transakci, která rozděluje transakci na menší kousky. ROLLBACK TO SAVEPOINT: Umožňuje uživateli vrátit zpět aktuální transakci do zadaného bodu. Byla-li k chybě, uživatel může použít příkaz ROLLBACK TO SAVEPOINT, čímž zahodí pouze ty změny, které byly provedeny poté, co byl založen SAVEPOINT.

71 Co se stane v této transakci?

72 Dva režimy práce s databází Sekvence transakcí první transakce je zahájena operací BEGIN TRANSACTION, poté probíhají jednotlivé transakce zakončené COMMIT či ROLLBACK, přičemž ukončení jedné transakce má za následek začátek další transakce Tzv. autocommit režim každá operace je chápána za samostatnou transakci, která implicitně končí COMMIT, pokud nenastala chyba

73 Aktualizace aplikace App1 je ztracena, jakmile aplikace App2 provede svou aktualizaci, proto se takovému problému říká Ztráta aktualizace. Ztráta aktualizace IBM DB2 Express-C

74 App2 čte nepotvrzená, neplatná data. Této situaci se také říká nepotvrzené čtení. Nepotvrzené čtení IBM DB2 Express-C

75 V tomto případě nemůže být znovu reprodukována původní datová sada, App1 nedostane stejná data při čtení; těmto problémům se říká neopakovatelné čtení. Neopakovatelné čtení IBM DB2 Express-C

76 V tomto případu App1 nedostane stejná data při opakovaném čtení, získá jich více, proto je tento problém nazývaný fantomové čtení. Fantomové čtení IBM DB2 Express-C

77 Řešení uvedených problémů Definujme pojem rozvrh jako celkový plán posloupnosti všech operací v rámci všech uvažovaných transakcí Řešení uvedených problémů pak spočívá v tzv. uspořádatelnosti rozvrhu Hledáme takový způsob uspořádání operací v jednotlivých transakcích, aby byly všechny stanovené ACID vlastnosti (zejména izolace) z vnějšího úhlu pohledu zachovány

78 Konkrétní řešení Pro uvedené problémy je jediné možné uspořádání serializace rozvrhu spojení operací odečtení a přičtení N v T1 do jedné posloupnosti nepřerušené jinou transakcí Serializace potláčí paralelní zpracování transakcí snižuje tedy významně výkon databázového serveru

79 Jiné způsoby uspořádání rozvrhu Mimo serializaci (vysoce neefektivní způsob) by hledání jiných způsobů uspořádatelnosti rozvrhů bylo časově velmi neefektivní (iterativní úloha) Využívá se konstrukcí rozvrhů podle předem stanovených pravidel soubor těchto pravidel označujeme jako protokol Nejčastěji se tyto protokoly konstruují na základě zamykání a odemykání objektů K zamčenému objektu (LOCK) nemá jiná transakce přístup (ochrana izolace)

80 Dobře formovaná transakce před přístupem k objektu provádí jeho uzamknutí (LOCK) neprovádí LOCK na objekty, které už zamkla neprovádí UNLOCK na objekty, které nezamkla před koncem provede UNLOCK na všechny objekty, které ve svém průběhu zamkla a jsou dosud zamčené

81 Dvoufázový uzamykací protokol Dvoufázová transakce v první fázi uzamyká vše, co bude potřebovat při svém průběhu Druhá fáze začíná okamžikem prvního odemknutí Ve druhé fázi se zamčené objekty pouze odemykají, tj. nelze již použít žádné operace LOCK Tedy transakce musí mít všechny objekty uzamčené před tím, než nějaký objekt odemkne

82 Uspořádatelnost 2F protokolu Pokud všechny transakce ve vstupní množině transakcí jsou současně: dobře formované transakce dvoufázové transakce pak každý jejich rozvrh je uspořádatelný Stále ovšem existuje nebezpečí tzv. deadlocku vzájemného uváznutí, tj. vzájemné čekání na dokončení některé operace druhé transakce

83 Uváznutí

84 Definice uváznutí Uváznutí (deadlock) je situace, kdy pro každou transakci ze skupiny transakcí jsou splněny následující podmínky: každá transakce ze skupiny je blokována čekáním na objekt databáze (na jeho odemknutí) ukončení všech transakcí mimo uvedenou skupinu transakcí neumožní odblokování žádné transakce ve skupině

85 Uváznutí (deadlock) Jedná se o situaci, kdy jednotlivé transakce nekonečně dlouho čekají na uvolnění zamknutého objektu

86 Problémy souběhu transakcí Definujme si následující zjednodušené operace: read(x) načtení hodnoty X z databáze write(x) zápis hodnoty X do databáze commit potvrzení transakce rollback odmítnutí transakce Zkusme porovnat souběh dvou transakcí užívajících zjednodušené operace

87 Řešení problému uváznutí Protože uváznutí je stav, který neumožňuje úspěšně pokračovat v korektním plnění požadavků, je nutné zabránit vzniku uváznutí nebo toto uváznutí detekovat a odstranit ho detekci uváznutí a následné odstranění užíváme při uzamykacím protokolu předcházení uváznutí řešíme metodou časových razítek

88 Metoda časových razítek I Metoda zajišťující uspořádatelnost rozvrhu Ke každému objektu jsou přiřazena dvě tzv. časová razítka: čas posledního čtení (TSR) čas posledního zápisu (TSW) Každá transakce T dostane na svém začátku svou vlastní hodnotu TS(T), která je unikátní a stále roste (např. pořadové číslo transakce razítko)

89 Metoda časových razítek II Pokud transakce T volá operaci write(x) jestliže TSR(X) > TS(T), zruš transakci T a proveď rollback(t) (nějaká transakce s razítkem větším než TS(T) již četla X před tím, než T mělo šanci provést zápis) jestliže TSW(X) > TS(T), zruš operaci write(x)a pokračuj (nějaká transakce s razítkem větším než TS(T) již zapisovala X, náš zápis by byl přepsán) jinak proveď write(x), TSW(X) := TS(T)

90 Metoda časových razítek III Pokud transakce T volá operaci read(x) jestliže TSW(X) > TS(T), zruš transakci T a proveď rollback(t) (nějaká transakce s razítkem větším než TS(T) již zapisovala X před tím, než T mělo šanci číst) jinak proveď read(x), TSR(X) := max(ts(t),tsr(x)) Metoda časových razítek umožňuje rozšíření na metodu nezpůsobující uváznutí (deadlock)

91 Detekce uváznutí Využívá teorie grafů (předmět v navazujícím stupni studia) Při zamykání vytváří tzv. čekací graf (která transakce čeká na kterou) Pokud v grafu vznikne cyklus, došlo k uváznutí a je nutné cyklus přerušit (ukončit některou transakci obvykle nejstarší nebo nejnovější) Oracle využívá detekce uváznutí

92 Předcházení uváznutí Některé metody umožňují zabránit vzniku uváznutí Obvykle se jsou tyto metody charakteristické nepovolením přístupu k objektu, se kterým pracuje jiná transakce Významným způsobem redukují paralelizaci rozvrhů a tedy snižují výkon databázového systému Nepodporuje sdílení objektů (např. pro čtení) více různými transakcemi

93 Implementace v Oracle Základní systém transakcí podporuje ACID, využívá dvoufázového zamykání a provádí detekci uváznutí (deadlocků) s jejich přerušením formou výjimky Implicitní režim transakcí bývá dán aplikací (dbman autocommit, SQL*Plus transakční režim) Existuje možnost stanovení úrovně izolace transakcí pro operace čtení (DQL)

94 Stanovení úrovně izolace Pomocí parametru relace (session) ALTER SESSION SET ISOLATION LEVEL režim Podporované režimy: READ COMMITED běžný režim (není žádná izolace v rámci DQL) READ UNCOMMITED nepotvrzené čtení REPEATABLE READ čtecí stabilita SERIALIZABLE vytváří větší prostor pro deadlock

95 Porovnání úrovní izolace Oracle, PgSQL, MSSQL, MySQL IBM DB2 Nepotvrzené čtení Neopakovatelné čtení Fantomové čtení Read uncommitted Read committed Uncommited Read možné možné možné Cursor Stability - možné možné Repeatable read ReadStability - - možné Serializable Repeatable Read - - -

96 Indexy Index je seřazená sada klíčů, které vedou k řádku v tabulce. Index bere v potaz jedinečnost a také vylepšuje výkon. Index může být řazen vzestupně nebo sestupně Indexové klíče mohou být unikátní nebo neunikátní Pro index může být použito několik sloupců Pokud jsou index a fyzická data klastrovány v podobné indexové sekvenci, jsou klastrovaným indexem CREATE UNIQUE INDEX artno_ix ON artists (artno)

97 Typy indexů Unique index definován automaticky při použití PRIMARY KYE nebo UNIQUE KEY Nonuniquie index pro rychlejší přístup k řádkům např. FOREIGN KEY Function based index použití UPPER nebo LOWER v klauzuli WHERE CREATE INDEX d_evnt_dt_indx ON d_events (to_char(event_date, mon ))

98 Kdy použít indexy Rozsáhlé hodnoty ve sloupci Sloupec obsahuje vysoký počet NULL hodnot Jeden nebo více sloupců jsou často využívány dohromady v klauzuli WHERE nebo JOIN Velká tabulka ze které chceme dotazem vrátit méně než 2-4% z celkového počtu řádků K zapamatování: každá DML operace (INSERT, UPDATE, DELETE) nad tabulkou s indexem znamená, že také index musí být přepočítán!

99 B-stom je druh stromu. Je specifický tím, že má řád n a limity na maximální (n), i minimální (n/2) počet potomků vrcholu. B-strom je díky této vlastnosti vyvážený, operace přidání, vyjmutí i vyhledávání tedy probíhají v logaritmickém čase. (

100 Projekt 2 Odevzdat do :00 Samostatná práce Převod do fyzického modelu Vytvoření tabulek a integritních 18 dotazů zajímají mě pouze výsledky

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

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík Transakce a zamykání Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík Základní pojmy Databázová transakce je skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého. Transakční

Více

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

Databáze I. 5. přednáška. Helena Palovská 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

Více

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

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE

Více

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

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc. 1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace

Více

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí Transakce = programová jednotka, která: - zachovává konzistenci databáze - končí v konečném čase - se provede celá nebo vůbec Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer

Více

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

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE 2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ

Více

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

Databáze I. Přednáška 4 Databáze I Přednáška 4 Definice dat v SQL Definice tabulek CREATE TABLE jméno_tab (jm_atributu typ [integr. omez.], jm_atributu typ [integr. omez.], ); integritní omezení lze dodefinovat později Definice

Více

Optimalizace dotazů a databázové transakce v Oracle

Optimalizace dotazů a databázové transakce v Oracle Optimalizace dotazů a databázové transakce v Oracle Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Demo-cvičení pro IDS 22. dubna 2015 Marek Rychlý

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření

Více

Transakce a zamykání Jiří Tomeš

Transakce a zamykání Jiří Tomeš Transakce a zamykání Jiří Tomeš Administrace MS SQL Serveru (NDBI039) O čem to dnes bude Úvodní opakování základních pojmů Jištění transakcí Speciální konstrukce Typy transakcí Závěrečný souhrn, použité

Více

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

Databáze II. 2. přednáška. Helena Palovská Databáze II 2. přednáška Helena Palovská palovska@vse.cz SQL a aplikace Program přednášky Řízení transakcí v SQL Integritní omezení v SQL Triggery a uložené procedury Zpracování množin záznamů Řízení

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČNÍ DATABÁZOVÉ SYSTÉMY RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení

Více

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

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL 4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená

Více

Databáze SQL SELECT. David Hoksza http://siret.cz/hoksza

Databáze SQL SELECT. David Hoksza http://siret.cz/hoksza Databáze SQL SELECT David Hoksza http://siret.cz/hoksza Osnova Úvod do SQL Základní dotazování v SQL Cvičení základní dotazování v SQL Structured Query Language (SQL) SQL napodobuje jednoduché anglické

Více

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

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR): Mezi příkazy pro manipulaci s daty (DML) patří : 1. SELECT 2. ALTER 3. DELETE 4. REVOKE Jaké vlastnosti má identifikující relace: 1. Je relace, která se využívá pouze v případě modelovaní odvozených entit

Více

Jazyk SQL 3 - DML, DDL, TCL, DCL

Jazyk SQL 3 - DML, DDL, TCL, DCL Jazyk SQL 3 - DML, DDL, TCL, DCL Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2012/13 https://edux.fit.cvut.cz/courses/bi-dbs/

Více

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

Databázové systémy Cvičení 5.2 Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako

Více

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

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

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

Text úlohy. Systémový katalog (DICTIONARY): Úloha 1 Částečně správně Bodů 050 / 100 Systémový katalog (DICTIONARY): a Se skládá z tablek a pohledů uložených v tabulkovém SYSTEM b Všechny tabulky vlastní uživatel SYS c Se skládá z tablek a pohledů

Více

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

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka Transakce Ing. Marek Sušický, RNDr. Ondřej Zýka 1 Obsah Definice Savepoint, autonomní transakce Transakční módy Izolační úrovně Implementace pomocí zámků Implementace pomocí snapshotů Oracle, Microsoft

Více

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

Databázové systémy. Cvičení 6: SQL Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi

Více

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

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství

Více

Databázové systémy a SQL

Databázové systémy a SQL Databázové systémy a SQL Daniel Klimeš Autor, Název akce 1 About me Daniel Klimeš Vzdělání: Obecná biologie PGS: onkologie Specializace: klinické databáze Databáze ORACLE klimes@iba.muni.cz Kotlářská 2,

Více

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

Návrh a tvorba WWW stránek 1/14. PHP a databáze Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované

Více

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:

Více

Databázové systémy I

Databázové systémy I Databázové systémy I Přednáška č. 8 Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz Skupinové a souhrnné dotazy opakování Obsah Pohledy syntaxe použití význam Vnořené

Více

Operátory ROLLUP a CUBE

Operátory ROLLUP a CUBE Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor

Více

6. blok část B Vnořené dotazy

6. blok část B Vnořené dotazy 6. blok část B Vnořené dotazy Studijní cíl Tento blok je věnován práci s vnořenými dotazy. Popisuje rozdíl mezi korelovanými a nekorelovanými vnořenými dotazy a zobrazuje jejich použití. Doba nutná k nastudování

Více

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

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK listopad 2009 souhrn v1 Červené dobře (nejspíš), modré možná Oracle Internet Directory OID: Databáze nemůže z OID přebírat seznam uživatelů *Databáze může získat z OID seznam

Více

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

Databázové systémy Cvičení 5.3 Databázové systémy Cvičení 5.3 SQL jako jazyk pro manipulaci s daty SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu

Více

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

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče. Primární a cizí klíč Kandidát primárního klíče (KPK) Je taková množina atributů, která splňuje podmínky: Unikátnosti Minimálnosti (neredukovatelnosti) Primární klíč (Primary Key - PK) Je právě jedna množina

Více

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

Informační systémy ve zdravotnictví. 6. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace

Více

Databázové systémy úvod

Databázové systémy úvod Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/

Více

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

DUM 12 téma: Příkazy pro tvorbu databáze DUM 12 téma: Příkazy pro tvorbu databáze ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací

Více

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

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

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1 8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11

Více

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

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu 8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

Více

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

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek 5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené

Více

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1 Transakční zpracování Bezpečnost databází Vladimíra Zádová, KIN, EF TUL- DBS 1 Transakce Transakce systém zpracování transakcí vlastnosti ACID stavy transakce SŘBD a transakční zpracování Řešení transakcí

Více

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

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 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 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal Valenta (FIT

Více

DBS transakční zpracování

DBS transakční zpracování DBS transakční zpracování Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2010 BI-DBS, ZS 2010/11 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal

Více

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

Databáze I. 1. přednáška. Helena Palovská Databáze I 1. přednáška Helena Palovská palovska@vse.cz Co je databáze Mnoho dat Organizovaných používá se model uspořádání Řízený přístup k datům přijímá požadavky v jazyce modelu umožňuje sdílení dat

Více

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

Jazyk SQL databáze SQLite. připravil ing. petr polách Jazyk SQL databáze SQLite připravil ing. petr polách SQL - úvod Structured Query Language (strukturovaný dotazovací jazyk 70. léta min. století) Standardizovaný dotazovací jazyk používaný pro práci s daty

Více

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

KIV/ZIS cvičení 5. Tomáš Potužák KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí

Více

9. Transakční zpracování

9. Transakční zpracování 9. Transakční zpracování 9.1. Transakce... 3 9.1.1. Vlastnosti transakce... 3 9.1.2. Stavy transakce... 4 9.2. Transakce v SQL... 6 9.3. Zotavení po chybách a poruchách... 10 9.3.1. Zotavení využívající

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz

Více

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

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_038.ICT.34 Tvorba webových stránek SQL stručné minimum OA a JŠ Jihlava, VY_32_INOVACE_038.ICT.34 Číslo

Více

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

Kapitola 6: Omezení integrity. Omezení domény - 6.1 - Omezení domény Referenční integrita Aserce Spouštěče (Triggers) Funkční závislosti Kapitola 6: Omezení integrity Omezení domény Omezení integrity zabraňují poškození databáze; zajišťují, že autorizované

Více

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

Databázové systémy Cvičení 5 Databázové systémy Cvičení 5 Dotazy v jazyce SQL SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu UPDATE vymazání

Více

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

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška Databázové systémy Datová integrita + základy relační algebry 4.přednáška Datová integrita Datová integrita = popisuje pravidla, pomocí nichž hotový db. systém zajistí, že skutečná fyzická data v něm uložená

Více

Transakční zpracování

Transakční zpracování Transakční zpracování Transakční zpracování Dva základní požadavky na SŘBD: chránit data organizovaná pod daným SŘBD, poskytnout korektní a rychlý asynchronní přístup většímu množství uživatelů. Řešení:

Více

Kapitola 4: SQL. Základní struktura

Kapitola 4: SQL. Základní struktura - 4.1 - Kapitola 4: SQL Základní struktura Množinové operace Souhrnné funkce Nulové hodnoty Vnořené poddotazy (Nested sub-queries) Odvozené relace Pohledy Modifikace databáze Spojené relace Jazyk definice

Více

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

Základy informatiky. 08 Databázové systémy. Daniela Szturcová Základy informatiky 08 Databázové systémy Daniela Szturcová Problém zpracování dat Důvodem je potřeba zpracovat velké množství dat - evidovat údaje o nějaké skutečnosti. o skupině lidí (zaměstnanců, studentů,

Více

Databázové systémy trocha teorie

Databázové systémy trocha teorie Databázové systémy trocha teorie Základní pojmy Historie vývoje zpracování dat: 50. Léta vše v programu nevýhody poměrně jasné Aplikace1 alg.1 Aplikace2 alg.2 typy1 data1 typy2 data2 vytvoření systémů

Více

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

Úvod do databázových systémů. Ing. Jan Šudřich Ing. Jan Šudřich jan.sudrich@mail.vsfs.cz 1. Cíl předmětu: Úvod do databázových systémů Poskytnutí informací o vývoji databázových systémů Seznámení s nejčastějšími databázovými systémy Vysvětlení používaných

Více

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

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23 Stručný obsah 1. Stručný úvod do relačních databází 13 2. Platforma 10g 23 3. Instalace, první přihlášení, start a zastavení databázového serveru 33 4. Nástroje pro administraci a práci s daty 69 5. Úvod

Více

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

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

Více

04 - Databázové systémy

04 - Databázové systémy 04 - Databázové systémy Základní pojmy, principy, architektury Databáze (DB) je uspořádaná množina dat, se kterými můžeme dále pracovat. Správa databáze je realizována prostřednictvím Systému pro správu

Více

1. Relační databázový model

1. Relační databázový model 1. Relační databázový model Poprvé představen 1969 (Dr. Edgar F. Codd) IBM Založeno na Teorii množin Predikátové logice prvního řádu Umožňuje vysoký stupeň nezávislosti dat základ pro zvládnutí sémantiky

Více

Michal Krátký, Miroslav Beneš

Michal Krátký, Miroslav Beneš Databázové a informační systémy Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava 5.12.2005 2005 Michal Krátký, Miroslav Beneš Databázové a informační systémy 1/24 Obsah

Více

Oracle XML DB. Tomáš Nykodým

Oracle XML DB. Tomáš Nykodým Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových

Více

6. blok část C Množinové operátory

6. blok část C Množinové operátory 6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.

Více

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307 Stručný obsah část I Přehled jazyka SQL Kapitola 1: Úvod 27 Kapitola 2: Stručný úvod do jazyka SQL 37 Kapitola 3: Jazyk SQL z širšího pohledu 45 Kapitola 4: Relační databáze 69 Část II Získávání dat Kapitola

Více

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

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL) SQL strukturovaný dotazovací jazyk Structured Query Language (SQL) SQL - historie 1974-75 - IBM - 1.prototyp - SEQUEL od 1979 - do praxe - ORACLE (1979) IBM - SQL/DS (1981), DB/2 (1983) postupně přijímán

Více

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

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná ZKOUŠKOVÉ TESTY Leden 2010 souhrn Červené dobře (nejspíš), modré možná Pomocí kterého databázového objektu je implementován ATRIBUT z konceptuálního modelu? sloupec referenční omezení index tabulka Omezení

Více

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz Databáze II 1. přednáška Helena Palovská palovska@vse.cz Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva Úvod Co je databáze Mnoho dat Organizovaných

Více

Zotavení z chyb. Databázové systémy

Zotavení z chyb. Databázové systémy Zotavení z chyb Databázové systémy Zotavení z chyb v DBS Úloha: Po chybě obnovit poslední konzistentní stav databáze Třídy chyb: 1. Lokální chyba v ještě nepotvrzené transakci 2. Chyba se ztrátou hlavní

Více

TÉMATICKÝ OKRUH TZD, DIS a TIS

TÉMATICKÝ OKRUH TZD, DIS a TIS TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 15. Otázka : Paralelní procesy v databázích. Transakce, zamykání, uváznutí. Dvoufázový protokol, časová razítka. Obsah : 1 Úvod 2 Paralelní procesy v databázích

Více

Databázové systémy a SQL

Databázové systémy a SQL Databázové systémy a SQL Lekce 2 Daniel Klimeš Autor, Název akce 1 CREATE TABLE Vytvoření tabulky (ORACLE) DDL příkazem v grafickém prostředí CREATE TABLE jmeno ( text VARCHAR2(200), cislo NUMBER(9,1),

Více

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

Transformace konceptuálního modelu na relační Transformace konceptuálního modelu na relační Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16

Více

Optimalizace SQL dotazů

Optimalizace SQL dotazů Optimalizace SQL dotazů Michal Kopecký Výběr ze slajdů k 2. přednášce předmětu Databázové Aplikace (DBI26) na MFF UK Indexy Plány provedení dotazu Ovlivnění optimalizátoru Optimalizace SQL dotazů Indexy

Více

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

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost

Více

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

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant Základy informatiky 06 Databázové systémy Kačmařík/Szturcová/Děrgel/Rapant Problém zpracování dat důvodem je potřeba zpracovat velké množství dat, evidovat údaje o nějaké skutečnosti: o skupině lidí (zaměstnanců,

Více

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for IDS optimalizátor Ing. Jan Musil, IBM ČR Community of Practice for CEEMEA Agenda Optimalizační plán dotazu Typy přístupových plánů Metody pro spojení tabulek Určení optimalizačního plánu Vyhodnocení přístupových

Více

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

1. Databázové systémy (MP leden 2010) 1. Databázové systémy (MP leden 2010) Fyzickáimplementace zadáníaněkterářešení 1 1.Zkolikaajakýchčástíseskládáčasprovstupněvýstupníoperaci? Ze tří částí: Seektime ječas,nežsehlavadiskudostanenadsprávnou

Více

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980 01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980 02. Kdy přibližně vznikly první komerční relační databázové servery?

Více

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

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

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

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19 3 Obsah Novinky v tomto vydání 10 Význam základních principů 11 Výuka principů nezávisle na databázových produktech 12 Klíčové pojmy, kontrolní otázky, cvičení, případové studie a projekty 12 Software,

Více

Základní přehled SQL příkazů

Základní přehled SQL příkazů Základní přehled SQL příkazů SELECT Základní použití Příkaz SELECT slouží k získání dat z tabulky nebo pohledu v požadované podobě. Získání všech řádků a sloupců z tabulky SELECT * FROM Person.Contact

Více

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

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata Databáze Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu Bedřich Košata K čemu jsou databáze Ukládání dat ve strukturované podobě Možnost ukládat velké množství dat

Více

Konceptuální modelování a SQL

Konceptuální modelování a SQL Konceptuální modelování a SQL přednáška č.? 1/90 Vytváření IS Analýza Návrh Implementace Testování Předání SW Jednotlivé fáze mezi sebou iterují 2/90 Proč modelovat/analyzovat? Standardizované pracovní

Více

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou Administrace Oracle Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou zachyceny a uloženy lokálně před posláním

Více

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

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný DJ2 rekurze v SQL slajdy k přednášce NDBI001 Jaroslav Pokorný 1 Obsah 1. Úvod 2. Tvorba rekurzívních dotazů 3. Počítaní v rekurzi 4. Rekurzívní vyhledávání 5. Logické hierarchie 6. Zastavení rekurze 7.

Více

12. blok Fyzický návrh databáze

12. blok Fyzický návrh databáze 12. blok Fyzický návrh databáze Studijní cíl Tento studijní blok se zabývá metodologií fyzického návrhu databáze. Především se zabývá fází převodu logického modelu na model fyzický. Bude vysvětlen účel

Více

Deklarativní IO shrnutí minulé přednášky

Deklarativní IO shrnutí minulé přednášky Deklarativní IO shrnutí minulé přednášky Existují následující typy omezení: NOT NULL UNIQUE Key PRIMARY KEY FOREIGN KEY CHECK Pro zobrazení všech definic a názvů IO se použije dotaz na pohledy data dictionary

Více

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

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D. http://siret.cz/hoksza Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hksza, Ph.D. http://siret.cz/hksza Osnva Seznámení s SQL Server Management Studiem (SSMS) Základní architektura

Více

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

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databáze Základní seznámení s MySQL

Více

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT david@wug.cz @gesvindr Logické zpracování dotazu Jazyk T-SQL je deklarativní Popisujeme,

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410

Více

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

Databáze I. Přednáška 6 Databáze I Přednáška 6 SQL aritmetika v dotazech SQL lze přímo uvádět aritmetické výrazy násobení, dělení, sčítání, odčítání příklad z minulé přednášky: zdvojnásobení platu všem zaměstnancům UPDATE ZAMESTNANEC

Více

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů Tvorba informačních systémů 1/18 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/18 Úvod

Více

Paralelní přístup k databázi

Paralelní přístup k databázi Paralelní přístup k databázi Motivační příklad: Bankovní převod 100,- Kč z účtu "A" na účet "B" a současný výběr 200 Kč z účtu "B". Transakce Hodnota A Hodnota B Stav účtu A Stav účtu B 1000,- 1000,- T1:

Více

Dotazování v relačním modelu a SQL

Dotazování v relačním modelu a SQL Databázové systémy Dotazování v relačním modelu a SQL Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YDATA: Přednáška II. 14. říjen, 2016 1 / 35 Opakování Relační

Více

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace. Popis ovládání 1. Úvod Tento popis má za úkol seznámit uživatele se základními principy ovládání aplikace. Ovládání je možné pomocí myši, ale všechny činnosti jsou dosažitelné také pomocí klávesnice. 2.

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

Více

4IT218 Databáze. 4IT218 Databáze

4IT218 Databáze. 4IT218 Databáze 4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Program přednášek

Více