Bases de Datos Sistemas de Gestión de Bases de Datos Banco de datos Conjunto de datos relacionados Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas, archivadores, armarios... La gestión de los datos la realiza el secretario o administrador 1
Base de datos = Banco de datos digital Sistema de Gestión de Bases de Datos Software de gestión No confundir! BD SGBD 2
Sistema de Gestión de Bases de Datos Es como el administrador del banco de datos Ventajas: más rápido más fiable más barato más eficiente Sistema de Gestión de Bases de Datos Tiene que tener: Estructuras de almacenamiento de datos Mecanismos de manejo de datos (altas, bajas, ordenación, búsquedas,...) Control de concurrencia (accesos simultáneos) Sistemas de seguridad (si un empleado cualquiera accede al sistema...) Restricciones de integridad (sueldo>0, rango de categorías,...) 3
Modelo de datos Descripción de la estructura de los datos Tipos: Relacional Jerárquico En red Orientado a Objetos Entidad - Relación Modelo Entidad - Relación (E-R) Usa dos tipos de objetos: ENTIDADES son representaciones de seres o cosas reales o abstractas Ejemplo: empleado, empresa RELACIONES son las asociaciones entre entidades Ejemplo: contrato Ambas tienen ATRIBUTOS, que permiten describir sus propiedades Ejemplo de atributos de empleado: nombre, categoría, fecha de ingreso,... 4
Esquema de Datos E-R código nombre fecha ingreso nombre actividad empleado contrato empresa fecha duración Instancia de una Base de Datos Es la información que contiene una Base de Datos en un instante dado Esquema de datos: Una vez diseñado, no cambia o cambia muy poco. Instancia: Cambia continuamente (altas, bajas y modificaciones) 5
Modelo Relacional La información se representa mediante tablas relacionadas Tabla filas registros tuplas columnas campos atributos celdas Ejemplo: tablas de Excel dato Ciclo de vida de una base de datos Fase 1: Análisis Fase 2: Diseño Fase 3: Implementación Fase 4: Prueba y mantenimiento 6
Ejemplo: (para entregar por grupos) Diseñar una base de datos para almacenar y gestionar la información de los empleados de una empresa de ventas (datos personales, categorías, sueldos, ventas, comisiones,...). Ciclo de vida de una base de datos Fase 1: Análisis Qué información hay que almacenar? Datos personales/categoría/fecha/... Restricciones Qué operaciones haremos con los datos? altas/bajas/modificaciones/consultas/... 7
Ciclo de vida de una base de datos Fase 2: Diseño Esquema de datos: modelo E-R (ir a d. 9) modelo relacional: definir atributos necesarios construir tablas establecer relaciones entre tablas Ejemplo en Access: Tabla con datos personales de empleados: 8
Tabla con datos de empresa: Ejemplo en Access: Ejemplo en Access: Tabla con las ventas de cada empleado: 9
Ejemplo en Access: Tabla con datos de los contratos: Ejemplo en Access: Relaciones entre estas 4 tablas: 10
Ciclo de vida de una base de datos Fase 2: Diseño Criterio básico: Minimización de redundancia Ejemplo: En la tabla CONTRATOS no aparece domicilio, y en Datos Empleados no debe aparecer FechaIngreso VENTAJAS: Se ahorra espacio Se facilita el mantenimiento (Ejemplo: un empleado cambia de domicilio...) Ciclo de vida de una base de datos Fase 2: Diseño Criterio básico: Cada elemento del esquema (tabla) debe representar un único tipo de información Ejemplo: En la tabla CONTRATOS no deben aparecer datos personales de cada empleado (nombre, dirección, fecha de nacimiento,...) 11
Ciclo de vida de una base de datos Fase 3: Implementación Creación de la ESTRUCTURA (Lenguaje de definición de datos, DDL) Creación de las OPERACIONES: (Lenguaje de manejo de datos, DML) Altas, Bajas, Modificaciones Consultas (búsquedas-selección) Ciclo de vida de una base de datos Fase 4: Prueba y mantenimiento Utilización del SGBD Mantenimiento de la BD: detección y corrección de fallos Esta fase es muy importante en una empresa de Software y la realiza personal distinto del que ha desarrollado la BD 12
Implementación de la Estructura Ejemplo de Lenguaje de Definición de Datos: Structured Query Language Instrucción para crear la tabla Contratos: CREATE TABLE Contratos ( TIPO CHAR(10), CODIGO FECHA_INGRESO CHAR(6), DATE, CATEGORIA CHAR(1) ) Implementación de la Estructura El SGBD Access usa internamente SQL para crear la tabla, pero proporciona un interfaz gráfico para facilitar las cosas a los usuarios no experimentados Ejemplo de creación de tabla mediante sentencia SQL... 13
Implementación de la Estructura Restricciones de integridad Indican combinaciones de datos no permitidas. Ejemplo: la categoría de un empleado puede ser A, B, C, D Clave = conjunto de atributos cuyo valor no se puede repetir en una tabla Clave = identifica de manera única a cada registro de una tabla. 14
Restricciones de integridad Claves candidato = todas las claves posibles en una tabla. Ejemplos: En la tabla Empleados: DNI CODIGO NOMBRE+DOMICILIO En la tabla DatosEmpresa: CATEGORIA SUELDO BASE + SEG SOCIAL + IRPF Restricciones de integridad Clave principal o clave primaria (primary key) elegida entre todas las claves candidato, como forma principal de identificación de los registros de una tabla. Ejemplos (veamos en Access): En la tabla Empleados: CODIGO o DNI? En la tabla DatosEmpresa: CATEGORIA En Access un campo clave principal debe ser Indice sin duplicados 15
Restricciones de integridad Lista de valores válidos Ejemplo: en la tabla CONTRATOS el campo CATEGORIA solo puede tomar los valores A, B, C, D. Ejemplo: En Access se hace esta operación en la ventana de diseño de la tabla CONTRATOS. Restricciones de integridad Integridad referencial Cuando dos tablas están relacionadas por un campo y deben contener los mismos valores Ejemplos: el campo CODIGO en la tabla Empleados y en la tabla CONTRATOS. el campo CATEGORIA en la tabla CONTRATOS y en la tabla DatosEmpresa sólo puede tomar los valores A, B, C, D. En Access se hace esta operación en la ventana de Relaciones de la base de datos. 16
Restricciones de integridad Clave externa o ajena (foreign key): Un campo de una tabla que es clave principal en otra tabla a la que hace referencia debe contener los mismos valores en ambas tablas Integridad referencial Ejemplos: el campo CATEGORIA en la tabla CONTRATOS. Ejercicio: Diseñar una base de datos para almacenar y gestionar la información de los empleados de una empresa de ventas (datos personales, categorías, sueldos, ventas, comisiones,...) Crear las tablas necesarias con SQL 17
Diseño de la Estructura: atributos > tablas > relaciones > restricciones Primary Key Foreign key 18