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

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

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

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

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

S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

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

Databáze Bc. Veronika Tomsová

Fyzické uložení dat a indexy

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

Hierarchický databázový model

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

Microsoft Office. Excel vyhledávací funkce

Ukládání a vyhledávání XML dat

Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola

1. Umístěte kurzor do sloupce Datový typ na řádek s polem, ve kterém vytvořit chcete seznam.

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

Střední průmyslová škola Zlín

Databázové systémy. Ing. Radek Holý

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc.

Optimalizace SQL dotazů

vyhledávací stromové struktury

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje

Organizace a zpracování dat I

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

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

PRODUKTY. Tovek Tools

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

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

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

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

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

RELAČNÍ DATABÁZE ACCESS

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

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

Použití databází na Webu

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Databáze v MS ACCESS

Semestrální práce 2 znakový strom

1.13 ACCESS popis programu

Databáze. Logický model DB. David Hoksza

PRODUKTY. Tovek Tools

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

Architektury databázových

Návrh databázového modelu

Database engine (databázový stroj, databázový motor, databázové jádro) Systém řízení báze dat SŘBD. Typy SŘBD podle způsobu práce s daty

Kapitola 11: Indexování a hešování. Základní představa

Access Tabulka letní semestr 2013

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole Aplikace booleovské logiky

Algoritmizace prostorových úloh

Datové modelování II

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

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

Algoritmizace prostorových úloh

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

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

Databázové systémy BIK-DBS

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat)

VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ

Windows Server 2003 Active Directory

DATABÁZE MS ACCESS 2010

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

INDEXY JSOU GRUNT. Pavel Stěhule

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

MBI - technologická realizace modelu

KIV/ZIS - cvičení. je dobré chodit na cvičení, lépe se pak vypracovávají semestrálky. první 2 týdny podle kapacity 1/37

Access. Tabulky. Vytvoření tabulky

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

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

NSS - Cache 5. LECTURE MARTIN TOMASEK

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Datové typy a struktury

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

IMPORT DAT DO DATABÁZE

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

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

04 - Databázové systémy

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

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

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

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

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

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

Obsah. 1.1 Práce se záznamy Stránka Dnes Kontakt se zákazníkem... 5

Optimalizace dotazů a databázové transakce v Oracle

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

Ing. Igor Kopetschke TUL, NTI

Data v informačních systémech

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

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

Kontingenční tabulky v MS Excel 2010

Maturitní projekt do IVT Pavel Doleček

Transkript:

Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky. (A7B36DBS) Slovníček pojmů relace množina prvků, též množina n-tic primární klíč - sloupec (nebo sloupce), který jednoznačně určuje řádky v tabulce cizí klíč - slouží pro vyjádření vztahů, relací, mezi databázovými tabulkami. Jedná se o pole či skupinu polí, která nám umožní identifikovat, které záznamy z různých tabulek spolu navzájem souvisí. index (někdy též označovaný jako klíč - KEY) je databázová konstrukce, sloužící ke zrychlení vyhledávacích a dotazovacích procesů v databázi, definování unikátní hodnoty sloupce tabulky nebo optimalizaci fulltextového vyhledávání Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Indexy Index je databázová konstrukce, sloužící ke zrychlení vyhledávání a dotazování a definování unikátních hodnot nad databázovými tabulkami. Indexová většinou vypadá jako datová struktura, která obsahuje hodnotu klíče, nad níž je index vytvořen a odkaz na záznam (řádek), ke kterému patří. Databázové indexy (či indexsekvenční moduly) dělíme do různých druhů podle toho, co chceme při přístupech k primárním datům příslušné databázové tabulky optimalizovat. Označení druhů indexů se může různit, nejčastěji se používají tyto hlavní druhy: Primary Je tvořen většinou jedním (ale může být i více) sloupcem, který obsahuje primární klíč. Jedná se o speciální druh indexu, který se může v každé tabulce vyskytovat nanejvýš jednou. Je definován sloupcem (nebo sloupci), které svou hodnotou jednoznačně identifikují záznam v tabulce. Databázový stroj musí zajistit, aby nebylo možné vložit řádek se stejnými daty (ve sloupcích určujících primary index), která už v tabulce existují. Jedná se tedy o speciální případ Unique indexu. Je zažitou konvencí vytvářet primary index nad sloupcem nazvaným Id s celočíselným datovým typem. Unique Je velice podobný primary indexu (primary index je vlastně podtypem unique) s tím rozdílem, že se v tabulce může vyskytovat vícekrát. Index (secondary, vedlejší)

Definicí jednoho či více indexů tohoto typu v tabulce zajišťujeme optimalizaci vyhledávání podle dalších sloupců, mimo primární nebo unikátní indexy. Databázový server vytvoří a nadále udržuje vnitřní konstrukci odkazů na řádky tabulky, jež poskytuje uspořádání podle příslušných hodnot ve sloupci, k němuž je index logicky vázán (podle hodnot sekundárního klíče). Udržování takto uspořádané konstrukce urychluje vyhledávání záznamů v databázi (je možno použít některé matematické interpolační numerické metody), logické či fyzické řazení záznamů jakož i jiné další datové operace s tabulkou, jež se mají provést na podmnožině záznamů z tabulky vymezené podmínkou položenou na hodnoty v sekundárním klíči. Na rozdíl od předchozích indexů PRIMARY a UNIQUE lze do tabulky vkládat záznamy, které nejsou v sekundárním indexu unikátní. U některých databázových systémů se může jednat i o sloupce tzv. fiktivní, tedy sloupce odvozené respektive vypočtené z hodnot sloupců fyzických resp. uložených. Full-text Používá se pro optimalizaci full-textového vyhledávání v textových sloupcích. Implementace závisí na zvoleném databázovém stroji, jednou z metod je např. udržování statistiky slov, které se vyskytují ve sloupcích s full-text indexem. Indexy - implementace Bitmap index Tento druh indexu je vhodný pro sloupce, kde se vyskytuje relativně málo hodnot, ale ve velkém množství opakování. Krásným příkladem je např. tabulka uživatelů, o kterých si chceme pamatovat jejich pohlaví. Takový sloupec nabývá buď hodnot muž x žena. Pro každou z těchto dvou hodnot je vytvořena bitmapa (pole bitů), která obsahuje informace o tom, které řádky obsahují tyto hodnoty a její nad ní možné provádět bitové operace. Výhodou tohoto přístupu je relativně malá datová náročnost na uchovávání indexu, protože každý záznam v tabulce zabere 1bit * počet hodnot, které sloupec nabývá. Ukázkový index pohlaví by tak v tabulce s více než osmi miliony uživatelů zabral 2 MiB. I přes relativně malou náročnost na data je možné index dále komprimovat, typicky pomocí nějaké verze run-length kódování, které jsou velice nenáročné na kompresi/dekompresi. Zde se nejčastěji používá Byte-aligned Bitmap Code (BBC) a Word-aligned Hybrid Code (WAH), které navíc umožňují provádět bitové operace přímo nad komprimovanými daty. BBC uchovává svoje bitmapy v bytech, zatímco WAH v wordech, které lépe vyhovují dnešním procesorům a dosahují větších výkonu. Dle zveřejněných testů by pak WAH mělo (na reálných i syntetických datech) zabírat zhruba o 50% více datového prostoru, ale dosahovat až 12x rychlejších výsledků než BBC. Obě metody jsou však slině závislé na seřazení dat v tabulce. Jednoduché lexikální seřazení může zmenšit index až 9x a výrazně zvýšit výkon. Čím více dat tabulka obsahuje, tím více roste nutnost správného řazení Dense a Sparse index

Dense index obsahuje všechny hodnoty klíče, které se v tabulce vyskytují spolu s odkazem na relevantní záznamy. Při hledání se pak najde v indexu požadovaný klíč a z něho se přečte umístění požadovaných záznamů. Sparse index neuchovává záznamy o všech klíčích, ale pouze o určité podmnožině dostupných klíčů. Vyhledávání probíhá tak, že se najde největší klíč, který menší nebo roven tomu hledanému a od tohoto záznamu se sekvenčně prohledává tabulka, než jsou nalezeny požadované záznamy. Dense indexy jsou obecně o něco rychlejší, ale zabírají více diskového prostoru, než sparse indexy,ale mají větší režii pro přidávání a mazání. Clustery V rámci optimalizace rychlosti dotazů umožňují některé databázové enginy ukládat tabulky do tzv. clusterů. Jedná se o formu fyzického uložení na disk, kdy jsou tabulky se souvisejícími daty (např.

spojení přes reference) uloženy u sebe. Tím se zrychlí např. dotazy tyto JOIN na tyto tabulky. Pro uživatele (tedy aplikačního programátora) se však nadále chovají zcela transparentně jako normální tabulky Indexem organizované tabulky Standardní tabulka ukládají řádky do svých datových bloků přibližně následovně (může se lišit dle implementace): Každý řádek má neměnnou pozici na datovém úložišti. V momentě, kdy je dostane svoji pozici a na té zůstane, dokud nebude smazán a to i v případě, že bude např. přesunut a doplněn o další data - v takovém případě na původním místě alespoň část dat, podle kterých systém dokáže dohledat zbytek. Index v normální tabulce obsahuje data a rowid (interní identifikátor řádku), podle kterého se dohledá správný datový blok. V indexově organizované tabulce jsou data na úložišti organizována jako B-tree index postavený z primárních klíčů. V takovéto tabulce nemá řádek stejnou pozici a v čase se může přesouvat, aby bylo zachováno správné seřazení B-tree. Výhody Rychlý přístup k datům při dotazech na přesnou hodnotu nebo rozsah primárního klíče (např. WHERE id = 5, WHERE BETWEEN 10 AND 20, ) Pro 24 7 aplikace: Při reorganizaci dat na datovém úložišti (např. defragmentace) není třeba znovu vytvářet index