Vyhledávání podle klíčových slov v relačních databázích. Dotazovací jazyky I ZS 2010/11 Karel Poledna

Podobné dokumenty
8.2 Používání a tvorba databází

Databáze SQL SELECT. David Hoksza

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

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

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Datové modelování II

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

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

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

Michal Krátký, Miroslav Beneš

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

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

Jan Březina. 7. března 2017

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

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

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

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

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

Operátory ROLLUP a CUBE

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

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

H {{u, v} : u,v U u v }

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Přijímací zkouška - matematika

Hierarchický databázový model

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

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

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

Databáze. Logický model DB. David Hoksza

Jiří Mašek BIVŠ V Pra r ha

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

Využití XML v DB aplikacích

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

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

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

4EK311 Operační výzkum. 5. Teorie grafů

J. Zendulka: Databázové systémy 4 Relační model dat 1

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

TGH02 - teorie grafů, základní pojmy

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Teorie grafů. Teoretická informatika Tomáš Foltýnek

Výroková a predikátová logika - VI

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)

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

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

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

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

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

Úvod do teorie grafů

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.

INDEXY JSOU GRUNT. Pavel Stěhule

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

TGH02 - teorie grafů, základní pojmy

5 Orientované grafy, Toky v sítích

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:

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

InternetovéTechnologie

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

Vyhodnocování dotazů slajdy k přednášce NDBI001. Jaroslav Pokorný MFF UK, Praha

Základy vytěžování dat

InternetovéTechnologie

InternetovéTechnologie

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

DATA CUBE. Mgr. Jiří Helmich

RELAČNÍ DATABÁZE ACCESS

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

Algoritmizace prostorových úloh

Databázové systémy trocha teorie

TGH02 - teorie grafů, základní pojmy

MBI - technologická realizace modelu

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

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

Dolování z textu. Martin Vítek

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Stromové struktury v relační databázi

Architektury databázových

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

Terminologie v relačním modelu

Profilová část maturitní zkoušky 2013/2014

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

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

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ

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

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

Základní pojmy teorie grafů [Graph theory]

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

TGH08 - Optimální kostry

Uživatelské preference v prostředí webových obchodů. Ladislav Peška, MFF UK

Integrace relačních a grafových databází funkcionálně

Dolování asociačních pravidel

CS 245: Database System Principles

ADT STROM Lukáš Foldýna

Jak používat statistiky položkové v systému WinShop Std.

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

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

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

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

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

Transkript:

Vyhledávání podle klíčových slov v relačních databázích Dotazovací jazyky I ZS 2010/11 Karel Poledna

Vyhledávání podle klíčových slov Uživatel zadá jedno nebo více slov a jsou mu zobrazeny výsledky. Uživatel nemusí používat žádný dotazovací jazyk. Uživatel nemusí znát strukturu dat. Nejpopulárnější metoda vyhledávání (viz vyhledávání na webu) 2

Vyhledávání podle klíčových slov v relační databázi Vstup: Relační databáze neprázdná množina slov Výstup: kvalifikované sítě spojení entic (qualified joining networks of tuples) 3

Co je relační databáze? Pro naše účely: relace, tabulky ~ množiny entic, řádek relace, tabulky spojeny podle primárních a cizích klíčů graf schématu databáze 4

Graf schématu databáze 1/2 Orientovaný graf schématu databáze (schema graph) Vrchol pro každou relaci / tabulku. Hrana z tabulky s primárním klíčem do tabulky s cizím klíčem. Neorientovaný graf schématu databáze zřejmé 5

Graf schématu databáze 2/2 Pro zjednodušení se předpokládá, že atributy tvořící primární a cizí klíče se jmenují stejně a graf neobsahuje smyčky a vícenásobné hrany. 6

Co je výstupem? entice (tuple) ~ prvek relace, řádek tabulky (ze vstupní relační databáze) síť spojení entic (joining network of tuples) ~ množina entic spojených přes primární a cizí klíče kvalifikované (qualified) ~ entice dohromady obsahují všechna klíčová slova dotazu 7

Příklad: schéma databáze ZBOŽÍ(kód_zboží, jméno_zboží, cena_zboží) DODAVATEL(kód_dodavatele, jméno_dodavatele, kód_státu) DODAVATEL_ZBOŽÍ(kód_zboží, kód_dodavatele, množství_k_dispozici) ZÁKAZNÍK(kód_zákazníka, jméno_zákazníka, kód_státu) OBJEDNÁVKA(kód_objednávky, kód_zákazníka, celková_cena, jméno_prodavače) POLOŽKA(kód_objednávky, číslo_položky, kód_zboží, kód_dodavatele, množství) STÁT(kód_státu, jméno_státu)

Příklad: graf schématu OBJEDNÁVKA ZÁKAZNÍK POLOŽKA STÁT DODAVATEL_ZBOŽÍ DODAVATEL ZBOŽÍ

z 1 Příklad: data 1/2 ZÁKAZNÍK kód_zákazníka jméno_zákazníka kód_státu 10001 Jiří Novák 101 z 2 10002 Marie Černá 101 z 3 10003 Petr Svoboda 101 s 1 STÁT kód_státu 101 jméno_státu Česká Republika 10

Příklad: data 2/2 OBJEDNÁVKA kód_ objednávky kód_ zákazníka celková_ cena jméno_ prodavače o 1 o 2 o 3 o 4 100001 100002 100003 100004 10001 10001 10002 10003 5.000,00 3.000,00 7.000,00 8.000,00 Eva Procházková Martin Dvořák Martin Dvořák Hana Kučerová 11

Příklad: systém DISCOVER 1/7 Klíčová slova keywords zadána uživatelem Procházková, Dvořák 12

Příklad: systém DISCOVER 2/7 Základní množiny entic basic tuple sets získány z celkového fulltextového indexu Master index OBJEDNÁVKA Procházková ={o 1 }, OBJEDNÁVKA Dvořák ={o 2, o 3 } 13

Příklad: systém DISCOVER 3/7 Množiny entic tuple sets profiltrovány Postprocesorem množin entic Tuple Set Post-Processor OBJEDNÁVKA Procházková ={o 1 }, OBJEDNÁVKA Dvořák ={o 2, o 3 } 14

Příklad: systém DISCOVER 4/7 Kandidátní sítě candidate networks Generátor kandidátních sítí Candidate network generator OBJEDNÁVKA Procházková ZÁKAZNÍK {} OBJEDNÁVKA Dvořák OBJEDNÁVKA Procházková ZÁKAZNÍK {} STÁT {} ZÁKAZNÍK {} OBJEDNÁVKA Dvořák 15

Příklad: systém DISCOVER 5/7 Plán vyhodnocení execution plan Generátor plánů Plan Generator T 1 OBJEDNÁVKA Procházková ZÁKAZNÍK {} C 1 T 1 OBJEDNÁVKA Dvořák C 2 T 1 STÁT {} ZÁKAZNÍK {} OBJEDNÁVKA Dvořák 16

Příklad: systém DISCOVER 6/7 Provedení plánu plan execution C REATE TABLE T 1 AS SELECT * FROM OBJEDNÁVKA Procházková, ZÁKAZNÍK WHERE... SELECT * FROM T 1, OBJEDNÁVKA Dvořák W HERE... SELECT * FROM T 1, STÁT, ZÁKAZNÍK, OBJEDNÁVKA Dvořák W HERE... 17

Příklad: systém DISCOVER 7/7 Výsledky Posloupnosti spojení entic o 1 z 1 o 2 Prodavači Procházková a Dvořák oba obsluhovali zákazníka Jiřího Nováka. o 1 z 1 n 1 z 2 o 3 Prodavačka Procházková obsluhovala zákazníka Jiřího Nováka z Česka a prodavač Dvořák obsluhoval zákaznici Marii Černou, která je také z Česka. 18

Příklad: výsledek Minimální posloupnost spojení (minimal joining sequence) obsahující slova Procházková a Dvořák minimální, protože žádnou entici nelze vynechat a přitom stále mít všechna slova značení: a b entice jsou spojeny přes primární a cizí klíč Výsledky setříděny podle počtu spojení. 19

Síť spojení entic Joining network of tuples Strom entic, ve kterém pro každou dvojici sousedních entic existuje hrana v grafu schématu mezi odpovídajícími relacemi. Velikost sítě spojení je počet spojení v síti, tj. o jedna méně než počet vrcholů stromu. 20

Posloupnost spojení entic Joining sequence of tuples Speciální případ, když každý vnitřní vrchol má právě dva syny. 21

Dotaz na klíčová slova keyword query Množina klíčových slov 22

Výsledek dotazu na klíčová slova množina všech sítí spojení entic, které jsou: úplné: každé klíčové slovo dotazu je obsaženo alespoň v jedné entici sítě minimální: nelze vynechat žádnou entici a stále mít úplnou síť spojení entic Minimální úplné sítě spojení entic MTJNT, Minimal Total Joining Network of Tuples 23

Výsledek dotazu na klíčová slova - doplnění Součástí dotazu může být omezení maximální velikosti MTJNT. Výsledkem dotazu na dvě klíčová slova jsou vždy posloupnosti spojení entic. 24

Systém DISCOVER 1 Hlavní index pro množinu klíčových slov vrátí množinu základních množin entic Základní množina entic R k pro relaci R a klíčové slovo k obsahuje všechny entice R obsahující slovo k. 25

Systém DISCOVER 2 Postprocesor množin entic Ze základních množin entic vytvoří množiny entic pro každou relaci R a podmnožinu klíčových slov tak, že entice v nmožině obsahují všechna klíčová slova v podmnožině a neobsahují klíčová slova, která nejsou v podmnožině. Dále postupují jen neprázdné množiny entic a celé relace, tzv. volné množiny. 26

Systém DISCOVER 3 Síť spojení množin entic Strom množin entic Hrany podle grafu schématu Síť spojení entic patří do sítě spojení množin entic. 27

Kandidátní síť Síť spojení množin entic taková, že existuje instance databáze, ve které existuje MTJNT, která do ní patří a žádná entice z volné množiny neobsahuje klíčové slovo dotazu. JNT není minimální, pokud má jako list entici neobsahující žádné klíčové slovo JNT není minimální, pokud obsahuje dvakrát stejnou entici. 28

Kandidátní síť - prořezávání Prořezávací podmínka Kandidátní síť neobsahuje podstrom R S R pokud orientovaný graf schématu obsahuje hranu R -> S. 29

Systém DISCOVER 4 Plán vyhodnocení Seznam spojení množin entic a předchozích mezivýsledků. Předpoklad: jiné než volné množiny entic jsou malé, spojení malé množiny s jinou je také malé. Vždy se spojují právě dvě množiny entic. NP-úplný problém => Hladový algoritmus 30

Řazení výsledků podle Information Retrieval Dokument i dotaz jako vektor termů (slov) v prostoru termů. Skóre pro každý výsledek (dokument) Podobnost (similarity) vektoru výsledku a vektoru dotazu. Sim Q, D = k Q, D weight k,q weight k, D 31

Řazení výsledků 2/4 weight k, D = ntf ndl idf ntf = 1ln 1ln tf N idf = ln df 1 ndl = 1 s s dl avgdl 32

Řazení výsledků 3/4 tf... frekvence termu (term frequency), počet výskytů termu v dokumentu df... frekvence dokumentů (document frequency), počet dokumentů, ve kterých se term vyskytuje N počet dokumentů 33

Řazení výsledků 4/4 dl... délka dokumentu (počet termů nebo bajtů, ) s... konstanta, většinou s = 0,2 avgdl... průměrná délka dokumentu 34

Aplikace na dotazy do relační databáze T superdokument ~ strom entic D1, D2, dokumenty ~ všechny textové hodnoty sloupců v T Sim Q,T = k Q,T weight k, Q weight k, T 35

Váha stromu entic size(t) počet entic v T weight k, D weight k, T = i Di T size T 36

Vylepšení 1/3 používat frekvence globální přes všechny textové hodnoty v databázi normalizace weight k, T = Combweight k, D 1,, weight k, D m Combx 1,, x m = max x i 1ln 1ln x i max x i 37

Vylepšení 2/3 avgsize... průměrná velikost stromu entic výledku weight k, D i = ntf idf g ndl Nsize T size T Nsize T = 1 ss avgsize 38

Vylepšení 3/3 df g... globální frekvence výskytu slova v databázi N g celkový počet textových hodnot v celé databázi = ndl 1 s s 1ln avgdl avgdl idf g = ln N g df g 1 39

Termíny ze schématu 1/4 Klíčová slova z dotazu mohou být dvojího typu: hodnotová např. Procházková, Dvořák vyskytují se v hodnotách atributů pocházet ze schématu např. prodavač, zákazník jména sloupců nebo tabulek nebo jejich synonyma 40

Termíny ze schématu 2/4 Předpoklad: každé slovo dotazu má právě jeden z těchto významů. 41

Termíny ze schématu 3/4 Slovo vyskytující se jen v názvu tabulky nebo sloupce má zatím nulovou váhu. Frekvence dokumentů podle schématu pro název sloupce nebo tabulky s jedním textovým sloupcem dosadit největší frekvenci dokumentů z daného sloupce pro název tabulky s více textovými sloupci dosadit největší frekvenci dokumentů ze sjednocení všech sloupců tabulky 42

Termíny ze schématu 4/4 Frekvence termu ve schématu je v odpovídajících sloupcích 1 Pro každé slovo se spočítá jeho váha, je-li hodnotový a jeho váha, je-li ze schématu, použije se maximum. 43

Zdroje DISCOVER: Keyword Search in Relational Databases Vagelis Hristidis, Yannis Papakonstantinou Proceedings of the 28th VLDB Conference, Hong Kong, China, 2002 Effective Keyword Search in Relational Databases Fang Liu, Clement Yu, Weiyi Meng, Abdur Chowdhury SIGMOD 2006, June 27-29, 2006, Chicago, Illinois, USA 44