20350 BASES DE DADES 1 Enric Martı́ i Gòdia Escola Tècnica Superior d’Enginyeria Universitat Autònoma de Barcelona Setembre 2006 Versió corregida per Mireia Bellot 1 TEMARIO 1. INTRODUCCIÓN. CONCEPTOS BÁSICOS • Introducción y definiciones • Componentes de un sistema de Bases de Datos • Evolución histórica • Ventajas e inconvenientes de un sistema de BD 2. ARQUITECTURA • Arquitectura ANSI-SPARC • El DBA i el SGBD • Arquitectura back-end / front-end 3. DISEÑO. EL MODELO ENTIDAD-RELACIÓN • Diseño de una Base de Datos • Modelo Entidad-Relación • Modelo E-R extendido • Criterios de diseño de un esquema E-R • Diseño de un esquema E-R 4. MODELO DE BASES DE DATOS RELACIONAL • Introducción • Estructura de datos • Reglas de integridad • Manipulación de datos – Álgebra Relacional 2 TEMARIO (ii) 5. DISEÑO DE UNA BASE DE DATOS • Fases de diseño de una BD • Captación y análisis de requerimientos • Diseño conceptual de la BD • Diseño lógico • Diseño fı́sico 6. NORMALIZACIÓN • Teorı́a de la normalización • Dependencia funcional • Formas normales de Codd (1NF, 2NF, 3NF) • Forma normal de Boyce-Codd (FNBC) • Proceso de normalización 7. NIVEL INTERNO • Acceso a la Base de Datos. • Estructuras de almacenamiento – Indexación – Hashing • Técnicas de compresión – Compresión diferencial y jerárquica – Codificación de Huffman 3 Bibliografia • A. Silberschatz, H.F. Korth, S. Sudarshan, Fundamentos de Bases de Datos, 3a edición, McGrawHill, 2006. • T. M. Connolly, C. E. Begg, Sistemas de Bases de Datos, 4a edición, Pearson-Addison-Wesley, 2005. • P.Rob, C.Coronel, Sistemas de Bases de Datos. Diseño, implementación y administración, Thomson, 2004. • D.M. Kroenke, Procesamiento de Bases de Datos, 8a edición, Pearson-Prentice Hall, 2003. • C.J. Date, Introducción a los Sistemas de Bases de Datos, 7a edició, Prentice Hall, 2001. • A. de Miguel, P. Martı́nez, E. Castro, et al., Diseño de Bases de Datos. Problemas resueltos, RaMa, 2001. • G.W. Hansen, J.V. Hansen, Diseño y administración de Bases de datos, 2a edición, Prentice Hall, 1997. • M. Marqués, J.I. Aliaga, S. Garciı́a, G. Quintana, SQL y desarrollo de aplicaciones en ORACLE 8, Col. ”Treball d’Informàtica i Tecnologia”, 9, Universitat Jaume I, 2001. 4 TEMA 1 INTRODUCCIÓN. CONCEPTOS BÁSICOS 1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Componentes de un Sistema de Base de Datos . 9 4. Evolución histórica . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5. Ventajas de un Sistema de Bases de Datos . . . . 29 6. Inconvenientes de un Sistema de BD . . . . . . . . . 42 5 Introducción Sistema de Base de Datos: Sistema de archivo por computador. • Se almacena un conjunto de archivos de datos. • Operaciones que un usuario puede realizar sobre los archivos: – AÑADIR nuevos archivos a la base de datos – INSERTAR datos nuevos en los archivos existentes – CONSULTAR datos de los archivos existentes – ACTUALIZAR datos en los archivos existentes – BORRAR datos de los archivos existentes – ELIMINAR archivos de la base de datos 6 Ejemplo: Base de Datos con un único archivo: CAVA ENT 2 3 6 11 12 16 21 22 VINO PRODUCTOR AÑO BOT LISTO Chardonnay Chardonnay Chardonnay Jo Riesling Jo Riesling Jo Riesling Fume Blancg Jo Riesling Buena Vista Louis Martini Chappellet Jekel Buena Vista Sattus Ch. St. Jean Rob. Mondavi 98 99 97 99 97 97 98 97 1 5 4 10 1 1 4 2 01 00 01 02 02 99 01 00 Observaciones: • Archivos → TABLAS • Filas de la tabla → TUPLAS, REGISTROS • Columnas de la tabla → ATRIBUTOS, CAMPOS • Lenguaje de interacción con los datos: SQL (Structured Query Language) 7 Instrucciones de manipulación del lenguaje: CONSULTA: SELECT VINO,ENT,PRODUCTOR --> atributos,campos FROM CAVA --> tabla WHERE --> condicion LISTO=91 Resultado: VINO ENT Chardonnay Chardonnay Fume Blancg 2 6 21 PRODUCTOR Buena Vista Chappellet Ch. St. Jean INSERCIÓN: INSERT INTO CAVA VALUES (53,’Pinot Noir’,’Saintsbury’,87,1,93) Resultado: ENT 2 3 6 11 12 16 21 22 53 VINO PRODUCTOR AÑO BOT LISTO Chardonnay Chardonnay Chardonnay Jo Riesling Jo Riesling Jo Riesling Fume Blancg Jo Riesling Pinot Noir Buena Vista Louis Martini Chappellet Jekel Buena Vista Sattus Ch. St. Jean Rob. Mondavi Sainstbury 98 99 97 99 97 97 98 97 87 1 5 4 10 1 1 4 2 1 01 00 01 02 02 99 01 00 93 8 ACTUALIZACIÓN: UPDATE CAVA SET BOT=4 WHERE ENT=3 Resultado: ENT 2 3 6 11 12 16 21 22 VI PRODUCTOR ANY BOT LISTO Chardonnay Chardonnay Chardonnay Jo Riesling Jo Riesling Jo Riesling Fume Blancg Jo Riesling Buena Vista Louis Martini Chappellet Jekel Buena Vista Sattus Ch. St. Jean Rob. Mondavi 98 99 97 99 97 97 98 97 1 4 4 10 1 1 4 2 01 00 01 02 02 99 01 00 VINO PRODUCTOR ANY BOT LISTO Chardonnay Chardonnay Jo Riesling Jo Riesling Jo Riesling Fume Blancg Jo Riesling Louis Martini Chappellet Jekel Buena Vista Sattus Ch. St. Jean Rob. Mondavi 99 97 99 97 97 98 97 5 4 10 1 1 4 2 00 01 02 02 99 01 00 BORRADO: DELETE FROM CAVA WHERE ENT=2 Resultado: ENT 3 6 11 12 16 21 22 9 Ejemplo: Base de Datos con diversos archivos: LIGA BALONCESTO Campos Tipo Longitud Num Eq Jornada Camp Numérico Numérico Numérico 3 2 3 Nom Eq Num Jug Cap Eq Nom Jug Tel Jug Adr Jug Falt Jug Punt Jug Temp Jug Carácter Numérico Numérico Carácter Carácter Carácter Numérico Numérico Numérico 16 3 3 16 7 24 2 3 3 Significado Número de Equipo. Jornada de la liga. Número de Equipo propietario del Campo donde se juega el partido. Nombre del Equipo. Número del Jugador. Número del Jugador capitán. Nombre del Jugador Teléfono del Jugador. Dirección del Jugador. Número de faltas del Jugador. Número de Puntos del Jugador. Tiempo jugado por el Jugador. TABLAS: PARTIDO (Num Eq, Jornada, Camp) EQUIPO (Num Eq, Nom Eq, Cap Eq) JUGADOR (Num Jug, Nom Jug, Num Eq, Tel Jug, Adr Jug) PUNTUACION (Num Jug, Jornada, Falt Jug, Punt Jug, Temp Jug) 10 Tablas Liga de Baloncesto: PREGUNTAS: • Obtener el NOMBRE del capitán del equipo AUTÓNOMA. • Cuantos partidos ha jugado el equipo AUTÓNOMA en su campo?. • Cuantos minutos ha jugado el capitán del equipo CENTRAL durante toda la liga?. • Cuál ha sido el resultado del partido AUTÓNOMA-POLITÉCNICA, jugado en el campo del equipo AUTÓNOMA?. 11 Definiciones Sistema de Base de Datos: • Sistema informático diseñado para almacenar, manipular datos y para permitir recuperarlos cuando sea necesario y de la manera que sea necesaria. (Date) • Colección de datos interrelacionados, almacenados conjuntamente sin redundancias perjudiciales o innecesarias, la finalidad de las cuales es la de ser utilizadas por una o más aplicaciones de la mejor manera posible. Los datos se guardan de forma independiente de los programas que las utilizan. Se utilizan métodos bien determinados para incluir nuevos datos y para modificar o extraer los que ya habian. (Martin) 12 Componentes de un Sistema de Base de Datos Sistema de Base de Datos. Formado por 4 componentes: • Hardware • Software • Usuarios • Base de Datos 13 HARDWARE Componentes: • Almacenamiento secundario (discos magnéticos, ópticos, dispositivos de E/S, redes). ↓ IMPORTANTE LA CAPACIDAD Y EL TIEMPO DE ACCESO • Memoria RAM para almacenar datos y código que permiten ejecutar las transacciones SQL. ↓ IMPORTANTE LA CAPACIDAD Y EL TIEMPOS DE ACCESO • CPU. La velocidad y capacidad de la CPU es poco determinante par realizar transacciones SQL, usualmente de poco cálculo (cálculos aritméticos). 14 SOFTWARE Sistema Gestor de Base de Datos (SGBD) (Data Base Management System - DBMS) Situado entre la BD fı́sica y los usuarios. Componente software más importante. Objetivos: • Gestionar las peticiones de los usuarios – Insertar archivos y datos nuevos – Consultar datos – Actualizar datos – Borrar datos – Eliminar archivos • Presentar una visión de más alto nivel de la Base de Datos, visión más independente del Hardware y del Sistema Operativo, mediante tablas, atributos y un lenguaje de manipulación de datos (usualmente SQL). • Protección de los datos: – respecto otros usuarios. – en acceso y actualización concurrente. Otros componentes software: • Utilidades (manipulación ficheros, información de estado, etc.). • Herramientas para desarrollar aplicaciones. 15 USUARIOS Tres tipos diferentes de usuarios: 1. Usuario final • Interactúa con el sistema mediante terminales on line. • Accede a la BD mediante aplicaciones e interfı́cies orientadas por menús hechos por los programadores de aplicaciones. • Interfı́cies orientadas por menús: – Facilitan la interacción con el usuario. – No contemplan todas las amplias posibilidades del lenguaje de consulta. 2. Programador de aplicaciones • Diseña e implementa aplicaciones en lenguajes de programación (C, PASCAL, COBOL, PL/I, etc.) para los usuarios finales. • Aplicaciones realizan transacciones a la Base de Datos mediante código SQL dentro de los ficheros fuente de la aplicación C, PASCAL, COBOL, PL/I, etc. 3. Administrador de Base de Datos (Data Base Administrator - DBA) • Encargado del mantenimiento de la información y la estructura de la Base de Datos. • Configura el SGBD según las polı́ticas de servicios y de acceso de datos que se decidan. 16 BASE DE DATOS Componente más importante del Sistema de Base de Datos. Importante su correcta estructuración y el mantenimiento de su contenido. Aspectos a tener en cuenta: 1. Caracterı́sticas de los datos 2. Tipos de datos 3. Entidades e interrelaciones (diseño – Modelo Entidad/Relación) 4. Tablas y referencias (implementación – Modelo Relacional) 17 1. Caracterı́sticas de los datos Dos caracterı́sticas importantes de los datos: INTEGRADAS: La Base de Datos (BD) vista como la unificación de diferentes datos, eliminando posibles redundancias. Ejemplo: Tablas Empleats, Inscripció No es necesario poner el campo Departamento en la relación Inscripción COMPARTIDAS: Diferentes usuarios pueden acceder a los mismos datos y utilizarlos con finalidades diferentes (posiblemente con acceso concurrente). Cada usuario verá los datos y las interpretará de forma diferente. Ejemplo: Tabla Empleats Campo Departament en la relación Empleats utilizado de forma diferente por el departamento de personal (nómina, categorı́a) o de educación (edad, formación del empleado). 18 2. Tipos de datos Dos tipos importantes: • Datos Persistentes: Datos contenidos a la BD. • Datos Transitorios: Datos que se interrelacionan con la BD pero que no pertenecen a ella. Dos tipos: Datos de Entrada: Información que entra por primera vez en el Sistema. Puede llegar a formar parte de la BD (inserción, actualización de información). Información que se quiere insertar a la BD. Información que se da para hacer una consulta. Datos de Salida: Mensajes y resultados que provienen del Sistema. Información que proviene de los datos persistentes del Sistema. Según la clasificación anterior, Base de Datos: Conjunto de datos persistentes que representan la realidad de una empresa o organización que se quiere modelar. 19 3. Entidades e interrelaciones Muy importantes para realizar el diseño de una Base de Datos. Entidades: Cualquier objeto distinguible que se ha de representar en la Base de Datos. Interrelaciones: Vinculan diferentes entidades (usualmente dos–interrelación binaria) en ambos sentidos. Asocia un valor de una entidad con un valor de la otra entidad (interrelación binaria). Entidades e interrelaciones llevan asociadas propiedades, datos asociados. Ejemplo: Compañı́a fabricante de maquinaria de donde se guarda información sobre las siguientes entidades: • Proyectos (máquinas que se construyen) • Piezas de los proyectos • Proveedores de las piezas • Empleados • Departamentos • Almacenes • Lugares 20 * Cierto proveedor suministra ciertes piezas Cierta pieza es suministrada por ciertos proveedores Interrelación permite resolver cuestiones del tipo: Dado un proveedor Dada una pieza → → Encontrar las piezas correspondientes Encontrar los proveedores correspondientes Tipos de interrelaciones: (a) Interrelación con la misma entidad (b) Más de una interrelación entre 2 entidades (c) Interrelación ternaria 21 (a) Interrelación con la misma entidad Pueden existir interrelaciones binaries con la misma entidad. Organización jerárquica de datos. Una pieza puede estar compuesta de otras piezas. Ejemplo: Frontisa formada por un bis y una tapa. (b) Más de una interrelación entre 2 entidades Cada interrelación que relaciona dos entidades tiene un significado diferente. 22 (c) Interrelación ternaria Interrelación entre tres entidades. Ejemplo: (proveedor, piezas, proyectos) Ciertos proveedores suministran ciertas piezas a ciertos proyectos NO ES EQUIVALENTE A: • PROVEEDORES suministran PIEZAS • Se utilizan PIEZAS en PROYECTOS • PROYECTOS reciben subministros de PROVEEDORES Interrelaciones anteriores son BINARIAS. 23 Ejemplo: Interrelación PEPE suministra LLAVES INGLESAS en el proyecto EUREKA suministra más información (menos incertidumbre) que las interrelaciones: PEPE sumistra LLAVES INGLESAS → a algun proyecto Z Se utilizan LLAVES INGLESAS en el proyecto EUREKA → para algún proveedor SX PEPE es proveedor del proyecto EUREKA → para alguna pieza P Y De las interrelaciones anteriores no podemos inferir que • Z = EUREKA • SX = PEPE • P Y = LLAVES INGLESAS Inferencia falsa: TRAMPA DE CONEXIÓN 24 Propiedades Campos de información asociados a entidades o a interrelaciones. A ENTIDADES: A INTERRELACIONES: Pieza P4 se encuentra en el almacen M8 ↓ Propiedad asociada Cantidad de piezas almacenadas 25 4. Tablas y referencias Transformar las entidades e interrelaciones en tablas y referencias para convertir la estructura de datos al modelo relacional, modelo implementado en la mayorı́a de SGDB actuales como ACCESS, ORACLE, INFORMIX. Aplicar consultas SQL sobre la estructura relacional: 1. Número de las piezas que suministra el proveedor S1 por el proyecto Eureka. 2. Número de los proectos que dirige el empleado Pepe Pinto, en los que los suministradores son de Sabadell. 3. Número de piezas P5 que se encuentran en los almacenes de la Seu de Urgell. 4. Número de los empleados del departamento de diseño que participan en el proyecto Eureka. 26 Evolución histórica Evolución de las Bases de Datos ha estado un intento de organizar la información en computadores de la forma más eficiente posible. Cinco etapas históricas: 1. Funciones de acceso a ficheros en código máquina (60’s) 2. Independencia fichero lógico-fichero fı́sico (70’s) 3. Primeros sistemas de Bases de Datos (80’s) 4. Independéncia lógica y fı́sica de las datos (90’s) 5. Internet y sistemas distribuidos (actualidad) 27 1. Funciones de acceso a ficheros en código máquina (60’s) • Organización de ficheros secuencial (cinta magnética). • Procesamiento batch (flujo de ejecución decidido antes de la compilación del programa). • Software: Operaciones E/S definidas en direcciones máquina ($F4ED$). • Lenguajes: máquina y ensamblador. • Programador ha de especificar la estructura fı́sica de los datos (bytes). • Cambio de los datos → Cambio del código ensamblador. • Estructura de datos pensada para una sola aplicación. Dificultad para compartir datos a otras aplicaciones ⇓ REDUNDANCIA 28 2. Independencia fichero lógico-fichero fı́sico (70’s) • Procesamiento en interactivo (flujo de ejecución del programa decidido en tiempo de ejecución). • Software: Sistema de ficheros, funciones de acceso a fichero (open, close, read, write) y lenguajes de programación (Pascal, Fortran, Cobol, C). • Separación entre la organización fı́sica (fichero fı́sico) y lógica (fichero lógico). • Estructuras de ficheros: – Secuencial – Indexado (acceso directo) • Datos estructurados por una sola aplicación ⇒ REDUNDANCIA • Formato registro lógico = formato registro fı́sico. 29 3. Primeros sistemas de Bases de Datos (80’s) • Formato registro lógico 6= formato registro fı́sico. • Sistema orientado a compartición de datos ⇒ Disminución de redundancia. • Necesidad de controles de integridad y seguridad debido al accesos compartido entre diferentes usuarios. • Almacenamiento fı́sico independiente de programas de aplicación. • Construcción de nuevos ficheros lógicos sobre los mismos datos fı́sicos. Necesidad de un conocimiento profundo de la estructura fı́sica por parte de los programadores de aplicaciones. • Modificación de la estructura fısica de los datos afecta a la aplicación, pues la obliga a recompilar el programa para cambiar los links a la estructura fı́sica. 30 4. Independéncia lógica y fı́sica de los datos (90’s) • Independencia entre los datos lógicos y los datos fı́sicos. • Modificación de la estructura de fı́sica de los datos no afecta a las aplicaciones. • Aparece la figura del administrador de la Base de Datos. • Necesidad de controles de integridad y seguridad debido al accéso compartido entre diferentes usuarios. • Faciliades en la migración de los datos a diferentes sistemas y formatos. • Versatilidad: Posibilidad de realizar preguntas a la Base de Datos inicialmente no previstas. 31 5. Internet y sistemas distribuidos (2000’s) • Distribuir los datos en lugares alejados geográficamente (sistemas distribuidos). • Utilización de Internet como protocolo de comunicación entre Bases de Datos distribuidas. • Aplicaciones con php, HTML, cgi, etc. junto con un Sistema de Bases de Datos para hacer las consultas (MySQL, Oracle, etc.) • Aplicaciones de compra y pago por Internet, móvil, PDA, etc. • Problema de la confidencialidad de los datos por la red. • Minerı́ a de datos (Data Mining). 32 Ventajas de un Sistema de Bases de Datos La centralización de las datos en un Sistema de BD le confiere ciertas ventajas respecto los sistemas de ficheros tradicionales: (a) Reducir la redundancia de datos (b) Garantizar la integridad de los datos (c) Estandarización de los datos (d) Controles de Seguridad (e) Maximizar el rendimiento del sistema (f) Independencia de los datos 33 (a) Reducir la redundancia de datos Redundáncia: Aparece sobre todo en sistemas de organización tradicionales donde cada aplicación tiene sus propios ficheros. Presenta dos problemas: • Ocupación innecesaria de disco • Posible fuente de inconsistencia en el caso de no propagar las modificaciones NO OBSTANTE, a veces interesa tener información duplicada en diferentes lugares para mantener el acceso en caso de averı́a del sistema fı́sico. Reducir redundancia ⇒ elimina INCONSISTENCIA 34 Inconsistencia Cuando se obtienen diferentes valores de la misma información. Consecuencia de mantener redundancia no controlada. Ejemplo: Dos tablas que tienen como propiedad el nombre de cliente: Clientes y Facturas. • Si se modifica la propiedad en una tabla y en la otra no ⇓ INCONSISTÉNCIA Si NO HAY REDUNDANCIA ⇒ NO HABRÁ INCONSISTENCIA Si la redundancia es controlada ⇒ Consistencia BD desde (mediante DBMS) punto de vista usuario ⇓ PROPAGACIÓN DE ACTUALIZACIONES (inserción, modificación, eliminación) Aplicar automáticamente modificaciones a otras tablas a partir de la modificación en una tabla. EN REALIDAD, existen pocos sistemas con redundancia controlada y propagación de actualizaciones, por el retardo en el tiempo de respuesta de las transacciones. 35 (b) Garantizar la integridad de los datos INTEGRIDAD: Asegurar que la información en la Base de Datos sea correcta. FALTA DE INTEGRIDAD: Puede venir dada por: 1. Inconsistencia 2. Valores incoherentes: • Jornada de trabajo diaria de 400 horas • Fecha de 30 de febrero • Edad de 150 años Control centralizado de los datos: • A cada atributo de la Base de Datos se le asocia el conjunto de valores permitidos (dominio). • DBMS verificará que en las transacciones de inserción y actualización los valores que se quieren poner en el atributo se ajustan al dominio definido. INTEGRIDAD: • Importante en sistemas multiusuario. • Generación de información inconsistente o errónea puede suponer un peligro importante para usuarios que consulten información, pues puede dar lugar a toma de decisiones equivocadas. EN GENERAL, sistemas de BD son en la mayorı́a deficientes en controles de integridad. 36 (c) Estandarización de los datos Como el DBA tiene control centralizado de la BD, puede garantizar el cumplimiento de las NORMAS PARA LOS DATOS: • Normas de la empresa • Normas del departamento • Normas de la industria (producción) • Normas de documentación NORMALIZACIÓN DE LOS DATOS: Conveniente para: • Intercambio de información • Migración de datos entre sistemas • Compartir y comprender la información (documentación de los datos) 37 (d) Controles de Seguridad DBA (Data Base Administrator): Tiene jurisdicción y control sobre los datos. Puede garantizar: • Asegurar y controlar el acceso a la Base de Datos por los canales apropiados (via SGBD-DBMS). • Definir controles de seguridad para cuando se quiera acceder a información delicada. Establecer controles para cada tipo de acceso: – Consulta – Modificación – Actualización – Borrado • Controles para el acceso concurrente a los datos. La centralización de los datos obliga a establecer controles de seguridad. 38 (e) Maximizar el rendimiento del sistema Centralización de los datos → Requerimientos generales del sistema → Premisas conocidas por el DBA DBA puede estructurar los datos de forma que las transacciones más importantes y más utilizadas se realicen más rapidamente que otras transacciones menos usuales. ⇓ Objetivo: Aumentar el rendimiento global del sistema Medidas de rendimiento: • Número de transacciones por unidad de tiempo • Tiempo de respuesta de una transacción tı́pica • Grado de ocupación de los dispositivos (disco, redes, etc.) 39 (f) Independencia de los Datos Objectivo principal de las Bases de Datos. Ventaja de las más importantes de las BD. Independéncia de los datos: Caracterı́stica de immunidad de las aplicaciones ante cambios en la estructura de almacenamiento y técnicas de acceso. CASO OPUESTO: Aplicaciones dependientes de los datos: • Aplicaciones orientadas a lenguajes de tercera generación (C, Pascal, Cobol, etc.). • Organización de los datos (ficheros) dependiente de los requerimentos de la aplicación ⇓ Conocimiento de la organización de los datos y las técnicas de accéso forman parte integral de la lógica y el código de la aplicación. • formato registro Lógico = formato registro Fı́sico • Aplicación en la cual es imposible alterar la organización fı́sica de los datos sin afectar la aplicación (editar y compilar programa). 40 En sistemas de Bases de Datos no es conveniente tener aplicaciones dependientes de los datos por dos razones importantes: 1. Cada aplicación requiere una vista diferente de los mismos datos Ejemplo: Saldo cliente (dato) • Vista por una aplicación en PESETAS • Vista por otra aplicación en EUROS Dato (saldo) guardada en un ÚNICO FORMATO. DBMS controla la conversión quan haga falta. 2. DBA ha de tener libertad para modificar la estructura de almacenamiento y las técnicas de acceso para mejorar el rendimiento, sin haber de modificar las aplicaciones ya existentes Las siguientes modificaciones no han de comportar cambios en las aplicaciones • Añadir nuevos atributos o campos de información a la base de datos • Nuevos dispositivos de almacenamiento • Cambiar la estructura de la Base de datos 41 ASPECTOS DE LA ESTRUCTURA DE LA BASE DE DATOS MODIFICABLES SIN ALTERAR LAS APLICACIONES Set aspectes: 1. Representación de datos alfanuméricos • Formatos ASCII, EBCDIC. Hay que implementar algoritmos de conversión que utilizará el DBMS. 2. Representación de datos numéricos • Forma: Aritmética (decimal) o carácteres • Base: Binaria, decimal • Escala: Punto fijo, punto flotante • Modo: Real, complejo • Precisión (número de dı́gitos) 3. Unidades para los datos numéricos • Pulgadas, cm, m. Hay que implementar algoritmos de conversión que utilizará el DBMS. 42 4. Codificación de los datos Asignación de códigos a la información. Aumenta la capacidad de compresión de almacenamento. Ejemplo: Tabla de personal universitario • Camp: Situación, CHAR(10) • Valores: "Estudiante" "Profesor " "PAS " CON CODIFICACIÓN: • Campo: Situació, CHAR(1) • Valores Significado 1 2 3 Estudiante Profesor PAS 43 5. Materialización de los Datos Forma de obtener las ocurrencias (valores) de los datos. Dos formas: 1. DIRECTO: No hay cálculo añadido para obtener los datos acceso a un atributo lógico ≡ acceso a un campo fı́sico 2. INDIRECTO: Requiere cálculo adicional para obtener información. Estos datos no pueden ser modificados directamente por el usuario. acceso a un atributo lógico ≡ acceso a diversos campos fı́sicos Ejemplo: Campos Cantidad total de piezas, Promedio de pesos de las piezas requieren ser calculados en el momento en el cual se consultan. 6. Estructura de Ficheros Fichero fı́sico puede ser: • Contenido en UNA o VARIAS unitades de disco fı́sico • ORDENADO por cadenas de apuntadores o por diferentes ı́ndices, o NO ORDENADO • Tipos de acceso: SECUENCIAL, INDEXADO, HASHING 44 7. Estructuras de los registros almacenados Dos estrategias: • COMBINAR registros fı́sicos – Registro lógico ⇒ subconjunto de campos del registro fı́sico • SEPARAR registros fı́sicos – División permite almacenar información menos accesible o menos necesaria en dispositivos (discos magnéticos) más lentos. – 1 Registro lógico ⇒ n registros fı́sicos 45 Inconvenientes de un Sistema de Base de Datos La importancia de los datos para gestión o toma de decisiones, junto con las capacidades del sistema de BD presuponen que se confie en estos sistemas para obtener la información. NO OBSTANTE, se han de tener en cuenta ciertos inconvenientes que pueden presentar estos sistemas: • Pueden surgir problemas de integridad y seguridad si no existe un buen control de la BD. • Es necesario hardware adicional par garantizar – acceso concurrente – rapidez en el acceso de los datos lo que supone un alto coste económico si se quiere una cierta eficiencia. • Acceso concurrente puede dar lugar a DEADLOCK, lo que provoca una bajada de rendimiento muy significativa. • Errores en el sistema de BD (datos, aplicaciones, DBMS) pueden dar resultados erróneos, pudiendo provocar la adopción de decisiones importantes erróneas, con las correspondientes pérdidas. • SGBD-DBMS: Programa muy complejo, importante y determinante para garantizar la consistencia y validez de los datos. Requiere ser muy testeado. 46