Formálna sémantika SQL dotazov. M. Hrivík, L. Tomasy

Similar documents
ADM a logika. 4. prednáška. Výroková logika II, logický a sémantický dôsledok, teória a model, korektnosť a úplnosť

Teória kvantifikácie a binárne predikáty

Teória grafov. RNDr. Milan Stacho, PhD.

Ing. Tomasz Kanik. doc. RNDr. Štefan Peško, CSc.

A l g o r i t m i c k y n e r i e š i t e ľ n é p r o b l é m y

Kapitola S5. Skrutkovica na rotačnej ploche

Dokonalé a spriatelené čísla

Oddělení technické informatiky Technická univerzita v Liberci

Univerzita Karlova v Prahe, Filozofická fakulta Katedra logiky. Anna Horská. FRIEDBERG-MUCHNIKOVA VETA Ročníková práca

kniha 2016/4/30 23:47 page 1 #1 Draft

Odhady veľkosti pokrytí náhodne indukovaných podgrafov n-rozmernej hyperkocky

Matematická analýza II.

2-UMA-115 Teória množín. Martin Sleziak

História nekonečne malej veličiny PROJEKTOVÁ PRÁCA. Martin Čulen. Alex Fleško. Konzultant: Vladimír Repáš

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY

GENEROVANIE STABILNÝCH MODELOV VYUŽÍVANÍM CUDA TECHNOLÓGIE

METRICKÉ ÚLOHY V PRIESTORE

Univerzita Karlova v Praze Matematicko-fyzikální fakulta. Michal Kesely. Katedra matematické analýzy. Studijní program: Obecná matematika

Samuel Flimmel. Univerzita Karlova v Praze Matematicko-fyzikální fakulta. Katedra pravděpodobnosti a matematické statistiky

Metódy vol nej optimalizácie

Maticové algoritmy I maticová algebra operácie nad maticami súčin matíc

MATEMATICKÁ LOGIKA I. Pavol Zlatoš. Sylabus prednášok v zimnom semestri

Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava THEILOVA REGRESIA

PSEUDOINVERZNÁ MATICA

Súťaž PALMA junior a programovanie v jazyku Python

Stavba Lobačevského planimetrie

Aplikácie teórie množín Martin Sleziak 24. februára 2015

DEA modely a meranie eko-efektívnosti

TECHNICKÁ UNIVERZITA V KOŠICIACH Fakulta elektrotechniky a informatiky

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY REKURENTNÉ POSTUPNOSTI

FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITY KOMENSKÉHO V BRATISLAVE

Platforma průmyslové spolupráce

Computation of Information Value for Credit Scoring Models

FUZZY-NEURO ALGORITMY MODELOVANIA NELINEÁRNYCH PROCESOV V DOPRAVE

Matematická analýza II.

Radka Sabolová Znaménkový test

Lucia Fuchsová Charakteristiky pravděpodobnostních

Ján Pribiš. Edícia vysokoškolských učebníc. Fakulta elektrotechniky a informatiky. Technická univerzita v Košiciach SCILAB

Softwarové inžinierstvo. martin timothy timko

Appendix. Title. Petr Lachout MFF UK, ÚTIA AV ČR

Databázové systémy. Ing. Július Štuller, CSc., Ústav informatiky AV ČR, v.v.i., & FMIaMS TUL Ing. Roman Špánek, PhD.

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY. Robustné metódy vo faktorovej analýze

Kompresia dát a jej použitie

1 Úvod Úvod Sylaby a literatúra Označenia a pomocné tvrdenia... 4

Analýza multispektrálnych dát z konfokálnej mikroskopie. DIPLOMOVÁ PRÁCA

Úlohy o veľkých číslach

Fakulta matematiky, fyziky a informatiky Univerzity Komenského BRATISLAVA. Diplomová práca. Martin Plesch

JUDr. Eduard Szattler (NE) PATENTOVATEĽNOSŤ POČÍTAČOVÝCH PROGRAMOV

Errors-in-variables models

1 Matice a ich vlastnosti

11. prednáška ( ) Greedy algoritmy. Programovanie, algoritmy, zložitosť (Ústav informatiky, PF UPJŠ v Košiciach)

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Základné pojmy pravdepodobnosti

Obsah. 2 Určenie objemu valčeka Teoretický úvod Postup merania a spracovanie výsledkov... 10

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY

Lecture 16: Relevance Lemma and Relational Databases

Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCA. Bc. Roman Cinkais. Aplikace samoopravných kódů v steganografii

Kybernetika. Peter Hudzovič Súčasná kontrola stability a kvality impulznej regulácie. Terms of use:

A L A BA M A L A W R E V IE W

Contribution to Deterministic Top-Down Analysis of Context-free Languages

Univerzita Komenského v Bratislave Fakulta Managementu Katedra stratégie a podnikania. Aplikácia nekooperatívnej teórie hier v

The Golden Ratio and Signal Quantization

DIPLOMOVÁ PRÁCA ŽILINSKÁ UNIVERZITA V ŽILINE. Ján Rabčan Aplikácia na vyhodnocovanie dotazníkov pomocou hĺbkovej analýzy dát

Ján Buša a Ladislav Ševčovič. Open source systém na spracovanie údajov

A Dichotomy. in in Probabilistic Databases. Joint work with Robert Fink. for Non-Repeating Queries with Negation Queries with Negation

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY. Kritéria nezápornosti Fourierových radov BAKALÁRSKA PRÁCA

Alan Turing: Computing Machinery and Intelligence. Tomáš Novella

Segmentace textury. Jan Kybic

IBM Model 1 for Machine Translation

Přednáška 13. Teorie aritmetiky a Gödelovy výsledky o neúplnosti a nerozhodnutelnosti. 12/6/2006 Kurt Gödel 1

Kľúčové slová: SAR, šum spekl noise, evolučná PDR, lineárna difúzia, Perona-Malikova rovnica, štatistickéfiltre, Leeho filter

COMPARISON OF ANALYTICAL SOLUTIONS WITH NUMERICAL MODELING RESULTS OF CONTACT PROBLEM OF THE SHALLOW FOUNDATIONS INTERACTION WITH SUBSOIL

program Prienik_mnohouholnikov; const max=100; type pole=array[1..max+1,1..2] of integer; {v pole[i,1] je sucet x1+x2, v pole[i,2] je y}

P a g e 5 1 of R e p o r t P B 4 / 0 9

VÝUČBA DIFFERENCIÁLNEHO POČTU FUNKCIE VIAC PREMENNÝCH POMOCOU PG. SYST. MATHEMATICA

DEFINÍCIE A DEFINOVANIE V NEWTONOVÝCH PRINCÍPOCH Pokus o metodologickú analýzu

Modely, metódy a algoritmy pre analýzu longitudinálnych dát

Recall that the expression x > 3 is not a proposition. Why?

QSQL: Incorporating Logic-based Retrieval Conditions into SQL

VYHLÁSENIE O PARAMETROCH. č SK. Predpoklada é použitie. stave ý h častí ako o kladov a stropov, pozri prílohu, najmä prílohy B 1 - B 8

Solution Methods for Beam and Frames on Elastic Foundation Using the Finite Element Method

Bound and Free Variables. Theorems and Proofs. More valid formulas involving quantifiers:

Relational Algebra on Bags. Why Bags? Operations on Bags. Example: Bag Selection. σ A+B < 5 (R) = A B

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY

Context-Free Grammars with Regular Conditions

Predicate Logic: Semantics

DEFINÍCIE A DEFINOVANIE V NEWTONOVÝCH PRINCÍPOCH: POKUS O METODOLOGICKÚ ANALÝZU 1. Igor HANZEL

Outline. Overview. Syntax Semantics. Introduction Hilbert Calculus Natural Deduction. 1 Introduction. 2 Language: Syntax and Semantics

Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky DIPLOMOVÁ PRÁCA Róbert Zvonár

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY

MODELOVANIE PRIESTOROVÝCH DÁT V MODEL DRIVEN DEVELOPMENT

Fakulta matematiky, fyziky a informatiky Univerzity Komenského v Bratislave. Písomná práca k dizertačnej skúške

Predikcia úmrtnosti na Slovensku

ENTROPIA. Claude Elwood Shannon ( ), USA A Mathematical Theory of Communication, 1948 LOGARITMUS

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA CHEMICKEJ A POTRAVINÁRSKEJ TECHNOLÓGIE ÚSTAV INFORMATIZÁCIE, AUTOMATIZÁCIE A MATEMATIKY

ProFIIT 2018 Vysvetlenia riešení problémov

Predicate Calculus - Syntax

CS154, Lecture 10: Rice s Theorem, Oracle Machines

String Rewriting Systems

STREDOŠKOLSKÁ ODBORNÁ ČINNOSŤ. Teória stacionárneho vesmíru

MEDZINÁRODNÝ VEDECKÝ ČASOPIS MLADÁ VEDA / YOUNG SCIENCE

Transcription:

Formálna sémantika SQL dotazov M. Hrivík, L. Tomasy

Niečo z histórie Jazyk SQL: Vznikol začiatkom 70 rokov minulého storočia V dielňach IBM (konkrétne pánmi Donaldom D. Chamberlinom and Raymondom F. Boyceom) Pod názvom SEQUEL (Structured English Query Language), ktorý bol registrovanou obchodnou známkou leteckej spoločnosti UK-based Hawker Siddeley (preto názov zmenený na SQL Structure Query Language) Okamžite začali univerzitné projekty relačných databáz MIT projekt RDMS University of Berkeley projekt Ingres (QUEL -> SQL)

Niečo z histórie Komerčná sféra nezaostávala V druhej polovici 70. rokov spoločnosť Relational Software, Inc. (dnes známa ako Oracle) začala práce na relačnom databázovom systéme pre Americké námorníctvo a CIA (neskor aj pre iné vládne agentúry) Projekt vyústil v lete '79 do finálnej verzie Oracle V2 prvý komerčný SQL-based databázový produkt. Nespalo ani IBM (tvorca SQL) a vydalo v krátkej dobe niekoľko SQL-based DB produktov založených na IBM System R System/38, SQL/DS, DB2

Niečo z histórie SQL zažilo komerčný úspech, čo zohľadnil American National Standards Institute (ANSI) Štandardizuje sa v podstate doteraz SQL-86, SQL-89, SQL-92, SQL:1999, SQL 2003, SQL 2006, SQL:2008 SQL je jednoznačne úspešný jazyk, preto sa pozrieme hlbšie na jeho sémantiku

Čo nás čaká ďalej Jazyk SQL používa trojhodnotovú logiku Klasická predikátová logika používa len dve hodnoty (TRUE/FALSE) Potrebujeme formálny model! E3VPC Extended 3-valued tuple predicate calculus Niečo o tomto modele nám povie kolega Miro.

E3VPC K definícii sémantiky SQL slúži formálny model E3VPC, rozšírený trojhodnotový n-ticový predikátový kalkulus. (Extended three-valued Tuple Predicate Calculus). založený na klasickom dvojhodnotovom predikátovom kalkule obsahuje rozšírenia potrebné k definícii sémantiky SQL: kompaktné tvary agregácie trojhodnotovú logiku interpretačný operátor operátor rovnosti pre NULL operátor externej referencie 9.11.2010 6

Štruktúra E3VPC výrazov Štruktúra výrazu v E3VPC je následovná: {t v 1,...,v n : P v 1,..., v n } n-tica premenných v i cieľový zoznam t predikátová formula P interpretačný operátor ǁ...ǁα, kde α nadobúdajúci jednu z hodnôt T (TRUE) resp. F (FALSE) 9.11.2010 7

Cieľový zoznam t(v 1,...,v n ) udáva štruktúru výsledku výrazu definovaný je ako v 1 in R 1,..., v n in R n, kde v i in R i je rozsahová formula ohraničujúca premennú v i v relácii R i relácie sú považované za množiny navzájom rôznych prvkov E3VPC a preto každá n-tica obsahuje svoj unikátny identifikátor Cieľový zoznam určuje, ktoré premenné sa objavia vo výsledku výrazu a do ktorých relácií tieto premenné patria. 9.11.2010 8

Predikátová formula I Definovaná rekurzívne pomocou termov a operátorov porovnávania následovne: (1) Termy konštanta je term; pre premennú v i a atribut A j sú v i.a j a v i.a j termy ( je operátor externej referencie) ; pre výraz S, atribut A a agregačnú funkciu f je f(a)s term f {COUNT, AVG, SUM, MIN, MAX, COUNTD, AVGD, SUMD}. (2) Operátory porovnávania =,,, symboly pre operátory s ich zvyčajným významom (pozor, pre porovnávanie hodnoty NULL výsledok nie je definovaný); symbol operátoru rovnosti pre NULL (výsledok TRUE ak majú oba porovnávané termy hodnotu NULL). 9.11.2010 9

Predikátová formula II (3) Atomický predikát pre termy t 1, t 2 a operátor porovnávania θ je t 1 θ t 2 atomický predikát; T (TRUE) je atomický predikát F (FALSE) je atomický predikát U (UNKNOWN) je atomický predikát (4) Ak P je atomický predikát, potom ǁPǁ α je atomický predikát, kde ǁ...ǁ α interpretačný operátor. (5) Atomický predikát je predikátová formula. 9.11.2010 10

Predikátová formula III (6) Nech P a Q sú predikátové formule. Potom P, P Q a P Q sú predikátové formule. (7) Nech { t(v 1,...,v n ): ǁP(v 1,...,v n )ǁ α } je výraz E3VPC a Q(v 1,...,v n ) je predikátová formula, potom predikáty { t(v 1,...,v n ): ǁP(v 1,...,v n )ǁ α }Q(v 1,...,v n ) { t(v 1,...,v n ): ǁP(v 1,...,v n )ǁ α }Q(v 1,...,v n ) sú predikátové formule. (8) Žiadne iné formule nie sú predikátové formule. 9.11.2010 11

Interpretácia výrazov v E3VPC Výsledkom vyhodnotenia výrazu je množina n-tic voľných premenných (premenné cieľového zoznamu) splňujúcich predikátovú formulu. vyhodnocovanie ako v n-ticovom predikátovom kalkule rozdiel je v trojhodnotovej logike (,, ) vo formulách používame interpretačný operátor, ktorý prevedie trojhodnotový predikát do dvojhodnotového výsledok výrazu { x in R: P(x) } je nedefinovaný, pretože nie je známe, či n-tica x' splňujúca P(x') = U do výsledku patrí alebo nepatrí; (Poznámka: { x in R: P(x) } nie je platný výraz v E3VPC, interpretačný operátor ǁ...ǁ α je vo výraze povinný) 9.11.2010 12

Interpretačný operátor Nech P(x) je trojhodnotová a Q(x) dvojhodnotová predikátová formula. Interpretácia hodnôt UNKNOWN je definovaná následovne. DEF 1. Q(x) je pravdivo-interpretovaný dvojhodnotový ekvivalent P(x) (znač. ǁP(x)ǁ T ), ak pre každé x platí: P x =T Q x =T P x =F Q x =F P x =U Q x =T DEF 2. Q(x) je nepravdivo-interpretovaný dvojhodnotový ekvivalent P(x) (znač. ǁP(x)ǁ F ), ak pre každé x platí: P x =T Q x =T P x =F Q x =F P x =U Q x =F 9.11.2010 13

Termy, operátor Termy sú definované zvyčajným induktívnym spôsobom až na operátor externej referencie ( ). Operátor umožňuje modifikovať, ktoré pravidlá sa majú vzťahovať na premennú (určené formulou v i in R i ). vo výraze { v in R:P(v, v ) } indikuje operátor, že premenná v nemá byť zvažovaná v rozsahu hodnôt určených formulou v in R v patrí do rozsahu hodnôt najbližšiej nadradenej formule v in {v in S : {v in R: v.a 1 = v. B 1 }...} Prínos: Značné zjednodušenie prekladu SQL dotazov! 9.11.2010 14

Interpretácia agregačných funk. Agr. funkcia f na atribúte A pre výraz S (znač. f(a)s). agr. funkcie aplikované na množinu n-tic vracajú jednu hodnotu vracajú NULL ak sú aplikované na prázdnu množinu (okrem COUNT, COUNTD, tie vracajú 0) n-tice obsahujúce NULL hodnotu v atribute A nie sú použité pri agregácii (okrem COUNT) COUNTD, SUMD, AVGD navyše vyradzujú identické hodnoty na zvolenom atribúte pred ich konečným vyhodnotením 9.11.2010 15

Kvantifikované predikáty sú založené na kompaktných tvaroch, ktoré uľahčujú čítateľnosť výrazov užitočné pri popise štruktúry SQL dotazov význam zápisu v kompaktnom tvare { x in R: ǁW(x)ǁ α } P(x) pre všetky n-tice x patriace do množiny { x in R:ǁW(x)ǁ α } platí P(x) { x in R: ǁW(x)ǁ α } P(x) existuje najmenej jedna n-tica v množine { x in R: ǁW(x)ǁ α }, pre ktorú platí P(x) ak je množina { x in R: ǁW(x)ǁ α } prázdna, hodnota formuly s univerzálnym kvant. je TRUE, pri existenčnom kvant. je FALSE k rozšíreniu definície kompaktných tvarov na trojhodnotovú logiku je potrebný interpretačný operátor 9.11.2010 16

Kvantifikované predikáty Význam kvant. predikátov v E3VPC je def. následovne: { x in R: ǁW(x)ǁ α } P(x) = T ak je množina prázdna alebo pre všetky prvky platí P(x) = T = F ak nie je množina prázdna a aspoň jeden prvok x' splňuje P(x') = F = U inak (množina je neprázdna, neexistuje prvok x' taký, že P(x') = F a aspoň jeden prvok x'' splňuje P(x'') T, teda P(x'') = U) { x in R: ǁW(x)ǁ α } P(x) = F ak je množina prázdna alebo pre všetky prvky platí P(x) = F = T ak nie je množina prázdna a aspoň jeden prvok x' splňuje P(x') = T = U inak (množina je neprázdna, neexistuje prvok x' taký, že P(x') = T a aspoň jeden prvok x'' splňuje P(x'') F, teda P(x'') = U) 9.11.2010 17

Preklad SQL do E3VPC Preklad SQL dotazu do E3VPC je syntaxou riadená transformácia definovaná množinou prekladových pravidiel gramatiky SQL jazyka Každý preklad TR X neterminálu X na ľavej strane prepisovacieho pravidla je postupnosť prekladov TR Y 1..TR Y n kde Y i sú terminály alebo neterminály pravej strany prepisovacieho pravidla Vo všeobecnosti existuje len jedno prekladové pravidlo pre každé pravidlo SQL gramatiky Avšak niekedy môžeme mať viac prekladov pre jedno pravidlo TR X Riešime indexom (ďalší level), miesto použijeme TRj X, kde špecifikuje prekladovú funkciu

Gramatika SQL jazyka

Preklad SQL do E3VPC Základná štruktúra prekladu SQL dotazu vyzerá nasledovne: {TR FRCALUSE : TR WHCLAUSE TR HCLAUSE F } Kde je selekce? Selekce je daná klauzulami WHCLAUSE a HCLAUSE, avšak len platnosť podmienok. Projekce ako ju poznáme z SQL je v E3VPC zbytočná, pretože sa jedná už len o výber m-tice z n-tice, m <= n Kde je GROUP BY? Je skrytá v HCLAUSE, pretože grupovanie ovplyvňuje vyhodnocovanie HAVING a agregačných fukcií

Prekladové pravidlá

Ukážme si to na príklade Definujme si dve relace: DEPT(D_ID,NoEmp,location,manager) EMP(E_ID,D_ID,residence) Neriešme tu teraz typy ani integritné obmedzenia. Na daných relacích chceme nasledujúci dotaz: Mená manažérov oddelení, ktorých všetci zamestnanci bývajú na rovnakom mieste ako je umiestnené ich oddelenie, tak, že priemerný počet zamestnancov oddelení, ktoré manažuje rovnaký manažér, je vyšší ako 500.

Príklad V SQL by ten dotaz vyzeral asi takto: SELECT d.manager FROM DEPT d WHERE d.location = ALL SELECT e.residence FROM EMP e WHERE e.d_id = d.d_id GROUP BY d.manager HAVING AVG(d.NoEmp)>500

Príklad Preklad do E3VPC: Použijeme pravidlá 1-15 z prekladovej tabuľky a dostaneme hrubý základ {d in DEPT : TR WHERE SEARCH COND TR HAVING SEARCH COND F } Pomocou pravidla 23 môžeme zasubstituovať WHERE klauzulu TR1 SUBQ d.location=tr2 SUBQ A TR1 SUBQ ->{e in EMP : e.d ID =d.d ID F TR2 SUBQ ->e.residence

Príklad Celá WHERE klauzula potom vyzerá nasledovne {e in EMP : e.d_id=d.d_id F }d.location=e.residence Preklad HAVING SEARCH COND môžeme byť uskutočnený pomocou pravidla 36 AVG d.noemp {TR FRCLAUSE : TR WHCLAUSE TR GBCLAUSE F } 500 A tiež AVG d.noemp {d in DEPT : {ein EMP : e.d_id=d.d_id F }d.location=e.residence TR GBCLAUSE F } 500 GBCLAUSE preložíme pravidlom 15 d.manager =d. manager

Príklad A sme na konci {d in DEPT : AVG d.noemp {d in DEPT : {ein EMP : e.d_id=d.d_id F }d.location=e.residence d.manager=d.manager F } 500 F }

Ekvivalencia SQL dotazov Ekvivalencia dotazov je analyzovaná po ich trasformácii do ekvivalentného kanonického tvaru, ktorý sa ďalej riadi pravidlami dvojhodnotového predik. kalkulu. transformačné pravidlá zachovávaju ekvivalenciu výrazov v dvojhodnotovom kalkule je rovnosť výrazov dobre známa, preto považujeme definíciu transformácií za postačujúce riešenie problému, či sú dva SQL dotazy ekvivalentné Kanonický výraz je výraz E3VPC, kde: interpret. operátor je asociovaný ku atomickému predikátu iné interpret. operátory sa vo výraze nevyskytujú výraz neobsahuje kompaktné tvary 9.11.2010 27

Trasformácia do kanon. tvaru využíva obecné pravidlá dvojhodnotového kalkulu jediné neplatné pravidlá pre trojhodnotový predikát P sú tautológia a kontradikcia doplňujúce pravidlá pre interpretačný operátor sú: 1. P x Q x P x Q x 2. P x Q x P x Q x 3. P x P x 4. P x P x 5. xin R: P x xin R : P x 6. xin R: P x x in R: P x - distribúcia OR a AND (1 a 2), vynímanie negácie (3), idempotentné pravidlo (4) a distribúcia kvantifikátorov (5 a 6) 9.11.2010 28

Odstránenie kompakt. tvarov I výrazy produkované SQL dotazmi obsahujú kompaktné tvary (nie sú kanonické) ich eliminácia by vyžadovala dlhú postupnosť krokov; následujúce vety robia transformáciu priamočiarou VETA 1 {xin R: P x }Q x xin R: P x Q x VETA 2 {x in R: P x }Q x x in R : P x Q x 9.11.2010 29

Odstránenie kompakt. tvarov II Dôkaz 1: {xin R: P x }Q x xin R : P x Q x (pravidlo pred. kalkulu) x in R : P x Q x (pravidlo 5) x in R : P x Q x (pravidlo 2) x in R : P x Q x (pravidlo 4) Dôkaz 2: {x in R: P x }Q x x in R: P x Q x (pravidlo pred. kalkulu) xin R: P x Q x (pravidlo 6) xin R: P x Q x (pravidlo 1) xin R: P x Q x (pravidlo 3) xin R: P x Q x (pravidlo 4) 9.11.2010 30

Trojhodnotovosť a ekvivalencia Má interpretácia UNKNOWN hodnôt jazykom SQL efekt na ekvivalenciu SQL dotazov? Množina nebezpečných ekvivalencií SQL dotazy preložené a trasformované do kanonického tvaru majúce totožnú štruktúru len odlišné interpretačné operátory asociované s niektorým jednoduchým predikátom. Pr. Nech Q 1 a Q 2 sú SQL dotazy preložené do E3VPC TR Q 1 ={xin R: P x F } TR Q 2 ={x in R: P x T } výsledky sú identické len ak databáza neobsahuje NULL hodnoty, obecne n-tica x' taká, že P(x') = U je zahrnutá vo výsledku Q 2 ale nie v Q 1 a preto Q 1 a Q 2 tvoria množinu nebezpečných ekvivalencií 9.11.2010 31 Ktoré konštrukcie SQL môžu spôsobiť tento efekt?

Množina nebezp. ekvivalencií prekladové pravidlá produkujú len nepravdivo-interpretované predikáty (ǁ...ǁ F ) situácia ako pri Q 1 a Q 2 priamo pri preklade nenastane problémom môže ale byť transformácia výrazov do ich kanonického tvaru v skutočnosti existujú dve transformácie, ktoré môžu potenciálne viesť k vzniku mn. nebezpečných ekvivalen. pravidlo 3 prevod ǁ...ǁ α na ǁ...ǁ α (ǁ...ǁ F ǁ...ǁ F ) pravidlo 4 prevod ǁǁ...ǁα ǁ β na ǁ...ǁ α (ǁǁ...ǁ T ǁ F ǁ...ǁ T ) tieto pravidlá môžu generovať pravdivo-interpretované predikáty (ǁ...ǁ T ) 9.11.2010 32

Nebezpečné SQL dotazy I vyšetríme existenciu dotazov v SQL, ktoré patria do množiny nebezpečných ekvivalencií (ďalej MNE) Jednoduché dotazy (bez hniezdenia a kvantifikátorov) Dva jednoduché dotazy Q 1 a Q 2 nevytvárajú MNE. Aby ju tvorili, musia byť tvaru TR Q 1 ={x in R: P x F } TR Q 2 ={x in R : P x F } {xin R : P x T } alebo TR Q 1 ={x in R: P x F } TR Q 2 ={x in R : P x T F } {x in R : P x T } ale žiadny dotaz v SQL nie je tvaru Q 2 a preto takáto situácia nemôže nastať. 9.11.2010 33

Nebezpečné SQL dotazy II Univerzálna kvantifikácia Predikát obsahujúci môže byť v SQL vyjadrený 5 rôznymi spôsobmi (v dvojhodnotovej interpr. sú ekvival.). Ich preklad je (1) { y in S : Q x, y P y } (2) { y in S : Q x, y }P y (3) { y in S : P y }Q x, y (4) { y in S : Q x, y } P y (5) { y in S : P y } Q x, y,kde vždy α = F, lebo v SQL je vyhľadávacia podmienka interpretovaná ako FALSE a β závisí od štruktúry dotazu. Po transformácii do ekvivalentného kanonického tvaru máme (1') y in S : Q x, y P y (2' a 4') yin S : Q x, y P y (3' a 5') yin S : Q x, y P y 9.11.2010 34

Nebezpečné SQL dotazy III Výsledné kanonické výrazy sú ekvivalentné len ak β = α a to obecne nemusí neplať (existencia MNE). Existenčna kvantifikácia Predikát obsahujúci môže byť v SQL vyjadrený 5 rôznymi spôsobmi, po preklade (pre α a β rovnaké úvahy ako pri ) (1) { y in S : Q x, y P y } (2) { y in S : Q x, y }P y (3) { y in S : P y }Q x, y (4) { y in S : Q x, y } P y (5) { y in S : P y } Q x, y Po transformácii do kanonického tvaru dostaneme (1') y in S : Q x, y P y (2' a 4') yin S : Q x, y P y (3' a 5') yin S : Q x, y P y 9.11.2010 35

Nebezpečné SQL dotazy IV Na rozdiel od univ. kvantifikácie sú tieto tri výrazy ekvivalentné len ak α = β. Pretože vždy α = F, MNE môže vzniknúť len ak je kvantif. predikát obsiahnutý v dotaze, ktorý tvorí preklad s β = T (t.j. -kvan. predik. je zložkou (P Q) -kvan. predikátu) Komplexný predikát porovnávania V SQL je vyjadrený jediným spôsobom a preto jeho preklad vytvára len jednu triedu ekvivalencií. Všeobecné SQL dotazy (zhrnutie) (1) SQL dotazy bez nepatria do MNE (2) SQL dotazy obsahujúce vždy tvoria MNE (3) počet rôznych interpretácií predikátov v dotazoch s rovnakou kanonickou štruktúrou a aspoň jedným predikátom vzrastá pri existencií ďalších kvant. predikátov v -kvantifiko- vanom predikáte 9.11.2010 36

Ďakujeme za pozornosť - Ukázali sme si formálny model s rovnakou silou ako SQL - Tiež sme si ukázali, ze 2 pravdivostné hodnoty sú nám málo - 3 hodnoty potrebujeme aj pre rozhodnutie o ekvivalencii dvoch SQL dotazov 9.11.2010 37