parte 3 - consultas sql + servicios web + Índicesjbisbal/lectures/edi2/projecte/enunciat3.pdf ·...

13
27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios Web + Índices 12450 Estructuras de Datos y de la Información 2 Prácticas Laboratorio - Curso 2008-2009 Ernesto Arroyo Jesús Bisbal Philippe Roussel 3.1 Consultas SQL: Objetivo El objetivo de esta práctica es demostrar que sois capaces de utilizar el gestor de base de datos Oracle para crear una base de datos y ejecutar consultas SQL a la base de datos. 1. Se deberá escribir una memoria explicando los resultados de la práctica, incluyendo la pregunta, la consulta SQL, y los resultados, así como cualquier problema o consideraciones que hayan tenido. Las consultas deben incluirse en el fichero sin números de línea ni caracteres adicionales, de forma que sea fácil copiar y pegar en la base de datos para su corrección. 2. Se deberá depositar una versión electrónica dos ficheros en la carpeta compartida de la asignatura, en el directorio llamado “Entrega 3”. Un fichero con la memoria (Word, OpenOffice, PDF… no .zip, ni .rar) con nombre NIA1_NIA2.pdf (o .doc, etc). Y otro fichero comprimido con nombre NIA1_NIA2.rar. que incluya todos los ficheros (scripts) PHP desarrollados en la practica. 3. Se entregará una copia impresa de la memoria al profesor de Laboratorio. 4. Cualquier entrega vía e-mail será ignorada. Se supone que la entrega en versión electrónica se realiza desde las aulas situadas en la UPF. Si se puede hacer remotamente, es una ventaja de que disponéis, pero en ningún caso es un derecho. Es posible que los servidores de ficheros remotos no estén disponibles, por lo que debéis aseguraros que entregáis la práctica a tiempo. 5. Fecha limite 3 Diciembre 2008 a las 15:00. Objetivo El objetivo de esta práctica de laboratorio es crear servicios web basados en PHP y SQL para gestionar la base de datos de un sitio web que muestra videos en distintos formatos y configuraciones. No es necesario escribir la aplicación PHP, se os entregará como parte del enunciado. Como la longitud de los videos es demasiado larga, el sitio web muestra caricaturas generadas a partir de un video que resume en cierta manera el contenido del video. Configuración Base de Datos Esta práctica utiliza la misma base de datos de la practica 2. Hasta el momento la Base de datos no cuenta con ningún campo en la relación selección (relación entre Intervalo- composicio-cartoon), por lo que se deberá crear esta relación, llamarla composicio_frames e insertar valores una vez creada siguiendo las siguientes instrucciones:

Upload: tranngoc

Post on 11-Mar-2018

222 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

27 Noviembre 2008 Universitat Pompeu Fabra 1

Parte 3 - Consultas SQL + Servicios Web + Índices 12450 Estructuras de Datos y de la Información 2

Prácticas Laboratorio - Curso 2008-2009

Ernesto Arroyo Jesús Bisbal

Philippe Roussel

3.1 Consultas SQL:

Objetivo El objetivo de esta práctica es demostrar que sois capaces de utilizar el gestor de base de datos Oracle para crear una base de datos y ejecutar consultas SQL a la base de datos.

1. Se deberá escribir una memoria explicando los resultados de la práctica, incluyendo la pregunta, la consulta SQL, y los resultados, así como cualquier problema o consideraciones que hayan tenido. Las consultas deben incluirse en el fichero sin números de línea ni caracteres adicionales, de forma que sea fácil copiar y pegar en la base de datos para su corrección.

2. Se deberá depositar una versión electrónica dos ficheros en la carpeta compartida de la asignatura, en el directorio llamado “Entrega 3”. Un fichero con la memoria (Word, OpenOffice, PDF… no .zip, ni .rar) con nombre NIA1_NIA2.pdf (o .doc, etc). Y otro fichero comprimido con nombre NIA1_NIA2.rar. que incluya todos los ficheros (scripts) PHP desarrollados en la practica.

3. Se entregará una copia impresa de la memoria al profesor de Laboratorio. 4. Cualquier entrega vía e-mail será ignorada. Se supone que la entrega en versión

electrónica se realiza desde las aulas situadas en la UPF. Si se puede hacer remotamente, es una ventaja de que disponéis, pero en ningún caso es un derecho. Es posible que los servidores de ficheros remotos no estén disponibles, por lo que debéis aseguraros que entregáis la práctica a tiempo.

5. Fecha limite 3 Diciembre 2008 a las 15:00.

Objetivo El objetivo de esta práctica de laboratorio es crear servicios web basados en PHP y SQL para gestionar la base de datos de un sitio web que muestra videos en distintos formatos y configuraciones. No es necesario escribir la aplicación PHP, se os entregará como parte del enunciado. Como la longitud de los videos es demasiado larga, el sitio web muestra caricaturas generadas a partir de un video que resume en cierta manera el contenido del video.

Configuración Base de Datos Esta práctica utiliza la misma base de datos de la practica 2. Hasta el momento la Base de datos no cuenta con ningún campo en la relación selección (relación entre Intervalo-composicio-cartoon), por lo que se deberá crear esta relación, llamarla composicio_frames e insertar valores una vez creada siguiendo las siguientes instrucciones:

Page 2: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 2

1. Ejecutar el archivo SQL para crear la relación composicio_frames: a. 1_Create_Composicio_frames[pregunta-18-practica2].sql

2. Ejecutar el archivo SQL para insertar elementos la nueva tabla creada: a. 2_inserts_composicio_frames.sql

3. Actualizar los campos de la Base de Datos que hacen referencia al campo URL a. Las imágenes serán accesibles desde un servidor web

i. http://edi2.aules.upf.edu/Imatges/ 4. Asegurarse que las imágenes son accesibles desde el servidor

edi2.aules.upf.edu a. La imágenes se almacenan siguiendo un estructura de archivos que

incluye una carpeta con el nombre del video, y varias carpetas para el tipo de filtro utilizado para convertirla imagen. La ruta de acceso a las imágenes tiene el siguiente formato:

i. /NOM_VIDEO/NOM_FILTRO/NOM_IMATGE.png b. Ejemplo de ruta completa:

i. http://edui2.aules.upf.edu/Imatges/646_FUTBOL_ENTRENAMENT_EN_SOLITARI_DE_RONALDINHO/Normal/Normal270.png

PARTE III La empresa de MedSpain ha creado un sitio web basado en flash para entender y conocer la opinión de los usuarios sobre varios videos que producen sus clientes. A MedSpain les interesa conocer cuales son los frames de un video que mejor representan dicho video. La empresa utilizará este sitio web para lograr que los usuarios etiqueten los distintos frames a base de comentarios y guiones. El sitio web utilizará las votaciones de los usuarios para encontrar los frames y la visualización que mejor represente un video de acuerdo a su popularidad..

Servicios web La compañía MedSpain ha desarrollado una interfaz basada en flash que le permitirá mostrar videos en forma de frames utilizando una página web. La interfaz de visualización utiliza una arquitectura cliente-servidor, lo que permite separar los datos de la interfaz (ver ilustración 1). Por el lado del servidor, la compañía solícita servicios web desarrollados en PHP. PHP es un lenguaje de programación interpretado utilizado generalmente para la creación de contenido para Sitios web dynamicos. La siguiente URL incluye un guía sobre el uso de PHP y SQL en los servidores de la asignatura. La guía tiene toda la información necesaria para poder resolver esta práctica de laboratorio:

http://www.tecn.upf.es/~jbisbal/lectures/edi2/projecte/Lliurement3/TutorialPHP.htm Deben trabajarse los ejercicios de la guía antes de empezar a resolver la práctica propuesta.

Page 3: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 3

Ilustración 1 Arquitectura cliente-servidor de los servicios utilizados par la visualización de videos

La interfaz desarrollada por la compañía MedSpain requiere de ciertos servicios web para recibir datos de la Base de datos y visualizarlos adecuadamente. La interfaz recibe datos de los servicios web en formato XML. XML es una especificación que sirve para guardar y estructurar datos, para que sean transmitidos a través de la web. Es decir, XML es un documento de texto que cumple ciertas reglas que le permiten estructurar la información. El siguiente ejemplo ilustra un XML básico que estructura la información de los alumnos de la asignatura edi2: <?xml version="1.0"?> <!-- Nombre del archivo: asignatura.xml --> <edi2> <alumno> <nombre>Alejandro Magno</nombre> <telefono>4875421</telefono> <direccion>Calle 59 #78-54 Granados</direccion> <email>[email protected]</email> </alumno> <alumno> <nombre>Juan Perez </nombre> <telefono>2954544</telefono> <direccion>Calle 59 #78-56 Granados</direccion> <email>[email protected]</email> </alumno> </edi2> La característica principal del formato XML es que toda la información se encuentra estructurada en base a elementos (por ejemplo “alumno”, “nombre”) delimitados por sus tags de inicio (<alumno>) y final (</alumno>).

Servicios La siguiente sección define los parámetros y salida de cada uno de los servicios que requerirá la interfaz flash. Los servicios web están estructurados en forma de ficheros php, en donde cada fichero corresponde a un servicio diferente. Por ejemplo, el fichero getVideos.php consulta la base de datos haciendo una llamada SQL para encontrar los

Cliente

OCI8

HTTP

HTTP

XML

APACHE

ORACLE 11g Base de datos edi2

NAVEGADOR

Interfaz FLASH

Imágenes

Servicios Web PHP

Servidor

Page 4: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 4

videos disponibles en la base de datos (no recibe ningún parámetro). Mientras que el fichero getCompositions.php recibe el ID del video a buscar y hace una llamada SQL para encontrar las composiciones que pertenecen al ID del video. Los servicios son llamados directamente por la interfaz flash, tal y como se explicará en la siguiente sección, pero también pueden ser llamados desde el navegador con un URL estructurado de la siguiente manera: http://edi2.aules.upf.edu/~uxxxx/scripts/getCompositions.php?videoID=2&var2=cadena La siguiente tabla describe cada componente de la URL:

COMPONENTE DESCRIPCION http://edi2.aules.upf.edu URL del servidor /~uxxxx/ Carpeta publica del usuario uxxxx scripts/ Carpeta donde deberán estar ubicados los archivos

PHP getCompositions.php Servicio web PHP ? Indica la existencia de parámetros del tipo GET videoID Nombre del primer parámetro (variable que se envía) = Denota asignación de un valor al parámetro 2 Valor asignado a la variable videoID & Separador parámetros (variables enviadas) var2 Nombre del segundo parámetro (variable que se envía) Cadena Valor asignado a la variable var2

Servicios a desarrollar Se han de desarrollar nuevos servicios a partir de los servicios PHP de ejemplo dados en la guía de PHP. Estos servicios deberán aceptarán parámetros, los cuales servirán para generar un petición SQL al gestor de BD del proyecto. De dichos servicios depende que la visualización flash funcione adecuadamente. N Servicio Descripción Parámetros 1 getVideos.php Lista todos los videos de la BD.

Devuelve un XML con videoID y nombre del video

Ninguno

“para cada video” se refiere a que se generara un elemento <video> ... </video>por cada video

Page 5: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 5

encontrado en la base de datos

2 getCompositions.php Lista las composiciones disponibles para un video. Devuelve un XML con compID.

videoid

3 firstquery.php Devuelve un XML para la

composición del video solicitado - videoid - composicioid

Page 6: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 6

4 secondquery.php Muestra las posibles imágenes (cartoons) a mostrar para cada intervalo. Devuelve un XML con la información del intervalo de la composición y video solicitado con la siguiente estructura:

- videoid - composicioid - intervalid

<votacions_ID> se refiere al ID del “concepto votable”.

5 addingvot.php Agrega votos positivos y/o

negativos. Devuelve un XML, con la votación involucrada. Es decir si se ha modificado unas votaciones X, se devuelve su estado actual con la siguiente estructura

- option - votid - positius - negatius

<vot_ID> se refiere al ID del “concepto votable”.

Option: 0 – agrega N votos negativo a votid

Page 7: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 7

1 – agrega N votos positivos a votid 2 – agrega N votos positivos y negativoivos a votid N = recibe el valor de los parámetros positius y negatius

6 addingcom.php Servicio para consultar y agregar

comentarios (notas) a videos y guiones (anotaciones) a intervalos. Tiene cuatro opciones en el parámetro option : 0-> muestra comentarios del video 1-> muestra comentarios del intervalo 2-> agrega comentario (comm) al video (videoid) 3-> agrega comentario (comm) al intervalo (intervalid) Devuelve la información que se introducido en la base de datos, mostrada en formato XML.

- videoid - intervalid - option - comm [string] - usuari [string]

<Comentari_v_ID> se refiere a la clave primaria de la tabla notas, según la solución propuesta. Si esta tabla no dispone de un atributo identificador, debe crearse con el tipo “autoincrement”.

Page 8: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 8

<Comentari_i_ID> se refiere a la clave primaria de la tabla anotaciones, según la solución propuesta. Si esta tabla no dispone de un atributo identificador, debe crearse con el tipo “autoincrement”.

Option 2: Devuelve un mensaje de confirmación

Option 3: Devuelve un mensaje de confirmación

8 popularframe.php El frame mas votado (con un mayor numero de votos) de toda la BD, o de un video en especifico

- videoid (opcional)

XML con videoid, votos positivos, votos negativos, total votos. Además se deberá incluir la siguiente información del la imagen (cartoon) con mayor numero de votos correspondiente al frame mas popular

Se utiliza addingvot.php para obtener la cantidad de votos

Page 9: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 9

9 topframe.php Devuelve el frame mas votado positivamente de toda la base de datos o de un video en especifico

- videoid (opcional)

XML con videoid, votos positivos, votos negativos, total votos. Además se deberá incluir la siguiente información de la imagen (cartoon) con mayor numero de votos positivos correspondiente al frame con mayor numero de votos positivos:

Se utiliza addingvot.php para obtener la cantidad de votos

10 INDEXACION Crear todos los índices

necesarios, y apropiados, para optimizar las consultas a la base de datos, en función del tipo de consultas realizadas por los script PHP descritos con anterioridad.

Visualización Flash El archivo SWF incluye una interfaz en flash que realiza llamadas a servicios web para visualizar los contenidos de una base de datos del tipo descrita en la práctica 2 de laboratorio. La interfaz incluye todas las funcionalidades que permitirán a los usuarios interactuar con la visualización (votar, comentar, modificar guiones, etc). La interfaz flash se comunica con los servicios por medio de parámetros enviados al script PHP, mientras que los servicios web generan toda la información que requiere la interfaz en formato XML. La siguiente sección describe los componentes de la interfaz y los servicios PHP a los que accede.

Page 10: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 10

Agrega voto (+-) a un frame addingvot.php

Agrega voto (+) a un video addingvot.php

Muestra video_ID y comp_ID

Agrega un guión nuevo al intervalo addingcom.php Guión del intervalo

Al iniciar la página se carga secondquery.php Muestra guión siguiente o anterior

Lista los videos disponibles en la base de datos getVideos.php

Obtiene las composiciones que pertenecen a un video getCompositions.php

Muestra visualmente la composición de un video firstquery.php

Page 11: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 11

La interfaz esta disponible en:

http://edi2.aules.upf.edu/interfaz.tar Conectarse con Putty a edi2.aules.upf.edu y ejecutar lo siguientes comandos: cd public_html wget http://edi2.aules.upf.edu/interfaz.tar tar -xvf interfaz.tar chmod 755 interfaz/ Se podrá acceder la interfaz flash en cualquier navegador con la siguiente URL: http://edi2.aules.upf.edu/~uxxxx/interfaz/VideoCartoon.swf Una versión funcional de la interfaz esta disponible en:

http://upf.ernestoarroyo.com/folktooning/toons_flex/VideoCartoon.swf A medida que se vayan completando los servicios y los añadan a la capeta scripts, la interfaz mostrara los resultados apropiados. La interfaz flash tiene dos páginas, la primera lista todos los videos y sus composiciones disponibles en la Base de Datos. La segunda muestra la composición del video seleccionado en primera página. Cada una de estas páginas accede a los servicios web descritos en la sección anterior y depende de los XML generados para mostrar datos válidos.

Muestra los comentarios de un video (video_ID) addingcom.php

Añade un comentario a un video addingcom.php

Page 12: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 12

Ilustración 2 Interfaz: muestra composición de un video. Permite votar y agregar guiones

Pruebas de usuario Una vez terminado el proyecto, deberás probar la interfaz y sus servicios con al menos 5 usuarios para recoger datos realistas. Estas personas deberán utilizar tu interfaz para dar su opinión de dos videos de la base de datos. Toda la información sobre la interacción de los usuarios (votos, comentarios, guiones) deberá ser incluida en la base de datos antes de crear la documentación del proyecto. NOTA: Recuerda asignar tiempo suficiente para completar esta parte de la práctica. Ten en cuenta que la máquina edi2.aules.upf.edu no es accesible desde fuera de la UPF. Por ello, los usuarios deben probar tu aplicación desde la UPF. Las consultas que deben ser incluidas en los script PHP deben probarse, primero, en la base de datos directamente, con la consola tal y como se hizo en la práctica 2. Una vez se ha comprobado que funcionan correctamente, se pueden poden dentro del script correspondiente para comprobar la salida en formato XML. Estas consultas deben aparecer, independiente de su script, en la memoria de esta práctica, junto con sus resultados.

Entrega 3 1. Memoria explicando los resultados de la práctica con capturas de pantalla de la

salida de los servicios desarrollados. Las capturas deberán mostrar el navegador, y la url del script en la barra de direcciones y la salida XML. Solo una página de resultados por script.

2. Consultas SQL y sus resultados, incluyendo el enunciado de la consulta. Explicación y justificación de los índices creados, y también de los no creados. Las consultas deben incluirse en el fichero sin números de línea ni caracteres adicionales, de forma que sea fácil copiar y pegar en la base de datos para su corrección. Incluir cualquier problema o consideraciones que hayan tenido.

Page 13: Parte 3 - Consultas SQL + Servicios Web + Índicesjbisbal/lectures/edi2/projecte/Enunciat3.pdf · 27 Noviembre 2008 Universitat Pompeu Fabra 1 Parte 3 - Consultas SQL + Servicios

EDI-2 Prácticas Parte 3 – PHP, SQL e Indexación

27 Noviembre 2008 Universitat Pompeu Fabra 13

3. Liga a los servicios desarrollados. Deberán estar ubicados en http://edi2.aules.upf.edu/~uXXXXX/scripts/

4. Liga a la interfaz flash. Deberá estar accesible en http://edi2.aules.upf.edu/~uXXXXX/interfaz/videocartoons.swf

NOTA: Es muy importante crear un script y después intentar probarlo en la interfaz flash. Así se puede observar el progreso de la práctica. Si no se pueden acabar todos los script, al menos el profesor podrá juzgar el avance realizado. No es aconsejable crear primero todos los script, y después ver su resultado con la interfaz flash. REFERENCIAS http://php.ciberaula.com/articulo/introduccion_php/

Copia de Prácticas En caso de copia del diseño o de la memoria de la práctica (entre equipos, o de otras fuentes) todos los integrantes de los equipos involucrados suspenderán la asignatura, y el Departamento de Tecnología abrirá expediente solicitando la expulsión temporal de los estudiantes.