Está en la página 1de 45
Bases de datos xml. Caso practico ‘Ala empresa BK Programacién no dejan de legar nuevos proyectos, esta claro que sus productos fnales convencen a sus clientes y éstos estén bastante cantantos con ellos ‘Ana ests oxgullosa de haber paricipad y aportada eu granito de arena en el desarrollo y mantenimionto de cferentes aplicaciones, algunas bastante complejas. Este fin do semana se ha tomado un respi. Sabe que ol lunes comienza con algo nuevo. Debe ayudar @ Maria y Juan en la tarea de compatblizar diferentes formatos de datos que intercambian varias academias de Inglés de una misma firma Las academias gestionan la informacién relatva a sus cursos, alumnos, profesores, distribuidores de material, vos de lecura,articulos, spuntes, examenes, ele. con programas diferentes y basados tambien ten sistemas de bases de datos diferentes, Hasta ahora, las academias han hecho uso de XML para intercambiar los datos entre sus sistomas, pero cada vez surge algan problema nuevo, sobre todo con el almacenamiento, consulta y recuperacién de cierios dacumenios de texto. Por tanto, han Aecidido acudir a BK Programacén para buscar la mejor solucién. No les importa empezar desde cero y, si es necesaro,ullzar luna base de datos nativa XML, taly como les ha sugerdo Ada en su primera entrevista, ‘Ana apura la tarde del domingo pues esa misma noche va @ comenzar su nueva aventura, irepasar XML y las tecnolaglas relacionadas! Ana, es muy profesional y no deja para manana lo que puede hacer hoy. Materiales formativos de FP Online propiedad del Ministerio de Educacién y Formacién Profesional. ‘Aviso Legal 1.- Introduccion. ‘Atendiendo al nivel de estucturacin, pademos decir que existen tres tpos de datos: Datos estructurados. Son los que tanen un formato esticto. Toda la informacién recogida se ajusta mismo formato, coma por ejemplo: los datos tabuladas on fils y columnas de wna tabla ~ Dates desestructurados. No ienen ninguna estructura, como un documento de texio © un archivo de video. ¥ Datos semiestructurades. Tienen cierta estructura, pero no toda la informacion recogida tiene la misma forma, y ademas puede ir varlando de manera dinamca, Las bases de datos traccionales, como las Bases de Datos Relacionales (__ SDR) son apropiadas para almacenar datos estructurados, pero la cuostén es que, en la actualidad, son muchas las stuaciones en las que lferesa almacenar grandes valimenes de datos no estructurados, © incluso integrarlos con datas esinicturados, Pero ,cbmo hacerlo? Aqui es donde ena en juego XML (eXtensible Markup Language. XML define un conjunto de reglas semanticas que permiten la organizacion de informacién de distintas maneras. Es un esténdar detnise por eLWSC y ofrece muchas vertajas, entre elas: ‘Es un longuaje bien formado, No puede haber etiquetas sin fnalizar. ~ Extensible. Permite amplar l lenguaje mediante nuevas stiquetas la detnicion de longuajes nuevos. ~ Fact do loo, ~ Autodescriptve. La estructura de la informacién de alguna manera est definia dentro del mismo documento ~ invercambiable. Portable entre distntas arqitecturas. ~ Para su lectura 8 inlerpretacién es necesario un arse, y hay productos y versiones libres. Debide fundamentaimente a estas venlajas y a su sencilez, el estindar XML ha sido ampliamente aceptado y adoptado para el almacenamiente Intereambio de Informacién, y como consecuencia de este uso se ha creado la necesidad de almacenar dicha informacion, Y zeémo so almacena ta informacién en formato XML de cara a su recuperacién y consulta? Existon varias aproximaciones para organizar y almacenar informacén XML que fundamentalmante van a depender c@ los dferertes archivos 0 documentos XML que nos podemos fencantrar (cenrados an datos y cenados en texto}, ero en defntva, lo que se busca es una estrategia que permita almacenar y recuperar datos poco estructuradas con la eficencia de las Bases de Datos convencionales,y es por alo que surgen las Bases de Datos XML. Citas para pensar 1 exporimentador que no sabe lo que esté buscando no comprendard lo que encuentra (Claude Bomard Para saber mas En al siguiente enlace puedes consular diferentes tecrologias basadas en XML, ‘Tecnologias XML 1.1.- Documentos XML centrados en datos y en texto. Como te hemos comentado antes, los tipos de documentos XML que nos podemos encontrar sor: ¥ Documentos centrados on datos, con las siguientes caracterisicas: ~ Muchos elementos de datos de pequefo tamafi. © Con estructura regular y bien defnda © Datos muy estructurados 0 semi-osructurados. © Dirigdas a utiizacién automa (por maquinas), © Ejemplos: Facturas, Pedidos Ficha de alumno. ¥ Documentos centrados en texto, contenido o documentos con las siguientes caracterisicas: ~ Pooos elementos. Con grandes cantdades de texto. © Con estructuras impredocibles an tamafo y contenido, © Dalos poco estructurados, © Ofiontados a sor intorprotadas por humanos, © Enfocados a sistemas documertales y de gestion de contenidos, © Ejempos: Libros, Informes, Memorias, Artcules biblogrticos Ena siguiente imagen ampliable puedes apreciar las caractersticasincicadas para estos dos tpos de documentos, Datos Texto En ol siguiente enlace tienes un plo de cada pe de documento, ‘Ejamplo de documento cantado en datos y dacumento cantvado en texto, eve, Para saber mas Te proponemos el siguiente enlace para repasar el significado de documento XML bien formado, Documento XML bien formado, 1.2.- Opciones de almacenamiento. Para almacenar documentos XML tenemos las siguientes opciones: Almacenamionto directo del fichero. Es una opcién pobre ya que las operaciones que podemos hacer sobre ellos Son limitadas, las ‘que proporcione el sstema de archivos. ~ Almacenar e! documento en una base de datos existente (base de datos relaconal,orientada a objelos u objetc-relacional). En este ‘6350 existen las siguientes posibiidades: Directamente como una columna tipo binario grande (BLOB) dentro de una tabla. En este caso so almacona el documento intacto. Es una buena estrategia si el documento XML contiene contenido estatica, que solo sera modificado cuando se reomplaza el documento completo. Almacenar el dacumento complolo en formato de texlo es ‘acl de implamentar dado que no se hecesita-mapeo 0 traduiccln, pero limita las consullas y bisquedas de conten do. ‘Mediante mapeo basado en tablas, o basado en objetos. =r ambos casos hay que realizar una Wransfermacion para ajustarlo a la estuctura do la BD antes de almacenarlo, y normalmente esto conitova prescindir de ciertainformacién, quo suponré que a ‘documenta y au formato na se almacsna y recupera de manera intacta, Ademas, en el caso da documentos centrados en texto, no demos controlar todas las posibles estructuras del documonto, y por tanto realizar un mapeo sobre la base de datos sora practicamente imposible. \/ Almacenar e! documento en una base de datos natlva XML. El documento, tanto si es cantrado on datos como en texto, se almacena ‘yecupera de forma intacta. Como veremos, ser la mejor opcién, sobre todo si el documento esta basado en texto. La siguiente imagen ampliable usta las anteriores opciones de almacenamiento: el oS. = =) En ls actuaidad, cada vez més, | compatible o BD XWL-onabled, Por tanto, podemos hablar de dos tipos de Sistemas © BD XML-compatibles: desglosan un documento XML. en su correspondiente modelo relaional o de objets, © BD XML Nativas: respelan la estructura del documento, permiten hacer consullas sobre dicha estructura y recuperan el documento tay ‘como fue insertado onginalmente Las principales dferencias entre ambos tips de BD XML son ls siguientes: ~ Una BD XML nativa proporciona un modelo de datos propo, mientras que un BD XML-compatible tiene ya un modelo de datos y afiade luna capa de sofware que permite de alguna manera almacenar documentos XML y tecuperar los datos generando nuevos documentos aM. ~ Una BD XML nativa debe manejar todos los tipos de documentos posibles, mientras que una BD XML-compatible solo puede manejar y ‘almacenarlos documentos que encajan dentro del madelo definide para elo. Para saber mas No dejes de visitar Ia pagina de Rounald Bourret, uno de los més importantes investigadores y consutores sobre BD XML. ‘Aunque en inglés, en esta pagina enconlrarés mucha informacion sobre of desarrollo de las bases de datos XML y sus ‘especticaciones, gina de Rounalé Bourret sobre BD XML, 2.- Bases de Datos Nativas XML. Esta mai Caso practico na, Maria na estado hablando con una amiga del gremio. Su amiga leva varios afos trabajando en proyectos con Tecnologias XML y ademas ha asistdo personalmente a algunas conferencias del mism/simo Rounald Bourret, por lo que esta ‘mas que a tanto de lo timo en estas tecnologias. Maria le ha pedido consejo sobre algunas de las bases de datos nativas XML, actualmer ‘en el mercado. Las Bases de Datos nativs XML NXD (Naive XML Databass) aunque exten desde hace afos, en ta . setualidad siguen evelucionando, porlo Que existen cierias diferencias ene los productos de este to we BD Nativa poemos enconvar en el mercado Lo ques esl baste dacs que una NXD'e BD XML debe cumpir tas siguientes propledades ¥ Define un modelo Iégico de datos XML, establaciondo los elementos que son sigifcatives, de forma ‘quo el documenta XML se pueda alnacenar y recuperar de manera intaca, esto 0s, con Todos Su ‘Componentes. Por tanto, el modelo, camo minimo, debe tener en cuenta: los elemento atrbutos, lexto, secciones CDATA (Character dala}, y preserva el orden en el documento El documento XML os 1a unidad légiea de almacenamlanto, esto es, la unidad minima de almacenamiento, “No tiene ningin modelo do almacenamiento fisico subyacento concrete. Pueden ser construidas sobre bases de datos relacionales,jerarquicas,orlentadas a objtos o bien mediante formatos de almacenamiento propietaris. Lo que realmente cambia en ostas 8D respecto a las convancionales, s el formato que sopertan, ya que, estén especiaizadas en almacenar documentos XML, almacenatlos y recuperaris con todos sus componentes, Otras caracteristicas de las BD Nativas XML. son las siguiontos: Documentos y colecciones. Los dacumentos se puaden agrupar en unidades denominadas colacciones. Indexacion. Permiton la creacién do indices para acelerar las consullas realizadasfrecuentemont. Consultas. Soportan uno © més lenguajes de consulta. Entre ellos, uno de los mas populares es XQuery (XML Query) nico, por el que ser8 reconocide dentro ‘Actualizaciones. Poseen diferentes estrategias para actualzar documentos, entre ellas la mas popular €s Update XQuery Validacién. No siempre se reaiza validacion de documentos, esto es, no necestan un DTD 0 un XML Schoma (WSC) para almacenar ~ Identifcador Unico. cada documento XML se le asocia un identfiesdo documents, basta con que los documentos sean XML ben formados. Soportan wansacclones, accosos concurrentes, contol de accesos y backup como cualquier oto sistema de bases de datos. Y gen qué situaciones puede resultar imprescindible su uso? Fundamentalmente en las siguientes situaciones: \/ Existencia de documentos con anidamientos profundos. ~ lmportancia do prosorva a integridad de los documentos. ~ Frecuentes busquedas de conteiso, Autoevaluacion Sefala ils siguiente afrmacién es verdadera ofalsa Una 80 XML nativa solo puede almacenar documentos XML validos. © Verdadero O Faso Falso Es flso, on a mayoria do las BDs XML nativas basta con que los documentos sean XML bien formades. Para saber mas Consulta el siguiente enlace para recordar o bien famiarizarte con lo que son los DTDs y los esquemas XML. Los DIDs y esquemas XML. 2.1.- Estrategias de almacenamiento. Podemos diferenciar 0 clasficar las BD XML nativas en funcién de tipo de almacenamiento que ullicen, que puode ser: © Almacenamionto basado on texto ~ ‘Almacenamiento basado en el modelo ~ Soluciones desarroladas especticamente para la gestién de documentos XML. En qué consiste el almacenamionto basado en text y basado en modelo? El almacenamiento basado on texto consiste en almacenar el documento XML entero en forma de texto (fchero de texto), y ‘roporcionar alguna funeionalidad de base de datas para acceder a ‘Se suelen aplicar técnicas de compresién para reduerr al espacio de almacenamiento,uiizar indices adicionales para mejorar el acceso ala informacion, y 8e pueden defini sobre BD Vadiconales © sistemas de enoros. Bésicamente existen dos posibidades: © Almacenar ol documento como un binato largo (BLOB) en una base de dates relacional, © mediante un fichero, y proporcionar algunos indices sobre ol documenta que aceleren el acceso ala informacién, © Almaconar ol documento an un almacén adecuado con Indices, soporte para transacciones, et. Elalmacenamiento basado en modelo consiste en defn un modelo de datos légco, como DOM, para la estructura jerérquica de los documertes XML y almaconar el madelo binario del doctimento en un almacén existente 0 bion specifica, En esta caso las posiblidades que exsten son: © Traducir el DOM a tabias elacionales como elementos, atibutos, enidades, et. © Traducir el DOM a objetos en una DOO. © Utilzar un almacén creado especiaimente para esta fnaidad ‘A continuac:én, te indicamos algunos ejemplos de BD XML nativas clasficadas segin su sistema de almacenamiento Sistoma propistario: Xindice, Vituoso, Taino XML Server ~ Sistema felacional:eXist, DBCOM, XOB \ Sistema orieniado a objeios: Ozone, MindSuite XDB. {LY que ventajas proporcionan las 80 XML nativas sobre otros sistemas de almacenamiento? Las principales ventajas son las siguientes: No necesitan mapeos adcionales. “ Conservan laintegrdad de los documentos. ~ Pormiten almacenar documentos heterogéneas. Autoevaluacion Sefala sls siguiente afirmacién es verdadera ofalsa EI almacenamiento basado en modelo supone almacenar el documento como texto en un almacén adecuado con indices y que soporte transacciones, © Verdadero © Falso Falso Es flso, sta posibildad de almacenamiente la contompla fa estategia de amacenamiento basado en text. Para saber mas Para refescar tus conocimientos sobre el modelo de objetos de documentos OOM te recomendamos que viites el siguiente enlace. También oblendras informacion sobre el parser SAX (Simple API for XML} Los modelos DOM. 2.2.- Colecciones y documentos. En general, una 8D XML tiene una estructura jrdrquica organizada en colaciones y documentos XML. La esirtirajerdrquica comionza on un node riz (7), dal qu paren ealeccionesy dacumants. Una coleccién ~ Es un conjunto de documentos agrupades, normalmente, en funcién de la informacién que contsnen. ~ Puede contener otras colecciones, Un documento: © tnformacién XML. ~ Informacsé de otro tipo y entonces se le denomina non-XML data (Datos no-XML) CComparando con una base de datos relaconal oun sistema de archivos: ~ Las colecciones juegan en las bases de datos nativas el papel de las tablas en las DB relacionales,o de un clrectorio en un sistemas de archivos \ Los docimentos juegan el papel de las fas de una tabla de una BD relacional 0 unfchero en un sistema de archivos. ‘Aunque depende de cada implementacién, an muchos casos: ‘Cada coleccién puede toner mas de un DOCTYPE asociado © El elemento ratz del documento XML define a que DOCTYPE estaré asociado el documento, en caso de no poseer ringuno, éste so crea dindmicamente. Esto posibita al almacenamianio de documentos sin formato defini. \ La coleccién también puede tener asociado un Schema con informacsén tanto fisica como logica de la coleccién, La parte fagica define las rolaciones y propledades de los documentos XML y la flsica contiane informacion sobre ol almacenariento e indexacién de los ~/ También se pueden almacenar documentos no-XML, para estos existe un DOCTYPE especial lamado non-XML. Autoevaluacion Seale sila siguiente afirmacién es verdadera ofalsa Una coleccién solo puede almacenar documentos XML. © Verdadera O Falso Falso Es falso, también puede almacenarcolecciones y documentos nor-XML. Citas para pensar el mar, pero el mar seria manos sie fltara una gota, Madre Terosa de Caleuta ‘A voces sentimos que lo que hacemos as tan solo una go 2.3.- Gestores nativos XML comerciales y libres ‘Te indicamos a continuacién algunos ejemplos de gestores nativos XML. clasificados segiin sean de cécigo libre © cadigo propietaria, Las comerciales, goneralmente ofrecen versiones de prueba con limitaciones de Yampa de Uso de funcionalidades. Los bres, a veces tambien offecen dualigad de iene, comercial y lire. Algunos de estos gestores nativos XML son los siguientes: ~ Gestores nativos XML comerciales ode ciao propetario sn ~ TaminoXML Saver, Es un ges. natvo XML de a emorasa SofwareAG. Es un producto comercal de alo rendimientey Ssponbidas, adomés de ser uno Ge los prmros SGED XM navos dponbies Algines de su caraceristicas son in sigaetes Tos documertos 9 alnacenan en unabase de datos propia yno e tansfonman en ote modelo. © Exste un espacio separado para documentos y parades, «Sopra longue de constas XQuery y As para Java, y NET. en oas. ~/ TEXTI de Isasot Las docimentos se almacenan en somata lve, sa ser mapeados perme amacenar documentos sh DT o esquersn © Proporciona inde de acerdo ala propia eta del documentos © Pert titzcin de varios ines af mismo Herp. © Trek APL pra ava, WebDAV, OLE D8 y NET Gestores natives XML libres o de cédigo abort son: ‘eXist Utza un sistema do almacenamiento propio (érboles 8+ y archivos paginados). Se puede ejecutar como un servidor de base de datos independiente, como una boloteca de Java embebida, o en el motor servtet de una apicacion Web. Los documentos ge almacenan en una jerarquia de colecciones, © Permite almacenar documentos sin DTD o esquema, © Soparta el lenguaje de consulta XQuery y sus extensiones, como XUpdale, asi como API para Java. ‘Monge DB. Es un — SGBDNoSQL orientado a documentos de cédigo aberto y escrito en Cr, que en lugar de quardar los datos en {ables lo hace en edicturas de datos BSON (similar a__ JSON) con un esquema dinamo. Para saber mas Puedes consultar una relacién extensa de bases de datos nativas XML, comerciales y libres, en el siguiente enlace: Relacién de BD XML natvas, comerciales y ibres, Sina sabes lo que es un éebol B+, consulta este enlace para conocer estas estructuras de datos: {nfosmaciin sobre Arboles Be Citas para pensar El éxito no se logra sélo con cualdades especiales. Es sobre todo un trabajo de constancia, de método y de corganizacisn| “IP Sergent 3.- Base de datos eXist. Caso practico ‘Juan y Maria estén muy satisfechos con Ana, realmente les est ayudando bastante con sus ‘onocimientos de XML. Ademas, justo ol gosior XML natvo que propuso Ana desde al princisio, #8 uno de los que a Maria le sugvi6 su amiga, Juan fe pregunta a Ana —Has tabajaéo anios on el gostoreXist? Ana lo conlesia Pues... si En caso, hicimos algunas praclcas con esta BBD XML y realmente me gusto, es sencila y estd optimizada para consukas. Ademas tiene una version libre. Alo que Juan le tice —Pues anora es tu momento, seras nuestra profesora estos Drimeros dias, para familiarizamos con eXist Introduccion Xs (o est para abreviar) es un proyecto de software de cbdigo abierto para bases de datos NoSOL. basadas en tecnologia XML. Se tlasiica como un sistema de base de datos orlentado a documentos NoSQL y una base de datos XML nativa (y brinda soporte para documentos XML, JSON , HTML y binarios). A diferencia de la mayoria de los sistemas de gastion de bases de datos felaconales (ROBMS) y las bases de datos NoSQL, eXist-db proporciona XQuery y XSLT como sus lenguajes de consulta y programacién de aplicaciones. ‘#Xistedb fue creado en 2000 por Wotfgang Meler. Las versiones principales lanzadas fueron 1.0 en septiembre de 2008, 2.0 en febrero de 2019, 3.0 en febrara de 2017, 4.0 en febrero de 2018 y6.0.0-RC" en junio de 20°8, Caracteristicas oXist-sb permite a os desarroladores de sofware conservar documentos XML / JSON Binary sin escribir middleware extenso. eXist- sigue ¥ amalia mucnos eslindares XML de WSC , come XQuery eXieLdb también admit interfaces REST para la inlerfaz con formularios web ce tipo AJAX . Las aplicaciones como XForms pueden guardar sus datos usando solo unas pocas lineas de cédigo, La interaz WebDAV para eXisteb permite @ los usuarios “arastrar y sollar” archivos XML direclamente en la base de dalos de eXistdb. eXistdb indoxa Aulomaticamente los documentos utilzando un sistema de indexacién de palabras cla Estindares y tecnologias soportados. @Xist-sb tone soporte para los siguientes estandares y tecnolagias: + XPath -longuajo do ruta XML + XQuery lenguaje de consulta XML + XSLT Transformaciones de lenguaje extensibles de hojas do esto + XSLFO - Objetos de formato XSL + WebDAV Creacién y contol de versiones distrbuidos en la web, + REST- Transferencia de estado representacional (codficacion de URL) + RESTXQ - anotaciones RESTul para XQuery + Xincluge : procesamionta del archivo del lado del seridor (soporte limtado) + XWL-RPC * un prtocalo de llamada a procedimiento remote + XProc - un lenguaje de procesamiento XML Pipeline API de XQuery para Ja Enlace ala pagina oftial de 2XistDB 3.1.- Instalaci6n eXist. Requisitos del sistema Xist-cb se ejecuta en cualquier sistema en ol que se ejecula Java. AS! que todas las versiones recientes de Linux, macOS y Windows estén bien. Se deben cumpli los siguientes requistos: + Almenos Java versién 8 (desde eXist-tb 3.0) + Aproximadamente 200Mb de espaco en disco para la instalacion, 1 Almenos 512Mb de memora para la sjecucion. Instalando eXist-db Los preros pasos para nslalar eXIst-sb son descargar ol instaladory ejecuart: + Descargue el nsialadorsiguiendo el enlace de descarga en la pagina de inicio de eXisidb, Le recomendamos que descargue la citima version eslable. Actualmente la 46.1 Elinstalador es un tinio archiva lamado eXist-b-sotup-(version}ja(gor + Iniia al nstalacdor exist n Mac y Windows, simplomente haga doble ct en ol archivo descargado jar las cstrbuciones de Linux con una inerfaz de escritario grfca (por ejemplo, Ubunt), puede iniciar el instalador haciendo que el archivo jar sea ejecutable, haga cle derecho on él yseleccione la opeién “Abrir con .. ava" « Sies necesario, pledeinciar el nstalador desde laIiea de comandos con al siguiente comando: imple eXistab-selup-3.6.1 ja) Sova ~{ar akist-db-setap-fversion] jor © Para una ullzar mélodos de insialacién avanzada sigue las indicaciones del aiculo de nsialacin avanzada Después de inilar el instalador,siga las instucclones que se deserben a cortinuacién para completar fa instalacén. Le recomendamos que cope las opciones predeterminadas, ya que estén cisefiadas para facilar el uso de exist. Los paneles de dialogo del instalador son los siguientes: Directorio de instalacién: Se Ie pregurtara dénde instalar eXis-db en su disco duro. EI instalador le sugerira un diactorio apropiado, pero si lo desea, puede instalar leXist-Gb en cualquier parte de su sistema, Directorio de datos El directorio de datos es donde eXist-db guarda sus archivos de datos. EI instalador suger mantener los archivos de datos dentro del Girectorio de la aplicacion, pero puede seleccionar una ubieacion diferente silo desea. Contrasefia de administrador y configuracién de memoria: TePack-insalavon of eXst-do Set Admin Password Pease enter a password for user ‘admin the database Seministator: Enter password Retype password Configure the max amount of memory tobe used by est, The minimum memory setng ls S12, but 1024m Is Fecommaried If your machine has enough memory, using 1200m ews the imi on 32 bt systems, Max memory ini: [3024 Configure the amount of memory te reserved for internal ‘aches. as memory above s st to 1024, 1260 5 4 good Small settings may lead fo bal upload indexing performance ache memory in ms: 128 = Step sr10 Brew La Contrasefia de administrador es una contrasefa para la cuenta de administrador de eXistlb, 0 més cominmente, la cuenta de ‘administrador’ Esta cuenta de administrador le pertenece a usted, yciertas funciones clave en eXistadb solo pueden ser relizadas por el administrador. Si bien puede dejar en blanco la contrasena de administrador, le recomendamos que establezca la contrasefa para poder acceder de forma segura a su instalacién de eXistab. Por qué? Tenga en cuenta que mientras eXist-db se estd ejecutando, ottos usuarios pueden acceder @ en su red local (ya sea en su casa U ofc, en una cafeteria o en un tren). Por lo tanto, asegurar su cuenta de administrador on eXist-db os una buena manera do protoger Sus dafos y evita que otros abuson de la cuonta. Configure la cartidad maxima de memoria que estaré disponible para Java (y eXisl-db) y la porcién de la misma que estard reservada para caches intemos, Instalacién del paquete: IzPack lstalltion of Osta 6 Stet the packs you wat insta @° 2 Note: rae packs are rere oe: c 4.71 sources 232 Me + Apps 815 MB (A biDemos 460.57 KB ( btReterences 238,46 KB SM omnooee fsace emo favre sar Bae Total space required 116.06 He ‘tale space 125238 Grrevaus) (nee) (Gove 41. Elpaquete “core” es requerido para ejecutar eXist-ab 2 Ellpaquete “Wuentes” es opcional. La eliminacién de “fuentes* reduce considerablemente el tamafio de la instalacién, pero es mejor Insalar todo a menos que estéprivado de espacio en el disco. 3, El paquele de “apleaciones” le permite seleccionar 0 deselescionar una serie de aplicaciones que se instalarin en eXistdo cuando se Inicie por primera vez. Si eres nuevo en eXist-db, te recomendamos que al menos selecciones "dashboard", “demo", "doc", “eXide" y “undocs". Los necositarés para realizar tus prmeros pasos en el desarali de XQuery. Después de esto, ol instaladorrealzaré una serie de pasos adicionales y pantallas para insalar os archivos configura’ el sistema. Una vez ‘terminado, ya esta listo pare corer Lanzando exist Para lanzar eXistdb en Linux o Windows, seleccione el icano de acceso directo del escrario de Inicio de fa bas entrada del Ment Trico, de datos eXist-db 0 la eXist-cb también se puede ejecutar como un servicio en segundo plano. Para ablener mas informacin, consult el ariculo de insialacisn avanaa ‘Aparece una pantalla de biervenida que muestra el logotipo de eXistto. En el primer arrangue, eXist-db cargaré las aplicaciones que seleccioné en el instaladar. Esto puede levar un tipo y solo se hace una vez. OPUS Gk Owe Stop server Show Too! Window Open dashboard Open exide (Open Java Admin Client Open exist og uit (and stop server) Despuds de una instalacén y lanzamiento extosas, acceda al Panel de eXist-db , a fa administracion central y al canto de aplicaciones de eXsi-db. Sel icono de la bandeja del sistema funcona en su sistema, seleccione abrir cuadro de mandos en el mend {emergente.O simplemente abra un navegador web e ingrase la siguiente URL: ‘parece la siguiente pagina & afte, ns Admin Cae ‘alow Agpeson sdb Oe hs aie Fncion hse ae oe Crrarla base de datos El ciere incorracto de la base de datos puede dafar sus archivos de datos. Siga uno de los siguientes procedimienios para cerrar correctamente eXis-d: + El ment emergente de la bandoja del sistema tine una opcién petener servider. También puede slegir salir (y detener at servider) para corrar oXl-b yl inciador de fa bandoja de sistoma al msm liempo. + Desde a! ‘selaccione ol boldn de apagado + Desde la linea de comandos, ejecute los scripts de apagado bin/shute las credenciales de su cuenta de administrador: sh (Linux / Mac) 0 shutdown bat(DOS / Windows), usando + Desde la Iinea de comandos, ejecue el siguente comando de Java, usando las credenciales de su cuenta cle administrador + Desde el Seleccione coneeién 3.3.- Java Admin Client de eXist. Lo primero que tenemos que hacer para utlizar Java Admin Clant de eXist es dar un usuario y contrasefiay la url del servior de eX‘. Nem do wet nin comtaseta: cone: > inv te conexon La ventana principal nos permite crear colecciones, subir ficheros xml alguna de las colecciones que tenemas creadas, pa creamos y a continuacién hacemos doble cle sobre ola, Las colecciones pueden estar anidadas. La jerarquia de colecciones se almacena en el ichero cottections bx i alacaeccon pate Fichero, Herramientas Conexion Opciones \js@|R Oa Et a) Rear Fropetoso Gro fcomcconer.. fe bo a [gna bs waar sen area fervinentr os oer t subir fcheras a una coleccion ceaeciones ‘roar una coecion ape nep of 7 for be, jenstsra> | Gere de Ravtsvacin de Ht creado earn eNOS. La herramianta de consul ejecutamos. no abre otra ventans | en la que escrbimos consultas sobre todos os documentos de la coleccién activa y las Las herramientas de la barra por orden permite: abrir una consulta almacenada, grabar una consulta en un ‘ichero(podremos ullizarlas en programas java), guardar las resultados en un {ichero, copiar, conta, pogar del porta-papeles compilar la consulta y ejecular la consula area para escribir la consulta coleccion sobre la que se realiza la consulta “ingredtenty seantidess./ cattle cotngresienss | “cingredtente norbre-ajo"> eantidedsSchemthdnd> Pingredierte oe ccantdaars0./candd = 3.4.- Lenguaje de consulta XPath. XPath (xm. rath Language) es un lenguaje que permite constuir expresiones que recorren y pracesan un documento XML, La idea es parecida 8 fas oxorosionas ru lares para seleccionar partes do un tox sin albutos (ptain text). XPath pormito buscar y seloccionartenlenda en ‘vont [a estructura jerarquica del XML. XPath fue creado para su uso en al estandar XSLT, en el que se usa para Seleccionar y examinar [a festructura del documento de entrada de fa vansformacién. XPath fue detirigo por el ongoreo WC. Caractersteas de XPath + Es una sintaxs para defini partes de un documento XML, 1 Use exoresiones de ruta para navegar en documentos XML + Contiene una bibloteca de funciones estindar + Es.un elemento imporiante en XSLT y en XQuery 1 xPalh 3.0 es una recomandacsén de WSC desde Abn de 2074, Tipos de nodos Las partes de un documento XLM se denominan nodos. Existen 7 tipos de nodos diferentes: + Ralz: El nodo raiz 0 nedo documento (root node) no debe confundirse con el elemento raiz. Este es mas bien el nodo padre vital del nto ral, + Elemento (element node) + Atrbuto (attibute node) + Texto (text noce) + Espacio de nombres (namespace node) Insiruccién de procesamienio (processing Instruction node) ‘Comentario (comment rade) ada uno de estos nados puede ser seleccionado con __XPath para su posterior procesamiento en XSL. Los ejes La navegacién dentro de un documento XML a través de XPath tine lugar desde un nodo de contexto, que en las siguientes iustraciones se Fepresontan como SELF". El nodo de contexio os se punto de partda en ol quo so encuentra ol procesador XSLT. Los nombres do los 608 defnen las relaciones de parentesco raspecto al mismo. En las iustraciones se muestran 11 de los 13 ejes disponibles. Junto a los ejes {que presentamos a contnuacién, que permiten la navegacién en un documento, es posible seleccionar atnbutos de un nado o nodes de lespacio de nombres a Vaves de los ses attribute 0 nanespace. Ele self contione el node de contexto J self C Ele chil contiene los nados hijo del nado de context. descendant —— = - ( ) } —— | [ sevF | { co Eleje descendant-r-slf contiene el nod de cantextay los descandientes, descendant-or-self ( ) El je parent contiene ol padre del nodo de contexte parent HO a LJ I —— — { SELF CD - J CIO Eleje ancestor contiene los ancestros del nodo de context, ancestor ( J a) |) ls il 7 } (seur_} ( )( a | Eleje ancestor-o-sel contiene el nado de contexte y cus descencientes ancestor-or-self — [ ) ] | SELF | it Nt Jf J oe (2) S| | | E ojo preceding contene todos los nado que aparecen antes del nodo de contexto,excluyendo los ancestos ee following conten todos los nodes que aparecen despubs del nodo de conteno,exciyendo los descondnlos ( —t preceding ( following ( ( { J ) ) ( J | [_seur | } ( J SS ( ) J —— J _ —— CNC Ne } J J J J El eje preceding-sibling contiene los hermanos precedentes del nodo de contexto. El sje fllowing-sbing contiene los hermanos situados detrds del nado de context. preceding-sibling ; following-sibling Localizacién La localizacién es ta expresién que permite al procesador seleccionar nodos un conjunto de nodes. camino o ruta de locaizacion y puede presentar civersas formas: + con sintaxisabreviada o completa 1 come rula de localzaciénrolava 0 absolute, Sintaxis abreviada o completa En XPath existen dos formas de sintaxis, que en Ia préctica se pueden utiizar de manera combinada. La sintaxs abreviaga se usa hormalmente cuando se trata de nodes y ejes que Son soleccionados can mucha frecuencia, mientras que la sintaxs completa se utliza en {880 de nodos y ejes alos que se accede con menor frecuencia. En los siguentes apartados se uilizaré la sintaxss completa, recurriendo ala Slax abreviada cuando so trate de expresiones mas frecuentes, + Un ejemplo de sintaxis completa + En sintaxis abrevids: En la sintaxis abreviada se prescinde del nombre del eje eaite::y el arbuto se introduce anteponiendo el cardcter @, En los préximos jemplos so ofreceran mas dotallos sobre la sntaxs abreviada, Equlvaloncias ontre sintaxis completa y abroviada [Sintaxis completa _|[Sintaxls abreviada (vita: Fie por efecto. Se puede omit Rutas rolativas y absolutas La ruta de localzacion XPath puede ser relativa o absoluta, Una ruta absolta comienza por el node raz, que el nado situado directamente sobre el elemento rai. Esta aistincion es necesana, ya que desde el elemento ralz no seria posible acceder, por eemplo, a comentarios 0 insrucciones que se encuentran fuera del mismo. Las ruias de localizacion constan de pasos de localizacién separados por Un ejompl: En este caso ge trata de una ruta absoluta que parte del nodo ralz. El nodo ralz se Indlea mediante una barra diagonal. Desde ahi se selecciona el elemento raz . La exprasion gereraré un resultado si el elemento ralz tiene un nodo hijo y éste a su ver Contione un nodo hijo . Los ees se dosinen medante el nomore del wje seguido de dos signos de dos puntos. En el caso dl oe chile puede orrtse la expresion evita. Asi, a ruta de localizacion evropa/pais/nonore equvale a la ruta del ejemplo con sintaxis abreviada. Por el Conta, las ulas de localzacén relavas necesian un node de context, La rula se evaluard desde esta pasicion Gretijonnncipretiie> Ejomplo: De igual forma que en ls ruta absoluta, en este caso se generara un resultado sl el nodo de context tiene un noda hijo , que a su vez see un nado hijo La descricién agul presentada de las rutas relativas es Incompleta. Podrd encontrar més informacién sobre rutas relatvas en leratura ‘specializada sobre XPath Las siguientes son exoresiones XPath con sintaxisabroviadas y extendidas. ,Qué mostarian estas consultas? Filtrar conjuntos de nodos a través de predicados Las exoresiones XPath sien para la seleccion de nodos en un drbol XML. Gracias al fitado de expresiones a través de predicados, es posible usar expresiones XPath para seleccionar grupos de nodos que respondan a crterios mas complejos, defniendo el acceso a los nodos fe una manera mucha mas precisa. Los predicados san expresiones que devualven un resultado boolean (verdadero falso), da manera {que se puede fitrar de nuevo el resuitado del nodo seleccionado a través de la expresién XPath. En caso de que un determiaco nod dentro 4e un conjunte de nados se carresponda con el predicado de la expresién (que se cum la cordcién del misma), éste pasara a formar parte {el resultado, Por el contrano, sila condeién no se cumple, s@ exclu el nado del resultado, De esta forma es posible afinar la busqueda Seniro de un delerminado conjuntoiiial de nodos a Waves de as resticcionas realizadas mediante predicados. Localizacién de diatinos pos de nodos Hasta ahora nos hemos ocupado sobre todo con los nodos elemento, No abstante,exisen otros tpos de nodo que pueden ser seleccionados para su posteror andlis'sy procesamiento. La siguiente labla muestra ejemplos de cémo se reaiza tal sleccion /Rext() En caso de que so qulera acoder al nod de toxo da elemento nombre se debord usarTa prueba de nodo text] Civeccionycmmany FE" 6980 6 QUO 56 quiere acceder al nodo de comentario del elemento dreccion se deberé user la prueba de node one GGraciamoing [SU3® sue" acceder a lodos os pos Ge nodes (con excepcion Ge Tos abulos) se deberd usar la prusba de roc] irecisnsnotany [SIS Ejemplo: Hesrecctn (lca teoseteaet"] La expresién //tireccion salacciona todos los nodas elemento “dirsccien” del dacumento, En el segundo paso se reduce esta selecciin mediante un predicado. Sélo aquellos elementos que tengan un elemento jo “teeatidad’ y que el valor del mismo sea “stuttgart” permanecerdn ena seleccién. Los demas serdn excludes. Es posible, ademas de la comp: predicado. Por ejemplo cin de cadenas, resting la Soleccién mediante la comparacién de olts valores en la expresién de un —_—_—— |Comparacién de cadena lireccion{nonbre="Pepe Lépez"] (Comparacién numérica (mayer) letscolecatiticacion > 31 [Comparacion numérica (menor o igual) _|//eanetoniaafo <= 19991 [Combinacion de "mayor" y "no igual a" __|aiscotaceLiticacion < 21/cancion( auto '= 2000] ‘Ademés de la comparacion de valores, es posible establecer ls coexistencia de otros elementos como eritrio para analzar un conjunto de nodes. [pistaseairecciones(direccion] [Compricba si existe ol elemento hijo “airecein [7astasecirecclones/sirecciontacat) __[Compruoba si existo un atibuto "eat" dentro de "atreccion ‘Alencin: Un predicado sélo comprueba sila condiciones veraderao flea. Se trata de una conversién implicta a un valr booleano. Operadores booleanos en predicados Los precicados pueden contener los operadores booleancs “ [Selecciona todos los elementos “itu ean el valor 4 [rivatateestt que posean un alfbulo "estite™ con el valor “per” y ademas Un localiticacion-4) atrbuto “etsties [reivatoteesti 7]Selecciona todos los elementos “eitute™ que posean un alibulo “estito™ con el valor lcatiticacion> 2) Fealiticacion” cuyo valor sea mayor que 2 © un atributo Prodicados on cascada ‘Ademés del itrado mediante operadores booleanos, es posible restringr la seleccién mediante una dispasicion en serie de predicados. Los predicados en cascada funcionan como una superposicin de fils, En primer lugar se filta Un conjunto de nodos, que sera a su vez el Conjunto de partda para el segundo predicado, etc. 1eecintparato tig sbvrtencta"] En primer lugar se seleccionan todos los elementos seccion. El primer predicado reduce la seleccién a aquellos elementos que tengan un lementa hj “perrate™ EI conjuto resultants se fra de nuovo maciante el segundo predicado, ée manera que sélo quedaran las elementos {que tengan Un atibuto“eipe® con el valor “edvertenea’ Unién de conjuntos de nodos Hasta ahora se ha definido en cada expresién sélo un conjunto de nodes. No obstante, se dan con frecuencia aplicaciones en las que se 20 [Selecciona tados los discas cuyo titulo tenga més de 20 caracteres, |yaiscolstartsneien(interprete, "1 |Solacciona todos fos discos en los que el nombre del intérprete camience conta letra“. Un ejemplo de una funcién muy dtl y usada con mucha frecuencia es “aet(). Esta funcién niega una expresién booleana. A continuacién se ‘ofrece un ejemplo del empleo de esta fancies (caneion)| _ [Selenciona todos los discos que no tengan un element 3.5.- El lenguaje de consultas XQuery. Caso practico ‘Ana esta orgullosa en su nueva faceta de profesora. Juan y Maria la han falictado y estén salsfechos con lainttoduccion que les ha dado sobre Qizx. Ana les dice —Antes de empezar con Ia apicacion en Java, necesitamos familavizaros con el lenguaje de consulias XQuery. ‘Alo que Juan le pregunta —zConoces algo del lngusje?" ‘Ana sontie y conlesta —Pues... En clase vimos también algunas ejemplos senciios de uso, Juan, con cara de asombro dice —Est claro que el nuevo Ciclo Formativo de DAM incorpora muchos temas punteros que yo fo domino. El préximo curso inciré sin falta el estusio de algunos médulos. XQuery es un lenguaje de consulta disefado para exiraer informacion de colecciones de datos expresadas en XML. Entre ia principales caracteristicas de XQuery vamos a deslacar las siguienes: Esta basado en el Lenguaje XPath, (XML Path Language), y se fundamenta on él para realizar la ‘seleccién de informacién y la teracion a través dal canjunto de datos XML. Es un lenguaje declarative, lo que significa que, en vez de ejecutar una lista de comandos como un _—_lenqusie proced mental clasica, cada consulta es una expresion que es evaluada y dewuelve un ‘esuttado, al igual que on SQL. Podemos decir que XQuery ¢ a XML lo mismo que SQL es a las bases de datos relacionales. Sin embargo, aunque XQuery y SQL ppuodan considerarse similares, al modelo de datos sobre ol que se sustenta XQuery es muy distinto del modelo de datos relacional sobre el {ue sustenta SAL ya que XML incluye conceptos come jerarqua y orden de los datos que no estan presentes en el modelo relacional Por ejemplo, a diferencia de SQL. en XQuery es importante y determinants ol orden en que se encusriren los datos, ya que no es lo mismo buscar una eliqueta sesbre dentro de una elgquela autor que fodas las eiquolas nexbre dal decumonto (que pueden estar anidadas deni do tna eiqueta actor 0 fuera) Los principales tipos de expresiones de XQuery son: ' Expresiones XPath, para navegar porlos documentos. © Expresiones Finok (For, Let, mere, Order, Return) para ierar por los elementos de un conjunto de datos. Pero XQuery también acmite: Constructors para generar nodos y contenido dindmico, © Condicionales (rf, THE e1se) para constuielresutado en base a alguna condicién. © Clantiicadores (cone, ni) para chequear la exstencia de algin elemento que cumpla una condi. ~ Lista @ las que se pueden aplicar operadores (untn,..)yfunciones de agregacién (ave, cour...) Para saber mas En este enlace puedes profundizar sobre el lenguale XQuery Especticacion completa de XQuery, El siguiente enlace te propociona a su vez enlaces muchos enlacas interesantes a varias tecnolagias asociadas a XQuery, as como a XQuery. ‘Tecnologias asaciadas con XQuery. 3.5.1.- Modelo de datos. El modelo de datos an que se sustenta XQuery es el modelo de datos do XPath XPath modela un documento XML como una estructura jerérquica en forma de __ aol. El drbol esté formade por _nodos, y hay siete tipos de nodos: raiz, elemento, texto, atriout, espacio de nombres, insiruce‘én dé procesamiento y comentario. Los principales nodos de la estructura jerdrquica 0 on drbol en un documento XML son: (puedes veros en la imagen amplable superior) \/ Nodo raiz 0 /Es el primer nod del documento, mento. Cualquier elemento de un documento XML. Cada nodo elemento pases un padre y puede © no tener jos. En el caso © Node tribute, Un nodo atria, Debes conocer En el siguiente enlace tisnes uns ilstracién grtica mas detallada del paso de un documento XML @ un drbol de nodos XML, asi ‘como la explicacién en detale de cada tipo de nodo. (Aparlado 2 Modelo de datos XPath) Nodios de un bol XML. Autoevaluacion la opcién correcta, Entre ios nodos de la estructura jerdrquica de un érbol XML estén: Nodo etqueta y nado aributo. Nodo padre Nodo hie. oooog Nodo raiz ynodo elemento ‘Es incomeeto, ruoba de nuevo. No es correcto, deberias haber leido mer. No, es8 métode no existe "Muy bien, vamos por buen camino. Soluci6n 1. Incareeto 2 Incorrect 3 Incorrect 44 Opcién correcta 3.5.2.- Caminos de localizacion. {Cémo $2 localiza cada uno de esos nodos en al arbol XML? Mediante una expresién XPath conocida como Gaming o ruta de localizacén, Un eamino de localizacién: ~ Selecciona un eonjunto de nodos relat al nodo de contexte ~ Puede contenerrecursivamente expresiones utlizadas para fitrar conjuntos de nodos. ~ Alser evaluado, devuelve el conjanto de nodos seleccionades por el camino de localzacién. ~ Se construye siguiendo unas reglas de sintaxis y semantic. Hay dos tipos de caminos de localizacion: ¥ Caminos relatives. Son una secuencia de uno 0 mas pasos de localizacién separados por Los pasos se componen de izqulerda a derecha ¥ Caminos absolutes. Consiste en / sequido, opcionalmente, oor un camino de localzaciéncelalvo, Una J por si misma selecciona el nodo ralz del documento que contene al nodo contextual Los siguientes, son algunos ejemplos de caminos de localizacion: ceadre selecciona ls elementos exsdrehijos del nodo contextual ~/ *Selocciona todos los clementos hjos del nado contextual ~ aa Selecciona el atrbuto sto dal nodo contextual © Selecciona todos los atrbutos del nodo contextual ~ eandro(2} Selecciona el primer hijo euadre del nodo contextual ~ eandro(aatoni907]selactiona todos Ios hos eusgre del nodo contextual que tengan un aibuto afe con valor 2867 Debes conocer En al siguiente enlace tenes ejemplos de caminos de lcalizacién en la sintaxis abreviada de XPath (Es el apartado 2.5 Sintaxis abreviada} (Caminos de localzacion XPath, Autoevaluaci6n Sofala sila siguante afirmacién os verdadera o falsa El camino: curso selecciona los elementos curso descendientes del nodo contextual © Verdadera © Faso Falso Es flso,selecciona todos los descencientes curso de ralz del documento, Citas para pensar RRazonar y convencer,jqué sil largo y trabajosol :Sugestonar? iQué fécl, pido y barato! ‘Santiago Ramén y Cajal 3.5.3.- Primeras consultas XQuery. Una consulta XQuery es una expresién que lee una secuencia de datos en XML y devuelve como resultado otra secuencia de datos en XML. dond: Las funciones que se pueden invocar para referimnos a colacciones y documentos dentro de la BD son las siguientes: cotiectton{calra de 2a eslecsén) octeonin de eocnent) ‘Asi por ejemala La consulta cottection(/toks): dovuelve al contenido dela coloccién de ruta absoluta /aeks. ~ La consulta doc(/eapresa-aa): devuelve ol documento express. zal complet. (ots ejemplos de consultas XQuery basadas en expresiones XPath son los siguientes: La consulta cottection /toks)//book/titte dovuelve los nodos tiete de todos ls bros (ook) de la coleccin Books ~ Si se uilizan espacios de nombres 0 namespaces, enfonces la consulla anterior se redactaria de a siguiente forma: declare namespace t = ‘Uta: //iaghzascon/nanespace/Tuterial; collection books) //tsbook/t: title La Bons doc /enpres. sal} //nonbre devusve fodos los Nodos ranbre del SocumeNtO express xa En Ia siguiente enlace encontraras diferentes ejomplos de consullas XQuery: olecutadas directamente sobre una sencila 8D XML donominada ‘arsittes. Necostaras descargar ol archivo: ‘Acceso alos ejemplos. eon Autoevaluacion Sefala if sigulente afkmacién es verdadera o fsa, La oxprosion estteteion(*/Carsas")//cursotoute2]/protesor devuelve los cursos y los profesores con cursos en el aula 2 © Verdadero © Falso Falso Es flso, devuelve todos los profesoros que dan cursos en el aula 2 Para saber mas ‘Te recomendamos que visites el siguiente enlace para profuncizar en el concepto uso de 10s manaspaces Espacios de nombres o nanespaces on! XML 3.5.4.- Expresiones FLWOR. Ls ejemplos de consultas XQuery vists en el apartado anterior, son la manera mas sereila de realizar bisquedas y selecciones de nodos oncretos en una BD XML. Pero existe otra manera mucho mas potente de realizar este trabajo, mediante lo que se denomina consulas 0 ‘expresiones FLIVOR (leo come flower), siondo FLWOR las siglas de For, Let, Whara, Order y Return. ‘Se vata de una exprosién que permite fa unién de variables sobre conjuntos de nodos y la iteracién sobre ol resultado, Las diferentes clausulas de una expresién FLWOR son For. Permit seleccionar los nodos que se quieren consutar, quardéndose su valor en una variable (dentifcador que comienza por $). Al ‘conjurte de valores dela variable so le lama tupla, tet. (opcional). Asocia valores variables. ‘ere (opeional) Permit far los resultados segdn una condlcén, Sraer(opcional) Permite ordenar a secuencia de valores 0 resultados. ‘ature, Genera los valores de salida o devullos En|a siguiente imagen, puedes ver un ejemplo de una consulta (2qulerda) donde aparecen las 5 cléusulas. La consulta dewuelve los nombres els cursos cor 20 plazas, ordenados por nombre de curso (derecha). Una expresién FLOR vincula variables a valores con las cldusulas for y let y ulliza esos vinculos para crear nuevas estructuras de datos XML ‘A continuacién se muestra otro ejemplo de consulta XQuery La siguiente consulta (izquierda) devuelve fos nombres de los cursos con cuota rmensual (derecha). Como cuata es un atriouto del elemento precie,recuerda que se le antecede con un cardcter @. Para saber mas En el siguiente enlace tenes muchos ejemplos de consultas XQuery con expresiones FLWOR, los XQuary con expresiones FLWOR 3.5.5.- XQuery Update Facil ty. Ellonguaje XQuery solo proporciona expresiones para la realizacién de consultas sobre documentos XML, pero no su actualizacion {insercién, medificacion o eliminacién de nodes) XQuery Update| insert delete rename replace Elfunctonamient las eldusulas de XQuery Update os ol siguionte: principio (az first Anta) al final del documento (as Last iat) ¥ fatete, Elmina uno varios nodos del documenta, “replace. Tiono dos funciones: ‘Modiear el valor del nodo Modificar el nodo comaeto ~ rename, Renombra un nado (elemento, atibuto © instruccones de proceso) sin afecar a su contenido, A continuacién te mestramos do smplos sencilos, uno de insert y otro de ~ Eliminar la emprasa de s4-2 on el documento Emprosa.xm:datete empresas} //npress(eise2] “ Insertar el nado. tipoAccesiblefipo al final del documento /autes/outas insert noge tipo doc(iutas/astad-ant)//aula Enel siguiente enlace puedes aos ejemplos de actualizaciones usando XQuery Update: ‘Ejemolos de XQuery Undate Update Facilty es una extensién de XQuery que permite la actuaizacién de documentos mediante las Causulas insert, Permits Ia insercién de uno o varios nodos antes (beore) 0 después (after) del nodo indicado. También se puede inseriar al nto Autoevaluaci Sofia tla siguonte afiemacién os verdaderao fsa, Modiante rename se puede susttulr el valor de un node, © Verdadero © Faso Falso Es flso, rename permite cambiar el nombre a un nodo, no susie su valor. Para saber mas En el siguiente enlace puedes ver un documento tipo resumen con muchos de los aspectos tratados en esta unidad hasta el momento. XML y Bases de Datos. 3.6.- Conexion a base de datos XML. API XML:DB. Caso practico Hla llegado la hora de manejar la base do datos desde Javal —exclama Ana, y afado— {queréis que os indigue cdmo crear colecciones y hadi documentos? ‘Juan contesta —Pus claro Ana, gsabes cual es ol API principal que proporciona este gestor para trabajar con Java? ‘Ana contesta —De memoria no lo recuerdo, pero sf recuerdo que la propia distbucion dispone {de datos de prueba que podemes utlizar en nuestros prmaros slemplos. Maria, que escucha con atencién dice —iPerfetol, vamos a ela Los datos slmacenados en las 8D deben poder ser accesibles desde aplicaciones desarrolisdas en diferentes lengusjes y, por este motivo, los 'SGBD so ven oblgados a facitar interfaces de programacién para los lenguajes de programacion mas ullizados. Asi, los fabricantes de 'SGBD, conocedores de la tecnologia empleada en su producto, faciltan una API para permitir el acceso, desarollada de la manera mas ‘ticienie posible para su producto, le que conlieva la apancién de un problema: la API proporcionada para cada SGBD es propia y diferente de Tas API los otros SGBD y, en consecuencia, las aplicaciones desarroladas quedan ligadas al SGBD ¥ fs programadores tienen que conocer ln montén de API diferentes, tarlas coma nimero de SGBD diferentes deban enlazar ‘Ante la anarqula de API existente para alacar los SGBD de un determinado tipo, euelen aparecerintentas para ostanderizar el mocanisma y proporcionar una aP! estandar. En ol caso de las 8D-XMIL nativas ha habido cos procesos de estancarizacion para el lenguale Java, que nan ade lugar a dos aP! ostindaros: XML: DB (también lmada XAPI) y XQuoryAPI or Java (XQ). 3.6.1.- Introducci6n. Esta API proporciona una interfaz comin para bases de datos nativas o habiltadas para XML y adm y reutlzables I desarrllo de aplicaciones partaies Los componentes basicos empleados por XML: DB API son controladores ,colecciones , recursos y servicios + Los controladores son implementaciones de la interfaz de a base de datos que encapsulan Ia logica de acceso a la base de datos para productos de bases de datos XML especifices. Son proporcionados por el proveedor del producto y deben registarse con el gestor de la base de datos. + Una coleccién os un contenador jerarqulco de recursos y otras subcolocciones. Actualmente, la API define dos recursos diferentes: XNLResource y BinaryResource. An XMLResource representa un documento XMILo un fragmento de documento, seleccionado par una ‘consulta XPath ejecutada previamente + Finalmente, se salictan servicios para tareas especiales, como consular una coleccién can XPath 0 administrar una coleccién. La API XMLDB principalmente se basa on tres paquetes: srtsh.opt [ntorfaces, putabasotanager Interfaces, coltection, contigurabte,satabas, reeptions, ebxception + orgm-api-nodutes: Interfaces, sinarysescurce, ColtectionfanagenantService, Transactionservice, MUResource, XPathoueryservice, HUpdatetueryservice -etterator,RasourceSet, Service, Classes, Errorcoges, Hay vatios ejemplos de XML: DB proporcionados en la pagina de eXIst En el siguiente ejemplo seneilo, se recupera un documento del Servidor eXisty se imprime en la salida esténdar. El programs recibe dos argumentos argfel y arpa), nombre dela colaccién y nombre dal fichero xm, respectivaments args] shale e the rane of the eclectin to access La sould be te haneo* the Fesurce to ren tren the coliection Sate old mintetng args) teous exception Chace cb = clare sarane (eve) cal» Satatasoaragr-gesollecion(mt + ars(0) ‘ot setPropety(Outputeeys.TADET, 0"); ror = mtesource)el-peseecre age): (res = mt) ( ‘Speen ou printing cant no foun pase System tp > ants gros. gntcontest 0} seoae tema ( Try € {CExisthenoece es) frecteurcest); ) catchOmonercption ne) (ve.pint > Sorat} feat 2 mt) hy ( eolscose()>} cothOmbateepton xe) eerste rsco)5) En este ojomplo s0 rogisra ol driver para oXist. A continuacién se obtine el objeto colecién cottection ) del gestor de a base de datos: cenlaes;stosp:Detabaseanager gto eet Lon utebsptnbsorarest el): Una vee ullizado el curso se debe cerar: El método getcattaction() espera una URI con el formato siguiente: eh [Tans -19;//08T-MORESSaeetection Debido a que se puede registrar mis de un contolador de base de datos se requere Ia primera parte del URI (satéb-exist) para determinar {us clase de controlador se debe sar. El objeto do astabacetanager ullizalaidentficacién de la base de datos para selaccionar el controlador correcta de su Ista de convoladores disponses. La parte final del URI identifica Ia ruta a la coleccién y, opcionalmente, la dieccién de host del servidor de base de datos en la red Intomamerte, eXist usa dos imolemantaciones de controladores diferentes: a primera habla con un motor de base de datos remota que usa llamadas XML-RPC, la segunda tene acceso directo a una instancia local de eXist-. La coleccién raiz siempre se identifica con / Pox po: Siomitimos la dreccién de host el criver XML:DB trataré de conectarse a una instancia local de Ia base de datos, Por ejemplo: En este caso, debemos decile al driver que crvea una instancia a la base de dalas si no hay ninguna ereada, Esto se hace poniendo la Propiedad creste-dstabase de la clase Oatabase a true. Para mas informacion del uso embebido de eXist-db consulta. Sooloyment ude El matodo satProperty se uliza para establecer parémetros especifices dela base de datos. La lamada cot.getRescurea() recupora el documento, que se davuelve como un archivo mugereurce. Todos los recursos tlonen un método setcontent(), que dovuelve el contenido del recurso, dependiendo de su tipo, En este caso recuperamos | cantenido como Upo stesna 3.6.2.- Consultas sobre colecciones y documentos. Para consulta el repostrio, podemos usar el esténdar xrathoveryService ala clase xoveryService de aXist . La API XML: OB define iferantes tipos de servicios, ue pueden ser proporcionados oo porla base de datos. El método getservice de clase cottection lama a un servicio si {ela disponible, EI método espera que el nombre del servicio sea el primer paramatro,y su version (como una cadena) como el sogundo, El siguiente @s un ejamplo del uso de XML: OB API para ejecutar una consulta de base de datos: El siguiente ejemplo ejocuta una consulta XPath que se pasa al programa como parémetr, age] shale the rane of the eeisctin to access 1 gs] Soule e the BPath expression to eect Clase ch = cine. sarane (iver) Ontoosenomgeropsterbtatoelgattuse: a = sotstasearagr.gesollecion(Rt + ars(0) onngueyservice tye” OBst-QuneyService}el- on rose setropersysnere", "ye escurceset result = am. iey(arestt)); ereaceltarstor $= raretsgesserstor() (hilecdsrntareesorcee() ¢ seecaengeryervie” tt fy ( U@etReaaunn}ee)-fretersuees();) cteNAMBBExeaption M8) (a.prgtstcktracet > Pty ¢ ‘a1 !e ma) ‘ry (cables ) estenmostaceton ne} (9. proestsktrset}3) > Para ejecutar la consulta, se llama al método service.qvery (xpath), Este método devuelve un mescurceset, que contiene los recursos: fencontrados porla consuila. Resourceset.getiterator () nos da un ilerador sobre estos recursos. Cada recurso conllene un Unio fragmento © valor de documento, seleccionado por la expresion XPath. Intemamente, eXist no dstingue entre expresiones XPath y XQuery, Por Jo tanto, XQueryService se ssigna a ls misma clase de implementacién que XPathQueryService. Sin embargo, proparciona alguios métodos aciionales. Lo mas importante es que cuando se habla ‘on una base de datos integrada, XQueryService permite que la expresion XQuery se compile en una represeniacion intema, que luego se puede reutlzar. Con la complacisn al eddigo de ojomplo anterior se veria como sigue: pie clave xQeryesanple ( sestie string URE “imldbcelsts/locnor:sib/extsanirpe” args] shouts e the rane of the celectin to access 3] Should be the Mury co exact estate vets wainteing args) vous Exception Claes eh = Claes. sarnane (etre) Owtaase databse = (oataese) Leretostncetd dntioaceetorpersy(erese caters "rut" fol = patabastangarpscalectin/uRt + ags(6) Daveryserice 9s = aueryservce) ol -geisericelMQue-yServce”, “0 compltectoretsion canpies = age.copi(ars() feceacettarstor = ceeutegetsversar) Cnisctsnntoreesorces() ¢ oad ‘Systm ot println(res-eeontent(0); toy ( ((xSsteasurs}re)-fretarouces() ) ateNAMDOEKCAPSoN M8) (print stake ) > nay ¢ Try €cOLC1080)5 ) Spr oot printing cunt “4 re. gFETSL) ©.) » finaly Seas! man) Try € ((OstRsiceyresy. crete ntntcnnat ene tte "+ args) 05) eatenam.ocncetion m4) (aa-pretscacktrae(s) > ey Cc ose) atehOMBEaCetlon we} (a prnRStckTrcet)3) > soeotPicoption( , Prsate static Collection getrcrestectlection(Stingcolleticnrl, int aathsegrentorset) shrons mUonceception{ (altction coi = ontabatennagr.getoilection(WRT + cabictions) Seat = ma) ( ‘(collection sartsnene/")) Collecttonnd collection sset-ing() d Sering potsegarte) « collection. cps(°/); ‘Stoatnearente teeth» 8) Stringuuaer path «row stedngoutier() ‘one b 8, ce patnegnentoetset) £8) ( poeh spent)" 4 aehsegent[ =) String porentath = pathvoneing(®, poh 2estindeoeC/°99s Cclictiowunogmvertservice ng = (collectiorarageentservice)poretpeSericet"olletioshnapeenervice", col = age cresaconlectn(gathsaprenteathsgrenttse]) celcioset) arertscose) pene d dase un archiva. De (0 carga el objeto Java como que se pasa como pardmetro. El controlador eXist compruebs i el objeto es rai, el objeto se transforma en una cadena iamando al méstodo tastring () dal objeto. Pasar un archivo iene una gran ventaja: sla base de datos se eecuta en modo incrustado, el archivo se pasaré dioctamente al indexader. Oe esta forma, el contenido del archivo na tiene que cargarse en la memoria. Esto es ls 10s archivos san muy grandes. Para saber mas... Utiza estas dos enlaces para estuciar como conectar java con eXist Javs-oX%ety Jov El proceso de conexion a la BD paso a paso, se explica en el anlace, 3.6.3.- Crear y borrar colecciones. La craacién y eliminacién de colecciones son proporcionadas por la intrfaz cetLectiontaragenentSarvice con los mélodos: eabre_coleccion"), Para crear una nueva coleccién en la base de datos. elon), Para elminar una coleccén. + ereatecotection( stein FenovecoLLection(string “noxbre 5 relaivo @ la coleccién desde Ia que se ha obtenido el ue se obtiene con algin los dos métodos siguientes de la En ambos métodos, el nombre de la coleccién para crear 9 para elimina objeto coLtectiomanagenentserviceque so uliza para invocar los métodos, intertaz coltection: services(), Para obtener una lita de todos los servicios proporcionades par la cleccién, Service(),, Para oblaner un objeto. service do entre los servicos que proporciona_ la coleccién, como un Objelo cot LectiontanapenentService. 1 2 El método crestecettection(yn0 genera ningin error en caso de que ya exista una coleccién con el misme nombre que la que se pretend crear, se mantiene la cleccion existente El método renovetaltectian()aimina la coleccién, con todo su contenido, 3.7.- Conexi6n a base de datos XML. API XJQ. Estas Sases de Datos son una propuesta astandarizada de la interfaz Java para al acceso a BBDD XML nativas basadas en el modelo de datos XQuery. El objetivo de estas es conseguir un métado fécly estable de acceso. Es un API bastante similar al JDBC de las bases de alos rlacionales. 3.7.1.- Introducci6n XQuery API for Java ( XQ ) es una interfaz de programacion de aplicaciones Java pensada para utiizar el lenguaje XQuery para obtener Informacién de BD-XML nativas, de manera patecida a como JOBC os una API pensada para utlizar e! longuaje SOL. para acceder a BOR XQJ nacié en 2003 y su versién definitive ha sido publicada en 2008. También es conocida como JSR 225 ya que ha sido dsefiaga como un proyecto JCP (Java Community Process), Numorosos SGBO-XML nativas faclitan la conectvidad desde Java mediante esta XQJ, por lo que podemos desaraliar aplicaciones que laccedan a SGBD-XML nativas via XQ con la Unica partcularidad de tener que utiizr la implementacién =! API que facilta cada SGBD, Para all necesitamos toner instalados los eXist-db y cisponer de la implementacién XO para este SGBD. XQJ, est constiuida por un gran niimero de interfaces y unas potas clases. Cada SGBO debe proveer las clases que implementan las interfaces que diciamina el API. En este enlace puedes descargar la AP| corresponcienie s eXis-db ser necesaro agragar as lbrerias descargadas @incurlas en el proyecto 3.7.2.- Conexion a la BD. Las aplicaciones que accedon @ BD nacositan, como primer paso para poder gestionar los datos dela BD, establacer la conexién con la BD a sgestonar. La API XQU facta ds interfaces apropiadas para lograr este objetvo: 4. XaDataSource, Fabrica para obtener objetos XACennection 2 XQConnection, Para eferenciar conexiones (sesiones) con un SGBD especifica. Toda conexién ee log, forzosamente, a través de un ‘objeto XADataSource As, para obtener una conexién, hay que seguir el siguiente esquema: eoseaSouce gs ~ ne EsOgoataource)s Una vez se aispone del objato XODataSource ya estamos an condiciones de crear un objeto XGConnection para establecer la sasion de trabajo con el SGBD y e30 lo conseguimos con el método getConnection() de fa interfaz XADalaSource, LaAPLXQs facta sobrecargas del método getConnection(: + XQConnection getConnection (Sting usemame, Siting passwd ) throws XAException + XQConnection getConnection () tows XAException La itera se erty) N08 permite defn una serie de propiedades antes de intontar establecer I conexin con el metodo Ente las propiedades que permite establecer ol método set 4 datos, el usuario a contrasefia perty() ancontramos el nombre dela maquina, el puerto, el nombre dela base EI método XQDataSource.getConnection() devuelvs, si todo es correcto, un objeto que implementa la interfaz XQConnection, el cual Utlzaremes para ejecutar cualquier accion XQuery o Update sobre la BD. Al fnalizar el programa hay que recordar siempre de cerca la ‘conexién con el métoda X@QConnection.closel), 2 fn de liberar todos los recursos asignados poral sistema operativo para mantener la conexién, La interfaz X@Connection facilta métodos para crear expresiones sobre las que ejecutaremos sentencias XQuery / U para valdar( commit) 0 deshacer{ rollback) los cambios levades a cabo duranta una lransaccién st, y los métodos Ejemplo de conoxion spore jae ery as score joe nd guar ager sours Joe ad ery. aPreparetapresstn ‘spore favo md ur asec od rain( Sting} args) eros xatacetlen ‘gtatoure de now festaGatatorce) Heng gary © "oelionsnhi(s + Sefettesarte” resemuence resait = erpeenestegenyt)s En eXist-db, ol hecho de que el método XQDataSource.getConnection() no levante una excepcién, no es garantia de que Ia conexién se haya establecio correciamente, En el ejemplo anterior la conexion se hace con un usuario guest que es la opcién por defecto si no se especica usuario y contraseia, Para Conactarsa con un stata se ulizan al método astProperty() Por defecto, una conexién opera en modo aute-comait, lo que significa que cada instruccién Update os ojecutada y validada en una transacei6n indivaval, Esta forma de trabajar se puede desacvar con el mélado xeconection.sethutoconnit(), yen tal sitiacéa, [a lransaccién finalizaré efectuando una llamada al método comit{}0 rattnece(), dando lugar al inicio de una nueva transaccién. No hay, pues, tna insttucién especica para inicar el inicio de ransaccion Para saber mas: Consulta la AP! XQJ oe eXist para obtener mas informacién 3.7.3.- Ejecuci6n de consultas XQuery La APL XQ fctita los dos mecanismos a través de las interfaces: + XQExprossion, Para la ejecucién inmediata de sentencias. + XaPreparedExpression, Para a ejecucion de sentencias parametrizadas. Para sjecutar una sentencia XQExpression, crearemos un objeto XQExpression a patir del método xgconnection createbxpression) Disponomos de dos sobrecargas do este método oaression crestetroression { x@eaticortest properties )hrowsAGEcepton 5 En ambas sobrecargas obtiene un objeto XQExpression que podremos utiizar para ejecutar sentencias XQuery J Update de manera inmediata, La segunda sobrecarga permite indicar las propiededes del contexto estatico que se tendran en cuenta al evaluar la expresion, mientras que la primera sobrecarga toma como contextoestatico el asociado ala conexién, La intertaz XQStaticContext prove un conjunto de métodos get y set para recuperary establecer las propiedades de un contexto estético. La intertaz XQConnection facita los métodos getSlaicContext) y selStalicContex() para recuperar y establecer ol cantexto estatico de la Una vez tengamos el objeto XGExpression, podremos a través de él sjecutar consultas y ofras érdenes de manera inmediata, Racordemos {que en XQuery hay que elstingulr, como en SQL. las sentencias "consulta" que pueden devolver un conjunto de resutados que habré que processr, de las sentencias "no consuta’ que permiten ejecutar una arden (Insercén, eliminacién o actuslzacién ¢ incluso érdenes fepeciicas deISGBD), de la que se nos informa, come mucho, del glo 0 fracaso de su ejecucién, De ahi quo la interfaz XGExprossion Gistingue los métodos executeQuery para las “cansultes” de los métodos execuleComman para las "no consulta" ola exeuteconman ( Sova tong Stag ed ) boos GEARLON ¢ eentitsageance sacicvery { jiva.tecuaderguery) vous AGbeaptin Adomas do los métodos anteriores, disponomos dol mélodo clase) para corrar la exprosién,liborande todos los recursos asociados cuando ya no sea necesara. La ejecucién del método clers() soore la conexén ciara todas las expresiones defnidas sobre ola. También {isponemos del metodo éacteredt) para poder averigua’ si una expresin esta abletao cerrada: 1d cove troesseeception Fidmonos que el método execuleQuery() devuelve, si todo va bien, un objeto XOResulSequence, interfaz que deriva de la inerfaz X@Sequence, la cual nos faclita un conjunio de métodos para evaluar la secuencia de resultados obtenidos con el método execarsCuery() La interaz XQResultSequence representa una secuencia de elementos siguiendo la defincién de XOM (XQuery 1.0 and XPath 2.0 Data Model, de WSC ), Un vistazo ala documentacion de esta intertaz nos muestra que disponemos de métodos para: + Procesar sus elementos: nxt(), provious(), getTten(), getPosition(), count(), flest(), Uast(), isrirst(), Ustast(), {stfeterLast() y Un conjunta. do'métodas get para cbiener el cortenide do'un elemento on’ el formato adecuad ( ‘getaytet), astooubta()). + Obtener una version seriada do la secuencia como un objoto String (método getSequercatsstring(}. + Obtener una vers.én serada de la secuercia (método getSequencetsStrean()} como un objeto XML StreamReader (ntrfaz del API Stax do Java, que perme lateracién, hacia delants, de un documento XML en mado lectura, ullizando ios méiodos next()y hshext()). ‘Segdin sea la gestién que tengamas que efectuar,ullzaremos unos u oles mélodos. At, ante un programa de sentenciaabierta (en el que el Usuario pueda inroducir ls sentencia@ ejacutar),s6lo podremos pensar en mostrar ol resultado a través ce la version seriaca hacia Sting 0 via abjlo Tranelormer a partr dela seracién hacla XMLSlreamReader. Y ante un programa de sentencia cerrada (eentencia perfeclamente, Conocida en esenbir el programa), dado que se conoce [a forma de la respuesta, podemos pensar en efectuarun tratamiento espectio, 4.- Bases de Datos MongoDB MongaDB (que proviene de chumongouss) es la base de datos NoSOL lider y permite a las empresas ser mas agies y escalabes. Organizaciones de todos los tamafios estan usando MongoDB para crear nuevos tos de aplicaciones, mejorar la experiencia del cliente, acclerar el tempo de comercializacién y reducr costes. s una base de datos agi que permite a los esquemas cambiar répidamente cuando las aplicaciones evolucionan. MongoDB ha sido creado para brindar escalabildad con un elevado rendimianto, lanto para leclura como para escrlura, patenciando la compulacién en memoria (i= memory). La repicacion natva de MongoD y la tolerancia afalos automstica otrece fablidad a nivel empresarialyflexbildad operatva. Las suscripciones de MongoDB oftecen un servicio de asistencia técnica profesional, lcencias comerciales y acceso a caracteristicas de software de MongoDB Enterprise, Las suscripciones no solo ayudan a los clientes a lograr una inracstructura do TI estable,escalable y sagura, sino también a alcanzar sus odjetivos empresariales mas amplios, tales como reducirlos costes, acelerar el tempo de comerealizaciony disminulr los rosgos, MongoD8 Enterprise ofrece segurded avanzada, monitorzacién on-premises, soporte SNMP, certfcacianes de SO y mucho més. El servicio de gestion de MongoDB (MMS) ofrece funcionalidad de monitorzacion y respaldo en la nube 0 bien on-premises como parle de MongoDB, Enterprise, 4.1.- Instalacién, configuracién y manejo de una base de datos Mongo. En el siguiente enlace al documento propiedad de MongeDB, pods aprender ainstalar,configurar y manejar de forma sencila la base de datos documental MongoD8: Descarga del documento, ipd-<27408 8) 4.2.- Conexién desde JAVA a MongoDB Las ordenes Java necesarias para conectara una base de dalos MongoDB son: + Conectar con la base de datos ongoCLient clientetenge = Hongockients-create(): «+ Aetvar una base de datos ongotatabase baseDates = cLlenteonggetbatabase( centro"); + Obtener un lsiado de las coleccionee basenates.ListcotLectiomanes(); + Corar la canexién eLlentetong else En el siguiente ejemplo se muestra la conexién a una base de datos Mongo llamada centro: sane cam 5 Sve nog: sv nnge clnt nengacients; nnn. Stent Roger ‘score cov nngec. lsat Ragsoatanae pobile cass Dvatonasbt> ¢ ewok natn Steg 242) erect cLierttongo = Momsclients rest) angaontbacebacebaeae = clintatongsgcsstatare cers") for (String nae = eseOosusterlectaonhanest)) + Seleccionar una coleccién ongocottection cotecclon = éatabasegecoUaction personas + Buscar el primer documento de una coleccién Document primero = coteccionatind( First) En al siguiente ejemplo se muestra como seleccionar una coleccin y como buscar el primer documento de la misma ocean com J Jove nog: ‘store cor nongosh.eisertAongot lo ‘sport con ong eent ergo leetion ‘sore cn nngeg. sent Ragsbetanae ‘pore co nnged. eset soe] Flees ‘ore sate com argn®.cltnt mde. Pofecions.* pone Sve tray ise cave dvatongsbip ¢ public statfe weld main(String art] )( nangcitentcitenteargh = songotiients.ce3te)s ongaatonaze buenos = clsenahngo feoarosse(arts ucecolectionncanent>csleclon = Cncaert primer = cleccon Find) fle8805 erteonte cles): + Realzaruna consulta Finatterablecdacanent> Stardoc = colaccfontind(new Doconent("25p0", “AUaRRG")): En al siguiente ejemplo se muestra como realizar una consulta a una base de datos dada eape cam 3g Jango; Inporeconsmnao, cient FinaTearahe ‘score cov nongec. else Rogotiots: Inport consongdh cent rete ‘store co nnges.elsent Raga ee ton Inport consonged. cent rgadetabases Sspore state eon tong eliere rel Prefect. or conmonged. tet noel Sees store jn ut Aes port Jove th -Teraors pobtie eave vanes ¢ pic static sold main Sting as{) > vongoiient elteteronge = Pongecliets creates sovesbstatse taba ~ cliontetanga,getsconet crt) songotolletioncecamert>colecion = eases. geteulection(persos")s Hooter un abject seranle oe ipa creer alterbiecociment> arbor» cleceen tidne DbeaertUi50% "Aunne"): {erator © eure, starator) vole Ut mastee() Syran ot print nS. re() En ol siguiente ejemplo se realza una insercén de un documento: sockape om fgsSee ‘spore co-mngsa. ‘store eon nogoe. cident. Finascerole: ‘port on-tonged.tet Rogatents; ‘score con nonoehclserAogotlio ‘port on-mnged tes Hogs ec tn ‘store cov nngec. elder Ragszatanaees port con monet itet soe Prosectons ‘store cov nnges. lsat socel Fleer: spore satseeonorgo client model Mojecsons.*; ‘spore conned Stet toe] Sts spore je ah vay soon Je thd erator: pobile class vanes ¢ pole eatee wots wain( String asl ) ongclien chientetongs = Rorgatlients reste); angaatsnse naasoson = clienahengo cetst abe (‘t89")5 aeeostorgotcllecton( persone") newert persona ~ new Decment-renre", “SEro") Sopra tips", “Proesee) ‘ppenatnai", “saeerreves")), ‘Sopenat‘signstaras, Araya niet(Fisca ceeclon inset persone} Lireetngsi0ee): ete: =) Anexo.- Licencias de recursos. Recurso 0 Licencias de recursos utilizados en la Unidad de Trabajo. Datos del recurso (1) ‘Autora: Isabel M. Chiz Granados. Ucencia: Uso Educativo-ne Procedencia: Captura de pantalla del programa QizxStudio, do Qizx Free Engine Edition, ‘Autora:tsabel M, Cruz Granados. Licencia: Uso Educativo-ne Procedencia: Captura de pantalla dal programa QizxStudio de Qizx Free Engine Editon. ‘Autoria: Emma Gracia Lor Licencia: CC-by-ne-sa Procedencia hitp/iww fckr-comiphotos/paidelaeducacion/5102909303) ‘Autor: Howard Stanbury, LUceneia: CC BY-NC-SA, Procadencia itp kr comiphotosstanbury'S852623652/ ‘Autor: Adam Prince, Lcencia: CC BY-NC-SA, Procedendia itp flck.comiphotos/adam_princei908404626) Recurso @ Datos del recurso (2) Autora: Isabel M. Cruz Granados. LUcencia: Uso Educatvo-ne Procedencia: Captura de pantalla del programa GizxStudlo de Qiex Free Engine Edition, ‘Autora: Isabel M. Cruz Granados Licencia: Uso Educatve-ne, Procedencia: Captura de pantalla del programa iaxStudlo de Olax Free Engine Edition Autora:fese8into. Ucencia: CC BY-SA infoie194960532) hitpiwwo flickr convphotositsse- Autora: Justin See. LUcencia: CC BY. ntp:wfiekr.comiphotosikoalazymonkeyI3651286422/ ‘Autora: Tanlok Gelik Ucencia: CC BY.NC, htlp:ww ck. comiphotostantek/539497686!

También podría gustarte