Tema 6. Almacenamiento de la información



Documentos relacionados
Unidad 9:GESTIÓN Y ALMACENAMIENTO DE LA INFORMACIÓN EN FORMATOS XML

Guía de Laboratorio Base de Datos I.

Base de datos relacional

Tema 11 Bases de datos. Fundamentos de Informática

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

1. Creación de colecciones y documentos XML en nuestra herramienta exist-db Open Source Native XML Database.

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Capítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD)

BASE DE DATOS UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II. Comenzar presentación

Estructura de Bases de datos. Leonardo Víquez Acuña

Base de datos en Excel

Utilidades de la base de datos

Introducción a las bases de datos

WINDOWS : COPIAS DE SEGURIDAD

DBMS (Data Base Management System) Un Sistema de Gestión de Base de Datos, consiste en una colección de datos interrelacionados y un conjunto de

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Curso de PHP con MySQL Gratis

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

Capítulo 12: Indexación y asociación

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A)

Conceptos básicos Oracle 10g Introducción - Administración de Oracle - Orasite.com

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

Tutorial: Primeros Pasos con Subversion

HERRAMIENTAS DE ACCESS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Consultas con combinaciones

Apuntes de la Unidad 1 de Base de Datos

Manual de rol gestor de GAV para moodle 2.5

Tecnología de la Información y la Comunicación. Base de datos. Consultas

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.

GENERALIDADES DE BASES DE DATOS

Copia de Seguridad en windows

MANUAL COPIAS DE SEGURIDAD

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Optimizar base de datos WordPress

ADMINISTRACIÓN DE BASE DE DATOS

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

BASE DE DATOS RELACIONALES

IAP TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)

BASES DE DATOS TEMA 1

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS))

Qué es una base de datos?

BASES DE DATOS OFIMÁTICAS

LABORATORIO 10. COPIAS DE SEGURIDAD, RESTAURACIÓN Y RECUPERACIÓN DE UNA BD

Bases de datos relacionales y el modelo entidad-relación

APOLO GESTION INTEGRAL.

Programa de Ayuda EMCS Instalación Versión SQL Server Versión Marzo 2010

Soporte y mantenimiento de base de datos y aplicativos

Indicaciones específicas para los análisis estadísticos.

Introducción. Componentes de un SI. Sistema de Información:

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Manual de usuario del Centro de Control

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Elementos requeridos para crearlos (ejemplo: el compilador)

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

Manual CMS Mobincube

1

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Toda base de datos relacional se basa en dos objetos

Análisis de los datos

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

- Bases de Datos - - Diseño Físico - Luis D. García

Ministerio de Salud de la Nación

select nombre from profesores where categoria='aso6';

Creación y administración de grupos de dominio

Componentes de Integración entre Plataformas Información Detallada

El proceso de edición digital en Artelope y CTCE

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Gestión de la Configuración

Ley Orgánica de Protección de Datos

Microsoft Office XP Access XP (III)

Sesión No. 11. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Unidad I: Sistemas Gestores de Bases de Datos. 1.1 Objetivo de las Bases de Datos

Configuración factura electrónica. construsyc instasyc

INSTRUCCIONES BÁSICAS DE ACCESO AL PORTAL DEL CLIENTE

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Internet como herramientas de comunicación: El correo electrónico

INTRODUCCION A LAS BASES DE DATOS Procesamiento de Archivos vs Bases de Datos ARCHIVOS BASES DE DATOS

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

SECRETARÍA VIRTUAL Perfil Ciudadano

Introducción a la Firma Electrónica en MIDAS

Microsoft SQL Server Conceptos.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

Plantillas Office. Manual de usuario Versión 1.1

Transcripción:

Tema 6 Almacenamiento de la información

Objetivos Descubrir, buscando qué es el método Fermi, cómo estimar cualquier necesidad de almacenamiento (sin datos suficientes). Conocer los tipos de bases de datos existentes. Descubrir cómo unificar un conjunto de bases de datos y administrarlos a través de los Sistemas de Gestión de Bases de Datos (SGBD). Mostrar la importancia de las transacciones y conocer que características deben implementar los SGBD para conseguirlas (ACID). Buscar y comparar distintos SGBD. Conocer qué es SQL y cómo XQuery permite realizar las mismas funciones pero en BD XML nativas. Convertir una BD relacional a un conjunto de documentos XML equivalentes. Utilización de Qizx Studio como motor de BD XML nativo. Utilizar expresiones FLWOR en XQuery para realizar consultas, inserciones, modificaciones y borrados de la BD. También para generar documentos XML o XHTML. Exportación de BD a ficheros XML y la importación en la BD de documentos XML. Conocer otras librerías y APIs que permiten tratar los documentos XML a través de lenguajes de programación como Java o C/C++.

0- Volúmenes de información Eric Schmidt, CEO de Google hasta enero del 2011, realizó la siguiente afirmación en la conferencia de Lake Tahoe en California (EE.UU.): "Cada dos días creamos tanta información como la que se generó desde los albores de la humanidad hasta el 2003".

0- Volúmenes de información Un ejemplo de generación masiva de información puede ser el acelerador de partículas llamado Gran Colisionador de Hadrones. Éste se encuentra ubicado en la Organización Europea para la Investigación Nuclear (CERN) de Ginebra-Suiza. La red Física-Matemática-Informática que se ha desplegado permitirá capturar características, velocidades y trayectorias de las partículas subatómicas que se conocen e incluso descubrir nuevas partículas. Para ello han desarrollado un sistema llamado Grid-Computing en el que se manejarán la enorme cantidad de datos producidos por el acelerador. Estiman que generarán en torno a 40 Terabytes de datos por día, enviándose copias de los datos a todas las instituciones académicas de índole mundial que trabajan en el proyecto. Llegan a afirmar que ellos solos podrán generar 15 petabytes al año (y el tamaño sigue creciendo). Debe existir alguna manera de seleccionar, catalogar, ordenar la información relevante y desechar aquella que esté duplicada o sea superflua, sin que el rendimiento en el acceso penalice los tiempos. Ese sistema se llama Sistema de Gestión de Bases de Datos (SGBD).

Actividades 1 1- Buscar por Internet cuanta información está actualmente almacenada en los servidores de Google. Y en los servidores de Facebook, Tuenti y twitter? 2-Google y Microsoft utilizan, entre otras muchas, una técnica de selección de personal llamada "Cuestiones de Fermi". En qué consiste? De dónde viene su nombre?

Actividades 1 3- Utilizando el método de Fermi contesta a las siguientes cuestiones. Cuántas personas en Calahorra llevan gafas? Cuántas personas en el mundo se llaman Juan? Cuántas bolas de bolos hay en España? Y en USA?

Actividades 1 Cómo puede ayudar una estimación de Fermi para almacenar datos en un SGBD? Estimar, con el método de Fermi, qué tamaño de base de datos deberíamos tener para almacenar en imágenes toda la vida de una persona en España.

6.1 SGBD La palabra base de datos se usó por primera vez en los años 60 y poco a poco se ha integrado en la vida cotidiana, incluso más allá del ámbito informático. En aquella época se usaba el modelo jerárquico y el modelo en red. Actualmente, se usa casi en la mayoría de las bases de datos el modelo relacional. Otros modelos más modernos que se están implantando con éxito son el modelo de bases de datos orientadas a objetos y el de bases de datos en XML, cuyas características se están incorporando a las bases de datos relacionales actuales.

6.1 SGBD A la hora de desarrollar un programa se puede optar por orientarlo a ficheros, en los que el programa accede a ficheros para obtener los datos. Estos ficheros tienen el formato requerido por el programa y es el programa el que busca la información. La otra manera es mediante las bases de datos. En este caso el programa hace consultas en un lenguaje estándar a otro programa: el gestor de bases de datos. El desarrollador no se preocupa de cómo se almacenan esos datos, sino que los obtiene siempre de la misma manera.

Se define como base de datos a una colección interrelacionada de datos, almacenados en conjunto y sin redundancias innecesarias cuya finalidad es dar servicio a una o más aplicaciones de la manera más eficiente posible. Y SGBD como una aplicación que permite a los usuarios definir, crear y mantener la base de datos, y proporciona acceso controlado a la misma.

6.1.1 Funciones de un SGBD Definición de los Datos. El SGBD debe ser capaz de aceptar las definiciones de datos en versión fuente y convertirlas en la versión objeto. El SGBD debe incluir componentes procesadores para cada uno de los lenguajes de definición de datos (LDD). Manipulación de los Datos. El SGBD debe atender las solicitudes de los usuarios para extraer, actualizar, adicionar o suprimir datos. El SGBD debe incluir un componente procesador del Lenguaje de manipulación de datos (LMD). Seguridad e Integridad de los Datos. El SGBD debe supervisar las solicitudes de los usuarios y rechazar los intentos de violar las medidas de seguridad e integridad definidas por el Administrador de la Base de Datos DBA. Recuperación y concurrencia de los datos. El principal objetivo de la implantación de una base de datos es poner a disposición de un gran número de usuarios en conjunto integrado de datos, estos datos podrán ser manipulados por los diferentes usuarios y es ahora cuando se debe garantizar la coherencia de los datos después de las diversas manipulaciones.

6.1.2 Desventajas de un SGBD En un SGBD no todo son ventajas. Existen una serie de inconvenientes que es necesario resaltar para tomar en el futuro una decisión adecuada. Como inconvenientes se pueden enumerar los siguientes: Un SGBD no es fácilmente administrable. Requiere de personal especializado en administración de sistemas y lenguajes de consultas contra las bases de datos. Una buena administración de los sistemas y de las bases de datos puede salvar la continuidad del negocio. Si los datos son simples y no requiere de acceso concurrente de usuarios o aplicaciones, puede ser sustituido por un simple fichero, como por ejemplo un archivo binario o un fichero XML. No es sencillo formar al personal que trabaja con los datos almacenados en un SGBD si no tiene un perfil orientado hacia la informática. El personal de nóminas de una empresa, por ejemplo, no tiene porqué aprender un lenguaje de programación de consultas. Requerirá que el sistema le proporcione una interfaz de comunicación tipo formulario de consultas que oculte la complejidad del sistema. Poner en funcionamiento un SGBD requiere de un coste inicial en hardware y software que puede no ser necesario para las necesidades normales de un entorno pequeño.

6.1.3 Concepto de transacción Una transacción es un conjunto de órdenes en secuencia que, en su conjunto, determina un trabajo completo. El trabajo es completo si y solo si se cumplen todas y cada una de sus operaciones en el orden dado. Tras la ejecución de una transacción solo existen dos resultados posibles: Finalizada con éxito. No completada (y asegura que no se ha cambiado nada).

Actividades 2 Describe un ejemplo de transacción

6.1.3 ACID en transacciones Atomicidad (Atomicity): Es la propiedad que asegura que una transacción no se ha quedado a medias. O se ha ejecutado completamente o ninguna de las acciones intermedias ha sido llevada a cabo en la base de datos. Consistencia (Consistency): Una vez se ha determinado que la transacción ha sido exitosa, debe quedar reflejados sus resultados en la base de datos dejando totalmente consistente e integra la base de datos. Aislamiento (Isolation): Una transacción no puede afectar a otra en el transcurso de su ejecución. Esto implica que dos transacciones que trabajen sobre el mismo conjunto de información no puede generar información inconsistente o error alguno en el sistema. Durabilidad (Durability): Una vez realizada la transacción, sus resultados permanecerán inalterables, independientemente de si surgen problemas en el sistema. Esto no quiere decir que una transacción posterior no pueda modificar los datos anteriormente modificados (sí podría pero no de manera concurrente con otra transacción).

6.1.4 Elementos en un SGBD

Actividades 3 Buscar en Internet qué es un índice en una BD. Para qué sirve? Buscar en Internet y comparar en un cuadro de texto los siguientes tipos de Sistemas Gestores de Bases de Datos: Oracle. Microsoft SQL Server. MySQL. PostgreSQL. SQLite.

6.2 Utilización de XML para almacenar información Gran parte de las BD que hay hoy en día están basadas en el modelo entidad-relación. Es un modelo que ha funcionado bien durante mucho tiempo y que todavía seguirá funcionando. Si bien es cierto que las BD orientadas a objetos permiten simplificar el trabajo de integración con los lenguajes de programación orientados a objetos.

6.2.1 BASES DE DATOS RELACIONALES Para conseguir almacenar toda la información relativa a cada libro necesitaremos una tabla que almacene atributos como "Título", "Autor", "Editorial", "Edición", "ISBN" y "NumPaginas". Esta tabla se llamaría "Libros". Si se quisiera añadir un libro, se generaría una nueva entrada en la tabla (fila o tupia), en la que se completarán los atributos de ese libro. Si se quisiera añadir un segundo libro a almacenar, se añadiría otra tupia a la tabla. Y así sucesivamente.

6.2.1 BASES DE DATOS RELACIONALES Cód_Libro Título Autor Editorial Edició n 1 Don Quijote de la Mancha Miguel de Juan de la Cervantes Saavedra Cuesta ISBN 3 97884667 45840 Páginas 176 2 La Celestina Fernando de Rojas Maxtor 1 97884716 64938 320 3 Leyendas Gustavo Adolfo Bécquer Cátedra 21 97884376 20244 416

6.2.2 TRANSFORMACIÓN A XML

6.2.2 TRANSFORMACIÓN A XML

6.2.2 TRANSFORMACIÓN A XML

6.2.2 TRANSFORMACIÓN A XML

6.2.2 TRANSFORMACIÓN A XML

6.3 Lenguajes de manipulación y consulta Las operaciones típicas con BD: Creación y borrado de tablas. Inserción, modificación y borrado de tupias. Ejecución de búsquedas mediante consultas. Un lenguaje de manipulación y consulta de datos ha de permitir por lo menos estas tres funciones.

6.3 Lenguajes de manipulación y consulta SQL es el lenguaje que en la actualidad se considera estándar de facto pues la inmensa mayoría de los SGBD lo implementan. Existen numerosas revisiones del lenguaje (SQL-86, SQL-92, SQL-2003, SQL-2006, SQL- 2009) pero la mayoría de los SGBD parten del estándar establecido en 1992. En lo tocante a XML, El estándar 2003 establece ciertas características que permiten un soporte inicial a documentos XML. El estándar 2006 establece una mayor integración con los documentos XML, permitiendo importar y exportar datos en XML.

6.3 Lenguajes de manipulación y consulta XQuery es un lenguaje de consulta similar a SQL que permite recorrer los documentos XML de manera que se pueda extraer y manipular la información contenida en el mismo. Es un lenguaje aprobado por el W3C. Es compatible con muchas de las tecnologías que estandariza W3C (como XML, Namespaces, los esquemas, XSLT y XPath)

6.3 Lenguajes de manipulación y consulta Su funcionamiento se basa en los mismos principios que el Xpath: Cuando se va a analizar un documento XML, se crea un árbol de nodos del mismo. Ese árbol tiene un elemento raíz y una serie de hijos. Los hijos del nodo raíz pueden tener más hijos. Si repetimos ese proceso llegará un momento en el que el último nodo no tiene ningún hijo, lo que se denomina nodo hoja.

6.3 Lenguajes de manipulación y consulta Tipos de nodos: Nodo raíz o "/": Es el primer nodo del documento XML. En el ejemplo de la biblioteca de libros explicado anteriormente, sería el elemento "Libros". Nodo elemento: Cualquier elemento de un documento XML es un nodo elemento en el árbol. El nodo raíz es un caso especial de Nodo elemento (no tiene padre). Cada nodo elemento posee un padre y puede o no poseer hijos. En el caso que no tenga hijos, sería un nodo hoja. En el ejemplo de la biblioteca de libros explicado anteriormente Nodo texto: Cualquier elemento del documento que no esté marcado con una etiqueta de la DTD del documento XML. Nodo atributo: Un nodo elemento puede tener etiquetas que complementen la información de ese elemento. Eso sería un nodo atributo.

6.3 Lenguajes de manipulación y consulta La extracción de la información durante el recorrido del árbol será tan simple como usar el XPath correspondiente. (Si no recuerdas bien cómo se usa el Xpath, puedes revisar los apuntes del tema anterior sobre XPath)

Actividades 4 Buscar en Internet que estándar SQL cumplen los siguientes SGBD: a. Oracle. b. Microsoft SQL Server. c. MySQL. d. PostgreSQL. e. Interbase. f. SapDB. g- SQLite.

Actividades 5 Qué es PL/SQL. Para qué sirve? Crea una base de datos en SQL e intenta ejecutar un procedimiento almacenado usando PL/SQL Explica cómo lo has hecho e incorpora dos capturas de pantalla con los resultados. Referencia por si no sabéis dónde buscar: http://es.wikipedia.org/wiki/pl/sql

6.3.1 Base X BaseX is a native and light-weight XML database management system and XQuery processor, developed as a community project on GitHub. It is specialized in storing, querying, and visualizing large XML documents and collections. BaseX is platform-independent and distributed under a permissive free software license. In contrast to other document-oriented databases, XML databases provide support for standardized query languages such as XPath and XQuery. BaseX is highly conformant to World Wide Web Consortium (W3C) specifications and the official Update and Full Text extensions. The included GUI enables users to interactively search, explore and analyze their data, and evaluate XPath/XQuery expressions in realtime

6.3.1 Base X Instalación Entrad en: http://basex.org/ Descargad el fichero de la versión 7.6, son 9 Mb. Ejecutad el administrador.

6.3.1 Base X Vistazo general: Query: se introduce el xpath/query. Archivo: Muestra todo el archivo. Mapa: Muestra el esquema del archivo. Texto: Muestra el resultado de la consulta en texto. Query Info: información de la consulta.

Database/new 6.3.1 Base X

6.3.1 Base X Database/open&manage

6.3.1 Base X

6.4 XQuery Ahora que ya tenemos el entorno de trabajo preparado, vamos a ejecutar nuestras primeras Xquery: Marca Xquery En mi caso: //Libros/libro

6.4 XQuery Como se puede observar, aparecen todos los libros que había almacenados en el documento XML inicial. Al igual que con las expresiones XSLT es posible que se quiera solo un conjunto de nodos dependiendo de un patrón de búsqueda. Si queremos todos los libros que tengan menos de 300 hojas la consulta podríamos completarla de la siguiente manera: //Libros/libro[NumPaginas<300]

Actividad 6 Y si solo queremos los autores de los libros que tienen menos de 300 páginas? y el nombre de todos los autores? y el título de los libros que escribió Fernándo de Rojas? Escribe la XQuery apropiada para cada caso

6.4 XQuery Los ejemplos anteriores son la manera sencilla de realizar búsquedas y selecciones de nodos concretos en un documento XML. Pero existe otra manera, mucho más potente, para realizar este trabajo. Es lo que se denomina expresiones FLWOR. FLWOR es la contracción del acrónimo For, Let, Where, Order by, Return.

6.4 XQuery Libros/libro[NumPaginas<300]/Autores Una expresión FLWOR equivalente: for $libro in //Libros/libro where $libro/numpaginas<300 return $libro/autores

6.4 XQuery

6.4 XQuery let: Esta clausula es opcional. Esta sentencia establece una nueva variable sobre el mismo u otro documento XML. Permite simplificar las expresiones posteriores y tener un código mucho más legible. where: Clausula que permite establecer una condición sobre la variable indicada en "for" y "let". order by: Clausula que define el orden de presentación de resultados. return: Permite devolver un valor concreto de los resultados obtenidos de las anteriores clausulas (uno por nodo). Cabe destacar que la utilización de expresiones FLWOR resulta tremendamente similar a las consultas realizadas en SQL en las bases de datos relaciónales.

Actividad 7 Y si solo queremos los autores de los libros que tienen menos de 300 páginas? y el nombre de todos los autores? y el título de los libros que escribió Fernándo de Rojas? Escribe la XQuery apropiada para cada caso utilizando cláusulas FLWOR

6.5 Consultas Imaginemos que tenemos un conocido que se gana la vida con una academia de bailes de salón. Nos pide ayuda para almacenar información que considera fundamental en su negocio. Estos datos son: Nombre del baile. Precio de la clase (indicando la periodicidad de la cuota y la moneda de pago). Numero de plazas disponibles. Fecha de comienzo de las clases. Fecha de finalización de las clases. Nombre del profesor que la imparte. Sala en la que se desarrollará la clase. Descargar el archivo Bailes.xml

6.5 Consultas Comprobar que se ha importado: //bailes/baile

6.5 Consultas Se necesita saber qué bailes se realizan en la sala número 1: for $baile in //bailes/baile where $baile/sala = 1 return $baile/nombre

6.5 Consultas Si quisiéramos solo tener un listado, obviando las etiquetas "<nombre>" y "</nombre>", simplemente tendríamos que indicar en la clausula "return" que extraiga los datos de ese elemento XML: for $baile in //bailes/baile let $n:=$baile/nombre where $baile/sala = 1 return data ($n)

6.5 Consultas Se necesita extraer los nodos de aquellos bailes que se impartan en la sala número 2 y cuyo precio sea menor que 35 euros: for $baile in //bailes/baile let $n:=$baile/nombre where $baile/sala = 2 and $baile/precio < 35 and $baile/precio[@moneda="euro"] return $n

Actividades 8 Se necesita saber el nombre de los profesores que dan clases con cuotas mensuales Se necesita saber el nombre de los bailes que se pagan en dólares y mensualmente Se necesita saber el id de los bailes que imparte Jesus Lozano Se necesita saber el nombre de los bailes que imparte Miriam Gurierrez en la sala 2

6.5.1 de FLWOR a HTML Queremos crear una consulta XQuery que tras ejecutarla nos devuelva los resultados en formato HTML. Podemos unir dentro de XQuery etiquetas HTML y expresiones o clausulas FLWOR. La única limitación es que cuando se fusionan en una consulta, indiquemos al motor de consultas qué parte es la que tiene que procesar como consulta. Para ello indicaremos entre llaves ( "{", "}"),que parte es FLWOR.

6.5.1 de FLWOR a HTML <html> <body> <h1>bailes de la sala 2 y con un precio inferior a 35</h1> <p> { for $baile in //bailes/baile let $n:=$baile/nombre where $baile/sala = 2 and $baile/precio < 35 and $baile/precio[@moneda="euro"] return $n } </p> </body> </html>

Actividades 9 Queremos una consulta XQuery cuyo resultado sea una tabla HTML que nos muestre el nombre del baile, el profesor que lo imparte y el número de plazas ofertadas. Queremos realizar la misma consulta anterior pero estableciendo la condición de ser bailes con cuota trimestral. Además se ordenará, de menor a mayor, los bailes según el número de plazas disponibles. Queremos una consulta XQuery cuyo resultado sea una lista ordenada HTML que nos muestre lo bailes ordenados de mayor a menor precio

6.6 Actualización Se quiera añadir un nuevo baile en la base de datos. Los datos son: Nombre: Foxtrot. Precio: 22 dólares. Pago: mensual. Plazas: 12. Comienzo: 01/01/2012. Fin: 31/07/2012. Profesor: Freddy Astaire. Sala: 3.

6.6 Actualización insert node <baile id="7"> <nombre>foxtrot</nombre> <precio cuota="mensual" moneda="dolares">22</precio> <plazas>12</plazas> <comienzo>o1/01/2012</comienzo> <fin>31/07/2012</fin> <profesor>freddy Astaire</profesor> <sala>3</sala> </baile> before //bailes/baile[1]

6.6 Actualización Supongamos que en la inserción anterior se cometieron dos errores: 1. El nombre correcto era "Angel Correllada". 2. El número de plazas realmente eran 14.

6.6 Actualización Se pueden cambiar esos datos de dos maneras distintas: Mediante la modificación del valor del nodo. Mediente el reemplazo del nodo completo. replace value of node //bailes/baile[1]/profesor with "Angel Correllada", replace node //bailes/baile[1]/plazas with <plazas> 14</plazas>

6.6 Actualización se podría tener un problema al actualizar erróneamente la tupla incorrecta. Para evitar este problema, lo más común es realizar la modificación mediante la utilización del identificador del baile (en este caso id=7).

6.6 Actualización replace value of node //bailes/baile[@id=7]/profesor with "Angel Correllada", replace node //bailes/baile[@id=7]/plazas with <plazas>14</plazas>

6.7 Borrado Después de la inserción y la modificación del nuevo baile en la base de datos, finalmente parece que no se va a desarrollar ese curso. Se pide que finalmente se borre esa tupla en la base de datos (id=7): delete node //bailes/baile[@id=7

Actividades 10 En el XML de las plantas: 1-Nombre común y precio de las plantas que valgan menos de $5 2-Valoración de stock: suma de las cantidades de plantas multiplicadas por el precio. 3- Nombre común de las plantas con menos disponibilidad que la media 4- Nombre botánico de las plantas que necesitan luz soleada sunny

Actividades 11 En el XML de las plantas: 1-añade el subelemento número de ventas a todas las plantas <ventas>0 </ventas> 2-haz una venta de Sanguinari canadensis (+1 ventas 1 availability) 3-Añade otro nombre común a Sanguinari canadensis 4- Borra todas las plantas de la zona 4

Práctica final del tema (cuenta para nota) Supón el caso de una entidad bancaria que quiere almacenar las transacciones realizadas entre sus cuentas. Diseña una BD relacional que almacene los datos de clientes, cuentas y transacciones. Debe tener al menos 3 tablas y 3 registros por tabla. Se realizarán todos los pasos necesarios para pasar de un modelo de datos relacional a un modelo en base de datos XML nativa. (Se adjuntará un txt con la BD SQL y su equivalente XML)

Práctica final del tema (cuenta para nota) Se generará un documento XML que almacene dicha información y se realizarán, al menos consultas para: Representar una transacción de una cuenta de cliente a otra. Creación de una cuenta para un cliente ya existente. Baja de un cliente (borrado del cliente y de sus cuentas asociadas). Consulta de la suma del saldo de todas las cuentas de un cliente. Se entrega Word con el diseño relacional, y el código SQL de las BD relacional. XML de la BD. Docuemento. TXT con todas las consultas.