Tema 11 Bases de datos Fundamentos de Informática Índice • • • • Evolución Tipos de modelos de datos y SGBD El modelo relacional y el Diseño de una Base de Datos Operaciones básicas: consulta, inserción y borrado. SQL. Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 2 1 Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Evolución Tema 11: Bases de datos 3 Evolución de los dispositivos de almacenamiento • Archivos: almacenan un conjunto de registros CONCEPTO Nombre: Nº de Empleado: Edad: . . . . . . . . . REGISTRO NOMB Juan López J. López B. Llaneza A. Molina ARCHIVO F. Gómez L. López M. Sanz Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI CONTENIDO CAMPOS CAMPO NOMB CAMPO NEMPLE CAMPO EDAD . . . . . . . . . Juan López 13009 38 . . . . . . NEMPLE 13009 13009 15783 158123 16111 16234 16641 EDAD 38 38 27 31 43 22 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tema 11: Bases de datos 4 Evolución de los dispositivos de almacenamiento • Los sistemas de archivos evolucionan. Fichas. 13009 . JUAN LÓPEZ 38 . . . . . Cintas Registro 1 FICHERO 13009 Juan López 38 Registro 2 Registro 3 ...... Acceso secuencial: Para acceder a un registro hay que pasar antes por los precedentes Para modificar (actualizar) un archivo hay que escribirlo de nuevo entero No es posible realizar procesos concurrentes sobre el mismo archivo Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 5 Evolución de los dispositivos de almacenamiento • Los sistemas de almacenamiento de archivos evolucionan. Discos. SECTOR PISTA REGISTROS CILINDRO ACCESO DIRECTO A UN REGISTRO REGISTROS SOBRE-ESCRIBIBLES Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 6 Evolución de los archivos a las bases de datos • Programación tradicional: Los datos manejados por las aplicaciones se almacenaban en archivos tradicionales, gestionados a través de métodos de acceso de los Sistemas Operativos. Las aplicaciones dependen del almacenamiento físico de los datos. Programa de aplicación 1 Peticiones dependientes del método de acceso a ficheros del sistema operativo. Programa de aplicación 2 Programa de aplicación 3 • Actualmente: Centralizar la gestión y control de los datos a través de un software especifico y común a todas las aplicaciones (SGBD) Programa de aplicación 1 Peticiones sencillas independientes de los métodos de acceso a ficheros. Programa de aplicación 2 Programa de aplicación 3 Interface query’s Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 7 Evolución de los archivos a las bases de datos Importancia de las bases de datos: • Surgen debido a las necesidades de manipular grandes cantidades de datos, tanto desde programas como por usuarios finales. • BD’s : Colección de datos relacionados entre sí, gestionados a través de un software específico (SGBD). • SGBD: Software que centraliza e integra el control sobre las Bases de Datos, independizando los datos de los programas en sí. SGBD: Sistema Gestor de Bases de Datos Proporciona los Servicios de Datos Bases de Datos: Conjunto de archivos gestionado por un SGBD Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 8 Evolución de los archivos a las bases de datos Características de los Sistemas de BD’s • Independencia entre datos y programas. • Se facilita la gestión de los datos: Fácil uso para usuarios y programadores. Visión lógica de los datos. Relaciones, tablas, atributos Accesible mediante lenguajes sencillos y potentes. • Redundancia mínima => Garantiza la integridad de los datos. • Control de concurrencias a los datos. • Protección de datos ante accesos no autorizados. • Utilidades de administración de bases de datos (backups, restores, auditorias,…) Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 9 2 Tipos de modelos de datos y SGBD Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 10 Tipos modelos de datos y de SGBD. Existen distintos modelos de datos en función de cómo sea la organización de los mismos y que determina el Sistema Gestor de Base de Datos que se vaya a utilizar. MODELOS DE DATOS Jerárquico (segmento, árbol) Relacional (Ej: DB2 de IBM, Accesss, …) (entidades, relaciones) En Red (Ej: CODASYL) (registro, fichero ,set) Orientadas a objetos Modelo multidimensional Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 11 3 Modelo relacional y Diseño de BD Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 12 Modelo Relacional • • • En 1970, E.F. Codd de IBM presentó el modelo de datos relacional. Es de los más utilizados para almacenar datos de operación. Conceptos básicos: Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 13 Modelo Relacional DIAGRAMA CLIENTE Nº-CLIENTE (#) NOMBRE DOMICILIO EMITE PEDIDO Nº-CLIENTE (#) COD-SERVICIO(#) SERVICIO COD-SERVICIO(#) TIPO CLASE TARIFA REPOSITORIO Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 14 Modelo Relacional y Diseño de la BD • En el desarrollo de una aplicación, entre otras tareas, hay que realizar el Diseño de la Base de Datos, que consiste en: • Definir su contenido • Definir su estructura Para el Diseño de la Base de datos se realiza: 1. Diseño lógico, estructuras lógicas de datos visibles para los programas, donde se debe decidir • qué entidades existen y qué atributos tienen • qué relaciones entre entidades se van a manejar en la aplicación. 2. Diseño físico, estructuras físicas de los datos • Qué ficheros e índices se van a utilizar • En cada fichero, qué tabla se va a almacenar, es decir, cuáles son los atributos que tendrá cada uno de los registros almacenados en el fichero. • Se ha de evitar tener datos redundantes. • Se utiliza la Normalización para realizar el diseño lógico de la base de datos • Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 15 4 Operaciones básicas Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 16 Operaciones básicas sobre una Base de Datos • La operación sobre una base de datos se realiza a través del software que controla la base de datos: el SGBD (Sistema Gestor de Base de Datos) Programa de aplicación 1 Peticiones sencillas independientes de los métodos de acceso a ficheros. Programa de aplicación 2 Programa de aplicación 3 Interface query’s • En los SGBD relacionales, el lenguaje de consulta estándar que se utiliza es el SQL (Structured Query Language, Lenguaje de consulta estructurado). • El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones en éstos últimos: seleccionar, modificar, crear ó borrar registros. • Algunos SGBD que utilizan SQL son, por ejemplo: DB2, Oracle, Informix, MySQL, … Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 17 5 ¿Y con lo que sé de C? Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 18 ¿Y con lo que sé de C? ¿Tendríamos alguna manera de trabajar con Bases de datos con lo que sabemos hasta ahora, sin usar un SGBC y SQL? Pues sí … Lo más lógico sería utilizar ficheros binarios. • Para cada fichero binario, se decide qué estructura tiene cada registro. • En distintos ficheros, se guarda la información de las entidades y relaciones de la aplicación. • Para “recuperar” información, se puede acceder a varios ficheros a la vez, relacionando la información de registros de distintos ficheros. • Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 19 ¿Y con lo que sé de C? Por ejemplo: typedef struct avion { int identificador; /* ID único utilizado en el otro archivo */ char modelo[20]; /* Tipo de avión, por ejemplo "Boeing 747‐400" */ int plazas; /* Número máximo de pasajeros */ int velocidad; /* Velocidad en km/h */ }T_AVION; typedef struct recorrido { int num_vuelo; /* Número de vuelo */ char origen[4]; char destino[4]; int avion_asignado; /* Identificador del avión asignado al recorrido */ int dia; /* Dia de la semana*/ int num_pasajeros; /* Número de pasajeros en este vuelo */ } T_RECORRIDO; La función para mostrar toda la información de los vuelos previstos, incluyendo la información sobre el avión asignado y el grado de ocupación del avión, tendrá que acceder primero al fichero “recorridos.dat” y para cada recorrido, buscar en el fichero “aviones.dat” la ocurrencia del avión con ese identificador y obtener sus datos. Solución: apartado 4 en: https://www.iit.upcomillas.es/palacios/cursoc/IINF_junio_2004.pdf Departamento de Sistemas Informáticos Escuela Técnica Superior de Ingeniería ICAI Tema 11: Bases de datos 20 Escuela Técnica Superior de Ingeniería ICAI Alberto Aguilera 25 28015 Madrid Tel +34 91 542 28 00 Fax + 34 91 542 31 76 Iwww.icai.upcomillas.es www.upcomillas.es