Bases de Datos I Introducción Dra. Amparo López Gaona tación Fac. Ciencias, UNAM
Introducción El mundo está lleno de datos: Pacientes/Doctores. Alumnos/Profesores. Cuentas bancarias. Deportistas /Deportes. Actores/Peĺıculas. Recetas de cocina. Superhéroes, etc. Qué queremos hacer con ellos? Consultarlos. Actualizarlos. Con el propósito de obtener información.
Bases de datos en la vida diaria Compras en la web. Servicios al cliente. Servicios bancarios. Sistema de inscripciones. Compras en el supermercado. Préstamos bibliotecarios. Sistemas de reservaciones. Sistemas de registros médicos. (hospitalizaciones, expedientes, etc.) Nóminas u otros servicios para empleados. etc.
Ejemplo de desarrollo de una aplicación Supongamos que requerimos hacer una aplicación para almacenar/obtener información acerca de: Estudiantes Cursos Profesores Quién cursa qué? Quién enseña qué?
Necesidades Qué necesidades se tienen? 1 Almacenar los datos por mucho tiempo. 2 Manipular grandes volúmenes de datos (cientos de GB). 3 Proteger los datos contra desastres. 4 Proteger los datos contra usos no-autorizados. 5 Consultar/actualizar: Quién imparte BD? Está Andrea López en el curso de BD? 6 Permitir acceso simultáneo a cientos o miles de usuarios. 7 Permitir modificar el esquema.
Características del procesamiento de archivos Cada usuario define e implementa los archivos necesarios para una aplicación específica con la subsecuente duplicidad de datos. Los datos se almacenan en diversos archivos independientes. Se deben escribir programas para actualizar los archivos. Inconsistencia en los datos. Cambios a la estructura de un archivo requieren cambiar todos los programas que acceden a este archivo. Los datos almacenados se pueden acceder sólo de la forma definida. Dificultad de acceso en los datos. La definición de datos es parte de los programas de aplicación. Aislamiento de datos.
Intento con archivos El almacenamiento de datos: El sistema de archivos limita el tamaño de éstos. Cuando el sistema se cae, los datos pueden perderse. La autorización basada en passwords es insuficiente.
Intento con archivos El almacenamiento de datos: El sistema de archivos limita el tamaño de éstos. Cuando el sistema se cae, los datos pueden perderse. La autorización basada en passwords es insuficiente. Consulta/actualización: Se necesita escribir un nuevo programa para cada nueva consulta. Es necesario implementar poĺıticas para lograr un buen rendimiento.
Intento con archivos El almacenamiento de datos: El sistema de archivos limita el tamaño de éstos. Cuando el sistema se cae, los datos pueden perderse. La autorización basada en passwords es insuficiente. Consulta/actualización: Se necesita escribir un nuevo programa para cada nueva consulta. Es necesario implementar poĺıticas para lograr un buen rendimiento. La concurrencia proporciona una protección limitada: Necesitas preocuparte que los usuarios no interfieran entre sí. No puedes proporcionar diferentes vistas de los mismos datos: (registros, estudiantes, profesores).
Intento con archivos El almacenamiento de datos: El sistema de archivos limita el tamaño de éstos. Cuando el sistema se cae, los datos pueden perderse. La autorización basada en passwords es insuficiente. Consulta/actualización: Se necesita escribir un nuevo programa para cada nueva consulta. Es necesario implementar poĺıticas para lograr un buen rendimiento. La concurrencia proporciona una protección limitada: Necesitas preocuparte que los usuarios no interfieran entre sí. No puedes proporcionar diferentes vistas de los mismos datos: (registros, estudiantes, profesores). Al cambiar la estructura de los archivos se requiere cambiar casi todas las aplicaciones.
Definiciones básicas Base de Datos (BD): colección de datos relacionados. Datos: Hechos que pueden registrase y tienen significado impĺıcito. Propiedades impĺıcitas: Representa aspectos del mundo real. Colección de datos con algún significado inherente. Diseñada, construida y poblada con datos para un propósito específico. Database Management System (SABD): software que facilita el proceso de definir, construir, manipular y compartir datos en una BD para diversas aplicaciones. Definir involucra especificar los tipos, estructuras y restricciones de los datos almacenados en la BD. Sistema de base de datos: BD + SABD
Definiciones básicas Base de Datos (BD): colección de datos relacionados. Datos: Hechos que pueden registrase y tienen significado impĺıcito. Propiedades impĺıcitas: Representa aspectos del mundo real. Colección de datos con algún significado inherente. Diseñada, construida y poblada con datos para un propósito específico. Database Management System (SABD): software que facilita el proceso de definir, construir, manipular y compartir datos en una BD para diversas aplicaciones. Definir involucra especificar los tipos, estructuras y restricciones de los datos almacenados en la BD. Construir es el proceso de almacenar los datos en algún medio de almacenamiento controlado por el SABD. Sistema de base de datos: BD + SABD
Definiciones básicas Base de Datos (BD): colección de datos relacionados. Datos: Hechos que pueden registrase y tienen significado impĺıcito. Propiedades impĺıcitas: Representa aspectos del mundo real. Colección de datos con algún significado inherente. Diseñada, construida y poblada con datos para un propósito específico. Database Management System (SABD): software que facilita el proceso de definir, construir, manipular y compartir datos en una BD para diversas aplicaciones. Definir involucra especificar los tipos, estructuras y restricciones de los datos almacenados en la BD. Construir es el proceso de almacenar los datos en algún medio de almacenamiento controlado por el SABD. Manipular incluye funciones tales como consultas, recuperación y actualización de datos. Sistema de base de datos: BD + SABD
Definiciones básicas Base de Datos (BD): colección de datos relacionados. Datos: Hechos que pueden registrase y tienen significado impĺıcito. Propiedades impĺıcitas: Representa aspectos del mundo real. Colección de datos con algún significado inherente. Diseñada, construida y poblada con datos para un propósito específico. Database Management System (SABD): software que facilita el proceso de definir, construir, manipular y compartir datos en una BD para diversas aplicaciones. Definir involucra especificar los tipos, estructuras y restricciones de los datos almacenados en la BD. Construir es el proceso de almacenar los datos en algún medio de almacenamiento controlado por el SABD. Manipular incluye funciones tales como consultas, recuperación y actualización de datos. Compartir es permitir el acceso a más de un usuario. Sistema de base de datos: BD + SABD
Sistema de base de datos Usuarios / Programadores Sistema de BD Programas de aplicación SABD Software para proceso de consultas/programas Software para acceso a datos almacenados Definición de la BD Base de datos almacenada (Meta Datos)
Construcción de una aplicación con BD Modelado de requerimientos (conceptual, gráfico). Se decide cuáles entidades deben ser parte de la aplicación y cómo relacionarlas. Diseño e implementación del esquema. Se decide qué repositorios se requieren. Se implementan los repositorios en el SABD. Se pueblan tales repositorios. Escritura de la aplicación usando el SABD (posiblemente desde Java) Fácil pues ya no hay problemas con los datos.
Modelo Conceptual Curp Nombre Direccion Aula Profesor Impartir Semestre Calif. Curso Asistir Clave Nombre Creditos Alumno #Cuenta Nombre Carrera
Diseño e implementación del esquema Definición de los datos: Se define el esquema con anterioridad al llenado de datos. Se pueden definir nuevos depósitos (rectángulos) a partir de los existentes, omitiendo porciones de alguno o combinando varios. Se puede restringir cada columna, por ejemplo: Teniendo un valor único por cada renglón del rectángulo. Siendo un subconjunto del dominio total. El dominio como conjunto de valores de otro rectángulo.
... Definición de los datos Alumnos: NumCuenta Nombre Categoría 123456 Andrea López normal 103438 Blanca Hernández pasante 124567 Jorge Luis Reyes graduado......... NumCuenta ClaveCurso 123456 CS644 Toma: 123456 CS678 102438 CS145.... Clave Nombre Créditos CS644 Bases de Datos 10 Cursos: CS678 Redes de Computadoras 10 CS145 Seminario de Titulación 18......... Separación de aspectos lógicos y físicosposgrado de los en Ciencia datos. e Ingeniería de la Compu
Consultas de la base de datos SQL = Structured Query Language. Obtener todos los cursos que toma Andrea. SELECT C.nombre FROM Alumnos A, Cursos C, Toma T WHERE A.nombre = "Andrea" AND A.numCuenta = T.clave AND T.clave = C.clave
Enfoque de bases de datos Un solo depósito de datos definido una sola vez y puede accederse por varios usuarios. Representación de relaciones complejas entre datos. El SABD tiene la BD y su descripción completa. Los programas de acceso se escriben con independencia de archivos específicos. Los datos en las BD son integrados y compartidos. Control de redundancia. Restricciones de acceso. Restricciones de integridad. Proporciona respaldo y recuperación. Reducción de tiempo de desarrollo. Disponibilidad de datos actualizados. Cuándo no usar una BD?
Archivos vs Bases de Datos PROGRAMA 1 Descripción de datos PROGRAMA 2 Descripción de datos PROGRAMA 3 Descripción de datos ARCHIVO 1 ARCHIVO 2 ARCHIVO 3 DATOS REDUNDANTES PROGRAMA 1 PROGRAMA 2 PROGRAMA 3 Descripcion de Datos Manipulacion de Datos... BASE DE DATOS
El estudio de bases de datos Incluye diferentes aspectos: Modelado y diseño de bases de datos. Programación de bases de datos: creación y explotación. Implementación de bases de datos (SABD).
Arquitectura ANSI/SPARC Esquema de la BD: Descripción de la estructura de la BD. Esquema BD Estado de la BD: Valores de la BD en un momento dado. Niveles para la representación de los datos: Vista 1 Vista 2... Vista n Nivel externo... Nivel conceptual/logico Nivel físico
Ejemplo Prom >= 9 HISTORIAL: Nombre, NoCta, ClaveC, Año, Semestre, Calif PROMEDIOS: Nombre, NoCta, Prom ESTUDIANTE: Nombre, NoCta, Año, Carrera MATERIA: Clavem, Nombre, Créditos CURSO: ClaveC, ClaveM, Semestre, Año, Prof. CALIF: NoCta, Curso, Calif. PRERREQUISITO: ClaveC, ClavePreR... NombreDato Posición Long(Bytes) Nombre 1 30 NoCta 31 10 Año 41 2 Carrera 43 1 NombreDato Posición Long(Bytes) ClaveC 1 5 ClavePreR 6 5
Independencia Independencia de datos: Capacidad de modificar la definición del esquema en un nivel sin que esto afecto a las definiciones de esquemas en niveles superiores. Independencia lógica. Independencia física.
Funcionalidad de un SABD Lenguaje para definición de datos DDL. Lenguaje para manipulación de datos DML. Lenguaje para consulta de datos QL. Administración de almacenamiento. Administración de consultas. Administración de transacciones. Control de concurrencia. Recuperación.
Arquitectura de un SABD Usuarios Programador Usuarios Comunes de Aplicaciones sofisticados Admistrador Usuarios Interfaces de aplicaciones Programas de aplicacion Consulta Esquema de la BD SABD Compilador Compilador Intérprete de DML de QL del DDL Procesador de Consultas Código Objeto Motor de Evaluación de Consultas Administrador Administrador Autorizacion Transacciones Memoria y Integridad Administrador de Almacenamiento Administrador de Archivos Indices Estadist. Almacenamiento en disco. Arch. Datos Diccionario de datos
Administrador de Almacenamiento Proporciona la interfaz entre los datos en la BD y los programas de aplicación y las consultas suministradas al sistema. Es responsable de la interacción con la gestión de archivos. Administrador de Consultas Su objetivo es convertir una consulta expresada en un lenguaje de alto nivel en una secuencia de peticiones para datos almacenados La optimización implica seleccionar un buen plan de consulta o secuencia de peticiones al sistema de almacenamiento. Administrador de Transacciones Transacción: Unidad lógica de trabajo con las propiedades de ACID. Atomicidad (Atomicity). Consistencia (Consistency). Una base de datos está en estado consistente si los datos cumplen las expectativas. Aislamiento (Isolation). Los efectos causados por la ejecución de transacciones simultaneas no debe ser distinta que se realizaran en forma secuencial. Persistencia (Durability). El efecto de la transacción no se debe perder aunque el sistema falle, aun si la falla ocurre en cuanto termina la transacción.
Aplicaciones Tradicionales Sistemas de nóminas. Sistemas de inventarios. Sistemas estudiantiles. Sistemas de reservaciones. Sistemas bancarios. etc. Nuevas aplicaciones. Aplicaciones de diseño auxiliado por computadora. Sistemas multimedia. Sistemas de información geográfica (GIS). Minería de Datos. Almacenes de datos (dwh). Aplicaciones de hipertexto. etc.
Características de las nuevas aplicaciones Tienen necesidades y características particulares. Otros tipos de datos (imágenes, sonido, texto, etc.). Datos con estructura más compleja. Grandes volúmenes de datos y con interacciones más complejas. Conservación de distintas versiones de un mismo diseño. Interoperación entre bases de datos preexistentes.
Modelos de datos Modelo de datos: es un conjunto de conceptos que pueden usarse para describir la estructura de una BD. Estructura: Tipos de datos, sus relaciones, restricciones y operaciones que deberían permitir a los datos. Modelo relacional: Los datos se perciben como tablas y sólo hay tablas. Es un sistema cerrado en el sentido que el resultado de las operaciones es siempre una tabla. Modelo de objetos: Los datos se modelan como objetos en los cuales además del estado se tiene modelado su comportamiento. Modelo de datos semiestructurados: Los datos no tienen una estructura rígida y mucho menos predefinida.
Ejemplo de un MR La mayoría de los productos desarrollados desde finales de los 70 s se basan en el modelo relacional. Un SABDR = SABD + modelo relacional.
Modelo de Objetos Los datos se modelan como objetos en los cuales además del estado se tiene modelado su comportamiento. SABDO = SABD + MO. Proyecto nombre_proy: STRING objetivos: STRING documento* plan_trabajo* sub_proyecto balance: NUMERO participantes(): * Documento acrónimo: STRING nombre: STRING clasificacion: STRING Reporte Técnico tema: STRING fecha_inical: DATE fecha_final: DATE cambios_a Artículo autor* tipo_publicación: STRING lugar_publicacion: STRING fecha: DATE Tarea fecha_inicio: DATE fecha_fin: DATE descripcion: TEXT participantes lider precedentes Grupo nombre: STRING miembro * lider Invetigador nombre:string especializacion: STRING sueldo: NUMERO salario_promedio: NUMERO salario_mensual(): NUMERO Los atributos con * son multivaluados. Los métodos y atributos de la clase (no de los objetos) aparecen subrayados.
Modelo de datos semiestructurados Dato semiestructurado es sinónimo de irregular y autodescriptivo. o43 nombre "Serge" Bib libro o1 artículo artículo referencias o12 año o24 referencias o29 referencias autor título editorial URL autor autor autor título autor autor título "Abiteboul" "Querying SSD" 1998 "..." o43 Ullman Hector Garcia Molina o43 apellido nombre apellido nombre apellido Jeffrey Jennifer Widom "Addison Wesley" "..." "..." o96 "..." nombre apellido página "..." o25 primera última 122 133
Bases de Datos y Web Enfoques: Poner interfaces a una BD relacional para que pueda accesarse desde Internet. Considerarla como BD y emplear técnicas de bases de datos para la búsqueda de los mismos. Interfaces para acceder a bases de datos desde Internet Vía formularios se construye la consulta. Generación dinámica del contenido de documentos. El resultado puede personalizarse de acuerdo a datos del usuario, almacenados en una base de datos.
La Web es una base de datos? Problemas con los datos en sí: Alto porcentaje de datos volátiles. Datos redundantes y sin estructura. Evoluciona libremente. Los datos cambian en forma y ubicación. Calidad de datos. Datos heterogéneos. Relacionados con el usuario y su interacción con los sistemas de recuperación. Cómo especificar una consulta? Cómo interpretar la respuesta proporcionada?