scieee AI-readable full text Open interactive document viewer

Consulta web de las ediciones de LexDatum

París Dehesa, Miguel

Abstract

Grado en Ingeniería Informática

Full text

Escuela de Ingeniería Informática TRABAJO FIN DE GRADO Grado en Ingeniería Informática Mención Ingeniería del Software Consulta web de las ediciones de LexDatum Autor: Miguel París Dehesa Tutor: Mercedes Martínez González TFG - Consulta web de las ediciones de LexDatum. Página 2 TFG - Consulta web de las ediciones de LexDatum. Página 3 Agradecimientos En primer lugar, como no podía ser de otra manera, me gustaría agradecer a Mercedes Martínez González por ser la tutora de mi trabajo fin de grado. En segundo lugar, a mi familia. Sin ellos no habría sido posible la finalización de este grado de Ingeniería Informática. Gracias a mis padres, Miguel y María Félix, y en especial a mi hermana Ana. TFG - Consulta web de las ediciones de LexDatum. Página 4 TFG - Consulta web de las ediciones de LexDatum. Página 5 Resumen El objetivo de este trabajo de finde de grado es la creación de una aplicación web que nos permita consultar todos los datos de LexDatum. Para ello previamente recogeremos los datos de todas las ediciones de LexDatum y crearemos nuestra base de datos. Esta base de datos estará alojada en dos sitos diferentes, tanto en local como en la nube, por lo que nuestra aplicación web deberá poder mostrar el contenido de ambas. TFG - Consulta web de las ediciones de LexDatum. Página 6 TFG - Consulta web de las ediciones de LexDatum. Página 7 Tabla de Contenidos Agradecimientos ............................................................................................................................... 3 Resumen ........................................................................................................................................... 5 Lista de tablas ................................................................................................................................. 11 Lista de figuras ................................................................................................................................ 13 Capítulo 1. Introducción .................................................................................................................. 15 1.1. Motivación ....................................................................................................................................... 15 1.2. Objetivos.......................................................................................................................................... 15 1.3. Entorno ............................................................................................................................................ 16 1.4. Estructura de la memoria ................................................................................................................ 16 Capítulo 2. Planificación .................................................................................................................. 17 2.1. Alcance, propósitos y objetivos ....................................................................................................... 17 2.2. Plan de proceso ............................................................................................................................... 17 2.3. Fases e iteraciones .......................................................................................................................... 18 2.4. Gestión de proceso .......................................................................................................................... 19 2.5. Plan de control ................................................................................................................................ 19 2.5.1. Control de requisitos ................................................................................................................ 19 2.5.2. Control de calendario ............................................................................................................... 19 2.5.3. Plan de gestión de recursos...................................................................................................... 20 2.5.4. Plan de trabajo ......................................................................................................................... 20 2.5.5. Plan de gestión de riesgos ........................................................................................................ 28 2.6. Informe de seguimiento del proyecto ............................................................................................. 31 Capítulo 3. Entorno tecnológico ....................................................................................................... 33 3.1. Herramientas utilizadas ................................................................................................................... 33 3.2. Entorno de desarrollo ...................................................................................................................... 34 3.3. Tecnologías web por parte del cliente ............................................................................................ 34 3.3.1. Navegador web ........................................................................................................................ 34 3.3.2. HTML ........................................................................................................................................ 34 3.3.3. CSS ............................................................................................................................................ 35 3.4. Tecnologías web por parte del servidor .......................................................................................... 37 TFG - Consulta web de las ediciones de LexDatum. Página 8 3.4.1. PHP ........................................................................................................................................... 37 3.4.2. PDO ........................................................................................................................................... 38 3.4.3. MySQL ...................................................................................................................................... 38 3.4.4. MVC .......................................................................................................................................... 39 3.5. Google Cloud Platform .................................................................................................................... 40 3.5.1. Cloud SQL ................................................................................................................................. 40 Capítulo 4. Análisis .......................................................................................................................... 41 4.1. Entorno ............................................................................................................................................ 41 4.2. Requisitos ........................................................................................................................................ 41 4.2.1. Requisitos funcionales .............................................................................................................. 42 4.2.2. Requisitos no funcionales ......................................................................................................... 43 4.2.3. Requisitos de información ........................................................................................................ 43 4.3. Objetivos del sistema ...................................................................................................................... 44 4.4. Casos de Uso .................................................................................................................................... 44 4.4.1. Roles ......................................................................................................................................... 44 4.4.2. Diagrama de casos de uso ........................................................................................................ 45 4.4.3. Especificación de casos de uso ................................................................................................. 46 4.5. Modelo de domino inicial ................................................................................................................ 53 4.6. Diagrama de secuencia en la etapa de análisis ............................................................................... 53 Capítulo 5. Diseño ........................................................................................................................... 55 5.1. Introducción .................................................................................................................................... 55 5.2 Arquitectura ..................................................................................................................................... 55 5.2.1. Arquitectura del MVC ............................................................................................................... 55 5.3. Diseño de la base de datos .............................................................................................................. 57 5.3.1. Modelo conceptual .................................................................................................................. 57 5.3.2. Modelo relacional ..................................................................................................................... 58 5.4. Recogida de datos ........................................................................................................................... 59 5.4.1. Protección de datos .................................................................................................................. 60 5.5. Diagramas de clases de diseño ........................................................................................................ 60 5.5.1. Paquete de controladores ........................................................................................................ 60 5.5.2. Paquete de modelos ................................................................................................................. 61 5.6. Comunicación entre paquetes ........................................................................................................ 62 Capítulo 6. Implementación ............................................................................................................. 63 6.1. Introducción .................................................................................................................................... 63 6.2. Controlador ..................................................................................................................................... 64 6.3. Modelo ............................................................................................................................................ 65 6.4. Vista ................................................................................................................................................. 66 TFG - Consulta web de las ediciones de LexDatum. Página 9 Capítulo 7. Google Cloud SQL. Comparativa de ambas soluciones ..................................................... 67 7.1 Google Cloud SQL ............................................................................................................................. 67 7.1.1 Características ........................................................................................................................... 67 7.1.2. Funcionalidad de Cloud SQL y MySQL ...................................................................................... 68 7.1.3. Configuración ........................................................................................................................... 68 7.1.4. Conexión ................................................................................................................................... 69 7.1.5. Gráficas ..................................................................................................................................... 70 7.1.6. Datos económicos .................................................................................................................... 71 7.2 Comparativa de ambas soluciones. .................................................................................................. 72 7.2.1. Facilidad de uso ........................................................................................................................ 73 7.2.2. Seguridad .................................................................................................................................. 73 7.2.3. Funcionalidad ........................................................................................................................... 73 7.2.4. Potencia .................................................................................................................................... 74 7.2.5. Soporte y desarrollo ................................................................................................................. 74 7.2.6. Capacidad de integración ......................................................................................................... 74 7.2.7. Escalabilidad ............................................................................................................................. 75 7.2.8. Coste ......................................................................................................................................... 75 Capítulo 8. Pruebas ......................................................................................................................... 77 8.1. Introducción .................................................................................................................................... 77 8.2. Pruebas de caja negra ..................................................................................................................... 77 8.3. Pruebas de seguridad ...................................................................................................................... 82 Capítulo 9. Conclusiones y trabajo futuro ......................................................................................... 83 9.1. Conclusiones .................................................................................................................................... 83 9.2. Trabajo futuro ................................................................................................................................. 84 Capítulo 10. Bibliografía .................................................................................................................. 85 Apéndice A. Manual de instalación .................................................................................................. 87 A.1. Introducción .................................................................................................................................... 87 A.2. Requisitos previos a la instalación de la aplicación ........................................................................ 87 A.2.1. Servidor Web ............................................................................................................................ 87 A.2.2. Creación de la Base de Datos en local...................................................................................... 89 A.2.3. Creación de la Base de Datos en Google Cloud SQL ................................................................ 90 A.2.4. Instalación de la aplicación ...................................................................................................... 93 Apéndice B. Manual de usuario ....................................................................................................... 95 B.1. Página principal ........................................................................................................................... 95 B.3. Ediciones ..................................................................................................................................... 96 B.4. Ponentes ...................................................................................................................................... 99 B.5. Materiales ................................................................................................................................. 101 TFG - Consulta web de las ediciones de LexDatum. Página 16 • Importación de la base de datos local a un base de datos en la nube (Google Cloud SQL), para una posterior consulta a dicha base de datos desde nuestra aplicación web. • Análisis y comparación de la solución obtenida con Google Cloud SQL respecto a nuestra base de datos alojada en el maqui virtual de la Escuela. 1.3. Entorno El entorno del proyecto estará enfocado hacia todas las ediciones de LexDatum. Disponemos de la web oficial de LexDatum y de los trípticos de todas las ediciones. A partir de ahí, recogeremos los datos de todas las ediciones en un fichero para posteriormente crear la base de datos de nuestra aplicación. 1.4. Estructura de la memoria Esta memoria describe la realización del Trabajo de Fin de Grado y contiene los siguientes capítulos: 1. Introducción: Se describe el motivo, los objetivos y el entorno de este proyecto. 2. Planificación: En este capítulo se detalla toda la planificación y la metodología de trabajo utilizada en el proyecto. 3. Entono tecnológico: Se describen las herramientas, entornos, tecnologías y lenguajes utilizados en este trabajo. 4. Análisis: En este capítulo se detalla todos los casos de uso del proyecto, junto a su modelo de dominio. 5. Diseño: Se describe la arquitectura del sistema, diseño de la base de datos y la interfaz. 6. Implementación: Se explica en detalle la implementación de la aplicación. 7. Google Cloud SQL: En este capítulo explicamos las características de esta Base de datos. 8. Pruebas: Se detalla todo lo relacionado con el proceso de pruebas realizado. 9. Conclusiones y trabajo futuro: Se explican las conclusiones extraídas de la realización del proyecto y la consecución de los objetivos. 10. Bibliografía: Se adjunta la bibliografía del documento. 11. Anexos: Se incluye el manual de usuario, manual de instalación, contenido del CD y el script de la base de datos. TFG - Consulta web de las ediciones de LexDatum. Página 17 Capítulo 2. Planificación A continuación, se presenta de forma general la planificación del proyecto. Para ello utilizaremos los apuntes y transparencias de la asignatura de Planificación y Gestión de Proyectos (Pablo de la Fuente Redondo)[1]. 2.1. Alcance, propósitos y objetivos El objetivo de este proyecto es elaborar una aplicación web que facilite la consulta de datos de las ediciones de LexDatum, principalmente las ediciones, sesiones, ponentes y materiales. Dichos datos estarán almacenados en una base de datos local y en una base de datos en la nube. 2.2. Plan de proceso El Proceso Unificado (RUP)[1] es un proceso de desarrollo de software. Según sus desarrolladores es más que un proceso, es un marco de trabajo genérico que puede especializarse para gran cantidad de sistemas de software, diferentes áreas de aplicación, diferentes tipos de organizaciones, etc. Está basado en componentes, lo que indica que el sistema a construir estará formado por componentes software interconectados a través de interfaces. Utiliza UML como lenguaje de modelado. Los tres elementos claves que resumen el proceso unificado son: • Dirigido por los casos de uso. • Centrado en la arquitectura. • Iterativo e incremental. TFG - Consulta web de las ediciones de LexDatum. Página 18 2.3. Fases e iteraciones Ilustración 1. Fases e iteraciones • Fase de Inicio. En esta fase se establece el ámbito y los límites del proyecto, incluyendo conceptos operativos y criterios de aceptación. Se localizan los casos de uso críticos y los escenarios principales que dirigirán los objetivos fundamentales del diseño. • Fase de Elaboración. En esta fase se analizará el dominio del problema. Se establecerá una arquitectura base sólida. Finalmente se desarrollará un plan de proyecto ajustado para la fase de construcción. • Fase de Construcción. En esta fase debemos de conseguir tener un producto funcional con una calidad adecuada y con diferentes versiones utilizables. • Fase de Transición. En esta fase se entregará un producto final al cliente que cumple con el criterio de evaluación fijado en la visión inicial del proyecto. Debemos de conseguir que el cliente sea capaz de mantener el producto, por lo que se crearan también artefactos como son el manual de usuario, etc. TFG - Consulta web de las ediciones de LexDatum. Página 19 2.4. Gestión de proceso A continuación, se presentarán los conocimientos básicos tanto de herramientas como de lenguajes de programación, para la realización de este proyecto de fin de grado. • PHP para la parte de backend. • HTML para el desarrollo de páginas web. • CSS para el diseño gráfico de la página web. • Conocimientos básicos de Apache. • Base de datos MySQL y SQL Cloud. • Patrón modelo vista controlador MVC. 2.5. Plan de control 2.5.1. Control de requisitos El control de requisitos es un aspecto importante del proyecto, ya que una variación de estos supone grandes cambios en el desarrollo. En nuestro proyecto todos los requisitos están fijados desde el inicio y no van a sufrir ningún tipo de modificación. 2.5.2. Control de calendario Para el control del calendario hemos utilizado la herramienta Microsoft Project[2]. Este software no vas a permitir gestionar el calendario, indicando el estado de las actividades y la creación de los diagramas de Gantt. TFG - Consulta web de las ediciones de LexDatum. Página 20 2.5.3. Plan de gestión de recursos Los recursos disponibles para la realización del proyecto son: • Alumno: persona encargada de realizar este trabajo de fin de grado. • Máquina virtual: ofrecida por la Escuela de Ingeniería Informática para alojar y desplegar la aplicación. • Portátil: ordenador personal para el desarrollo del proyecto. • Google Cloud Platform: versión de prueba de 12 meses con un cupón de 300€. • Google Cloud SQL: base de datos alojada en la nube. 2.5.4. Plan de trabajo En este apartado vamos a describir las actividades realizas en cada una de las 4 fases: Inicio, Elaboración, Construcción y Transición. FASE DE INICIO Id:01 Comienzo - Fase de inicio Predecesoras - Duración 0 días / hombre. Descripción Se inician las actividades de la fase de inicio. Tabla 1. Actividad 01: Comienzo - Fase de inicio Id:02 Definir actividades Predecesoras Id:01. Duración 3 días / hombre. Descripción Definición y estimación en tiempo de las actividades correspondientes para la finalización del proyecto. Tabla 2. Actividad 02: Definir actividades TFG - Consulta web de las ediciones de LexDatum. Página 21 Id:03 Control de riesgos Predecesoras Id:02. Duración 1 días / hombre. Descripción Estudio de los riesgos que pueden acontecer a lo largo del proceso de desarrollo del proyecto. Especificar plan de actuación en cada riesgo. Tabla 3. Actividad 03: Control de riesgos Id:04 Calendario Predecesoras Id:03. Duración 1 días / hombre. Descripción Creación de un calendario aproximado en función de las actividades estimadas. Creación de un diagrama de Gantt para cada una de las cuatro fases. Tabla 4. Actividad 04: Calendario Id:05 Copias de seguridad Predecesoras Id:01. Duración 1 días / hombre. Descripción Sincronización en Google Drive de cada uno de los archivos utilizados en el proyecto. Tabla 5. Actividad 05: Copias de seguridad Id:06 Fin - Fase de inicio Predecesoras Id:04;05. Duración 0 días / hombre. Descripción Finalizan las actividades de la fase de inicio. Tabla 6. Actividad 06: Fin - Fase de inicio Ilustración 2. Diagrama Gantt: Fase de inicio TFG - Consulta web de las ediciones de LexDatum. Página 22 FASE DE ELEABORACIÓN Id:07 Inicio - Fase de elaboración Predecesoras Id:06. Duración 0 días / hombre. Descripción Se inician las actividades de la fase de elaboración. Tabla 7. Actividad 07: Inicio - Fase de elaboración Id:08 Elicitar recursos Predecesoras Id:07. Duración 5 días / hombre. Descripción Obtención de los requisitos del sistema: • Funcionales. • No funcionales. • De información. • Objetivos. Tabla 8. Actividad 08: Elicitar recursos Id:09 Casos de uso Predecesoras Id:08. Duración 5 días / hombre. Descripción Definición de los casos de uso del sistema utilizando REM. Tabla 9. Actividad 09: Casos de uso Id:10 Modelo de dominio Predecesoras Id:09. Duración 3 días / hombre. Descripción Creación del modelo de dominio utilizando UML. Tabla 10. Actividad 10: Modelo de dominio Id:11 Recogida de datos Predecesoras Id:10. Duración 4 días / hombre. Descripción Recompilar y almacenar todos los datos de todas las ediciones (ediciones, sesiones, ponentes, etc.) en un fichero de datos. Tabla 11. Actividad 11: Recogida de datos TFG - Consulta web de las ediciones de LexDatum. Página 23 Id:12 Diagrama de secuencia Predecesoras Id:11. Duración 1 días / hombre. Descripción Creación de los diagramas de secuencias de varias consultas. Tabla 12. Actividad 12: Diagrama de secuencia Id:13 Modelo de despliegue Predecesoras Id:12. Duración 2 días / hombre. Descripción Creación del modelo de despliegue indicando donde están alojadas nuestras dos bases de datos utilizando UML. Tabla 13. Actividad 13: Modelo de despliegue Id:14 Base de datos Predecesoras Id:12. Duración 15 días / hombre. Descripción Diseñar la estructura de la base de datos: • Modelo conceptual. • Modelo relacional. • Scripts (creación, inserción y borrado). • Test. Tabla 14. Actividad 14: Base de datos Id:15 Interfaz de usuario Predecesoras Id:08. Duración 4 días / hombre. Descripción Diseñar las vistas de la aplicación siguiendo el estilo y la gama de colores de la web oficial de LexDatum. Tabla 15. Actividad 15: Interfaz de usuario Id:16 Arquitectura del sistema Predecesoras Id:12. Duración 3 días / hombre. Descripción Diseño de la arquitectura del sistema utilizando el patrón MVC. Tabla 16. Actividad 16: Arquitectura del sistema TFG - Consulta web de las ediciones de LexDatum. Página 24 Id:17 Fin - Fase de Elaboración Predecesoras Id:13;14;15;16. Duración 0 días / hombre. Descripción Finalizan las actividades de la fase de Elaboración. Tabla 17. Actividad 17: Fin - Fase de Elaboración Ilustración 3. Diagrama Gantt: Fase de Elaboración FASE DE CONSTRUCCIÓN Id:18 Inicio - Fase de Construcción Predecesoras Id:17 Duración 0 días / hombre. Descripción Se inician las actividades de la fase de construcción. Tabla 18. Actividad 18: Inicio - Fase de Construcción Id:19 Instalación de LAMP Predecesoras Id:18 Duración 1 días / hombre. Descripción Instalación del software necesario en el entorno de producción. Dicho entorno nos lo proporciona la Escuela de Ingeniera Informática de Valladolid, cuya versión es: Ubuntu 18.04. • Instalar Apache Server 2 • Instalar MySQL • Instalar PHP Tabla 19. Actividad 19: Instalación de LAMP TFG - Consulta web de las ediciones de LexDatum. Página 25 Id:20 Instalación de XAMPP Predecesoras Id:19 Duración 1 días / hombre. Descripción Instalación de XAMPP en Windows 10 (Apache, MariaDB, PHP, Perl). Tabla 20. Actividad 20: Instalación de XAMPP Id:21 Entorno de desarrollo Predecesoras Id:20 Duración 1 días / hombre. Descripción Instalación del entorno de desarrollo en Windows 10. • Instalar NetBeans IDE 8.2. • Instalar Notepad++. Tabla 21. Actividad 20: Entorno de desarrollo Id:22 Implementación de las vistas Predecesoras Id:21 Duración 6 días / hombre. Descripción Implementar las vistas siguiendo el estilo y la gama de colores de la web oficial de LexDatum. Tabla 22. Actividad 22: Implementación de las vistas Id:23 Implementación de los controladores Predecesoras Id:22 Duración 10 días / hombre. Descripción Implementación de los controladores siguiendo el modelo vista controlador. Tabla 23. Actividad 23: Implementación de los controladores Id:24 Implementación de los modelos Predecesoras Id:22 Duración 10 días / hombre. Descripción Implementación de los modelos siguiendo el modelo vista controlador. Tabla 24. Actividad 24: Implementación de los modelos TFG - Consulta web de las ediciones de LexDatum. Página 32 TFG - Consulta web de las ediciones de LexDatum. Página 33 Capítulo 3. Entorno tecnológico 3.1. Herramientas utilizadas Durante la realización de este trabajo se han utilizado las siguientes herramientas: - NetbBeans IDE [4]: Entorno de desarrollo integrado libre para desarrollar la aplicación web. - Astah [5]: Herramienta de modelado UML, utilizada para crear diagramas de casos de uso. - DB-Main [6]: Herramienta de modelado, utilizada para crear el modelo de la base de datos. - PuTTY [7]: Cliente SSH para conectarnos a nuestra máquina virtual. - GoogleDrive [8]: Almacenamiento en la nube de los ficheros del trabajo, utilizado como copia de seguridad de los ficheros. - XAMPP [9]: Software para la gestión de bases de datos MySQL, el servidor web Apache y los intérpretes para lenguajes de script PHP y Perl. - Rem [10]: Herramienta de Gestión de Requisitos diseñada para soportar la fase de Ingeniería de Requisitos de un proyecto de desarrollo software - Word [11]: aplicación informática orientada al procesamiento de textos utilizada para escribir la documentación. - Excel [12]: aplicación informática de hojas de cálculo. - Notepad++ [13]: Editor de texto y de código fuente libre con soporte para varios lenguajes de programación. TFG - Consulta web de las ediciones de LexDatum. Página 34 3.2. Entorno de desarrollo El entorno de trabajo durante la elaboración de trabajo ha sido el siguiente ordenador portátil del año 2016: Procesador - Intel Core i5 5200 S.O - Windows 10 Home 64 bits RAM - 8,00 GB Tarjeta Gráfica - NVIDIA GeForce 840M - 2GB SSD - Kingston A400 240 GB Discos duros - 1 TB Tabla 39. Especificaciones del equipo utilizado para el desarrollo. 3.3. Tecnologías web por parte del cliente 3.3.1. Navegador web Un navegador web es un software, aplicación o programa que permite el acceso a la Web, interpretando la información de distintos tipos de archivos y sitios web para que estos puedan ser visualizados. 3.3.2. HTML HTML (HyperText Markup Language) [14] es un lenguaje de marcado que especifica la estructura y el contenido de los documentos que serán visualizados por un navegador. Permite especificar: • Contenido de texto. • Tablas para estructurar la información. • Formularios para obtener información del usuario. • Enlazado de páginas. • Imágenes. • … TFG - Consulta web de las ediciones de LexDatum. Página 35 Un documento HTML se compone de tres partes: • Una línea que contiene información sobre la versión de HTML (DTD, document type declaration, DOCTYPE). • Una sección de cabecera declarativa (delimitada por el elemento HEAD), • Un cuerpo, que contiene el contenido real del documento. El cuerpo puede ser especificado mediante el elemento BODY o mediante el elemento FRAMESET. Ejemplo de HTML: F Ilustración 8. Ejemplo HTML 3.3.3. CSS CSS[15] (Cascading Style Sheets) es un lenguaje de hojas de estilo empleado para describir la presentación (la apariencia y el formato) de documentos escritos en un lenguaje de marcas. La aplicación más común es especificar el estilo de páginas web escritas en HTML o XHTML, aunque se puede emplear también a cualquier documento XML. CSS nos permite separar el contenido de la información de formato o presentación. Es sencillo especificar el estilo de varios documentos HTML en un único fichero CSS. • Tamaño de elementos • Atributos de los enlaces • Formato del texto: fuente, énfasis, etc. • Color del texto, el fondo y otros elementos. • Espaciado entre palabras, letras y líneas. • Alineación del texto, imágenes y otros elementos. • Márgenes, bordes y relleno de los elementos. • Posicionamiento de elementos: absoluto, relativo y fijo. TFG - Consulta web de las ediciones de LexDatum. Página 36 Ventajas: • Separación del contenido y la presentación o Hojas de Estilo en archivos aparte de los archivos HTML. • Flexibilidad o Es posible cambiar el aspecto completo de nuestros documentos simplemente cambiando el fichero de estilo asociado. • Unificación del diseño o Se puede utilizar un archivo CSS para todo un sitio web, en lugar de tener que editar uno a uno todos los archivos HTML. • Optimización de tiempos de carga • Compatibilidad y Estandarización • Separación entre Mostrar / Imprimir o Es posible maquetar separadamente el contenido de una página web para ser mostrado en pantalla y para una vista de impresión. Tipos de CSS: 1. Estilo como atributo del elemento: Afecta únicamente al elemento. 2. En la cabecera (<head>): Afecta a los elementos de un único fichero. 3. Hoja de estilo externa: Enlazada a tantos ficheros como sea necesario. Ejemplo: Aaa Ilustración 9. Ejemplo CSS TFG - Consulta web de las ediciones de LexDatum. Página 37 3.4. Tecnologías web por parte del servidor 3.4.1. PHP PHP (Hypertext Preprocessor) [16] es un lenguaje de código abierto muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML. Lo que distingue a PHP es que el código es ejecutado en el servidor, generando HTML y enviándolo al cliente. Sus principales características son: • Código abierto. Esta desarrollado y mantenido por un grupo de desarrolladores, que dan un soporte a la comunidad de desarrolladores. • Estabilidad. Gracias a que lo mantiene un grupo de desarrolladores, cuando aparece un cierto bug es solucionado rápidamente. • Portabilidad. Puede ejecutarse en múltiples plataformas, incluyendo Windows, Linux y Mac. • API potente. Proporciona una gran cantidad de funcionalidades, como el manejo de acceso a bases de datos, crear PDFs, etc. Ejemplo: <!DOCTYPE html> <html> <head> <title>Ejemplo</title> </head> <body> <?php echo "¡Hola, soy un script de PHP!"; ?> </body> </html> Ilustración 10. Ejemplo PHP TFG - Consulta web de las ediciones de LexDatum. Página 38 3.4.2. PDO La extensión Objetos de Datos de PHP (PDO) [17] define una interfaz ligera para poder acceder a bases de datos en PHP. Cada controlador de bases de datos que implemente la interfaz PDO puede exponer características específicas de la base de datos, como las funciones habituales de la extensión Para evitar las inyecciones sql hemos utilizado esta extensión. Para transformar una consulta normal a una preparada hay que seguir los siguientes pasos: 1. SQL. En nuestra sentencia sql tenemos que sustituir los valores de criterio por el símbolo “?” o “:nombre”. 2. Preparar. Preparamos la consulta con la función “prepare(&conexión, $sql)”. Esta función requiere dos parámetros: el objeto de conexión y la sentencia sql. Devuelve un resultado de tipo “statament”. 3. Unir parámetros. Se encarga la función “bind_param()”, requiere el “statament” devuelto anteriormente, el tipo de dato que se utiliza como criterio y una variable con criterio. 4. Ejecutar sql. Ejecutamos la consulta con la función “execute()”. Necesita como parámetro el objeto “statament” . 5. Asociar variables. Para asociar las variables al resultado de la consulta utilizamos “bind_result”. Necesita como parámetro el objeto “statament” y tantas variables como columnas en la consulta sql. 6. Leer resultados. Utilizamos la función “statemen_fetch”. 3.4.3. MySQL MySQL [18] es un gestor de base de datos relacional, originalmente bajo licencia GNU, cuyo código es de libre acceso. Es muy popular en servidores web, debido a que sus funcionalidades están muy optimizadas. También forma parte de la arquitectura de Linux, Apache, MySQL, PHP (LAMP), una combinación de plataformas que son utilizadas para dar soporte a aplicaciones web avanzadas. En concreto, este gestor está optimizado para la producción de aplicaciones web. Ventajas del uso de MySQL: • Soporte de transacciones. Es uno de los más robustos que podemos encontrar. Las transacciones sirven para asegurar la consistencia de la Base de Datos, asegurando que un conjunto de sentencias se ejecute correctamente o no se ejecuten proporcionando el fallo correspondiente. TFG - Consulta web de las ediciones de LexDatum. Página 39 • Escalabilidad. Propiedad deseable de un SGBD, la cual indica la habilidad para responder y adaptarse a cambios de envergadura del proyecto, como por ejemplo añadiendo mayor número de usuarios, manteniendo la calidad del servicio igual que antes. • Facilidad de instalación y uso. 3.4.4. MVC El modelo-vista-controlador (MVC) es un patrón de arquitectura de software. Este patrón está formado por tres componentes distintos: modelo, vista y controlador, es decir, por un lado, define componentes para la representación de la información, y por otro lado para la interacción del usuario. Las funciones de cada componente son las siguientes: • El Modelo contiene una representación de los datos que maneja el sistema, su lógica de negocio, y sus mecanismos de persistencia. • La Vista, o interfaz de usuario, compone la información que se envía al cliente y los mecanismos de interacción con éste. • El Controlador, es el intermediario entre el Modelo y la Vista, gestiona el flujo de información entre ambos y realiza las transformaciones para adaptar los datos a las necesidades de cada uno. Ilustración 11. MVC TFG - Consulta web de las ediciones de LexDatum. Página 40 3.5. Google Cloud Platform Google proporciona una plataforma con todos los servicios para la computación en la nube llamada Google Cloud Platform [19], la cual ofrece toda la infraestructura necesaria para poder crear y escalar aplicaciones dependiendo de las necesidades de cada momento. Esta plataforma ofrece cantidad de servicios como son: Ilustración 12. Servicios Google Cloud Platform En nuestro caso, nos vamos a centrar en Google Cloud SQL, que será donde alojemos nuestra base de datos. 3.5.1. Cloud SQL Google Cloud SQL [20] es un servicio de bases de datos totalmente gestionado que facilita las labores de configurar, mantener, gestionar y administrar bases de datos relacionales de PostgreSQL, MySQL y SQL Server en la nube. En el capítulo 7 detallaremos los aspectos más importantes de este servicio. TFG - Consulta web de las ediciones de LexDatum. Página 41 Capítulo 4. Análisis En este capítulo vamos a mostrar el análisis de nuestra aplicación web: entorno, requisitos, objetivos, casos de uso, modelo de dominio y diagrama de secuencia. Todos estos apartados van a seguir iguales tanto para la base de datos local como la almacenada en Google Cloud SQL. 4.1. Entorno Para comprender todo lo que rodea a LexDatum y crear una aplicación de consultas sobre ellos, hemos realizado entrevistas con una de las coordinadoras de LexDatum, en este caso Mercedes Martínez González. A continuación, vamos a explicar los conceptos más importantes: • Edición. Una edición es un conjunto de sesiones en las que intervienen diferentes ponentes, los cuales pueden aportar algún material. • Sesión. Una sesión forma parte de una edición y en ella ha intervenido uno o varios ponentes y se han podido aportar materiales. Hay varios tipos de sesiones: ponencias, tallares, mesas redondas y otros. • Ponente. Un ponente es una persona que ha participado en alguna edición de LexDatum. Cada ponente interviene en alguna sesión y puede aportar materiales a esta. Un ponente puede haber intervenido en varias sesiones y haber participado en diferentes ediciones. • Material. Un material puede ser aportado en alguna sesión por un ponente y adicionalmente en alguna edición. 4.2. Requisitos Lo requisitos [21] son las condiciones que debe cumplir o poseer la aplicación o uno de sus componentes para satisfacer el contrato, norma o especificación correspondientes. TFG - Consulta web de las ediciones de LexDatum. Página 48 UC-0005 Consultar ponentes-Edición Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea consultar los ponentes de una edición. Precondición PD Secuencia normal Paso Acción 1 Se realiza el caso de uso Consultar ediciones (UC-0001) 2 El actor Usuario (ACT-0001) selecciona el icono de ponentes de la edición deseada. 3 El sistema muestra un listado con todos los ponentes de la edición seleccionada. Postcondición El sistema muestra los detalles de cada ponente de la edición seleccionada. Tabla 44. Caso de uso: Consultar ponentes-Edición. UC-0006 Consultar sesiones-Ponente-Edición Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea consultar las sesiones de un ponente en una edición deseada Precondición PD Secuencia normal Paso Acción 1 Se realiza el caso de uso Consultar ponentes-Edición (UC-0006) 2 El actor Usuario (ACT-0001) selecciona el icono de sesiones del ponente deseado. 3 El sistema muestra el detalle de todas las sesiones de un ponente en una edición seleccionada. Postcondición El sistema muestra los detalles de las sesiones del ponente seleccionado en dicha edición Tabla 45. Caso de uso: Consultar sesiones-Ponente-Edición TFG - Consulta web de las ediciones de LexDatum. Página 49 UC-0007 Consultar materiales-Ponente-Edición Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea consultar los materiales de un ponente en una edición deseada Precondición PD Secuencia normal Paso Acción 1 Se realiza el caso de uso Consultar ponentes-Edición (UC-0006) 2 El actor Usuario (ACT-0001) selecciona el icono de materiales del ponente deseado. 3 El sistema muestra el detalle de todos los materiales de un ponente en una edición seleccionada. Postcondición El sistema muestra los detalles de los materiales del ponente seleccionado en dicha edición Tabla 46. Caso de uso: Consultar materiales-Ponente-Edición UC-0008 Consultar materiales-Edición Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea consultar los materiales de una edición. Precondición PD Secuencia normal Paso Acción 1 Se realiza el caso de uso Consultar ediciones (UC-0001) 2 El actor Usuario (ACT-0001) selecciona el icono de materiales de la edición deseada. 3 El sistema muestra un listado con todos los materiales de la edición seleccionada. Postcondición El sistema muestra los detalles de cada material de la edición seleccionada. Tabla 47. Caso de uso: Consultar materiales-Edición. TFG - Consulta web de las ediciones de LexDatum. Página 50 UC-0009 Mostrar tríptico-Edición Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea ver el tríptico de una edición. Precondición PD Secuencia normal Paso Acción 1 Se realiza el caso de uso Consultar ediciones (UC-0001) 2 El actor Usuario (ACT-0001) selecciona el icono de tríptico de la edición deseada. 3 El sistema muestra en una ventana nueva el tríptico de la edición seleccionada. Postcondición El sistema muestra el tríptico de la edición seleccionada. Tabla 48. Caso de uso: Mostrar tríptico-Edición. UC-0010 Acceder web-Edición Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea acceder a la web de una edición. Precondición PD Secuencia normal Paso Acción 1 Se realiza el caso de uso Consultar ediciones (UC-0001) 2 El actor Usuario (ACT-0001) selecciona el icono de la web de la edición deseada. 3 El sistema muestra en una ventana nueva la web de la edición seleccionada. Postcondición El sistema muestra la web de la edición seleccionada. Tabla 49. Caso de uso: Acceder web-Edición. TFG - Consulta web de las ediciones de LexDatum. Página 51 UC-0011 Consultar Materiales Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea consultar todos los materiales aportados a LexDatum. Precondición El actor Usuario deberá acceder a la aplicación web de consultas de LexDatum. Secuencia normal Paso Acción 1 El actor Usuario (ACT-0001) selecciona consultar los materiales 2 El sistema muestra el detalle de todos los materiales existentes. Postcondición El sistema muestra el listado de los materiales existentes. Tabla 50. Caso de uso: Consultar Materiales. UC-0012 Consultar Ponentes Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea consultar todos los ponentes que han intervenido en LexDatum. o durante la realización de los siguientes casos de uso: [UC-0013] Consultar sesiones- Ponentes, [UC-0014] Consultar materiales- Ponentes Precondición El actor Usuario deberá acceder a la aplicación web de consultas de LexDatum. Secuencia normal Paso Acción 1 El actor Usuario (ACT-0001) selecciona consultar los ponentes. 2 El sistema muestra el detalle de todas los ponentes existentes. Postcondición El sistema muestra el listado de los ponentes existentes. Tabla 51. Caso de uso: Consultar Ponentes. TFG - Consulta web de las ediciones de LexDatum. Página 52 UC-013 Consultar sesiones - Ponentes Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea consultar las sesiones en las que interviene un ponente. Precondición PD Secuencia normal Paso Acción 1 Se realiza el caso de uso Consultar Ponentes (UC-0008) 2 El actor Usuario (ACT-0001) selecciona el icono de sesiones del ponente deseado. 3 El sistema muestra un listado con los detalles de cada sesión. Postcondición El sistema muestra los detalles de cada sesión del ponente seleccionado. Tabla 52. Caso de uso: Consultar sesiones- Ponentes. UC-0014 Consultar materiales - Ponentes Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso cuando un Usuario desea consultar los materiales que aporta un ponente. Precondición PD Secuencia normal Paso Acción 1 Se realiza el caso de uso Consultar Ponentes (UC-0008) 2 El actor Usuario (ACT-0001) selecciona el icono de materiales del ponente deseado. 3 El sistema muestra un listado con los detalles de cada material. Postcondición El sistema muestra los detalles de cada material del ponente seleccionado. Excepciones Paso Acción 3 Si el ponente no ha aportado ningún material, el sistema muestra un listado vacío, a continuación, este caso de uso continúa Tabla 53. Caso de uso: Consultar materiales- Ponentes. TFG - Consulta web de las ediciones de LexDatum. Página 53 4.5. Modelo de domino inicial Este es el modelo de dominio inicial del que hemos partido y que nos proporcionara una idea global de cómo implementar posteriormente las clases del sistema. Ilustración 15. Modelo de dominio inicial 4.6. Diagrama de secuencia en la etapa de análisis A continuación, vamos a mostrar un diagrama de secuencia del caso de uso: consultar sesiones de una edición. El resto de diagrama de secuencias de la aplicación no se han aportado a la memoria ya que son similares exceptuando los parámetros de búsqueda en la base de datos. Ilustración 16. Diagrama secuencia: consultar sesiones de una edición. TFG - Consulta web de las ediciones de LexDatum. Página 54 TFG - Consulta web de las ediciones de LexDatum. Página 55 Capítulo 5. Diseño 5.1. Introducción En este capítulo vamos a mostrar la arquitectura del sistema, utilizando el modelo vista controlador, el diseño de la base de datos y de la interfaz. 5.2 Arquitectura La arquitectura de software, también denominada arquitectura lógica, está compuesta por un conjunto de patrones y paquetes que conforman una estructura sólida para poder desarrollar el código de la aplicación. En nuestro caso hemos utilizado el patrón MVC (modelo-vista-controlador). 5.2.1. Arquitectura del MVC Ilustración 17. Directorio de trabajo. TFG - Consulta web de las ediciones de LexDatum. Página 56 A continuación, se explicarán alguno de los directorios más significativos. ▪ Controladores. Esta carpeta contiene los controladores de la aplicación, en nuestro caso albergaremos aquí los controladores de caso de uso. ▪ Modelos. Contiene las clases que van a realizar las operaciones CRUD (eliminar, actualizar, obtener e introducir datos) sobre la base de datos. ▪ Vistas. Colocaremos aquí los ficheros que darán la forma de la aplicación, es decir todos los ficheros PHP que contienen código HTML en su interior. ▪ Config. Colocaremos aquí los ficheros de conexión a la base de datos y las rutas de los controladores. ▪ Assets. Contiene los ficheros de apariencia de la aplicación, es decir, ficheros .css, header, footer, pdf, imágenes etc. A continuación, se muestra el diagrama de despliegue. Hemos indicado en el diagrama donde están alojadas nuestras dos bases de datos. Ilustración 18. Diagrama de despliegue TFG - Consulta web de las ediciones de LexDatum. Página 57 • PC. Ordenador desde donde se conecta el cliente. • Navegador web. El cliente accede a nuestra aplicación web a través de peticiones HTTP. • Servidor Linux. Nuestra máquina virtual de la facultad. • Servidor Web Apache. Es el servidor que se ejecuta en nuestra máquina virtual y donde tenemos alojada nuestra aplicación web. • Base de datos MYSQL. Base de datos MYSQL alojada en el servidor de la máquina virtual. • Google Cloud Plataform. Plataforma de Google Cloud que proporciona aplicaciones que se ejecutan en la nube. • Cloud SQL - MYSQL. Base de datos MYSQL alojada en el servidor de Google Cloud a la que nos conectamos a través de una IP. 5.3. Diseño de la base de datos Para crear los diagramas de diseño hemos utilizado DB-Main [6], ya que es una herramienta que nos permite generar el diagrama relacional a partir del conceptual y además obtener automáticamente el código SQL. 5.3.1. Modelo conceptual Ilustración 19. Modelo conceptual TFG - Consulta web de las ediciones de LexDatum. Página 64 6.2. Controlador La clase controlador es la encargada de gestionar las peticiones que se hacen a la web. En nuestro proyecto tenemos un controlador por cada clase. Toda llamada tiene que pasar obligatoriamente por un controlador. Veamos un ejemplo de una clase controlador Archivo: ponente_controller.php Ilustración 26. Controlador: fragmento de código El método POST se utiliza para enviar una entidad a un recurso en específico, causando a menudo un cambio en el estado o efectos secundarios en el servidor. Ilustración 27. Controlador: peticiones POST TFG - Consulta web de las ediciones de LexDatum. Página 65 El método GET solicita una representación de un recurso específico. Las peticiones que usan el método GET sólo deben recuperar datos. Ilustración 28. Controlador: peticiones GET 6.3. Modelo Estas clases se utiliza para realizar todo tipo de operaciones con la Base de Datos. Veamos dos ejemplos: uno en el que hacemos una consulta sencilla y otro en el que utilizamos PDO. Archivo: ediciones.php - Consulta que devuelve todas las ediciones de LexDatum. Ilustración 29. Modelo: fragmento de código de una consulta sencilla TFG - Consulta web de las ediciones de LexDatum. Página 66 Archivo: ponente.php - Consulta que devuelve todas las ponentes de una edición de LexDatum. Ilustración 30. Modelo: fragmento de código de una consulta PDO 6.4. Vista Las vistas son ficheros PHP en cuyo interior se encuentra lenguaje HTML y en la mayoría de los casos también lenguaje PHP y JavaScript. A continuación, mostramos un ejemplo de una vista, en este caso la vista de todos los materiales de LexDatum. Ilustración 31. Vista: fragmento de código. TFG - Consulta web de las ediciones de LexDatum. Página 67 Capítulo 7. Google Cloud SQL. Comparativa de ambas soluciones En este capítulo vamos a detallar las características generales de Google Cloud SQL. Posteriormente vamos a hacer un analisis y una comparativa de la solución obtenida con la base de datos alojada en la máquina virtual y con la que hemos utilizado en la nube. 7.1 Google Cloud SQL Uno de los objetivos del proyecto era alojar nuestra base de datos en la nube para una posterior consulta desde nuestra aplicación web. Las bases de datos en la nube más destacada son: • Amazon Relational Database Service (RDS)). • Microsoft Azure SQL Database. • Google Cloud SQL . En nuestro caso nos hemos decantamos por Google Cloud SQL[20] ya que era la que más tiempo nos permitía tener una versión gratuita y además nos daba un cupón de 300€ para su uso. Además, la web tiene una gran documentación para el usuario y varias guías paso a paso. 7.1.1 Características A continuación, mostramos las características más destacada de Google Cloud SQL: • Escalabilidad: Puedes escalar fácilmente hasta a 64 núcleos de procesamiento y más de 400 GB de RAM. Escala horizontalmente de manera rápida con réplicas de lectura. • Alto rendimiento: Se ha diseñado para escalar de cargas de trabajo de desarrollo pequeñas a cargas que exigen un rendimiento intensivo. TFG - Consulta web de las ediciones de LexDatum. Página 68 • Integrado: Es posible acceder a las instancias de Cloud SQL desde prácticamente cualquier aplicación y lugar. De esta forma, puedes conectarte fácilmente desde App Engine, Compute Engine y tu estación de trabajo. • Protección de disponibilidad: Gracias a la migración activa, el mantenimiento de nuestra infraestructura subyacente es transparente. Para mantener aislados los fallos, la función de alta disponibilidad realiza comprobaciones continuas del estado y, si una instancia no está en buen estado, lleva a cabo automáticamente la conmutación por error. • Totalmente gestionado: Se trata de un sistema replicado, gestionado y con copia de seguridad para que puedas aprovechar mejor el tiempo. • APIs estándar: Podrás crear y desplegar aplicaciones en la nube más rápidamente, ya que Cloud SQL ofrece compatibilidad con bases de datos estándar de MySQL, PostgreSQL y SQL Server. Aprovecha los controladores de conexión estándar y las herramientas de migración integradas para empezar a trabajar lo antes posible. • Seguridad: Los datos de Cloud SQL se encriptan cuando están en las redes internas de Google, y cuando se almacenan en tablas de bases de datos, archivos temporales y copias de seguridad. Cloud SQL admite conexiones privadas con la nube privada virtual (VPC). Cada instancia de Cloud SQL incluye un cortafuegos de red, lo que te permite controlar el acceso de la red pública a la instancia de la base de datos. 7.1.2. Funcionalidad de Cloud SQL y MySQL En general, la funcionalidad de MySQL que proporciona una instancia de Cloud SQL es la misma que la que proporciona una instancia de MySQL alojada de forma local. Sin embargo, hay algunas diferencias entre una instancia estándar de MySQL y una instancia de Cloud SQL para MySQL. En nuestro caso, como todos los datos son sencillos, no hemos tenido ningún tipo de problema a la hora de importar los datos y realizar cualquier tipo de consultas. 7.1.3. Configuración A continuación, mostramos la configuración de nuestra base de datos en Google Cloud SQL. Esta plataforma puede proporcionar mejores servicios y configuraciones, como mayor número de núcleos, mayor almacenamiento, alta disponibilidad, etc. , pero al tener una versión gratuita, tenemos limitadas las funcionalidades. TFG - Consulta web de las ediciones de LexDatum. Página 69 Ilustración 32. Google Cloud SQL: configuración 7.1.4. Conexión Podemos conectarnos a una instancia de Cloud SQL para MySQL desde: 1. Un cliente mysql. 2. Herramientas de terceros como SQL Workbench o Toad para MySQL. 3. Aplicaciones externas. 4. Aplicaciones de App Engine. 5. Aplicaciones que se ejecutan en Compute Engine. 6. Aplicaciones que se ejecutan en Google Kubernetes Engine. 7. Cloud Functions. 8. Secuencias de comandos de Google Apps Script. En nuestro caso lo haremos a través de la IP de la instancia : TFG - Consulta web de las ediciones de LexDatum. Página 70 Ilustración 33. Google Cloud SQL: conexión 7.1.5. Gráficas Esta herramienta nos proporciona varios tipos de gráficos en diferentes intervalos de tiempo: • Uso de CPU • Uso de memoria • Uso de almacenamiento • Consultas MySQL • … Veamos algunos ejemplos: Ilustración 34. Google Cloud SQL: uso de la memoria TFG - Consulta web de las ediciones de LexDatum. Página 71 Ilustración 35. Google Cloud SQL: consultas MySQL 7.1.6. Datos económicos Como hemos comentado al inicio, disponemos de una versión gratuita creada en mayo. A continuación, mostramos las facturas de mayo y junio que nos van descontando del saldo de nuestro cupón. Como podemos observar entre mayo y junio habríamos gastado 108,77€. Extrapolando los datos a 1 año, tendríamos un coste cercano a los 1200€. Ilustración 36. Google Cloud SQL: factura mayo. TFG - Consulta web de las ediciones de LexDatum. Página 72 Ilustración 37. Google Cloud SQL: factura mayo. 7.2 Comparativa de ambas soluciones. En este apartado vamos a comprar las soluciones obtenidas respecto a la base de datos alojada en la maquina virtual de la Escuela de Ingeniería Informática con la alojada en Google Cloud SQL. Para ello nos vamos a centrar en los siguientes aspectos: facilidad de uso, seguridad, funcionalidad, potencia, soporte y desarrollo, capacidad de integración, escalabilidad y coste. Indicar, que esta comparativa será referente a la maquina virtual creada para un alumno particular por los técnicos de la Escuela, frente a una cuenta en versión gratuita en Google Cloud SQL. TFG - Consulta web de las ediciones de LexDatum. Página 73 7.2.1. Facilidad de uso Una de las cosas para tener en cuenta es asegurarnos que el sistema sea fácil de usar en función de las personas que lo van a utilizar. En nuestro caso, las personas encargas de gestionar nuestra base de datos tienen un nivel alto, por lo que no tendrán ningún problema, ya que están acostumbradas al uso de MySQL. La principal diferencia es que en Google Cloud SQL dispone de una interfaz web para la creación de la base de datos, de los usuarios y el alojamiento de ficheros (scripts). El resto de las cosas son similares, como podría ser la creación de tablas, ya que para manejar MySQL en ambas dispones de una consola. La principal ventaja de la base de datos alojada en la maquina virtual, es que ya tenemos mucha experiencia de uso en ella y nos evitamos el coste de aprendizaje y creación de la base de datos en la nube. 7.2.2. Seguridad La seguridad es un aspecto muy importante en las bases de datos. Una de las cosas a evitar son las inyecciones SQL o la perdida de datos. En la programación de las consultas hemos utilizado consultas PDO para evitar esto. En Google Cloud SQL podemos limitar las conexiones a nuestra base de datos desde su interfaz web, a través de la IP. En nuestro caso solo permitimos que haga la conexión a nuestra base de datos en la nube, nuestra maquia virtual donde tenemos alojada la aplicación web. Otro aspecto que nos ofrece Google Cloud SQL es la creación de copias de seguridad automáticas. Además, todos los datos se encriptan cuando están en sus redes internas. 7.2.3. Funcionalidad Respecto a la funcionalidad, las dos bases de datos son similares, ambas utilizan MySQL 5.7 y como nuestros datos son todos sencillos, podemos realizar las mismas operaciones y consultas. TFG - Consulta web de las ediciones de LexDatum. Página 80 CP - 11 Consultar Materiales Descripción Consultar todos los materiales de LexDatum. Entrada Pulsa sobre el botón materiales. Salida esperada Listado detallado de todos los materiales: 14-03-26_EDPS- resumen_done, … , wp216 es-Anonimicacion. Salida obtenida Salida esperada. Tabla 64. Caso de prueba: Consultar Materiales CP - 12 Consultar Ponentes Descripción Consultar todos los ponentes de LexDatum. Entrada Pulsa sobre el botón ponentes. Salida esperada Listado con todos los ponentes de LexDatum: Alonso Hurtado Bueno, … , Victoriano Panizo Galende. Salida obtenida Salida esperada. Tabla 65. Caso de prueba: Consultar Ponentes CP - 13 Consultar sesiones- Ponentes Descripción Consultar las sesiones en las que ha intervenido Antoni Roig Batalla. Entrada Pulsa sobre el botón sesiones de Antoni Roig Batalla. Salida esperada Listado detallado de las 4 sesiones en las que ha participado: 1ºed-10s, 1ºed-13s, 2ºed-2s, y 2ºed-4s. Salida obtenida Salida esperada. Tabla 66. Caso de prueba: Consultar sesiones- Ponentes CP - 14 Consultar materiales- Ponentes Descripción Consultar los materiales en las que ha aportado Borja Adsuara Valera. Entrada Pulsa sobre el botón ponentes. Salida esperada Listado detallado de los dos materiales aportado por Borja Adsuara Valera: Presentación de Borja Adsuara Valera (U. Complutense) y Vídeo Adsuara. Salida obtenida Salida esperada. Tabla 67. Caso de prueba: Consultar materiales- Ponentes TFG - Consulta web de las ediciones de LexDatum. Página 81 CP - 15 Consultar Sesiones Descripción Consultar todas las sesiones de LexDatum. Entrada Pulsa sobre el botón sesiones. Salida esperada Listado detallado de todas las sesiones. Salida obtenida Salida esperada. Tabla 68. Caso de prueba: Consultar Sesiones CP - 16 Volver a la página de inicio Descripción Volver a la página de inicio desde cualquier ventana. Entrada Pulsa sobre el icono home. Salida esperada Mostrar la página de inicio. Salida obtenida Salida esperada. Tabla 69. Caso de prueba: Volver a la página de inicio CP - 17 Volver a la página anterior Descripción Volver a la página anterior. Entrada Pulsa sobre el botón Volver. Salida esperada Regresar a la página anterior. Salida obtenida Salida esperada. Tabla 70. Caso de prueba: Volver a la página anterior CP - 18 Ir a la web oficial de LexDatum Descripción Abrir en una ventana nueva la web oficial de LexDatum. Entrada Pulsa sobre el botón Web Oficial. Salida esperada Mostrar en una ventana nueva: http://lexdatum.com/ Salida obtenida Salida esperada. Tabla 71. Caso de prueba: Ir a la web oficial de LexDatum TFG - Consulta web de las ediciones de LexDatum. Página 82 8.3. Pruebas de seguridad CP – 19 Acceso a página web por HTTPS Descripción Introducir en el navegador la URL de acceso a la aplicación web utilizando el protocolo HTTPS. Entrada https://virtual.lab.inf.uva.es:20092/LexDatum/MVC/ Salida esperada Este sitio web no puede proporcionar una conexión segura, ya que no tenemos instalado un certificado oficial. Salida obtenida Salida esperada. Tabla 72. Caso de prueba: Acceso a página web por HTTPS TFG - Consulta web de las ediciones de LexDatum. Página 83 Capítulo 9. Conclusiones y trabajo futuro 9.1. Conclusiones Los objetivos planteados para este Trabajo Fin de Grado han sido cumplidos de manera satisfactoria. La elaboración de una aplicación web para la consulta de datos de todas las ediciones de LexDatum era una manera de visualizar de una forma más accesible dichos datos. También hemos conseguido conectar nuestra aplicación web con dos bases de datos alojadas en sitos diferentes, una de ellas en la máquina virtual de la Escuela de Ingeniería Informática y otro en la nube, en este caso, en Google Cloud SQL. A la vista de lo estudiado en este proyecto fin de grado, si tuviéramos que elegir una de estas dos bases de datos, indicar que, para nuestro uso, no es factible tener alojada nuestra base de datos en Google Cloud SQL. El motivo más importe es el apartado económico, según lo que hemos gastado entre mayo y julio, la previsión es que en agosto se nos termine el cupón de 300€ de la versión gratuita, por lo que deberíamos abonarnos a una suscripción. Extrapolando el gasto a un periodo de un año, nos iríamos a una cifra cercana a los 1200€. Para el tamaño de nuestro base de datos y las funcionales que necesitamos para el uso de nuestra aplicación web, es más que suficiente lo que nos ofrece nuestra base de datos local. Este proyecto también me ha dado a conocer la gran cantidad de servicios que ofrece Google Cloud Platform, algo que desconocía. Para finalizar, el trabajo de fin de grado me ha servido para repasar y afianzar las diferentes asignaturas estudiadas en el grado, ya que en los dos últimos años me había centrado en superar las dos asignaturas de matemáticas que me faltaban y dedicado a mi actual trabajo en Play Code Academy. TFG - Consulta web de las ediciones de LexDatum. Página 84 9.2. Trabajo futuro Este proyecto puede seguir ampliándose o mejorándose en las siguientes líneas: • Incluir la aplicación web en la página oficial de LexDatum. • Añadir más funcionalidad a la aplicación, como podría ser la gestión de los datos (insertar, modificar, borrar, etc.) creando un perfil administrador. Esto implicaría añadir más medias de seguridad para evitar inyecciones a la base de datos. • Dar acceso al contenido de los materiales, para ello previamente deberíamos de gestionar la ley de protección de datos de dichos contenidos. TFG - Consulta web de las ediciones de LexDatum. Página 85 Capítulo 10. Bibliografía [1] «Planificación» [En línea]. Pablo de la Fuente. Diapositivas asignatura de Planeación y Gestión de Proyectos. [Última visita: 2019-6-15]. [2] «Descarga de Microsoft Project». [En línea]. URL: https://products.office.com/eses/project/project-and-portfolio-management-software. [Última visita: 2019-3-1]. [3] «Gestión de riesgos» [En línea]. Pablo de la Fuente. Apuntes de la asignatura de Planificación y gestión de proyectos. [Última visita: 2019-6-2]. [4] «Descarga de NetbBeans IDE» [En línea]. URL: https://netbeans.org /downloads/8.2/. [Última visita: 2019-3-1]. [5] «Descarga de Astah» [En línea]. URL: http://astah.net/download. [Última visita: 2019-3-1]. [6] «Descarga de DB-Main» [En línea].URL: https://www.rever.eu/en/db-main/. [Última visita: 2019-2-28]. [7] «Descarga de PuTTY» [En línea]. URL: https://www.putty.org/. [Última visita: 2019-2-28]. [8] «Descarga de GoogleDrive» [En línea]. URL: https://www.google.com/intl/es_ALL/drive/ download/. [Última visita: 2019-3-1]. [9] « Descarga de XAMPP» [En línea]. URL: https://www.apachefriends.org /es/download.html. [Última visita: 2019-3-1]. [10] «Descarga de Rem» [En línea]. URL: http://www.lsi.us.es/descargas/descarga_programas .php?id=3. [Última visita: 2019-3-5]. [11] «Descarga de Word» [En línea]. URL: https://products.office.com/es-es/word. [Última visita: 2019-2-26]. [12] «Descarga de Excel» [En línea]. URL: https://products.office.com/es-es/excel. [Última visita: 2019-2-26]. [13] «Descarga de Notepad++» [En línea]. URL: https://notepad-plusplus.org /download/ v7.7.html. [Última visita: 2019-2-26]. [14] «HTML» [En línea]. César González Ferreras. Apuntes de la Servicios y Sistemas Web de Ingeniería del Software. [Última visita: 2019-6-2]. [15] «CSS» [En línea]. César González Ferreras. Apuntes de la Servicios y Sistemas Web de Ingeniería del Software. [Última visita: 2019-6-2]. TFG - Consulta web de las ediciones de LexDatum. Página 86 [16] «PHP» [En línea]. URL: http://php.net/docs.php. [Última visita: 2019-5-15]. [17] «PDO». [En línea]. URL: https://www.php.net/manual/es/book.pdo.php. [Última visita: 2019-5-27]. [18] «MySQL». [En línea]. URL: https://dev.mysql.com/doc/. [Última visita: 2019-5-2]. [19] «Google Cloud». [En línea]. URL: https://cloud.google.com/. [Última visita: 2019-7-5]. [20] «Cloud SQL». [En línea]. URL: https://cloud.google.com/sql/?hl=es. [Última visita: 2019-7-5]. TFG - Consulta web de las ediciones de LexDatum. Página 87 Apéndice A. Manual de instalación A.1. Introducción En este apéndice de la memoria vamos a explicar los pasos necesarios para la instalación de la aplicación web, el servidor y la base de datos. Para poder ver el código fuente de la aplicación de manera más cómoda es recomendable importa el proyecto a NetBeans. A.2. Requisitos previos a la instalación de la aplicación Para poder instalar de forma correcta nuestra aplicación, primero debemos de instalar en función de nuestro sistema operativo el siguiente software: • Linux: LAMP[]: compuesto por Linux-Apache-MySQL y PHP. • Windows: XAMPP[]: compuesto por Apache + MariaDB + PHP + Perl A.2.1. Servidor Web Linux En Linux la instalación sería de esta manera, primero obtenemos e instalamos el servidor apache2. $sudo apt-get update $sudo apt-get install apache2 Después añadimos el nombre del servidor en el fichero situado en /etc/apache2/apache2.conf. ServerName virtual.lab.inf.uva.es:20092 TFG - Consulta web de las ediciones de LexDatum. Página 88 Seguidamente instalamos el gestor de base de datos. $sudo aptinstall mysql-server Por último, obtenemos e instalamos PHP. $ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql Para finalizar solo tenemos que iniciar el servidor apache y mysql. $ sudo /etc/init.d/apache2 start $ sudo /etc/init.d/mysql start Windows 10 Para Windows debemos descargarnos de la web oficial el software de XAMPP y seguir los pasos de instalación. Para iniciar el servidor apache y mysql solo hace falta dar al botón “start” desde el menú. Ilustración 38. XAMPP TFG - Consulta web de las ediciones de LexDatum. Página 89 A.2.2. Creación de la Base de Datos en local Linux Para crear la base de datos, entraremos en MySQL en modo root y después ejecutaremos los scripts que podemos encontrar en el apéndice C: $ sudo mysql -u root -p mysql-> create database lexdatum; mysql-> use lexdatum; mysql-> source /var/www/html/LexDatum/sql/create.sql; mysql-> source /var/www/html/LexDatum/sql/insert.sql; Comprobamos que se ha creado todo correctamente: mysql-> show tables; +----------------------------- + | Tables_in_lexdatum | +----------------------------- + | adicional | | aporta | | contiene | | edicion | | intervencion | | material | | ponente | | sesion | +----------------------------- + TFG - Consulta web de las ediciones de LexDatum. Página 96 B.3. Ediciones En la página de ediciones observamos un listado de todas las ediciones de LexDatum indicando su número de edición, año, tema, lugar. Para cada edición disponemos de 5 acciones: Ilustración 48. Iconos de consultas • Mostrar el tríptico de la edición en formato pdf. (Ilustración 49). • Mostrar todas las sesiones de la edición. (Ilustración 50). • Mostrar todos los ponentes que participan en la edición. (Ilustración 51). • Mostrar todos los materiales que contiene de la edición. (Ilustración 52). • Acceder a la web oficial de la edición (Ilustración 53). Ilustración 49. Página tríptico TFG - Consulta web de las ediciones de LexDatum. Página 97 Ilustración 50. Sesiones de una edición Desde esta página (ilustración 50) también podríamos consultas los ponentes y los materiales de una de las sesiones de la 4 edición. Ilustración 51. Ponentes de una edición TFG - Consulta web de las ediciones de LexDatum. Página 98 Desde esta página (ilustración 51) también podríamos consultas las sesiones y los materiales de un ponente seleccionado de la 1º edición. Ilustración 52. Materiales de una edición Ilustración 53. Web oficial LexDatum TFG - Consulta web de las ediciones de LexDatum. Página 99 B.4. Ponentes En la página de ponentes mostramos un listado de todos los ponentes que han intervenido en LexDatum indicando su nombre, apellidos y una pequeña descripción. Para cada ponente disponemos de 2 acciones: • Mostrar todas las sesiones en las que ha participado un ponente (Ilustración 55). • Mostrar todos los materiales que ha aportado un ponente (Ilustración 56). Ilustración 54. Página de Ponentes. TFG - Consulta web de las ediciones de LexDatum. Página 100 Ilustración 55. Página de sesiones de un ponente. Desde esta página (ilustración 55) también podríamos consultas las sesiones de la 1º y 2º edición haciendo clic en el número en rojo. Ilustración 56. Página de materiales de un ponente. TFG - Consulta web de las ediciones de LexDatum. Página 101 B.5. Materiales Ahora mostramos la página de materiales, en ella observamos un listado de todos los materiales que han sido aportados a LexDatum indicando su nombre, tipo y una pequeña descripción: Ilustración 57. Página de Materiales. TFG - Consulta web de las ediciones de LexDatum. Página 102 TFG - Consulta web de las ediciones de LexDatum. Página 103 Apéndice C. Contenido del CD El CD-ROM contiene en su interior los siguientes ficheros y documentos: • Manual de usuario. Contiene información de cómo usar la aplicación. • Manual de instalación. Contiene información de como instalar la aplicación. • Memoria. Contiene el documento de la memoria en formato PDF. • Código fuente. Contiene todos los ficheros necesarios para el correcto funcionamiento de la aplicación. • Script de la BBD. Contiene los ficheros de creación, inserción y borrado de la base de datos. TFG - Consulta web de las ediciones de LexDatum. Página 104 TFG - Consulta web de las ediciones de LexDatum. Página 105 Apéndice D. Script de Base de datos En este apéndice adjuntamos el contenido de los scripts de la base de datos: • create.sql • insert.sql • drop.sql D.1. Create.sql -- @author Miguel París Dehesa -- Script Creación tablas LexDatum -- Mysql CREATE TABLE edicion ( id_edicion integer(4) unsigned, ano integer(4) unsigned, tema varchar(400) not null, lugar varchar(200) not null, triptico varchar(400) not null, web varchar(400) not null, PRIMARY KEY (id_edicion)); CREATE TABLE sesion ( id_sesion integer(4) unsigned, id_edicion integer(4) unsigned, fecha date not null, tema varchar(400) not null, tipo varchar(20) not null, horario varchar(15) not null, descripcion_sesion varchar(400) not null, PRIMARY KEY (id_sesion, id_edicion), FOREIGN KEY (id_edicion) REFERENCES edicion(id_edicion)); CREATE TABLE material ( id_material varchar(200) not null, tipo varchar(20) not null, descripcion_material varchar(400) not null, PRIMARY KEY(id_material)); CREATE TABLE ponente ( nombre_apellido varchar(50) not null, descripcion_ponente varchar(400) not null, TFG - Consulta web de las ediciones de LexDatum. Página 112 ('Orientaciones Reutilizacion Datos-octubre 16','pdf','Orientaciones Reutilizacion Datos-octubre 16'), ('Orientaciones protección datos Reutilizacion','pdf','Orientaciones protección datos Reutilizacion'), ('Orientaciones anonimizacion Guia AEPD-Octubre 16','pdf','Orientaciones anonimizacion Guia AEPD-Octubre 16'), ('modeloclausulainformativa','pdf','Modelo clausula informativa'), ('LexDatum2017-URLs','documento de texto','LexDatum2017-URLs'), ('Impacto RGPD en AAPP','pdf','Impacto RGPD en AAPP'), ('Hoja para el analisis de riesgos','hoja de cálculo','Hoja para el analisis de riesgos'), ('Handbook data protection SPA 2017','pdf','Handbook data protection SPA 2017'), ('guia rgpd','pdf','Guía rgpd'), ('guiagestionriesgos','pdf','Guía gestión riesgos'), ('Guia apoyo SGSI','pdf','Guia apoyo SGSI'), ('Funciones DPD en APP','pdf','Funciones DPD en APP'), ('Evaluacion de impacto GUIA AEPD','pdf','Evaluacion de impacto GUIA AEPD'), ('ESQUEMA AEPD DPD','pdf','ESQUEMA AEPD DPD'), ('directricescontratos','pdf','Directrices contratos'), ('desginacion DPD','pdf','Desginacion DPD'), ('Tríptico del curso 2018','pdf','Tríptico del curso 2018'), ('lexdatum2018-PrivacidadEnCloud','pdf','Presentación. Protección de datos en la nube'), ('Protección de datos en el nube (Jorge García)','vídeo','Intervención Jorge García. Protección de datos en la nube'), ('Mesa Redonda y Debate (Victoriano Panizo, Jorge Garcia, Rodrigo Martin)','vídeo','Vídeo. Mesa Redonda y Debate (Victoriano Panizo, (Jorge Garcia, Rodrigo Martin): Protección de datos en la nube'), ('lexdatum2018 EcijaTallerEvaluacionesImpacto PIAs','pdf','Presentación. Taller 1: Evaluación de impacto de privacidad'), ('Taller. Evaluaación de Impacto en la Protección de Datos Personales (María González)','vídeo','Video. Taller 1: Evaluación de impacto de privacidad'), ('lexdatum2018-PrivacyByDesign','pdf','Presentación. Taller 2: Privacidad desde el diseño'), ('Taller. Privacidad desde el diseño (Ricard Martínez)','vídeo','Video. Taller 2: Privacidad desde el diseño'); INSERT INTO adicional VALUES (2,'Guía para una Evaluación de Impacto en la Protección de Datos Personales'), (2,'Derecho al olvido'), (2,'Orientaciones y garantías en procedimientos de anonimización'), (3,'wp216 es-Anonimicacion'), (3,'Reglamento UE 2016-679 Proteccion datos DOUE'), (3,'ProyectodeLeyLOPD'), (3,'Orientaciones y garantias Anonimizacion'), (3,'Orientaciones Reutilizacion Datos-octubre 16'), (3,'Orientaciones protección datos Reutilizacion'), (3,'Orientaciones anonimizacion Guia AEPD-Octubre 16'), (3,'modeloclausulainformativa'), (3,'LexDatum2017-URLs'), (3,'Impacto RGPD en AAPP'), (3,'Hoja para el analisis de riesgos'), (3,'Handbook data protection SPA 2017'), (3,'guia rgpd'), (3,'guiagestionriesgos'), (3,'Guia apoyo SGSI'), (3,'Funciones DPD en APP'), (3,'Evaluacion de impacto GUIA AEPD'), (3,'ESQUEMA AEPD DPD'), (3,'directricescontratos'), (3,'desginacion DPD'); TFG - Consulta web de las ediciones de LexDatum. Página 113 INSERT INTO intervencion VALUES (1,1,2,'María José Vañó Vañó'), (1,1,3,'Juan José Iniesta Delgado'), (1,1,5,'María José Vañó Vañó'), (2,1,5,'Juan José Iniesta Delgado'), (3,1,5,'Jorge García Herrero'), (1,1,6,'Juan Fernando Durán Alba'), (1,1,7,'Ricardo Mata Martín'), (1,1,9,'Juan Fernando Durán Alba'), (2,1,9,'Ricardo Mata Martín'), (3,1,9,'Clara del Rey González'), (1,1,10,'Antoni Roig Batalla'), (1,1,11,'Joseba Echebarría Sáenz'), (1,1,13,'Antoni Roig Batalla'), (2,1,13,'Joseba Echebarría Sáenz'), (3,1,13,'Borja Adsuara Valera'), (1,2,2,'Antoni Roig Batalla'), (1,2,4,'Antoni Roig Batalla'), (2,2,4,'María Luisa Sánchez Peñalba'), (3,2,4,'Juan Delfín Peláez'), (1,2,5,'Ricard Martínez'), (1,2,6,'Ricard Martínez'), (2,2,6,'Santiago Portela García-Miguel'), (3,2,6,'Clara del Rey González'), (1,2,7,'Borja Adsuara Valera'), (1,2,8,'Borja Adsuara Valera'), (2,2,8,'Jose Luis Marín de la Iglesia'), (3,2,8,'Jorge García Herrero'), (1,2,9,'Malcom Bain'), (1,2,10,'Malcom Bain'), (2,2,10,'Jose Antonio Domínguez Rojas'), (3,2,10,'Fulgencio Sanmartín'), (1,3,2,'Javier Álvarez Hernando'), (1,3,4,'Javier Álvarez Hernando'), (2,3,4,'Alonso Hurtado Bueno'), (3,3,4,'María Luisa Sánchez Peñalba'), (1,3,5,'Jorge García Herrero'), (1,3,6,'Ricard Martínez'), (1,3,8,'Ricard Martínez'), (2,3,8,'Jorge García Herrero'), (3,3,8,'Jesús Sanz'), (4,3,8,'José Antonio Díaz Terán'), (5,3,8,'Victoriano Panizo Galende'), (1,4,2,'Jorge García Herrero'), (1,4,4,'Victoriano Panizo Galende'), (2,4,4,'Jorge García Herrero'), (3,4,4,'Rodrigo Martín García'), (1,4,5,'María González Moreno'), (1,4,7,'Ricard Martínez'); INSERT INTO contiene VALUES ('Propiedad intelectual e informática-Valladolid 2015',1,2), ('Ley patentes 1986',1,2), ('Contratacion-electronica(Valladolid)',1,3), ('ProteccionConocimiento-JorgeGarcia',1,5), ('14-03-26__EDPS-resumen_done',1,6), ('CRIMINALIDAD INFORMATICA jurisoft',1,7), ('CriminalidadInformatica-bis',1,7), ('2012-0464_Contrataci-oo-n-de-servicio-de-cloud-computing-por-cl-ii-nica-m-ee- dica',1,10), ('GUIA_Cloud',1,10), TFG - Consulta web de las ediciones de LexDatum. Página 114 ('ORIENTACIONES_Cloud',1,10), ('RegulacionRed-AntoniRoig',1,10), ('Presentaciín Antoni Roig (IDT, UAB)',2,2), ('Presentaciín Juan Delfín (INCIBE)',2,4), ('Presentaciín María Luisa Sánchez (IDT, UAB)',2,4), ('Vídeo Ricard Martínez',2,5), ('Vídeo Santiago Portela',2,6), ('Presentación de Sanatiago Portela García (U. Alfonso X el Sabio, CEDIANT S.A)',2,6), ('Presentación de Borja Adsuara Valera (U.Complutense)',2,7), ('Presentación de Jorge García Herrero (Garrigues)',2,8), ('Presentación de Jose Luis Martín (euroalert.net)',2,8), ('Vídeo Adsuara',2,8), ('Presentación de Malcom Bain (U.Barcelona)',2,9), ('Presentación de Jose Antonio Domínguez Rojas (Oficina de Publicaciones UE)',2,10), ('Presentación de Fulgencio Sanmartín (Oficina de Publicaciones UE)',2,10), ('Tríptico del curso 2017',3,1), ('LexDatum2017-JavierAlvarez',3,2), ('Intervención de Javier Álavarez',3,2), ('LexDatum2017-ECIJA',3,4), ('LexDatum2017-MluisaSanchez-DelaLOPDalENS',3,4), ('LexDatum2017-MLuisaSanchez',3,4), ('Intervención de María Luisa Sánchez',3,4), ('Intervención de Alonso Hurtado Bueno',3,4), ('LexDatum2017-JorgeGarcia',3,5), ('Intervención de Jorge García Herrero',3,5), ('LexDatum2017-RicardMartinez1',3,6), ('LexDatum2017-RicardMartinez2',3,6), ('Intervención de Ricard Martínez',3,6), ('LexDatum2017-DigitelTS',3,8), ('LexDatum2017-CSA',3,8), ('Intervención de José Antonio Díaz',3,8), ('Intervención de Victoriano Panizo',3,8), ('Intervención de Jesús Sanz',3,8), ('Tríptico del curso 2018',4,1), ('lexdatum2018-PrivacidadEnCloud',4,2), ('Protección de datos en el nube (Jorge García)',4,2), ('Mesa Redonda y Debate (Victoriano Panizo, Jorge Garcia, Rodrigo Martin)',4,4), ('lexdatum2018 EcijaTallerEvaluacionesImpacto PIAs',4,5), ('Taller. Evaluaación de Impacto en la Protección de Datos Personales (María González)',4,5), ('lexdatum2018-PrivacyByDesign',4,7), ('Taller. Privacidad desde el diseño (Ricard Martínez)',4,7); INSERT INTO aporta VALUES (1,2,1,'Ley patentes 1986'), (1,2,1,'Propiedad intelectual e informática-Valladolid 2015'), (1,3,1,'Contratacion-electronica(Valladolid)'), (1,5,3,'ProteccionConocimiento-JorgeGarcia'), (1,6,1,'14-03-26__EDPS-resumen_done'), (1,7,1,'CRIMINALIDAD INFORMATICA jurisoft'), (1,7,1,'CriminalidadInformatica-bis'), (1,10,1,'2012-0464_Contrataci-oo-n-de-servicio-de-cloud-computing-por-cl-ii- nica-m-ee-dica'), (1,10,1,'GUIA_Cloud'), (1,10,1,'ORIENTACIONES_Cloud'), (1,10,1,'RegulacionRed-AntoniRoig'), (2,2,1,'Presentaciín Antoni Roig (IDT, UAB)'), (2,4,2,'Presentaciín María Luisa Sánchez (IDT, UAB)'), (2,4,3,'Presentaciín Juan Delfín (INCIBE)'), (2,5,1,'Vídeo Ricard Martínez'), TFG - Consulta web de las ediciones de LexDatum. Página 115 (2,6,2,'Vídeo Santiago Portela'), (2,6,2,'Presentación de Sanatiago Portela García (U. Alfonso X el Sabio, CEDIANT S.A)'), (2,7,1,'Presentación de Borja Adsuara Valera (U.Complutense)'), (2,8,1,'Vídeo Adsuara'), (2,8,2,'Presentación de Jose Luis Martín (euroalert.net)'), (2,8,3,'Presentación de Jorge García Herrero (Garrigues)'), (2,9,1,'Presentación de Malcom Bain (U.Barcelona)'), (2,10,2,'Presentación de Jose Antonio Domínguez Rojas (Oficina de Publicaciones UE)'), (2,10,3,'Presentación de Fulgencio Sanmartín (Oficina de Publicaciones UE)'), (3,2,1,'LexDatum2017-JavierAlvarez'), (3,2,1,'Intervención de Javier Álavarez'), (3,4,2,'LexDatum2017-ECIJA'), (3,4,2,'Intervención de Alonso Hurtado Bueno'), (3,4,3,'LexDatum2017-MluisaSanchez-DelaLOPDalENS'), (3,4,3,'LexDatum2017-MLuisaSanchez'), (3,4,3,'Intervención de María Luisa Sánchez'), (3,5,1,'LexDatum2017-JorgeGarcia'), (3,5,1,'Intervención de Jorge García Herrero'), (3,6,1,'LexDatum2017-RicardMartinez1'), (3,6,1,'LexDatum2017-RicardMartinez2'), (3,6,1,'Intervención de Ricard Martínez'), (3,8,3,'LexDatum2017-CSA'), (3,8,3,'Intervención de Jesús Sanz'), (3,8,4,'LexDatum2017-DigitelTS'), (3,8,4,'Intervención de José Antonio Díaz'), (3,8,5,'Intervención de Victoriano Panizo'), (4,2,1,'lexdatum2018-PrivacidadEnCloud'), (4,2,1,'Protección de datos en el nube (Jorge García)'), (4,4,1,'Mesa Redonda y Debate (Victoriano Panizo, Jorge Garcia, Rodrigo Martin)'), (4,4,2,'Mesa Redonda y Debate (Victoriano Panizo, Jorge Garcia, Rodrigo Martin)'), (4,4,3,'Mesa Redonda y Debate (Victoriano Panizo, Jorge Garcia, Rodrigo Martin)'), (4,5,1,'lexdatum2018 EcijaTallerEvaluacionesImpacto PIAs'), (4,5,1,'Taller. Evaluaación de Impacto en la Protección de Datos Personales (María González)'), (4,7,1,'lexdatum2018-PrivacyByDesign'), (4,7,1,'Taller. Privacidad desde el diseño (Ricard Martínez)'); D.3. Drop.sql -- @author Miguel París Dehesa -- Script Borrado de tablas LexDatum -- Mysql DROP TABLE aporta; DROP TABLE contiene; DROP TABLE intervencion; DROP TABLE adicional; DROP TABLE material; DROP TABLE ponente; DROP TABLE sesion; DROP TABLE edicion;