Introducció a XQuery i Estructura FLWOR

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Quina de les següents opcions descriu millor la funció principal de XQuery?

  • Compilar codi font en llenguatge màquina.
  • Gestionar bases de dades relacionals.
  • Extreure informació de bases de dades i documents XML. (correct)
  • Dissenyar pàgines web interactives.

La clàusula 'return' en XQuery s'executa una sola vegada, independentment del nombre de nodes retornats per la clàusula 'for'.

False (B)

Com s'assignen les variables a la clàusula 'let' en XQuery?

:=

La clàusula XQuery que permet filtrar nodes basant-se en condicions és la clàusula ______.

<p>where</p> Signup and view all the answers

Relaciona les següents clàusules XQuery amb la seva funció principal:

<p>for = Recupera una sèrie de nodes mitjançant una consulta XPath. let = Crea variables amb contingut, executant-se només una vegada amb la clàusula 'return'. where = Filtra els nodes seleccionats a la clàusula 'for'. order by = Ordena els nodes abans que comenci a executar-se la clàusula 'return'.</p> Signup and view all the answers

Quina és la diferència principal entre les clàusules 'for' i 'let' en XQuery?

<p>'for' recupera una sèrie de nodes, i 'let' crea variables amb contingut. (C)</p> Signup and view all the answers

L'ús de /* és opcional quan s'utilitza l'operador except en XQuery.

<p>False (B)</p> Signup and view all the answers

Quin és l'efecte de la funció distinct-values en XQuery sobre les etiquetes dels nodes seleccionats?

<p>Les elimina</p> Signup and view all the answers

Per agrupar nodes en funció d'un valor de node o atribut en XQuery, utilitzem la clàusula ______.

<p>group by</p> Signup and view all the answers

Quina clàusula d'XQuery permet modificar el resultat d'una consulta basant-se en una condició?

<p>if (A)</p> Signup and view all the answers

La clàusula where filtrarà els nodes encara que s'estiguin obtenint amb let.

<p>False (B)</p> Signup and view all the answers

Com es pot accedir a la numeració dels nodes dins d'una clàusula for?

<p>at</p> Signup and view all the answers

Si es vol englobar el resultat d'una consulta XQuery en una etiqueta superior, caldrà tancar-la entre ______.

<p>llaus</p> Signup and view all the answers

Quin operador s'utilitza en XQuery per eliminar determinats nodes de la sortida?

<p>except (B)</p> Signup and view all the answers

Es poden combinar les clàusules 'for' i 'let' per tal que 'let' s'executi una vegada per cada node, de la mateixa manera que 'return'.

<p>True (A)</p> Signup and view all the answers

Quin llenguatge base utilitza XQuery per accedir als nodes XML?

<p>XPath</p> Signup and view all the answers

Les consultes XQuery es componen de cinc clàusules, que degut a les seves inicials se les coneix com ______.

<p>FLWOR</p> Signup and view all the answers

Quina és la funció de la clàusula order by en XQuery?

<p>Ordenar els nodes abans de l'execució de la clàusula <code>return</code>. (C)</p> Signup and view all the answers

La clàusula return sempre retorna els nodes en el mateix ordre en què apareixen en el document XML, independentment de la clàusula order by.

<p>False (B)</p> Signup and view all the answers

Relaciona cada funció amb la seva descripció:

<p>max = Troba el valor màxim. count = Compta el nombre d'elements. sum = Calcula la suma dels valors. avg = Calcula la mitjana dels valors.</p> Signup and view all the answers

Per a mostrar els títols dels llibres amb XQuery, s'utilitza l'etiqueta '______' dins de la consulta.

<p>title</p> Signup and view all the answers

La clàusula '______' en XQuery permet iterar sobre cada element 'book' dins de 'bookstore'.

<p>for</p> Signup and view all the answers

Per a filtrar els llibres on el preu sigui menor o igual a 30, s'utilitza la clàusula '______' en XQuery.

<p>where</p> Signup and view all the answers

La funció ______() en XQuery retorna el valor textual dels nodes seleccionats, com per exemple, els títols dels llibres.

<p>text</p> Signup and view all the answers

En XQuery, per a accedir al preu d'un llibre dins d'un element '$libro', s'utilitza l'expressió '$libro/______'.

<p>/price</p> Signup and view all the answers

La paraula clau '______' en XQuery permet retornar el resultat d'una expressió o consulta.

<p>return</p> Signup and view all the answers

L'expressió '/bookstore/book' en XQuery selecciona tots els elements '______' que són fills de l'element 'bookstore'.

<p>book</p> Signup and view all the answers

Per a comparar si el preu d'un llibre és menor o igual a 30 en XQuery, s'utilitza l'operador '______'.

<p>&lt;=</p> Signup and view all the answers

L'element arrel del document XML proporcionat és '______'.

<p>bookstore</p> Signup and view all the answers

En XQuery, per obtenir només el valor del text contingut dins d'un element, utilitzem la funció '______()'.

<p>text</p> Signup and view all the answers

L'expressió {$titulo} dins de la clàusula return serveix per mostrar el valor de la variable '______'.

<p>titulo</p> Signup and view all the answers

Si volem que la condició del preu estigui dins de la ruta XPath, podem fer servir els '______' per filtrar.

<p>predicats</p> Signup and view all the answers

La consulta XQuery retorna una seqüència de '______' que corresponen als títols dels llibres.

<p>cadenes</p> Signup and view all the answers

Utilitzar la clàusula ______ és necessari per poder iterar a través de tots els elements del document XML.

<p>for</p> Signup and view all the answers

El resultat de la consulta XQuery es visualitzarà com una llista de '______' obtinguts del fitxer XML.

<p>títols</p> Signup and view all the answers

L'expressió $libro/______ selecciona el node del preu del llibre.

<p>price</p> Signup and view all the answers

La comparació $libro/price ______ 30 avalua si el preu del llibre és menor o igual a 30.

<p>&lt;=</p> Signup and view all the answers

L'ús de '______' en XQuery permet definir una condició per filtrar els resultats.

<p>where</p> Signup and view all the answers

L'expressió XPath '/bookstore/book/title/______()' extreu els valors textuals dels títols.

<p>text</p> Signup and view all the answers

Després de filtrar amb la clàusula where, la clàusula '______' specifica què s'ha de retornar.

<p>return</p> Signup and view all the answers

Quina de les següents consultes XQuery retorna correctament tots els noms dels balls dins d'una etiqueta <losbailes>?

<p><code>&lt;losbailes&gt;{/bailes/baile/nombre}&lt;/losbailes&gt;</code> (B)</p> Signup and view all the answers

Escriu una consulta XQuery que retorni els noms dels balls seguits del nombre de places entre parèntesis, tots dos dins de l'etiqueta <losbailes>.

<p><code>&lt;losbailes&gt;{/bailes/baile/nombre/text()} ({/bailes/baile/plazas/text()})&lt;/losbailes&gt;</code></p> Signup and view all the answers

Quina consulta XQuery selecciona correctament els noms dels balls que tenen un preu superior a 30?

<p><code>/bailes/baile[precio &gt; 30]/nombre/text()</code> (D)</p> Signup and view all the answers

La consulta XQuery /bailes/baile[precio > 30]/nombre/text() retornarà el nom dels balls amb preu superior a 30, juntament amb la moneda 'euro'.

<p>False (B)</p> Signup and view all the answers

Per mostrar els noms i la data de començament dels balls que comencen el mes de gener, utilitzant la cadena de text '/1/', la consulta XQuery hauria d'incloure: /bailes/baile[starts-with(____, '/1/')]/nombre

<p>fechainicio</p> Signup and view all the answers

Relaciona cada expressió XQuery amb la seva funció:

<p><code>/bailes/baile/profesor/text()</code> = Selecciona tots els noms dels professors. <code>/bailes/baile/sala/text()</code> = Selecciona totes les sales on s'imparteixen les classes. <code>distinct-values(/bailes/baile/profesor/text())</code> = Selecciona els noms dels professors sense repeticions. <code>avg(/bailes/baile/precio)</code> = Calcula la mitjana dels preus dels balls.</p> Signup and view all the answers

Escriu una consulta XQuery que retorni els noms dels professors i la sala on fan classes, ordenats per sala.

<p><code>/bailes/baile/profesor/text(), /bailes/baile/sala/text() order by /bailes/baile/sala</code></p> Signup and view all the answers

Quina funció XQuery s'utilitza per eliminar els noms repetits dels professors?

<p><code>distinct-values()</code> (C)</p> Signup and view all the answers

La consulta sum(/bailes/baile/precio) calcula la mitjana dels preus de tots els balls.

<p>False (B)</p> Signup and view all the answers

Per mostrar la suma dels preus dels balls de la sala 1, la consulta XQuery hauria d'incloure: sum(/bailes/baile[____ = 1]/precio)

<p>sala</p> Signup and view all the answers

Quina consulta XQuery mostra correctament quantes places en total ofereix el professor 'Jesus Lozano'?

<p><code>sum(/bailes/baile[profesor = 'Jesus Lozano']/plazas)</code> (C)</p> Signup and view all the answers

Escriu una consulta XQuery per mostrar els ingressos que obtindria la professora 'Laura Mendiola' si es completessin totes les places del seu ball.

<p><code>/bailes/baile[profesor = 'Laura Mendiola']/precio * /bailes/baile[profesor = 'Laura Mendiola']/plazas</code></p> Signup and view all the answers

La consulta sum(/bailes/baile[contains(profesor, 'Laura')]/precio * plazas) calcularà els ingressos totals de tots els professors anomenats 'Laura'.

<p>True (A)</p> Signup and view all the answers

Per mostrar el nom del ball, el seu preu i el preu amb un descompte del 15% per a famílies nombroses, ordenats pel nom del ball, la consulta hauria d'incloure: /bailes/baile/nombre, /bailes/baile/precio, /bailes/baile/precio * 0.85 order by ____

<p>nombre</p> Signup and view all the answers

Quina consulta XQuery mostra tots els detalls de cada ball, excepte la data d'inici i de fi?

<p><code>for $baile in /bailes/baile return &lt;baile&gt;{$baile/*[not(self::fechainicio or self::fechafin)]}&lt;/baile&gt;</code> (C)</p> Signup and view all the answers

Escriu una consulta XQuery que generi una taula HTML amb els noms dels balls i els seus professors, cada un en una fila.

<p><code>&lt;table&gt;{for $baile in /bailes/baile return &lt;tr&gt;&lt;td&gt;{$baile/nombre/text()}&lt;/td&gt;&lt;td&gt;{$baile/profesor/text()}&lt;/td&gt;&lt;/tr&gt;}&lt;/table&gt;</code></p> Signup and view all the answers

La consulta <table><tr><th>Ball</th><th>Professor</th></tr>{for $b in /bailes/baile return <tr><td>{$b/nombre}</td><td>{$b/profesor}</td></tr>}</table> produirà una taula HTML ben formada amb una capçalera i les dades dels balls i professors.

<p>True (A)</p> Signup and view all the answers

Per calcular la mitjana de les places disponibles en tots els balls, utilitzaríem la funció: ____(/bailes/baile/plazas)

<p>avg</p> Signup and view all the answers

Quina consulta XQuery calcula la suma total dels preus de tots els balls que tenen més de 15 places?

<p><code>sum(/bailes/baile[plazas &gt; 15]/precio)</code> (A)</p> Signup and view all the answers

Escriu una consulta XQuery que retorni el nom de tots els professors que imparteixen classes a la sala 1 i a la sala 2.

<p><code>distinct-values(/bailes/baile[sala = 1 or sala = 2]/profesor/text())</code></p> Signup and view all the answers

Quina funció XQuery es recomana per concatenar diversos textos en la resolució del primer exercici?

<p>concat() (D)</p> Signup and view all the answers

La funció distinct-values no és útil per resoldre l'exercici de comptar els punts que ha fet cada equip en total en el 6 nacions.

<p>False (B)</p> Signup and view all the answers

Quin és el nom del fitxer XML sobre el qual s'han de realitzar les consultes XQuery?

<p>6nacions.xml</p> Signup and view all the answers

L'activitat T4062 consisteix en realitzar ______ amb XQuery.

<p>consultas</p> Signup and view all the answers

Relaciona els entrenadors amb els seus respectius equips del torneig de les Sis Nacions 2011 (segons el fitxer XML):

<p>Warren Gatland = Wales Marc Lièvremont = France Andy Robinson = Scotland Martin Johnson = England</p> Signup and view all the answers

En el context de les consultes XQuery sobre el fitxer XML proporcionat, quin és l'atribut que identifica el número de partit?

<p>num (B)</p> Signup and view all the answers

En el fitxer XML, l'element <trainer> conté el nom de l'equip.

<p>False (B)</p> Signup and view all the answers

Quin element del fitxer XML '6nacions.xml' encapsula la informació resumida d'un partit, incloent els equips i els seus marcadors?

<p>summary</p> Signup and view all the answers

Dintre de cada equip a <summary>, l'element <scorecard> conté subelements <name> que guarden els ______ i l'atribut 'points' que indica els punts.

<p>jugadors</p> Signup and view all the answers

Relaciona cada element XML amb la informació que conté:

<p><code>&lt;competition&gt;</code> = Informació general del torneig <code>&lt;match&gt;</code> = Dades i resum d'un partit <code>&lt;team&gt;</code> = Nom i marcador d'un equip <code>&lt;scorecard&gt;</code> = Jugadors i punts marcats</p> Signup and view all the answers

Quina expressió XQuery seria la més adequada per seleccionar tots els noms dels equips que van participar en el torneig?

<p><code>//team/@name</code> (B)</p> Signup and view all the answers

En XQuery, per seleccionar tots els partits jugats per Escòcia, seria suficient utilitzar l'expressió //match[team/@name='Scotland'].

<p>False (B)</p> Signup and view all the answers

Quina funció d'XQuery utilitzaries per sumar tots els punts marcats per un equip en tots els partits?

<p>sum()</p> Signup and view all the answers

Per ordenar els jugadors pel nombre de punts, necessites utilitzar l'expressió ______ en XQuery.

<p>order by</p> Signup and view all the answers

Relaciona la tasca amb la funció XQuery apropiada:

<p>Extreure l'any d'una data = substring() Comptar elements = count() Comprovar si un node existeix = exists() Seleccionar valors únics = distinct-values()</p> Signup and view all the answers

Quina expressió XQuery retornaria el marcador de Gal·les al primer partit?

<p><code>//match[@num='1']/team[@name='Wales']/@score</code> (B)</p> Signup and view all the answers

La funció 'avg()' pot ser utilitzada directament per obtenir la mitjana de punts marcats per un jugador en tots els partits.

<p>True (A)</p> Signup and view all the answers

Com s'accedeix a l'atribut 'edicio' de l'element arrel 'competition' en XQuery?

<p><code>//competition/@edicio</code></p> Signup and view all the answers

Per seleccionar tots els jugadors que han marcat més de 10 punts en un partit, hauries d'utilitzar una condició ______ en XQuery.

<p>where</p> Signup and view all the answers

Emparella les funcions XQuery amb la seva funció:

<p>data() = Extreu el valor d'un element count() = Compta el nombre d'elements sum() = Calcula la suma dels elements avg() = Calcula la mitjana dels elements</p> Signup and view all the answers

Flashcards

XQuery

Llenguatge de consulta per extreure informació de bases de dades o documents XML.

Clàusula 'for'

Recupera una sèrie de nodes mitjançant una consulta XPath i els introdueix en una variable.

Clàusula 'return'

Especifica l'expressió que es retornarà per a cada resultat de la clàusula 'for'.

'at' a la clàusula 'for'

Permet accedir a la numeració dels nodes que es recorren en la clàusula 'for'.

Signup and view all the flashcards

Clàusula 'let'

Permet crear variables amb cert contingut, executant-se només una vegada amb la clàusula 'return'.

Signup and view all the flashcards

Clàusula 'where'

Permet filtrar els nodes seleccionats a la clàusula 'for' utilitzant operadors i funcions XPath.

Signup and view all the flashcards

Clàusula 'order by'

Permet ordenar els nodes abans de l'execució de la clàusula 'return'.

Signup and view all the flashcards

Clàusula 'group by'

Permet agrupar els nodes en funció d'un valor de node o atribut.

Signup and view all the flashcards

Funció 'distinct-values'

Selecciona només els nodes amb valors diferents dins de les clàusules 'for' o 'let'.

Signup and view all the flashcards

Operador 'except'

Permet eliminar nodes de la sortida de la consulta.

Signup and view all the flashcards

Mostrar títols de llibres

Selecciona el text dels elements 'title' dins de 'book' i 'bookstore'.

Signup and view all the flashcards

Llibres amb preu menor o igual a 30

Itera sobre cada llibre, filtra els que tinguin un preu menor o igual a 30 i mostra els llibres resultants.

Signup and view all the flashcards

Mostrar noms dels balls

Mostra els noms dels balls dins d'una nova etiqueta 'losbailes'.

Signup and view all the flashcards

Nom i places del ball

Mostra el nom del ball seguit del nombre de places entre parèntesis, tot dins de l'etiqueta 'losbailes'.

Signup and view all the flashcards

Balls amb preu > 30

Retorna els noms dels balls amb un preu superior a 30.

Signup and view all the flashcards

Balls > 30 amb 'euro'

Retorna els noms dels balls amb preu > 30 i afegeix 'euro'.

Signup and view all the flashcards

Balls que comencen al gener

Mostra el nom i la data d'inici dels balls que comencen al gener.

Signup and view all the flashcards

Professor i sala (ordenat)

Mostrar noms de professors i la sala on donen classe, ordenats per sala.

Signup and view all the flashcards

Professors únics i sales

Llista noms de professors sense repeticions i les sales on donen classe, ordenats per nom.

Signup and view all the flashcards

Mitjana dels preus

Calcula la mitjana aritmètica dels preus de tots els balls.

Signup and view all the flashcards

Suma preus (sala 1)

Calcula la suma de tots els preus dels balls que es realitzen a la sala 1.

Signup and view all the flashcards

Total places (Jesus Lozano)

Calcula el nombre total de places que ofereix el professor 'Jesus Lozano'.

Signup and view all the flashcards

Ingressos Laura Mendiola

Calcula els ingressos totals de 'Laura Mendiola' si s'omplen totes les places del seu ball.

Signup and view all the flashcards

Ingressos balls (Jesus Lozano)

Calcula els ingressos de cada ball de 'Jesus Lozano' per separat..

Signup and view all the flashcards

Ingressos Laura (sense cognom)

Calcula els ingressos de 'Laura' (sense cognom) si s'omplen totes les places del seu ball.

Signup and view all the flashcards

Preu amb descompte (ordenat)

Mostra nom del ball, preu original i preu amb un descompte del 15%; ordenat per nom.

Signup and view all the flashcards

Dades ball (sense dates)

Mostra tots els detalls de cada ball excepte la data d'inici i finalització.

Signup and view all the flashcards

Taula HTML (ball i professor)

Generar una taula HTML mostrant el nom del ball i el nom del professor a cada fila.

Signup and view all the flashcards

Què és XML?

Llenguatge per consultar dades emmagatzemades en format XML.

Signup and view all the flashcards

Què és una Expressió XPath?

Una expressió que localitza un node o una llista de nodes dins d'un document XML.

Signup and view all the flashcards

Funció concat()

Per concatenar seqüències de caràcters o altres valors, per crear un nou string.

Signup and view all the flashcards

Llistar màxims anotadors

Retorna els jugadors amb la puntuació més alta en ordre descendent.

Signup and view all the flashcards

Study Notes

Introducció a XQuery

  • XQuery és un llenguatge de consulta per extreure informació de bases de dades o documents XML.
  • És anàleg a SQL per a bases de dades relacionals.
  • XQuery es basa en XPath per accedir als nodes XML, utilitzant tots els seus operadors i funcions.

Estructura FLWOR

  • Les consultes XQuery estan compostes per cinc clàusules conegudes com FLWOR (for, let, where, order by, return).

Clàusula "for"

  • Recupera una sèrie de nodes mitjançant una consulta XPath i els introdueix en una variable.
  • La clàusula "return" s'executa una vegada per cada node que retorna la clàusula "for".
  • Exemple: for $book in /books/book return $book/title (imprimeix l'etiqueta "title" de cada llibre).
  • Si no s'indica un document després de "in", la consulta es llança contra la base de dades oberta.
  • Per llançar la consulta contra un document XML específic, s'utilitza "doc": for $book in doc("nom_document.xml")/books/book return $book/title.
  • Es pot utilitzar "at" dins de la clàusula "for" per obtenir una variable amb la numeració dels nodes que es recorren: for $book at $i in /books/book return <resultat>{$i} - {$book/title}</resultat>.
  • Per englobar totes les etiquetes en una superior, s'ha d'encerrar la consulta completa entre claus { }.
  • Exemple de consulta per mostrar títols de llibres amb l'etiqueta "títol": for $titulo in /bookstore/book/title/text() return {$titulo}

Clàusula "if"

  • Permet utilitzar l'estructura condicional "if" dins de la clàusula "return" per modificar el resultat en funció d'una condició. Aquesta funcionalitat és especialment útil en la programació, ja que permet crear lògiques més complexas i adaptar el comportament del codi en temps d'execució. Per exemple, si volem retornar un valor diferent basat en si una variable compleix cert criteri, podem estructurar la nostra clàusula "return" de manera que integri la condició apropiada. Un exemple seria:

    return (x > 10) ? "Majors de 10" : "Menors o iguals a 10";
    

    En aquesta línia de codi, si la variable x és més gran que 10, el resultat serà "Majors de 10"; en cas contrari, retornarà "Menors o iguals a 10". Així doncs, la clàusula "if" no només permet realitzar una comprovació, sinó que així mateix propicia una resposta directa i dinàmica que pot ser presentada com a resultat.

Clàusula "if"

  • Permet utilitzar l'estructura condicional "if" dins de la clàusula "return" per modificar el resultat en funció d'una condició.
  • inserix exemple de if

Clàusula "let"

  • Permet crear variables amb cert contingut, executant-se només una vegada amb la clàusula "return".
  • Assigna les variables mitjançant els caràcters ":=".
  • Permet utilitzar funcions d'agrupació com avg, sum, count, etc.
  • Es pot buscar el valor màxim amb la funció "max".
  • Es poden combinar les clàusules "for" i "let" per a que la clàusula "let" s'executi una vegada per cada node.

Clàusula "where"

  • Permet filtrar els nodes seleccionats en la clàusula "for", utilitzant els mateixos operadors i funcions que en XPath.
  • No filtra els nodes si s'obtenen amb "let".
  • Exemple per mostrar llibres amb preu menor o igual a 30 usant "where": for $libro in /bookstore/book where $libro/price <= 30 return $libro

Clàusula "order by"

  • Permet ordenar els nodes abans que comenci a executar-se la clàusula "return".
  • La sortida tindrà el mateix ordre que els nodes en el document XML.

Clàusula "group by"

  • Permet agrupar els nodes en funció d'un valor de node o d'atribut.

Funció "distinct-values"

  • Permet seleccionar només els nodes que tenen valors diferents dins de la clàusula "for" o "let".
  • Retorna els nodes sense les seves etiquetes, com si s'utilitzés "/text()".

Operador "except"

  • Permet eliminar nodes de la sortida de la consulta.
  • És obligatori utilitzar "/*" en el node on s'utilitza.
  • Retorna el node sense etiquetes.

Fes exemples de cada operador y claulsa de xquery y xpad amb codi complet

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Introducció a XPath
40 questions

Introducció a XPath

BoundlessHeliotrope9255 avatar
BoundlessHeliotrope9255
Introducció a XQuery pptx
60 questions

Introducció a XQuery pptx

BoundlessHeliotrope9255 avatar
BoundlessHeliotrope9255
Introducció a XQuery vid
20 questions

Introducció a XQuery vid

BoundlessHeliotrope9255 avatar
BoundlessHeliotrope9255
Use Quizgecko on...
Browser
Browser