Capítulo 1: Introducción a losSistemas de Gestión de Bases de Datos
(SGBD)
Fernando Cano EspinosaUniversidad de Oviedo. Departamento de Informática
Produced with LATEX seminar style & PSTricks 1
CONTENIDO
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
CONTENIDO 2
DEFINICIÓN Y OBJETIVOS DE LOS SGBD
Definición de los SGBD
1. Una BD es una colección de datos interrelacionadossobre un determinado sistema (ventas, un almacen, unabiblioteca, una línea aérea, una contabilidad, etc.)
2. Un SGBD es una colección de programas y estructurasde datos que nos permiten la manipulación o gestión deuna BD.
3. Un SGBD nos debe proporcionar un entorno que nospermita hacer todo lo que necesitamos con nuestrosdatos y además de forma eficiente (rápida y cómoda).
4. Hoy tenemos bases de datos hasta en la sopa.com
DEFINICIÓN Y OBJETIVOS DE LOS SGBD 3
DEFINICIÓN Y OBJETIVOS DE LOS SGBD
Definición de los SGBD
1. Una BD es una colección de datos interrelacionadossobre un determinado sistema (ventas, un almacen, unabiblioteca, una línea aérea, una contabilidad, etc.)
2. Un SGBD es una colección de programas y estructurasde datos que nos permiten la manipulación o gestión deuna BD.
3. Un SGBD nos debe proporcionar un entorno que nospermita hacer todo lo que necesitamos con nuestrosdatos y además de forma eficiente (rápida y cómoda).
4. Hoy tenemos bases de datos hasta en la sopa.com
DEFINICIÓN Y OBJETIVOS DE LOS SGBD 4
Objetivos de los SGBD
Al principio los sistemas de manipulación de datos sebasaban en sistemas de ficheros (binarios o de texto). Porejemplo un fichero para los clientes, otro para los productos,otro para los pedidos, etc. Estos sistemas presentan seriosinconvenientes:
• La duplicación de la información en ficheros diferentes(ej. la información de un empleado aparece en elfichero que manejan los de nominas y en el de los derecursos humanos) que genera Redundancia y posiblesinconsistencias
• Los programas que utilizan los ficheros se encuentran condiferentes formatos y se necesita generar nuevo códigoante modificaciones en la forma de almacenamiento
DEFINICIÓN Y OBJETIVOS DE LOS SGBD 5
• Aparecen problemas en accesos concurretes a losficheros que normalmente se delegan al sistemaoperativos y a cada uno de los programas.
• Las restricciones de los datos (edad 18 años) se debencodificar en todos los programas y añadir o modificar lasrestricciones supone recodificaciones.
• Ante el problema de accesos de distintos usuarios, losprogramas deben implementar sistemas para mantenerla seguridad y confidencialidad de los datos.
• Otro problema es la atomicidad. Se deben establecermecanismos para que ciertos procedimientos seejecuten de forma completa o no se realice ninguna desus acciones. Por ejemplo la transferencia de dinero deuna cuenta a otra. Para ello hay que tener en cuentaque se pueden producir fallos de muy diversa naturaleza.
DEFINICIÓN Y OBJETIVOS DE LOS SGBD 6
Los sistemas de bases de datos ofrecen soluciones paratodos los problemas anteriores.
DEFINICIÓN Y OBJETIVOS DE LOS SGBD 7
VISIÓN DE LOS DATOS
Niveles de Abstracción
• El nivel físico describe cómo se almacenan realmente losdatos (ej. el nombre del cliente es un varchar de 15, laedad un smallint, etc.).
• El nivel lógico describe qué se almacena en la base dedatos (para un cliente almaceno el nombre, la edad, sucuenta corriente, etc.) y las relaciones existenes entreellos (clientes y pedidos que realizan).
• El nivel de vistas describe qué se ve se desde lasdiferentes visiones que tenemos de la base de datos.Sepuede ocultar información (ej el sueldo) por motivos deconfidencialidad, de eficiencia, etc.
VISIÓN DE LOS DATOS 8
Niveles de Abstracción
• Lo ideal es intentar mantener una independencia entrelos distintos niveles. Es decir que los cambios en un nivelno afecten a los otros (lógicamente muchas veces esimposible).
• Pero se puede conseguir que modificaciones en un nivelbajo (ej: la forma de almacenar el nombre de un clienteo su edad) no afecte a niveles superiores.
• Las aplicaciones que se desarrollan sobre BD dependenfundamentalmente del nivel lógico (de qué es lo que sealmacena).
VISIÓN DE LOS DATOS 9
Instancias y Esquemas
• Los esquemas definen la estructura de los datos que sevan a guardar (similar a la definición de una clase enlenguajes de programación). Por ejemplo, en unesquema se define la estrutura de la tabla de clientes.
• Las instancias son el conjunto de datos que tengoalmacenados en un momento dado. Por ejemplo, elcontenido de la tabla de clientes
VISIÓN DE LOS DATOS 10
MODELOS DE DATOS
• Definición: Colección de herramientas conceptualespara describir los datos con lo que vamos a trabajar.Podremos representar (en algunos casos de formagrá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 quetrabajemos utilizaremos unos otros modelos.
• Las instancias son el conjunto de datos que tengoalmacenados en un momento dado. Por ejemplo, elcontenido de la tabla de clientes
MODELOS 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
MODELOS DE DATOS 12
Modelo Entidad-Relación
• Se trata de modelar un problema del mundo real deforma gráfica (Diagrama Entidad-Relación) dentro de unnivel 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 deforma casi automática a código ejecutable en un SGDBRelacional.
MODELOS DE DATOS 13
Ejemplo de Pedidos
Cliente: Vanesa Brosa
Fecha: 02/02/2005Empleado: Bibi Ciosa
Producto Cantidad Precio Total
Patatas 5 10 50
Kiwis 4 13 52
Total Pedido 126
Peras 2 12 24
Pedido: 1369
MODELOS DE DATOS 14
Ejemplo de Pedidos
Se pretende crear una una base de datos que refleje lainformación que necesita empresita para organizar suspedidos. El sistema debe contemplar los siguientes datos yrestricciones:
• De los productos se quiere registrar un identificador, sudescripción, su precio y sus existencias.
• Para los clientes se quiere registrar un identificador, elnombre, la calle y la ciudad.
• Para los empleados se quiere registrar un identificador, elnombre, la calle y la ciudad.
• De los pedidos se almacenará el cliente que lo solicita, elempleado que le atiende, la fecha y la cantidad decada producto que incluye.
MODELOS DE DATOS 15
Modelo ER de Pedidos
ATIENDE
SOLICITA
CLIENTE
id_cliente nombre
ciudad
calle
(0, n)
1:N
(1, 1)
PEDIDO
id_pedido N:M
(0, m) fecha
(0, n)
(1, 1)
PRODUCTO
id_producto descripcion
precio
existencias
cantidad
DETALLES_PEDIDO
1:N
id_empleado
EMPLEADO
calle nombre
ciudad
(0, n)
MODELOS DE DATOS 16
Modelo Relacional
• Vamos a trabajar con tablas (relaciones) compuestaspor una serie de columnas (atributos).
• Repartiremos los datos de nuestro problema real endiferentes tablas. Repitiendo columnas en diferentestablas podremos relacionar toda la información.
• Nos movemos en un nivel de abstracción lógico y casifísico.
• Contaremos con toda una teoría matemática que nospermitirá establecer restricciones entre los datos yanalizar la bondad del diseño (esquema) de nuestrs BD.
• Este modelo tiene una traducción casi directa a códigoejecutable en un SGBDR (normalmente SQL)
MODELOS DE DATOS 17
Ejemplo Modelo Relacional
Pedidos
IdPedido Fecha IdCliente IdEmpleado
100 01/01/2005 1 10
101 01/01/2005 1 12
102 03/01/2005 2 12
Clientes
IdCliente Nombre
1 Pepe
2 Paco
3 María
Empleados
IdEmpleado Nombre
10 Luis
11 Ana
12 Pedro
MODELOS DE DATOS 18
Ejemplo Modelo Relacional
Productos
IdProducto Nombre Precio Existencias
200 Patatitas 10 100
201 Gusanitos 12 1234
202 Scrotitos 21 222
DetallesPedido
IdPedido IdProducto Cantidad
100 200 10
100 201 8
101 200 333
MODELOS DE DATOS 19
LENGUAJES DE DEFINICIÓN Y MANIPULACIÓ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 datosque contiene metadatos (es decir, datos acerca de losdatos)
• También suelen incluir órdenes para definir la estructurade almacenamiento y los métodos de acceso utilizadospor el SGBD.
LENGUAJES DE DEFINICIÓN Y MANIPULACIÓN DE DATOS 20
FUNCIONALIDADES DE UN SGBD
Los SGBDs son como pequeños sistemas operativosorientados a la gestión de datos. Dentro de suscomponentes funcionales podemos resaltar los siguientesgestores.
• Gestor de almacenamiento (gestión de la memoriaintermedia).
• Gestor de usuarios
• Gestor de integridad
• Gestor de transacciones
• Gestor de concurrencia
• Gestor de recuperaciones
Muchos de estos gestores están interrelacionados
FUNCIONALIDADES DE UN SGBD 21
USUARIOS DE SGBD
Los usuarios se diferencian por la forma en que interactúancon el SGBD.
• Administrador de la base de datos: Es el responsableglobal del SGBD y de cada base de datos.
• Programadores de bases de datos: generan código(SQL) propio del SGBD, pueden realizar labores dedefinición y de manejo de datos. Interactúan conintérpretes del SGBD generalmente de SQL.
• Programadores de aplicaciones: generan aplicacionesen un determinado lenguaje e interactúan con el SGBDpor medio de llamadas LMD.
• Usuarios finales: invocan alguno de los programas deaplicación previamente programados.
USUARIOS 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 delmé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 delos requisitos
USUARIOS DE SGBD 23