Вы находитесь на странице: 1из 50

CURSO DE

ORACLE 10G

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 1
DISEÑO DE UNA BASE
DE DATOS

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 2
¿Qué es el diseño de una base
de datos relacional?
 Objetivo: Generar un conjunto de esquemas de relaciones
que permitan almacenar la información con un mínimo de
redundancia y que faciliten la recuperación de la
información.
 Entre las cualidades de un buen diseño se encuentran:
 Reflejar la estructura del problema en el mundo real.
 Ser capaz de representar todos los datos esperados, incluso con el
paso del tiempo.
 Evitar el almacenamiento de información redundante.
 Proporcionar un acceso eficaz a los datos.
 Mantener la integridad de los datos a lo largo del tiempo.
Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 3
PROBLEMAS DE UN MAL
DISEÑO
 Supongamos las siguientes relaciones:
PERSONA (DNI, NOMBRE, APELLIDOS)
COCHE (MATRICULA, MARCA. TIPO, POTENCIA, COLOR)
TIENE_COCHES (DNI, MATRICULA, FECHA, PRECIO)

 Si creáramos una sola relación, formada por los atributos


de las tres, tendría los siguientes defectos:
-Algunos datos serán redundantes; en general en esta
relación una persona aparecerá tantas veces como coches
posea.
Ej: (12345678z,Ana,Martinez García,2345DTF,SEAT,LEON,105 cv, NEGRO,
22-01-2009,20000)
(12345678z,Ana,Martinez García,4567CDM,PEUGEOT,308,110 cv,NEGRO,
10-12-2008,22000)
Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 4
PROBLEMAS DE UN MAL
DISEÑO
 Riesgos de incoherencia durante las actualizaciones:
Por ejemplo si queremos cambiar el nombre de una
persona que se llama Ana por María ¿Cómo lo
encontramos?

Ej: (12345678z,Ana,Martinez García,2345DTF,SEAT,LEON,105cv,


NEGRO,22-01-2009,20000)

(48453278B,José,Sánchez Marin,4567GFT,PEUGEOT,308,
110 cv, NEGRO,10-12-2008,22000)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 5
PROBLEMAS DE UN MAL
DISEÑO
 Si se admitieran nulos en una relación de este tipo para
mantener, coches sin propietarios o personas que no
tienen coches.
Ej: (null,null,null,2345DTF,SEAT,LEON,105 cv, NEGRO,22-01-
2009,20000)
(48453278B,José,Sánchez Marin,null,null,null,null,null,null
,null)
 Desperdicio de espacio de almacenamiento
 Se hace más complicada la actualización (inserción,
eliminación y modificación) de los datos.

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 6
FASES DEL DISEÑO DE UNA
BASE DE DATOS

Recolección de requisitos

DISEÑO CONCEPTUAL (E/R)

DISEÑO LOGICO
(Modelo Relacional)

DISEÑO FISICO

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 7
MODELO ENTIDAD-
RELACIÓN
DISEÑO CONCEPTUAL

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 8
¿Qué es el modelo entidad-
relación?
 Es el modelo más usado para diseñar una
base de datos.
 Permiten describir conceptos del mundo
real mediante notación gráfica.
 Se identifican entidades y las relaciones
que se dan entre ellas describiendo la
parte de realidad que queremos mostrar.

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 9
Elementos del modelo entidad-
relación
 ENTIDAD
Cualquier tipo de objeto o concepto sobre el que
se recoge información: alumno, curso, cliente,
coche….
Las entidades se representan gráficamente
mediante rectángulos y su nombre aparece en
el interior. Un nombre de entidad sólo puede
aparecer una vez en el esquema conceptual.

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 10
Elementos del modelo entidad-
relación
 ENTIDAD
Ejemplos:

Coche Alumno Curso

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 11
Elementos del modelo entidad-
relación
 ATRIBUTOS
Son las propiedades asociadas a las entidades.
Representan las propiedades de los objetos a
modelar.

Para cada atributo existe un conjunto de valores


permitidos llamado dominio (esta definición es
equivalente al dominio del modelo relacional)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 12
Elementos del modelo entidad-
relación
 ATRIBUTOS

Coche (matricula, marca,modelo,color…..)

(dni, nombre, apellidos, teléfono…..)


Alumno

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 13
Elementos del modelo entidad-
relación
 ATRIBUTOS

Alumno (dni, nombre, apellidos, teléfono…..)

Clave= conjunto de atributos que permite identificar


unívocamente a una entidad dentro del conjunto de
entidades.
Ej: de un libro el ISBN
Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 14
Elementos del modelo entidad-
relación
 RELACIÓN O INTERRELACIÓN
Es una asociación entre 2 o más entidades.

Ej: La relación entre los escritores y los libros que han


escrito.

Cada relación tiene un nombre que identifica su función.

Grupo enseña Profesor

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 15
Elementos del modelo entidad-
relación
 CARACTERISTICAS DE UNA RELACIÓN

Cardinalidad número mínimo y máximo de


ocurrencias en las que una entidad puede participar en
la relación con la otra entidad y viceversa.
Grado número de tipos de entidades que participan
en la conexión.

binarias

Grupo enseña Profesor

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 16
Elementos del modelo entidad-
relación
 CARDINALIDAD
Relaciones muchos a muchos (N:M)

(N,M)
(1,N)
Alumno Realiza un Curso
(1,N)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 17
Elementos del modelo entidad-
relación
 CARDINALIDAD
Relaciones uno a muchos (1:N)

(1,N)

(1,1)
Profesor Pertenece a Departamento
(1,N)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 18
Elementos del modelo entidad-
relación
 CARDINALIDAD
Relaciones uno a uno (1:1)
(1:1)
(1,1)

Profesor Dirige Departamento


(1,1)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 19
Elementos del modelo entidad-
relación
 ENTIDADES REFLEXIVAS (Caso especial)
Ej: Como representar que una persona es jefa de
(1:N)
otra.
DIRIGE

(0,N)

Empleado
(0,1)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 20
Preparación del modelo
Entidad-Relación

 Identificar las entidades


 Identificar los atributos
 Identificar las relaciones entre las
entidades
 Revisar el modelo realizado

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 21
Ejemplos del modelo
Entidad-Relación(1)
 DISEÑO DE UNA BIBLIOTECA
 Queremos modelar el préstamo de libros de una
biblioteca. Para ello necesitamos almacenar en nuestra
base de datos los datos del lector: dni,nombre,apellidos
y codigo de lector. Los libros de los que dispone la
biblioteca

Se pide: MODELAR LA ESTRUCTURA DE ESTA


BIBLIOTECA

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 22
BIBLIOTECA
dni
Cod_lector nombre
apellidos

LECTOR
(1:1)
Préstamo fecha

ISBN (1:N)

LIBRO

materia
nombre
Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 23
Ejemplos del modelo
Entidad-Relación (2)
 DISEÑO DE UNA BASE AEREA
 Se desea almacenar la información de una compañia
aerea .La compañia aerea tiene: Aviones y tripulación.
De los miembros de la tripulación se quiere almacenar
el nombre, tipo (azafata, piloto….). Los vuelos van
desde un origen a un destino a una hora concreta y
tiene x horas de vuelo.
Cada avión tiene un código que lo identifica, un tipo de
avión que puede ser airbus, boing u otros.
Se pide: MODELAR LA ESTRUCTURA DE ESTA BASE
AEREA Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 24
BASE AEREA
Cod_avion tipo

dni nombre
AVIÓN tipo

(1:1)
TRIPULACIÓN
Realiza (1:N)
(1:N)

Cod_vuelo
(1:N)
VUELO Pertenece a
(1:N)
(1:1)
Horas_vuelo
origen
destino Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 25
Ejemplos del modelo
Entidad-Relación (3)
 DISEÑO DE UN VIDEOCLUB
 Supongamos que tenemos un videoclub, y lo queremos
informatizar. Los socios del videoclub alquilan las
películas. Un socio puede alquilar muchas películas
cada vez. De cada socio se pide almacenar su
dni,nombre,dirección y teléfono. De las películas vamos
a almacenar el identificador de la pelicula,el título, los
actores y el director.
 Se pide: MODELAR LA ESTRUCTURA DE ESTE
VIDEOCLUB

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 26
VIDEOCLUB
dni nombre
direccion

nombre
SOCIO
(1:1)
Fecha_prestamo

(1:N) Alquila
Fecha_devolucion

Id_pelicula
(1:N)
PELICULA

director
titulo
actores Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 27
MODELO RELACIONAL
(DISEÑO LÓGICO)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 28
¿Qué es Oracle 10g?
 Es un sistema de administración de base de
datos relacionales (RDBMS).
 El modelo relacional está formado por un
conjunto de tablas bidimensionales (filas y
columnas) para almacenar la información.
 Consta de tres elementos básicos:
- Tablas
- Conjunto de operadores para manipular
esas tablas.
- Reglas de integridad.

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 29
Definición de una Base de Datos
Relacional
 Una relación (tabla) está formada por:
- un esquema: conjunto de pares
(atributo,dominio).
Ej: alumno (dni,nombre,apellidos,telefono)

- conjunto de instancias: estado que


presenta una base de datos en un
determinado tiempo.
Ej: alumno (12345678z, Ana, Lopez Gomez,968245678)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 30
Conceptos de Bases de datos
relacionales
 Tabla alumnos grado de una relación

Dni Nombre Apellidos Teléfono


12345678z Ana López Gómez 968245678 Cardinalidad

46987459M José Martínez Sánchez 965874512

Grado de una relación= conjunto de atributos que componen la tabla

Cardinalidad de una relación= numero de filas que componen una tabla

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 31
Características de una base de
datos relacional
 En una tupla no puede haber filas duplicadas
(todas las filas tienen que ser distintas)
(Primary Key).
 El orden de las filas es irrelevante.
 No se admiten atributos multivaluados (en el
cruce de una fila-columna solo puede haber un
valor).
 Existe el valor nulo

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 32
Características de una base de
datos relacional
 Un Dominio es el conjunto de valores de los
atributos.
 Cada atributo de una base de datos relacional
se define sobre un dominio, pudiendo haber
varios atributos definidos sobre el mismo
dominio.
 Dominio colores=[verde,rojo,azul,…..]
Ej: color_coche colores;
color_ojos colores;

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 33
Claves de una relación
 Al no haber dos filas iguales en una
relación estas se pueden distinguir unas
de otras mediante los valores de sus
atributos.
- la clave primaria (PK) la escoge el usuario para identificar
unívocamente una fila de una relación.
- la clave ajena (FK) es un conjunto no vacío de atributos
cuyos valores han de coincidir con los de la clave primaria de
otra relación. La clave ajena y la clave primaria deben estar
definidas sobre el mismo dominio.

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 34
Ejemplos de Claves de una
Relación
alumno (dni, nombre, apellidos, ……)

alumno_matriculado (dni,id_curso)

curso (id_curso, nombre, descripcion, fecha_inicio, fecha_fin)

PK
TABLA ALUMNO dni
TABLA ALUMNO_MATRICULADO dni,id_curso
TABLA CURSO id_curso

FK
TABLA ALUMNO_MATRICULADO
- Dni referencia a la TABLA ALUMNO
- Id_curso referencia a la TABLA CURSO

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 35
¿Qué es una vista?
 Una vista no es una tabla.
- no se almacena en la base de datos su
contenido como se hace con las tablas.
- Solo se almacena la definición de la vista en
base de datos.
- Son útiles para mostrarnos datos de varias
tablas.
- Si se borra una tabla que la compone se
invalida la vista.
Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 36
Reglas de integridad (1)
 Deben cumplirlas los datos almacenados en la base de
datos para garantizar que sean correctos.

 Al definir cada atributo sobre un dominio se impone una


restricción sobre el conjunto de valores permitidos para
ese atributo restricción de dominio

 Ej: si definimos el atributo edad como NUMBER no podemos


almacenar caracteres.

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 37
Reglas de integridad (2)
 Existen otras restricciones que se deben cumplir en
todas las instancias de las bases de datos relacionales.

 Reglas de integridad de entidades


Se aplica a los Primary Key de una relación 
ninguno de los atributos que compone la clave
primaria puede ser nulo.

Ej: alumno (null,nombre,apellidos,télefono)

¿Cómo se identifica al alumno?

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 38
Reglas de integridad (3)
 Reglas de integridad referencial

Se aplica a las Foreign Key de una relación si en una relación


hay alguna clave ajena, sus valores deben coincidir con los valores
de la clave primaria a los que hace referencia, o bien, deben ser
completamente nulos.

Ej: La misma idea que en la PK


trabajador (dni, nombre, apellidos, id_departamento)

departamento (id_departamento, nombre_departamento)

OJO!!! Solo se permiten nulos en las FK que no son a su vez PK de la


relación.

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 39
Reglas de integridad
 Reglas de negocio son restricciones definidas por el
desarrollador de la base de datos. Un ejemplo sería solo
permitir aceptar un número de alumnos determinados en
un curso. En la realidad no se aplican demasiado.

 Otro ejemplo sería definir restricciones dentro de las


inserciones, modificación y supresión de filas de una
tabla de la base de datos:

 Ej: trigger de la base de datos

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 40
DISEÑO LÓGICO
 Una vez que ya conocemos lo que es el modelo
relacional vamos a pasar del esquema conceptual
(Modelo E/R) al modelo relacional (tablas).

 Objetivo: Conseguir simplicidad, eliminar redundancias…

 Se debe adaptar el diseño lógico a las exigencias del


SGBD (en nuestro caso ORACLE 10g)

 Se debe usar un lenguaje de descripción de datos (DDL)


para poder realizarlo.

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 41
PASO A TABLAS (1)
 Todas las entidades en el modelo Entidad-Relación se
corresponden con una tabla en el modelo relacional.

DNI NOMBRE APELLIDOS


PERSONA

ATRIBUTOS
Con PK dni
Dni va a ser la clave principal
Nombre
Apellidos

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 42
PASO A TABLAS (2)
 Relación N:M
Se crea una nueva relación R cuyos atributos serán:
- la clave primaria de la relación R1 más los de
la clave primaria de la relación R2 que serán claves
ajenas de la clave primaria R1 y de la clave primaria
R2 más los propios de la relación.

R1 R2

Nueva Tabla con PK la de R1 + la de R2

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 43
PASO A TABLAS (3)
 Relación N:M
Ejemplo: Un Autor escribe uno o mas libros y un libro puede ser
escrito por uno o más autores.
(N,M)
(1,N)
escribe
Autor Libro
(1,N)

autor (codautor,nomautor, ……)

escribe (cod_autor,isbn)

libro (isbn, titulo,…………..)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 44
PASO A TABLAS (4)
 Relación N:M
Otro Ejemplo: Ejemplo anterior del curso. Un alumno se matricula
de uno o más cursos.
(N,M)

(1,N)
matriculado
Alumno (1,N)
Curso

alumno (dni, nombre, apellidos, ……)

alumno_matriculado (dni,id_curso)

curso (id_curso, nombre, descripcion, fecha_inicio, fecha_fin)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 45
PASO A TABLAS (5)
 Relación 1:1 (Igual que N:M)
Se crea una nueva relación R cuyos atributos serán:
- las claves primarias de la relación R1 más los de la clave
primaria de la relación R2 que serán claves ajenas de la
clave primaria R1 y de la clave primaria R2 más los
propios de la relación.

R1 R2

Nueva Tabla con PK la de R1 + la de R2

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 46
PASO A TABLAS (6)
 Relación 1:1
Ejemplo: Un hombre puede estar casado con una o ninguna mujer y
una mujer puede estar casada o no con un hombre.
(1,1)
(0,1)
matrimonio
Hombre Mujer
(0,1)

hombre (dni_hombre, nombre, apellidos, ……)

matrimonio (dni_hombre,dni_mujer,fecha_matrimonio)

mujer (dni_mujer, nombre, apellidos,….)

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 47
PASO A TABLAS (7)
 Relación 1:N

En R2 se incluyen nuevos atributos que contienen:


- la clave primaria de R1 que será clave ajena en R2
hacia R1 más los atributos de la relación si los hubiera.

R1 R2

Si tiene atributos se pasan a la relación R2

Cristina Garcia Sánchez


Centro Rusadir Formación y Recursos 48
PASO A TABLAS (8)
 Relación 1:N
Ejemplo: Un cuadro se expone en un museo y en el museo
puede haber uno o ningún cuadro.
(1,N)

(0,1)
expone
Museo Cuadro
(1,N)

cuadro (codcuadro, titulo,pintor,nommuseo,sala ……)

museo (nommuseo,ciudad)

** Se permiten nulos en nommuseo de la entidad cuadro ya que no


pertenece a la PK de la tabla
Cristina Garcia Sánchez
Centro Rusadir Formación y Recursos 49
RESUMEN
 Con la estructura de tablas los datos se almacenan de un modo que los
usuarios entienden más fácilmente.
 El SGBD (Oracle 10g) puede manipular los datos almacenados en la base
de datos como un todo (se pueden hacer operaciones sobre varias tuplas a
la vez).
 Un dato debe ser accesible especificando un valor de clave primaria, un
nombre de tabla y un nombre de atributo.
 Puede haber valores nulos.
 En lo posible, las aplicaciones deben ser independientes de los cambios
realizados en las tablas.
 La definición de reglas y restricciones de integridad debe ser inherente al
sistema y debe poder realizarse mediante el DDL.
 Un SGBD relacional puede tener asociado un DML con procedimientos que
permita tratamientos fila a fila por separado (registro a registro), aunque las
restricciones de integridad deben cumplirse independientemente de esto.

Cristina Garcia Sánchez 50


Centro Rusadir Formación y Recursos

Вам также может понравиться