Ejercicio para recordar teoría de Bases de Datos Antes de continuar con las consultas de XQuery, vamos a repasar un poco conceptos básicos de bases de datos, a través de un pequeño ejercicio usando XSL y CSS: Empezamos Empezamos con una página HTML que contiene sólo dos enlaces
El primer enlace nos lleva a la siguiente información: Modelado de la información •
Modelos de datos •
Los modelos de datos son un eficaz instrumento en el diseño de las bases de datos. Los niveles de abstracción de la arquitectura ANSI facilitan el diseño de una base de datos, al proporcionar nuevos nuevos instru instrume mento ntos s que ayudan ayudan a la estruc estructur turació ación, n, paso paso a paso, del mundo real, hasta llegar a la base de datos física
Un Mode Modelo lo de Dato Datos s (MD) (MD) es un conj conjun unto to de conc concep epto tos s que que perm permit iten en desc descri ribi bir, r, a dist distin into tos s nive nivele les s de abst abstra racc cció ión, n, la estr estruc uctu tura ra de una una base base de dato datos, s, a la cual cual deno denom minam inamos os esquema El modelo de datos(sea lógico o físico) es el instrumento que se aplica a los datos para obtener un esquema. Las propiedades del MD son de dos tipos: 1. Estát Estátic icas as,, relat relativa ivame ment nte e inva invaria riant ntes es en el tiemp tiempo, o, que que responden a lo que se suele entender como estructuracompuesta estructuracompuesta a su vez en 1. Eleme Elemento ntos s permit permitido idos s 2. Elem lementos no permitid itido os o restricc iccion iones. Las restricciones impuestas por el modelo son rest restric ricci cion ones es inhe inhere rent ntes es y las las que que resp respon onde den n al dese deseo o de que que el sist sistem ema a de info inform rmac ació ión n sea sea un reflejo lo más fiel posible del mundo real son las restricciones de integridad o semánticas 2. Dinámi Dinámicas cas.. Son Son las operac operacion iones es que se aplica aplican n a los datos datos o valores almacenados en las estructuras, las cuales varían en el tran transc scur urso so del del tie tiempo al aplic plicár árse sele les s dicha ichas s operaciones
Modelos conceptuales, lógicos y físicos 1. Mode Modelo lo conc concep eptu tual: al: Utiliz Utilizad ados os en la elab elabor orac ació ión n del del esqu esquem ema a con concept ceptu ual, al, los los cuale uales s busc buscan an optim ptimiz izar ar los los recur ecurso sos s de información de la organización en su conjunto
Modelo lógico: Utilizado para la construcción de los esquemas externos (de cada usuario en particular)Implementado particular)Implementados s en SGBD: Jerárquico, Codasyl, Relacional 3. Mode Modelo lo físi físico co,, que que sirv sirve en para para cons constr trui uirr el esqu esquem ema a físi físico co o interno (eficiencia de los recursos informáticos 2.
Formateada de la siguiente manera:
El otro enlace nos lleva a la siguiente información: 1. Modelo Modelo Entidad Entidad-Re -Relaci lación ón.. Los modelos modelos de datos datos sopor soportad tados os por los SGBD no suelen ofrecer, dado su bajo nivel de abstracción, los mecanismos suficientes para captar la semántica del mundo real real,, por por lo que que surg surgen en model odelos os conc concep eptu tual ales es,, más más rico ricos s semánticamente, que facilitan la labor del diseñador ayudándole en su comunicación con el usuario Entre estos modelos de datos semánt semántico icos, s, el modelo modelo entidad entidad-re -relac lación ión,, es el de más más amplia amplia aceptación y al que se le suele dar soporte en la mayoría de las herramientas CASE 2. Presentació Presentación n e historia. historia. El modelo Entidad Entidad-Relac -Relación, ión, tal como como fue propu ropue esto sto por por Chen, hen, no consid nside erab raba la part parte e diná dinám mica, ica, definiendo únicamente la parte estructural y semántica, así como la forma de representación de los datos. Posteriormente, otros auto autore res s com complet pletan an el mode modelo lo,, prop propon onie iend ndo o leng lengua uaje jes s de manipulación como CLEAR o CABLE. De todos modos, al no estar soportado por los SGBD actuales, la parte dinámica del mismo carece de interés desde el punto de vista práctico 3. Eleme Elemento ntos s del modelo modelo E/R
1. Entidad Entidad.. Entida Entidad d es "una person persona, a, lugar, cosa, cosa, concepto concepto o suce suceso so,, real real o abst abstra ract cto, o, de inte interé rés s para para la empr empre esa (ANS (ANSI,19 I,1977) 77).. Es aquel aquel objet objeto o acerca acerca del cual cual querem queremos os almacenar información en la base de datos Llamaremos tipo de entidad a la estructura genérica y ocurrencia de entidad a cada una de las realizaciones concretas de ese tipo de entidad. La representación gráfica de un tipo de entidad es un rectángulo etiuetado con el nombre del tipo de enti entida dad. d. Exis Existe ten n entid entidad ades es Regu Regula lare res s y Débi Débiles les.. La existencia existencia de estas últimas últimas dependen dependen de la ocurrencia ocurrencia del tipo tipo de enti entida dad d regu regular lar del del cual cual depe depend nde e Por Por ejem ejemplo plo,, ejemplar de libro. Se representa con un rectángulo doble 2. Relac Relació ión n o Inte Interr rrel elac ació ión. n. Asoc Asociac iació ión n o corr corres espo pond nden encia cia entre entidades. Se representa como un rombo etiquetado con el nombre de la interrelación. Sus características son: 1. Nomb Nombre, re, por el que identi identifica ficamo mos s d eform eforma a única el tipo de interrelación 2. Grado, Grado, número número de tipos tipos de entidad entidad que particip participan an en un tipo de relación Grado dos: Binarias, De grado 3, terciarias 3. Tipo ipo de correspondencia. ia. Número máximo imo de ocur ocurre renc ncia ias s de un tipo tipo de enti entida dad d que que pued pueden en inte interv rven enir ir por por cada cada ocur ocurre renc ncia ia del del otro otro tipo tipo de entidad asociado en la relación 3. Atribut Atributos. os. Es cada una d elas caracter característi ísticas cas que tiene tiene un tipo tipo de enti entida dad d o de relac relació ión. n. El conj conjun unto to de posi posible bles s valores que puede tomar un atributo recibe el nombre de domi dominio nio.. El domi dominio nio tiene tiene un nomb nombre re y una una exis existe tenc ncia ia propia con independencia de cualquier entidad o atributo. El atribu atributo to identif identificad icador or princi principal pal se repres represent enta a con un círculo negro. El resto con círculos en blanco 4. Restriccio Restricciones. nes. Las restr restriccion icciones es pueden pueden limitar limitar los tipos tipos de estructuras que es posible representar mediante un cierto modelo de datos(restricciones inherentes) o bien permiten restringir los valores que pueden tomar ciertos atributos o imponen limitaciones al tipo de correspondencia u otras características de las relaciones (restricciones semánticas o de comportamiento) comportamiento) 4. Semántica Semántica de las interrelacio interrelaciones. nes. 1. Cardin Cardinalid alidade ades s de un tipo tipo de entidad. entidad. Las cardinal cardinalida idades des máxima y mínima de los tipos de entidad participantes en un tipo de relación como el númeor máximo y mínimo de ocur ocurre renc ncia ias s de un tipo tipo de enti entida dad d que que pued pueden en estar star relacionadas con una ocurrencia del otro u otros tipos de entida idad que particip icipa an en el tipo ipo de relac lación ión. Su representación gráfica es una etiqueta del tipo (0,1), (1,1), (0,n), o (1,n) 2. Dependenc Dependencia ia en existenc existencia ia y en identifica identificación. ción. Se dice que que una depend dependenc encia ia en existen existencia cia cuando cuando en una relació relación n está vinculado un tipo de entidad regular con uno débil, de
forma que las ocurrencias dle tipo de entidad dependiente (tipo de entidad débil) no pueden existir sin la existencia de la entida idad regulr de la que dependen. Hay una depe depend nden enci cia a en iden identi tific ficac ació ión n cuan cuando do,, adem además ás de la depend dependenc encia ia en existe existenci ncia, a, las ocurre ocurrenci ncias as d el entida entidad d débil no se pueden identificar sólo mediante sus propios atri atribu buto tos, s, sino sino que que se tien tiene e que que añad añadir ir la clav clave e de la ocurrencia de la entidad regular de la cual dependen 5. Gene enerali raliz zació ación n y here herenc ncia ia.. La gen generali raliz zació ación n es el tipo tipo de rela relaci ción ón que que exis existe te entr entre e un tipo tipo de enti entida dad d y los los tipo tipos s de entidad más específicos que dependen de él. En el mundo real es mu habitual la descomposición de un tipo de entidad, creándose de esta forma una jerarquía. La abstracción correspondiente a un supertipo del que dependen varios subtipos se denomina " ESUN". una de las características más importantes de la jerarquía es la here herenc ncia ia,, por por cual cual los los atri atribu buto tos s de un supe supert rtip ipo o son son heredados por los subtipos 6. Bibl Biblio iogr graf afía ía Fund Fundam amen ento tos s y Mode Modelo los s de Base Bases s de Dato atos de Adoración de Miguel y Mario Piattini Formateada de la siguiente manera:
En esta estas s dos dos pági página nas s web web se desc descri ribe ben n los los eleme element ntos os del del mode modelo lo Entidad-Relación. De todas formas, el sitio es muy esquemático y querríamos mejorarlo – por ejemplo, incluyendo lo que es una relación reflexiva, una relación ISA, o explicando los conceptos de cardinalidad máxima y mínima Así mismo, podría ser interesante realizar dos enlaces más en la página de inicio, uno que lleve a una página página explicando explicando un ejemplo ejemplo concreto concreto de modelo Entidad-Relación, y otra que explique las reglas del paso a tablas desde desde ese mismo mismo modelo modelo anterior. anterior.
El último enlace será uno que nos lleve a una página que explique el paso del modelo relacional al modelo jerárquico especificado en un documento XML.. Realizar un documento XML válido con el DTD resultante y mostrar el resultado de la validación en la página. Fin del ejercicio De FLWOR a HTML
Queremos crear una consulta XQuery que tras ejecutarla nos devuelva los los resu resulta ltado dos s en form format ato o HTML HTML.. Pode Podemo mos s unir unir dent dentro ro de XQue XQuery ry etiquetas HTML y expresiones o clausulas FLWOR. La única limitación es que cuando se fusionan en una consulta, indiquemos al motor de consultas qué parte es la que tiene que procesar como consulta. Para ello indicaremos entre llaves (“{“,”}”) que parte es FWLOR. La mejor manera es verlo a través de ejemplos realizados con XQuery Ejemplo 1 Queremos una consulta XQuery cuyo resultado sea una tabla HTML que nos nos mues muestr tre e el nomb nombre re del del baile baile,, el prof profes esor or que que lo impa impart rte e y el número de plazas ofertadas
Bailes ofertados
Nombre | Nombre baile | Nombre Profesor | Plazas ofertadas |
{ for $baile in doc("Bailes")//Bailes/baile let $nombre:=$baile/nombre $nombre:=$baile/nombre let $profesor :=$baile/profesor let $plazas :=$baile/plazas return {data($nombre)} | {data($profesor)} | {data($plazas)} |
}
Tal y como se aprecia en la imagen anterior, el resultado es:
Bailes ofertados
Nombre | Nombre baile | Nombre | Nombre Profesor | Plazas ofertadas |
Tango | Roberto | Roberto Garcia |
20 |
Cha-cha-cha | Miriam Gutiérrez | 18 |
Rock | Laura Mendiola | 15 |
Merengue | Jesus Lozano | 12 |
Salsa | Jesus Lozano | 10 |
Pasodoble | Miriam Gutierrez | 8 |
Este resultado es es código HTML, si hacemos clic clic en el botón de guardar que acompaña su recuadro podemos podemos guardarlo con el formato HTML y después lo abriremos con un navegador a ver si ha realizado bien su trabajo:
Una vez realizado esto, vamos a la carpeta en la que hemos guardado nuestro documento “Bailes.html” y le abrimos con un navegador, por ejemplo, el Mozilla Firefox El resultado es el siguiente:
Ejemplo 2.
Ahora queremos realizar la misma consulta anterior pero estableciendo la condición de ser bailes con cuota trimestral. Además se ordenará, de menor a mayor, los bailes según el número de plazas disponible. La consult consulta a XQuer XQuery y es exact exactame amente nte igual igual que antes antes pero pero cambia cambiando ndo únicamente la parte FLWOR
Bailes ofertados
Nombre | Nombre baile | Nombre Profesor | Plazas ofertadas |
{ for $baile in doc("Bailes")//Bailes/baile let $nombre:=$baile/nombre $nombre:=$baile/nombre let $profesor :=$baile/profesor let $plazas :=$baile/plazas where $baile/precio[@cuota = "trimestral"] order by $baile/plazas return {data($nombre)} | {data($profesor)} | {data($plazas)} |
}
El resultado es:
Bailes ofertados
Nombre | Nombre baile | Nombre | Nombre Profesor | Plazas ofertadas |
Merengue | Jesus Lozano | 12 |
Cha-cha-cha | Miriam Gutiérrez | 18 |
Mediante el mismo proceso anterior, guardándolo como “Bailes2.html”, y abriéndolo con el navegador Firefox, -o cualquier otro navegadortenemos:
Inserción Se quiere añadir un nuevo baile en la base de datos. Los datos son Nombre: foxtrot Precio: 22 dólares Pago: mensual Plazas: 12 Comienzo: 01/01/2012 Fin:31/07/2012
-
Profesor: Freddy Astaire Sala 3
La inserción se realiza de la siguiente manera: insert node
Foxtrot 22 moneda="dolares">22 12 01/01/2012 31/07/2012 Freddy Freddy Astaire Astaire 3 before doc("Bailes.xml")//Bailes/baile[1] Tras Tras ejec ejecut utar arlo lo con con el botó botón n verd verde e que que hay hay deba debajo jo del del edito editor, r, el resultado sería:
Este código inserta el nodo indicado en la base de datos “Bailes.xml”. El nodo se insertará antes del primer nodo de la base de datos (por la
clau clausu sula la “b “bef efot ote” e” ). Si se quie quiere re inser inserta tarr desp despué ués, s, sólo sólo camb cambia iaría ría “before” por “after” . Ambas utilizan como referencia al primer nodo (“[1]”) Una sentencia equivalente para insertar al principio de la base de datos, sin tener que referenciar a nodo alguno de la base de datos, sería sustituyendo la última línea por esta otra: as first into doc(“Bailes.xml”)//Bailes Si por el contrario, lo que se desea es insertar al final de la base de dato datos, s, sin sin refe refere renc ncia iarr a ningú ningún n nodo nodo,, se real realiza izarí ría a de la sigu siguien iente te manera as las tinto doc(“bailes.xml”)//Bailes Reemplazo / Actualización
En la inserción anterior se cometieron dos errores: 1. El nombre nombre correcto correcto era era “Angel “Angel Correl Correllada” lada” 2. El númer número o de plazas realmente realmente eran 14 Si en la inserción anterior se realizó antes del primer nodo de la base de datos, entonces el elemento insertado será ahora el primero. Se cambiarán esos datos de dos maneras distintas. Mediante la modificación del valor del nodo Mediante el reemplazo del nodo completo La modificación se realizaría de la siguiente manera: replace replace value of node doc("Bailes doc("Bailes.xml" .xml")//Ba )//Bailes/b iles/baile[1] aile[1]/pro /profesor fesor with "Angel Correlada" Cuyo resultado, tras ejecutar, es el siguiente:
Ahora Ahor a vamo vamos s a reem reempl plaz azar ar el núme número ro de plaz plazas as,, pero pero vamo vamos s a reemplazar el elemento entero, no solo el valor del nodo repl replac ace e node node doc doc("Ba ("Bail ile es.xm s.xml" l")/ )//B /Bai aile les/ s/ba bail ile e[1] [1]/pla /plaz zas
14 Cuya salida es la siguiente:
with ith
Las dos modificaciones pueden realizarse a la vez separándolas por una coma “,”. En el caso de no saber en qué posición de la base de datos se ha realizado la inserción, se podría tener un problema de actu actual aliz izar ar erró erróne neam amen ente te la tupl tupla a inco incorr rrec ecta ta.. Para Para evei eveita tarr este este prob problem lema, a, lo más comú común n es reali realiza zarr la modif modific icac ació ión n media mediant nte e la utilización del identificador del baile (En este caso id=7) replace value of node doc(“Bailes.xml”)//Bailes/baile[@id=7]/profesor with ”Angel Correlada” , Replace node
Doc(“Bailes.xml”//Bailes/baile[@id=7]/plazas with
14 14 Borrado:
delete node doc("Bailes.xml")//Bailes/baile[@id= doc("Bailes.xml")//Bailes/baile[@id=7] 7]
El resultado, tras hacer clic en el botón verde es:
Ejercicios:
A partir del siguiente si guiente documento Libros.xml (#PCDATA)>
FechaNacimiento)> (#PCDATA)> ]>
1 Don Quijote de la Mancha Juan de la Cuesta 3 9788466745840 1 Miguel de Cervantes Saavedra Saavedra 19/09/1547 Española Se pide: Cargarlo en la base de datos, tal y como aparece en la siguiente imagen:
Introducir unos nueve nodos más, cada uno de los siguientes al final de la base de datos, tratando de automatizarlo lo más posible.
Solución para la inserción de otro nodo:
insert node
2 La celestina Maxtor 1 9788471664938 320 2 Fernando de Rojas /01/01/1470 Española as last into doc ("Libros.xml")//Libros Antes se me ha olvidado incluir el número de páginas en el primer nodo, tratamos de resolverlo ahora: insert node
176176 aginas> into doc ("Libros.xml")//Libros/libro[1] El resultado final debe ser el siguiente:
1 Don Quijote de la Mancha Juan de la Cuesta 3 9788466745840 1 Miguel de Cervantes Saavedra Saavedra 19/09/1547 Española 176 2
La celestina Maxtor 1 9788471664938 320 2 Fernando de Rojas /01/01/1470 Española 3 La brujula interior Urano 1 978849587910 174 3 Alex Rovira Rovira Celma 01/03/1969/ Española 4 Polvo eres II: Muertes estelares de la humanidad La esfera de los libros li bros 1 9788499700403 412 4 Nieves Concostrina 01/03/1961/ Española
5 La huella de un beso Punto de lectura 1 9788466324809 272 5 Daniel Glattauer 02/04/1960/ Austriaca 6 La escuela de ingredientes esenciales Suma 1 9788483651469 400 6 Erica Bauermeister 25/05/1959 Estadounidense 7 Las viudas de Eastwick Tusquets Editores 1 9788483833209 400 7 John Updike 28/7/1932 Estadounidense
8 La cúpula Plaza & Janés Editores 1 9788401337529 1136 8 Stephen King 21/09/1947 Estadounidense 9 En mares salvajes: Un viaje al ártico Plaza & Janés Editores 1 9788401347542 448 9 Javier Reverte 01/01/1944 Española 10 Las recetas de Dukan Dukan RBA Libros 1 9788492981380 448 10 Pierre Dukan 02/09/1934 Francesa
Sobre este documento: Real Realiza izarr un una a cons consul ulta ta XQue XQuery ry con con expr expres esio ione nes s FLWO FLWOR R qu que e muestre todos los libros l ibros almacenados:
for $libro in doc("Libros.xml")//Libros/libro return $libro Real Realiza izarr un una a cons consul ulta ta XQue XQuery ry con con expr expres esio ione nes s FLWO FLWOR R qu que e muestre todos los libros almacenados con más de 500 páginas
for $libro in $libro/NumPaginas>500 return $libro El resultado es el siguiente:
doc("Libros.xml")//Libros/libro
where
Realiza Realizarr una consul consulta ta XQue XQuery ry con expre expresio siones nes FLWOR FLWOR cuyo cuyo resu result ltad ado o sea sea un una a tabl tabla a HTML HTML con con todo todos s los los libr libro os de la biblioteca
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" charset=UTF-8" />
Libros en la biblioteca
Código | Código libro | Título | Editorial | Edición | ISBN | Número Páginas | Autor |
{for $libro in doc("Libros.xml")//Libros/libro let $cod_libro :=$libro/Cod_Libro let $titulo := $libro/Titulo let $editorial := $libro/Editorial let $edicion := $libro/Edicion let $isbn := $libro/ISBN let $num_paginas := $libro/NumPag $li bro/NumPaginas inas let $autores := $libro/Autores return {data($cod_libro)} | {data($titulo)} | {data($editorial)} | {data($edicion)} | {data($isbn)} | {data($num_paginas)} | {for $autor in $autores//autor return {data($autor/Nombre)} {data($autor/Apellidos)} {data($autor/FechaNacimiento)} {data($autor/Nacionalidad)} | }
}
Cuyo resultado es <meta <meta http-e http-equi quiv= v="Co "Conte ntent-T nt-Type ype"" charset=UTF-8"/>
Libros en la biblioteca
conte content= nt="te "text/ xt/htm html; l;
Código | Código libro | Título | Editorial | Edición | ISBN | Número | Número Páginas | Autor |
1 | Don | Don Quijote de la Mancha | Juan de la Cuesta | 3 | 9788466745840 | 176 | Mig Miguel uel r/>de de Cerva Cervante ntes s Saavedra 19/09/1547 Saavedra 19/09/1547 Española Española |
2 | La celestina | Maxtor | 1 | 9788471664938 | 320 | Fernando de Rojas /01/01/1470 Rojas /01/01/1470 Española Española |
3 | La brujula interior | Urano | 1 | 978849587910 | 174 | Alex Rovira Celma 01/03/1969/ Española |
4 | Polvo eres II: Muertes estelares de la humanidad | La esfera de los libros | 1 | 9788499700403 |
412 | Nieves Concostrina< Nieves Concostrina 01/03/1961/< br/>01/03/1961/ Española br/>Española |
5 | La huella de un beso | Punto de lectura | 1 | 9788466324809 | 272 | Daniel GlattauerDaniel Glattauer 02/04/1960/ r/>02/04/1960/ Austriaca |
6 | La escuela de ingredientes esenciales | Suma | 1 | 9788483651469 | 400 | Erica Bauerme Erica Bauermeister 25/05/1959 ister 25/05/1959 Estadou Estadounid nid ense |
7 | Las viudas de Eastwick | Tusquets | Tusquets Editores | 1 | 9788483833209 | 400 | John Updike John Updike 28/7/1932 E 28/7/1932 Estadounidense |
8 | La cúpula | Plaza & Janés Editores | 1 | 9788401337529 | 1136 |
Stephen KingStephen King 21/09/1947< r/>21/09/1947 Estadounidense br/>Estadounidense |
9 | En mares salvajes: Un viaje al ártico | Plaza & Janés Editores | 1 | 9788401347542 | 448 | Javier Reverte< Javier Reverte 01/01/1944< br/>01/01/1944 Española br/>Española |
10 | Las recetas de Dukan | RBA Libros | 1 | 9788492981380 | 448 | Pierre Dukan< Pierre Dukan 02/09/1934< br/>02/09/1934 FrancesaFrancesa r/> |
Que, guardada con formato HTML nos queda de la siguiente manera:
Muy importante mantener los elementos de codificación. Realiza Realizarr una consul consulta ta XQue XQuery ry con expre expresio siones nes FLWOR FLWOR cuyo cuyo resu result ltad ado o sea sea un una a tabl tabla a HTML HTML con con todo todos s los los libr libro os de la biblioteca que tengan más de 500 páginas
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" charset=UTF-8" />
Libros en la biblioteca
Código | Código libro | Título | Editorial | Edición | ISBN | Número Páginas | Autor |
{for $libro in doc("Libros.xml")//Libros/libro let $cod_libro :=$libro/Cod_Libro let $titulo := $libro/Titulo let $editorial := $libro/Editorial let $edicion := $libro/Edicion let $isbn := $libro/ISBN let $num_paginas := $libro/NumPag $li bro/NumPaginas inas let $autores := $libro/Autores where $num_paginas>500 $num_paginas>500 return {data($cod_libro)} | {data($titulo)} | {data($editorial)} | {data($edicion)} | {data($isbn)} | {data($num_paginas)} | {for $autor in $autores//autor return {data($autor/Nombre)} {data($autor/Apellidos)} {data($autor/FechaNacimiento)} {data($autor/Nacionalidad)} | }
}
Que nos da como resultado:
Realizar una inserción de un nuevo libro con XQuery (con algún dato erróneo) Consideramos lo siguiente insert node
11 XXI S.A Ediciones B 1 9788466647410 216 11 Francisco Francisco Miguel Miguel Espinosa 08/11/1990 Española as last into doc ("Libros.xml")//Libros Produce el siguiente resultado:
Realizar una modificación del libro anterior corrigiendo algún dato considerado como erróneo
Consideramos que no es la primera edición sino la tercera: replace value of node doc("Libros.xml")//Libros/libro[Cod_Libro=11]/Edicion with "3", que produce como resultado:
Realizar el borrado del último libro insertado en la base de datos de XQuery
delete node doc(“Libros.xml”)//Libros/libro[Cod_Libro=11] doc(“Libros.xml”)//Libros/libro[Cod_Libro=11] cuyo resultado final es el siguiente:
Saludos, Alfredo