Obecná kvantifikace v relačních databázích Přehled typů dat a algoritmů Alan Eckhardt.

Slides:



Advertisements
Podobné prezentace
Jak na hromadnou korespondenci
Advertisements

Třídění dat OA a VOŠ Příbram. Třídění  rozdělení jednotek souboru do takových skupin, aby co nejlépe vynikly charakteristické vlastnosti zkoumaných jevů.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Ing. Monika Šimková. Máme-li data reprezentovat v databázi, jak vybereme jejich strukturu na konceptuální úrovni? Konceptuální modelování analyzuje požadavky.
Databáze.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Aplikace teorie grafů Základní pojmy teorie grafů
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databáze Jiří Kalousek.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Název projektu: Učení pro život Reg.číslo projektu: CZ.1.07/1.5.00/ Číslo šablony: III / 2 Název sady A: VÝRAZY Autor: Petr Halama – Mgr. Alena.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Relační databáze.
Historie databází, jejich význam a základní pojmy
Využití subpohledu Ingrid Vindišová, 4. Y Úkol: Využití subpohledu 1. Úvod 2. Vytváření soustavy subpohled 3. Standardní subpohled 4. Návrhář standardního.
Informatika pro ekonomy II přednáška 10
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Relační propojování tabulek. Úvod Tato prezentace má sloužit běžným uživatelům, jak začátníkům, tak i zkušeným uživatelům. Když budete postupovat podle.
Přednáška č. 1 Proces návrhu databáze
Databázové modelování
Access Vysvětlení pojmu databáze - 01
Databázové systémy Informatika pro ekonomy, př. 18.
Databázové systémy SQL Výběr dat.
Dělení zlomků.
16..
Desetinná čísla – dělení
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Algebra v informatice Antonín Jančařík.
Databáze Formuláře VY_32_INOVACE_7B18. Formuláře Umožňují zobrazit data z tabulek uživatelsky vhodným způsobem Mohou být zobrazena data z více tabulek.
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Predikátová logika1 Predikátová logika 1. řádu Teď „logika naostro“ !
DBXplorer Systém pro vyhledávání nad relačními databází podle klíčových slov. zpracovala Margarita Vishnyakova.
Univerzita třetího věku kurz Znalci Databáze 1.
Kontingenční tabulka Mgr. Jan Vavřík
Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, p.o. Tematický celek: Microsoft Excel Kód a název materiálu:
Databázové systémy Normalizace dat.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Úvod do databází zkrácená verze.
Autor:Ing. Pavel Brož Předmět/vzdělávací oblast:Informační a komunikační technologie Tematická oblast:Práce se standardním aplikačním programovým vybavením.
Algoritmizace a programování Aritmetické, Relační a Logické operátory, Knihovny.
Hromadná korespondence 2 Word Předmět: Informační a komunikační technologie Autor: Milan Franek.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
Číslo projektu školy CZ.1.07/1.5.00/ Číslo a název šablony klíčové aktivity III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo materiáluVY_32_INOVACE_ICT_II_S2_12.
Složitost algoritmu Vybrané problémy: Při analýze složitosti jednotlivých algoritmů často narazíme na problém, jakým způsobem vzít v úvahu velikost vstupu.
Úvod do databázových systémů
VZDĚLÁVACÍ MATERIÁL kód:
Číslo v digitálním archivu školy
Písemné dělení jednociferným dělitelem
Algoritmizace – základní pojmy
Dělitelnost přirozených čísel
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Definiční obor a obor hodnot
OZNAČENÍ MATERIÁLU: VY_32_INOVACE_101_M6
C# konzole – Podíl dvou čísel, podmínka IF
Hromadná korespondence 2 OpenOffice
Dělitelnost přirozených čísel
Úvod do algebry (řešení jednoduchých rovnic)‏
Úvod do algebry (řešení jednoduchých rovnic)
Informatika pro ekonomy přednáška 8
zpracovaný v rámci projektu
Algoritmizace a datové struktury (14ASD)
AUTOR: Mgr. Jana Pulcová NÁZEV: VY_42_INOVACE_02_ČÍSLO A PROMĚNNÁ_29
VY_32_INOVACE_58_M-ČÍSLA – NÁSOBENÍ A DĚLENÍ V OBORU NÁSOBILKY
Transkript prezentace:

Obecná kvantifikace v relačních databázích Přehled typů dat a algoritmů Alan Eckhardt

Úvod Je vůbec obecná kvantifikace potřeba? – Ano Využití – OLAP, dobývání znalostí,… Nejčastěji implementováno pomocí operátoru dělení

Opakování - dělení Definice operace dělení: Nechť x relace nad schématem X, y relace nad schématem Y, kde Y X. Pak x  y = x[X-Y] \ ( ( (x[X-Y]y) \ x ) [X-Y] ) Co to ale znamená? – x – studenti, y – vybrané přednášky – otázka : Kteří žáci mají zapsané všechny vybrané přednášky? – odpověď : x  y

Terminologie Dále budeme používat tyto pojmy – Dělitel pro tabulku Y – Dělenec pro tabulku X – Podíl bude výsledek operace dělení Předpokládáme – Schéma dělitele je {D} – Schéma dělence je {Q,D} – Z toho plyne, že schéma podílu je {Q}

Předmět zájmu Chceme přijít na to, jak bychom nejlépe implementovali operaci dělení Chceme ji provádět na co nejobecnějších datech

Jak vypadá naše databáze? Nejlépe „prázdná“ databáze – To je nejobecnější případ, nepředpokládají se žádné vlastnosti daných dat či pomocných struktur Čím bychom si pomohli – Využití pomocných struktur – indexů, skupinových indexů apod. – Předpřipravená data – seskupená nebo i setříděná podle vhodného(ých) sloupce(ů)

Seskupená data Nadále se nebudeme zabývat pomocnými strukturami Využijeme předpřipravenost dat Kdy to může nastat – Data mohou být seskupena či setříděna již v databázi (podle klíče,…) – Data jsou výstupem nějaké operace, která je již setřídila (spojení sléváním,…)

Klasifikace dat TřídaDělitel Q D 0NNN 1NNG 2NGN 3NG1G1 G2G2 4NG1G1 G1G1 5GNN 6GNG 7G1G1 G2G2 N 8G2G2 G1G1 N 9G1G1 G2G2 G3G3 10G1G1 G2G2 G2G2 11G2G2 G1G1 G3G3 12G2G2 G1G1 G1G1 N – neseskupeno G – seskupeno Pro nás budou důležité třídy 0, 2, 5 a 10

Předmět zájmu Chceme přijít na to, jak bychom nejlépe implementovali operaci dělení Chceme ji provádět na co nejobecnějších datech

Algoritmy dělení Dva základní druhy algoritmů – Přímé porovnání – Souhrnný přístup První využívá přímé porovnání řádků tabulek Druhý pracuje s počty řádek

Přímé porovnání Algoritmy využívající přímé porovnání řádek – hnízděné cykly – třídění a slévání – seskupování a slévání – hashovací funkce

Hnízděné cykly Dělitel v paměti Postupně čteme dělenec – Zkontrolujeme, zda jsme data v Q již nečetli – Projdeme celý dělenec a zkontrolujeme, zda obsahuje řádky pro každou položku z dělitele – V takovém případě dáme na výstup danou hodnotu Q

Třídění a slévání (TAS) Musíme mít setříděný dělitel Dále máme seskupený dělenec podle Q a setříděný v rámci skupiny podle D Pro každou skupinu zkontrolujeme, zda obsahuje všechny položky z dělitele

Seskupování a slévání (SAS) Seskupený dělenec podle Q Seskupený dělitel Pro každou skupinu z dělence – Každý řádek porovnám s dělitelem a v případě shody nastavím správný bit na jedna – Pokud jsou na konci všechny bity rovny jedné, dám skupinu na výstup

Hashovací funkce I Pro každý řádek dělitele určíme hashovací funkcí jednoznačné číslo <0,..,N) Pro každý řádek dělence zkontrolujeme, zda hodnota sloupců D padne mezi 0,..,N – Pokud ano, přidáme Q do kandidátů na shodu – Pokud tam již je, nastavíme i-tý bit shody na 1 Kde i je hodnota sloupců D v naší hashovací funkci

Hashovací funkce II Transponovaný případ předchozího přístupu Hashovací funkce zpracovává Q sloupce U každého řádku z dělitele si držím bitmapu, která z hodnot sloupců Q se mi vyskytla Po projetí celého dělence aplikuji operaci AND na bitmapy a na výstup dám ty kandidáty, kde je jedna na příslušném místě v bitmapě

Hashovací funkce III (HDQ) Potřebujeme mít setříděný dělenec podle Q Máme tolik bitů, kolik je velikost dělitele Procházíme řádky skupiny, v případě shody(v hashovací funkci) s dělitelem příslušný bit nastavíme na jedna Když jsou na konci samé jedničky, dáme na výstup Vynulujeme bity a jdeme na další skupinu

Hashovací funkce IV (THDQ) Mám bitmapu velikosti dělitele Pro každou skupinu nejdříve vynuluji bitmapu Pro každý řádek, jehož hodnota D sloupců je v děliteli, nastavím správný bit na jedna Pokud na konci skupiny jsou všechny bity jedna, dám sloupce Q na výstup

Souhrnný přístup Algoritmy využívající souhrnný přístup – Hnízděné cykly – Počítání a slévání – Hashovací funkce – Slévání proudů

Hnízděné cykly Pro každou řádku dělence, jejíž hodnota D sloupců se nachází v děliteli – Prohledám celou tabulku dělence a spočítám počet řádek se stejnou hodnotou Q sloupců, jejichž hodnota D sloupců je v děliteli – Pokud se počet řádek shoduje s počtem řádků v děliteli, dám tento řádek na výstup

Slévání a počítání (SAP) Předpokládáme, že dělenec je setříděn podle Q sloupců Pro každou skupinu spočteme počet řádků, jejichž hodnota D sloupců je někde v děliteli Pokud se součet shoduje s počtem řádek v děliteli, dáme hodnoty Q sloupců na výstup

Hashovací funkce (HDS) Dělenec bude setříděn podle D sloupců Pro každého kandidáta máme čítač Pokud je v dané skupině obsažena hodnota Q sloupců (zjištěno pomocí hashovací funkce), zvětšíme čítač o jedna Výsledek jsou ty řádky, jejichž čítač je roven počtu řádků dělitele

Slévání proudů (SP) Dělenec setříděn podle D sloupců Máme jeden globální čítač, pro každého kandidáta jeden bit navíc Z první skupiny se stejnými D sloupci dáme hodnoty Q sloupců do tabulky s bitem nastaveným na nulu

Slévání proudů 2 Při zpracovávání dalších skupin D sloupců – Pro danou hodnotu Q sloupců nastavíme bit na 1 Po zpracovávání skupiny – Vyhodíme řádky s bitem nastaveným na nulu – Všechny ostatní nastavíme na nulu – Pokračujeme s další skupinou Na konci vyberu ty řádky, které zbyly

Srovnání algoritmů Třída 0

Srovnání algoritmů Třída 2

Srovnání algoritmů Třída 5

Srovnání algoritmů Třída 10

Duplikáty Počítací algoritmy požadují, aby se v datech nevyskytovaly duplikované řádky – Jedině slévání proudů duplikáty v dělenci nevadí Porovnávací algoritmy duplikáty ignorují

Závěr Obecná kvantifikace v databázích – Implementována jako dělení Poznali jsme – 12 druhů dat pasivně, 4 z nich aktivně, 2 přístupy k řešení – Více druhů dat v dnešní době (2002) není prozkoumáno Implementace – Není… – V SQL 1999 není možné vyjádřit přímo obecnou kvantifikaci nebo dělení