1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los...

96
1 Tema 2. Modelo relacional de datos 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

Transcript of 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los...

Page 1: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

1Tema 2. Modelo relacional de datos

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

Page 2: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

2Tema 2. Modelo relacional de datos

2. Modelo relacional de datos

Contenidos2.1 Presentación y orígenes del modelo relacional2.2 Estructura de datos relacional2.3 Características generales de integridad de

datos2.4 Manipulación de datos: lenguajes relacionales

2.4.1 Álgebra relacional2.4.2 Cálculo relacional de tuplas2.4.3 SQL-92

Page 3: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

3Tema 2. Modelo relacional de datos

2. Modelo relacional de datos

Bibliografía

[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] Date, C.J.: Introducción a los sistemas de bases de datos. 7ª Edición. Prentice-Hall. (Cap. 3 al 9)

[SKS 1998] Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de datos. 3ª Edición. McGraw-Hill. (Cap. 3 y 4)

...

Page 4: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

4Tema 2. Modelo relacional de datos

• 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

2.1 Presentación y orígenes del MR

Page 5: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

5Tema 2. Modelo relacional de datos

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

2.2 Estructura de datos relacional

Page 6: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

6Tema 2. Modelo relacional de datos

2.2 Estructura de datos relacional

título director género rodajenacionalida

dduración

Amores Perros A. González Drama 2000 México 145

The Matrix 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

tuplas

card

inalid

ad

grado

atributos

La relación PELICULA

--- ------ ---

Ciencia-ficción,Drama,Thriller,

Comedia... --- ------ ---

2002, 1997, 1999, 2001,

1994, 1972...

Italia,Argentina, España, EEUU, Francia,Japón..

--- ------ ---

dom

inio

s

Títulos Nombres

Géneros Años Países

Tiempo

Page 7: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

7Tema 2. Modelo relacional de datos

Términos básicos

2.2 Estructura de datos relacional

Modelo Relacional Procesamiento de Ficheros

Formal SQL-92

Relación Tabla Fichero

Tupla Si la tupla t está en la relación R, entonces tR Fila

Registro concreto

AtributoDebe tener un nombre único dentro de cada relación

cabecera de Columna

Nombre deCampo de registro

Cardinalidad

nº de tuplas en una relación

=

Grado nº atributos en una relación

=

Dominiocolección de valores permitidos para ciertos atributos

=

Page 8: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

8Tema 2. Modelo relacional de datos

• 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

Definiciones formales: DOMINIO

2.2 Estructura de datos relacional

Page 9: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

9Tema 2. Modelo relacional de datos

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

Definiciones formales: RELACIÓN (1)

2.2 Estructura de datos relacional

Page 10: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

10Tema 2. Modelo relacional de datos

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á)

Definiciones formales: RELACIÓN (2)

2.2 Estructura de datos relacional

Page 11: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

11Tema 2. Modelo relacional de datos

• Propiedades de una Relación

1. No existen tuplas repetidas

2. Las tuplas no están ordenadas

3. Los atributos no están ordenadosesquema = conjunto de pares Atributo:Dominio

4. Los valores de atributos son Atómicosdominio = 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

estado = conjunto matemático de tuplas

Definiciones formales: RELACIÓN (3)

2.2 Estructura de datos relacional

Page 12: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

12Tema 2. Modelo relacional de datos

• FORMAS NORMALESR 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)

Definiciones formales: RELACIÓN (4)

2.2 Estructura de datos relacional

Page 13: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

13Tema 2. Modelo relacional de datos

• 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

Definiciones formales: RELACIÓN (5)

2.2 Estructura de datos relacional

Page 14: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

14Tema 2. Modelo relacional de datos

• 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)

Definiciones formales: BD RELACIONAL (1)

2.2 Estructura de datos relacional

Page 15: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

15Tema 2. Modelo relacional de datos

• 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

Definiciones formales: BD RELACIONAL (2)

2.2 Estructura de datos relacional

Page 16: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

16Tema 2. Modelo relacional 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

minimundo2 personas distintas con el mismo DNIUn empleado sin NSSUn alumno con -29 añosUna película sin director

Definición de la BD (esquema) necesita incluir

REGLAS DE INTEGRIDAD

2.3 Características generales deintegridad de datos

Page 17: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

17Tema 2. Modelo relacional de datos

Claves Candidatas y PrimariasClaves Ajenas (o foráneas o externas)

• 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 elModelo Relacional incluye...

características generales de integridad importantes y necesarias en toda BD

2.3 Características generales deintegridad de datos

Reglas de integridad

Page 18: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

18Tema 2. Modelo relacional de datos

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

2.3 Características generales deintegridad de datos

Superclave y Clave de una relación

Page 19: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

19Tema 2. Modelo relacional de datos

• Claves como restricción de integridadCLIENTE (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} }

2.3 Características generales deintegridad de datos

Superclave y Clave: Ejemplos

Page 20: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

20Tema 2. Modelo relacional de datos

• Si R tiene varias claves Claves CandidatasClaves (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 RClave Primaria (ACTOR) = {nombreArtistico}Clave Primaria (EMPLEADO) = {nss}

• Las Claves Alternativas (Alternative Keys, AK) son el resto de claves candidatasClaves Alternativas (ACTOR) = {nombre}Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} }

2.3 Características generales deintegridad de datos

Clave Candidata, Primaria y Alternativa

Page 21: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

21Tema 2. Modelo relacional de datos

• Conjunto de atributos FK de una relación R2, tal que:1. Existe otra relación R1 con clave primaria PK , y2. 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, ...)

2.3 Características generales deintegridad de datos

Clave Ajena (Externa o Foránea)

Page 22: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

22Tema 2. Modelo relacional de datos

• 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

2.3 Características generales deintegridad de datos

Clave Ajena (Externa o Foránea) (2)

Page 23: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

23Tema 2. Modelo relacional de datos

CLIENTE

CUENTA

2.3 Características generales deintegridad de datos

Clave Ajena (Externa o Foránea) (3)

nombre 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 Valencia 505

...

número saldo ...

200 35000

505 40000

821 50000

...

Cada cliente sólo puede tener una cuenta a su nombre.Una cuenta puede tener más de un cliente como titular.

Vínculo Cliente-Cuenta

Page 24: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

24Tema 2. Modelo relacional de datos

• Restricción de Integridad ReferencialTodo 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

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

2.3 Características generales deintegridad de datos

Clave Ajena (Externa o Foránea) (4)

ESCRITORARTICULO FK

Page 25: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

25Tema 2. Modelo relacional de datos

• Diagrama Referencial– Expresión de la existencia de Claves Ajenas

• Camino Referencial

2.3 Características generales deintegridad de datos

Clave Ajena (Externa o Foránea) (y 5)

ESCRITOR dni nombre ... editorial

LIBRO título isbn autor editorial ...

ARTICULO título tema autor revista pág ...

EDITORIAL nombre dirección ...

• Ciclo Referencial– Camino que empieza y acaba en la misma relación– Caso especial: AutorreferenciaEMPLEADO codEmp ... jefe

EMPL codEmp ... dep DEPTO codDep ... dire

Page 26: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

26Tema 2. Modelo relacional de datos

• Las operaciones que no satisfacen –violan– la Integridad Referencial, dejan la BD en un estado incorrectoEjemplo 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?

2.3 Características generales deintegridad de datos

Mantenimiento de la Integridad Referencial

OCUPACIÓN codClie habit ...

CLI04 100

CLI02 420

CLI05 115

CLI10 100

HABITACIÓN numHabit tipo ...

115 I

420 I

100 D

304 D

405 I

501 D

Page 27: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

27Tema 2. Modelo relacional de datos

• ¿Cómo evita el SGBD esos estados incorrectos?El SGBD puede...Rechazar toda operación que pueda provocar un estado

ilegal, oAceptar (y ejecutar) tales operaciones, pero

realizar acciones que restauren la integridad de los datos

Diseñador de la BD puede especificar al SGBDAcciones de Mantenimientode la Integridad Referencial

para que la BD SIEMPRE alcance un estado final legal

2.3 Características generales deintegridad de datos

Mantenimiento de la Integridad Referencial (2)

Page 28: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

28Tema 2. Modelo relacional de datos

R2 R1Operación: Eliminar una tupla t de R1 que es

referenciada por otras de R2Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIÓNAcciones 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 *)

2.3 Características generales deintegridad de datos

Mantenimiento de la Integridad Referencial (3)

Page 29: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

29Tema 2. Modelo relacional de datos

R2 R1Operación: Modificar el valor de una FK a un valor

no existente en la PK de R1Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en

OCUPACIÓNAcción:

1. Rechazar la operación (SIEMPRE)

Intento de violación de la restricción de Integridad Referencial

2.3 Características generales deintegridad de datos

Mantenimiento de la Integridad Referencial (4)

Page 30: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

30Tema 2. Modelo relacional de datos

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 *)

2.3 Características generales deintegridad de datos

Mantenimiento de la Integridad Referencial (5)

Page 31: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

31Tema 2. Modelo relacional de datos

R2 R1Operació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ÓNAcciones posibles:

- Rechazar la operación (SIEMPRE)

Intento de violación de la restricción de Integridad Referencial

2.3 Características generales deintegridad de datos

Mantenimiento de la Integridad Referencial (6)

Page 32: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

32Tema 2. Modelo relacional de datos

• Encadenamiento de eliminaciones (análogo para Modificación)

R2 R1, Acción de Eliminación en CascadaR3 R2, Acción de Eliminación XX- 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 XX en esta operación? Si X X = en CASCADA, no-problemo! eliminar esas tuplas

de R3 Si X 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 DEPARTAMENTOASIGNATURA TITULACIÓN UNIVERSIDAD

2.3 Características generales deintegridad de datos

Mantenimiento de la Integridad Referencial (y 7)

R3 R2 R1

Page 33: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

33Tema 2. Modelo relacional de datos

• 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)

2.3 Características generales deintegridad de datos

Nulos

Page 34: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

34Tema 2. Modelo relacional de datos

• Nulo y Claves Primarias

Restricción de Integridad de Entidad:Ningún atributo componente de unaclave 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 nulocomo valor de clave ajena

depto = null empleados no asignados a ningún departamentojefe = null empleados sin jefe

2.3 Características generales deintegridad de datos

Implicaciones de los nulos en la integridad

Page 35: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

35Tema 2. Modelo relacional de datos

• Hemos de extender la definición de clave ajenaSea 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 ReferencialLa Base de Datos no debe contener valores no

nulosde clave ajena sin correspondencia

2.3 Características generales deintegridad de datos

Implicaciones de los nulos en la integridad (2)

Page 36: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

36Tema 2. Modelo relacional de datos

• Hay que extender algunas acciones de mantenimiento de la Integridad Referencial:

R2 R1Operación: Eliminar una tupla t de R1 que es

referenciada por otras de R2Acciones posibles:

1. Rechazar la operación (acción por defecto)

2. Cascada. Propagar la eliminación

3. Establecer nulos

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

2.3 Características generales deintegridad de datos

Implicaciones de los nulos en la integridad (3)

Page 37: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

37Tema 2. Modelo relacional de datos

R2 R1Operació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

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

2.3 Características generales deintegridad de datos

Implicaciones de los nulos en la integridad (y 4)

Page 38: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

38Tema 2. Modelo relacional de datos

• 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 entidadNingú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

2.3 Características generales deintegridad de datos

Resumiendo, el SGBD se encarga de...

Page 39: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

39Tema 2. Modelo relacional de datos

Dominio Definición del DominioCODPEL enteros(3)CODGUI enteros(3)CODDIR enteros(3)CODDIS enteros(2)CODACT enteros(4)CODAGE enteros(2)SEXOS { M, F }TEXTO cadena caracteres variable (500)PORCENT enteros (2)DINERO enteros(9)NIF cadena caracteres fija (12)TITULOS cadena caracteres variable (120)GENEROS {comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie}PAISES {españa,francia,gran_bretaña,eeuu,australia,alemania,la_india,argentina}AÑOS AÑOFECHAS FECHANOMBRES cadena caracteres variable (35)APELLIDOS cadena caracteres variable (80)DOMICILIOS cadena caracteres variable (50)TELEFONOS cadena caracteres variable (15)TIPO_PAPEL {protagonista, secundario, reparto, figuracion}

Page 40: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

40Tema 2. Modelo relacional de datos

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)

Page 41: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

41Tema 2. Modelo relacional de datos

• 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

2.4 Manipulación de datos2.4.1. Álgebra Relacional

Page 42: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

42Tema 2. Modelo relacional de datos

El resultado de cualquier operación del álgebrarelacional es otra relación

la salida de una operación puede ser entrada (operando) de otra

Expresiones AnidadasSus operandos son otras expresiones del

álgebra(en lugar de nombres de relación)

2.4 Manip. de datos: Álgebra RelacionalClausura relacional

Page 43: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

43Tema 2. Modelo relacional de datos

• En matemáticas, AB = { e / eA y-o eB }• Relación = conjunto de tuplas

es posible hacer la unión de dos relaciones R y S• RS = { t / tR y-o tS }

– 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

2.4 Manip. de datos: Álgebra RelacionalCompatibilidad de tipos (o con la unión)

Page 44: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

44Tema 2. Modelo relacional de datos

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) = n2. 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

2.4 Manip. de datos: Álgebra RelacionalCompatibilidad de tipos (y 2)

Page 45: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

45Tema 2. Modelo relacional de datos

RS, 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

2.4 Manip. de datos: Álgebra RelacionalUnión de relaciones

RS, 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

Intersección de relaciones

Page 46: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

46Tema 2. Modelo relacional de datos

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

2.4 Manip. de datos: Álgebra RelacionalDiferencia entre relaciones

• La propiedad de clausura relacional permite aplicar una operación tras otraSean R, S, T relaciones de tipos compatibles,

– Única expresión: expresiones anidadas R ( S T )

– Varias expresiones: relaciones intermedias con nombre

A S TB R A

Secuencias de operaciones

Page 47: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

47Tema 2. Modelo relacional de datos

2.4 Manip. de datos: Álgebra Relacional

• 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_FOTOGLos 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

Renombramiento de atributos

Page 48: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

48Tema 2. Modelo relacional de datos

• En matemáticas, A B = { (a,b) / aA y bB }• Relación = conjunto de tuplas,

es posible el producto cartesiano entre relaciones R y S

• R S = { (tR,tS) / tRR y tSS }– 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 resultantede la combinación de las dos tuplas origen

2.4 Manip. de datos: Álgebra RelacionalProducto Cartesiano entre relaciones

Page 49: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

49Tema 2. Modelo relacional de datos

• R S, con R y S cualesquiera, es una relación tal que:Esquema: combinación (unión) de los esquemas de R y SEstado: conjunto de todas las tuplas formadas por las

posibles

combinaciones de cada tupla de R con cada tupla de S

Ejemplo: PELICULA DIRECTORObtiene 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)

2.4 Manip. de datos: Álgebra RelacionalProducto Cartesiano entre relaciones (2)

Page 50: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

50Tema 2. Modelo relacional de datos

• 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) AGENCIARESULTADO 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

2.4 Manip. de datos: Álgebra RelacionalProducto Cartesiano entre relaciones (y 3)

Page 51: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

51Tema 2. Modelo relacional de datos

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

• ConmutativaR S S RR S S RR S S R

• La diferencia no cumple ninguna de estas propiedades

El producto cartesiano “normal” no las cumple, pero sí el “ampliado”

2.4 Manip. de datos: Álgebra RelacionalPropiedades de los operadores relacionales

Page 52: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

52Tema 2. Modelo relacional de datos

• Obtener un subconjunto de las tuplas de una relaciónpara 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

2.4 Manip. de datos: Álgebra RelacionalRestricción de una relación

Page 53: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

53Tema 2. Modelo relacional de datos

• 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)

2.4 Manip. de datos: Álgebra RelacionalRestricción de una relación (2)

Page 54: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

54Tema 2. Modelo relacional de datos

• 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)

2.4 Manip. de datos: Álgebra RelacionalRestricción de una relación (3)

Page 55: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

55Tema 2. Modelo relacional de datos

• La operación restricción es conmutativa

cond1 ( cond2 (R) ) cond2 (cond1 (R) )

Esto permite …̶gSecuencia de restricciones (selecciones) en cualquier

orden̶gCombinació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)

2.4 Manip. de datos: Álgebra RelacionalRestricción de una relación (y 4)

Page 56: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

56Tema 2. Modelo relacional de datos

• 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 actorescodA, nombre, cache(ACTOR)

2.4 Manip. de datos: Álgebra RelacionalProyección de una relación

Page 57: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

57Tema 2. Modelo relacional de datos

• 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

2.4 Manip. de datos: Álgebra RelacionalProyección de una relación (2)

Page 58: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

58Tema 2. Modelo relacional de datos

• 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)

2.4 Manip. de datos: Álgebra RelacionalProyección de una relación (y 3)

Page 59: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

59Tema 2. Modelo relacional de datos

• Combina las tuplas relacionadas de dos relacionesen 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

2.4 Manip. de datos: Álgebra RelacionalReunión o Join entre dos relaciones

Page 60: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

60Tema 2. Modelo relacional de datos

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

R2titulo,nombre,apellido (PELICULA director=codDir DIRECTOR)

2.4 Manip. de datos: Álgebra RelacionalReunión o Join entre dos relaciones (2)

R2 titulo nombre apellido

La caja 507 Enrique Urbizu

Mensaka Salvador Gª Ruiz

El viaje de Carol Imanol Uribe

Airbag Juanma Bajo Ulloa

Page 61: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

61Tema 2. Modelo relacional de datos

• 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

2.4 Manip. de datos: Álgebra RelacionalReunión o Join entre dos relaciones (3)

Page 62: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

62Tema 2. Modelo relacional de datos

• <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

2.4 Manip. de datos: Álgebra RelacionalReunión o Join entre dos relaciones (4)

Page 63: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

63Tema 2. Modelo relacional de datos

• 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 representanACTOR 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ónAGENC(codAg, nomAg, dirAg, tel) AGENCIAR nombre, nomAg (ACTOR agencia=codAg AGENC)

2. Prefijar atributos con el nombre de su tablaR ACTOR.nombre,AGENCIA.nombre(ACTOR agencia=codAg AGENCIA)

2.4 Manip. de datos: Álgebra RelacionalReunión o Join entre dos relaciones (5)

Page 64: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

64Tema 2. Modelo relacional de datos

• 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 codA=actor ACTUA_EN

2.4 Manip. de datos: Álgebra RelacionalReunión o Join entre dos relaciones (6)

Page 65: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

65Tema 2. Modelo relacional de datos

• 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)

2.4 Manip. de datos: Álgebra RelacionalReunión o Join entre dos relaciones (y 7)

Page 66: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

66Tema 2. Modelo relacional de datos

AB• 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

– deben tener el mismo dominio

2.4 Manip. de datos: Álgebra RelacionalReunión natural entre relaciones

Page 67: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

67Tema 2. Modelo relacional de datos

R(a, b, c) S(b, d)

T1 R R.b=S.b S, tiene el esquema T1 ( a, R.b, c, S.b, d )

T2 R S, tiene el esquema T2 ( a, b, c, d )

2.4 Manip. de datos: Álgebra RelacionalReunión natural entre relaciones (2)

S b d

3 -4

1 -5

T1 a R.b c S.b d

10 1 100 1 -5

20 3 100 3 -4

R a b c

10 1 100

20 3 100

30 5 300

T2 a b c d

10 1 100 -5

20 3 100 -4

Page 68: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

68Tema 2. Modelo relacional de datos

• 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 directorDIREC(director, nombre, apellidos, nacio, fechaNacim, operaPrima) DIRECTOR

PELI_DIRE titulo, nombre, apellidos (PELICULA DIREC)

3. Nombre de actores y de las agencias que los representanAGENC(agencia, nomAg, direccion, telefono) AGENCIA

ACT_AGEN nombre, nomAg (ACTOR AGENC)

¿A qué se debe el renombramiento en cada caso?

2.4 Manip. de datos: Álgebra RelacionalReunión natural entre relaciones (y 3)

Page 69: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

69Tema 2. Modelo relacional de datos

Sean las relaciones A(a1, a2, ... an, b1, b2, ... bm) y B(b1, b2, ...bm)• AB 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 ocasionalesNombres 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

2.4 Manip. de datos: Álgebra RelacionalDivisión entre relaciones

Page 70: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

70Tema 2. Modelo relacional de datos

y1, y4 aparecen en A en combinación con las 3 tuplas de B, por eso

están en el resultado R = A BEl 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

A a b y1 x1 y1 x2 y1 x3 y1 x4 y2 x1 y2 x3 y3 x2 y3 x3 y3 x4 y4 x1 y4 x2 y4 x3

B b x1 x2 x3

R a y1 y4

2.4 Manip. de datos: Álgebra RelacionalDivisión entre relaciones (y 2)

Page 71: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

71Tema 2. Modelo relacional de datos

• 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

2.4 Manip. de datos: Álgebra RelacionalOtras operaciones del Álgebra Relacional

Page 72: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

72Tema 2. Modelo relacional de datos

• 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 R(agencia, PROMEDIO_caché)

2.4 Manip. de datos: Álgebra RelacionalFunciones de agregados

Page 73: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

73Tema 2. Modelo relacional de datos

2.4 Manip. de datos: Álgebra RelacionalFunciones de agregados (2)

ACTOR

a1

a10

a2

a3a4

a9a5

a8a7

a6

AG1

AG2AG3

AG8

R agencia PROMEDIO_cache

AG8 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

R PROMEDIO_cache

Media del cache de a1... a10

Page 74: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

74Tema 2. Modelo relacional de datos

<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 queEsquema: 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

2.4 Manip. de datos: Álgebra RelacionalFunciones de agregados (3)

Page 75: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

75Tema 2. Modelo relacional de datos

• 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)

2.4 Manip. de datos: Álgebra RelacionalFunciones de agregados (4)

Page 76: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

76Tema 2. Modelo relacional de datos

• 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* Recaudación máxima obtenida

F MÁXIMO taquilla(PELICULA)

2.4 Manip. de datos: Álgebra RelacionalFunciones de agregados (y 5)

R MAXIMO_taquilla

232.850

Page 77: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

77Tema 2. Modelo relacional de datos

• 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

_________________Nivel 1

_________________Nivel 2

_________________Nivel 3

etc.

e

e11 e12 ... e1n

e21... e2 m ... ... ... e2p

e31... e3q ... e3r ... ... ... e3t

...

2.4 Manip. de datos: Álgebra RelacionalOperaciones de cierre recursivo

Page 78: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

78Tema 2. Modelo relacional de datos

• 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 codJ=cod (EMP_1)) Empleados de nivel 2

RESULTADO EMP_1 EMP_2

2.4 Manip. de datos: Álgebra RelacionalOperaciones de cierre recursivo (y 2)

Page 79: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

79Tema 2. Modelo relacional de datos

• 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 tienenAGEN(codAg, nomAg, direccion,telefono) AGENCIA

TEMP (ACTOR agencia=codAg AGEN)

RESULTADO nombre, nomAg (TEMP)

2.4 Manip. de datos: Álgebra RelacionalReunión externa (Outer-join) entre relaciones

Page 80: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

80Tema 2. Modelo relacional de datos

• 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

2.4 Manip. de datos: Álgebra RelacionalReunión externa entre relaciones (2)

Page 81: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

81Tema 2. Modelo relacional de datos

* 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ónR2 = 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

2.4 Manip. de datos: Álgebra RelacionalReunión externa entre relaciones (3)

ACTOR nomAc ... agencia ...

Carmelo Gómez A23

María Pujalte A03

Pere Ponce A10

Javier Bardem NULL

AGENCIA codAg nomAg ...

A10 AgeRep

A30 ReprActors

A03 ActorsMngr

A23 ARA

Page 82: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

82Tema 2. Modelo relacional de datos

2.4 Manip. de datos: Álgebra RelacionalReunión externa entre relaciones (y 4)

ACTOR AGENCIA nomAc nomAg

Carmelo Gómez ARA

María Pujalte ActorsMngr

Pere Ponce AgeRep

NULL ReprActors

ACTOR AGENCIA nomAc nomAg

Carmelo Gómez ARA

María Pujalte ActorsMngr

Pere Ponce AgeRep

Javier Bardem NULL

ACTOR AGENCIA

nomAc nomAg

Carmelo Gómez ARA

María Pujalte ActorsMngr

Pere Ponce AgeRep

Javier Bardem NULL

NULL ReprActors

Page 83: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

83Tema 2. Modelo relacional de datos

• Lenguaje formal para BD Relacionales• Basado en Cálculo de Predicados de Primer Orden

(rama de Lógica Matemática)

2.4 Manipulación de datos2.4.2. Cálculo Relacional

Cálculo Relacional vs. Álgebra Relacional- Expresiones Declarativas

(lenguaje no procedimental)- Secuencias de Operaciones

» No se indica CÓMO evaluar la consulta, sino QUÉ se desea obtener

» Describe la información deseada sin dar un procedimiento específico para obtenerla

» Aunque se anidan para formar una sola expresión, siempre se indica explícitamente cierto orden de las operaciones

» Estrategia parcial de evaluación de la consulta ( lenguaje procedimental de alto nivel )

Page 84: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

84Tema 2. Modelo relacional de datos

• 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 CompletoLenguaje 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 Ordenpara crear un Lenguaje de Consultas para BDR:

g̶Cálculo Relacional de Tuplas (CRT) –– Codd, 1972

g̶Cálculo Relacional de Dominios –– Lacroix y Pirotte, 1977

2.4 Manip. de datos: Cálculo Relacional

Page 85: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

85Tema 2. Modelo relacional de datos

• 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

2.4 Manip. de datos: Cálculo RelacionalExpresiones de consulta

Page 86: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

86Tema 2. Modelo relacional de datos

• 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” }

2.4 Manip. de datos: Cálculo RelacionalExpresiones de consulta (y 2)

Page 87: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

87Tema 2. Modelo relacional de datos

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 tuplasConforme 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 solicitadosSe obtienen sus valores para cada combinación

seleccionada

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista informal

Page 88: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

88Tema 2. Modelo relacional de datos

• 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

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal

Page 89: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

89Tema 2. Modelo relacional de datos

• Á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

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal (2)

Page 90: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

90Tema 2. Modelo relacional de datos

• Valor lógico de un átomoEvaluació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

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal (3)

Page 91: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

91Tema 2. Modelo relacional de datos

• 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 BooleanaNota: (F1 F2) (not(F1) or F2)

continuará...

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal (4)

Page 92: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

92Tema 2. Modelo relacional de datos

• Cuantificadores– Universal (t) (BANCO(t) and not(t.ciudad = ‘Londres’))– Existencial (t) (BANCO(t) and t.ciudad =

‘Amsterdam’)

• Variable de tupla libre y ligada en una fbf informal

t está ligada si está cuantificada ( aparece en cláusulas (t) o (t) )si no, está libre

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal (5)

Page 93: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

93Tema 2. Modelo relacional de datos

• Variable de tupla libre y ligada en una fbf 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 F2t está ligada al cuantificador en F2

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal (6)

Page 94: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

94Tema 2. Modelo relacional de datos

• 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

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal (7)

Page 95: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

95Tema 2. Modelo relacional de datos

• 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/1971sirve para preguntar por los actores/actrices que nacieron en 1972 o después

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal (8)

Page 96: 1 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal.

96Tema 2. Modelo relacional de datos

• 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ónE 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)

2.4 Manip. de datos: Cálculo RelacionalExpresión del CRT: punto de vista formal (y 9)