Download pelicula

Document related concepts

Integridad referencial wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Normalización de bases de datos wikipedia , lookup

Base de datos relacional wikipedia , lookup

Clave primaria wikipedia , lookup

Transcript
BASE DEDATOS I
Modelo Entidad-Relación
Mg. Samuel Oporto Díaz
1 /62
BASE DE DATOS
2 /62
Base de Datos
• Es un conjunto de datos relacionados entre sí,
almacenados en conjunto sin redundancias innecesarias e
independientes de los programas que los usan.
• Son persistentes en el tiempo. Usan un lenguaje para
incluir, modificar o extraer los datos.
• Es un conjunto de datos operativos, accesibles desde algún
nivel de la empresa (Estratégico, Táctico, Operativo).
• Una BD debe cumplir con las características de:
Unicidad
Consistencia
Seguridad
Privacidad
Disponibilidad
Integridad
3 /62
Archivos Vs BD
Archivos
Base de Datos
Dependencia de relaciones externas a Independencia a relaciones externas a
los datos
los datos
Datos sin compartir en toda la empresa Datos compartidos y compatibles en la
empresa
Redundancia de los datos
Redundancia mínima y controlada
Archivos no relacionados entre si
Datos relacionados de acuerdo a un
modelo
Acceso limitado y con poca flexibilidad, Flexibilidad, Integridad, Eficiencia y
eficiencia y seguridad
seguridad
4 /62
Sistema de Gestión de Bases de Datos
• Conjunto de programas que permite definir, construir y
manipular bases de datos para diversas aplicaciones.
– Definir una BD es especificar...
• estructura de datos,
• tipos de datos y
• restricciones de los datos
– Construir una BD es...
• almacenar datos en algún medio de almacenamiento controlado
por el SGBD
– Manipular la BD es...
• consultar datos
• introducir/modificar/eliminar datos, para reflejar cambios.
• generar informes a partir de los datos almacenados
5 /62
SGBD
• DataBase Management System
SGBD = DBMS
6 /62
Sistema de Base de Datos
• Tiene por objetivo proporcionar un entorno práctico y
eficiente para almacenar y recuperar la información de la
base de datos.
• No es necesarios un SGBD de propósito general para
implementar una base de datos.
• Se puede construir un conjunto de programas propios para
crear y mantener la base de datos.
Sistema de Base de Datos
SBD = BD + DBMS + Software de Aplicación/Consultas
7 /62
Lenguajes
DSL = DDL + DML
• DDL. (Lenguaje de definición de datos).- Define o declara
objetos y restricciones de la BD. Estático e Invariante.
• DML. (Lenguaje de manipulación de datos).- Manipula o
procesa objetos de la BD. Dinámico. Operaciones.
• DSL. (Lenguaje de dominio específico - declarativo)
– Representa un nexo entre el SBD y algún lenguaje anfitrión. Ejem:
SQL, HTML
– Provee herramientas a los lenguajes tradicionales para que se
integren al Sistema de Base de Datos. Puede haber distintos tipos
de DSL para un mismo sistema .
8 /62
DDL y DML
DDL
• Detalla la implementación
del esquema de la BD
• El compilador DDL genera
la tablas que se almacena
en el diccionario de datos
• El diccionario de datos
contiene la metadata
(datos acerca de los datos)
DML
• Accesa o manipula los
datos de la BD
• Es un lenguaje de
consultas
– Procedimental – Qué y
cómo obtener datos
– No procedimental – Qué
datos se necesitan, sin
decir cómo obtenerlos.
create table customer (
customer-id
char(10),
customer-name char(59))
select customer-nam
from customer
where customer-id = ‘192’
9 /62
Niveles de Abstracción
• Nivel de Vista: Describe una parte de la BD.
Puede esconder información por seguridad
VISTA
• Nivel Lógico: Qué datos se almacenan en la
BD y qué relaciones existen entre esos datos.
LÓGICO
• Nivel Físico: Cómo se almacenan los datos.
FÍSICO
10 /62
Niveles de Abstracción
ARQUITECTURA DE TRES NIVELES
• Nivel Externo (Lenguaje de Programación “tipo Pascal”)
tipo empleado = registro (no acceso al salario)
n_empleado: cadena(6);
n_depto: cadena(4);
fin;
• Nivel Conceptual (Lenguaje de definición de datos, DDL)
EMPLEADO (
NUMERO_EMPLEADO
CARACTER(6) CLAVE PRINCIPAL,
NUMERO_DEPARTAMENTO CARACTER(4) NO NULO,
SALARIO
NUMERICO(5) NO NULO )
• Nivel Interno EMP_ALMACENADO LONGITUD=20
PREFIJO
EMP#
DEPTO#
PAGA
TIPO=BYTE(6), DESPLAZAMIENTO=0
TIPO=BYTE(6), DESPLAZAMIENTO=6, INDICE=IEMP
TIPO=BYTE(4), DESPLAZAMIENTO=12
TIPO=PALABRA, DESPLAZAMIENTO=16
11 /62
Modelos de BD
Existen diversos modelos para modelar los datos
Modelo
Jerárquico
Primer modelo de BD, semejantes a un árbol, dificil de eliminar la
redundania (IMS)
Modelo de Redes Usa nodos, un nodo puede tener varios padres. Definido por C.
Bachman, (IDMS)
Modelo Entidad - Creado por Chen (76). Representa el mundo en un conjunto
entidades (objetos) y relaciones entre objetos
Relación
Modelo
Relacional
Creado por Frank Codd (70). Basado en la lógica de predicado y
en la teoría de conjuntos. (Oracle, Sybase, Informix)
Modelo
Semántico
Creado por Quillian usado solo en investigación
Modelo Binario
Creado por Stonebraker basado en el modelo de Codd (Ingres)
Modelo Orientado tTata de almacenar en BD objetos completos (estado y
comportamiento). (Ilustra, O2 )
a Objetos
Modelo
Multirelacional
Extensión al relacional con inversión total.
12 /62
Modelo Entidad - Relación
• Modelo E-R del mundo real
– Entidades (objeto o cosas del mundo real distinguible de otros)
– Relaciones (asociación entre entidades)
• Usado para el diseño de BD
– El diseño de una BD en modelo E-R luego es convertido en un
diseño de modelo Relacional, el cual es usado para
almacenamiento y procesamiento.
13 /62
Modelo Relacional
• El modelo relacional es un modelo de datos basado en la
lógica de predicado y en la teoría de conjuntos.
• Una base de datos relacional es un conjunto de dos o
mas tablas estructuradas en registros (líneas) y campos
(columnas), que se vinculan entre sí por un campo en
común.
14 /62
Ejemplo 1
15 /62
Ejemplo 1
Ejemplo 2
17 /62
Ejemplo 2
18 /62
Ejemplo 3
19 /62
Ejemplo 3
20 /62
MODELO
ENTIDAD-RELACION
21 /62
Introducción
• Modelo de datos conceptual de alto nivel
• Propuesto por Peter P. Chen en 1976
• Describe el “mundo real” como un conjunto de ENTIDADES
y de RELACIONES entre ellas
• Existe una familia de modelo ER
• Soportado por herramientas software de diseño (CASE)
22 /62
Elementos
1. Entidad ( entity )
2. Atributo ( attribute )
3. Relación ( relationship )
4. Dominio ( values set )
23 /62
1. Entidad
• Cosa u objeto del mundo real con existencia propia y
distinguible del resto
• Objeto con existencia...
– física o real (una persona, un libro, un empleado)
– abstracta o conceptual (una asignatura, un viaje)
• Las entidades tienen atributos.
– Ejemplo: las personas tienen nombre, dirección, etc.
• Un conjunto de entidades es un conjunto de entidades del
mismo tipo que comparten las mismas propiedades
– Ejemplo: conjunto de todas las personas, empresas,
árboles
24 /62
1. Entidad
clienteid
clientenombre
clientecalle
clienteciudad
presta
mo-
monto
25 /62
2. Atributo
• Propiedad o característica de una entidad
• Una entidad particular es descrita por los valores de sus
atributos:
p1
e1
titulo = El alquimista impaciente
genero = Thriller
nacionalidad = España
añoestreno = 2002
...
dni = 87654321
nss = 1122334455
nombre = Cristina Aliaga Gil
nacionalidad = España
...
26 /62
2. Atributos Compuestos
27 /62
3. Relación
• Una relación es una asociación entre diferentes entidades.
• Ejemplo:
Ortiz
entidad cliente
posee
conjunto relaciones
A-102
entidad cuenta
• Una relación también puede tener atributos descriptivos
28 /62
4. Dominio
• Conjunto de valores permitidos para cada atributo
• Tipos de atributos:
– Simples y compuestos
– Univalorados y multivalorados
• E.j. multivalorado : numero-telefono
– Derivados
• Puede ser derivado de valores de otros atributos o
entidades
• E.j. edad, dada la fecha de nacimiento
29 /62
1. ENTIDAD
30 /62
Instancias de una entidad
• También...
– Ocurrencia
– Realización
– Ejemplar
– Entidad concreta o individual
p3
PELICULA
p2
titulo = El señor de los anillos
genero = Fantasía
nacionalidad = EEUU
añoestreno = 2001
...
titulo = Amores perros
genero = Drama
nacionalidad = Méjico
añoestreno = 1999
...
titulo = Amelie
genero = Comedia
nacionalidad = Francia
añoestreno = 2001
...
p4
31 /62
Tipo de Entidad (entity set)
• Define un conjunto de entidades que poseen los
mismos atributos
– PELICULA: titulo, genero, nacionalidad, añoestreno,
numcopias
– EMPLEADO: dni, nss, nombre, fechanacim, direccion,
telefono, altura, nacionalidad, edad
• Notación
EMPLEADO
PELICULA
CLIENTE
LOCAL
VIDEOCLUB
DIRECTOR
ACTOR
32 /62
Tipo de Entidad
• EMPLEADO: dni, nss, nombre, dirección, telefono,
altura, fechanacim, nacionalidad, edad
• Las instancias del tipo de entidad se agrupan en un
conjunto de entidades o extensión
e1  (87654321, 1122334455, “Cristina Aliaga Gil”, “Libertad, 2. Yecla.
Murcia. 30510”, 968100200, 1’60, 28/07/1979, España, 23)
e2  (12345678, 6677889900, “Antonio Gil Sánchez”, “Paz, 5. Murcia.
Murcia.30012”, 968111222, 1’76, 14/04/1944, España, 58)
e3  (11223344, 1234567890, “Julia Sauce”, “Justicia, 20. Yecla. Murcia.
30510”, 968000222, 1’59, 23/05/1947, España, 55)
...
33 /62
Claves
• Claves (Llaves): Atributos que identifican una entidad
dentro de un conjunto de entidades.
• Superclave: Conjunto de atributos no vacío, que identifica
en forma única una entidad dentro de un conjunto de
entidades. Superclave = {superclaves}
• Clave candidata: Es una superclave para la cual ningún
subconjunto es superclave, excepto el mismo.
• Clave primaria. Es la clave candidata escogida por el
diseñador. Atributo o conjunto de atributos que permiten
identificar en forma única una tupla en la tabla y ningún
subconjunto de ella posee esta propiedad (subrayado).
• Llave foránea: Es un atributo que es llave primaria en otra
entidad con la cual se relaciona. Relacionar las entidades.
34 /62
Tipo de Entidad Débil
• No tiene atributos clave propios
• Una instancia se identifica por
su relación con una instancia de
otro tipo de entidad
• Clave parcial (o discriminante)
– Atributos de la entidad débil,
que identifican de forma
única cada instancia.
• Clave =
(clave_entidad_regular,
clave_parcial)
35 /62
2. ATRIBUTOS
36 /62
Tipos de atributos
• Simples o Compuestos
simples y
monovalorados
• Almacenados o Derivados
• Monovalorados o
Multivalorados
• Opcionales
compuestos
multivalorados
derivados
37 /62
Atributos Simples o Compuestos
• Atributos compuestos
– Pueden dividirse en otros con significado propio
fechanacim
dia mes
año
direccion
calle ciudad provincia codpostal
– Valor compuesto = concatenación de valores de
componentes
• Atributos simples
– No divisibles. Atómicos
genero
38 /62
Atributos Almacenados o Derivados
• Atributos derivados
– Valor calculado a partir de otra información ya existente
(atributos, entidades relacionadas)
– Son información redundante...
edad [de EMPLEADO], cálculo a partir de
fechanacim
» atributo derivado del valor de otro atributo
numcopias [de una PELICULA], cuenta del número
de entidades COPIA relacionadas con cada
película concreta
» atributo derivado de entidades relacionadas
• Atributos almacenados
fechanacim [de cada EMPLEADO]
nacionalidad [de una PELICULA]
39 /62
Monovalorados o Multivalorados
• Atributos monovalorados (monovaluados)
– sólo un valor para cada entidad
fechanacim [de un EMPLEADO particular]
añoestreno [de cada PELICULA concreta]
• Atributos multivalorados (multivaluados)
– más de un valor para la misma entidad
nacionalidad [PELICULA coproducida por varios países ]
telefono [ EMPLEADO con varios teléfonos de contacto]
– pueden tener límites superior e inferior
del número de valores por entidad
nacionalidad (1-2)
telefono (0-3)
40 /62
Atributos Opcionales (nulos)
• El nulo (null value) es usado cuando...
– Se desconoce el valor de un atributo para cierta
entidad
• El valor existe pero falta
altura [de un EMPLEADO]
• No se sabe si el valor existe o no
telefono [de un EMPLEADO]
– La entidad no tiene ningún valor aplicable para el
atributo:
fechaalquiler [PELICULA sólo en vídeo-venta (no
alquiler)]
41 /62
Notación para atributos
[EN2002]
calle
ciudad
provincia
codpostal
dirección
fechanacim
(0,3)
(0,1)
telefono
EMPLEADO
nombre
altura
(1,2)
nss
dni
edad
nacionalidad
42 /62
Atributos Clave
• Atributo con valor distinto
para cada instancia de un
tipo de entidad
dni en EMPLEADO
• Una clave identifica de
forma única cada entidad
concreta  atributo
identificador
calle
codpostal
dirección
fechanacim
n-f
nombre
provincia
ciudad
(0,3)
(0,1)
EMPLEADO
nss
(1,2)
altura
nacionalidad
IP
dni
telefono
edad
43 /62
3. RELACIONES
44 /62
RELACIÓN (relationship)
• También “interrelación”
• Asociación, vínculo o correspondencia entre instancias
de entidades relacionadas.
– el director “Alejandro Amenábar” ha rodado la película
“Mar adentro”
• Abstracción
– un DIRECTOR ha rodado PELICULA’s
DIRECTOR
HA_RODADO
PELICULA
45 /62
DIRECTOR
HA_RODADO
PELICULA
Instancia
del tipo de
relación
J. Médem 
C. Saura 
F. Trueba 
S. Segura 
A. Amenábar 






 Vacas
 Tesis
 Belle Epoque
 Torrente
 Tierra
 Abre los ojos
 Los otros

Tipo de Entidad:
conjunto de instancias
Tipo de Relación:
conjunto de instancias
46 /62
Grado de un tipo de relación
• Número de tipos de entidad que participan
en el tipo de relación
ACTOR
ACTUA_EN
PELICULA
Binaria: grado 2 (el más frecuente)
CONTINUACION
DE
PELICULA
Reflexiva (o recursiva): grado 1
Ternaria: grado 3
CLIENTE
ALQUILA
PELICULA
LOCAL_VIDEOCLUB
47 /62
Nombres de Rol (papel)
• Todo tipo de entidad que participa en un tipo de relación juega un papel
específico en la relación
DIRECTOR
realizador
HA_RODADO
film
PELICULA
• Los nombres de rol se deben usar, sobre todo, en los tipos de relación
reflexivos, para evitar ambigüedad
original
VERSION_DE
versión
PELICULA
48 /62
Cardinalidad
• Limitan las posibles combinaciones de entidades que
pueden participar en las relaciones
• Extraídas de la situación real que se modela
“Una película debe haber sido dirigida por uno y sólo un director”
“Un director ha dirigido al menos una película y puede haber dirigido
muchas”
• Número máximo de instancias de tipo de relación en las
que puede participar una misma instancia de tipo de
entidad
– la cardinalidad de HA_RODADO es “1 a N”
– HA_RODADO es de tipo “1 a N”
49 /62
Cardinalidad
• Números mínimo y máximo de instancias de un tipo de
entidad que pueden estar relacionadas con una
instancia del otro tipo de entidad
• Notación
– (min, max) en la línea que une entidad y relación
PERSONA
PERSONA
(0,m)
(1,1)
USA
(1,n)
EDIFICIO
POSEE
EDIFICIO
p1 
 e1
 e2
POSEE
(0,n)
p2 
 e3
p3 
 e4
50 /62
Cardinalidad
• Razones de cardinalidad más comunes:
– 1:1 (“uno a uno”)
– 0:N (“cero o muchos”)
– 1:N (“uno a muchos”)
– M:N (“muchos a muchos”)
trabajador
1
TRABAJA_EN
1
lugar trabajo
EMPLEADO
encargado 1
SUPERVISA
sucursal N
LOCAL_VIDEOCLUB
ACTOR
personaje M
ACTUA_EN
N
film
PELICULA
51 /62
Cardinalidad recursiva
continuación (0,1)
PELICULA
versión (0,n)
PELICULA
precuela
(0,1)
original
(0,1)
SECUELA DE
VERSIONA
1:1
N:1
52 /62
Razón de Participación
• Especifica si toda la extensión de un tipo de entidad
participa en un tipo de relación, o sólo parte de la
extensión.
• Clases de participación:
– Participación total (dependencia en existencia)
– Participación parcial
trabajador
1
TRABAJA_EN
1
lugar trabajo
EMPLEADO
encargado 1
SUPERVISA
sucursal N
LOCAL_VIDEOCLUB
DIRECTOR
1
HA_ RODADO
N
PELICULA
ACTOR
personaje M
ACTUA_EN
N
film
PELICULA
53 /62
Atributos de tipos de relación
1
horas
TRABAJA_EN
1
EMPLEADO
1
SUPERVISA
fechainicio
N
LOCAL_VIDEOCLUB
54 /62
Atributos de tipos de relación
• Conceptualmente pertenecen a la relación
– Un atributo de una M:N es propio de la relación
– Un atributo de una 1:1 o 1:N “se puede llevar” a uno de
los tipos de entidad participantes
1
horas
TRABAJA_EN
EMPLEADO
1
SUPERVISA
horas
fechainicio
N
1
LOCAL_VIDEOCLUB
fechainicio
horas
55 /62
TIPO DE ENTIDAD DEBIL
56 /62
Tipo de entidad débil
nss
Tipo de
Entidad
Regular
Tipo de
Relación
Identificador
PACIENTE
1
ACUDE
N
PELICULA
1
TIENE
N
diahora
VISITA_MEDICA
titulo
COPIA
numcopia
N
Clave parcial o
Discriminante
ASISTIDA
POR
1
MEDICO
especialidad
ncolegiado
nombre
Dependencia
en existencia
57 /62
Tipo de entidad débil
• Dependencia en existencia (entre entidades)
– Si desaparece una instancia del tipo de entidad regular
deben desaparecer las instancias de la entidad débil
que dependen de ella
– Etiqueta “E” en el tipo de relación débil
• Dependencia en identificación
– Además de la dependencia en existencia...
– Una instancia del tipo de entidad débil no se puede
identificar por sí misma
– Su clave es (clave_entidad_regular, clave_parcial)
– Etiqueta “ID” en el tipo de relación débil
58 /62
Tipo de entidad débil
dni
EMPLEADO
1:N
E
POSEE
PELICULA
Tipo de
Relación
Débil
1:N
ID
TIENE
numlicencia
tipo
titulo
numcopia
PERMISO
CONDUCCION
PERMISO_CONDUCCION es
débil, pues depende en
existencia de EMPLEADO,
pero no depende en
identificación
COPIA
idcopia
COPIA es débil, pues depende
en existencia de PELICULA, y
también depende en
identificación
59 /62
4. DOMINIOS
60 /62
Dominio (values set)
• Conjunto de valores
• Cada atributo simple está asociado a un dominio, que
especifica sus valores válidos
Atributo
Dominio
Descripción Dominio
nombre
NOMBRES
cadenas de hasta 30 caracteres alfabéticos
telefono
TELEFONOS
cadenas de hasta 9 caracteres numéricos
altura
MEDIDAS
números reales entre 0 y 2’5 (metros)
...
...
...
No suele representarse,
aunque una forma de
hacerlo sería:
nombre
EMPLEADO telefono
altura
[MPM1999]
NOMBRES
TELEFONOS
MEDIDAS
61 /62
Valores validos
• Los valores validos para un atributo deben tener asignado
información acerca de:
– Tipo de Datos. Los tipos básicos son entero, decima, caractery
fecha-hora.
– Longitud. Es el número de dígitos o caracteres en el valor de un
atributo.
– Formato de Fecha. Peste puede ser dd/mm/yyyy o yyyy/mm/dd.
– Rango. Especifica el intervalo entre los cuales se puede tomar valor
un atributo.
– Restricción. Son restricciones particulares sobre un atributo.
– Soporte de NULL. El atributo puede aceptar valores NULL.
– Defaul. El atributo toma un valor por defecto cuando se instancia.
62 /62
Ejercicio 1
• Se tiene una empresa desarrollando varios proyectos, a los
que son asignados varios empleados, pero cada empleado
solo esta vinculado a un proyecto, en un momento dado.
• Cada proyecto consume diferentes recursos en cantidades
determinadas: los empleados están a cargo de un
supervisor, que es un empleado también.
• Los empleados pueden tener personas beneficiarias (hijos,
esposas, padres, etc.).
63 /62
Ejercicio 1
64 /62
Ejercicio 2
• Se desea diseñar una base de datos sobre la información
de las reservas de una empresa dedicada al arriendo de
automóviles.
• Los supuestos son:
– Un determinado cliente puede tener en un momento dado varias
reservas.
– Una reserva la realiza un único cliente, pero puede involucrar a
varios autos.
– Se debe conocer la fecha de comienzo y término de la reserva.
– Todo auto tiene asignado un determinado garaje, que no puede
cambiar.
– Cada reserva se realiza en una determinada agencia.
– Pueden existir clientes que no hayan hecho ninguna reserva.
65 /62