2.4 Manip. de datos - Aula Virtual FCEQyN

Anuncio
2. Modelo relacional de datos
Objetivos
•
Comprender los principios estructurales del modelo de
datos relacional formal
•
Entender los conceptos integridad de entidad e
integridad referencial, y apreciar su importancia
•
Entender los significados e implicaciones del concepto
nulo en el modelo relacional
•
Comprender el concepto vista relacional, y la
problemática asociada a la modificación de datos a
través de vistas
•
Conocer los lenguajes formales álgebra relacional y
cálculo relacional de tuplas, así como el lenguaje
relacional estándar SQL-92
Tema 2. Modelo relacional de datos
1
2. Modelo relacional de datos
Contenidos
2.1 Presentación y orígenes del modelo relacional
2.2 Estructura de datos relacional
2.3 Características generales de integridad de datos
2.4 Manipulación de datos: lenguajes relacionales
2.4.1 Álgebra relacional
2.4.2 Cálculo relacional de tuplas
2.4.3 SQL-92
Tema 2. Modelo relacional de datos
2
2. Modelo relacional de datos
Bibliografía
[CO 2003] Connoly, T., Begg, C: Sistemas de Bases de Datos. 4ª
Edición. Addison Wesley (Cap. 3)
[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de
Bases de Datos. 3ª Edición. Addison-Wesley. (Cap. 7, 8 y 9)
[EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos.
Conceptos fundamentales. 2ª Edición. Addison-Wesley
Iberoamericana. (Cap. 6 y 7)
[D 2001]
[SKS 1998]
Date, C.J.: Introducción a los sistemas de bases de datos. 7ª Edición.
Prentice-Hall. (Cap. 3 al 9)
Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de
datos. 3ª Edición. McGraw-Hill. (Cap. 3 y 4)
...
Tema 2. Modelo relacional de datos
3
2.1 Presentación y orígenes del MR
• Introducido por Codd, 1970
• Es un Modelo de Datos Lógico - de Representación (basado en registros)
• El modelo más usado en las aplicaciones comerciales de
procesamiento de datos convencional
• Dividido en 3 partes:
1. Estructura de Datos
2. Integridad de Datos (características generales)
3. Manipulación de Datos
Tema 2. Modelo relacional de datos
4
2.2 Estructura de datos relacional
Base de Datos = Conjunto de Relaciones
• Relación
– Estructura de datos fundamental del modelo
– Tiene un nombre y representa una entidad genérica
– Conjunto de tuplas
• Cada tupla representa una entidad concreta
– Compuesta de atributos con nombre (y dominio)
• Cada atributo representa un atributo de la entidad
– Representada mediante una tabla con filas y columnas
• Modelo basado en Teoría matemática
– Analogía entre “Relación” (concepto matemático) y “Tabla”
– Teoría de Conjuntos y Lógica de Predicados de 1er orden
» Sólida Base Formal
5
Tema 2. Modelo relacional de datos
2.2 Estructura de datos relacional
cardinalidad
dominios
La relación PELICULA
Títulos
--- ----- ---
Nombres
--- ----- ---
Géneros
Años
Ciencia-ficción,
Drama,Thriller,
Comedia...
2002, 1997,
1999, 2001,
1994, 1972...
Países
Italia,Argentina,
España, EEUU,
Francia,Japón..
título
director
género
rodaje nacionalidad duración
Amores Perros
A. González
Drama
2000
The Matrix
México
145
A. Wachowsky Ciencia-ficción 1999
EEUU
138
Torrente
S. Segura
Comedia
1997
España
110
Nos miran
N. López
Policiaco
2001
España
118
Amelie
J. P. Jeunet
Comedia
2001
Francia
122
Los lunes al sol
F. León
Drama
2002
España
117
atributos
Tema 2. Modelo relacional de datos
Tiempo
--- ----- ---
tuplas
grado
6
2.2 Estructura de datos relacional
Términos básicos
Procesamiento
de Ficheros
Modelo Relacional
Formal
SQL-92
Relación
Tabla
Fichero
Fila
Registro concreto
cabecera de
Nombre de
Tupla
Si la tupla t está en la relación
R, entonces t∈R
Atributo
Debe tener un nombre único
dentro de cada relación
Cardinalidad
nº de tuplas en una relación
=
Grado
nº atributos en una relación
=
Dominio
colección de valores permitidos
para ciertos atributos
=
Columna
Campo de registro
7
Tema 2. Modelo relacional de datos
2.2 Estructura de datos relacional
Definiciones formales: DOMINIO
• Conjunto de valores atómicos del mismo tipo, donde
toman su valor los atributos
–
–
–
–
La definición de dominios forma parte de la definición de la BD
Cada atributo definido sobre un ÚNICO dominio OBLIGATORIO
Si A, B representan un mismo concepto, A y B con mismo dominio
Dominio D puede contener valores no tomados por ningún atributo
{valores de A} ⊆ Dominio(A)
• Comparaciones Restringidas a Dominio
– La comparación de dos atributos sólo tiene sentido si ambos toman
valores del mismo dominio
– Si el SGBD soporta dominios, podrá detectar este tipo de errores
Tema 2. Modelo relacional de datos
8
2.2 Estructura de datos relacional
Definiciones formales: RELACIÓN (1)
Una relación R, sobre conjunto de dominios D1, D2 ... Dn
se compone de dos partes:
• Esquema o Cabecera
Conjunto de pares Atributo:Dominio
{ (A1:D1), (A2:D2) ... (An:Dn) }
– Cada Aj tiene asociado sólo un Dj
– Los Di no tienen por qué ser distintos entre sí
• Estado, Cuerpo o Instancia
– Conjunto de tuplas que contiene en un instante concreto
– tupla = conjunto de pares Atributo:Valor
{ { (A1:vi1), (A2:vi2) ... (An:vin) } }, donde
i=1..m
Tema 2. Modelo relacional de datos
9
2.2 Estructura de datos relacional
Definiciones formales: RELACIÓN (2)
Un esquema de relación:
PELICULA (titulo:Titulos, duracion:Tiempo, director:Nombres, estreno:Fechas)
Un estado de la relación:
{ { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) }
{ (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) }
... }
• El estado de una relación es variable en el tiempo
– nuevas tuplas, modificación o borrado de existentes
• El esquema no suele variar
costoso:
· reescritura de “miles” de tuplas
· ¿valores de nuevos atributos para tuplas ya existentes?
– Suele incluir un conjunto de Reglas de Integridad (se verá)
Tema 2. Modelo relacional de datos
10
2.2 Estructura de datos relacional
Definiciones formales: RELACIÓN (3)
• Propiedades de una Relación
1. No existen tuplas repetidas
2. Las tuplas no están ordenadas
estado = conjunto
matemático de tuplas
3. Los atributos no están ordenados
esquema = conjunto de pares Atributo:Dominio
4. Los valores de atributos son Atómicos
dominio = conjunto de valores atómicos
Intersección fila/columna = un solo valor (no lista de valores)
Si R cumple esta propiedad, R está en 1FN
Tema 2. Modelo relacional de datos
11
2.2 Estructura de datos relacional
Definiciones formales: RELACIÓN (4)
• FORMAS NORMALES
R está en <determinada> FN si
cumple <cierto> conjunto de condiciones o restricciones
necesarias para estar bien diseñada
de acuerdo con el modelo relacional de datos.
• Toda relación ha de estar en 1FN (estructura de datos simple)
Tema 2. Modelo relacional de datos
12
2.2 Estructura de datos relacional
Definiciones formales: RELACIÓN (5)
• Relación vs. Tabla
– Relación: Representación abstracta de un elemento de datos
– Tabla: Representación concreta de tal elemento abstracto
– Ventajas
Representación muy sencilla (tabla) del elemento abstracto
básico (relación) del Modelo Relacional
Fácil de utilizar, entender, razonar...
– Inconveniente
Aparente orden entre filas y entre columnas de la tabla
Tema 2. Modelo relacional de datos
13
2.2 Estructura de datos relacional
Definiciones formales: BD RELACIONAL (1)
• Percibida por usuarios como una colección de relaciones
– de diversos grados (nº de atributos)
– que varían con el tiempo (nº de tuplas, estado)
• Las relaciones (tablas) son la estructura lógica de la BD
– Niveles externo y conceptual ANSI/X3/SPARC
• Toda BDR cumple el Principio de Información:
Todo contenido de información de la BD está representado
de una y sólo una forma: como valores explícitos
dentro de posiciones de columnas dentro de filas dentro de tablas
• Conexión lógica entre Relaciones (vínculo o interrelación)
– Representada mediante valores
– No existen punteros (visibles al usuario)
Tema 2. Modelo relacional de datos
14
2.2 Estructura de datos relacional
Definiciones formales: BD RELACIONAL (2)
• En una BDR distinguimos...
– Esquema de base de datos
Descripción de la base de datos
Conjunto de esquemas de relación
PELICULA ( titulo:Títulos, director:Nombres, género:Géneros,
rodaje:Años, nacionalidad:Países, duración:Tiempo )
ACTOR
( nombre:Nombres, nombreArtistico: Nombres,
agente:Nombres, cache:Dinero )
DIRECTOR ( nombre:Nombres, nacionalidad:Países, operaPrima:Títulos )
...
– Estado o instancia de base de datos
Visión del contenido de la base de datos en cierto instante
Conjunto de estados de relación
Tema 2. Modelo relacional de datos
15
2.3 Características generales de
integridad de datos
• Todo estado de BD refleja la realidad
– es un modelo de una porción del mundo real (minimundo)
• Algunas configuraciones de valores NO tienen SENTIDO
– pues no representan ningún estado posible del minimundo
2 personas distintas con el mismo DNI
Un empleado sin NSS
Un alumno con -29 años
Una película sin director
Definición de la BD (esquema) necesita incluir
REGLAS DE INTEGRIDAD
Tema 2. Modelo relacional de datos
16
2.3 Características generales de
integridad de datos
Reglas de integridad
•
•
•
•
Informan al SGBD de restricciones del mundo real
Así, el SGBD evita configuraciones de datos imposibles
Aumentan la capacidad expresiva del modelo relacional
Cumplen que:
• Forman parte de la base de datos
• Se cumplen para cualquier estado de la BD
• No varían con el tiempo
• Son específicas de cada BD particular, pero el
Modelo Relacional incluye...
características generales de integridad
importantes y necesarias en toda BD
Tema 2. Modelo relacional de datos
Claves Candidatas y Primarias
Claves Ajenas (o foráneas o externas)
17
2.3 Características generales de
integridad de datos
Superclave y Clave de una relación
Sea R una relación
R(A1:D1 , A2:D2 ,... An:Dn )
• Una superclave de R es un subconjunto SK de atributos
tal que cumple la restricción de Unicidad:
No existen dos tuplas distintas con la misma
combinación de valores para SK
• Una clave de R es una superclave tal que cumple la
restricción de Irreductibilidad:
Ningún subconjunto de CK cumple la r. Unicidad
• Clave Simple (1 atributo) o Compuesta (varios atributos)
• Cada clave es una restricción de integridad
Tema 2. Modelo relacional de datos
18
2.3 Características generales de
integridad de datos
Superclave y Clave: Ejemplos
• Claves como restricción de integridad
CLIENTE (codCliente, nombre, ciudad, telefono,...)
¿Qué implicaciones tiene establecer como clave...
a) CK = {codCliente, ciudad}
b) CK = {codCliente}
…?
• Varias claves en una relación
«Relación para registrar las visitas de pacientes a sus médicos de familia. Un mismo
paciente puede visitar a su médico varias veces en un mismo día»
VISITAMEDICA (nssPaciente, historial, fecha, hora, numVisita, medico, observ)
Claves (VISITAMEDICA)={ {nssPaciente, numVisita}, {nssPaciente, fecha, hora},
{historial, numVisita}, {historial, fecha, hora} }
19
Tema 2. Modelo relacional de datos
2.3 Características generales de
integridad de datos
Clave Candidata, Primaria y Alternativa
• Si R tiene varias claves
Claves Candidatas
Claves (ACTOR) = { {nombre}, {nombreArtistico} }
Claves (EMPLEADO) = { {dni}, {nombre, fechaNac}, {nss} }
• La Clave Primaria (Primary Key, PK ) es la clave candidata
elegida para identificar las tuplas de R
Clave Primaria (ACTOR) = {nombreArtistico}
Clave Primaria (EMPLEADO) = {nss}
• Las Claves Alternativas (Alternative Keys, AK) son el resto
de claves candidatas
Claves Alternativas (ACTOR) = {nombre}
Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} }
Tema 2. Modelo relacional de datos
20
2.3 Características generales de
integridad de datos
Clave Ajena (Externa o Foránea)
• Conjunto de atributos FK de una relación R2, tal que:
1. Existe otra relación R1 con clave primaria PK , y
2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de R1
Conjunto de atributos de una relación que hace referencia a
la clave primaria de otra relación (o la misma)
• PELICULA (título, género, duración, director, ...)
DIRECTOR (nombre, nacionalidad, ...)
• EMPLEADO (codEmp, nombre, jefe, nss, ...)
• LIBRO (título, isbn, autor, editorial, edición, año, ...)
ESCRITOR (dni, nombre, ...)
ARTICULO (título, tema, autor, revista, página, ...)
21
Tema 2. Modelo relacional de datos
2.3 Características generales de
integridad de datos
Clave Ajena (Externa o Foránea)
(2)
• Cada componente de una FK debe estar definido
sobre el mismo dominio que el correspondiente
atributo de la PK a la que referencia
PACIENTE (nss, nombre, dirección, ...)
HISTORIAL (nss, especialidad, fechaApert, ...)
VISITA (nss, especialidad, numVisita, fecha, ...)
• Clave Ajena Simple o Compuesta
• El uso de Claves Ajenas facilita...
– Eliminación de la Redundancia: Integridad entre ficheros
– Mecanismo del Modelo Relacional de datos para establecer
VÍNCULOS ENTRE RELACIONES
Tema 2. Modelo relacional de datos
22
2.3 Características generales de
integridad de datos
Clave Ajena (Externa o Foránea)
CUENTA número saldo ...
Cada cliente sólo puede tener
una cuenta a su nombre.
Una cuenta puede tener más de
un cliente como titular.
CLIENTE nombre
(3)
200
35000
505
40000
821
50000
...
dirección
ciudad
cuenta
García, A
Gran Vía, 6
Murcia
200
López, B
Ronda Norte, 3
Murcia
821
Azorín, C
Paseo Nuevo, 9 Valencia
505
Pérez, C
Plaza Mayor, 2
505
Valencia
Vínculo
Cliente-Cuenta
...
23
Tema 2. Modelo relacional de datos
2.3 Características generales de
integridad de datos
Clave Ajena (Externa o Foránea)
(4)
• Restricción de Integridad Referencial
Todo valor de una FK debe coincidir
con un valor en la correspondiente PK
– La BD no debe contener claves ajenas sin correspondencia:
Si una tupla en una relación hace referencia a otra relación, debe
referirse a una tupla existente en esa relación
ARTICULO
FK
ESCRITOR
• 1 Puede existir algún valor de PK al que NO haga referencia
ningún valor de la FK
– ESCRITOR que no haya escrito artículos: ninguna tupla de ARTICULO
hará referencia a la tupla correspondiente a dicho escritor
Tema 2. Modelo relacional de datos
24
2.3 Características generales de
integridad de datos
Clave Ajena (Externa o Foránea) (y 5)
• Diagrama Referencial
– Expresión de la existencia de Claves Ajenas
• Camino Referencial
LIBRO
título isbn autor editorial ...
ESCRITOR
dni nombre ... editorial
ARTICULO
título tema autor revista pág ...
EDITORIAL nombre dirección ...
EMPL codEmp ... dep
• Ciclo Referencial
DEPTO codDep ... dire
– Camino que empieza y acaba en la misma relación
– Caso especial: Autorreferencia
EMPLEADO codEmp ... jefe
25
Tema 2. Modelo relacional de datos
2.3 Características generales de
integridad de datos
Mantenimiento de la Integridad Referencial
• Las operaciones que no satisfacen –violan– la Integridad
Referencial, dejan la BD en un estado incorrecto
Ejemplo de un Hotel:
– ¿Qué pasaría si se eliminara la tupla (501, D, ...) en HABITACIÓN?
– ¿Y si se eliminara la tupla (100, D, ...)?
– ¿Y si se anotara la ocupación de la habitación 900?
OCUPACIÓN codClie habit ...
HABITACIÓN numHabit tipo ...
100
115
I
CLI02
420
420
I
CLI05
115
100
D
CLI10
100
304
D
CLI04
Tema 2. Modelo relacional de datos
405
I
501
D
26
2.3 Características generales de
integridad de datos
Mantenimiento de la Integridad Referencial (2)
• ¿Cómo evita el SGBD esos estados incorrectos?
El SGBD puede...
Rechazar toda operación que pueda provocar un estado ilegal,
o
Aceptar (y ejecutar) tales operaciones, pero
realizar acciones que restauren la integridad de los datos
Diseñador de la BD puede especificar al SGBD
Acciones de Mantenimiento
de la Integridad Referencial
para que la BD SIEMPRE alcance un estado final legal
Tema 2. Modelo relacional de datos
27
2.3 Características generales de
integridad de datos
Mantenimiento de la Integridad Referencial (3)
R2 ⎯→ R1
Operación: Eliminar una tupla t de R1 que es referenciada
por otras de R2
Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIÓN
Acciones posibles:
1. Rechazar la operación (acción por defecto)
Sólo permite borrar t si ninguna otra tupla hace referencia a t
2. Cascada. Propagar la eliminación
1º Borrar todas las tuplas de R2 que referencian a t
2º Eliminar t
3. Establecer nulos – (* se verá después *)
Tema 2. Modelo relacional de datos
28
2.3 Características generales de
integridad de datos
Mantenimiento de la Integridad Referencial (4)
R2 ⎯→ R1
Operación: Modificar el valor de una FK a un valor no
existente en la PK de R1
Ejemplo:
Acción:
Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIÓN
1. Rechazar la operación (SIEMPRE)
Intento de violación de la restricción de Integridad
Referencial
Tema 2. Modelo relacional de datos
29
2.3 Características generales de
integridad de datos
Mantenimiento de la Integridad Referencial (5)
Operación: Modificar el valor de la PK de una tupla t de R1
que es referenciada por otras tuplas de R2
Ejemplo: Modificar la tupla (100, D,...) a (130, D,...) en HABITACIÓN
Acciones posibles:
1. Rechazar la operación (acción por defecto)
Sólo permite modificar la PK de t si ninguna tupla referencia a t
2. Cascada. Propagar la modificación
- Toda tupla de R2 que referencia a t seguirá haciendolo:
modificar su valor de FK al nuevo valor de la PK de t
- Modificar el valor de la clave primaria de t
3. Establecer nulos – (* se verá después *)
Tema 2. Modelo relacional de datos
30
2.3 Características generales de
integridad de datos
Mantenimiento de la Integridad Referencial (6)
R2 ⎯→ R1
Operación: Inserción de una tupla t en R2 cuyo valor de FK
no se corresponde con ningún valor de la PK en
ninguna tupla de R1
Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIÓN
Acciones posibles:
- Rechazar la operación (SIEMPRE)
Intento de violación de la restricción de Integridad
Referencial
Tema 2. Modelo relacional de datos
31
2.3 Características generales de
integridad de datos
Mantenimiento de la Integridad Referencial (y 7)
• Encadenamiento de eliminaciones (análogo para Modificación)
R3 → R2 → R1
R2 → R1, Acción de Eliminación en Cascada
R3 → R2, Acción de Eliminación X
- Eliminar una tupla de R1
eliminar tuplas de R2 que la referencian
- Pero existen tuplas en R3 que referencian esas tuplas de R2...
¿cómo afecta la Acción de Eliminación X en esta operación?
Si X = en CASCADA, no-problemo!
eliminar esas tuplas de R3
Si X = RECHAZAR
La operación completa fallará
• Las operaciones de actualización en una BD son siempre
atómicas: se realiza “TODO o NADA”
PROFESOR → ÁREA → DEPARTAMENTO
ASIGNATURA → TITULACIÓN → UNIVERSIDAD
Tema 2. Modelo relacional de datos
32
2.3 Características generales de
integridad de datos
Nulos
• En el mundo real existe...
– información perdida
fechaNacimiento desconocida
– ausencia de información
¿tiene teléfono?
– valores no aplicables a ciertos atributos fechJubilac a empleado activo
• Para representar estas situaciones en los sistemas de BD
se utiliza el NULO (null)
– Si una tupla tiene un atributo que contiene un nulo,
significa que el valor real de tal atributo es desconocido
– Es posible especificar si un atributo puede o no contener nulo
nulo no es un valor en sí mismo,
sino un indicador de ausencia de información
No hay dos nulos iguales (num_telefono NULL ≠ edad NULL)
Tema 2. Modelo relacional de datos
33
2.3 Características generales de
integridad de datos
Implicaciones de los nulos en la integridad
• Nulo y Claves Primarias
Restricción de Integridad de Entidad:
Ningún atributo componente de una
clave primaria puede contener nulo
EMPLEADO (codEmp, nss, nombre, telefono, depto, jefe...)
¿Qué pasaría si codEmp pudiera contener NULO?
• Nulo y Claves Ajenas
El Modelo Relacional permite nulo
como valor de clave ajena
depto = null empleados no asignados a ningún departamento
jefe = null empleados sin jefe
Tema 2. Modelo relacional de datos
34
2.3 Características generales de
integridad de datos
Implicaciones de los nulos en la integridad (2)
• Hemos de extender la definición de clave ajena
Sea R2 una relación. FK es una clave ajena en R2 si es un
subconjunto de sus atributos tal que:
1. Existe otra relación R1 con clave primaria PK y
2. En todo momento, cada valor de FK en R2
a) es NULO, o
b) es idéntico a un valor de PK en alguna tupla de R1
• Restricción de Integridad Referencial
La Base de Datos no debe contener valores no nulos
de clave ajena sin correspondencia
Tema 2. Modelo relacional de datos
35
2.3 Características generales de
integridad de datos
Implicaciones de los nulos en la integridad (3)
• Hay que extender algunas acciones de mantenimiento de
la Integridad Referencial:
R2 ⎯→ R1
Operación: Eliminar una tupla t de R1 que es referenciada
por otras de R2
Acciones posibles:
1. Rechazar la operación (acción por defecto)
2. Cascada. Propagar la eliminación
3. Establecer nulos
1 Sólo si la FK de R2 permite NULO
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK
- Eliminar la tupla t
Tema 2. Modelo relacional de datos
36
2.3 Características generales de
integridad de datos
Implicaciones de los nulos en la integridad (y 4)
R2 ⎯→ R1
Operación: Modificar el valor de la PK de una tupla t de R1
que es referenciada por otras tuplas de R2
Acciones posibles:
1. Rechazar la operación (acción por defecto)
2. Cascada. Propagar la modificación
3. Establecer nulos
1 Sólo si la FK de R2 permite NULO
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK
- Modificar el valor de la PK de t
Tema 2. Modelo relacional de datos
37
2.3 Características generales de
integridad de datos
Resumiendo, el SGBD se encarga de...
• Comprobar las claves candidatas (primaria y alternativas):
No existen dos tuplas distintas con igual valor para una clave
Definición de BD : indicar los Atributos Componentes de las Claves Candidatas
• Comprobar la restricción de Integridad de entidad
Ningún atributo componente de una clave primaria contiene nulo
Definición de BD : indicar los Atributos Componentes de la Clave Primaria
• Comprobar la restricción de Integridad Referencial...
El valor de la clave ajena en cualquier tupla, o es nulo, o coincide con
un valor de clave primaria de alguna tupla en la relación referenciada
Definición de BD : indicar los Atributos Componentes de las Claves Ajenas
• ... y mantenerla frente operaciones que puedan violar la integridad
Definición de BD : indicar Acciones de Mantenimiento de la Integridad Referencial
Tema 2. Modelo relacional de datos
38
Dominio
Definición del Dominio
CODPEL
CODGUI
CODDIR
CODDIS
CODACT
CODAGE
SEXOS
TEXTO
PORCENT
DINERO
NIF
TITULOS
GENEROS
PAISES
AÑOS
FECHAS
NOMBRES
APELLIDOS
DOMICILIOS
TELEFONOS
TIPO_PAPEL
enteros(3)
enteros(3)
enteros(3)
enteros(2)
enteros(4)
enteros(2)
{ M, F }
cadena caracteres variable (500)
enteros (2)
enteros(9)
cadena caracteres fija (12)
cadena caracteres variable (120)
{comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie}
{españa,francia,gran_bretaña,eeuu,australia,alemania,la_india,argentina}
AÑO
FECHA
cadena caracteres variable (35)
cadena caracteres variable (80)
cadena caracteres variable (50)
cadena caracteres variable (15)
{protagonista, secundario, reparto, figuracion}
Tema 2. Modelo relacional de datos
39
Esquema “PRODUCTORA”
PELICULA
(codP:CODPEL, titulo:TITULOS, año:AÑO, genero:GENEROS, guion:CODGUI,
director:CODDIR, directorFotog:CODDIR, distrib:CODDIS, nacio:PAISES,
estreno:FECHA, numOscar:enteros(2), taquilla:DINERO)
DIRECTOR
(codDir:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacio:PAISES,
fechaNacim:FECHA, operaPrima:CODPEL)
DIREC_FOTOG (codDF:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacionalidad:PAISES,
fechaNacim:FECHA, ultTrabajo:CODPEL)
GUION
(codG:CODGUI, titulo: TITULOS, resumen: TEXTO,
nomAutorPpal:NOMBRES, fechaFin:FECHA, fechaEntrega:FECHA)
DISTRIBUIDORA (codDis:CODDIS, nombre:NOMBRES, cif:NIF, direccion:DOMICILIO,
telefono:TELEFONOS, porcentaje:PORCENT)
ACTOR
(codA:CODACT, nombre:NOMBRES, nomReal:NOMBRES, nacionalidad:PAISES,
fechaNacim:FECHA, sexo:SEXOS, agencia:CODAGE, cache:DINERO)
AGENCIA
(codAg:CODAGE, nombre:NOMBRES, direccion:DOMICILIO, telefono:TELEFONOS)
ACTUA_EN
(actor:CODACT, film:CODPEL, papel:TIPO_PAPEL, paga:DINERO)
Tema 2. Modelo relacional de datos
40
2.4 Manipulación de datos
2.4.1. Álgebra Relacional
• Definida por Codd, 1972
• Colección de operadores que toman relaciones como
operandos y devuelven relaciones como resultado
– Operadores tradicionales sobre conjuntos
unión
intersección
diferencia
producto cartesiano
Los operandos son relaciones, y NO conjuntos arbitrarios
operaciones adaptadas a relaciones (tipo especial de conjuntos)
– Operadores relacionales especiales
restricción
proyección
reunión ( join )
división
Tema 2. Modelo relacional de datos
41
2.4 Manip. de datos: Álgebra Relacional
Clausura relacional
El resultado de cualquier operación del álgebra
relacional es otra relación
☺ la salida de una operación puede ser entrada
(operando) de otra
Expresiones Anidadas
Sus operandos son otras expresiones del álgebra
(en lugar de nombres de relación)
Tema 2. Modelo relacional de datos
42
2.4 Manip. de datos: Álgebra Relacional
Compatibilidad de tipos (o con la unión)
• En matemáticas, A∪B = { e / e∈A y-o e∈B }
• Relación = conjunto de tuplas
es posible hacer la unión de dos relaciones R y S
• R∪S = { t / t∈R y-o t∈S }
– Conjunto de todas las tuplas que están en R y/o en S
– Sin embargo...
PELICULA ∪ DIRECTOR es un conjunto, pero no es una relación
Las relaciones deben ser homogéneas: no pueden
contener mezcla de tuplas de distintos tipos
– Ha de mantenerse la Propiedad de Clausura:
el resultado de la operación DEBE ser una relación
» Las relaciones de entrada deben ser de tipos compatibles
Tema 2. Modelo relacional de datos
43
2.4 Manip. de datos: Álgebra Relacional
Compatibilidad de tipos (y 2)
Sean R ( r1, r2,..., rn ), S ( s1, s2, ..., sn )
• Relaciones R y S compatibles en tipo si tienen el
“mismo” esquema, es decir:
1. Igual número de atributos:
grado(R) = grado(S) = n
2. Atributos correspondientes definidos sobre el mismo dominio:
dom(ri) = dom(si) ,, i = 1, 2, ..., n
Ejemplo: DIRECTOR y DIR_FOTOG son de tipos compatibles
UNIÓN, INTERSECCIÓN, DIFERENCIA necesitan operandos
compatibles en tipo
PRODUCTO CARTESIANO no necesita compatibilidad de tipo
en sus operandos
Tema 2. Modelo relacional de datos
44
2.4 Manip. de datos: Álgebra Relacional
Unión de relaciones
R∪S, con R y S compatibles en tipo, es una relación tal que:
Esquema: el de R (o S)
Estado: conjunto de tuplas que están en R, en S o en ambas
Las tuplas repetidas se eliminan (por definición)
Ejemplo: DIRECTOR ∪ DIR_FOTOG
Intersección de relaciones
R∩S, con R y S compatibles en tipo, es una relación tal que:
Esquema: el de R (o S)
Estado: conjunto de tuplas que están a la vez en R y en S
Ejemplo: DIRECTOR ∩ DIR_FOTOG
Tema 2. Modelo relacional de datos
45
2.4 Manip. de datos: Álgebra Relacional
Diferencia entre relaciones
R―S, con R y S compatibles en tipo, es una relación tal que:
Esquema: el de R (o S)
Estado: conjunto de tuplas que están en R, pero NO en S
operación con «cierta direccionalidad», como la resta aritmética
Ejemplo: DIRECTOR ― DIR_FOTOG
Secuencias de operaciones
• La propiedad de clausura relacional permite aplicar una
operación tras otra
Sean R, S, T relaciones de tipos compatibles,
– Única expresión: expresiones anidadas
R∩(S∪T)
– Varias expresiones: relaciones intermedias con nombre
A←S∪T
B←R∩A
Tema 2. Modelo relacional de datos
46
2.4 Manip. de datos: Álgebra Relacional
Renombramiento de atributos
• Por defecto, los atributos de la relación resultado de una
operación heredan los nombres de los del operando más
a la izquierda
DIR ← DIRECTOR ∪ DIR_FOTOG
Los atributos de DIR tienen los mismos nombres que los de DIRECTOR
• Se puede indicar una lista con nuevos nombres para los
atributos de la relación resultado:
DIR(codDir,nomDir,apeDir,nacDir,fechaNac,pelic) ← DIRECTOR ∪ DIR_FOTOG
Tema 2. Modelo relacional de datos
47
2.4 Manip. de datos: Álgebra Relacional
Producto Cartesiano entre relaciones
• En matemáticas, A Χ B = { (a,b) / a∈A y b∈B }
• Relación = conjunto de tuplas,
es posible el producto cartesiano entre relaciones R y S
• R Χ S = { (tR,tS) / tR∈R y tS∈S }
– Conjunto de pares ordenados de tuplas de R y S
– Pero ha de conservarse la Propiedad de Clausura:
» El resultado debe ser un conjunto de tuplas (no de pares de)
Producto Cartesiano Ampliado, pues cada par
ordenado es sustituido por la tupla resultante
de la combinación de las dos tuplas origen
Tema 2. Modelo relacional de datos
48
2.4 Manip. de datos: Álgebra Relacional
Producto Cartesiano entre relaciones (2)
• R Χ S, con R y S cualesquiera, es una relación tal que:
Esquema: combinación (unión) de los esquemas de R y S
Estado: conjunto de todas las tuplas formadas por las posibles
combinaciones de cada tupla de R con cada tupla de S
Ejemplo: PELICULA Χ DIRECTOR
Obtiene un conjunto de tuplas tales que cada una es la combinación de una tupla de
PELICULA y otra de DIRECTOR
• Operación sin demasiada importancia práctica
– No se tiene más información a la salida que a la entrada
– pero es necesaria para definir la operación REUNIÓN (JOIN)
49
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Producto Cartesiano entre relaciones (y 3)
• El esquema de la relación resultante de R Χ S
debe estar bien formado (nombres de atributos únicos)
• Si R y S tienen atributos con igual nombre, R Χ S tendría
¡dos atributos nombrados igual! ko!
ACTOR Χ AGENCIA
“colisión” de nombres en atributo “nombre”
• Soluciones posibles:
1. Renombrar atributos de una relación, antes del producto
AGENCIA_2(codAge, nomAge, direccion, telefono) ← AGENCIA
RESULTADO ← ACTOR Χ AGENCIA_2
2. Prefijar atributos con el nombre de su tabla, en la tabla resultado
RESULTADO(codA, ACTOR.nombre, nomreal,..., codAg, AGENCIA.nombre, ...)
← ACTOR Χ AGENCIA
Tema 2. Modelo relacional de datos
50
2.4 Manip. de datos: Álgebra Relacional
Propiedades de los operadores relacionales
R, S, T relaciones de tipos compatibles
• Asociativa
(R∪S)∪T≡R∪(S∪T)≡R∪S∪T
(R∩S)∩T≡R∩(S∩T)≡R∩S∩T
( R Χ S ) Χ T ≡ R Χ ( S Χ T) ≡ R Χ S Χ T L
• Conmutativa
R∪S ≡S∪R
R∩S ≡S∩R
RΧS ≡SΧR L
• La diferencia no cumple ninguna de estas propiedades
L El producto cartesiano “normal” no las cumple, pero sí el “ampliado”
51
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Restricción de una relación
σ
• Obtener un subconjunto de las tuplas de una relación
para las cuales se satisface una condición de selección
σ
<condición>
(<relación>)
• Resultado: Relación (conjunto de tuplas) con atributos de <relación>
• <condición> es una expresión booleana…
– Especificada en términos de atributos de <relación>
– Compuesta por una o más cláusulas, del tipo:
<nomAtrib> <opComp> <cte> o bien <nomAtrib> <opComp> <nomAtrib>
• <opComp> operador de comparación ∈ {=, <, ≤, >, ≥, ≠}
• <cte> valor constante ∈ dominio del atributo <nomAtrib>
• Cláusulas conectadas por operadores booleanos AND, OR, NOT
Tema 2. Modelo relacional de datos
52
2.4 Manip. de datos: Álgebra Relacional
Restricción de una relación (2)
• Ejemplos:
* Tuplas de actores representados por la agencia número 2
σ
σ
agencia=2 (ACTOR)
* Actores cuyo caché rebasa los 30.000€
cache>30000 (ACTOR)
* Actores representados por la agencia número 2, cuyo cache no llega
a los 22.000€, o bien por la agencia 4 y con caché superior a 32.000€
σ
(agencia=2 AND cache<25000) OR (agencia=4 AND cache>35000) (ACTOR)
Tema 2. Modelo relacional de datos
53
2.4 Manip. de datos: Álgebra Relacional
Restricción de una relación (3)
• Mecanismo de selección del sistema
– Aplica <condición> a cada tupla individual de <relación>, sustituyendo
cada atributo por su valor en la tupla
– Si <condición> es TRUE, la tupla se selecciona para el resultado
• Operador Restricción: Unario
– Sólo se aplica a UNA relación
Nunca puede seleccionar tuplas de más de una relación
– Se aplica a UNA sola tupla a la vez
<condición> nunca se refiere a más de una tupla
• Grado(Relación Resultado) = Grado(Relación Origen)
– Tienen los mismos atributos
• Nº Tuplas(Relación Resultado) ≤ Nº Tuplas(Relación Origen)
Tema 2. Modelo relacional de datos
54
2.4 Manip. de datos: Álgebra Relacional
Restricción de una relación (y 4)
• La operación restricción es conmutativa
σ (σ
cond1
cond2
(R)
)≡ σ (σ
cond2
cond1
(R)
)
Esto permite …
̶ Secuencia de restricciones (selecciones) en cualquier orden
̶ Combinación de una secuencia de restricciones en una
única restricción con una condición conjuntiva:
σ (σ (...(σ
cond1
cond2
condn
(R))...)) ≡σcond1 AND cond2 AND...AND condn(R)
55
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Proyección de una relación
∏
• Sólo interesan algunos atributos de una relación
• Se proyecta la relación sobre esos atributos
• Restricción vs. Proyección :
–
–
σ selecciona algunas tuplas de la relación y desecha otras
∏ selecciona ciertos atributos y desecha los demás
∏<listAtrib>(<relación>)
• Resultado: Relación (conjunto de tuplas) cuyos atributos son
sólo los de <listAtrib> y en ese orden
• <listAtrib> lista de nombres de atributos de <relación>
* Obtener el código, nombre y el caché de todos los actores
∏codA, nombre, cache(ACTOR)
Tema 2. Modelo relacional de datos
56
2.4 Manip. de datos: Álgebra Relacional
Proyección de una relación (2)
• Si <listAtrib> no contiene atributos clave
¡tuplas repetidas!
* Obtener la agencia y la nacionalidad de todos los actores
∏agencia, nacionalidad(ACTOR)
» Eliminación implícita de duplicados
– Resultado ≡ relación válida
• Grado(Relación Resultado) = Nº atributos(<listAtrib>)
• Nº Tuplas(Relación Resultado) ≤ Nº Tuplas(Relación Origen)
y es igual (=) si <listAtrib> contiene una clave candidata
Tema 2. Modelo relacional de datos
57
2.4 Manip. de datos: Álgebra Relacional
Proyección de una relación (y 3)
• La operación proyección no es conmutativa
∏lista1 (∏ lista2 (R) ) ≠ ∏lista2 (∏lista1 (R) )
• Además, siempre que lista1 ⊆ lista2, entonces...
∏lista1 (∏ lista2 (R) ) = ∏lista1 (R)
Tema 2. Modelo relacional de datos
58
2.4 Manip. de datos: Álgebra Relacional
Reunión o Join entre dos relaciones
• Combina las tuplas relacionadas de dos relaciones
en una sola tupla
• Permite procesar vínculos entre relaciones
* Datos de películas junto con los de su director correspondiente
– Es necesario combinar cada tupla de PELÍCULA, p, con la tupla
DIRECTOR, d, tal que el valor de codDir en d coincida con el de
director en p
– Se consigue aplicando la operación REUNIÓN a las dos relaciones
R1 ← PELICULA
director=codDir DIRECTOR
59
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Reunión o Join entre dos relaciones (2)
PELICULA ( codP, título, año, genero, guión, director, directorFotog, distrib,
nacio, estreno, numOscar, taquilla )
DIRECTOR ( codDir, nombre, apellido, nacio, fechaNacim, óperaPrima )
* Títulos de películas junto con nombre y apellido de su director
– Se consigue aplicando la operación REUNIÓN a las dos relaciones
– Y proyectando el resultado sobre los atributos requeridos
R2←∏titulo,nombre,apellido (PELICULA
R2
titulo
nombre
)
director=codDir DIRECTOR
apellido
La caja 507
Enrique
Urbizu
Mensaka
Salvador
Gª Ruiz
El viaje de Carol
Imanol
Uribe
Airbag
Juanma
Bajo Ulloa
Tema 2. Modelo relacional de datos
60
2.4 Manip. de datos: Álgebra Relacional
Reunión o Join entre dos relaciones (3)
• Forma General para relaciones A(a1, a2, ... an) y B(b1, b2, ... bm):
A
<condición de reunión>B
• Resultado: Relación con n+m atributos (a1, a2, ... an, b1, b2, ... bm)
Esquema: unión de las cabeceras de A y B
Estado: conjunto de tuplas, una por cada combinación de tuplas
(una de A y otra de B) que satisface <condición de reunión>
• Reunión vs. Producto Cartesiano
– En el Producto Cartesiano aparecen todas las combinaciones
posibles de tuplas de A y de B
Tema 2. Modelo relacional de datos
61
2.4 Manip. de datos: Álgebra Relacional
Reunión o Join entre dos relaciones (4)
• <condición de reunión>
– Expresión booleana especificada en términos de atributos de A y B
– Evaluada para cada combinación (par) de tuplas:
Si la cumplen, forman una nueva tupla de la relación resultado
– Es de la forma:
<condición> AND <condición> AND... AND <condición>
donde:
<condición> tiene la forma ai θ bj (condición de reunión general), y
· ai es un atributo de A; bj es un atributo de B,
· Dominio(ai) = Dominio(bj),
· θ (theta) cumple que θ ∈ {=, <, ≤, >, ≥, ≠}
• Reunión con condición de reunión general ≡ REUNIÓN THETA
Tema 2. Modelo relacional de datos
62
2.4 Manip. de datos: Álgebra Relacional
Reunión o Join entre dos relaciones (5)
• La reunión más común es la que implica comparación
de igualdad ( θ ≡ = )
EQUI-REUNIÓN (o REUNIÓN, a secas)
* Actores y agencias que los representan
ACTOR
agencia=codAg AGENCIA
• Problema: colisión de nombres de atributos
– Existen atributos nombrados igual en ACTOR y AGENCIA
– Resultado con varios atributos de igual nombre
ko!
– Dos soluciones alternativas posibles:
1. Previo renombramiento de atributos de una relación
AGENC(codAg, nomAg, dirAg, tel) ← AGENCIA
R← ∏nombre, nomAg (ACTOR
agencia=codAg AGENC)
2. Prefijar atributos con el nombre de su tabla
R← ∏ACTOR.nombre,AGENCIA.nombre(ACTOR agencia=codAg AGENCIA)
63
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Reunión o Join entre dos relaciones (6)
• Las tuplas cuyos atributos de reunión son nulos,
NO aparecen en la relación resultado
– Los actores que se auto-representan tienen NULL en atributo agencia
– Sus tuplas no aparecen en ACTOR
agencia=codAg AGENC
• Las tuplas de una relación que no encuentran
correspondencia en la otra, tampoco aparecen en la
relación resultado
– Los actores que no han actuado en ninguna película, no aparecen
en ninguna tupla de la tabla ACTUA_EN
– Sus tuplas no aparecen en ACTOR
Tema 2. Modelo relacional de datos
codA=actor ACTUA_EN
64
2.4 Manip. de datos: Álgebra Relacional
Reunión o Join entre dos relaciones (y 7)
• En general, sea A con nA tuplas y B con nB tuplas, entonces
R← A
<condición de reunión> B
cumple que 0 ≤ nR ≤ nA *nB
• Si ninguna combinación de tuplas de A y B cumple la
<condición de reunión>, entonces
– Relación Resultado = Relación vacía (cero tuplas)
• Si NO se especifica <condición de reunión>, entonces
– la <condición de reunión> es TRUE para todas las tuplas, y
–
≡Χ
(REUNIÓN ≡ PROD. CARTESIANO ≡ REUNIÓN CRUZADA)
Tema 2. Modelo relacional de datos
65
2.4 Manip. de datos: Álgebra Relacional
Reunión natural entre relaciones
Ä
AÄB
• Caso particular de reunión, quizá el más importante
• No «necesita» especificar condición de reunión, pues...
• ... iguala todos los pares de atributos con igual
nombre en A y B
– Es una EQUI-REUNIÓN + eliminación de atributos superfluos
Sólo conserva un atributo de reunión
– La definición estándar de reunión natural exige que los
atributos de reunión deben tener nombre idéntico en ambas
relaciones operando
– Si no es así, aplicar antes un renombramiento de atributos
– 1 deben tener el mismo dominio
Tema 2. Modelo relacional de datos
66
2.4 Manip. de datos: Álgebra Relacional
Reunión natural entre relaciones (2)
R(a, b, c)
S(b, d)
R
a
b
c
S b d
10 1 100
3 -4
20 3 100
1 -5
30 5 300
T1 ← R
T1
R.b=S.b S, tiene el esquema T1 ( a, R.b, c, S.b, d )
a
R.b
c
S.b
d
10
1
100
1
-5
20
3
100
3
-4
T2 ← R Ä S, tiene el esquema T2 ( a, b, c, d )
T2
a
b
c
d
10
1
100
-5
20
3
100
-4
67
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Reunión natural entre relaciones (y 3)
• Ejemplos:
1. Título de todas las películas junto con el título y resumen de su guión
GUIO(guion, titGuion, resumen, nomAutorPpal, fechaFin, fechaEntrega) ← GUION
RESUMEN ←
∏titulo, titGuion, resumen (PELICULA Ä GUIO)
2. Títulos de películas junto con el nombre y apellidos de su director
DIREC(director, nombre, apellidos, nacio, fechaNacim, operaPrima) ← DIRECTOR
PELI_DIRE ←
∏titulo, nombre, apellidos (PELICULA Ä DIREC)
3. Nombre de actores y de las agencias que los representan
AGENC(agencia, nomAg, direccion, telefono) ← AGENCIA
ACT_AGEN ←
∏nombre, nomAg (ACTOR Ä AGENC)
¿A qué se debe el renombramiento en cada caso?
Tema 2. Modelo relacional de datos
68
2.4 Manip. de datos: Álgebra Relacional
÷
División entre relaciones
Sean las relaciones A(a1, a2, ... an, b1, b2, ... bm) y B(b1, b2, ...bm)
• A÷B es una relación tal que:
Esquema: Relación con los atributos no comunes R( a1, a2, ... an )
Estado: Conjunto de tuplas { (ai1, ai2, ... ain) } tal que existe
en A una tupla (ai1, ai2, ... ain, bj1, bj2, ... bjm) para
TODAS las tuplas (bj1, bj2, ... bjm ) de B
• Poco común. Útil para consultas especiales ocasionales
Nombres de los actores que trabajan en todas las películas dirigidas por los
hermanos Cohen
• Para que una tupla t aparezca en el resultado, los valores
de t deben aparecer en A en combinación con todas las
tuplas de B
69
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
División entre relaciones
A
a
y1
y1
y1
y1
y2
y2
y3
y3
y3
y4
y4
y4
b
x1
x2
x3
x4
x1
x3
x2
x3
x4
x1
x2
x3
B
Tema 2. Modelo relacional de datos
b
x1
x2
x3
(y 2)
R
a
y1
y4
y1, y4 aparecen en A en combinación con
las 3 tuplas de B, por eso están en el
resultado
R=A÷B
El resto de valores de y en A, no aparecen
con todas las tuplas de B y no son
seleccionadas: y2 no aparece con x2,
e y3 no aparece con x1
70
2.4 Manip. de datos: Álgebra Relacional
Otras operaciones del Álgebra Relacional
• Algunas consultas comunes no pueden expresarse con las
operaciones estándar del Álgebra Relacional
– Ampliación de su poder expresivo con operaciones adicionales
– Incluidas en la mayoría de los lenguajes de consulta relacionales
comerciales
• Funciones de agregados
– Funciones matemáticas de agregados sobre colecciones de valores de
la base de datos
Valor medio del caché de todos los actores
Número de películas (almacenadas en la BD)
Máximo porcentaje de comisión de las distribuidoras de películas
Mínima recaudación en taquilla
Cantidad total pagada a los actores de cierta película
71
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Funciones de agregados
• Funciones aplicadas a un conjunto de tuplas
–
–
–
–
–
SUMA
PROMEDIO
MÁXIMO
MÍNIMO
CUENTA (número de tuplas en una relación)
• Agrupación de tuplas según valor de ciertos atributos
– Puede aplicarse una función agregada a cada grupo por separado
* Media del caché de los actores agrupados por agencias ¿Solución?
Agrupar actores según su agencia representante (valor de atributo agencia)
» Cada grupo incluye tuplas de actores representados por la misma agencia
Cálculo del caché medio de cada grupo (función PROMEDIO)
• El resultado es una relación
Tema 2. Modelo relacional de datos
R(agencia, PROMEDIO_caché)
72
2.4 Manip. de datos: Álgebra Relacional
Funciones de agregados (2)
AG1
a1 a4
a7
AG8
PROMEDIO_cache
Media del cache de a1... a10
a5 a6
a3
AG2
a10 a8
R agencia
R
ACTOR
AG8
a9
a2
AG3
PROMEDIO_cache
Media del cache de a9 y a2
AG3
Media del cache de a5, a6 y a3
AG1
Media del cache de a7, a1 y a4
AG2
Media del cache de a8 y a10
73
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Funciones de agregados (3)
<atributos de agrupación>
F <lista funciones>(<relación>)
•
<atributos de agrupación>
– Lista de nombres de atributos de <relación>
– Indican atributos con los que construir los grupos
– Puede estar vacía
la relación es un (único) grupo
• <lista funciones>
– Lista de pares <función> <atributo>
donde <función> ∈ {SUMA, PROMEDIO, MÁXIMO, MÍNIMO, CUENTA}
y <atributo> es uno de los atributos de <relación>
• Resultado: una relación R, tal que
Esquema: atributos de <atributos de agrupación> +
un atributo por cada elemento de <lista funciones>
Cuerpo: conjunto de tuplas tal que existe una por cada grupo
Tema 2. Modelo relacional de datos
74
2.4 Manip. de datos: Álgebra Relacional
Funciones de agregados (4)
• Ejemplos:
1. Códigos de Películas, número de actores en cada película y su paga media
R(codpeli, numActores, pagaMedia)← film F CUENTA actor,PROMEDIO paga(ACTUA_EN)
2. Códigos de agencias, número de actores en cada agencia y caché medio
R(codAg, numActores, cacheMedio)←agencia F CUENTA codA,PROMEDIO cache(ACTOR)
• Si no se indican nombres para los atributos de la relación
resultado R, dicha relación incluirá...
– un atributo por cada atributo incluido en <atributos de agrupación>,
con el mismo nombre, y
– un atributo por cada función incluida en <lista funciones>,
denominado FUNCIÓN_atributo
Los esquemas de las relaciones resultado de los ejemplos anteriores serían:
1. R(film,CUENTA_actor, PROMEDIO_paga)
2. R(agencia, CUENTA_codA, PROMEDIO_cache)
75
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Funciones de agregados (y 5)
• Si no se especifican atributos de agrupación
– Toda la relación es un único grupo
– Las funciones se aplican a todas las tuplas
– La relación resultado tendrá una sola tupla
* Número de películas y recaudación media
F CUENTA codP,PROMEDIO taquilla(PELICULA)
• El resultado de aplicar una función agregada siempre es
una relación, no un nº escalar, aunque tenga un único
valor
R
MAXIMO_taquilla
* Recaudación máxima obtenida
F MÁXIMO taquilla(PELICULA)
Tema 2. Modelo relacional de datos
232.850
76
2.4 Manip. de datos: Álgebra Relacional
Operaciones de cierre recursivo
• No pueden expresarse en el Álgebra Relacional
• Se aplican a una referencia recursiva entre tuplas del mismo
tipo (empleado y jefe en la relación EMPLEADO)
* Códigos de los empleados que tienen como superior a “e”, en todos los niveles
e
e11 e12 ... e1n
_________________Nivel 1
e21... e2 m ... ... ... e2p
_________________Nivel 2
e31... e3q ... e3r ... ... ... e3t _________________Nivel 3
etc.
...
77
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Operaciones de cierre recursivo (y 2)
• En Álgebra Relacional es sencillo especificar empleados
cuyo jefe es “e” en cierto nivel conocido, pero no en todos
los niveles
Ejemplo para el nivel 2: código de los empleados cuyo jefe directo es “e” o bien su jefe es
un empleado cuyo jefe es “e”
EMP_JEF(codE, codJ) ← ∏codemp, codjefe (EMPLEADO)
EMP_1(cod) ← ∏codE (σcodJ=“e” (EMP_JEF))
Empleados de nivel 1
EMP_2(cod) ← ∏codE (EMP_JEF
Empleados de nivel 2
codJ=cod (EMP_1))
RESULTADO ← EMP_1 ∪ EMP_2
Tema 2. Modelo relacional de datos
78
2.4 Manip. de datos: Álgebra Relacional
Reunión externa (Outer-join) entre relaciones
• Extensión de la operación REUNIÓN
• Permiten conservar todas las tuplas en A o B o ambas,
aunque...
– No tengan tuplas coincidentes
– Contengan nulos en los atributos de reunión
* Nombres de actores y de sus agencias representantes, si tienen
AGEN(codAg, nomAg, direccion,telefono) ← AGENCIA
TEMP ← (ACTOR
RESULTADO ←
agencia=codAg AGEN)
∏nombre, nomAg (TEMP)
79
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Reunión externa entre relaciones (2)
• REUNIÓN EXTERNA IZQUIERDA
R=A
B
– Conserva en R todas las tuplas de A
– Si no encuentra una tupla coincidente en B, cada atributo de R
(correspondiente a B) es NULO
• REUNIÓN EXTERNA DERECHA
R=A
B
– Conserva en R todas las tuplas de B
– Si no encuentra una tupla coincidente en A, cada atributo de R
(correspondiente a A) es NULO
• REUNIÓN EXTERNA COMPLETA
R=A
B
– Conserva en R todas las tuplas de A y de B
– Cuando no encuentra tuplas coincidentes, rellena con NULO
Tema 2. Modelo relacional de datos
80
2.4 Manip. de datos: Álgebra Relacional
Reunión externa entre relaciones (3)
ACTOR
... agencia ...
nomAc
AGENCIA codAg
nomAg
Carmelo Gómez
A23
A10
AgeRep
María Pujalte
A03
A30
ReprActors
Pere Ponce
A10
A03
ActorsMngr
Javier Bardem
NULL
A23
ARA
...
* Nombres de agencias y de los actores a los que representan, incluyendo...
1.- las agencias que no representan a ningún actor
R1= πnomAc, nomAg (ACTOR
agencia=codAg AGENCIA)
2.- los actores que no tienen agencia de representación
R2 = πnomAc, nomAg ( ACTOR
agencia=codAg AGENCIA
3.- tanto las agencias que no representan a ningún actor, como los actores que no
tienen agencia
R3 = πnomAc, nomAg ( ACTOR
agencia=codAg AGENCIA
81
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Álgebra Relacional
Reunión externa entre relaciones (y 4)
ACTOR
AGENCIA
nomAc
nomAg
Carmelo Gómez ARA
ACTOR
María Pujalte
ActorsMngr
Pere Ponce
AgeRep
NULL
ReprActors
AGENCIA
nomAc
nomAg
ACTOR
nomAc
AGENCIA
nomAg
Carmelo Gómez ARA
Carmelo Gómez ARA
María Pujalte
ActorsMngr
María Pujalte
ActorsMngr
Pere Ponce
AgeRep
Pere Ponce
AgeRep
Javier Bardem
NULL
Javier Bardem
NULL
NULL
ReprActors
Tema 2. Modelo relacional de datos
82
2.4 Manipulación de datos
2.4.2. Cálculo Relacional
• Lenguaje formal para BD Relacionales
• Basado en Cálculo de Predicados de Primer Orden (rama
de Lógica Matemática)
Cálculo Relacional
- Expresiones Declarativas
(lenguaje no procedimental)
vs.
Álgebra Relacional
- Secuencias de Operaciones
» Aunque se anidan para formar
» No se indica CÓMO evaluar la
una sola expresión, siempre se
consulta, sino QUÉ se desea
indica explícitamente cierto orden
obtener
de las operaciones
» Describe la información deseada
» Estrategia parcial de
sin dar un procedimiento
evaluación de la consulta
específico para obtenerla
(≈ lenguaje procedimental de
alto nivel )
Tema 2. Modelo relacional de datos
83
2.4 Manip. de datos: Cálculo Relacional
• Poder expresivo idéntico de álgebra y cálculo relacionales
Cualquier obtención de datos especificada en el Álgebra
Relacional puede expresarse en el Cálculo Relacional (restringido a
expresiones seguras) y viceversa
• Definición: Lenguaje Relacionalmente Completo
Lenguaje en el que es posible expresar cualquier consulta
que pueda especificarse en el Cálculo Relacional
– Cálculo Relacional como medida del poder selectivo de lenguajes
relacionales
• Formas de adaptar el Cálculo de Predicados de 1er Orden
para crear un Lenguaje de Consultas para BDR:
̶ Cálculo Relacional de Tuplas (CRT) –– Codd, 1972
̶ Cálculo Relacional de Dominios
–– Lacroix y Pirotte, 1977
Tema 2. Modelo relacional de datos
84
2.4 Manip. de datos: Cálculo Relacional
Expresiones de consulta
• CRT basado en la especificación de variables de tupla
• Toda variable de tupla «abarca» o recorre una relación
puede tomar como valor cualquier tupla de esa relación
{ t | COND(t) }
• Resultado: conjunto de tuplas t que satisfacen la condición COND(t)
• COND(t): expresión condicional en la que interviene la var. de tupla t
* Actores cuyo caché rebasa los 2.000€
{ t | ACTOR(t) and t.cache>2000 }
– ACTOR(t) indica que ACTOR es la Relación de Intervalo que t recorre
– t.cache
hace referencia al atributo caché de la variable de tupla t
Tema 2. Modelo relacional de datos
85
2.4 Manip. de datos: Cálculo Relacional
Expresiones de consulta (y 2)
• Obtención de algunos atributos de las tuplas seleccionadas
{ <lista atributos> | COND(t) }
• Ejemplos:
* Nombre y nacionalidad de los actores cuyo caché rebasa los 2.000€
{ t.nombre, t.nacionalidad | ACTOR(t) and t.cache>5000 }
* Fecha de nacimiento y nombre real del actor “Javier Bardem”
{ t.fechaNacim, t.nombreReal | ACTOR(t) and t.nombre = “Javier Bardem” }
Tema 2. Modelo relacional de datos
86
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista informal
Una expresión del Cálculo Relacional contiene:
• Para cada variable de tupla t, su relación de intervalo R:
R(t)
• Condición de selección de combinaciones de tuplas
Conforme las variables de tupla recorren sus relaciones, la condición
se evalúa para cada combinación de tuplas
Las combinaciones que dan TRUE se seleccionan para el resultado
• Lista de atributos solicitados
Se obtienen sus valores para cada combinación seleccionada
87
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal
• Expresión General
{ t1.a1, t2.a2, ... , tn.ap | COND(t1, t2, ..., tn, tn+1,tn+2,...tn+m) }
donde:
– t1, t2, ..., tn, tn+1, tn+2, ... tn+m
son variables de tupla
– ai es un atributo de la relación que tj recorre
– COND(..): fórmula (bien formada) del Cálculo Relacional de Tuplas
constituida por átomos del Cálculo de Predicados
Tema 2. Modelo relacional de datos
88
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal (2)
• Átomos
– R(ti) el intervalo de la variable de tupla ti es la relación R
– ti.a op tj.b ,, op ∈ { =, ≠, <, ≤, >, ≥ }
ti y tj variables de tupla
a atributo de la relación que ti abarca
b atributo de la relación que tj abarca
– ti.a op c ,, c op tj.b ,, op ∈ { =, ≠, <, ≤, >, ≥ }
ti y tj variables de tupla
a atributo de la relación que ti abarca
b atributo de la relación que tj abarca
c valor constante
Los átomos están ligados mediante operadores and, or, not y →
Tema 2. Modelo relacional de datos
89
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal (3)
• Valor lógico de un átomo
Evaluación del átomo para una combinación específica de tuplas
valor TRUE o FALSE
– R(ti)
TRUE si se asigna una tupla de R a ti
Si no, es FALSE
– ti.a op tj.b ,, ti.a op c ,, c op tj.b
TRUE si ti y tj se asignan a tuplas tales que los atributos
especificados (a y b) satisfacen la condición
Si no es así, será FALSE
Tema 2. Modelo relacional de datos
90
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal (4)
• Fórmula bien formada (fbf)
– Definición recursiva
D1. Todo átomo es una fórmula bien formada
R(ti) ,, ti.a op tj.b ,, ti.a op c ,, c op tj.b
D2. Si F1 y F2 son fbf, también lo son...
(F1 and F2), (F1 or F2), not(F1), not(F2) y (F1 → F2)
y los valores lógicos de estas fórmulas
se derivan de F1 y F2, según la Lógica Booleana
Nota: (F1 → F2) ≡ (not(F1) or F2)
continuará...
91
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal (5)
• Cuantificadores
– Universal ∀
– Existencial ∃
(∀t) (BANCO(t) and not(t.ciudad = ‘Londres’))
(∃t) (BANCO(t) and t.ciudad = ‘Amsterdam’)
• Variable de tupla libre y ligada en una fbf
1 informal
t está ligada si está cuantificada ( aparece en cláusulas (∀t) o (∃t) )
si no, está libre
Tema 2. Modelo relacional de datos
92
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal (6)
• Variable de tupla libre y ligada en una fbf
1 formal
– Si F ≡ átomo, cualquier ocurrencia de una variable de tupla t,
está libre
– En (F1 and F2), (F1 or F2), not(F1), not(F2) y (F1 → F2),
una ocurrencia de t está libre o ligada según lo esté en F1 o F2
– Toda ocurrencia libre de t en F está ligada en F’, si
F’=(∃t)F o bien F’=(∀t)F
y t estará ligada al cuantificador especificado en F’
F1 : d.nombre = “Carmelo Gómez”
F2 : (∃t) (d.agencia = t.codAg)
La variable de tupla d está libre en F1 y en F2
t está ligada al cuantificador ∃ en F2
Tema 2. Modelo relacional de datos
93
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal (7)
• Fórmula bien formada (continuación)
D3. Si F es una fbf, también lo es (∃t)F, donde t es una variable de
tupla
(∃t)F es TRUE si F es TRUE para al menos una tupla asignada
a ocurrencias libres de t en F
de lo contrario es FALSE
D4. Si F es una fbf, también lo es (∀t)F, donde t es una variable de
tupla
(∀t)F es TRUE si F es TRUE para toda tupla (en el universo)
asignada a ocurrencias libres de t en F
de lo contrario es FALSE
Tema 2. Modelo relacional de datos
94
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal (8)
• Fórmula bien formada (continuación)
– Si la fórmula es cerrada (toda variable ligada a cuantificadores),
entonces representa una expresión que será TRUE o FALSE
F3 : (∃a) (ACTOR(a) and a.nombre = “Javier Cámara”)
F4 : (∀p) (PELICULA(p) (∃d) (DIRECTOR(d) and d.coddir=p.director)
– Si la fórmula es abierta (tiene variables libres), entonces
representa una consulta cuya evaluación devolverá los valores
de sus variables libres que hacen TRUE la fórmula
F5 : ACTOR(a) and a.fechaNacim > 31/12/1971
sirve para preguntar por los actores/actrices que nacieron en 1972 o después
95
Tema 2. Modelo relacional de datos
2.4 Manip. de datos: Cálculo Relacional
Expresión del CRT: punto de vista formal (y 9)
• Expresión segura
– Su resultado es un número finito de tuplas
– Al usar cuantificadores (∃,∀) o negación (not), la expresión ha de tener
sentido: ser segura y no generar una relación infinita
E= {t | not(ACTOR(t))}
tuplas del universo que NO son de ACTOR
¡¡∞!!
• Dominio de una expresión del CRT
– Valores constantes en la expresión o que existen en cualquier
tupla de las relaciones a las que se referencia en la expresión
Dominio ( E={t | not(ACTOR(t))} )= todos los valores de atributos de tuplas ACTOR
Una expresión es segura si todo valor del resultado ∈ dominio
de la expresión
E es insegura, ya que el resultado incluye tuplas (y, por tanto, valores) que no están en
la relación ACTOR (es decir, que ∉ su dominio)
Tema 2. Modelo relacional de datos
96
Descargar