Arquitecturas C/S (2 capas) y Web (3 capas). Bases de Datos Web 1
Software de BD Distribuidas. Arquitecturas Cliente/Servidor y Web Arquitectura del SGBD en Cliente / Servidor Arquitectura del SGBD en Web Diseño y Acceso a Bases de Datos Web 2
Fig. 9.1. Arquitectura Cliente-Servidor de un SGBD. Aplicativos del Cliente 1 Aplicativos Cliente i Aplicativos Cliente n Cliente1 Cliente i Cliente n Usuario NET junto al nombre del SGBD Cola de Cola de Entrada Salida Red (LAN o MAN ) Capa Cliente Servidor de Bases de Datos Capa Servidora Bases de Datos Centralizadas Arquitectura C/S Abreviada (2 capas) 3
Fig. 9.2. Detalle de la capa Cliente de un SGBD en C/S. Usuario Capa Cliente Siste ma Operativo Interfaces de Ususario Aplicativos de BD Entorno Ofimático Procesos Cliente del SGBD Comunicación de datos Consultas SQL Resultados Red (LAN ) Capa Servidora S. O. Comunicación de datos Servidor de Bases de Datos, motor del SGBD Bases de Datos Centralizadas 4
Fig.9.3. Arquitectura Web Abreviada (3 capas) de un SGBD. Browser Capa 1 Cliente (Front End con el Navegador del Usuario) Internet Servidor Web y Servidor de Aplicaciones Capa 2, 1eros. Servidores (Intermedia) Internet Servidor de Bases de Datos Capa 3, 2º Servidor (Back End) Bases de Datos 5
Fig.9.3. Arquitectura Web Abreviada (3 capas) de un SGBD. Fuente: Oracle (permitida su reproducción) 6
Fig. 9.4. Detalle de capa 2 en Arquitectura Web del SGBD. Browser Solicitud HTTP (URL + Entrada) Internet Respuesta HTML Servidor Web o Serv. HTTP Entrada HTML Programa Servidor, Gateways: CGI/Fast CGI/Java Servlest / ASP / JSP Internet Consulta SQL Datos de la BD, en Form HTML Cola de Entrada Cola de Salida Servidor de Bases de Datos Base de Datos 7
Fig. 9.11. Accesos a Bases de Datos Web mediante CGI. Fuente: Oracle (permitida su reproducción) 8
Fig. 9.11. Accesos a Bases de Datos Web mediante CGI. Fuente: Oracle (permitida su reproducción) 9
Fig. 9.11. Accesos a Bases de Datos Web mediante CGI. Web Browser URL + Entradas Servidor Web (o HTTP) Form en HTML Solicitud de Consulta Form en HTML CGI, Servidor Gateway Consulta Form en HTML Servidor de BDs Consulta Datos (tuplas / objetos) Base de Datos 10
Metodología de diseño de BD Web. Análisis de Requerimientos Diseño Conceptual Integración de vistas Esquema Conceptual Requisitos del Sistema (definición de objetivos) Diseño Conceptual del hipertexto Esquema de Páginas Diseño Lógico Diseño Lógico del hipertexto Vistas a nivel Lógico Diseño Físico Generación del sitio web Presentación del hipertexto Esquema Físico Base de Datos Web Observación y Monitorización 11
3.10.2 Modelo lógico de hipertextos en BD Web. MPLEADO (Apellido, Nombre, Sueldo, Departamento, Oficina) EPARTAMENTO ( Nombre, Oficina, Jefe, Teléfono) ROYECTO (Título, Presupuesto, Esfuerzo, Fecha_Inicio, Fecha_Final FICINA (Ciudad, Dirección ) ARTICIPA (Apellido, Título, Puesto, Fecha_Comienzo, Fecha_Acaba) Y la Empresa desea una BD Web para ser consultada con el siguiente hipertexto organizado en páginas web: 12
3.10.2 Modelo lógico de hipertextos en BD Web. establecer la home page de la Empresa con enlaces a todas las Oficinas, a todos los Emps. y a todos los Proyectos de la empresa. una pág. por cada Empleado con su información personal y enlaces a su Oficina y a los Proyectos donde él (o ella) trabaja. una pág. por cada Oficina con la lista de sus Dptos., cada uno enlazado a su jefe y un enlace a otra pág. con la lista de los Emps. del Dpto. una pág. por cada Proy. con una lista de enlaces a los Emps. que trabajan en el Proy. En esto va a consistir el diseño lógico de los hipertextos de nuestro ejemplo. 13
3.10.2 Modelo lógico de hipertextos en BD Web. EMPRESA unique Oficinas: OFICINA: list-of proyectos de la empresa Lista_de_Proyectos unique Proyectos: list_of Ciudad: string Empleados: "Empleados" Proyectos: "Proyectos" PROYECTO: Título: string PROYECTO Título: string Presupuesto: integer Esfuerzo: float Fecha_Inicio: date Fecha_Final: date Empleados: list_of EMPLEADO: Apellido: string empleados de la empresa Lista_de_Empleados Empleados: list_of EMPLEADO Apellido: string Nombre: string Sueldo: integer Departamento: string Oficina: oficinas de la empresa EMPLEADO: Apellido: string Ciudad: string OFICINA Ciudad: string Dirección: string Dptos.: list_of Nombre: string Tfono.: number Jefe: Apellido: string Empleados: "Empleados" Empleados_del_Dpto. Oficina: Ciudad: string Departamento: string Empleados: list_of EMPLEADO: Apellido: string empleados del dpto. jefes de los dptos. de la oficina proyectos del empleado Proyectos_Emp.: list_of Proyecto: Título: string Fecha_Comienzo: date oficina del empleado 14
3.10.2 Modelo lógico de hipertextos en BD Web. EMPLEADO (Apellido, Nombre, Sueldo, Departamento, Oficina) DEPARTAMENTO (Nombre, Oficina, Jefe, Teléfono) PROYECTO (Título, Presupuesto, Esfuerzo, Fecha_Inicio, Fecha_Final) OFICINA (Ciudad, Dirección ) PARTICIPA (Apellido, Título, Puesto, Fecha_Comienzo, Fecha_Acaba) squema de la página EMPLEADO a nivel lógico age_schema EMPLEADO page _schema (símbolo terminal del lenguaje). Apellido: string; Nombre: string; Sueldo: integer; Departamento: string; Oficina: link ( Ciudad: string; *OFICINA); Proyectos: list_of ( PROYECTO: link ( Título: string; *PROYECTO) Fecha_Comienzo: date; ); 15
3.10.2 Modelo lógico de hipertextos en BD Web. EMPLEADO (Apellido, Nombre, Sueldo, Departamento, Oficina) DEPARTAMENTO (Nombre, Oficina, Jefe, Teléfono) PROYECTO (Título, Presupuesto, Esfuerzo, Fecha_Inicio, Fecha_Final) OFICINA (Ciudad, Dirección ) PARTICIPA (Apellido, Título, Puesto, Fecha_Comienzo, Fecha_Acaba) tros esquemas de página a nivel lógico que suponemos necesita el ej.: age_schema EMPRESA unique Oficinas: list_of ( OFICINA: link ( Ciudad: string; *OFICINA ) ); Empleados: link ( "Empleados" ; *Lista_de_Empleados ) ; Proyectos: link ( "Proyectos" ; *Lista_de_Proyectos ) ; age_schema Lista_de_Proyectos unique royectos: list_of ( PROYECTO: link ( Título: string; *PROYECTO ))) age_schema Lista_de_Empleados unique mpleados: list_of ( EMPLEADO: link (Apellido: string; *EMPLEADO))) 16
Fig. 9.6. Objeto OEM de la asignatura BSDT 5403 BSDT 5403 Telecomunicación set Ubicación set Departamento string Telemática, DIT Créditos char 6 (4,5 T+1,5 P) Ciclo string segundo Curso string quinto Semestre string primero Web del DIT char http://www.dit.upm.es Materia que desarrolla (BOE) string Ingeniería de Sistemas Informáticos 17
Fig. 9.7. Clasificación de los SI para consultar datos heterogéneos. mover los datos Sistemas materializados (los datos que provienen de fuentes locales se integran en una sola BD sobre la que operan las consultas) materializado Sistemas para consultar fuentes de datos heterogéneos virtual dejar el dato donde está Sistemas virtualmente integrados (los datos permanecen en las fuentes locales, las consultas operan directamente sobre ellas y la integración de los datos se produce, 'a sobrevuelo' durante el procesamiento de la consulta) datos nativos estructurados SGBD Universal datos estructurados nativos y derivados Almacén de Datos (data warehouse) datos nativos y no estructurados motores de (meta) búsqueda datos nativos mayoritariamente estructurados BD Federadas (multidatabase) datos nativos estructurados, semiestructurados o no estructurados Sistemas Consultivos con Mediador (Mediator- Wrapper) 18
Fig. 9.8 Arquitectura con Mediador y Empaquetador. Vista Global Empaquetador (Wrapper) Fuente de Datos Servidor Web Consultas Diccionario de Datos Global Empaquetador (Wrapper) Fuente de Datos Empaquetador (Wrapper) Fuente de Datos 19
Fig. 9.11. Accesos a Bases de Datos Web mediante CGI. 20
Fig. 9.11. Accesos a Bases de Datos Web mediante CGI. Fuente: Oracle (permitida su reproducción) 21