Escolar Documentos
Profissional Documentos
Cultura Documentos
Bloque III
Informtica Bsica - Curso 2014/2015
Oscar Pedreira, Susana Ladra
Contenidos y bibliografa
Contenidos
3.1. Introduccin a las bases de datos
3.2. Modelo relacional
3.3. Introduccin al diseo de BD
Bibliografa
Elmasri, R.; Navathe, S. (2007). Fundamentos de Sistemas de
Bases de Datos. Addison-Wesley
A. Silberschatz; H. Korth; S. Sudarshan (2006). Fundamentos de
Bases de Datos. Mc Graw Hill.
Bases de datos
Qu son las bases de datos?
Muchas de nuestras actividades cotidianas implican una consulta
o un cambio en una base de datos.
Ej.: trmite bancario, reservar un libro en la biblioteca, ...
Bases de datos
Definicin de Base de Datos (BD)
Una base de datos almacena datos de un determinado dominio
de inters.
Algunos ejemplos:
Centro deportivo (abonados, actividades, material )
Universidad (alumnos, asignaturas, profesores )
Empresa (empleados, clientes, pedidos, facturas )
Bases de datos
Ejemplo: base de datos con informacin de los clientes de una
empresa
Ejemplo: Tabla Clientes
DNI/NIF
Nombre
Direccin
Telfono
11.222.333-A
Francisco Prez
C/. Mayor, 1
600 200300
22.111.333-B
Antonio Garca
C/. Mayor, 2
600 400500
33.222.111-C
Jos Gonzlez
C/. Paseo, 3
600 600700
Bases de datos
Definicin de Base de Datos (BD)
Principales operaciones sobre una base de datos:
Consultar
Insertar
Actualizar
Eliminar
C/. Real, 1
981 10 20 30
Pepe
C/. Real, 2
981 10 20 31
Redundancia
Inconsistencias
N de cuenta
Saldo
Cliente
2222 33 40000005
100
Pepe
11
SGBD
Datos
Servidor
13
Modelos de datos
Cmo organizamos los datos en la BD?
Un modelo de datos establece la forma en que se estructuran los
datos y qu operaciones podemos realizar sobre ellos.
Modelo de datos
Coleccin de herramientas conceptuales que sirven para describir
la estructura de la base de datos
Estructura de los datos
Restricciones
Operaciones en la BD
17
Modelo relacional
De forma simplificada, podemos decir que el modelo relacional
organiza los datos en tablas
Estructura de los datos: relaciones (tablas)
Restricciones: clave primaria, clave fornea, etc.
Operaciones: lgebra relacional
18
Principales caractersticas
Es un modelo simple
Organiza los datos en tablas, de forma simple e intuitiva
Fundamentos matemticos
El modelo se apoya en una base matemtica formal
Flexibilidad
Facilita el diseo de BD de forma sencilla en la mayora de los
dominios
19
Modelo relacional
Un primer ejemplo:
Pedidos
NIF-cliente
Cod-Prod
Uds.
12.345.657
1293
Clientes
Productos
NIF
Nombre
Cdigo
Nombre
Precio
12.345.657
Pepe
1293
Porttil
700
20
3.2.1 Relaciones
Relaciones
Concepto de relacin
El modelo relacional define la relacin como la estructura para
almacenar los datos de la BD
Una relacin se parece a una tabla (aunque no es lo mismo)
La relacin es el concepto formal del modelo relacional de lo que
para nosotros son las tablas de la base de datos
La base de datos est formada por un conjunto de relaciones
22
Relaciones
Si vemos una relacin como una tabla
Cada fila representa hechos que se corresponden con una
entidad del mundo real
El nombre de la tabla y los nombres de las columnas ayudan a
interpretar el significado de los valores que estn en cada fila
Como veremos, una fila es una tupla, el nombre de una columna
es un atributo y la tabla se denomina relacin
23
Relaciones
Concepto de relacin
Una relacin almacena determinados atributos de entidades
reales del mismo tipo
Ejemplo: la relacin Alumnos almacena los atributos DNI,
nombre y titulacin de todos los alumnos
Un atributo admite valores de un determinado dominio, que es
un conjunto de valores atmicos
Ejemplo: el dominio DNI admite nmeros de 8 cifras
Denotamos el dominio de un atributo A por dom(A)
Ejemplo: dom(titulacin) = {GII, EI, ETIS, ETIX}
24
Relaciones
Esquema de relacin
Un esquema de relacin R, denotado por R(A1, A2, , An) est
compuesto por un nombre de relacin R y una lista de atributos
A1, A2, , An
El esquema de una relacin la describe, mediante su nombre y la
lista de sus atributos
Ejemplo: Alumnos(DNI, nombre, titulacin)
Grado de una relacin: nmero de atributos
25
Relaciones
Definicin de relacin
Una relacin r del esquema de relacin R(A1, A2, , An), denotado
por r(R), es un conjunto de tuplas r = {t1, t2, , tm}.
Cada tupla es una lista ordenada de n valores ti = (v1, v2, , vn),
donde cada valor vj es un elemento del dominio dom(Aj) o bien
es un valor nulo
Una relacin r(R) es un subconjunto del producto cartesiano de
los dominios de los atributos:
r(R) dom(A1) x dom(A2) x . . . x dom(An)
26
Relaciones
Ejemplo:
Nombre de la relacin
Atributos
Alumnos
Tuplas
DNI
Nombre
Titulacin
32555111
Pedro
GII
76112113
Ana
ETIX
76555111
Alberto
GII
27
Relaciones
La BD es una coleccin de relaciones
Ejemplo: Alumnos(DNI, nombre, titulacin), Asignatura(nombre,
curso, cuatrimestre), Profesor(DNI, nombre, departamento), etc.
Preguntas
Una tabla puede tener filas repetidas?
S
Una relacin puede tener filas repetidas?
No, porque es un conjunto.
Hay orden entre las tuplas de una relacin?
No, porque no hay orden entre los elementos de un conjunto.
28
30
Valores nulos
Un valor nulo representa ausencia de informacin
Porque desconocemos esa informacin
Ejemplo: no conocemos el nmero de telfono de un alumno
Porque no procede
Ejemplo: un valor nulo en el atributo comisin de un
empleado representa que el empleado no tiene derecho a
comisin y que, por tanto, no procede almacenar su valor
31
3.2.2 Restricciones
Restricciones
Restriccin de dominio
El valor de cada atributo A debe ser un valor atmico del dominio
dom(A)
Es decir, el valor de un atributo de una relacin debe ser un valor
nico y pertenecer al dominio de dicho atributo
Ejemplo:
DNI
Nombre
Telfono
23444111
Pepe
677 129846
65273081
Juan
623 982346
645 871839
33
Restricciones
Restriccin de clave
Una relacin se define como un conjunto de tuplas. Por tanto,
todas las tuplas de la relacin deben ser distintas.
Por lo regular, existen subconjuntos de atributos (SC) de un
esquema de relacin R tal que para dos tuplas cualesquiera en un
estado de relacin r de R, t1 y t2, se cumple:
t1[SC] t2[SC]
El subconjunto de atributos SC se denomina superclave de R
34
Restricciones
Restriccin de clave
Una superclave SC especifica una restriccin de unicidad en la
relacin, que significa que no puede haber dos tuplas con los
mismos valores en los atributos de SC
Ejemplo: Dada la relacin Alumnos(DNI, nombre, titulacin) son
superclaves?
SC = {DNI, nombre, titulacin}
SC = {DNI, titulacin}
SC = {nombre}
SC = {nombre, titulacin}
35
Restricciones
Restriccin de clave
Un subconjunto de atributos K de R es una clave si es una
superclave mnima
Una superclave no es mnima si al eliminar alguno de sus
atributos sigue siendo una superclave
Ejemplo: Dada la relacin Alumnos(DNI, nombre, titulacin) son
claves?
K = {DNI, nombre, titulacin}
K = {nombre, titulacin}
K = {DNI}
36
Restricciones
Clave primaria y claves candidatas
En general, un esquema de relacin R puede tener ms de una
clave. En este caso, tambin se las denomina claves candidatas
Una de las claves candidatas del esquema de relacin se elige
como clave primaria de la relacin
La clave primaria de una relacin es el subconjunto de atributos
que utilizamos para identificar de forma unvoca las tuplas de esa
relacin
Notacin: subrayamos los atributos que forman la clave primaria
Ejemplo: Alumnos(DNI, nombre, titulacin)
37
Restricciones
Restriccin de integridad de entidad
Ningn valor de la clave primaria puede ser un valor nulo
Ejemplo:
Cmo identificamos a Ana?
Alumnos
DNI
Nombre
Titulacin
32555111
Pedro
GII
NULL
Ana
ETIX
76555111
Alberto
GII
38
Restricciones
Restriccin de integridad referencial
Un conjunto de atributos CF en el esquema de relacin R1 es una
clave fornea (o clave externa) de R1 si se satisfacen las dos
reglas siguientes:
Los atributos de CF tienen el mismo dominio que los atributos
de la clave primaria CP de otro esquema de relacin R2. Se
dice que los atributos CF hacen referencia o se refieren a la
relacin R2.
Un valor de CF en una tupla t1 del estado actual r1(R1) ocurre
como valor de CP en alguna tupla t2 del estado actual r2(R2) o
bien es nulo.
En el primer caso t1[CF] = t2[CP], y decimos que la tupla t1
hace referencia a la tupla t2.
39
Restricciones
Restriccin de integridad referencial
Una clave fornea es conjunto de atributos de una relacin R1
que para cada tupla identifican a otra tupla de una relacin R2
con la que est relacionada.
Las utilizamos para relacionar las tuplas de una relacin con
tuplas de otras relaciones
40
Restricciones
Restriccin de integridad referencial
Identifica al cliente que realiz el pedido
Pedidos
NIF-cliente
Cod-Prod
Uds.
12.345.657
1293
Clientes
Productos
NIF
Nombre
Cdigo
Nombre
Precio
12.345.657
Pepe
1293
Porttil
700
41
Restricciones
Claves forneas: relacionan datos de distintas tablas de la BD
42
Restricciones
Borrados y actualizaciones con claves forneas
Cuando eliminamos o actualizo una fila de una tabla referenciada
por otra, tenemos dos opciones:
Poner un valor nulo en la clave fornea. Ejemplo: cuando
borro un depto., el cdigo de depto. de sus empleados es
NULL
Propagar en cascada el borrado/actualizacin a la clave
fornea. Ejemplo: si borro la fila de un departamento, borro
tambin las filas de los empleados que le referencian.
43
Restricciones
Borrado/Actualizacin
Emp
Empno
deptno
10
10
Dept
Deptno
Dname
Loc
10
Research
Corua
44
3.2.3 Ejercicios
Ejercicio 1
Dada la siguiente tabla:
Nombre
Edad
Idioma
Nivel
Luis
18
Ingls
Bien
Ana
23
Ingls
Francs
Bien
Regular
Jaime
19
Alemn
Mal
Mara
42
Italiano
Bien
Ejercicio 2
Dadas las siguientes tablas:
Nombre
Edad
Idioma
Nivel
Nombre
Edad
Idioma
Nivel
Luis
18
Ingls
Bien
Jaime
19
Alemn
Mal
Ana
23
Ingls
Bien
Mara
42
Italiano
Bien
Jaime
19
Alemn
Mal
Luis
18
Ingls
Bien
Mara
42
Italiano
Bien
Ana
23
Ingls
Bien
Ejercicio 3
Dado el siguiente esquema de base de datos relacional:
Pueblo (id_pbl, nombre, provincia, num_hab)
Monumento (cod_mon, nombre, poca, tipo, id_pbl)
Ruta (id_ruta, nombre, transporte, duracin, longitud)
Pasa_por (id_ruta, id_pbl, orden)
Ejercicio 3
b) Introduce en las tablas la siguiente informacin
Roteiro dos castieiros (5 km de lonxitude, para facer a pe en 1 hora). Pasa
por A Balada, Neixn e Comba (nesta orde) todos eles pobos pequenos de
1000 habitantes e da provincia da Corua
Roteiro dos petroglifos (20 km de lonxitude, para facer en coche en 2 horas).
Pasa por Neixn, Cespn, Ageiros (nesta orde) e acaba de novo en Neixn.
Son pobos da provincia da corua que (excepto Neixn) teen 2500
habitantes. En Cespn pdese ver a Capela do Loreto, unha capela que data do
sculo XII
Ejercicio 4
Dado el siguiente esquema de base de datos relacional:
Empresa(CIF, nombre, direccin, ciudad)
Inversor (NIF, nombre, apellidos, direccin, telfono, NIF_asesor)
Asesor (NIF, nombre, telfono, email, experiencia)
Invierte_en (NIF_inversor, CIF_empresa, participacin)
Ejercicio 4
b) Introduce en las tablas la siguiente informacin
Polo de agora s recompilamos datos de das empresas:
Empresa1, ten o seu enderezo fiscal na Ra de Arteixo, 5, 15008, A Corua, e o seu CIF
B6000000J.
Empresa2, domiciliada na Ra da Universidade, 10, 08009, Barcelona, e o seu CIF
B0000005J.
Por outra banda, os inversores son:
Manuel Iglesias (NIF. 47668432R), vive en na ra de Monforte n 120, no 28088 de
Madrid. Est dispobel no telfono 91 555 23 47. Manuel ten invertido 3000 en
Empresa1, a recomendacin de Xoan Neira (xoan.neira@meumail.com, 649888888)
que leva xa dous anos traballando niso.
Alexandra Montoto (NIF. 33556874X), est domiciliada na ra Almirante, 67, no 36001
de Pontevedra. O seu telfono mbil 649 87 25 11. Ten invertidos 2000 en
Empresa2 e outro tanto en Empresa1. Alexandra confa plenamente no seu asesor
nxel Garca. un home que leva xa 10 anos traballando nisto e que est sempre
dispobel tanto por mail (agarcia@mail.com) como por telfono (630 66 45 45).
Ejercicio 5
Dado el siguiente esquema de base de datos relacional:
Cliente(DNI, nombre, direccin)
Coche (matrcula, marca, modelo, pagado, dni)
Taller (cif, nombre, direccin)
Accidente (cod_acc, dni, matricula, cif, fecha, coste)
Ejercicio 6
Dada la siguiente base de datos relacional, detecta las posibles
violaciones de las restricciones de dominio, integridad de entidad
e integridad referencial.
Clientes
DNI Nombre
Direccin
13
Juan
Real, 3
Mayor, 5
Pedro
Real, 10
18
Gonzalo
Mayor, 7
20
Agustn
Diagonal, 2
Vehculos
Matrcula
Marca
DNI
1010 AAA
1010AAA
Seat
13
18
2020 BBB
BMW
21
3030 CCC
Audi
3031CCD
Opel
13
Ejercicio 7
La base de datos de una empresa contiene las siguientes tablas:
Persona (dni, nombre, direccin, telefono)
Empleado (dni, fecha-alta, fecha-consolidacin, salario, departamento, jefe)
Departamento (#dep, nombre, presupuesto)
Problemas en el diseo
Dificultades en el diseo de BD
Hasta ahora hemos pensado directamente en las tablas que
necesitamos en la base de datos
Disear la BD de esta forma puede dar lugar a problemas en el
diseo resultante
Informacin redundante
Inconsistencias en los datos
Problemas de actualizacin y borrado
56
Problemas en el diseo
Ejemplo: Suponiendo que un modelo tiene una nica potencia
y un nico peso, qu problemas puede tener esta relacin?
Coche_mod
Matrcula
Marca
Modelo
Color
Potencia
Peso
5634HJI
Seat
Crdoba
Rojo
100
1020
2312FGT
Seat
Ibiza
Verde
100
1090
1233HJT
Peugeot
206
Verde
70
1020
8954ERT
Seat
Crdoba
Azul
100
1120
9876ERT
Seat
Ibiza
Rojo
90
1080
57
Problemas en el diseo
Ejemplo: Suponiendo que hay una nica edicin de cada libro,
qu problemas puede tener esta relacin?
Libros
ID
Autor
Ttulo
Editorial
Pginas
10
Juan
Bases de datos
623
20
Pedro
Sistemas Operativos
234
30
Juan
Bases de Datos
523
58
Problemas en el diseo
Los problemas de la relacin anterior se podran solucionar as:
Copia
ID
ISBN
10
20
10
Libros
ISBN
Autor
Ttulo
Editorial Pginas
10
Juan
Bases de datos
623
20
Pedro
Sistemas Operativos
234
59
60
Modelo lgico
Implementacin
61
Anlisis de requisitos de la BD
Normalmente, no conocemos los
detalles del dominio de inters
Conocer y analizar las expectativas de los
usuarios y los usos que se piensa dar a la
base de datos
Modelo lgico
Implementacin
62
Modelo conceptual
Descripcin conceptual del dominio de
inters
Se crea un modelo independiente del
SGBD en el que se vaya a hacer la
implementacin de la BD
MODELO ENTIDAD-RELACIN
Modelo lgico
Implementacin
63
Modelo lgico
Modelo lgico
Se crea un modelo que se corresponda
con la estructura lgica especfica del
SGBD en el que se implementar la BD
En BD relacionales
MODELO RELACIONAL
Normalizacin y desnormalizacin
Implementacin
64
Implementacin
Se implementan las tablas en el SGBD
Anlisis de
requisitos
Ejemplo SQL:
Modelo
conceptual
Modelo lgico
Implementacin
65
Modelado conceptual
Qu es un modelo?
Esquema o representacin abstracta de un sistema o realidad
compleja que se elabora para facilitar su comprensin y el
estudio de su comportamiento.
68
Entidades
Entidades
Una entidad es una cosa u objeto del mundo real,
distinguible de los dems objetos
Ejemplo: empleados, departamentos, proyectos,
Cada entidad tiene propiedades especficas, llamadas atributos,
que las describen
Ejemplo empleados: cdigo, nombre, salario, comisin,
Un tipo de entidad define una coleccin de entidades que
poseen los mismos atributos
69
Entidades
Representacin grfica
Tipo de entidad: Empleado
Atributos: cdigo de empleado, nombre, salario y comisin
La clave primaria se subraya
salario
nombre
cdigo
comisin
Empleado
70
Relaciones
Relaciones
Dos entidades pueden estar relacionadas entre si
Ejemplo: el empleado 7369 trabaja en el departamento 20
Un tipo de relacin representa un conjunto de relaciones entre
entidades de dos tipos de entidad
salario
nombre
cdigo
nombre
comisin
Empleado
localidad
cdigo
trabaja
en
Departamento
71
Relaciones
Cardinalidad y participacin, notacin (min, max)
Un empleado trabaja como mnimo e 1 departamento, y como
mximo en 1
En un departamento trabajan como mnimo 0 empleados, y
como mximo n
salario
nombre
cdigo
nombre
comisin
Empleado
(1,1)
localidad
cdigo
trabaja
en
Departamento
(0,n)
72
Relaciones
salario
nombre
cdigo
nombre
comisin
Empleado
(1,1)
Participacin
localidad
cdigo
trabaja
en
(min, max)
Departamento
(0,n)
Cardinalidad
73
Relaciones
Cardinalidad de las relaciones
Uno a uno (1:1)
Un empleado dirige uno y solo un departamento (0,1), y un
departamento es dirigido por solo un empleado (1,1)
De uno a muchos (1:N)
Un empleado trabaja en uno y solo un departamento (1,1) y
en un departamento trabajan de 0 a n empleados (1,n)
De muchos a muchos (M:N)
Un alumno estudia de 1 a n asignaturas (1,m), y en una
asignatura hay matriculados de 1 a m alumnos (1,n)
74
Relaciones
Participacin en las relaciones
Total: cada entidad tiene que estar relacionada con otra
Ejemplo: cada empleado tiene que trabajar en un
departamento (1,1)
Parcial: cada entidad no tiene que estar relacionada con otra
Ejemplo: un empleado no tiene que estar asignado a un
departamento (0,1)
75
76
78
81
82
83
84
85
86
87