Tarea para LMSGI06. Detalles de la tarea de esta unidad

Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
Tarea para LMSGI06.
Detalles de la tarea de esta unidad.
Enunciado.
Dado el fichero:
LMSGI06_TARE_R01.sql (1.71 KB)
Generar un esquema XSD que sirva para describir en XML dicha base de datos
relacional. Crear el documento XML correspondiente a dicha base de datos.
Una vez realizado estos documentos realizar las siguientes consultas XQuery sobre los
datos:
1. Obtener el nombre de todos los alumnos matriculados en algún módulo.
2. Obtener las calificaciones del alumno de código "n43483437" en cada módulo.
3. Obtener el nombre y el teléfono de cada alumno ordenado por apellidos de forma
descendiente.
4. ¿Cuántos módulos hay?
5. Obtener los nombres de los alumnos matriculados en LMSGI y sus notas ordenado
por notas.
6. Obtener los nombres y las calificaciones de los matriculados en FH que han aprobado.
Criterios de puntuación. Total 10 puntos.
Creación del XML-Schema que representa la estructura de la base de datos relacional
dada: 3 puntos.
Transformación de la BDR dada a XML 2 puntos.
Consulta 1: 0,5 puntos.
Consulta 2: 0,5 puntos.
Consulta 3: 1 punto.
Consulta 4: 1 punto.
Consulta 5: 1 punto.
Consulta 6: 1 punto.
Página 1 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
Recursos necesarios para realizar la Tarea.
Fichero LMSGI06_TARE_R01.sql (1.71 KB)
Procesador XML-Schema.
Motor XQuery.
Consejos y recomendaciones.
Se recomienda utilizar un editor XML como Editix, Oxygen XML o Stylus XML
Indicaciones de entrega.
Una vez realizada la tarea elaborarás un único documento donde figuren las respuestas
correspondientes. El envío se realizará a través de la plataforma de la forma establecida
para ello, y el archivo se nombrará siguiendo las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños.
Así por ejemplo la alumna Begoña Sánchez Mañas para la sexta unidad
del MP de LMSGI, debería nombrar esta tarea como...
sanchez_manas_begona_LMSGI06_Tarea
Página 2 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
Fichero XML (archivoXML.xml):
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<matricula xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="archivoXSD.xsd">
<alumnos>
<alumno cod="n12344345">
<apenom>Alcalde Garcia, Luis</apenom>
<direc>Las Manos, 24</direc>
<pobla>Lamadrid</pobla>
<telef>942756645</telef>
</alumno>
<alumno cod="n43483437">
<apenom>Gonzalez Perez, Olga</apenom>
<direc>Miraflor 28 - 3A</direc>
<pobla>Torres</pobla>
<telef>942564355</telef>
</alumno>
<alumno cod="n88234942">
<apenom>Fernandez Diaz, María</apenom>
<direc>Luisa Fernanda 53</direc>
<pobla>Miera</pobla>
<telef>942346945</telef>
</alumno>
</alumnos>
<asignaturas>
<asignatura cod="a1">
<nombre>FH</nombre>
</asignatura>
<asignatura cod="a2">
<nombre>FOL</nombre>
</asignatura>
<asignatura cod="a3">
<nombre>ISO</nombre>
</asignatura>
<asignatura cod="a4">
<nombre>LMSGI</nombre>
</asignatura>
<asignatura cod="a5">
<nombre>PAR</nombre>
</asignatura>
<asignatura cod="a6">
<nombre>GBD</nombre>
</asignatura>
</asignaturas>
<notas>
<nota>
<alum>n12344345</alum>
<asig>a1</asig>
<calificacion>4</calificacion>
</nota>
<nota>
Página 3 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
<alum>n43483437</alum>
<asig>a1</asig>
<calificacion>5</calificacion>
</nota>
<nota>
<alum>n88234942</alum>
<asig>a1</asig>
<calificacion>8</calificacion>
</nota>
<nota>
<alum>n12344345</alum>
<asig>a2</asig>
<calificacion>10</calificacion>
</nota>
<nota>
<alum>n43483437</alum>
<asig>a2</asig>
<calificacion>7</calificacion>
</nota>
<nota>
<alum>n88234942</alum>
<asig>a2</asig>
<calificacion>6</calificacion>
</nota>
<nota>
<alum>n12344345</alum>
<asig>a3</asig>
<calificacion>3</calificacion>
</nota>
<nota>
<alum>n88234942</alum>
<asig>a3</asig>
<calificacion>6</calificacion>
</nota>
<nota>
<alum>n12344345</alum>
<asig>a4</asig>
<calificacion>8</calificacion>
</nota>
<nota>
<alum>n43483437</alum>
<asig>a4</asig>
<calificacion>4</calificacion>
</nota>
<nota>
<alum>n12344345</alum>
<asig>a5</asig>
<calificacion>6</calificacion>
</nota>
<nota>
<alum>n12344345</alum>
<asig>a6</asig>
Página 4 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
<calificacion>9</calificacion>
</nota>
</notas>
</matricula>
Fichero XSD (archivoXSD.xsd)
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="matricula">
<xs:complexType>
<xs:sequence>
<xs:element ref="alumnos"/>
<xs:element ref="asignaturas"/>
<xs:element ref="notas"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="alumnos">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="alumno"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="alumno">
<xs:complexType>
<xs:sequence>
<xs:element ref="apenom"/>
<xs:element ref="direc"/>
<xs:element ref="pobla"/>
<xs:element ref="telef"/>
</xs:sequence>
<xs:attribute name="cod" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="apenom" type="xs:string"/>
<xs:element name="direc" type="xs:string"/>
<xs:element name="pobla" type="xs:string"/>
<xs:element name="telef" type="xs:integer"/>
<xs:element name="asignaturas">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="asignatura"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="asignatura">
<xs:complexType>
<xs:sequence>
<xs:element ref="nombre"/>
Página 5 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
</xs:sequence>
<xs:attribute name="cod" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="nombre" type="xs:string"/>
<xs:element name="notas">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="nota"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="nota">
<xs:complexType>
<xs:sequence>
<xs:element ref="alum"/>
<xs:element ref="asig"/>
<xs:element ref="calificacion"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="alum" type="xs:string"/>
<xs:element name="asig" type="xs:string"/>
<xs:element name="calificacion" type="xs:decimal"/>
</xs:schema>
Página 6 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
1. Obtener el nombre de todos los alumnos matriculados en algún
módulo.
for $a in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de Gestión de
Información\Tema 06\03 Tarea\archivoXML.xml") //alumno
return
<alumno>
{ $a/apenom }
</alumno>
Página 7 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
2. Obtener las calificaciones del alumno de código "n43483437" en
cada módulo.
for $a in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de
Gestión de Información\Tema 06\03 Tarea\archivoXML.xml") //nota
where $a/alum="n43483437"
return
<nota>
{$a/asig}{$a/calificacion}
</nota>
Página 8 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
3. Obtener el nombre y el teléfono de cada alumno ordenado por
apellidos de forma descendiente.
for $a in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de Gestión de
Información\Tema 06\03 Tarea\archivoXML.xml") //alumno
order by $a/apenom descending
return
<alumno>
{$a/apenom}{$a/telef}
</alumno>
Página 9 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
4. ¿Cuántos módulos hay?
count(doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de Gestión de
Información\Tema 06\03 Tarea\archivoXML.xml") //asignatura)
Página 10 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
5. Obtener los nombres de los alumnos matriculados en LMSGI y sus
notas ordenadas por notas.
for $a in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de
Gestión de Información\Tema 06\03 Tarea\archivoXML.xml") //alumno
for $b in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de
Gestión de Información\Tema 06\03 Tarea\archivoXML.xml") //nota
for $c in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de Gestión
de Información\Tema 06\03 Tarea\archivoXML.xml") //asignatura
where $a/@cod = $b/alum and $b/asig = $c/@cod and $c/nombre = "LMSGI"
order by $b/calificacion
return
<alumno>
{$a/apenom}{$b/calificacion}
</alumno>
Página 11 de 12
Francisco José Acosta Ruiz . 2º ASIRSEMI – Grupo A
6. Obtener los nombres y las calificaciones de los matriculados en FH
que han aprobado.
for $a in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de Gestión de
Información\Tema 06\03 Tarea\archivoXML.xml") //alumno
for $b in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de Gestión de
Información\Tema 06\03 Tarea\archivoXML.xml") //asignatura
for $c in doc("D:\Cursos Fran\2014-2015\03 LND Lenguaje de Marca y Sist. de Gestión de
Información\Tema 06\03 Tarea\archivoXML.xml") //nota
where $a/@cod = $c/alum and $c/asig = $b/@cod and $b/nombre = "FH" and
$c/calificacion >="5"
return
<alumno>
{$a/apenom}{$c/calificacion}
</alumno>
Página 12 de 12