XQuery og relasjonell algebra Andreas Ravnestad. Agenda Bakgrunn/motivasjon XQuery Hvorfor oversette Xquery → rel.alg Parserkonstruksjon Relasjonell algebra.

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Mange til mange sammenhengen
JSP presentasjon Arild Strømhylden NTNU 26 June 2014.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
Kompilatorer - Hva foregår under panseret? BEKK fagdag
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Variasjoner i subklasser.  Prinsippskissen er meget enkel  En abstrakt klasse har en konkret metode og en abstrakt metode  Hver subklasse realiserer.
Grunnleggende matematikk
Sømløs Virksomhet – et målbilde Stian Danenbarger Emnekart 2004.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Databasehåndtering med MySQL
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
Erik Mohn. Prosjekt gjennomført av: Apache Software Foundation Skal gjøre tilgjengelig gjennbrukbare open source komponenter for Java Komponentene skal.
Semantisk interoperabilitet i det offentlige
EVALUERING AV PRODUKTER, PROSESSER OG RESSURSER. Gruppe 4 Remi Karlsen Stian Rostad Ivar Bonsaksen Jonas Lepsøy Per Øyvind Solhaug Andreas Tønnesen.
Relasjonsmodellen og relasjonsalgebra
Relasjonsmodellen, del II
Reidar Wisløff 3DSU Hovedprosjekt 16E
IPSec og VPN.
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
PayEx Logistics Hovedprosjekt - Gruppe 16 Thomas Siavash Glenn Viktorija.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Design patterns: State og Strategy
Strategi og samhandlingsarkitektur
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
Farvel til applikasjonsserveren Fra kompleksitet til kontroll.
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
1 Arrayer og form(ularer) (Kapittel 4). 2 Mål  Forstå assosiative og superglobale arrays  Kunne behandle webformularer (forms)  Kjenne forskjellen.
Høgskolen i Oslo Webprogrammering Ajax og PHP. I dag l Hvordan få en bedre brukeropplevelse via Ajax- script l Gjennomgang av kode l Oppgaveløsning på.
XSLT The Candy Community. Fiktivt community Godteri-relatert og sukkersøt musikk. To typer metadata: Candy factor Sugar level.
DOM og scripting Making it come alive. Hva er DOM? Standard for å definere trestrukturen til XML-dokumenter. IDL-spesifikasjon av grensesnitt, egenskaper.
Kort om XML Språket om språket. XML: Eksempel Hans Tømmerholt.
Evaluering ”Studentene har talt, men hva har de sagt?”
SQL+XQuery+XML+ PHP+XSLT+HTML = $$ ?. CGI Common Gateway Interface Parametere til websider (server-side scripts) I URL'en:
Oblig 2: The Candy-community. Om XML, XSLT, Sablotron og HTML.
Java 3 Mer om uttrykk Terminal I/O Forgreninger
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
Standarder, innhold og ePortfolio Helge Hannisdal Product Manager it’s:learning
Anbefalingssystemer og Ontologier
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
Linq – The Basics Arve Bjørnerud 20. November 2009.
Kontinuerlig kvalitetskontroll. Hvordan komme helt i mål.
7. Typography, Readability & Legibility Lesbarhet.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Grid Computing AliEn og Condor. Hvem, hva, hvor Jeg heter André Waage Sørensen Er tilknyttet Alice prosjektet på CERN Jobber med Grid teknologier som.
Teknologiledelse 1 Hovedoppgave våren 2003 ”Internasjonalisering PANDA på web” Kristin Hoston Vegard Storstad Avd. for.
1 GeoPortal – Rammeverk Introduksjon. 2 Teknisk rammeverk - Interoperabilitet Interoperabilitet evne til å kommunisere, kjøre programmer, eller overføre.
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Handling Churn in a DHT Andreas Wigmostad Bjerkhaug.
HPR 56 - Cross Platform Gaming Server Av Bjørn Haugen, og Hans Kristian Hovland.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
INF1000 (Uke 12) Sortering og eksamensoppgaver Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen.
The Impact of DHT Routing Geometry on Resilience and Proximity TDT 2, Olav Engelsåstrø
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Moscito2 Guro, Tone, Mari og Elna. Om prosjektet Tilstedeværelsesinformasjon i organisasjoner Tilstedeværelsesinformasjon i organisasjoner - systemer.
COTS Software Evaluation and Integration Issues Håkon Solberg Karl Morten Dahl.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
HUMIT1731 Hypermedier Introduksjon til XSL Transformation (XSLT)
Kapittel 5 Vilkårssetningar og løkker. 5.1 Boolske uttrykk George Boole ( ), britisk matematikar Utvikla teori om logikk ved bruk av symbol i.
XPath og XQuery MBIB4140 Høst 2017 Thomas Sødring
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
Utskrift av presentasjonen:

XQuery og relasjonell algebra Andreas Ravnestad

Agenda Bakgrunn/motivasjon XQuery Hvorfor oversette Xquery → rel.alg Parserkonstruksjon Relasjonell algebra Oversettelsesmetode Implementasjon

Bakgrunn og motivasjon FAST MARS MQL (Mars Query Language) Muligens konfidensielt? 

MARS Eksperimentell søkemotor Distribuert arkitektur Utviklet av FAST

MARS indeksering DocumentIDPositionScopeValue 17a[1].b[2]c 18a[1].b[3]c 111a[1].b[4]c...

MQL Spørringsspråk for MARS Syntaxmessig noe likt Lisp ”Dialekt” av relasjonell algebra

MQL syntax OPERATORNAME ::= IDENTIFIER OPERATOR ::= OPERATORNAME "(" PARAMETERLIST? (";" OPERATORLIST)? ")“ OPERATORLIST ::= OPERATOR ( "," OPERATOR )*

MQL syntax i praksis operator(param1, param2,..., paramN; op1, op2,...)

MQL eksempel index(valocc; scope(/a/b; lookup(c)));

XQuery/XPath Spørringsspråk for XML-data Semantiske likheter med SQL Utviklet av ”the XML Query working group of the W3C” Oppnådde status som ”recommendation” i 2007

XQuery/XPath Logisk/fysisk uavhengighet til data Deklarativt Høynivå Fritt for sideeffekter Sterk typing

XQuery/XPath eksempel for $a in /a/b/c return $a

XQuery/Xpath XQuery/XPath-uttrykk kan nøstes: /a[/a[/a[1]]] Hvordan deduserer man sannhetsverdi? Eksempel: /a[//b] = ”finn alle /a hvor //b er sann” Hva betyr det? Oversetting må ta høyde for ukjente resultatsett

Relasjonell algebra Basert på førsteordens-logikk Jobber mot relasjoner vha. operatorer

(hva er en relasjon?) NavnAlderVekt Per3480 Ola3385 Kari3572 ”X er Y år gammel og veier Z kg” S = {(Per, 34, 80), (Ola, 33, 85), (Kari, 35, 72)}

Relasjonell algebra Select Project Rename Union og differens (sett-operatorer)

Hvorfor oversette XQuery → rel.alg? Store XML-dokumenter = problematisk Relasjonelle databaser bedre egnet for store datamengder ”because we can” ?

Parserkonstruksjon Hvorfor lage en egen XQuery-parser? – Lisensiering – Output – Selvvalgt plattform – Ikke *så* vanskelig heller.. (åneida..)

Parserkonstruksjon GrammatikkParser-generatorParser

Parserkonstruksjon Fordeler med generering av parser: – Forholder seg til grammatikk – Valg mellom parserteknologier (LL, LALR,..) Ulemper: – Debugging – Feilmeldinger – ”customization”

Parserkonstruksjon ANTLR Grammatikk etter W3C’s spesifikasjon 99.3% av XQuery test suite*

Parserkonstruksjon for $a in (1) return for $b in (2), $c in (3) return $a

Ufordringen ???

Oversettelse og metoder Eksisterende løsninger – MonetDB/Pathfinder (Loop Lifting) – eXist (”path join”-algoritmer) – Galatex (tradisjonell ”range encoding”) Egnet for MARS? Ytelse? Lisens?

Loop lifting Veldokumentert metode Relativt enkel Moden implementasjon i MonetDB/Pathfinder (men skrevet i C) Dårlig ytelse i noen tilfeller

Loop lifting Ekspanderer FLWOR-løkker – Kryssprodukt med en abstrakt loop-relasjon – Informasjon om scope (indre, ytre, iteratorposisjon) – Uttrykk med frie variabler evalueres i tillegg mot en map-relasjon ”Staircase join” for Xpath-uttrykk

Essensielle regler i Loop lifting

Loop lifting Loop lifting var uaktuelt: – Skrevet i C (FAST ville ha Java) – Utnyttet ikke MQL’s features Et godt utgangspunkt for en bedre metode Veilederene hadde dessverre falt av lasset for lengst..

Vår metode: ”Tainting Dependencies” Basert på Loop lifting Prøver å unngå denormalisering vha: – Indeksering av sekvenser – Symboltabell for variabler – ”iterator dependency inheritance” – ”iterator dependency tainting”

Implementasjon Lookup lookup = new Lookup("Death in the clouds"); Scope scope = new Scope("/books/book/title", lookup); Project project = new Project("author", scope); System.out.println(project.toPrettyString(0)); project(author; scope(/books/book/title; lookup("Death in the clouds")))