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

Slides:



Advertisements
Podobné prezentace
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Advertisements

J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
Dualita úloh lineárního programování a analýza citlivosti
A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Aplikační a programové vybavení
Databáze.
Microsoft Office Access
Vnitřní řazení v poli (in sito)
Fakulta elektrotechniky a informatiky
Aplikace teorie grafů Základní pojmy teorie grafů
ALGO – Algoritmizace 1. cvičení
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
PRÉCIS OD NESTRUKTUROVANÝCH KLÍČOVÝCH SLOV JAKO DOTAZŮ K STRUKTUROVANÝM DATABÁZÍM JAKO ODPOVĚDÍM Martin Lacina.
ADT Strom.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Databáze Jiří Kalousek.
LOGISTICKÉ SYSTÉMY 7/14.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
DATOVÉ MODELY (c) Tralvex Yeap. All Rights Reserved.
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.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Algoritmy a programovací techniky
Databázové systémy I Cvičení č. 9 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Systémy pro podporu managementu 2
Relační databáze.
Konceptuální návrh databáze
Vypracoval: Ondřej Dvorský Třída: VIII.A
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 4 Proces návrhu databáze.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
JavaScript Podmínky, cykly a pole.
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.
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Dokumentace informačního systému
Systémy pro podporu managementu 2 Inteligentní systémy pro podporu rozhodování 1 (DSS a znalostní systémy)
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Konceptuální návrh databáze
Filtrace web stránek s využitím profilu uživatele Petr Doskočil
Databázové modelování
Databázové systémy Relační model.
2 Petr Žitný znalosti.vema.cz 3 Báze znalostí Nová služba zákazníkům ▸Báze naplněná informacemi, ke které mají uživatelé přímý přístup Základní cíl ▸Poskytovat.
Databázové systémy Informatika pro ekonomy, př. 18.
Automatizovaná podpora výběru nástroje pro dobývání znalostí Jakub Štochl.
Obecná kvantifikace v relačních databázích Přehled typů dat a algoritmů Alan Eckhardt.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
KIV/ZIS cvičení 4 Tomáš Potužák. Dotazy - úvod Umožňují pracovat s databází –Získávat specifické informace z tabulky, případně z více tabulek najednou.
XML data na disku jako databáze Kamil Toman
DBXplorer Systém pro vyhledávání nad relačními databází podle klíčových slov. zpracovala Margarita Vishnyakova.
Teorie zpracování dat RELAČNÍ DATOVÝ MODEL.
Podprogramy (subroutines) Pojmenované kousky programu, které –tvoří logicky ucelené části –se v programu opakují Jsou zapsány na jednom místě a v případě.
Perzistence XML dat Kamil Toman
Úvod do databází zkrácená verze.
● Databaze je soubor dat,slouží pro popis reálného světa(např.evidence čkolní knihovny..) ● Relační databaze je databáze založená na relačním modelu.
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
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.
Význam relací Typy relací Vytvoření relace Nastavení relace Podtypy relace Referenční integrita.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Úvod do databázových systémů
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Výpočetní technika Akademický rok 2008/2009 Letní semestr
ZAL – 3. cvičení 2016.
Databázové systémy 1 – KIT/IDAS1 Ing. Monika Borkovcová, Ph.D.
Informatika pro ekonomy přednáška 8
Optimalizace SQL dotazů
Toky v sítích.
Transkript prezentace:

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

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

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

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.

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

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í

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

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

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

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)

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

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

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í)

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.

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

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í

Klíčová slova množina slov k 1,..k m jsou předány dále master indexu Příklad: „Smith“, „Miller“

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

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

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 }

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:

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

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

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

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

Generátor plánů V hierarchii tvoří logický mezistupeň mezi kandidátní sítí a plánem provedení

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:

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

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. }

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 …

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

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)

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)

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

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

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ů

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ů

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

Zeptejte se na to, co Vás zajímá Prostor pro dotazy DÍKY za pozornost během prezentace