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

[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)
...

Tema 2. Modelo relacional de datos 3

1 Presentación y orígenes del MR • Introducido por Codd. 2. Modelo relacional de datos 4 . Integridad de Datos (características generales) 3. Manipulación de Datos Tema 2.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. 1970 • Es un Modelo de Datos Lógico . Estructura de Datos 2.

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

1997.Thriller.--- --. 2001.--.--. Wachowsky Ciencia-ficción 1999 EEUU 138 cardinalid Torrente S.Argentina. 1999. Drama. López Policiaco 2001 España 118 s Amelie J. Francia.. --. Comedia. Jeunet Comedia 2001 Francia 122 Los lunes al sol F.. 1972. P.. --.2 Estructura de datos relacional La relación Géneros Años Países PELICULA dominios Títulos Nombres Ciencia-ficción. 2..--.Japón. --.--.. Italia. 2002. Segura Comedia 1997 España 110 ad tupla Nos miran N. EEUU. González Drama 2000 México 145 The Matrix A. Tiempo --. --.--- nacionalida título director género rodaje duración d Amores Perros A. León Drama 2002 España 117 atributos grad o 6 Tema 2. Modelo relacional de datos . 1994. España.

Modelo relacional de datos 7 . entonces tR Fila concreto Debe tener un nombre Nombre de cabecera de Atributo único dentro de cada Campo de relación Columna registro Cardinalida nº de tuplas en una = d relación nº atributos en una Grado relación = colección de valores Dominio permitidos para ciertos = atributos Tema 2.2 Estructura de datos relacional Términos básicos Procesamiento Modelo Relacional de Ficheros Formal SQL-92 Relación Tabla Fichero Si la tupla t está en la Registro Tupla relación R. 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. 2. 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 Tema 2. – La comparación Modelo relacional de datosde dos atributos sólo tiene sentido si 8 .

. 2... sobre conjunto de dominios D1..2 Estructura de datos relacional Definiciones formales: RELACIÓN (1) Una relación R. Dn se compone de dos partes: • Esquema o Cabecera Conjunto de pares Atributo:Dominio { (A1:D1). Modelo relacional de datos 9 . (An:Dn) } – Cada Aj tiene asociado sólo un Dj – Los Di no tienen por qué ser distintos entre sí • Estado. (A2:D2) . D2 . Cuerpo o Instancia – Conjunto de tuplas que contiene en un instante concreto Tema 2.

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 Tema 2. (director:S. (director:A. director:Nombres. (estreno:1999) } .2 Estructura de datos relacional Definiciones formales: RELACIÓN (2) Un esquema de relación: PELICULA (titulo:Titulos. (duracion:110).. (duracion:138). 2. duracion:Tiempo. estreno:Fechas) Un estado de la relación: { { (titulo:Torrente). } • El estado de una relación es variable en el tiempo – nuevas tuplas. (estreno:1997) } { (titulo:The Matrix). Modelo relacional de datos 10 verá) ..Wachowski).Segura).

No existen tuplas repetidas estado = conjunto 2. Las tuplas no están ordenadasmatemático de tuplas 3. R está en 1FN Tema 2. 2. 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.2 Estructura de datos relacional Definiciones formales: RELACIÓN (3) • Propiedades de una Relación 1. Modelo relacional de datos 11 . Los atributos no están ordenados esquema = conjunto de pares Atributo:Dominio 4.

• Toda relación ha de estar en 1FN (estructura de datos simple) Tema 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. 2. Modelo relacional de datos 12 .

– Inconveniente  Aparente orden entre filas y entre columnas de la tabla Tema 2. 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. Modelo relacional de datos 13 . 2... razonar. entender.2 Estructura de datos relacional Definiciones formales: RELACIÓN (5) • Relación vs.

) Modelo relacional de datos 14 .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 Tema 2. 2.

duración:Tiempo ) ACTOR ( nombre:Nombres. nombreArtistico: Nombres. agente:Nombres.. Modelo relacional de datos 15 . nacionalidad:Países. – Esquema de base de datos  Descripción de la base de datos  Conjunto de esquemas de relación PELICULA ( titulo:Títulos. rodaje:Años.. género:Géneros.2 Estructura de datos relacional Definiciones formales: BD RELACIONAL (2) • En una BDR distinguimos. nacionalidad:Países.. cache:Dinero ) DIRECTOR ( nombre:Nombres. operaPrima:Títulos ) . director:Nombres. 2. – 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..

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

2. pero el Modelo Relacional incluye.. Modelo relacional de datos y Claves Ajenas necesarias en (o foráneas toda BD o externas) 17 . 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.3 Características generales de integridad de datos Reglas de integridad • Informan al SGBD de restricciones del mundo real • Así. características generales Claves Candidatas y Primarias de integridad importantes Tema 2..

2. A2:D2 ... Modelo relacional de datos 18 . 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..3 Características generales de integridad de datos Superclave y Clave de una relación Sea R una relación R(A1:D1 .

fecha. Modelo relacional de datos 19 . hora}. fecha. numVisita}. nombre. a) CK = {codCliente.3 Características generales de integridad de datos Superclave y Clave: Ejemplos • Claves como restricción de integridad CLIENTE (codCliente. numVisita. hora... ciudad.. hora} } Tema 2. historial. fecha. observ) Claves (VISITAMEDICA)={ {nssPaciente. ciudad} b) CK = {codCliente} …? • Varias claves en una relación «Relación para registrar las visitas de pacientes a sus médicos de familia. {nssPaciente. Un mismo paciente puede visitar a su médico varias veces en un mismo día» VISITAMEDICA (nssPaciente. {historial. telefono.) ¿Qué implicaciones tiene establecer como clave. numVisita}... medico. 2. {historial.

fechaNac}. 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. {nombreArtistico} } Claves (EMPLEADO) = { {dni}. AK) son el resto de claves candidatas Claves Alternativas (ACTOR) = {nombre} Claves Alternativas (EMPLEADO) = { {dni}. 2. {nombre.3 Características generales de integridad de datos Clave Candidata. Primaria y Alternativa • Si R tiene varias claves  Claves Candidatas Claves (ACTOR) = { {nombre}. {nss} } • La Clave Primaria (Primary Key. fechaNac} } Tema 2. {nombre. Modelo relacional de datos 20 .

2. tal que: 1..) • EMPLEADO (codEmp.. duración.... y 2. . jefe.. isbn. año. autor. nombre. Existe otra relación R1 con clave primaria PK . Modelo relacional de datos 21 . nss.. .3 Características generales de integridad de datos Clave Ajena (Externa o Foránea) • Conjunto de atributos FK de una relación R2. edición. género. . director. . nacionalidad. editorial..) • LIBRO (título.) Tema 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.) DIRECTOR (nombre.

– Eliminación de la Redundancia: Integridad entre ficheros – Mecanismo del Modelo Relacional de datos para establecer VÍNCULOS ENTRE RELACIONES Tema 2. . dirección.. fecha.. nombre...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. Modelo relacional de datos 22 ..) VISITA (nss. . numVisita.. fechaApert.) HISTORIAL (nss. 2. especialidad. especialidad. ..) • Clave Ajena Simple o Compuesta • El uso de Claves Ajenas facilita..

3 Características generales de integridad de datos Clave Ajena (Externa o Foránea) (3) CUENTA número saldo .. Tema 2. 3 Murcia 821 Azorín. CLIENTE nombre dirección ciudad cuenta Vínculo García. 6 Murcia 200 Cliente-Cuenta López. 2. Cada cliente sólo puede tener una . B Ronda Norte. 2 Valencia 505 .. A Gran Vía.. 821 50000 .. cuenta a su nombre. C Paseo Nuevo. Modelo relacional de datos 23 .. 9 Valencia 505 Pérez. 200 35000 Una cuenta puede tener más de 505 40000 un cliente como titular. C Plaza Mayor.

2. debe referirse a una tupla FK existente en esa relación ARTICULO ESCRITOR   Puede existir algún valor de PK al que NO haga referencia ningún valor de la FK – ESCRITOR Tema 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. Modelo quedeno relacional haya datos escrito artículos: ninguna tupla de 24 .

... 2. jefe Tema 2....... EMPL codEmp .. EDITORIAL nombre dirección .. dep DEPTO codDep . dire • Ciclo Referencial – Camino que empieza y acaba en la misma relación – Caso especial: AutorreferenciaEMPLEADO codEmp ... editorial ARTICULO título tema autor revista pág .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 .. Modelo relacional de datos 25 . ESCRITOR dni nombre .

. dejan la BD en un estado incorrecto Ejemplo de un Hotel: – ¿Qué pasaría si se eliminara la tupla (501. . Modelo relacional de datos 26 ... D.. D. – ¿Y si se anotara la ocupación de la habitación 900? CLI04 100 115 I CLI02 420 420 I CLI05 115 100 D CLI10 100 304 D 405 I 501 D Tema 2..3 Características generales de integridad de datos Mantenimiento de la Integridad Referencial • Las operaciones que no satisfacen –violan– la Integridad Referencial..) en HABITACIÓN? – ¿Y si se eliminara la tupla (100... . HABITACIÓN numHabit tipo . 2.)? OCUPACIÓN codClie habit .

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. 2.  Rechazar toda operación que pueda provocar un estado ilegal. Modelo relacional de datos 27 . o  Aceptar (y ejecutar) tales operaciones.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 la operación (acción por defecto) Sólo permite borrar t si ninguna otra tupla hace referencia at 2. 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. . Propagar la eliminación 1º Borrar todas las tuplas de R2 que referencian a t 2º Eliminar t 3.. Modelo relacional de datos 28 . Establecer nulos – (* se verá después *) Tema 2. Cascada.) de HABITACIÓN Acciones posibles: 1. D.

420..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: Modificar (CLI02.) a (CLI02. Modelo relacional de datos 29 .. Rechazar la operación (SIEMPRE)  Intento de violación de la restricción de Integridad Referencial Tema 2.. 900..) en OCUPACIÓN Acción: 1... 2.

) a (130. 3.3 Características generales de integridad de datos Mantenimiento de la Integridad Referencial Operación: (5) 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.Modificar el valor de la clave primaria de t Tema 2... 2. Cascada.) en HABITACIÓN Acciones posibles: 1.. Establecer Modelo nulos relacional de datos – (* se verá después *) 30 . D... D.Toda tupla de R2 que referencia a t seguirá haciendolo: modificar su valor de FK al nuevo valor de la PK de t .. Propagar la modificación . Rechazar la operación (acción por defecto) Sólo permite modificar la PK de t si ninguna tupla referencia a t 2.

. 555. Modelo relacional de datos 31 . 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.) en OCUPACIÓN Acciones posibles: ..Rechazar la operación (SIEMPRE)  Intento de violación de la restricción de Integridad Referencial Tema 2. .

Acción de Eliminación en Cascada R3  R2.Eliminar una tupla de R1  eliminar tuplas de R2 que la referencian .Pero existen tuplas en R3 que referencian esas tuplas de R2. 2. 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” Tema 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 X . Modelo relacional de datos 32 . ¿cómo afecta la Acción de Eliminación X en esta operación?  Si X = en CASCADA...

. 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  Norelacional Tema 2. Modelo hay dos nulos de datos iguales (num_telefono NULL  edad NULL) 33 ..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. 2.

depto... jefe. Modelo relacional de datos 34 . nombre. nss.) ¿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. 2. telefono.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.

2. cada valor de FK en R2 a) es NULO. 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.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. 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 Tema 2. En todo momento. de clave Modelo ajena relacional de datossin correspondencia 35 .

Cascada. Rechazar la operación (acción por defecto) 2. 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 . 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. Modelo relacionalla de tupla datos t 36 .Eliminar Tema 2. Propagar la eliminación 3.

Propagar la modificación 3. Establecer nulos  Sólo si la FK de R2 permite NULO . Rechazar la operación (acción por defecto) 2.Toda tupla de R2 que referencia a t pasa a contener NULL en FK . Cascada. 2.Modificar el valor de la PK de t Tema 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. Modelo relacional de datos 37 .

2. el SGBD se encarga de. El valor de la clave ajena en cualquier tupla. 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 • .. Modelo relacional de datos 38 . • 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.. o es nulo..3 Características generales de integridad de datos Resumiendo. y mantenerla frente operaciones que puedan violar la Tema integridad 2....

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

titulo:TITULOS. nacionalidad:PAISES. estreno:FECHA. cif:NIF. nacionalidad:PAISES. nombre:NOMBRES. fechaNacim:FECHA. nombre:NOMBRES. nomReal:NOMBRES. fechaFin:FECHA. paga:DINERO) Tema 2. film:CODPEL. nacio:PAISES. nomAutorPpal:NOMBRES. Modelo relacional de datos 40 . cache:DINERO) AGENCIA (codAg:CODAGE. titulo: TITULOS. ultTrabajo:CODPEL) GUION (codG:CODGUI. directorFotog:CODDIR. apellidos:APELLIDOS. fechaNacim:FECHA. operaPrima:CODPEL) DIREC_FOTOG (codDF:CODDIR. numOscar:enteros(2). guion:CODGUI. direccion:DOMICILIO.Esquema “PRODUCTORA” PELICULA (codP:CODPEL. telefono:TELEFONOS) ACTUA_EN (actor:CODACT. apellidos:APELLIDOS. sexo:SEXOS. taquilla:DINERO) DIRECTOR (codDir:CODDIR. direccion:DOMICILIO. director:CODDIR. fechaNacim:FECHA. agencia:CODAGE. distrib:CODDIS. genero:GENEROS. año:AÑO. telefono:TELEFONOS. resumen: TEXTO. nombre:NOMBRES. nacio:PAISES. nombre:NOMBRES. porcentaje:PORCENT) ACTOR (codA:CODACT. fechaEntrega:FECHA) DISTRIBUIDORA (codDis:CODDIS. papel:TIPO_PAPEL. nombre:NOMBRES.

4. y NO conjuntos arbitrarios  operaciones adaptadas a relaciones (tipo especial de conjuntos) – Operadores relacionales especiales  restricción Tema 2.1. 2. 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. Álgebra Relacional • Definida por Codd.4 Manipulación de datos 2. Modelo 41  relacional proyecciónde datos .

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
tiporelacional
Tema 2. Modelo en susdeoperandos
datos 44

es una relación tal que: Esquema: el de R (o S) Estado: conjunto de tuplas que están en R. 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: Tema 2. Modelo DIRECTOR relacional  de datos DIR_FOTOG 45 . con R y S compatibles en tipo. 2. en S o en ambas  Las tuplas repetidas se eliminan (por definición) Intersección de Ejemplo: DIRECTOR  relaciones DIR_FOTOG RS. con R y S compatibles en tipo. de datos: Álgebra Relacional Unión de relaciones RS.4 Manip.

es una relación tal que: Esquema: el de R (o S) Estado: conjunto de tuplas que están en R. con R y S compatibles en tipo. T relaciones de tipos compatibles. Modelo relacional de R A datos 46 . de datos: Álgebra Relacional Diferencia entre relaciones R―S. – Única expresión: expresiones anidadas R  ( S  T ) – Varias expresiones: relaciones intermedias con nombre AS T B Tema 2.4 Manip. pero NO en S  operación con «cierta direccionalidad». como la resta Secuencias aritmética de operaciones • La Ejemplo: DIRECTORde propiedad ― DIR_FOTOG clausura relacional permite aplicar una operación tras otra Sean R. 2. S.

de datos: Álgebra Relacional Renombramiento de atributos • Por defecto. 2. Modelo relacional de datos 47 . 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.fechaNac.4 Manip.nacDir.nomDir.pelic)  DIRECTOR  DIR_FOTOG Tema 2.apeDir.

4 Manip.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. 2. A  B = { (a. 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 .  es posible el producto cartesiano entre relaciones R y S • R  S = { (tR. de datos: Álgebra Relacional Producto Cartesiano entre relaciones • En matemáticas.b) / aA y bB } • Relación = conjunto de tuplas.

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 49 (JOIN Tema 2. Modelo relacional ) de datos . con R y S cualesquiera.4 Manip. 2. de datos: Álgebra Relacional Producto Cartesiano entre relaciones (2) • R  S.

4 Manip.. en la tabla resultado RESULTADO(codA. nomreal. telefono)  AGENCIA RESULTADO  ACTOR  AGENCIA_2 2..) Tema 2. AGENCIA..nombre. ACTOR.... 2. . antes del producto AGENCIA_2(codAge. direccion.nombre. Renombrar atributos de una relación. Prefijar atributos con el nombre de su tabla. 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. Modelo  ACTORdedatos relacional AGENCIA 50 . nomAge. codAg. R  S tendría ¡dos atributos nombrados igual!  ko! ACTOR  AGENCIA  “colisión” de nombres en atributo “nombre” • Soluciones posibles: 1.

de datos: Álgebra Relacional Propiedades de los operadores relacionales R.4 Manip. Modelo relacional de datos . pero sí el 51 Tema 2. 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  • Conmutativa RS SR RS SR RS SR  • La diferencia no cumple ninguna de estas propiedades  El producto cartesiano “normal” no las cumple. 2. S.

. .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. 2. >. Modelo relacional de datos . } • <cte> valor constante  dominio del atributo <nomAtrib> 52 Tema 2. del tipo: <nomAtrib> <opComp> <cte> o bien <nomAtrib> <opComp> <nomAtrib> • <opComp> operador de comparación  {=.

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. 2.4 Manip.000€ (agencia=2 AND cache<25000) OR (agencia=4 AND cache>35000) (ACTOR) Tema 2. cuyo cache no llega  a los 22. Modelo relacional de datos 53 . o bien por la agencia 4 y con caché superior a 32.000€.

Modelo relacional de datos . 2. 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) 54 Tema 2. 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>.4 Manip. sustituyendo cada atributo por su valor en la tupla – Si <condición> es TRUE.

AND condn(R) Tema 2.( cond1 cond2 condn (R)). Modelo relacional de datos 55 . 2. 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:  ( (..4 Manip......))  cond1 AND cond2 AND.

Modelo relacional de datos 56 . 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. nombre y el caché de todos los actores Tema 2.4 Manip. 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. 2.

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. 2.4 Manip. 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 .

lista1 ( lista2 (R) ) = lista1 (R) Tema 2..4 Manip. siempre que lista1  lista2. Modelo relacional de datos 58 . entonces. 2.. 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.

4 Manip. Modelo relacional de datos 59 . 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. con la tupla DIRECTOR. 2. p. 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 Tema 2. d.

Modelo relacional de datos 60 . apellido. nombre. genero. nacio. directorFotog. de datos: Álgebra Relacional Reunión o Join entre dos relaciones (2) PELICULA ( codP. año. título.4 Manip. taquilla ) DIRECTOR ( codDir. nacio.apellido (PELICULA director=codDir DIRECTOR ) R2 titulo nombre apellido La caja 507 Enrique Urbizu Mensaka Salvador Gª Ruiz El viaje de Carol Imanol Uribe Airbag Juanma Bajo Ulloa Tema 2. numOscar. fechaNacim. guión.nombre. ó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. 2. director. distrib. estreno.

a2. Producto Cartesiano Tema 2. a2.... an.. b2. . bm) Esquema: unión de las cabeceras de A y B Estado: conjunto de tuplas..4 Manip. b1. . una por cada combinación de tuplas (una de A y otra de B) que satisface <condición de reunión> • Reunión vs. 2. de datos: Álgebra Relacional Reunión o Join entre dos relaciones (3) • Forma General para relaciones A(a1. . an) y B(b1.. .–Modelo En elrelacional Producto Cartesiano aparecen todas las de datos 61 . b2... bm): A B <condición de reunión> • Resultado: Relación con n+m atributos (a1.

>.   (theta) cumple que   {=. · Dominio(ai) = Dominio(bj). y · ai es un atributo de A. . 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 AyB – Evaluada para cada combinación (par) de tuplas: Si la cumplen. 2.4 Manip. bj es un atributo de B. <. .. } Tema 2. AND <condición> donde: <condición> tiene la forma ai  bj (condición de reunión general). Modelo relacional de datos 62 .. forman una nueva tupla de la relación resultado – Es de la forma: <condición> AND <condición> AND.

nomAg. Prefijar atributos con el nombre de su tabla Tema 2. Modelo R ACTOR.AGENCIA. nomAg (ACTOR agencia=codAg AGENC) 2.nombre relacional de datos (ACTOR agencia=codAg AGENCIA) 63 . 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.nombre. 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. dirAg. 2. Previo renombramiento de atributos de una relación AGENC(codAg.4 Manip. tel)  AGENCIA R nombre.

4 Manip. Modelo relacional de datos 64 . no aparecen en ninguna tupla de la tabla ACTUA_EN – Sus tuplas no aparecen en ACTOR codA=actor ACTUA_EN Tema 2. tampoco aparecen en la relación resultado – Los actores que no han actuado en ninguna película. de datos: Álgebra Relacional Reunión o Join entre dos relaciones (6) • Las tuplas cuyos atributos de reunión son nulos. 2. 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.

entonces – Relación Resultado = Relación vacía (cero tuplas) • Si NO se especifica <condición de reunión>. CARTESIANO  REUNIÓN CRUZADA) Tema 2.4 Manip. 2. sea A con nA tuplas y B con nB tuplas. entonces – la <condición de reunión> es TRUE para todas las tuplas. de datos: Álgebra Relacional Reunión o Join entre dos relaciones (y 7) • En general. 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>. Modelo relacional de datos 65 . y –  (REUNIÓN  PROD.

.. quizá el más importante • No «necesita» especificar condición de reunión. aplicar antes un renombramiento de atributos –  deben tener el mismo dominio 66 Tema 2. • . Modelo relacional de datos .4 Manip. 2. pues... de datos: Álgebra Relacional Reunión natural entre relaciones  AB • Caso particular de reunión. 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í.

b. Modelo relacional de datos 67 . de datos: Álgebra Relacional Reunión natural entre relaciones (2) R(a. c.b=S. tiene el esquema T2 ( a.b d 10 1 100 1 -5 20 3 100 3 -4 T2 a b c d T2  R  S. 2.b. d ) T1 a R. c) R a b c S b d S(b. d ) 10 1 100 -5 20 3 100 -4 Tema 2. c.b S. tiene el esquema T1 ( a.b c S. b. R.b. d) 10 1 100 3 -4 20 3 100 1 -5 30 5 300 T1  R R. S.4 Manip.

nombre. apellidos. Título de todas las películas junto con el título y resumen de su guión GUIO(guion. fechaFin. operaPrima)  DIRECTOR PELI_DIRE  titulo. titGuion. Modelo relacional de datos 68 . titGuion. apellidos (PELICULA  DIREC) 3. resumen (PELICULA  GUIO) 2. nomAutorPpal. telefono)  AGENCIA ACT_AGEN  nombre. nomAg (ACTOR  AGENC) ¿A qué se debe el renombramiento en cada caso? Tema 2.4 Manip. Títulos de películas junto con el nombre y apellidos de su director DIREC(director. direccion. fechaNacim. de datos: Álgebra Relacional Reunión natural entre relaciones (y 3) • Ejemplos: 1. 2. resumen. nomAg. fechaEntrega)  GUION RESUMEN  titulo. Nombre de actores y de las agencias que los representan AGENC(agencia. nacio. nombre.

. ... b2. ai2. . an.. bjm ) de B • Poco común. b1. .. bjm) para TODAS las tuplas (bj1. .bm) • A B es una relación tal que: Esquema: Relación con los atributos no comunes R( a1. an ) Estado: Conjunto de tuplas { (ai1... b2.. .. ain) } tal que existe en A una tupla (ai1. bj2.. 2. Ú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.. a2. ain. bm) y B(b1. . bj2... de datos: Álgebra Relacional División entre relaciones  Sean las relaciones A(a1.4 Manip.. ai2. bj1.. los Tema 2. .. a2.. Modelo relacional de datos 69 .

Modelo relacional de datos 70 . no aparecen con todas las tuplas de B y no son seleccionadas: y2 no aparece con x2. e y3 no aparece con x1 Tema 2. de datos: Álgebra Relacional División entre relaciones (y 2) y1. por eso están en el resultado R=AB El resto de valores de y en A. 2.4 Manip. y4 aparecen en A en combinación con las 3 tuplas de B.

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 Tema 2. 2.4 Manip. Modelo relacional de datos 71 .

4 Manip. Modelo relacional de datos R(agencia. 2. 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. 72 .

4 Manip. a10 a9 a1 a4 a2 a5 a6 a7 AG2 a3 AG3 a10 a8 R agencia PROMEDIO_cache AG8 Media del cache de a9 y a2 AG3 Media del cache de a5.. de datos: Álgebra Relacional Funciones de agregados (2) R PROMEDIO_cache ACTOR AG1 AG8 Media del cache de a1.. a6 y a3 AG1 Media del cache de a7. a1 y a4 AG2 Media del cache de a8 y a10 Tema 2. Modelo relacional de datos 73 . 2.

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. Modelo relacional de datos 74 . CUENTA} y <atributo> es uno de los atributos de <relación> • Resultado: una relación R. MÍNIMO. 2.4 Manip. 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. MÁXIMO. PROMEDIO.

denominado FUNCIÓN_atributo Los esquemas de las relaciones resultado de los ejemplos anteriores serían: 1. relacional de datos PROMEDIO_cache) 75 . pagaMedia) film F CUENTA actor. número de actores en cada película y su paga media R(codpeli. PROMEDIO_paga) Tema 2. – un atributo por cada atributo incluido en <atributos de agrupación>.4 Manip. 2. 2. R(film. dicha relación incluirá. Códigos de agencias. con el mismo nombre. y – un atributo por cada función incluida en <lista funciones>.. Códigos de Películas. R(agencia. cacheMedio)agencia F CUENTA codA.CUENTA_actor.PROMEDIO cache(ACTOR) • Si no se indican nombres para los atributos de la relación resultado R.PROMEDIO paga(ACTUA_EN) 2. Modelo CUENTA_codA. numActores. de datos: Álgebra Relacional Funciones de agregados (4) • Ejemplos: 1.. numActores. número de actores en cada agencia y caché medio R(codAg.

aunque tenga un único valor R MAXIMO_taquilla * Recaudación máxima obtenida 232. 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. 2.PROMEDIO taquilla(PELICULA) • El resultado de aplicar una función agregada siempre es una relación.4 Manip. Modelo relacional de datos 76 .850 F MÁXIMO taquilla(PELICULA) Tema 2. no un nº escalar.

. 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”.... e3t_________________Nivel 3 . e2p _________________Nivel 2 e31.4 Manip. .......... e1n _________________Nivel 1 e21. e3q . . ... e3r .. e2 m . en todos los niveles e e11 e12 . Modelo relacional de datos 77 . . 2. etc.. Tema 2......

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 Tema 2. 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.4 Manip. 2. Modelo relacional de datos 78 . codJ)  codemp.

.telefono)  AGENCIA TEMP  (ACTOR agencia=codAg AGEN) RESULTADO  nombre. 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. Modelo relacional de datos 79 . 2. si tienen AGEN(codAg. – No tengan tuplas coincidentes – Contengan nulos en los atributos de reunión * Nombres de actores y de sus agencias representantes. nomAg. aunque. nomAg (TEMP) Tema 2. direccion.4 Manip..

4 Manip. 2. rellena con NULO Tema 2. 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. Modelo relacional de datos 80 . 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. 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.

. AGENCIA codAg nomAg .las agencias que no representan a ningún actor  R1= nomAc. incluyendo.. 1. de datos: Álgebra Relacional Reunión externa entre relaciones (3) ACTOR nomAc ..4 Manip..tanto las agencias que no representan a ningún actor.....los actores que no tienen agencia de representación  R2 = nomAc. como los actores que no tienen agencia  R3 = nomAc.. nomAg (ACTOR agencia=codAg AGENCIA) 2. nomAg ( ACTOR agencia=codAg AGENCIA 3. Modelo relacional de datos 81 ... nomAg ( ACTOR agencia=codAg AGENCIA Tema 2. 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. 2. agencia .

2. Modelo relacional de datos 82 .4 Manip. de datos: Álgebra Relacional Reunión externa entre relaciones (y 4) ACTOR AGENCIA nomAc nomAg Carmelo Gómez ARA María Pujalte ActorsMngr Pere Ponce AgeRep ACTOR AGENCIA NULL ReprActors nomAc nomAg ACTOR AGENCIA nomAc 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.

4. 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 vs. sino QUÉ se desea siempre se indica obtener explícitamente cierto orden » Describe la información de las operaciones deseada sin dar un » Estrategia parcial de procedimiento específico evaluación de la consulta para obtenerla ( lenguaje procedimental de alto nivel ) Tema 2. Modelo relacional de datos 83 . Álgebra Relacional . 2.2. consulta.Secuencias de Operaciones (lenguaje no procedimental) » Aunque se anidan para » No se indica CÓMO evaluar la formar una sola expresión.4 Manipulación de datos 2.Expresiones Declarativas .

2. 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: 84 ̶ Modelo relacional de datos Tema 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. Modelo relacional de datos 85 . 2.000€ Tema 2.4 Manip. de tupla t * Actores cuyo caché rebasa los 2.

nombreReal | ACTOR(t) and t.fechaNacim. 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.nacionalidad | ACTOR(t) and t.4 Manip. Modelo relacional de datos 86 .nombre.000€ { t. t.nombre = “Javier Bardem” } Tema 2. 2. t.cache>5000 } * Fecha de nacimiento y nombre real del actor “Javier Bardem” { t.

4 Manip. 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 Tema 2. Modelo relacional de datos 87 . 2. 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.

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
 89
Tema 2. Modelo relacional de datos

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

(F1 and F2). ti... también lo son.a op c . Si F1 y F2 son fbf. Tema 2.b . Todo átomo es una fórmula bien formada R(ti) . not(F2) y (F1  F2) y los valores lógicos de estas fórmulas se derivan de F1 y F2.b D2.. (F1 or F2)..a op tj. ti. Modelo relacional de datos 91 .. not(F1).4 Manip. 2. c op tj. de datos: Cálculo Relacional Expresión del CRT: punto de vista formal (4) • Fórmula bien formada (fbf) – Definición recursiva D1... según la Lógica Booleana Nota: (F1  F2)  (not(F1) or F2) continuará.

está libre Tema 2.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. 2. de datos: Cálculo Relacional Expresión del CRT: punto de vista formal (5) • Cuantificadores – Universal  ( t) (BANCO(t) and not(t.4 Manip. Modelo relacional de datos 92 .

de datos: Cálculo Relacional Expresión del CRT: punto de vista formal (6) • Variable de tupla libre y ligada en una fbf  formal – Si F  átomo. 2. si F’=(t)F o bien F’=(t)F y t estará ligada al cuantificador especificado en F’ F1 : d. not(F1).codAg) La variable de tupla d está libre en F1 y en F2 t está ligada al cuantificador  en F2 93 Tema 2. 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’.nombre = “Carmelo Gómez” F2 : (t) (d. está libre – En (F1 and F2). cualquier ocurrencia de una variable de tupla t.4 Manip.agencia = t. Modelo relacional de datos . not(F2) y (F1  F2). (F1 or F2).

Si F es una fbf. Modelo relacional de datos 94 . 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. de datos: Cálculo Relacional Expresión del CRT: punto de vista formal (7) • Fórmula bien formada (continuación) D3. 2. Si F es una fbf. también lo es (t)F. también lo es (t)F.4 Manip. 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.

2. entonces representa una expresión que será TRUE o FALSE F3 : (a) (ACTOR(a) and a.fechaNacim > 31/12/1971 sirve para preguntar por los actores/actrices que nacieron en 1972 o después Tema 2.director) – Si la fórmula es abierta (tiene variables libres). 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). Modelo relacional de datos 95 .4 Manip.coddir=p. 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.nombre = “Javier Cámara”) F4 : (p) (PELICULA(p)  (d) (DIRECTOR(d) and d.

2. Modelo ya que relacional deel resultado incluye tuplas (y.) o negación (not). 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 (. 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 TemaE2.es 96 insegura. por tanto.4 Manip. valores) que no están en datos .