Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

LMGSI-Almacenamiento de la informacion. Parte2 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 1 de abril de 2025 por Francisco J. G.

47 visualizaciones

LMGSI-Almacenamiento de la informacion. Parte2

Descargar la transcripción

sino que esta se influencia por los lenguajes de programación y una vez que se crearon dichos lenguajes de programación orientados a objetos, se pensó y por qué no tener una base de datos en el que en vez de acumular tablas relacionadas, lo estructuramos de otra manera, almacenando objetos también relacionados. 00:00:04
Entonces, hay que decir que esta alternativa es eficiente y natural para el almacenamiento en XML, ya lo veis. ¿Qué son las bases de datos? Bueno, pues que trabaja directamente con objetos, lo acabo de decir, son objetos persistentes que se almacenan tal cual en la base de datos, o sea, tú coges un objeto y lo almacenas allí, con todo lo que conlleva dicho objeto, sus atributos, sus métodos, todo. Muy adecuado para manejar datos estructurados y jerárquicos como XML. 00:00:27
Aquí tenemos componentes del modelo orientado a objetos. En un principio nosotros modelamos a través del modelo de objetos, que un modelo de objetos no es más que definir una clase en el que dicha clase va a tener un montón de instancias de objetos que van a tener una serie de atributos, relaciones, va a haber herencia, etc. 00:00:54
¿Cómo lo hacemos? Pues si veis cualquier diagrama en UML, veis que, salvo por la falta de las cajas aquí, tú lo que añades es cada una de las clases con cada uno de los atributos y esos atributos con sus tipos separados con dos puntos. 00:01:12
Una vez que tenemos cada uno de los modelos del modelo de objetos o cada una de las clases con sus atributos o sus valores miembro con sus datos 00:01:29
Pasamos al Object Definition Language que sería pasarlo a una estructura más relacionada con la programación 00:01:38
Aquí ya lo ha puesto una estructura a través de Interface como un tipo Java 00:01:48
y posteriormente tenemos el Object Query Language que lo que va a hacer es poder utilizar esos objetos en la base de datos a través de consultas. 00:01:53
Si veis aquí las consultas, este OQL es muy parecido al SQL y lo que pasa es que ahora está seleccionando objetos 00:02:02
y dentro de esos objetos está seleccionando atributos de esos mismos objetos. 00:02:09
¿Veis? La estructura es muy parecida a SQL. 00:02:14
Luego tenemos los bindings de lenguajes como C++, Java, Smalltalk, para el que no sepa es otro lenguaje orientado a objetos, además es un lenguaje orientado a objetos puro, como Java y C++, permiten trabajar con objetos persistentes en esos lenguajes y añaden el hecho ya de que podamos navegar o pasar a través de consultas, pasar a través de esos objetos y obtener valores de los mismos. 00:02:16
Si veis aquí, por ejemplo, hay un ejemplo en Java en el que lo que hace es que, veis, ha hecho una instancia a través de new de un objeto que está acumulado dentro de la base de datos que sería objeto estudiante. 00:02:42
Y luego, una vez que tiene ya el objeto con el valor de lo que determina o le añade valores a sus campos o se obtiene valores de los mismos, etc. 00:02:55
Entonces, XML a objetos en base a datos de ahorita los objetos, ¿cómo lo podríamos hacer? Aquí tenemos un ejemplo en el que tenemos un XML sencillito. Entonces, lo primero que pasamos, que es, como hemos dicho antes, pasamos por los distintos pasos. 00:03:07
En un principio define los objetos como hemos visto anteriormente. Veis aquí la clase de persona, la clase de dirección y luego a través del OQL o de la JPEG Query Language lo que hace es que puede hacer consultas de esos objetos que están almacenados. 00:03:25
Si veis, el modelo de objetos encaja de manera natural con la jerarquía de XML. Digamos que es muy amigable ese tipo de base de datos con respecto a XML. Además, de manera diferente a lo que sucedía con las bases de datos de relacionales en el que teníamos un problema de semántica cuando pasábamos de uno a otro. 00:03:43
El procesamiento interno, ¿qué pasa cuando los datos XML se convierten en objetos, en una base de datos orientada a objetos? Pues que una vez los objetos están en la base de datos, pues se van a aplicar los mismos mecanismos, los mecanismos que tiene nativo ese sistema de gestión de base de datos orientada a objetos. 00:04:05
Como puede ser indexación, como podría pasar en las relacionales, optimización de consultas, procesamiento de recuperación, etc. ¿Por qué es útil para XML? Pues porque XML, intrínsecamente, su idiosincrasia es un lenguaje jerárquico. 00:04:22
Lo mismo que sucede con los objetos. Tienen un parecido en cuanto a su estructura. Ventajas del enfoque orientado a objetos. Mapeo directo de XML de objetos. Ya vimos que el mapeo antes no era tan fácil en las relacionales. 00:04:45
Modelo jerárquico, que es XML amigable, integración con programación orientada a objetos y luego flexibilidad muy alta, expresividad. 00:05:02
Por último, hablamos de las bases de datos XML nativas. Hablamos de esto y después pasamos ya al XQuery. 00:05:12
Son bases de datos diseñadas específicamente para almacenar y gestionar documentos XML. 00:05:19
Van a soportar transacciones, acceso multiusulario, lenguaje de consulta como XQuery. 00:05:24
Aquí os he puesto de todos los ejemplos reales de base de datos XMD nativas, os marco base X, que es la que vais a utilizar en la práctica, y que es muy rápido, es ligero, puedes usar XQuery con XPath, porque luego realmente estás usando XQuery con XPath. 00:05:29
Y soporta transacciones, usuarios, etc. 00:05:49
Características principales, decir que podemos tener colecciones equivalentes a las tablas en las bases de datos relacionales. 00:05:53
Si veis aquí, podemos hacer colecciones con diferentes tipos de archivos XML. 00:06:03
Tenemos la facilidad de validación de documentos XML a través de XSD, DTDs, lenguajes de consulta, 00:06:09
Al igual que las bases de datos relacionales, como he dicho anteriormente, tenemos XQuery, Xpad, también tenemos indexación XML para acelerar las búsquedas, identificadores únicos para cada documento, hemos hablado de cómo se generaban esos identificadores, lo tenemos aquí, y la actualización y eliminación de documentos. 00:06:18
Tipos de almacenamiento en base a datos XML nativas, aunque en el texto del aula virtual nos aparece como el llamado blob, el binary large object, y habla también de almacenes dedicados. 00:06:39
Pues yo os he puesto aquí una tabla, bueno, los tipos de almacenamiento en base de datos XML nativas, que sepáis esto es lo que aparece aquí en el aula y aquí tenemos pues los distintos almacenamientos que podemos tener en una base de datos XML nativas, bien sea por un almacenamiento basado en árbol, que es lo que tendríamos que sería la estructura jerárquica y aquí hablamos de DOM, el almacenamiento basado en texto, en el que pues guarda el documento XML como texto, como tal, ¿vale? 00:06:59
Hace almacenamiento basado en modelo de datos, convierte el XML en estructuras más eficientes como objetos, clases o nodos persistentes en disco. El almacenamiento orientado a tablas, que bueno, esto lo dejo un poco aparte, y luego todo lo que conlleva estos cuatro tipos de almacenamiento se complementa con el XPath, el XQuery, el almacenamiento binario optimizado, lo que hemos visto de los blogs. 00:07:29
¿Vale? Importante con respecto a esto, si veis el almacenamiento basado en árbol es muy fiel a la estructura original del XML. Aquí hablamos, se guarda como un árbol DOM o árbol de nodos propio. ¿Qué es DOM? El Document Object Model. Sería el modelo de objetos del documento. Es una argumentación en memoria del contenido de un archivo XML o HTML en forma estructura jerárquica de nodos. 00:07:53
Eso que conlleva que si nosotros tenemos esta estructura de fichero XML, en memoria lo generará, en memoria esto como si fuera una estructura en árbol, de tal manera que nosotros después a través de distintas funciones podemos, esto sería código Java, podemos sacar información por ese documento XML mucho más fácil. 00:08:20
Aquí tenemos un fragmento en el que, bueno, es verdad que en Java lo que saca esa información requiere la utilización de una determinada librería, pero al final nosotros podemos recorrer, por medio de este código, podemos recorrer distintos ítems del propio fichero de esta arquitectura DOM. 00:08:44
El almacenamiento basado en DOM convierte DOM en tablas relacionales, DOM en objetos de una base de datos orientada a objetos y podemos transformar también DOM en almacenes especializados. 00:09:08
Aquí tenemos el ejemplo de un documento XML sencillito en el que DOM a tablas relacionales, cómo lo pasa, o también a una base de datos orientada a objetos o incluso a un almacén especializado, como puede ser una base de datos diseñada para XML, como puede ser base X. 00:09:22
Entonces, comparativa de almacenamiento, no sé si he puesto aquí otra tabla, no, no he puesto la tabla con todo, pero esta sería la tabla o la comparativa que os hace en el aula virtual, en el que bien sea como texto estructurado, como modelo de datos, que sería el DOM, o bien como texto BLOB, pues estas serían las ventajas e inconvenientes en cuanto a una lección o a la otra. 00:09:44
¿Por qué usar una base de datos XML nativa? Porque cuando los documentos XML son en el formato principal de datos y no todos los datos que tenemos o la mayoría son en formato XML, pues la verdad es que sería de una gran utilidad utilizar una base de datos XML nativa. 00:10:09
Cuando se necesita flexibilidad estructural, consultas avanzadas en estructura jerárquica o compatibilidad con estándares XML. Sería ideal para gestión documental, publicación electrónica, intercambio de datos reestructurados. 00:10:26
Y pasamos ya a XQuery. Bien, el XML Query Language sería diseñado para escribir consultas sobre datos en XML. Y esto es lo que se va a utilizar en XQuery. Es decir, que XQuery lo vamos a utilizar con XPath, que ya lo vimos. 00:10:41
Puede usarse con archivos XML o bases de datos relacionados convertidas a XML. ¿Qué hace XQuery? Pues, XQuery realmente lo que va a hacer es extraer información de estructuras en forma de árbol XML. 00:11:00
Permite combinar expresiones simples en consultas complejas. O sea que lo que tenemos al final es que el XQuery sería lo que es SQL para las bases de datos relacionales. 00:11:15
Es decir, que XQuery es un lenguaje funcional y es un lenguaje declarativo. 00:11:34
Dequisitos técnicos de XQuery, pues es un lenguaje declarativo, a recordar que también SQL es un lenguaje declarativo, es independiente del origen de los datos, respeta el modelo de datos XML, tiene soporte para Nape Spaces, 00:11:45
Compatible con DTTs, con XMLs y XMAS. 00:12:02
Puede operar sin conocer la estructura del documento. 00:12:07
Soporta datos de tipo simples y complejos. 00:12:11
Veremos y lo veremos más adelante que puede usar cuantificadores universales e existenciales. 00:12:14
Cuando hablamos de cuantificadores universales y existenciales, 00:12:21
veremos que esto es lo que se llama lógica proposicional. 00:12:24
Esto aparece en lenguajes lógicos, como puede ser Prolog, quien lo conozca, pues aparece en los cuantificadores universales y existenciales, pues esto lo tiene XQuery. Operaciones sobre jerarquías y secuencias de nodos, combinación de datos de múltiples fuentes, manipulación independiente del origen e independencia sintáctica. 00:12:28
Una consulta puede expresarse de diferentes formas. Ahora os voy a ver un ejemplo básico de consulta en Xquery. A lo largo ahora de la presentación vamos a ver muchos ejemplos. Pero primero como punto de partida os pongo aquí uno facilito, que sea este que aparece aquí. 00:12:47
Si veis, el fichero XML sería el de libros que tenemos aquí. Si veis, está formado por un montón de unidades de nodos libro que a su vez contienen un título y un precio. 00:13:05
Entonces, el primer paso lo hace, pues es un for, hay que decir que aquí tenemos un paso de XPath en el que lo que hace es que sitúa en el ramal del libro 00:13:17
y una vez que está ahí, lo que hace es que va a hacer las variables dentro de XQuery y las define con un dólar delante XQuery. 00:13:28
Entonces, dentro del documento de libros.xml, situándonos en libro, pues lo que hace es que, oye, cógeme o recórreme todo el árbol, todo el árbol jerárquico y me vas mirando dentro de cada conjunto o nodos libro, me vas mirando, puesto que está cogiendo la variable donde lo hemos almacenado, me vas mirando el precio, el sub-elemento precio del libro 00:13:38
y todos los que sean menores de 20, pues me los coges. 00:14:06
Una vez cogidos, retórname el título por de todos ellos. 00:14:10
¿Qué está haciendo? Está cogiendo el nodo libro, luego cogerá el segundo nodo libro, 00:14:14
esto se lo va acumulando en dólar libro y a continuación ve si es menor de 20 o no. 00:14:19
Ve que el único que es menor de 20 es este, entonces este es el que se correspondería con el que necesitamos para la condición. 00:14:25
Entonces, como este nodo libro cumple con la condición, me lo retorna, pero solo quiero que me retorna, aquí tendremos la parte de XPath, retórname solo el subnodo título y eso es lo que retornaría, ¿vale? 00:14:31
¿Por qué usar XQuery? Porque está diseñado para, además de esto es muy específico, ¿para qué? Para XML. Es compartible con XPath, con XLT, ya hemos visto que XPath lo utiliza, permite consultas potentes, flexibles y reutilizables y funciona con múltiples orígenes de datos. 00:14:46
Conclusión sobre XQuery. Es un lenguaje imprescindible para trabajar con XML a gran escala, útil tanto en base de datos XML nativas como en XML que se haya convertido en que provengan de base de datos relacionales. 00:15:07
Permite construir soluciones robustas para análisis y transformación de datos XML. 00:15:21
¿Para qué se utiliza XQuery? Recuperar información, lo acabamos de ver, y transformar instrucciones XML en otras estructuras. 00:15:26
Podemos transformar HTML en PDFs, otros formatos. 00:15:34
Motoros de XQuery, open source. 00:15:38
Tenemos aquí varios, pero os remarco el que utilicéis en la tarea. 00:15:41
Ya hemos hablado de él anteriormente, que es free, que tiene una interfaz gráfica intuitiva, 00:15:47
multi-plataforma, lo habéis visto a la hora de descargarlo, 00:15:53
y muy eficiente para grandes volúmenes de datos. 00:15:56
Esta serie de XQuery es clave para consultas y transformaciones sobre XML. 00:15:59
Modelo de datos en XQuery. Aunque XQuery y SQL comparten ideas, ya hemos dicho que eran dos lenguajes declarativos, igual, trabajan con modelos de datos distintos. El otro, SQL, está trabajando con datos planos, acordaros, de las bases de datos relacionales, y XQuery está trabajando con datos más complejos, con una jerarquía, un orden, etc. 00:16:05
Entonces tenemos que en la estructura SQL está manejando tablas planas, mientras que XQuery está trabajando con árboles jerárquicos. 00:16:28
El orden de los datos no es relevante en las bases de datos relacionales, ahí nos da igual, pero sí es muy importante en XQuery, ya lo hemos visto. 00:16:37
Y luego el acceso se hace a través de filas y columnas en el caso de SQL, pero aquí lo va a hacer, como hay una jerarquía, a través de nodos y de jerarquía. 00:16:45
XQuery, la posición y anidación de los datos sí importan. 00:16:54
en SQL. Modelo de datos de XQuery, entrada y salida basada en una representación abstracta 00:16:57
de documentos XML, opera sobre documentos XML completos o puede operar sobre fragmentos 00:17:03
de documentos. Características clave del modelo de XQuery, aquí tenemos varias características 00:17:09
que serían, se van a obtener secuencia de ítems, importante el orden del documento 00:17:17
Y que puede generar el error value. Entonces, en cuanto, si os fijáis aquí, tenemos un fichero XML sencillito que se llama libros, que es el que estoy poniendo a lo largo de toda la presentación. 00:17:25
Entonces, secuencia de ítems es capaz de, tú puedes sacar una serie de ítems del propio fichero XML a través de XQuery, en el que nos puede dar una lista ordenada de ítems, pues además una lista heterogénea. 00:17:37
Es importante decir que en esa lista o secuencia de ítems que es capaz de obtener no puede haber unos datos anidados dentro de otros. 00:17:53
En cuanto al orden del documento, ya lo hemos visto anteriormente, él siempre cuando utiliza XQuery va a respetar el orden físico del propio documento XML y la respuesta o el conjunto de secuencia de ítems que nos va a generar las va a sacar en el mismo orden en el que está en el fichero XML. 00:18:03
Y luego el error o valor especial de error que puede generar es cuando estamos haciendo, si veis aquí lo que está recorriendo en este compendio o esta secuencia de ítems, está recorriendo y sacando, le está indicando que cada uno de los valores que va a obtener o que va a devolver son de origen integer. 00:18:23
Entonces, aquí claramente lo está transformando a integer y al transformarlo a integer en cuanto a los dos primeros lo hace de manera correcta, pero en cuanto al tercero no, puesto que no es un número, es un string. 00:18:48
Implicación del modelo de datos. XQuery permite consultas más expresivas gracias a su respeto por el orden y por la jerarquía. Ya lo hemos visto. 00:19:01
Tiene la posibilidad de manejar datos atómicos, lo hemos visto, y estructurados en una misma secuencia. 00:19:08
Nosotros podemos obtener una secuencia en la que podéis obtener datos atómicos, ya veremos la función data en la que nos permite obtener los datos propiamente dicho de cada uno de los subnodos o nodos de XML y podemos obtener también una serie de nodos, datos estructurados o bien datos atómicos. 00:19:13
Expresiones en XQuery. ¿Qué es una expresión en XQuery? En una expresión en XQuery hay que decir que cualquier consulta en XQuery es una expresión. Es tomar una secuencia de datos XML como entrada y devolver otra secuencia, como hemos visto anteriormente, heterogénea. Podemos devolver nodos XML o valores atómicos. 00:19:39
Las expresiones complejas, ¿cómo se van a crear? 00:20:01
Pues tú vas a coger un montón de expresiones más simples y vas a generar una compleja. 00:20:03
Aquí tenemos un fichero XML personas en el que está formado por nodos persona 00:20:07
que a su vez tienen los subnodos nombre y edad 00:20:13
y lo que nos está haciendo aquí en este fragmento de XQuery 00:20:16
nos está recorriendo el documento personas, el punto XML, 00:20:21
a través de Xpad está poniendo que se sitúe en cada uno de los nodos persona 00:20:25
y nos está indicando 00:20:29
que nos retorne de ese 00:20:31
cada nodo persona que lo han añadido 00:20:33
pues a la variable p 00:20:35
que de la variable p nos vaya devolviendo 00:20:36
un conjunto de 00:20:39
valores que serán 00:20:41
por un lado nos va a dar un 00:20:43
Idioma/s:
es
Materias:
Informática
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Francisco J. González Constanza
Subido por:
Francisco J. G.
Licencia:
Todos los derechos reservados
Visualizaciones:
47
Fecha:
1 de abril de 2025 - 10:12
Visibilidad:
Público
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
20′ 46″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
386.57 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid