Bases de datos
1
Grado en Ingeniería Informática
Javier Arroyo
Yolanda García
Virginia Francisco Gilmartín
Iván Martínez
Fernando Sáenz
Facultad de Informática
Universidad Complutense
(Modificado y adaptado por María Cruz Valiente Blázquez
para el Grado en Ingeniería del Software)
1. Formas de almacenar datos
2. BD
3. SGBD
4. Modelos de datos
5. SQL
6. Diseño de una BD
7. Usuarios de BD
8. Historia de las BD
BD: Introducción Página 1
Datos Información
Conocimiento
BD: Introducción Página 2
BD: Introducción Página 3
1. Datos en el propio programa.
2. Datos en ficheros a través de acceso secuencial (ficheros
de texto) o acceso directo (binarios).
3. Base de datos (BD).
BD: Introducción Página 4
Gran ocupación memoria.
Alto procesamiento datos.
Lentitud ejecución.
Modificaciones en el diseño o en el contenido de los datos
implican recompilar los programas.
BD: Introducción Página 5
Redundancia e inconsistencia de datos: Duplicación de
información en diferentes archivos, lo que dificulta que
todos mantengan la misma información.
Necesidad de escribir un nuevo programa para realizar una
nueva tarea.
Formatos diferentes según los ficheros.
Cuando se necesitan datos distribuidos por distintos
ficheros la consulta y modificación de datos no puede
hacerse directamente, hay que desarrollar un sistema de
acceso y modificación.
Las modificaciones en realidad son “simuladas” se borra
un dato y se inserta el nuevo.
BD: Introducción Página 6
Problemas de integridad de los datos: Difícil mantener
restricciones de consistencia.
Problemas en la atomicidad (todo o nada) de las
operaciones. Ej.: transferencia de dinero de una cuenta a
otra debería ocurrir de manera completa o no producirse
en absoluto.
Dificultad en acceso concurrente. Ej.: retirada de dinero de
dos clientes de manera “simultánea” debe dejar la
información en un estado consistente.
Seguridad: Definición de distintos niveles de acceso a los
datos: ¿pueden acceder todos los programas o usuarios a
todos los datos?.
BD: Introducción Página 7
Conviene almacenar los datos en un fichero cuando:
— Datos y aplicaciones simples, bien definidas y sin visos
de cambio.
— Pocos datos y requisitos de acceso en tiempo real que
no pueden cubrir los Sistemas de Gestión de Bases de
Datos (SGBD).
— No se requiere acceso concurrente.
BD: Introducción Página 8
Colección persistente de datos relacionados
usada para representar información.
─ Se almacena una única copia de los mismos.
─ Consistencia de datos.
─ Menor coste de almacenamiento.
─ Consulta y modificación de datos directa.
─ Las modificaciones son reales.
─ Acceso concurrente controlado.
─ Seguridad (permite decidir qué usuarios pueden ver
qué información).
─ Representan aspectos del mundo real (mini-mundo).
BD: Introducción Página 9
Constituyen la base de los sistemas de información y
favorecen la toma de decisiones. Ejemplos significativos:
— Banca (clientes, cuentas, préstamos, transacciones
bancarias, etc.).
— Líneas aéreas (reservas, información de horarios de los
vuelos, etc.).
— Universidades (estudiantes, matrículas, cursos, etc.).
— Telecomunicaciones (registro de llamadas, facturas,
etc.).
— Proveedores de productos o servicios (clientes,
productos, servicios, etc.).
— RRHH (empleados, nóminas, impuestos, etc.)
BD: Introducción Página 10
Permite la gestión de la información relativa a libros y
usuarios.
Elementos (entidades): Libros, autores, usuarios,
préstamos, etc.
Atributos: propiedades que tienen los elementos que
forman parte de la BD: autor, título, descripción, género
(novela, ensayo, poesía…), número de páginas, etc.
Relaciones entre los elementos:
— Un libro tiene varios autores.
— Existen varios tomos con el mismo título.
— Los usuarios pueden pedir prestados 4 libros como mucho.
— …
BD: Introducción Página 11
Operaciones que se pueden realizar en la BD:
— Listado de libros.
— Listado de usuarios con préstamos vencidos.
— Listado de libros reservados a usuarios.
— Alta de nuevos libros.
— Alta de usuarios.
— …
Otras características:
— Permite que bibliotecarios, administradores y usuarios
accedan simultáneamente.
— Almacenamiento seguro de la información.
BD: Introducción Página 12
Tiene como objetivo proporcionar un entorno práctico y
eficiente para almacenamiento y recuperación de los datos
almacenados en una BD. Debe garantizar:
─ Fiabilidad ante caídas del sistema.
─ Integridad de los datos (también ante accesos
simultáneos).
Los SGBD proporcionan: concurrencia, integridad y
seguridad.
BD: Introducción Página 13
Habitualmente están implementados mediante una
arquitectura cliente servidor.
Sistema de base de datos: Base de datos + SGBD.
BD: Introducción Página 14
Seguridad.
─ Un SGBD debe contar con un subsistema de seguridad y
autorización que permita al administrador del sistema crear
cuentas y especificar privilegios.
─ Debe ser posible indicar qué usuarios pueden hacer según
qué cosas.
Suministro de múltiples interfaces con los usuarios. Desde
interfaces con menús hasta intérpretes de SQL o APIs para
programadores.
Cumplimiento de restricciones de integridad:
─ Se debe permitir dotar de tipo a los datos, y el sistema debe
asegurar que se respetan esos tipos.
─ Se deben asegurar que las relaciones entre registros se
mantengan de manera consistente.
BD: Introducción Página 15
Representación de vínculos entre datos. Un SGBD debe
permitir establecer relaciones entre datos, de modo que se
puedan utilizar para obtener y actualizar con rapidez y
eficiencia datos mutuamente relacionados
Multiusuario y control de concurrencia. Se debe permitir y
controlar el acceso simultáneo de varios usuarios a los
datos.
Recuperación de fallos. El SGBD debe estar preparado para
situaciones de “caídas” en los sistemas, de modo que si una
operación ha sido interrumpida, se vuelva al estado
anterior en los datos.
BD: Introducción Página 16
Gestor de concurrencia y transacciones: Permite controlar la
ejecución de transacciones que operan en paralelo, accediendo
a información compartida y, por lo tanto, interfiriendo
potencialmente unas con otras.
— Ejemplo: Reservar un asiento en una avión desde una web
cuando decenas de personas en el mundo pueden estar
reservándolo también.
Gestor de almacenamiento: El gestor de almacenamiento
ejerce de interfaz entre los datos de bajo nivel almacenados en
la base de datos y los programas de aplicación y las consultas
remitidas al sistema.
Procesamiento de consultas: Transforma una consulta escrita
en lenguaje de alto nivel (SQL, por ejemplo) en una secuencia
eficiente de operaciones en el nivel físico.
Estructuras de datos.
BD: Introducción Página 17
Normalización en el desarrollo de aplicaciones.
Tiempo de desarrollo de aplicaciones reducido.
Flexibilidad para añadir o eliminar datos necesarios.
Disponibilidad inmediata de las actualizaciones de datos
para todos los usuarios.
Visión abstracta de los datos haciendo transparente al
usuario la implementación real del almacenamiento de
datos.
BD: Introducción Página 18
1. Extracción de los requisitos.
2. Diseño conceptual:
— Construcción de un modelo conceptual de datos a partir de
los requisitos.
— Descripción de alto nivel con conceptos cercanos al mundo
real que no da detalles del almacenamiento físico.
— Independiente del SGBD.
— Para la asignatura se utilizará el modelo entidad-relación.
3. Diseño lógico.
— Traducción del esquema conceptual a un modelo lógico de
datos que se implementa en un SGBD.
— Técnicas de normalización par detectar y resolver problemas
potenciales.
— Para la asignatura se utilizará el modelo relacional.
BD: Introducción Página 19
4. Diseño físico.
— Refinamiento para optimización del rendimiento.
— Organización de archivos, índices, desnormalización, etc.
BD: Introducción Página 20
“The entire history of software engineering
is that of the rise in levels of abstraction”
Grady Booch, “The Limits of Software”
Septiembre 2004
BD: Introducción Página 21
Abstracto:
— Simplificación de la realidad: divide y vencerás.
Comprensible.
— Expresado de tal forma que se pueda entender fácilmente.
Preciso.
— Representa fielmente el Universo del discurso (mini-mundo).
Predictivo.
— Se puede utilizar para obtener conclusiones correctas del
Universo del discurso.
Barato.
— Más barato que construir y estudiar el mini-mundo que
representa.
BD: Introducción Página 22
representa
Modelo respiratorio
Modelo del esqueleto
Otros modelos:
muscular, nervioso,
circulatorio, digestivo,
endocrino, etc.
BD: Introducción Página 23
Tractor
conductor
peso
representa
Grano
Campo
cantidad
calidad superficie
El mundo “real” El mundo “modelado”
BD: Introducción Página 24
Los modelos de datos son un conjunto de conceptos,
reglas y convenciones que permiten describir los datos del
Universo del discurso.
Los modelos de datos ofrecen un modo de describir el
diseño de bases de datos en todos sus niveles: conceptual,
lógico y físico.
Los modelos de datos representan una descripción de los
contenedores de datos y de los métodos para almacenar y
recuperar información de esos contenedores.
Colección de herramientas para describir:
— Datos.
— Relaciones entre los datos.
— Semántica de los datos.
— Restricciones de consistencia e integridad.
— Operaciones.
BD: Introducción Página 25
Representación a un alto nivel de abstracción.
Tipos:
— Modelo Entidad-Relación:
─ Consiste en una colección de objetos básicos
(entidades), con sus atributos, y de las relaciones entre
dichos objetos.
─ Se usa mucho en el diseño de bases de datos.
— Modelo de datos orientado a objetos:
─ Extensión del modelo entidad-relación con los
conceptos de encapsulación, métodos e identidad de los
objetos.
BD: Introducción Página 26
Es un tipo de modelo conceptual.
Se representa a través de diagramas (ayudan a entender los
datos y cómo se relacionan entre ellos).
Consta de objetos básicos (entidades), con sus atributos, y de las
relaciones entre dichos objetos (relaciones).
Entidad: Objeto sobre el que queremos almacenar información.
Por ejemplo, una persona.
Las entidades se describen por un conjunto de atributos que
definen o identifican las características de la entidad. Por
ejemplo, el DNI, el nombre y los apellidos de una persona.
Diagrama E/R:
— Rectángulos => entidades
— Elipses => atributos
— Rombos => relaciones
BD: Introducción Página 27
persona_contacto
número_sucursal
DNI fecha hora
Sucursal
Profesor se_asigna Sesión
pertenece
vinculado
Coche practica_con
matrícula desperfecto
DNI Alumno reserva
BD: Introducción Página 28
A veces también llamados Modelos de Implementación.
Descripción de la estructura de la BD en términos de las
estructuras que procesa un SGBD.
Ejemplos de tipos de modelos lógicos:
— Modelo relacional:
─ Usa una colección de tablas para representar tanto los
datos como sus relaciones.
─ Modelo más ampliamente usado.
— Modelo de datos semi-estructurado: Permite especificación
de datos donde los elementos de datos individuales del mismo
tipo pueden tener diferentes conjuntos de atributos (XML).
— Modelo de Objetos: Utiliza conceptos similares a los lenguajes
de programación Orientado a Objetos.
— Modelos NoSQL: Grafos, Orientadas a Documentos, Clave-Valor.
BD: Introducción Página 29
Es un tipo de modelo lógico.
Se llega a él a partir del modelo entidad-relación (E/R).
El modelo relacional emplea colección de tablas para
representar los datos y sus relaciones.
El concepto principal es la tabla o relación:
— Cada tabla debe tener un nombre exclusivo.
— Cada tabla o relación es un conjunto de tuplas que se
corresponde con una fila de la tabla.
BD: Introducción Página 30
Ejemplo de tabla:
usuarios(dni, apellidos, nombre, dirección, cc)
dni apellidos nombre dirección cc
08932583P López Amor María Calle Loma 2 004024090248091245
74657235U García Mancha Luis Plaza Retamar 4 857345784683639848
37651947T Pozo Mares Fernando Calle Fernando el Santo 56 765736572365473483
78538465G Salinas Pérez Antonio Calle Ferrocarril 14 376581248912481736
73256356M Arroyo Mata Marta Plaza Remonta 13 5762499241928419
BD: Introducción Página 31
Esquema de una tabla: Viene dado por el nombre de la tabla y
su lista de atributos. Ejemplo:
Alumnos(DNI, Apellidos, Nombre, Telefono, Acceso)
Instancia de una tabla:
— Conjunto de tuplas de la tabla.
— Ejemplo: Instancia de la tabla Alumnos:
─ Notación matemática. Ejemplo:
{ (01234567Z, Vázquez Montalbán , Manuel, 9112345678, normal), ....}
─ Notación en forma de tabla:
DNI Apellidos Nombre Telefono Acceso
01234567Z Vázquez Montalbán Manuel 9112345678 normal
…
BD: Introducción Página 32
Campo de una tabla: Elemento de información dentro de un registro.
Tiene tipo.
Registro de una tabla: Conjunto de campos correspondientes al
mismo elemento de la BD.
CONTACTOS(NOMBRE, APE1, APE2, TELEFONO ) Esquema
Luz Pérez Pérez 623 12 12
Juan López López 687 65 43 Instancia
Registro Ana Saz García 634 56 78
Campo
Esquema de Base de Datos:
— Colección de todos los esquemas de la tablas individuales.
— Representa el diseño lógico de la Base de Datos.
Instancia o ejemplar de la Base de Datos:
— Instantánea de los datos almacenados en la BD en un momento dado.
BD: Introducción Página 33
Muy dependiente del SGBD (Ej.: Oracle o SQL Server).
Proporciona detalles de cómo se almacenan los datos en el
ordenador.
Representa información del tipo formato y orden de
registros, caminos de acceso a datos, etc.
Dirigido a gente experta en computación y gestión de
datos, no a usuarios finales.
BD: Introducción Página 34
SQL (Structured Query Language)
Es el lenguaje que permite
manejar bases de datos
relacionales.
Se compone de:
— Lenguaje de definición de datos
(LDD): Creación y modificación de
las estructuras que albergarán los
datos.
— Lenguaje de manipulación de
datos (LMD): Consultas y
modificaciones de los datos.
— Lenguaje de Control de Datos
(DCL): Gestión de permisos.
BD: Introducción Página 35
El LDD sirve para crear y definir los esquemas de la BD:
— La descripción de un esquema de base de datos se
almacenará en una BD del SGBD llamada diccionario de
datos.
Las tablas del diccionario de datos contienen metadatos:
— Esquema de la base de datos:
─ Nombre de las tablas y de sus atributos.
─ Dominio y longitud de los atributos.
— Restricciones de integridad (aseguran la coherencia de
los datos en la BD).
BD: Introducción Página 36
CREATE TABLE usuarios(
dni CHAR(9) NOT NULL ,
apellidos CHAR(30) NOT NULL ,
nombre CHAR(20) NOT NULL ,
direccion VARCHAR(150) ,
cc CHAR(5) ,
edad INT ,
fecha_nacimiento DATE ,
last_updated TIMESTAMP NOT NULL
WITH DEFAULT ,
PRIMARY KEY (dni) ,
FOREIGN KEY (cc) REFERENCES localidades
);
ALTER TABLE usuarios
ADD CONSTRAINT POPUL CHECK (
edad BETWEEN 18 AND 65
);
DROP TABLE usuarios;
BD: Introducción Página 37
Sirven para la inserción, eliminación, modificación y
consulta de información en la base de datos.
Es lo que usan los usuarios (y aplicaciones) finales.
Sentencias SELECT, INSERT, UPDATE, DELETE.
Ejemplo de LMD:
SELECT nombre, apellidos
FROM usuarios
WHERE edad >= 25;
BD: Introducción Página 38
Lo utilizan los administradores de bases de datos para:
— Controlar el acceso a los datos por parte de usuarios y
grupos (roles).
— Definir las operaciones admitidas a cada usuario/grupo.
Ejemplos:
GRANT REVOKE
SELECT, SELECT,
UPDATE (edad) UPDATE(nombre, apellido)
ON usuarios ON TABLE usuarios
TO usu_maria; FROM rol_antonio;
BD: Introducción Página 39
Usuarios normales: Acceden a la BD a través de
aplicaciones escritas previamente.
Programadores de aplicaciones: Interaccionan con la BD
a través de llamadas que usan el Lenguaje de Manipulación
de Datos (LMD).
Usuarios avanzados: Consultas en SQL.
Usuarios especializados: Escriben aplicaciones de bases
de datos especializadas que no encajan en el marco
tradicional del procesamiento de datos. Ej.: sistemas
expertos, data mining.
BD: Introducción Página 40
Definición del esquema.
Definición de la estructura de almacenamiento y del
método de acceso.
Modificación del esquema y la organización física.
Concesión de derechos de acceso.
Mantenimiento.
BD: Introducción Página 41
Usuarios Sistema de gestión de bases de datos Almacenamiento en disco
Gestor de
Procesador de consultas
almacenamiento
Administrador de Esquema de Intérprete
Diccionario de datos
base de datos base de datos del DDL
Usuarios Compilador Datos estadísticos
Consulta
avanzados del DML
Gestor
de
Programadores transacciones Índices
Programas de Precompilador del
de Motor de
aplicación DML incorporado
aplicaciones evaluación
de consultas
Gestor de Ficheros de
Usuarios normales memoria datos
Código objeto de intermedia
(administrativos, Interfaces de
los programas
cajeros aplicaciones
de aplicación
automáticos, ...)
Gestor
de ficheros
42
BD: Introducción Página 42
Antigüedad:
— Bibliotecas y toda clase de registros.
— Se utilizaban bases de datos para recoger información sobre
las cosechas y los censos.
— Búsqueda manual lenta y poco eficaz al no contar con
máquinas.
— Al aparecer las primeras computadoras el concepto de base
de datos quedo ligado a la informática.
Década de los 50: Procesamiento de datos usando cintas
magnéticas para el almacenamiento.
— Las cintas sólo permitían acceso secuencial.
— Tarjetas perforadas para entrada de datos.
BD: Introducción Página 43
Década de los 60:
— Los discos duros permiten acceso directo a los datos.
— Modelos de datos en red y jerárquico.
Década de los 70:
— Ted Codd define el modelo de datos relacional, que obtuvo
gran éxito debido a la simplicidad del modelo y a la
posibilidad de ocultar los detalles de la implementación.
— Larry Ellison desarrolló Oracle.
BD: Introducción Página 44
Década de los 80:
— Prototipos de bases de datos relacionales evolucionan hacia
sistemas comerciales (Ej.: System R => SQL / DS (IBM)). SQL
se convierte en el estándar industrial.
— Sistemas de bases de datos paralelos y distribuidos.
Década de los 90:
— Sistemas de bases de datos orientados a objetos.
— Excel, Access…
— Aplicaciones de análisis de datos (data mining) y de toma de
decisiones.
— Aparición del comercio electrónico en la Web.
BD: Introducción Página 45
Años 2000
— XML tecnología de almacenamiento de bases de datos y
XQuery como lenguaje de consultas a XML.
— Administración de bases de datos automática.
Años 2010 : Auge del movimiento NoSQL (No SQL o Not
only SQL) que da mejor respuesta a las necesidades de
almacenamiento masivo, escalabilidad y elevado volumen
de consultas:
— Uso de bases de datos distribuidas y de escasa
estructuración. Ej.: Necesidades de bases de datos de
redes sociales como Facebook.
BD: Introducción Página 46