Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
de Datos
DCIC – UNS
2020
#04 Vista Lógica – Modelo
Relacional
Teoría Relacional – Pasaje a tablas
Mercedes Vitturini
mvitturi@cs.uns.edu.ar
Temas de Hoy Llaves
• Superllave, llave candidata, llave
DER tablas primaria
Entidades
• Llave conjunto entidad
• Conjunto entidad fuertes • Llave conjunto relación
• Conjunto entidad débil El Modelo Relacional
• Atributos especiales • Definiciones
Relaciones • Esquema de Bases de Datos
• Conjunto relación sin atributos: • Instancia de Base de Datos
relaciones m:1 y 1:1 sin atributos
• Relaciones con atributos • Esquema de Relación
• Relación IS-A • Relación
• Agregación • Llaves
• Llaves Foráneas
4
Servicios del SMBD - Repaso
1. Soporte de al menos un MODELO DE DATOS.
2. Disponibilidad de Lenguajes de alto nivel para administrar o manipular la
base de datos
• Lenguaje de Manipulación de Datos (LMD/DML).
• Lenguaje de Definición de Datos (LDD/DDL).
3. Eficiencia al consultar los datos almacenados.
4. Provea manejo de transacciones (commit y rollback).
• Mantener integridad y consistencia de datos.
• Provea control de concurrencia y capacidades para compartir datos.
• Permita recuperaciones de fallos.
5. Brinde seguridad y facilidades en la administración el acceso a los datos.
5
Servicios del SMBD: Soporte de un Modelo de Datos
Nivles de Modelo
abstracción Nivel lógico
Relacional
Archivos e
Nivel Físico
Indices
6
Representación Tabular
Vamos a estudiar:
• El proceso de conversión.
• Cómo representar las restricciones en las “tablas”.
7
Pasaje a Tablas
Del DER a Tablas
Entidad Fuerte
9
Conjunto Entidad Fuerte - Ejemplo
Cuenta
Nro-Cuenta Saldo
Cuenta 12345 120
12456 1000
20321 500
Nro-Cuenta Saldo
31124 2500
32100 170
1- vista del ME-R
54881 3000
Tabla para la entidad fuerte Cuentas.
10
Conjuntos Entidad Débil
{a1,a2,…,an } {b1,b2,…,bj}
La llave primaria de la tabla para la entidad débil A está formada por la pk(B)
discriminador (A)
pk(A) = {a1,a2,…,ai } {b1,b2,…,bj}
11
Conjunto Entidades Débil
Nro-Cuenta Nro-Transacción Monto
Saldo Fecha
Transacción
Nro-Cuenta Nro-Transacción Fecha Monto
1126 5 12/02/2001 100 TRANSACCIONES
1126 6 20/03/2001 -50 (nro-cuenta, nro-
3270 5 14/05/2001 90 transacción, fecha,
3270 6 02/06/2001 -600
1691 6 05/06/2001 1000
monto)
5501 7 15/07/2001 3000
7632 8 23/08/2001 -200 La llave de entidad débil:
Tabla que representa a la entidad débil Transacción Llave entidad fuerte + discriminador
12
Atributos Especiales Segundo-Nombre
Los atributos derivados no se incluyen, se Primer-Nombre
calcula. Ejemplo: edad
Apellido
Los atributos compuestos. Se incluye un
ApNom
atributo por cada elemento. Ejemplo:
apNom
Los atributos multivalorados son como Legajo_docente
una entidad débil. Ejemplo Teléfono- Docentes
Docente
edad
Sea R un conjunto relación definido entre los conjuntos entidad E1, E2,…,
En (n > 1). Sean pk(E1),…,pk(En) las llaves primerias de E1, E2,…, En
respectivamente.
Si R no tiene atributos propios se crea una tabla con una columna por
cada elemento del conjunto
pk(E1) … pk(En)
Si R tiene como atributos propios, {a1,…,am} entonces se crea una tabla
con una columna por cada elemento del conjunto
pk(E1) … pk(En) {a1,…,am}
14
Conjunto Relación sin atributos - Ejemplo
ISBN
LibAut
Libros Nombre-Libro
ISBN DNI
84-481-0079-4 22222222
96-665-1238-4 32000123 Editorial
12-236-9812-1 45678678
44-128-9365-8 20666999 Nro-Páginas
51-326-4588-7 18987345 LibAut
87-123-9699-0 5698772
71-439-2541-1 25006897
DNI
Tabla que representa a la relación
LibAut
Nombre-Autor
Autores
LibAut (ISBN, DNI) Dirección-Autor
15
CtaCli
Con Atributos... Nro-Seguridad-Social Nro-Cuenta Fecha
8448100794 1111 17/01/2003
9666512384 2222 24/01/2001
1223698121 3146 04/02/2002
CtaCli (nro-seguridad-social, 4412893658 2222 12/02/2001
nro-cuenta, fecha) 5132645887 5987 03/01/2003
8712396990 4329 18/03/2002
7143925411 7452 05/08/2003
Tabla que representa a la relación CtaCli
Nro-Seguridad
Social
Fecha
Nombre-Cliente Nro-Cuenta
16
Conjuntos Relación “1:m”
Id Nombre
Caso 1: relaciones m:1 sin
atributos
Departamentos La relación podría eliminarse:
a) Agregando el atributo ID-
Departamento en el conjunto de
Dirige entidades Gerente (del lado del
muchos).
17
Conjuntos Relación “1:1”
Id Nombre
Esta relación podría eliminarse de 2
formas:
a) Agregando el atributo ID-
Departamentos Departamento en el conjunto de
entidades Gerente.
b) Agregando el atributo Legajo en el
conjunto de entidades
Dirige Departamento.
Gerentes + Dirige:
a) DEPARTAMENTOS (Id-dpto, nombre,
Gerentes legajo)
ó
Legajo Apellido Nombre b) GERENTES (legajo, apellido, nombre, id-
dpto)
18
Relaciones IS-A
Existen distintas alternativas para traducir a tablas una relación “es-un” (is_a)
Opción 1 Opción 2
1. Se crea una tabla para el conjunto de 1. NO se crea una tabla para el conjunto
entidades de nivel más alto. de entidades de nivel más alto.
2. Para cada conjunto de entidades de 2. Para cada conjunto de entidades de
nivel más bajo se crea una tabla con
los atributos de ese conjunto de nivel más bajo se crea una tabla que
entidades más una columna por cada con los atributos de ese conjunto de
atributo que es clave primaria del entidades más una columna por cada
conjunto de entidades de nivel más atributo del conjunto de entidades de
alto. nivel más alto.
• Esta opción es válida para • Esta conversión es una posible
generalizaciones solapadas o disjuntas y representación si se trata de
parciales o totales. generalizaciones totales y disjuntas
19
Especialización y Generalización
Nro-Cuenta
Cuenta Saldo
Es-un
Cuenta-Ahorro Cuenta-Cheque
Tasa-Interés Saldo-Deudor
20
Opciones para Relaciones de Herencia
Opción 1
Cuenta Cuenta-Ahorro Cuenta-Cheque
Nro-Cuenta Saldo Nro-Cuenta Tasa-Interés Nro-Cuenta Saldo-Deudor
Opción 2
Cuenta-Ahorro Cuenta-Cheque
Nro-Cuenta Saldo Tasa-Interés Nro-Cuenta Saldo Saldo-Deudor
21
Ejercicio
22
Agregación
DNI Presupuesto
Usa
Nombre id-LP
Lenguaje de Programación
23
Esquema para Agregados
La transformación de una relación de agregación es directa, respetando las msmas
reglas vistas.
Consideremos el ejemplo, se necesitan tablas para las entidades fuertes:
Empleado, Proyecto y Maquinaria.
Y para las relaciones:
Trabaja.
Usa.
Incluye una columna para cada atributo en la clave primaria del conjunto
de entidades maquinaria y para cada atributo de la clave primaria de
trabaja.
24
Ejemplo
25
Llaves
Llaves de entidades y relaciones
Restricciones
27
Superllave de Conjunto Entidad
• Ejemplos:
• Nro-SeguridadSocial es superllave del conjunto de entidades Clientes.
• Nro-SeguridadSocial + Nombre-Cliente también es superllave del
conjunto de entidades Clientes.
• …
La definición de superllave no exige un conjunto mínimo de atributos
28
Llave candidata – Llave Primaria
Definición: se define como llave candidata a una superllave que no
contiene ningún subconjunto propio que también sea superllave. Esto
es, es una superllave mínima.
Definición: se define como llave primaria a una llave candidata elegida
por el diseñador como llave del esquema.
Observaciones:
• La llave está definida por uno o más atributos del conjunto entidad.
• La designación de una llave representa una restricción del mundo real que se
modela en el Conjunto Entidad.
29
Keys (Llaves o Claves)
SUPERLLAVE: es un conjunto de atributos que permite distinguir
unívocamente a un elemento de un conjunto de entidades.
• Nro-Seguridad-Social es superllave del conjunto de entidades
Clientes.
• Nro-Seguridad-Social y Nombre-Cliente es superllave del
conjunto de entidades Clientes.
LLAVE CANDIDATA: es una superllave que no contiene ningún
subconjunto propio que sea superllave. Es decir, es una
superllave minimal.
LLAVE PRIMARIA: es la llave candidata elegida por el diseñador de
la base de datos.
30
Observaciones
31
En el ejemplo
Cuentas(Nro-Cuenta, Saldo)
32
Llaves de entidades débiles
• Un conjunto de entidades débiles no tiene
atributos suficientes que lo distingan.
• Una entidad débil requiere de la llave primaria de
su entidad fuerte (de la que depende) para
identificarse. En el ejemplo:
Ejemplares (ISBN, Nro-Ejemplar, Fecha-
Adquisición, Precio-Compra)
33
Llave del Conjunto Relación
Desde un punto de vista conceptual cada relación del conjunto relación
es distinguibles y las diferencias se expresan en términos de sus
atributos.
Superllave de un conjunto relación distingue unívocamente una
relación del conjunto y está formada por un subconjunto de los
atributos de R.
Llave candidatas de un conjunto relación es una superllave mínima.
Llave primaria es la que el diseñador elige como principal.
34
Formalmente un Conjunto Relación se define
Sean E1, E2, …, En (con n > 1) conjuntos entidad, el conjunto relación R es un
subconjunto de:
R {(e1,e2,…,en): e1 E1, e2 E2,…, en En}
Sea pk(E1),…,pk(En) las llaves primarias de E1,…,En.
Si R no tiene atributos propios entonces el conjunto de atributos que
describe las relaciones de R es:
R = pk(E1) … pk(En).
Si R tiene como atributos descriptivos a {a1,…,am} entonces su conjunto de
atributos que describe las relaciones de R es:
R = pk(E1) … pk(En) {a1,…,am}
35
Observaciones
• Si se trata de un conjunto de relaciones sin atributos propios, la combinación
de las claves primarias de los conjuntos de entidades participantes son una
superllave para el conjunto relación.
• La llave primaria de un conjunto de relaciones dependerá de la cardinalidad
de dicho conjunto.
• Al momento de identificar las claves de un conjunto de relaciones, las
restricciones de multiplicidad ayudan a tomar la decisión.
• Si el conjunto de relaciones tiene atributos, para seleccionar la clave se debe
tener en cuenta la semántica del problema que se está modelando.
36
Ejemplo #1
Editorial
37
Conjunto Relación - Llaves
LIBAUT
nro-autor ISBN
aa001 LI1
aa002 LI1
aa002 LI4
LibAut: llave
aa003 LI4
ISBN + Nro_Autor
aa001 LI8
LIBROS AUTORES
isbn nombre-libro editorial nro-paginas nro-autor nombre-autor dirección-autor
LI1 FBD e1 587 aa001 AIS d1
LI4 PBD e1 628 aa002 KFK d2
LI8 IBDR e2 596 aa003 CDG d3
38
Ejemplo
Socio (Nro-Socio, Nombre-
Nombre-Socio
Socio, Fecha-Ingreso)
Socio llave Nro-Socio
Nro-Socio
Cod-Postal
Vive (Nro-Socio, Cód-Postal)
Nombre-Ciudad Llave ?
Ciudad
Nro-Habitantes
39
Conjunto Relación - Llaves
Socios: llave Nro-Socio
Ciudades:
llave cod-postal
Viven: ? – nro-socio
CIUDADES
cod-postal nombre-ciudad nro-habitantes
8000 BB n1
SOCIOS
8102 PA n2
nro-socio nombre-socio fecha-ingreso
s001 DCM 10/05/2008 VIVEN
s002 MMV 10/05/2008 nro-socio cod-postal
s003 TFV 13/07/2009 s001 8000
s004 DLG 19/11/2009 s002 8000
s003 8102
s001 8102 40
Ejemplo
Nombre-Obra
Obra
Nro-Obra
Obra: llave Nro-Obra
Fecha
Salón:
Expone llave ID_Salón
Expone?
ID-Salón
Nombre-Salón
Salón
Dirección-Salón
41
Relaciones no binarias
Nombre-Prof Nombre-Mat
Legajo-Prof Nro-Materia
Docente Materia
Cursa
Cursa: Legajo-Prof +
Nro-Materia + Nro-
Registro
Llave: ?
Alumno
Nombre-Alumno Nro-Registro
42
Relaciones no binarias
Nombre-Prof Nombre-Mat
Legajo-Prof Nro-Materia
Profesor Materia
Período-Lectivo
Cursa
Cursa: Legajo-Prof +
Nro-Materia + Nro-
Registro + Período-
Lectivo
Llave: ?
Alumno
Nombre-Alumno Nro-Registro
43
Relaciones no binarias MATERIAS
Nro-materia nombre-mat
44
En resumen
45
Modelo Relacional
Conceptos teóricos
Modelo Relacional
47
Sobre el modelo
→Una relación se compone por un conjunto de tuplas.
Relación r
Esquema A1 A2 … An
Relación
Tupla o
fila o
relationship
49
Modelo Relacional - Definiciones
50
Modelo Relacional – Definiciones
51
Relación attributes
(or columns)
tuples
(or rows) Esquema Instructor
Escrito-por Instancias
libro (Esquema-libro).
ID
autor (Esquema-autor)
53
Modelo E-R a Modelo Relacional
Notación:
• (A1,…,Ai ,…,Am) para A
• (B1,…,Bj ,…,Bn) para B
55
Modelo E-R a Modelo Relacional
Sea R una relación “binaria” del modelo E-R que la vincula A y B con
cardinalidad muchos a muchos sin atributos:
56
Modelo E-R a Modelo Relacional
Sea R una relación “binaria” del modelo E-R que la vincula A y B con
cardinalidad muchos a uno:
Solución Costosa (general):
A (A1,…,Ai,…,,Am).
B (B1,…,Bj,…,Bn).
R (A1,…,Ai,B1,…,Bj).
Solución Económica:
A (A1,…,Ai,…,,Am,B1,…, Bj).
B (B1,…,Bj,…,Bn).
57
Modelo E-R a Modelo Relacional
Sea R una relación “binaria” del modelo E-R que la vincula A y B, con
cardinalidad uno a uno:
• Como caso particular de relación muchos a uno.
A (A1,…,Ai,…,,Am,B1,…,Bj).
B (B1,…,Bj,…,Bn).
ó
A (A1,…,Ai,…,Am).
B (B1,…,Bj,…,,Bn,A1,…,Ai).
58
Generalizando
Sea R una relación n-aria del modelo E/R que vincula E1,E2, … y En:
E1= (A1,…,Ai1,…,Am1)
E2= (B1,…,Bi2,…,Bm2)
...
En= (N1,…,Njn,…,Nmn)
R= (A1,…,Ai1,B1,…,Bi2,…,N1,…,Njn).
59
Modelo E-R a Modelo Relacional
Sea R una relación n-aria del modelo E/R, con atributos propios, se agregan
los atributos a la relación:
E1= (A1,…,Ai1,…,Am1)
E2= (B1,…,Bi2,…,Bm2)
...
En= (N1,…,Njn,…,Nmn)
R= (A1,…,Ai1,B1,…,Bi2,…,N1,…,Njn,a1,…,an).
60
Llaves y Llaves Foráneas
• Un conjunto de atributos K R. K es una superllave de R si los valores K son
suficientes para identificar a una única tupla de cualquier relación r(R) posible
• Ejemplo {ID} y {ID,name} son supellaves de instructor
• Una superllave K es una llave candidata si K es mínima
• Ejemplo: {ID} es una llave candidata de instructor
• Una de las llaves cantidatas es llave primaria si es la que elije el diseñador.
Llave Foránea: es un tipo de restricción que exige que el valor que está en una relación
r debe estar en otra relación s
• r se denomina Referencing relation
• s se denomina Referenced relation
• Por ejemplo: el valor del atributo dept_name de Instructor tiene una referencia
foránea al atributo dept_name de la relación Departamento
61
Llaves Foráneas
Llave Foránea: es un tipo de restricción que exige que el valor que está en una
relación r debe estar en otra relación s
• r(R), con R(A1, A2, ... Am) Referencing relation
• s(S), con S(B1, B2, ... Bn) Referenced relation
• Se dice que los atributos de r Ai, ... Aj referencian a los atributos de s Bi, ... Bj y se
especifica como
FK r(Ai, ... Aj ) referencia a s (Bi, ... Bj)
• En general ocurre que (Bi, ... Bj) suelen ser la llave primaria de s, aunque no
necesariamente.
• Ejemplo:
• Sea escrito_por(ISBN, idAutor)
• FK escrito_por(ISBN) referencia a libro(ISBN)
• FK escrito_por(idAutor) referencia a autor(idAutor)
62
id nombre
apellido peso
fecha_nac
corre posición
es_dueño
Bibliografía:
• “Conceptos de Sistemas de Bases de Datos” – Abraham Silberschatz 6ta. Ed –
Capítulo 2 (Ed.2010)
• “Principles of Database and Knowledge-Base Systems” – J. Ullman. Capítulo 2.
65