Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Vyhledávání podle klíčových slov v relačních databázích Jiří Tomeš Dotazovací jazyky I. (NDBI001)

Podobné prezentace


Prezentace na téma: "Vyhledávání podle klíčových slov v relačních databázích Jiří Tomeš Dotazovací jazyky I. (NDBI001)"— Transkript prezentace:

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 S1S John Roberts George Walson Brad Lou12312 kod_statutelefonjmenocislo_zakaznika z1z1 z2z2 z3z3 Keith Brown31/08/ Mike Miller3/05/ Mike Miller10/03/ John Smith5/02/ 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


Stáhnout ppt "Vyhledávání podle klíčových slov v relačních databázích Jiří Tomeš Dotazovací jazyky I. (NDBI001)"

Podobné prezentace


Reklamy Google