Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilMilada Machová
1
Vyhledávání podle klíčových slov v relačních databázích Jiří Tomeš Dotazovací jazyky I. (NDBI001)
2
O čem to dnes bude Úvodní motivace týkající se problému Vstup a výstup dotazování Vnitřní reprezentace Systém DISCOVER jednotlivé položky systému jejich význam a princip Klíčové pojmy a algoritmy Ohodnocování mezivýsledků Zobecněné případy použití Normalizace a termíny Použité zdroje a prameny Prostor pro dotazy
3
Trochu motivace zadá do počítače 1 či více klíčových slov nemusí znát žádný dotazovací jazyk Běžný uživatel : nezná vnitřní strukturu uložených dat ke svému dotazování používá jednoduché rozhraní jako výstup očekává „co nejlepší“ výsledky
4
To co se děje bezprostředně po zadání dotazu uvnitř, je pro uživatele „černou krabičkou“. A co vnitřní struktura ? Naší cílem nyní bude seznámit se s tím, co skrývá a jak ve skutečnosti pracuje.
5
Co si reálně skrývá za pojmy vstup a výstup ? VSTUP (INPUT) relační databáze zadaná m-tice klíčových slov k 1,…,k m Vstup a výstup (I/O) VÝSTUP (OUTPUT) kvalifikované spojení sítí n-tic
6
Jako vhodný způsob se ukazuje použít orientovaný graf – tzv. graf schématu zachycuje vztah primárních a cizích klíčů každá relace R i má svůj vrchol (uzel) R i (R i,R j ) je hranou grafu, je-li primární klíč v v tabulce R i zároveň cizím klíčem v tabulce R j v některých případech se používá i graf neorientovaný většinou značený jako G u Reprezentace relací
7
N-tice (v relační databázi) 1 prvek relace Výstup se vrací Co je vlastně „kvalifikované spojení sítí n-tic“, které získáme jako výstup ? Kvalifikované spojení spojení obsahující všechna klíčová slova zadaného dotazu Spojení sítí n-tic množina n-tic, které jsou spojené přes primární a cizí klíče
8
Reprezentuje jej graf - „strom n-tic“ Výstup do třetice A jak je to s vlastní reprezentací a velikostí sítě u „kvalifikovaného spojení sítí n-tic“ ? Velikost sítě spojení n-tic je počet všech spojení v síti formálně odpovídá |V| - 1, kde |V| je počet vrcholů stromu speciálním případem je sekvence spojení n-tic Každý vnitřní vrchol má právě 2 syny
9
Výsledek hledání nebude obsahovat žádné redundance a přitom v něm budou obsažena všechna klíčová slova Všeobecné předpoklady Názvy primárních a cizích klíčů budou jsou ve všech tabulkách pojmenovány stejně Graf schématu neobsahuje žádné smyčky ani vícenásobné hrany
10
Pro konkrétní situaci mějme tyto 3 tabulky: Uvažované schéma OBJEDNÁVKA (cislo_objednavky,cislo_zakaznika,cena, datum, jmeno_prodavace) ZÁKAZNÍK (cislo_zakaznika,jmeno,telefon,kod_statu) STÁT (kod_statu, nazev_statu)
11
Graf schématu pro naše tabulky bude vypadat takto: Graf schématu Objednávka Zákazník Stát Orientace šipek odpovídá spojení tabulek přes primární a cizí klíče
12
Tabulky s daty OBJEDNÁVKA ZÁKAZNÍK STÁT USA21 nazevkod_statu S1S1 21643-154356John Roberts13456 21561-154215George Walson10235 21454-123456Brad Lou12312 kod_statutelefonjmenocislo_zakaznika z1z1 z2z2 z3z3 Keith Brown31/08/20112132134561000110 Mike Miller3/05/2011550102351000125 Mike Miller10/03/20113400123121000111 John Smith5/02/20115200123121000105 jmeno_prodavacedatumcenacislo_zakaznikacislo_objednavky o1o1 o2o2 o3o3 o4o4
13
Zavedení pojmu MSS Minimální spojení sekvencí používané značení: význam: n-tice a je spojená s n-ticí b přes primární a cizí klíč Minimální spojení žádnou z n-tic nelze beztrestně vynechat MSS nám navíc vrací výsledky setříděné podle počtu spojení (očekávaný požadavek při dotazování)
14
Dotaz na klíčová slova množina klíčových slov výsledkem je možné spojení sítí n-tic Nový pojem podruhé - DKS Toto spojení má tyto 2 vlastnosti : Je úplné každé klíčové slovo je obsažené alespoň v 1 n-tici Je minimální nemůžeme žádnou n-tici odstranit aniž by zůstala zachována vlastnost úplnosti.
15
Poskytuje jednoduché rozhraní Systém DISCOVER Nevyžaduje od uživatele znalost relací ani jednotlivých atributů Pracuje s množinami n-tic, které jsou spojeny přes primární a cizí klíč Výsledky najde bez použití redundance Splňuje všechny naše předchozí požadavky a předpoklady
16
Architektura DISCOVER Master index Množina n-tic Post-Procesor Generátor kandidátních sítí Generátor plánů Vyhodnocení plánu Uživatel Klíčová slova Základní množiny n-tic Schéma databáze Databáze Předání výsledků Kandidátní sítě SQL dotazy Množiny n-tic Plán provedení
17
Klíčová slova množina slov k 1,..k m jsou předány dále master indexu Příklad: „Smith“, „Miller“
18
Master index Hlavní „řídící“ index pro fulltextové vyhledávání Kontroluje indexy jednotlivých atributů a jejich výsledky kombinuje Jeho výstupem je množina n-tic pro každou relaci Značení : (základní množina n-tic) Relace obsahuje klíčové slovo
19
Z nich vytvoří množiny n-tic pro každou relaci R a podmnožina klíčových slov Podmnožina obsahuje právě všechna klíčová slova aktuální množiny Projdou pouze neprázdné množiny n-tic + celé relace (tzv. volné množiny) Post-procesor Příklad: OBJEDNÁVKA Smith = {o 1 } OBJEDNÁVKA Miller = {o 2, o 3 } Získává tzv. základní množiny n-tic Poskytuje mu to master index
20
Získány jako výsledek „filtrování“ post- procesoru Výsledek pokračuje dále do generátoru kandidátních sítí Množiny n-tic Příklad: OBJEDNÁVKA Smith = {o 1 } OBJEDNÁVKA Miller = {o 2, o 3 }
21
Generátor kandidátních sítí (GKS) Generuje všechny potenciální kandidáty sítí na základě relací výstupem tzv. kandidátní sítě kandidáty je potřeba nějak ohodnotit Příklad:
22
Kandidáti na ohodnocení mohou mít velký počet spojení, proto je potřeba je nějak omezit Ohodnocení kandidátů GKS Můžeme ohodnocení ještě nějakým způsobem urychlit ? Zavedeme omezující proměnnou T T udává maximální počet spojení ANO !!!Budeme náš strom (graf) prořezávat !!! Na zbylých větvích už provedeme ohodnocení snadno O konkrétních způsobech ohodnocení si povíme později
23
V jakých případech budeme „prořezávat“, abychom nepřišli o žádné řešení ? Prořezávání kandidátů GKS Spojení sítí n-tic není minimální můžeme jej zmenšit, aby minimální bylo Síť kandidátů neobsahuje podstrom typu R-S-R v případě, že graf obsahuje hranu R->S
24
Vstup: graf množiny n-tic G TS, T, k 1,…k m Algoritmus GKS V ý s t u p : m n o ž i n a k a n d i d á t n í c h s í t í v e l i k o s t i Výstup: množina kardinálních sítí velikosti Procedure Get-Set-Of-Candidate-Networks (G TS, T, k 1,…k m ) Q…pomocná fronta Vyber klíč.slovo náhodně for each while Q není prázdná do { if (C splňuje podmínku na přořezávání) then ignoruj C else if (C vyhovuje řešení) then return C else } Algorithm Candidate Networks Generator
25
Algoritmus zachovává 2 důležité vlastnosti: Kompletnost každé řešení velikosti T lze získat z GKS s parametrem T Poznámky k algoritmu GKS Žádné redundance všechny kandidáty vrácené algoritmem vyhovují všeobecným předpokladům
26
Generátor plánů V hierarchii tvoří logický mezistupeň mezi kandidátní sítí a plánem provedení
27
Dostane množinu C 1,..,C r kandidátních sítí Plán provedení je seznam A 1,…,A s úkolů, kde každý z úkolů je získán buď jako mezivýsledek z předchozích kroků nebo je to množina n-tic pro každou kandidátní síť C existuje úkol A i, který manipuluje s C Plán provedení Příklad:
28
Pro ideální chod je třeba plán provedení co nejvíce optimalizovat Optimální plán provedení Bohužel se ukázalo, že výběr správných mezivýsledků je NP-úplný problém Je tedy vše ztraceno ? Rozhodně není !!! Zatím nám postačí alespoň sub-optimální algoritmus
29
Hladový algoritmus Vstup: Množina S kandidátních sítí Výstup: Seznam L mezivýsledků Algorithm Select list of intermediate results Procedure Get-Intermediate-Results { while nejsou vsichni kandidati S v L do { Nechť Z je množina nejmenších spojených podvýrazů s 1 spojením obsaženým s posledním kandidátu sítě S; Přidej do L mezivýsledek m s maximální hodnotou x v Z; kde x= (frekvence a ) / ( log b (size) ) a,b …. vhodné konstanty Všude,kde je to možné „přepiš“ všechny kandidáty v S pomocí m. }
30
Vyhodnocení plánu Konkrétní SQL dotazování s databází Příklad: CREATE TABLE T1 AS SELECT * FROM OBJEDNAVKA Smith, ZAKAZNIK WHERE … SELECT * FROM T1, OBJEDNAVKA Miller WHERE … SELECT * FROM T1, STAT, ZAKAZNIK, OBJEDNAVKA Miller WHERE …
31
Jsou jako výstup předány uživateli Získané výsledky Obsahují výsledek zadaného dotazu konkrétní spojení n-tic Příklad: Prodavači Smith a Miller obsluhovali zákazníka Brada Lou Prodavač Smith obsluhoval zákazníka Brada Lou z USA a prodavač Miller zákazníka George Walsona také z USA
32
Ohodnotit budeme chtít nejenom dokumenty D, ale i dotazy Q Zpět k ohodnocení Veškerý text (u D i Q) budeme reprezentovat jako vektor termů Termem může být Klíčové slovo Fráze Nyní přistoupíme k počítání samotného ohodnocení (skóre)
33
Měřítkem hodnocení bude vzájemná podobnost Similarita Ohodnocení konkrétně A co v případě, budeme-li všechny dokumenty chápat jako jeden obrovský dokument ? Váha termu k v dotazu Q Váha termu k v dokumentu D s je konstanta (obvykle 0,2)
34
Superdokumetem T budeme rozumět množinu dokumentů {D 1,D 2,…,D m ) Ohodnocení superdokumentu Můžeme jít ještě dále ? ANO !!! Můžeme totiž dále normalizovat !!! Váha termu k v superdokumentu T
35
Budeme normalizovat a používat globální frekvence (g) přes všechny hodnoty uložené v databázi Ohodnocení- normalizace Normalizace velikosti stromu n-tice Funkce kombinující váhy termů v dokumentech s váhou termů ve stromu n-tice
36
Klíčová slova v dotazu jsou 2 typů hodnotová Vyskytují se přímo jako hodnota nějakého atributu Např. Smith, Miller termíny ze schématu Patří sem jména sloupců nebo celých tabulek, případně jejich synonyma Např. datum,telefon, cena Termíny ze schématu 1/2 Předpokládáme, že každé slovo v dotazu má právě 1 z těchto významů
37
Slovo, které se vyskytuje jako termín ze schématu mělo doposud váhu 0. Teď to ale změníme. Frekvence termu ve schématu v příslušných sloupcích 1. Termíny ze schématu 2/2 Pro každé slovo se budou počítat až 2 váhy (hodnotová, ze schématu) vezme se maximum Frekvence dokumentů podle schématu 1 textový sloupec v tabulce –maximální frekvence z daného sloupce více textových sloupců – maximum ze sjednocené všech sloupců
38
Použité zdroje a prameny DISCOVER: Keyword Search in Relational Databases Hristidis Vagelis, Papakonstantino Yanni, Proceeding of the 28th VLDB Conference, Hong Kong, China 2002 Effective Keyword Search in Relational Databases Liu Fang, Yu Clement, Meng Weiyi, Chowdhur Abdur, SIGMOD 2006, June 27-29, 2006, Chicago, Illinois, USA
39
Zeptejte se na to, co Vás zajímá Prostor pro dotazy DÍKY za pozornost během prezentace
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.