Capítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD) Fernando Cano Espinosa Universidad de Oviedo. Departamento de Informática fcano@uniovi.es Produced with LATEX seminar style & PSTricks 1 C ONTENIDO 1. Definición y Objetivos de un SGBD 2. Visión de los datos 3. Modelos de datos 4. Lenguajes de definición y de manipulación de datos 5. Funcionalidades de un SGBD 6. Usuarios de bases de datos C ONTENIDO 2 D EFINICIÓN Y O BJETIVOS DE LOS SGBD Definición de los SGBD 1. Una BD es una colección de datos interrelacionados sobre un determinado sistema (ventas, un almacen, una biblioteca, una línea aérea, una contabilidad, etc.) 2. Un SGBD es una colección de programas y estructuras de datos que nos permiten la manipulación o gestión de una BD. 3. Un SGBD nos debe proporcionar un entorno que nos permita hacer todo lo que necesitamos con nuestros datos y además de forma eficiente (rápida y cómoda). 4. Hoy tenemos bases de datos hasta en la sopa.com D EFINICIÓN Y O BJETIVOS DE LOS SGBD 3 D EFINICIÓN Y O BJETIVOS DE LOS SGBD Definición de los SGBD 1. Una BD es una colección de datos interrelacionados sobre un determinado sistema (ventas, un almacen, una biblioteca, una línea aérea, una contabilidad, etc.) 2. Un SGBD es una colección de programas y estructuras de datos que nos permiten la manipulación o gestión de una BD. 3. Un SGBD nos debe proporcionar un entorno que nos permita hacer todo lo que necesitamos con nuestros datos y además de forma eficiente (rápida y cómoda). 4. Hoy tenemos bases de datos hasta en la sopa.com D EFINICIÓN Y O BJETIVOS DE LOS SGBD 4 Objetivos de los SGBD Al principio los sistemas de manipulación de datos se basaban en sistemas de ficheros (binarios o de texto). Por ejemplo un fichero para los clientes, otro para los productos, otro para los pedidos, etc. Estos sistemas presentan serios inconvenientes: • La duplicación de la información en ficheros diferentes (ej. la información de un empleado aparece en el fichero que manejan los de nominas y en el de los de recursos humanos) que genera Redundancia y posibles inconsistencias • Los programas que utilizan los ficheros se encuentran con diferentes formatos y se necesita generar nuevo código ante modificaciones en la forma de almacenamiento D EFINICIÓN Y O BJETIVOS DE LOS SGBD 5 • Aparecen problemas en accesos concurretes a los ficheros que normalmente se delegan al sistema operativos y a cada uno de los programas. • Las restricciones de los datos (edad 18 años) se deben codificar en todos los programas y añadir o modificar las restricciones supone recodificaciones. • Ante el problema de accesos de distintos usuarios, los programas deben implementar sistemas para mantener la seguridad y confidencialidad de los datos. • Otro problema es la atomicidad. Se deben establecer mecanismos para que ciertos procedimientos se ejecuten de forma completa o no se realice ninguna de sus acciones. Por ejemplo la transferencia de dinero de una cuenta a otra. Para ello hay que tener en cuenta que se pueden producir fallos de muy diversa naturaleza. D EFINICIÓN Y O BJETIVOS DE LOS SGBD 6 Los sistemas de bases de datos ofrecen soluciones para todos los problemas anteriores. D EFINICIÓN Y O BJETIVOS DE LOS SGBD 7 V ISIÓN DE LOS DATOS Niveles de Abstracción • El nivel físico describe cómo se almacenan realmente los datos (ej. el nombre del cliente es un varchar de 15, la edad un smallint, etc.). • El nivel lógico describe qué se almacena en la base de datos (para un cliente almaceno el nombre, la edad, su cuenta corriente, etc.) y las relaciones existenes entre ellos (clientes y pedidos que realizan). • El nivel de vistas describe qué se ve se desde las diferentes visiones que tenemos de la base de datos.Se puede ocultar información (ej el sueldo) por motivos de confidencialidad, de eficiencia, etc. V ISIÓN DE LOS DATOS 8 Niveles de Abstracción • Lo ideal es intentar mantener una independencia entre los distintos niveles. Es decir que los cambios en un nivel no afecten a los otros (lógicamente muchas veces es imposible). • Pero se puede conseguir que modificaciones en un nivel bajo (ej: la forma de almacenar el nombre de un cliente o su edad) no afecte a niveles superiores. • Las aplicaciones que se desarrollan sobre BD dependen fundamentalmente del nivel lógico (de qué es lo que se almacena). V ISIÓN DE LOS DATOS 9 Instancias y Esquemas • Los esquemas definen la estructura de los datos que se van a guardar (similar a la definición de una clase en lenguajes de programación). Por ejemplo, en un esquema se define la estrutura de la tabla de clientes. • Las instancias son el conjunto de datos que tengo almacenados en un momento dado. Por ejemplo, el contenido de la tabla de clientes V ISIÓN DE LOS DATOS 10 M ODELOS DE DATOS • Definición: Colección de herramientas conceptuales para describir los datos con lo que vamos a trabajar. Podremos representar (en algunos casos de forma gráfica): – los propios datos – las relaciones entre ellos – la semántica de los datos – las restricciones de consistencia de los datos • Dependiendo del nivel de abstracción en el que trabajemos utilizaremos unos otros modelos. • Las instancias son el conjunto de datos que tengo almacenados en un momento dado. Por ejemplo, el contenido de la tabla de clientes M ODELOS DE DATOS 11 Algunos Modelos de Datos • Modelo entidad-relación • Modelo relacional • Otros modelos: – Modelo orientado a objetos – Modelos semiestructurados (XML) – Modelo de red – Modelos jerárquico M ODELOS DE DATOS 12 Modelo Entidad-Relación • Se trata de modelar un problema del mundo real de forma gráfica (Diagrama Entidad-Relación) dentro de un nivel lógico de datos. • Se identifican las entidades (producto, cliente, pedido, etc.) con los atributos que las definen (nombre, edad, precio, etc.). • Se establecen las relaciones entre las entidades. • Una vez realizado el Diagrama se puede traducir de forma casi automática a código ejecutable en un SGDB Relacional. M ODELOS DE DATOS 13 Ejemplo de Pedidos Pedido: 1369 Cliente: Vanesa Brosa Empleado: Bibi Ciosa Fecha: 02/02/2005 Producto Patatas Peras Kiwis Cantidad 5 2 4 Precio Total 10 12 13 50 24 52 Total Pedido M ODELOS DE DATOS 126 14 Ejemplo de Pedidos Se pretende crear una una base de datos que refleje la información que necesita empresita para organizar sus pedidos. El sistema debe contemplar los siguientes datos y restricciones: • De los productos se quiere registrar un identificador, su descripción, su precio y sus existencias. • Para los clientes se quiere registrar un identificador, el nombre, la calle y la ciudad. • Para los empleados se quiere registrar un identificador, el nombre, la calle y la ciudad. • De los pedidos se almacenará el cliente que lo solicita, el empleado que le atiende, la fecha y la cantidad de cada producto que incluye. M ODELOS DE DATOS 15 Modelo ER de Pedidos id_empleado calle nombre EMPLEADO ciudad (1, 1) 1:N ATIENDE precio descripcion id_producto PRODUCTO (0, n) N:M DETALLES_PEDIDO cantidad (0, n) (0, m) id_pedido PEDIDO fecha (0, n) existencias 1:N SOLICITA (1, 1) nombre calle id_cliente CLIENTE ciudad M ODELOS DE DATOS 16 Modelo Relacional • Vamos a trabajar con tablas (relaciones) compuestas por una serie de columnas (atributos). • Repartiremos los datos de nuestro problema real en diferentes tablas. Repitiendo columnas en diferentes tablas podremos relacionar toda la información. • Nos movemos en un nivel de abstracción lógico y casi físico. • Contaremos con toda una teoría matemática que nos permitirá establecer restricciones entre los datos y analizar la bondad del diseño (esquema) de nuestrs BD. • Este modelo tiene una traducción casi directa a código ejecutable en un SGBDR (normalmente SQL) M ODELOS DE DATOS 17 Ejemplo Modelo Relacional P edidos IdPedido Fecha IdCliente IdEmpleado 100 01/01/2005 1 10 101 01/01/2005 1 12 102 03/01/2005 2 12 Clientes M ODELOS DE Empleados IdCliente Nombre IdEmpleado Nombre 1 Pepe 10 Luis 2 Paco 11 Ana 3 María 12 Pedro DATOS 18 Ejemplo Modelo Relacional P roductos IdProducto Nombre Precio Existencias 200 Patatitas 10 100 201 Gusanitos 12 1234 202 Scrotitos 21 222 DetallesP edido M ODELOS DE DATOS IdPedido IdProducto Cantidad 100 200 10 100 201 8 101 200 333 19 L ENGUAJES DE D EFINICIÓN Y M ANIPULACIÓN DE DATOS Lenguajes de Definición de datos • Permiten especificar el esquema de la base de datos. create table productos ( ID_producto smallint not null primary key, descripcion varchar (15) not null, precio decimal (6,2), existencias int); • El compilador de LDD genera un diccionario de datos que contiene metadatos (es decir, datos acerca de los datos) • También suelen incluir órdenes para definir la estructura de almacenamiento y los métodos de acceso utilizados por el SGBD. L ENGUAJES DE D EFINICIÓN Y M ANIPULACIÓN DE DATOS 20 F UNCIONALIDADES DE UN SGBD Los SGBDs son como pequeños sistemas operativos orientados a la gestión de datos. Dentro de sus componentes funcionales podemos resaltar los siguientes gestores. • Gestor de almacenamiento (gestión de la memoria intermedia). • Gestor de usuarios • Gestor de integridad • Gestor de transacciones • Gestor de concurrencia • Gestor de recuperaciones Muchos de estos gestores están interrelacionados F UNCIONALIDADES DE UN SGBD 21 U SUARIOS DE SGBD Los usuarios se diferencian por la forma en que interactúan con el SGBD. • Administrador de la base de datos: Es el responsable global del SGBD y de cada base de datos. • Programadores de bases de datos: generan código (SQL) propio del SGBD, pueden realizar labores de definición y de manejo de datos. Interactúan con intérpretes del SGBD generalmente de SQL. • Programadores de aplicaciones: generan aplicaciones en un determinado lenguaje e interactúan con el SGBD por medio de llamadas LMD. • Usuarios finales: invocan alguno de los programas de aplicación previamente programados. U SUARIOS DE SGBD 22 El Adminstrador del SGBD • Coordina todas las actividades del SGBD. • Entre las funciones del ABD se incluyen: – Definición del esquema – Estructura de almacenamiento y definición del método de acceso – Modificación del esquema y de la organización física – Concesión de autorización para el acceso a los datos – Especificación de las restricciones de consistencia – Actuar como enlace con los usuarios – Supervisión del rendimiento y respuesta a cambios de los requisitos U SUARIOS DE SGBD 23 U SUARIOS DE SGBD 24 U SUARIOS DE SGBD 25 U SUARIOS DE SGBD 26