Fundamentos Del Módelo Relacional

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 136

FUNDAMENTOS DEL MODELO

RELACIONAL
Andrés Henao Rosero
Universidad Tecnológica de Pereira

Tomado de:
Gloria Lucía Giraldo Gómez
Universidad Nacional de Colombia

Bases de Datos I Andres Henao Rosero - UTP 1


Generalidades y Definiciones
 Desarrollado en 1976 por Codd,
Hammer y McLeod
 Es una forma alternativa al modelo
E/A de realizar modelamiento
conceptual
 El modelo semántico trata de
capturar más significado que el
modelo E/A
Bases de Datos I Andres Henao Rosero - UTP 2
Generalidades y Definiciones
 Sus elementos principales son los Objetos
Semánticos (OS), es decir, objetos con
“significado” , “cosas” identificables y de
interés en el ambiente de trabajo de los
usuarios.
 Los OS’s son diferentes a los objetos de la
programación orientada a objetos aunque
tienen similitudes al igual que con las
entidades del modelo E/A.

Bases de Datos I Andres Henao Rosero - UTP 3


Objetos Semánticos
 Definición: Conjunto de atributos que
describen suficientemente una
identidad bien definida
 Las identidades pueden ser físicas (un
cliente) o abstractas (un pedido)
 Las identidades son los sustantivos
sobre los cuales se produce
información

Bases de Datos I Andres Henao Rosero - UTP 4


Atributos de los Objetos
Semánticos

Los atributos definen las características de los OS’s.

Tipos de atributos:

 Simples:
Simples Tienen un valor simple. Ej: cédula
 Grupales:
Grupales Compuestos por otros atributos. Ej:
nombre (compuesto por primer nombre y
primer apellido)
 De objetos semánticos:
nticos establecen la relación
entre un OS y otro OS (“enlaces del objeto”)

Bases de Datos I Andres Henao Rosero - UTP 5


Diagrama de objetos semánticos
(Diagrama objetual)
Identificador DEPARTAMENTO
único
ID NombreDpto
Dirección
Atributos Edificio Atributo
Simples NroOficina grupal
Teléfono
Fax
PROFESOR Atributos de
Objetos
ESTUDIANTE
Semánticos

Bases de Datos I Andres Henao Rosero - UTP 6


Cardinalidad de Atributos
• Indica el número mínimo y máximo de
instancias que deben existir en cada atributo
para que el OS sea válido
• Se representa mediante 2 números
subíndices (min y max) separados por punto
en cada atributo: NombreAtributomin.max
donde, max >= 0 y min <= max
Ej: teléfono1,3 significa que el OS debe
tener mínimo un teléfono y máximo 3

Bases de Datos I Andres Henao Rosero - UTP 7


Ejemplo
DEPARTAMENTO
Cada departamento debe ID NombreDpto 1,1
Dirección
tener mínimo un número Edificio 1.1
telefónico (puede tener NroOficina 1.1
Teléfono 1,N 1,N
muchos), puede tener o Fax 0,1
no un número de fax PROFESOR
1,N
(sólo uno), puede tener
muchos estudiantes ESTUDIANTE 1,N

(mínimo 1) etc.

Bases de Datos I Andres Henao Rosero - UTP 8


Instancias de Objetos
Ingeniería de Sistemas NombreDpto

Edificio V.Uribe
of. 313 Dirección
La ocurrencia 425 5350
de un objeto 425 5358 Teléfono
425 5260
semántico
430 2145
particular Fax
Arango Fernando Profesores
Jiménez Giovanni

Correa Carlos Estudiantes


Gómez Horacio

Bases de Datos I Andres Henao Rosero - UTP 9


Otras Definiciones
 Identificador único de un OS: Uno o
más atributos que se emplean para
identificar unívocamente las
instancias de un OS
 Se simboliza con la palabra ID
subrayada
 Su cardinalidad es 1.1
 Si tiene más de un atributo se
denomina identificador grupal
Bases de Datos I Andres Henao Rosero - UTP 10
Otras Definiciones
 Dominio del atributo: Descripción
de los posibles valores de un atributo
(puede ser una lista enumerada).
 Sobre los atributos de Objetos
Semánticos: Si un OS w “contiene” a
un OS z entonces el OS z debe
contener al OS w. Esto se denomina
OS’s pareados.
pareados

Bases de Datos I Andres Henao Rosero - UTP 11


Ejemplo
DORMITORIO ESTUDIANTE
ID Nombre 1.1 ID Carnet 1.1
Tel 0.1 Nombre 1.1

ESTUDIANTE 1.N DORMITORIO


0.1

Bases de Datos I Andres Henao Rosero - UTP 12


¿Cuál es la diferencia entre?:

DORMITORIO DORMITORIO
ID Nombre 1.1 ID Nombre 1.1
Tel 0.1 Tel 0.1
Pago
ESTUDIANTE 0.N
ESTUDIANTE
1.1
Cuota Cuota 0.N
1.1 0.N

Nombre del atributo grupal

Bases de Datos I Andres Henao Rosero - UTP 13


Supertipos y Subtipos en el modelo
Semántico

EMPLEADO ADMINISTRADOR
ID Código 1.1 TipodeAdministrador 1.1
Nombre 1.1
EMPLEADO
Salario 1.1 P

ADMINISTRADOR 0.ST PROGRAMADOR


PROGRAMADOR LenguajePreferido 0.N
0.ST
EMPLEADO P

Heredado por sus


subtipos No exclusivo
Bases de Datos I Andres Henao Rosero - UTP 14
Exclusivo
EMPLEADO ADMINISTRADOR
ID Código1.1 TipodeAdministrador 1.1
Nombre1.1
Salario1.1 EMPLEADO P
ADMINISTRADOR 0.ST
PROGRAMADOR
PROGRAMADOR 0.ST LenguajePreferido
0.1.1 0.N
EMPLEADO P

Indica si se Máximo # de subtipos


Mínimo # de subtipos
requiere el simultáneos permitido
simultáneos permitido
atributo grupal
Bases de Datos I Andres Henao Rosero - UTP 15
Comparación E/A vs. Modelo de
Objetos Semánticos
 Similitudes:
 Ambos son herramientas para la comprensión y
documentación de la estructura de los datos de
los usuarios
 Ambos procuran modelar la estructura de las
cosas en el mundo del usuario y las relaciones
entre ellas
 Ambos tratan de identificar los elementos de
interés para la organización y la forma de
describirlos (entidades vs. OS’s, atributos)

Bases de Datos I Andres Henao Rosero - UTP 16


Comparación E/A vs. Modelo de
Objetos Semánticos
 Diferencias:
 Los OS’s son “semánticamente completos”, es
decir, si se pide mostrar un OS PEDIDO éste
contiene todo lo que incluye un pedido en la
“vida real”. En el modelo E/A el PEDIDO está
disperso, fragmentado a través del modelo
 Los OS’s incluyen atributos multivaluados a
diferencia del modelo E/A donde todos los
atributos son simples.
 El modelo semántico no posee arcos explícitos:
se tratan de simular con supertipos y subtipos
mediante construcciones algo artificiosas que
pueden hacer perder claridad al modelo

Bases de Datos I Andres Henao Rosero - UTP 17


MODELOS LÓGICOS

El Modelo Relacional

Bases de Datos I Andres Henao Rosero - UTP 18


Antecedentes
 Edgar Codd, 1970:
Artículo: “A Relational Model of Data for
Large Shared Data Banks”
 Basado en teoría de conjuntos
 Gran avance respecto a los modelos de red y
jerárquico (que son difíciles de administrar,
de ejecución compleja,, con carencia de
independencia estructural, etc.)
 Evita el uso de punteros
 Operaciones sobre conjuntos de datos

Bases de Datos I Andres Henao Rosero - UTP 19


Representación
 Datos en tablas bidimensionales.
 Se basa en el concepto de relación
 Informalmente en el modelo relacional:
relación = tabla
 Se apoya en el álgebra y el cálculo de
relaciones
 Generó los RDBMS (SGBD Relacionales)

Bases de Datos I Andres Henao Rosero - UTP 20


Ventajas
 Separación clara del nivel lógico y el
físico
 Sencillo y fácil de modificar
 Operadores con gran poder de
manipulación de datos
 Fundamentación teórica sólida
 Compatibilidad y estandarización
 Confiabilidad y estabilidad
Bases de Datos I Andres Henao Rosero - UTP 21
Ventajas
 Garantía de Independencia de los
datos
 Es empleado por numerosos sistemas
comerciales y conectividad
garantizada con los lenguajes de
programación estándar (Java, C++,
VBasic etc.)
 Se consigue fácilmente apoyo técnico

Bases de Datos I Andres Henao Rosero - UTP 22


Desventajas
 No incluye comportamiento de los datos a diferencia
del objetual y objeto relacional por ejemplo
 No se puede representar conocimiento en forma de
reglas ¿Cómo cuáles?
 No se puede manejar herencia*
 Descompone los elementos de interés en varias
tablas**
 Presenta dificultades para el manejo de datos no
atómicos (confrontar con los atributos grupales y
multivaluados del modelo semántico)

* Aunque la herencia puede ser simulada de forma incómoda


** Esto implica la recomposición del elemento

Bases de Datos I Andres Henao Rosero - UTP 23


Elementos del Modelo
Relacional
ATRIBUTOS

Nombre de la
RELACION PELICULA
TITULO AÑO DURACION
La guerra de las galaxias 1997 120
El señor de los anillos 2001 180
TUPLAS
Mar adentro 2004 90
El viaje de Chihiro 2001 120

El DOMINIO del atributo TITULO = TEXTO Dominio de AÑO y


DURACION = ENTEROS
Bases de Datos I Andres Henao Rosero - UTP 24
Elementos del Modelo
Relacional: RELACION = TABLA
 Concepto abstracto de estructura bidimensional: filas y
columnas
 Se pueden definir por comprensión y por extensión:
 Ej. por comprensión: R={x|x (identificación, nombre,
teléfono) es estudiante de la Universidad Nacional de
Colombia}
 Por extensión implica que hay que listar uno por uno los
elementos de la relación
 Una relación es un conjunto de filas, entonces por
definición éstas no tienen orden
 En una relación no hay filas (tuplas) repetidas
 Las columnas de una relación tienen un nombre único
dentro de la tabla y no tienen orden
 Cada celda es atómica o UNIVALUADA
 La relación es el único elemento utilizado para representar
tanto entidades como asociaciones entre ellas.
Bases de Datos I Andres Henao Rosero - UTP 25
Notación para RELACIÓN

El esquema de una relación R se denota


R(A1,A2, …An) donde R es el nombre de la
relación y A1,A2, …An son los atributos de R

Ejemplo:

EMPLEADO(cédula,nombre,dirección,salario)

Bases de Datos I Andres Henao Rosero - UTP 26


Elementos del modelo relacional:
TUPLA

 Un conjunto de tuplas es una relación


 Cada instancia o fila o registro de una
relación es una tupla
 Una tupla puede representar tanto
instancias de entidades como instancias de
“asociaciones” (modelo conceptual)
 Número de tuplas: cardinalidad o extensión
de la relación

Bases de Datos I Andres Henao Rosero - UTP 27


Notación para tuplas

t = <La guerra de las galaxias, 1997, 120>∈ Película

Para un subconjunto de tuplas:

t[titulo,año] = <La guerra de las galaxias,1997>

Bases de Datos I Andres Henao Rosero - UTP 28


Elementos del modelo relacional:
ATRIBUTO
 Cada campo o columna de una
relación es un atributo
 El número de atributos se denomina
grado o aridad de la relación
 El conjunto de atributos forman la
cabecera de la relación
 Cada atributo está valuado o basado
sobre un único dominio  Ver
siguiente
Bases de Datos I Andres Henao Rosero - UTP 29
Elementos del modelo relacional:
DOMINIO

 Es el conjunto de los posibles valores que


puede tomar un atributo
 No es más que un tipo de datos. Ej:
Booleano, Entero, cadena de caracteres,
etc.
 Puede servir para valuar a varios atributos
 Se puede restringir para velar por la
integridad de la base de datos

Bases de Datos I Andres Henao Rosero - UTP 30


Notación para DOMINIO
• Dominio: el dominio del atributo A se denota dom(A)
• Restricción del dominio: t[A] = <x> x ∈ dom(A)

Ej: en algunos casos NULL ∈ dom(A), lo cual significa que


el atributo A acepta valores nulos

• Una definición formal de relación:


R(A1, A2, …An) ⊆ ( dom(A1) x dom(A2) x … dom(An) )

R es el subconjunto del producto cartesiano de los


dominios de A1, A2, …, An

R(A1, A2, …An) ⊆ ( dom(A1) x dom(A2) x … dom(An) )

Relación es Subconjunto de todas las posibles combinaciones


Bases de Datos I Andres Henao Rosero - UTP 31
CLAVES
 Clave candidata:
 Atributo o atributos que identifican de
manera única una tupla dada
 ¿Por qué toda relación tiene al menos
una clave candidata?
 Deben cumplir unicidad y minimalidad
(irreducibilidad)

Bases de Datos I Andres Henao Rosero - UTP 32


EJEMPLO

Claves candidatas … ¿ candidatas a qué? … a ser


claves primarias
Automóvil

Un automóvil puede identificarse por el número de


matrícula o por el número del motor

Bases de Datos I Andres Henao Rosero - UTP 33


CLAVES : Clave primaria
 Elegida a partir de las claves candidatas de la
relación.
Las demás quedan como claves alternativas o
secundarias (si las hay)
 Es el equivalente al identificador único del Modelo
Entidad/Asociación (#) o al ID único del modelo
semántico

Regla de integridad de las


claves primarias
“Ningún componente de la clave primaria
acepta nulos”.
¿Qué es un
nulo?
Bases de Datos I Andres Henao Rosero - UTP 34
CLAVES: Clave Foránea o Ajena o
Externa

 Atributo (puede ser compuesto) de una


relación R1 que es clave primaria en
una relación R2 (R1 y R2 no
necesariamente diferentes)
 Especifica de forma explícita la forma
en que dos tablas se relacionan
 Mecanismo para asegurar la integridad

Bases de Datos I Andres Henao Rosero - UTP 35


Regla de integridad referencial

“Ningún componente de una clave foránea


puede contener valores que no están
presentes en la clave primaria (alternativa)
a la que referencia”
 ¿Puede una clave foránea admitir nulos?
 ¿Cómo es el dominio de una clave foránea
frente al dominio de la clave primaria a la
que referencia?

Bases de Datos I Andres Henao Rosero - UTP 36


Guardar la integridad referencial
 ¿Qué pasa si la referencia(“Padre”) de una
clave foránea intenta ser borrada?
 Posibles cursos de acción:
- Cascada
- Restringido
- Nulificación
- Programada
 La misma pregunta en el caso de
actualización del padre…

Bases de Datos I Andres Henao Rosero - UTP 37


Otros tipos de Claves
 Superclave
 Natural
 Inteligente o Semántica
 Artificial o Subrogada
 Solapadas
¡¡¡ INVESTIGA !!!

Bases de Datos I Andres Henao Rosero - UTP 38


FIN

Bases de Datos I Andres Henao Rosero - UTP 39


Introducción

 El concepto de dependencia funcional (DF)


es fundamental para la normalización
¿Qué es la normalización?
 La normalización de relaciones dice
cómo diseñar “buenas” relaciones
Bajo los criterios de minimizar la
redundancia (hasta cierto punto) y
evitar ciertas anomalías

Bases de Datos I Andres Henao Rosero - UTP 40


Dependencia Funcional (DF)
 Indica una dependencia entre valores
de atributos de una misma relación
 Es definida sobre una relación R
 Se denota: X  Y
 Se lee: X determina funcionalmente a Y
ó
Y depende funcionalmente de X
donde X y Y son conjuntos de atributos

Bases de Datos I Andres Henao Rosero - UTP 41


DF: Semántica intuitiva
 La dependencia
funcional X  Y R
asociada a una x y
relación R indica
que todas las V1 V10
tuplas de R que V2 V5
tengan un mismo V3 V6
valor en X deben
V1 V10
tener un mismo
valor en Y

Bases de Datos I Andres Henao Rosero - UTP 42


DF: Semántica formal

 Si XY es una DF sobre una relación R,


entonces toda instancia válida r del
esquema de R satisface XY (r ╞ XY)
∀t1,t2 ∈ r tq t1[X]=t2[X] entonces
t1[Y]=t2[Y]

Bases de Datos I Andres Henao Rosero - UTP 43


Ejemplo EMPLEADO
nombre apellido función facultad
Carlos Zapata profesor Escuela de sistemas
Carlos Morales profesor Matemáticas
Ligia Urrego investigador Ingeniería Forestal
Carlos Zapata investigador Escuela de sistemas

¿Cuáles de las siguientes afirmaciones son ciertas?

nombre  función
nombre  apellido

nombre  facultad

Bases de Datos I Andres Henao Rosero - UTP 44


Ejemplo EMPLEADO
nombre apellido función facultad
Carlos Zapata profesor Escuela de sistemas
Carlos Morales profesor Matemáticas
Ligia Urrego investigador Ingeniería Forestal
Carlos Zapata investigador Escuela de sistemas

¿Cuáles de las siguientes afirmaciones son ciertas?

nombre  función NO ver 1era y 4ta tupla

nombre  apellido NO ver 1era y 2da tupla

nombre  facultad NO ver 1era y 2da tupla

Bases de Datos I Andres Henao Rosero - UTP 45


Ejemplo EMPLEADO
nombre apellido función facultad
Carlos Zapata profesor Escuela de sistemas
Carlos Morales profesor Matemáticas
Ligia Urrego investigador Ingeniería Forestal
Carlos Zapata investigador Escuela de sistemas

¿Cuáles de las siguientes afirmaciones son ciertas?

(nombre,apellido)  función
(nombre,apellido)  facultad

Bases de Datos I Andres Henao Rosero - UTP 46


Ejemplo EMPLEADO
nombre apellido función facultad
Carlos Zapata profesor Escuela de sistemas
Carlos Morales profesor Matemáticas
Ligia Urrego investigador Ingeniería Forestal
Carlos Zapata investigador Escuela de sistemas

¿Cuáles de las siguientes afirmaciones son ciertas?

(nombre,apellido)  función NO ver 1era y 4ta


tupla
(Nombre,apellido)  facultad SI

Bases de Datos I Andres Henao Rosero - UTP 47


Ejercicio
Sea la relación R(A,B,C,D,E) y el conjunto de DF
F= {CE, AC, AB, CDA, CDE, BDE, DE}
¿Cuáles son las dependencias de F satisfechas por
la instancia R siguiente? CE NO (ver t2 y t3)
AC NO (ver t1 y t7)
AB SI
CDA SI
CDE SI
BDE SI
DE NO (ver t2 y t7)
Bases de Datos I Andres Henao Rosero - UTP 48
Observaciones

 Sea c una clave candidata (CC) є R y a


un atributo є R entonces siempre se
cumple que:
c  a; ∀ a ∈ R
 Por lo tanto la CP de R determina
funcionalmente a todos los atributos ∈R
 ¿Puede un atributo que no sea CC
determinar funcionalmente a otro?
Bases de Datos I Andres Henao Rosero - UTP 49
Ejemplo

Sea la relación:
Claves Candidatas (CC)
VEHICULO

Si Nmatricula es CP entonces todas las tuplas de la relación


VEHICULO que tengan un mismo valor en Nmatricula tendran
un mismo valor en Marca

Bases de Datos I Andres Henao Rosero - UTP 50


DF Completa: Definición
Se dice que el atributo y ∈ R es dependiente por completo
del atributo x ∈ R si depende funcionalmente de x y no
depende funcionalmente de ningún z, donde z ⊂ x.

Sean las DF’s:


 nit  año_fundación
 (nit, producto)  año_fundación

 De las 2 DF’s mostradas ¿cuál es completa?


 Para llevar a cabo el proceso de normalización
interesa siempre encontrar las DF completas
Bases de Datos I Andres Henao Rosero - UTP 51
Dependencias funcionales
¿para qué?

 En la etapa de modelado de una BD permiten


restringir las instancias posibles de un
esquema de una relación eliminando
instancias no válidas para una aplicación
dada.
 Algunos mecanismos asociados a las
dependencias funcionales (cierre de DF)
ayudan a determinar las claves posibles para
tener acceso a las tuplas de las relaciones

Bases de Datos I Andres Henao Rosero - UTP 52


Ejercicio
 Encontrar las DF de la relación
PUBLICA(artículo, revista, nroPágina)
donde nroPágina representa la página
inicial en la que comienza un artículo en
una revista.
 Un mismo artículo puede aparecer publicado
en distintas revistas y
 en cada una de ellas, en páginas distintas.
 Una revista publica varios artículos
Bases de Datos I Andres Henao Rosero - UTP 53
Reducción del tamaño del
conjunto de DF
 ¿Por qué hay que reducir? Porque las DF
son restricciones de integridad que el SGBD
debe hacer cumplir. Asi, si se encuentra un
conjunto más pequeño de DF que tenga
implícitas las DF del conjunto más grande,
entonces se garantiza que si hace cumplir
las del pequeño las del grande se cumplirán
automáticamente.
 Hay que eliminar algunas DF. ¿Cuáles? Las
triviales por ejemplo.
Una DF XY es trivial sii Y ⊆ X
Bases de Datos I Andres Henao Rosero - UTP 54
Dependencias funcionales
implícitas
 No todas las DF son explícitas. Ciertas
DF son implicadas por otras.

 ¿Cómo calcular las DF implicadas?


Hay un sistema que permite
calcularlas: El sistema de Armstrong

Bases de Datos I Andres Henao Rosero - UTP 55


Axiomas de Armstrong para DFs
Sean A,B,C,D atributos (pueden ser
compuestos) Є a una relación R
1. Reflexividad:
Si B ⊆ A, entonces A  B
2. Aumento:
Si A  B entonces AC  BC
3. Transitividad:
Si A B y B  C entonces A  C
Bases de Datos I Andres Henao Rosero - UTP 56
Teoremas

1. Autodeterminación:
AA
Demostración

2. Descomposición:
Si A  BC, entonces: A  B
AC
Demostración

Bases de Datos I Andres Henao Rosero - UTP 57


Teoremas
3. Unión:
Si A  B y A  C entonces A  BC
Demostración

4. Composición
Si A  B
entonces AC  BD
CD
Demostración

Bases de Datos I Andres Henao Rosero - UTP 58


Teoremas
5. Teorema de Unificación de Darwen:
Si A  B
CD
Entonces: A ∪ (C – B)  BD
Tarea:
Tarea Demostrarlo.

Bases de Datos I Andres Henao Rosero - UTP 59


Cierre de un conjunto de atributos
 Los axiomas y teoremas permiten detectar otras
DF presentes en R.
 Aunque los axiomas son completos y confiables,
es bastante tedioso calcular todas las DF con
este sistema.
 Entonces es interesante un algoritmo simple que
calcule el “cierre de un conjunto de DF” (las
DF implicadas)
 Este algoritmo existe y descansa sobre la noción
de “cierre de un conjunto de atributos”
Bases de Datos I Andres Henao Rosero - UTP 60
+
Cierre de un conjunto de atributos K bajo S: KS

Cierre (K, S)
El cierre de K se denota K+
S
{
cierre  K; S es el conjunto de las DF
FOREVER
∀ DF Є S: x  y DO
IF x ⊆ cierre THEN
cierre = cierre ∪ y
END IF
END ∀
IF cierre no cambió THEN
RETURN cierre
END IF
END FOREVER
}
Bases de Datos I Andres Henao Rosero - UTP 61
Ejemplo
Sea R (A,B,C,D,E,F)

A  BC Determinar K+ , para K = AB
S
Sea S E  CF
BE
CD  EF

+
 ¿Cuál es el significado de KS ?
 ¿Para qué sirve?
El cierre de un conjunto de atributos K de una relación R y su
conjunto de dependencias funcionales S, es el más grande
conjunto de atributos Y, tal que S ╞ K→→Y

Bases de Datos I Andres Henao Rosero - UTP 62


Conceptos Finales
 S+: Cierre de S.
Conjunto de todas las posibles DF’s que se
pueden derivar a partir de S.
 S-: Recubrimiento (cierre) mínimo (canónico)
de S.
Subconjunto mínimo de DF Є S a partir del
cual se puede generar S.
 ¿Utilidad de estos cierres?
 Algoritmos para generarlos…
Bases de Datos I Andres Henao Rosero - UTP 63
FIN

Bases de Datos I Andres Henao Rosero - UTP 64


Normalización

Gloria Lucía Giraldo Gómez


Universidad Nacional de Colombia
[email protected]
Bloque anexo al M8
Oficina 313

Bases de Datos I Andres Henao Rosero - UTP 65


Normalización: ¿para qué sirve?
Para diseñar “buenas” relaciones
desde el punto de vista de:
 Minimizar la redundancia
 Minimizar el mantenimiento de datos
 Minimizar el impacto de futuros
cambios de datos e ingreso de
información
Anomalías de Anomalías de
actualización Inserción
y borrado
Bases de Datos I Andres Henao Rosero - UTP 66
Normalización: ¿para qué sirve?

CUIDADO:
!  La normalización tiene un impacto
sobre la eficiencia de la interrogación
 La normalización puede traer perdida
de información y de DF

Bases de Datos I Andres Henao Rosero - UTP 67


Normalización: ¿para qué sirve?
La normalización consiste en descomponer
una relación de una BD en sub-relaciones.
Las anomalías son a menudo debidas a una
mala repartición de la información entre
las relaciones
CUIDADO:
 La normalización tiene un impacto sobre
! la eficiencia de la interrogación
 La normalización puede traer perdida de
información y de DF
Bases de Datos I Andres Henao Rosero - UTP 68
Ejemplo

PERSONAL
Cedula Nombre Apellido Cargo Escalafón Salario

4325 Juan García Profesor 6 1.589


8564 Mario López Profesor 9 2.023
3698 Luis Pérez Profesor 5 1.350
5874 Carlos Gómez Profesor 6 1.589

Una restricción del mundo real es:


DF = {Cargo, Escalafón}  Salario

Bases de Datos I Andres Henao Rosero - UTP 69


ANOMALIAS
 Anomalía de inserción: Para almacenar el salario de
un profesor de escalafón 3, es necesario que exista en
PERSONAL un maestro de escalafón 3.
 Anomalía de modificación: la redundancia de la
información en los profesores de escalafón 6 puede
introducir problemas si el salario de esa categoría es
modificado. Es necesario tener en cuenta que se debe
modificar la tupla 1 y 6
 anomalía de supresión : si el único profesor de
escalafón 5 (respectivamente 9) cambia de escalafón
se pierde la información sobre el salario de los
profesores de escalafón 5 (respectivamente 9)

Bases de Datos I Andres Henao Rosero - UTP 70


Ejercicio
Supóngase la relación: ENVIO
CP
sede_ppal nit producto cantidad con_iva
Med 101 Leche 10 No
Bog 201 Chorizo 29 Si
Med 101 Yogur 12 Si
Med 101 Pasas 100 No
Bog 201 Leche 12 No
Bog 201 Pasas 100 No
Med 128 Chicha 10 No

Bases de Datos I Andres Henao Rosero - UTP 71


PREGUNTAS

 ¿ Suponga que hay 50 proveedores de


“leche” y que ésta se vuelve un producto
con IVA, que implicaciones trae esto?
 ¿ Qué pasa si queremos ingresar un
proveedor que todavía no nos ha
suministrado algún producto pero
deseamos registrar sus datos?
 La misma pregunta anterior para un
producto
Bases de Datos I Andres Henao Rosero - UTP 72
PREGUNTAS
 ¿Qué pasa si en el almacén ya no desean
vender chicha pero desean preservar la
información del proveedor 128?
 ¿Qué pasa si en el almacén ya no desean
negociar con el proveedor 128? ¿Qué pasa
con la información del producto chicha?
 ¿Cuántas veces dice la relación ENVIO dónde
está situado cada proveedor?
 ¿Cuántas veces dice la relación ENVIO si un
producto está gravado o no con IVA?

Bases de Datos I Andres Henao Rosero - UTP 73


PREGUNTAS

 Todo lo anterior indica que aunque la relación


representa el negocio, posee muchos
problemas
 La idea de la normalización es “producir”
relaciones que representen el negocio pero que
al mismo tiempo eviten (en lo posible)
anomalías como las anteriores

Bases de Datos I Andres Henao Rosero - UTP 74


FORMAS NORMALES
 6 formas normales clásicas:
1NF, 2NF, 3NF, BCNF, 4NF, 5NF
 Mientras una relación esté en una
forma normal más alta “mucho !
mejor”
 Generalmente se acepta normalizar
hasta BCNF
 Las formas normales 4 y 5 son casos
“extremos”
Bases de Datos I Andres Henao Rosero - UTP 75
FORMAS NORMALES
 Si una relación cumple una forma normal n
automáticamente cumplirá las n-1 formas
normales anteriores, es decir, cada forma
normal es “más fuerte” que sus
predecesoras.
 El análisis de 1NF, 2NF y 3NF está
considerado sólo para relaciones con una
sola clave candidata. Para relaciones con
más de 1 clave candidata directamente se
aplica BCNF

Bases de Datos I Andres Henao Rosero - UTP 76


PRIMERA FORMA NORMAL
Definición:
Una relación está en 1NF sii todos sus atributos
tienen valores atómicos

Suponiendo que cada autor es un valor semántico de


interés
Bases de Datos I Andres Henao Rosero - UTP 77
PRIMERA FORMA NORMAL
 Solución: crear una entidad adicional
y agregarla al esquema con relación
1:N

Bases de Datos I Andres Henao Rosero - UTP 78


Otro ejemplo
EMPLEADO
Id Nom Apellido Función Facultad

12345 Demetrio Ovalle {Director, Investigador, Profesor} Civil


67890 Fernando Arango {Investigador, Profesor} Sistemas

Solución 1 EMPLEADO no
está en 1FN
EMPLEADO
Id Nom Apellido Función1 Función2 Funcion3 Facultad
12345 Demetrio Ovalle Director Investigador Profesor Civil

67890 Fernando Arango Investigador Profesor NULL Sistemas

Problemas de la solución 1: Ya está en 1NF


•¿Que pasa si a Demetrio le asignan otra función?
•Almacenamiento de valores nulos
Bases de Datos I Andres Henao Rosero - UTP 79
Otro ejemplo
EMPLEADO
Id Nom Apellido Función Facultad

12345 Demetrio Ovalle {Director, Investigador, Profesor} Civil


67890 Fernando Arango {Investigador, Profesor} Sistemas

Solución 2
EMPLEADO Id Nom Apellido Facultad
FUNCION_EMPLEADO 12345 Demetrio Ovalle Civil
Id Función 67890 Fernando Arango Sistemas

12345 Director

12345 Investigador
¿Que pasa si a Demetrio le asignan otra función?
Simplemente inserto una fila más en
12345 Profesor
FUNCION_EMPLEADO
67890 Investigador

67890 Profesor

Bases de Datos I Andres Henao Rosero - UTP 80


SEGUNDA FORMA NORMAL
 Una relación está en 2NF si y sólo si
está en 1NF y todos los atributos no
clave (si los hay) dependen
funcionalmente por completo de la
clave primaria.
 ¿Está la relación ENVÍO (Diap. 7) en
2NF? Veamos:

Bases de Datos I Andres Henao Rosero - UTP 81


Diagrama de DF para la relación
ENVIO

producto con_iva

nit cant

sede_ppal

Como los atributos con_iva y sede_ppal no


tienen una DF completa de la CP, entonces la
relación NO está en 2NF

Bases de Datos I Andres Henao Rosero - UTP 82


Segunda Forma Normal

 Solución: Con las “flechas


conflictivas” (flechas de color rojo)
se crean relaciones adicionales
 El proceso de normalización puede
verse como una eliminación de
“flechas conflictivas”

Bases de Datos I Andres Henao Rosero - UTP 83


 Resultado de la partición:

R2 producto con_iva

producto
R1 cant
nit

R3 nit sede_ppal

Bases de Datos I Andres Henao Rosero - UTP 84


PREGUNTAS

 ¿Soluciona la partición las anomalías


mencionadas anteriormente?
 ¿Están las relaciones resultantes en
2NF?

Bases de Datos I Andres Henao Rosero - UTP 85


TERCERA FORMA NORMAL
Una relación está en 3NF si y sólo si los
atributos no clave (si los hay) son:
 Mutuamente independientes
 Dependen por completo de la CP

Bases de Datos I Andres Henao Rosero - UTP 86


EJEMPLO
 Considérese la relación REGISTRO

cédula hobbie valor_hobbie


10 Música 100
20 Pintura 200
30 Música 100
40 Pintura 200
50 Bolos 100

 Cada persona sólo puede registrar un hobbie


 El precio de un mismo hobbie es igual para todas las
personas

Bases de Datos I Andres Henao Rosero - UTP 87


EJEMPLO
 ¿Qué problemas tiene la relación anterior?
 ¿Está en 2NF? ¿En 3NF? Veamos el
diagrama:
cédula hobbie
Dependencia entre
atributos no clave

valor_hobbie

Bases de Datos I Andres Henao Rosero - UTP 88


Se realiza la siguiente partición:

CF
R1: R2:
Matricula Hobbie
cédula hobbie nombre valor_hobbie
10 Música Música 100
20 Pintura Pintura 200
30 Música Bolos 100
40 Pintura Natación 100
50 Bolos

CP
CP
Bases de Datos I Andres Henao Rosero - UTP 89
PREGUNTAS
 ¿Desaparecen las anomalías en el nuevo
esquema?
 El hecho de que en matrícula se repita el
nombre del hobbie por cada estudiante que lo
tome ¿es un problema de normalización?
 ¿Qué pasa si la partición se hubiera hecho
así: R1(cédula, hobbie) y R2(cédula,
valor_hobbie) ? ¿Están en 3NF?
 ¿Qué pasa si la partición se hubiera hecho
así: R1(cédula, valor_hobbie) y R2(hobbie,
valor_hobbie) ? ¿Están en 3NF?

Bases de Datos I Andres Henao Rosero - UTP 90


Álgebra Relacional
 Permite operar con el Modelo Relacional
 Conjunto de operadores que toman relaciones
como sus operandos y regresan una relación
como resultado  El álgebra es cerrada
 Es un formalismo que permite solicitar
información a las Bases de Datos
 Es un lenguaje puro (en general no se
implementa directamente)
 Propuesta por Codd
 Se usa para la traducción de una consulta SQL
y para optimización de consultas

Bases de Datos I Andres Henao Rosero - UTP 91


Álgebra Relacional
 8 operadores iniciales clasificados en
2 grupos:
 Tradicionales de la teoría de conjuntos:
Unión, Intersección, Diferencia y
Producto Cartesiano
 Especiales: Restricción (o Selección),
Proyección, Reunión (join) y División
 Operadores adicionales: Renombrado,
Agrupamiento

Bases de Datos I Andres Henao Rosero - UTP 92


¡¡REPASO!!
¿Cuál es el esquema de
Álgebra Relacional la relación
ADMINISTRADOR?
(Código,Nombre,Edad)
Sean las relaciones:
ADMINISTRADOR Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21

PRODUCTOR Código Nombre Edad


2 Enrique Muñoz 25
8 Jorge Arias 30
10 Juan Martínez 19
Bases de Datos I Andres Henao Rosero - UTP 93
Restricción o Selección (σ)

σcondición(R)  El argumento es una relación y


una condición
 Produce una relación R1 que
contiene todas las tuplas de R
que cumplen una condición
específica
 La condición se construye
mediante operadores de
comparación (=,<,> etc.) y
booleanos (AND, OR etc.)
 El resultado es una nueva
relación cuyo esquema es
idéntico al esquema de R
Bases de Datos I Andres Henao Rosero - UTP 94
Restricción o Selección (σ)
Código Nombre Edad
σEdad >= 25 1 Jorge Campos 33
(Administrador): 2 Enrique Muñoz 25
3 Esteban Paz 21
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25

Código Nombre Edad


σCódigo < 5 (Productor): 2 Enrique Muñoz 25
8 Jorge Arias 30
Código Nombre Edad 10 Juan Martínez 19
2 Enrique Muñoz 25
Bases de Datos I Andres Henao Rosero - UTP 95
π)
Proyección (π
π Lista Atributos (R)  Toma como argumento una
relación R y una lista de
atributos
 Se utiliza para extraer
atributos (columnas) de
una relación R
 El resultado es una nueva
relación R1 cuyo esquema
corresponde a la lista de
atributos proyectados
 En R1 se eliminan las
tuplas duplicadas
 Se puede extraer más de
una columna a la vez

Bases de Datos I Andres Henao Rosero - UTP 96


Proyección (π)
πCódigo,Edad(Administrador)
Código Edad
Código Nombre Edad
1 Jorge Campos 33
1 33
2 Enrique Muñoz 25 2 25
3 Esteban Paz 21 3 21

πCódigo,Nombre(Productor)
Código Nombre
Código Nombre Edad
2 Enrique Muñoz
2 Enrique Muñoz 25
8 Jorge Arias 30 8 Jorge Arias
10 Juan Martínez 19 10 Juan Martínez
Bases de Datos I Andres Henao Rosero - UTP 97
Proyección (π)
Suponga una relación W así:
W Código Edad
1 30
2 25
3 30
Edad
πEdad(W) El resultado será:
30
25
¡¡ se eliminan tuplas repetidas !!

Bases de Datos I Andres Henao Rosero - UTP 98


Producto Cartesiano: R1 X R2
 Toma como argumentos dos relaciones R1 y R2
 Da como resultado una relación R3 cuyo esquema
consta tanto de los atributos de R1 como de los
atributos de R2 Renombrado de atributos
 Los esquemas de R1 y R2 deben ser disjuntos, es decir
los esquemas de R1 y R2 no pueden tener nombres de
atributos en común ¿por qué?
 Se debe usar un alias (mediante el operador ρ) si los
esquemas no son disjuntos
 R3 contiene todas las tuplas resultantes de la
concatenación de cada tupla de R1 con cada una de las
tuplas de R2
Bases de Datos I Andres Henao Rosero - UTP 99
El renombrado ρ de la relation
R(A,B,C,D) en R(A,K,L,D) se denota
Ejemplo ρ BK,CL (R)

Administrador X [ρCódigoCod,NombreNom,EdadEdad1(Productor)]
Código Nombre Edad Cod Nom Edad1
1 Jorge Campos 33 2 Enrique Muñoz 25
1 Jorge Campos 33 8 Jorge Arias 30
1 Jorge Campos 33 10 Juan Martínez 19
2 Enrique Muñoz 25 2 Enrique Muñoz 25
2 Enrique Muñoz 25 8 Jorge Arias 30
2 Enrique Muñoz 25 10 Juan Martínez 19
3 Esteban Paz 21 2 Enrique Muñoz 25
3 Esteban Paz 21 8 Jorge Arias 30
3 Esteban Paz 21 10 Juan Martínez 19
¡¡ El renombrado es puramente sintáctico !!
Bases de Datos I Andres Henao Rosero - UTP 100
Unión: R1 ∪ R2
R1  Toma como argumentos
dos relaciones R1 y R2 con
esquemas idénticos
 Retorna una relación R3
R2 con el mismo esquema de
R1 y R2 que contiene todas
la tuplas de R1 y todas las
de R2, eliminando tuplas
repetidas

Bases de Datos I Andres Henao Rosero - UTP 101


Ejemplo:
 Administrador ∪ Productor:
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
8 Jorge Arias 30
10 Juan Martínez 19

Bases de Datos I Andres Henao Rosero - UTP 102


Intersección: R1 ∩ R2
R1
 Toma como argumentos
dos relaciones R1 y R2
con esquemas idénticos
R2  Retorna una relación R3
con el mismo esquema
de R1 y R2 que contiene
todas las tuplas que
aparecen tanto en R1
como en R2
Bases de Datos I Andres Henao Rosero - UTP 103
Ejemplo
 Administrador ∩ Productor

Código Nombre Edad


2 Enrique Muñoz 25

Bases de Datos I Andres Henao Rosero - UTP 104


Diferencia: R1 − R2
R1  Toma como argumento
dos relaciones R1 y R2
con esquemas idénticos
 Retorna una relación
R2 R3 con el mismo
esquema de R1 y R2
que contiene todas las
tuplas que aparecen en
R1 pero no en R2

Bases de Datos I Andres Henao Rosero - UTP 105


Ejemplo
 Administrador − Productor:
Código Nombre Edad
1 Jorge Campos 33
3 Esteban Paz 21

 Productor − Administrador:
Código Nombre Edad
8 Jorge Arias 30
10 Juan Martínez 19

Bases de Datos I Andres Henao Rosero - UTP 106


TAREA : ¡¡Observa y Verifica !!
 La unión, intersección y producto
cartesiano son conmutativas y
asociativas
 La diferencia no es conmutativa ni
asociativa
 La intersección no es primitiva ya que
puede ser expresada mediante la
diferencia

Bases de Datos I Andres Henao Rosero - UTP 107


Reunión (JOIN)
 NATURAL JOIN: R1 ⋈ R2
Si R1(A,B) y R2(B,C) el resultado de R1 ⋈ R2
es una relación R3 con esquema R3(A,B,C)
donde cada tupla de R1 se concatena con cada
tupla de R2 SIEMPRE Y CUANDO tengan el
mismo valor del atributo en común (B).
El atributo B puede ser compuesto.

Bases de Datos I Andres Henao Rosero - UTP 108


Ejemplo
Empleado
Código Nombre Edad Depto
1 Jorge Campos 33 1
Departamento
2 Enrique Muñoz 25 1 Depto Descripción
3 Esteban Paz 21 1 1 Administración
8 Jorge Arias 30 2 2 Producción
10 Juan Martínez 19 2 3 Ventas
12 Anselmo Rodas 28 6 4 Finanzas

Nota:
Nota En este ejemplo, el campo
Depto en Empleado NO ES CF Atributo de
con respecto a la tabla Departamento Join
Bases de Datos I Andres Henao Rosero - UTP 109
Ejemplo
Empleado ⋈ Departamento
Código Nombre Edad Depto Descripción
1 Jorge Campos 33 1 Administración
2 Enrique Muñoz 25 1 Administración
3 Esteban Paz 21 1 Administración
8 Jorge Arias 30 2 Producción
10 Juan Martínez 19 2 Producción

Bases de Datos I Andres Henao Rosero - UTP 110


SEMI JOIN ( ⊳)
 Idéntico al NATURAL JOIN pero
únicamente se muestran los
atributos de la relación izquierda
¿Utilidad?

Bases de Datos I Andres Henao Rosero - UTP 111


THETA JOIN (R1 ΘCondición R2)

 El operador de comparación usado en


la condición NO es el “=“ sino alguno
de los siguientes: “>“, “<“, “>=“,
>=
<= “≠“
“<=“,
 Es equivalente a: σCondición (R1 X R2)

Bases de Datos I Andres Henao Rosero - UTP 112


Ejemplo
Empleado Θ Depto > Dep [ρ Depto
Dep (Departamento)]

Código Nombre Edad Depto Dep Desc


8 Jorge Arias 30 2 1 Administración
10 Juan Martínez 19 2 1 Administración
12 Anselmo Rodas 28 6 1 Administración
12 Anselmo Rodas 28 6 2 Producción
12 Anselmo Rodas 28 6 3 Ventas
12 Anselmo Rodas 28 6 4 Finanzas

Bases de Datos I Andres Henao Rosero - UTP 113


División: R1 ÷ R2
Def 1: Sean las relaciones R1(A,B) y
R2(B). El resultado de R1 ÷ R2 es una
relación R3 cuyo esquema esta
compuesto por el atributo A, donde para
todo valor de B en R2 existe una pareja
en R1 de A con ese valor. Tuplas de S
Def 2: Tuplas de R
R ÷ S = {t | t ∈ ΠX (R) y {t} x s ⊆ r} con
X= esquema de R – esquema de S

Bases de Datos I Andres Henao Rosero - UTP 114


En este ejemplo la relación empleado no está
normalizada, observe que la CP es (Código, Depto)
Ejemplo y Código  Nombre, Edad

Empleado Departamento
Código Nombre Edad Depto Depto Descripción
1 Jorge Campos 33 1 1 Administración
2 Enrique Muñoz 25 1 2 Producción
2 Enrique Muñoz 25 2
3 Esteban Paz 21 1
8 Jorge Arias 30 2
Depto
10 Juan Martínez 19 2
1
Empleado ÷ (πDepto(Departamento)) 2
Código Nombre Edad
2 Enrique Muñoz 25

Bases de Datos I Andres Henao Rosero - UTP 115


Ademas ..
Se permiten también el siguiente operador:
Asignación: VbleRelacion ← Relación

Otra forma de renombrar atributos y el


nombre de la relación
ρ NuevoNombreRelación(Atributos Renombrados) ( π(Lista Atributos)(R))

Bases de Datos I Andres Henao Rosero - UTP 116


Agrupar con funciones
Ă : Agrupar con funciones Sum(), Avg(), Max(), Min(), Count()
Atributos de Agrupamiento Ă Funciones de Grupo (R)

Ej. Sea: Emp Código Nombre Edad Depto


1 Jorge Campos 33 1
2 Enrique Muñoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martínez 19 2
12 Anselmo Rodas 28 6
¿Qué hace la siguiente consulta?
Depto Ă Count(Código) AS conteo (Emp)
Renombrado
de la función de
Grupo
Bases de Datos I Andres Henao Rosero - UTP 117
Extender
Extend R ADD expresión AS nuevo_atributo
Código Nombre Sal Bono
Emp 1 Jorge Campos 33 1
2 Enrique Muñoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martínez 19 2
12 Anselmo Rodas 28 6

Ej: Extend Emp ADD Sal*2 AS Saldobl

Bases de Datos I Andres Henao Rosero - UTP 118


Ejemplo
 Se genera una relación como la original
pero con un atributo saldobl adicional:
Código Nombre Sal Bono Saldobl
1 Jorge Campos 33 1 66
2 Enrique Muñoz 25 1 50
3 Esteban Paz 21 1 42
8 Jorge Arias 30 2 60
10 Juan Martínez 19 2 38
12 Anselmo Rodas 28 6 56

¿Qué hace la siguiente consulta?


Ej: Extend Emp ADD 1 AS num, ‘Hola’ AS mensaje
Bases de Datos I Andres Henao Rosero - UTP 119
Cálculo Relacional
 Es otro Lenguaje de Consulta para BD
relacionales
 Sirve para la manipulación y extracción de datos
a partir de las relaciones
 Es un lenguaje puro (generalmente no
implementado directamente) aunque existen
prototipos (WinRDBI)
 Se basa en el Cálculo de predicados de primer
orden, donde una relación expresa una propiedad
o predicado
 Es cerrado relacionalmente
Bases de Datos I Andres Henao Rosero - UTP 120
Cálculo Relacional
 El Álgebra Relacional es “secuencial”,
“procedimental”
 El Cálculo Relacional no es procedimental.
 Intenta capturar el lenguaje natural: dice
qué se quiere obtener pero no cómo
 Existen 2 variantes: de Tuplas y de
Dominios
 Nos concentraremos en el Cálculo
Relacional de Tuplas.

Bases de Datos I Andres Henao Rosero - UTP 121


Cálculo Relacional de Tuplas
 Concepto básico: Tupla
 Una consulta se escribe así:
{t / P(t)}
significa: “el conjunto de tuplas t, tal
que el predicado P es verdadero (se
cumple) para t”

Bases de Datos I Andres Henao Rosero - UTP 122


Cálculo Relacional de Tuplas
Elementos del predicado:
 t ∈ r : la tupla t está contenida en la relación r
 t[a] : significa el valor del atributo a de la tupla t
 Condiciones de comparación: (>,>=,<,<=, =, ≠)
Comparaciones entre atributos o entre un
atributo y una constante
Ejemplos: t1[a] ≠ t1[b] , t1[c] > 8, t1[a] = t2[b]

Bases de Datos I Andres Henao Rosero - UTP 123


Cálculo Relacional de Tuplas
• Cuantificadores: Existencial (∃) y
Universal (∀). Evalúan a falso o
verdadero
• Cuantificador Existencial
∃ t ∈ r (Q(t)): Evalúa a verdadero
si existe al menos una tupla t de
la relación r que cumple el
predicado Q.

Bases de Datos I Andres Henao Rosero - UTP 124


Cálculo Relacional de Tuplas
Ejemplos:
 ∃ t ∈ r (t[b] = 11): Es verdadero si existe
al menos una tupla en r cuyo atributo b
valga 11
 ∃ t ∈ r (t[b] < 3 ∧ t[a]=8): Es verdadero si
existe al menos una tupla en r, cuyo
atributo b sea menor que 3 y cuyo atributo
a sea igual a 8

Bases de Datos I Andres Henao Rosero - UTP 125


Cálculo Relacional de Tuplas
• Cuantificador Universal:
∀ t ∈ r (Q(t)): Evalúa a verdadero si
todas las tuplas t de r cumplen el
predicado Q

Ejemplo:
 ∀ t ∈ r (t[a]= 8): Verdadero si todas
las tuplas t de r tienen un valor de 8 en el
atributo a

Bases de Datos I Andres Henao Rosero - UTP 126


Cálculo Relacional de Tuplas
• Condiciones Compuestas:
Son combinaciones de los elementos
anteriores, mediante los operadores:
∧ (and), ∨ (or), ¬ (not)
Ejemplos:
 (t1 ∈ r ∧ t1[a] = 8)
 (t1 ∈ r ∧ ∀ t2 ∈ s (t2[b] > t1[c])

Bases de Datos I Andres Henao Rosero - UTP 127


Cálculo Relacional de Tuplas
El cuantificador universal ∀ puede ser
expresado en términos del cuantificador
existencial ∃ así:

∀ t ∈ r (Q(t)) ≡ ¬ ∃ t ∈ r (¬Q(t))

Un ejemplo en lenguaje natural:


Todos los clientes tienen nombre ≡
No existe un cliente que No tenga nombre

Bases de Datos I Andres Henao Rosero - UTP 128


Cálculo Relacional de Tuplas

 La variable asociada a un cuantificador sólo tiene


existencia (validez) dentro del predicado correspondiente,
es decir:
∃ t ∈ r (Q(t))

La variable t sólo tiene validez dentro del predicado Q.


Por lo tanto la condición:

t1 ∈ r ∧ ∀ t2 ∈ s (t2[b] > t1[c]) ∧ t2[z]=10

Es inválida ya que t2 no existe por fuera del cuantificador


∀.
Note que t1 si puede aparecer dentro del cuantificador.
Se dice t2 que es una variable ligada y t1 es libre.

Bases de Datos I Andres Henao Rosero - UTP 129


Cálculo Relacional de Tuplas
Sean las relaciones:

Est Prof
Ced Nom Edad Ced Nom Edad
10 Pedro 14 45 Gloria 14
20 Olga 29 26 Dario 29
50 Ana 30 50 Ana 30
34 Cristina 32

Bases de Datos I Andres Henao Rosero - UTP 130


Ejemplos Sencillos:
Cálculo Relacional de Tuplas
a) Imprimir la información de todos los estudiantes
{t/ t ∈ Est}

b) Igual que a) pero solo aquellos estudiantes mayores de 25


años
{t/ t ∈ Est ∧ t[edad] > 25}

c) Igual que a) pero solo imprimir las cédulas


{t/ ∃ s ∈ Εst (t[ced] = s[ced])}
d) Imprimir solo las cédulas de los estudiantes mayores de 25
años
{t/ ∃ s ∈ Εst (t[ced] = s[ced] ∧ s[edad] >25)}
Nótese que para proyectar sólo algunos atributos de una relación
se requiere utilizar el cuantificador existencial
Bases de Datos I Andres Henao Rosero - UTP 131
Ejemplos Sencillos:
Cálculo Relacional de Tuplas
e) Igual que a) pero solo imprimir las cédulas y los
nombres
{t/ ∃ s ∈ Εst (t[ced]=s[ced] ∧ t[nom]= s[nom])}

f) Imprimir las cédulas de los estudiantes que


también son profesores

{t/ ∃ s ∈ Εst (t[ced] = s[ced]) ∧


∃ w ∈ Prof (t[ced] = w[ced])}

Bases de Datos I Andres Henao Rosero - UTP 132


Cálculo Relacional de Tuplas
g) Imprimir las cédulas de todos los
estudiantes y todos los profesores
{t/ ∃ s ∈ Εst (t[ced] = s[ced]) ∨
∃ w ∈ Prof (t[ced] = w[ced])}

h) Imprimir las cédulas de los estudiantes


que no son profesores
{t/ ∃ s ∈ Εst (t[ced] = s[ced]) ∧
¬ ∃ w ∈ Prof (t[ced] = w[ced])}

Bases de Datos I Andres Henao Rosero - UTP 133


Cálculo Relacional de Tuplas

Supóngase las relaciones A (a,b,c) y B (d,e,f) su


producto cartesiano en cálculo es:
i) {t/ ∃ r ∈ A (∃ s ∈ B ( t[a] = r[a] ∧ t[b] = r[b] ∧ t[c] = r[c] ∧
t[d] = s[d] ∧ t[e] = s[e] ∧ t[f] = s[f]
)
)
}

Y el renombrado se puede lograr así:


j) {t/ ∃ e ∈ Εst (t[ced AS cédula] = e[ced])}

Bases de Datos I Andres Henao Rosero - UTP 134


Cálculo Relacional de Tuplas
 Ya con los elementos anteriores se pueden
lograr los equivalentes a las operaciones del
álgebra: restricción, proyección (ver consulta
c)), unión (ver g)), intersección (ver f)),
diferencia (ver h)), producto (ver i)),
renombrado (ver j))
 La reunión (join) y la división se pueden derivar
a partir de las otras operaciones
 No se presentará para el cálculo un operador de
agregación similar al Ă del álgebra
Bases de Datos I Andres Henao Rosero - UTP 135
Cálculo Relacional de Tuplas
 Por lo tanto cualquier consulta* expresada
mediante Álgebra Relacional se puede
escribir también en Cálculo Relacional de
Tuplas
 Ambos lenguajes tienen la misma potencia
expresiva

* Excepto ciertas consultas realizadas con el operador de


agregación Ă.

Bases de Datos I Andres Henao Rosero - UTP 136

También podría gustarte