2. Definiciones Básicas
Sistemas Gestores de Bases de Datos (SGBD)
Modelo de datos: el modelo relacional
OpenOffice.org Base
3. Conjunto de datos, almacenados de forma
sistemática.
El acceso a la información se consigue con
pasos definidos.
En esta asignatura consideraremos las BBDD
almacenadas en un ordenador.
Para ello es preciso digitalizar la información:
números, cadenas de texto, imágenes, etc.
4. Las BD proveen cuatro operaciones
básicas, conocidas como operaciones CRUD:
◦ Create: introducción de nuevos datos en la BD.
◦ Read: lectura de datos
◦ Update: modificación de datos
◦ Delete: borrado de datos
5. Antiguamente:
◦ Módulos gestores de información implementados
en la aplicación
◦ En su versión más sencilla consistía en un junto de
ficheros de texto, con un formato propio
◦ Ejemplo:
Clientes.txt
73483759S:Pedro Val
38473034P:Juan Blanco
38472938J:Laura Díez
6. Desventaja del uso de formatos propios
◦ Caros: generalmente conlleva implementar gran
cantidad de código
◦ Propenso a errores: códigos grandes y
complejos, con lo que es fácil cometer fallos
◦ Dificultad en el acceso: no es fácil compartir datos
entre aplicaciones si no se usan formatos comunes
◦ Reestructuración de la información: puede conllevar
cambios grandes en el código
7. Ante estos inconvenientes surgió la necesidad de
unificar el proceso entre las aplicaciones
Se desarrolló software genérico que se puede utilizar
para almacenar, manipular y acceder a datos
Reciben el nombre de Sistemas Gestores de Bases de
Datos (SGBD)
8. Las aplicaciones hacen uso de una interfaz
común para acceder al SGBD
Le indican el formato de los datos a gestionar
La cantidad de código que tienen que
implementar es mínima
Aplicación 1
…
Aplicación 2 SGBD
Aplicación N
9. Abstracción: no tenemos que conocer cómo
se almacenan los datos
Independencia: se puede cambiar los tipos de
datos o la forma en que se almacenan, sin
tener que cambiar la aplicación
Consistencia: creación de restricciones de
forma sencilla. Estas restricciones las asegura
el SGBD. Ejemplo: nota entre 0 y 10
10. Seguridad
◦ Restringir acceso
◦ Copias de seguridad independientes de la
aplicación
Minimizan el tiempo de respuesta
◦ Dado que es código que lo uso mucha gente, está
muy bien implementados
Facilitan el manejo de transacciones
11. Son un conjunto de operaciones que se ejecutan como si
fuera una única operación:
Se ejecutan todas
o
No se ejecuta nada
Ejemplo1: hacer una transferencia bancaria:
Operación 1: quitar 3 euros de la cuenta X
Operación 2: poner 3 euros en la cuenta Y
Ejemplo2: cambiar titular de una propiedad
Operación 1: eliminar el titular actual
Operación 2: asociar nuevo titular
12. Las transacciones se aseguran incluso aunque el
sistema falle
◦ Se desconecta de la red
◦ Se va la luz
◦ Etc.
Permiten asegurar la consistencia de los datos
13. Existen diversas clasificaciones de SGBD
Según interfaz, es decir, como se pueden
usar se pueden clasificar en:
◦ Interfaz de comandos + lenguaje de programación
◦ Interfaz gráfica incluida (modificable)
14. Interfaz de comandos + lenguaje de programación
◦ La interfaz de comandos suele ser usada para
administración
◦ La creación de interfaces gráficas conlleva programar en
lenguajes externos al SGBD
◦ Son los que mejor rendimiento dan, pero son complejos
◦ Ejemplos: MySQL, PostgreSQL, Oracle, Microsoft SQL Server
15. ◦ Con interfaz gráfica incluida
El propio SGBD permite crear interfaces gráficas para
acceder/manipular datos
De forma automática ofrece una interfaz gráfica y se
puede personalizar
Más sencillas de utilizar porque no hay que programar
Tienen problemas de escalabilidad: cuando se usan
muchos datos, se relentizan (algunos estudios ponen
el límite en 100.000 registros)
Ejemplos: Microsoft Access, OpenOffice.org Base
16. Independientemente del SGBD hay que definir
qué información se va a almacenar/manipular
El primer paso para ello es diseñar la base de
datos:
◦ Definir qué datos se va a almacenar
◦ Establecer el significado de los datos
◦ Establecer relaciones entre los datos
◦ Establecer restricciones en los datos
Dado un caso concreto, al conjunto de lo
anterior se le llama esquema de la base de
datos
17. Indicar qué datos se van a almacenar
◦ Ejemplo: de los clientes se va a almacenar el
DNI, Nombre, y Dirección
Dar significado a los datos
◦ Las propias etiquetas suelen dar el significado de los
datos
◦ En algunos casos, junto a la etiqueta se da una
descripción
Establecer relaciones entre los datos
◦ Ejemplo: en un banco se tiene un listado de clientes y un
listado de cuentas. Las cuentas pertenecen a los clientes
Relación entre ellas
Establecer restricciones en los datos
◦ Ej1: un DNI está formado por 8 dígitos y 1 letra
◦ Ej2: toda cuenta debe tener un propietario
18. Existen múltiples modelos de datos para
describir las BBDD
Entre ellos cabe destacar:
◦ Modelo relacional
◦ Modelo jerárquico
◦ Modelo de red
En este curso usaremos únicamente el
modelo relacional
19. Propuesto por Edgar Frank Codd en 1970
En sus inicios convivió con otros
modelos, pero actualmente es el más usado
con diferencia
Se basa en el uso de tablas (también llamadas
relaciones)
20. Cada tabla recibe un nombre único
A cada columna se le asigna un nombre
único, significativo de lo que almacena. Cada
columna constituye un atributo o campo.
Cada atributo tiene un dominio: tipo de dato que
va a almacenar
Cada fila es un registro o t-upla
21. Dominios
◦ Los dominios se especifican para cada atributo
◦ Determina qué información (tipo de dato) puede
contener
◦ Además del tipo de dato algunos sistemas dejan
introducir restricciones sobre los datos
◦ Ejemplos:
Números enteros
Números reales
Cadenas de caracteres
Fecha
Sí/No
22. Atributos
DNI Nombre Apellido1 Apellido2 Edad
36483483S Pedro Rodríguez González 25
83002582P Laura Fernández Hernández
Registros
30
37395629Z Bruno López Fernández 32
Dominios
DNI: cadena de caracteres con restriccion
(8 caracteres + 1 letra)
Edad: número entero
…
23. Hay diferentes nomenclaturas
Nomenclatura 1:
◦ Nombre_tabla(Atributo1:Dominio1, Atributo2:Dominio2, …,
AtributoN: DominioN)
Nomenclatura 2:
◦ Nombre_tabla(Atributo1, Atributo2, …, AtributoN)
Atributo1: Dominio1
Atributo2: Dominio2
…
AtributoN: DominioN
Generalmente la BD estará formada por varias tablas
24. Ejemplo:
Clientes ( DNI, Edad, Dirección, Correo_Electronico, Telefono)
DNI: cadena de caracteres (máximo 9 caracteres).
Los 8 primero son digitos y el último una letra
Edad: número entero
Dirección: cadena de caracteres (sin máximo)
Correo_Electrónico: cadena de caracteres (sin máximo)
Teléfono: cadena de caracteres (sin máximo)
25. El esquema de la base de datos representa qué
es lo que puede contener la misma: qué datos
hay, relaciones, restricciones, etc.
Una instancia representa lo que contiene en un
determinado momento.
En un esquema no se muestran registros, pero sí
los dominios.
En una instancia se muestran los registros, pero
no lo dominios.
26. Las condiciones de integridad establecen
requisitos que tienen que cumplir los datos
Tipos de condiciones de integridad
◦ Dominio de los datos.
Ejemplo: la edad tiene que ser un número
◦ Claves primarias o principales
◦ Claves ajenas o foráneas
27. En cada tabla hay que establecer una clave
primaria
Es un campo o conjunto de campos que sirve
para identificar a cada t-upla
Por tanto, no puede haber dos registros, en
los que los valores de la clave primaria sean
iguales
En el esquema de la BD se especifica
subrayando (o poniendo en negrita) los
campos que constituyen la clave primaria
28. Ejemplos: clave de 1 campo
Clientes( DNI, Edad, Dirección, Correo_Electrónico, Teléfono)
DNI Edad Dirección Correo_electrónico Teléfono
45284829S 15 Av. Bélgica pedro@gmail.com 658328347
Error 24847382P 28 Av. Madrid rodrigo@ull.es 638493740
45284829S 29 Rambla Pulido maria@gmail.com 638293749
29. Ejemplo: clave de 2 campos
Calles( Nombre_calle, CP, Longitud, Iluminada, Índice_Peligrosidad)
Nombre_calle CP Longitud Iluminada Índice_Peligrosidad
Belgica 38007 20 Si 0
Pulido 38007 80 Si 2
Error Belgica 38008 50 Si 2
Pulido 38008 20 No 3
Pulido 38007 150 Si 4
30. En las tablas podrían existir varios campos que
identifiquen unívocamente los registros
Sin embargo, sólo puede haber una clave primaria
Para asegurar la consistencia, se establece el resto
como claves alternativas
No pueden haber duplicados en las claves
alternativas
Como clave primaria se suele utilizar por la que
más a menudo se vayan a buscar datos
31. En las tablas podrían existir varios campos que
identifiquen unívocamente los registros
Sin embargo, sólo puede haber una clave primaria
Para asegurar la consistencia, se establece el resto
como claves alternativas
No pueden haber duplicados en las claves
alternativas
Como clave primaria se suele utilizar por la que
más a menudo se vayan a buscar datos
En el esquema se especifica, poniendo:
◦ Clave alternativa: Campos que la forman
32. En un comercio se quiere mantener una BD
con sus clientes. Se quiere mantener la
siguiente información:
DNI, Nombre, Apellidos, Edad, Pasaporte.
Clientes(DNI, Nombre, Apellidos, Edad, Pasaporte)
Clave alternativa: Pasaporte
33. Es un campo o conjunto de campos que tienen
dependencia con otra tabla (Tabla Referenciada)
Para que los valores de una clave ajena sean
válidos tienen que aparecer en la Tabla
Referenciada
El conjunto de campos que forman la clave
ajena, tienen que ser clave primaria o clave
alternativa en la Tabla Referenciada
Se expresa uniéndolos con flechas que apuntan a la
Tabla Referenciada, y usando el mismo nombre de
campo
34. Ejemplo de clave ajena (1 campo)
Clientes( DNI, Nombre)
Pedidos(Id_Pedido, DNI, Id_Producto, Cantidad)
Id_Pedido DNI Id_Producto Cantidad
DNI Nombre 1 37493847P 3 1
37493847P Juana 2 34720368S 3 2
34720368S Laura 3 37493847P 4 1
94739472P Eduardo 4 89348369K 2 1
5 37493847P 3 2
El SGBD no permitiría introducir el pedido con id=4
36. No usar el mismo nombre para campos que
no estén relacionados
En los SGBD no es necesario usar el mismo
nombre para un campo que es clave ajena de
otro, pero al diseñar en papel si.
37. Suite ofimática gratuita:
◦ Procesador de texto: Write
◦ Hoja de cálculo: Calc
◦ Sistema Gestor de Base de Datos: Base
Alternativa gratuita a Microsoft Office
38. Está basado en el modelo relacional
Cinco elementos principales
◦ Tablas: permite especificar las tablas del modelo
relacional
Atributos y dominios y claves principales de cada tabla
◦ Consultas: acceder a parte del contenido
◦ Formulario: crear interfaces gráficas
◦ Informes: presentar el contenido de forma que se
pueda imprimir. Resumen de datos, etc.
◦ Relaciones: permite definir las claves ajenas
39. Creación/Apertura de Bases de datos
Creación de tablas
Definición de claves ajenas
Inserción/Visualización de datos
Ejercicio 5
40. Se quiere implementar una base de datos para una
tienda en Internet. Cada cliente puede realizar
transferencias bancarias, de forma que se refleja en el
crédito asociado a su cuenta. Además del crédito de los
clientes, se quiere almacenar su DNI, Dirección, y Fecha
de Nacimiento. En la base de datos se quiere mantener
además, los productos que se venden en la página web.
La información que se quiere tener almacenada es un
identificador del producto, la descripción del
producto, y su peso. Además, cada vez que se haga un
pedido, éste se deberá almacenar. Habrá que mantener
toda la información necesaria para que el pedido se
pueda enviar al cliente, incluyendo la cantidad pedida.