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 problemtica asociada a la modificacin de datos a travs de vistas Conocer los lenguajes formales lgebra relacional y clculo relacional de tuplas, as como el lenguaje relacional estndar SQL-92 2 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Contenidos 2.1 Presentacin y orgenes del modelo relacional 2.2 Estructura de datos relacional 2.3 Caractersticas generales de integridad de datos 2.4 Manipulacin de datos: lenguajes relacionales 2.4.1 lgebra relacional 2.4.2 Clculo relacional de tuplas 2.4.3 SQL-92 3 Tema 2. Modelo relacional de datos 2. Modelo relacional de datos Bibliografa
[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de Datos. 3 Edicin. Addison-Wesley. (Cap. 7, 8 y 9) [EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos fundamentales. 2 Edicin. Addison-Wesley Iberoamericana. (Cap. 6 y 7) [D 2001] Date, C.J.: Introduccin a los sistemas de bases de datos. 7 Edicin. Prentice-Hall. (Cap. 3 al 9) [SKS 1998] Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de datos. 3 Edicin. McGraw-Hill. (Cap. 3 y 4) ... 4 Tema 2. Modelo relacional de datos Introducido por Codd, 1970 Es un Modelo de Datos Lgico - de Representacin - (basado en registros) El modelo ms usado en las aplicaciones comerciales de procesamiento de datos convencional Dividido en 3 partes: 1. Estructura de Datos 2. Integridad de Datos (caractersticas generales) 3. Manipulacin de Datos 2.1 Presentacin y orgenes del MR 5 Tema 2. Modelo relacional de datos Base de Datos = Conjunto de Relaciones Relacin Estructura de datos fundamental del modelo Tiene un nombre y representa una entidad genrica 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 Teora matemtica Analoga entre Relacin (concepto matemtico) y Tabla Teora de Conjuntos y Lgica de Predicados de 1 er orden Slida Base Formal 2.2 Estructura de datos relacional 6 Tema 2. Modelo relacional de datos 2.2 Estructura de datos relacional ttulo director gnero rodaje nacionalidad duracin Amores Perros A. Gonzlez Drama 2000 Mxico 145 The Matrix A. Wachowsky Ciencia-ficcin 1999 EEUU 138 Torrente S. Segura Comedia 1997 Espaa 110 Nos miran N. Lpez Policiaco 2001 Espaa 118 Amelie J. P. Jeunet Comedia 2001 Francia 122 Los lunes al sol F. Len Drama 2002 Espaa 117 tuplas c a r d i n a l i d a d
grado atributos La relacin PELICULA --- --- --- --- Ciencia-ficcin, Drama,Thriller, Comedia... --- --- --- --- 2002, 1997, 1999, 2001, 1994, 1972... Italia,Argentina, Espaa, EEUU, Francia,Japn.. --- --- --- --- d o m i n i o s
Ttulos Nombres Gneros Aos Pases Tiempo 7 Tema 2. Modelo relacional de datos Trminos bsicos 2.2 Estructura de datos relacional Modelo Relacional Procesamiento de Ficheros Formal SQL-92 Relacin Tabla Fichero Tupla Si la tupla t est en la relacin R, entonces teR Fila Registro concreto Atributo Debe tener un nombre nico dentro de cada relacin cabecera de Columna Nombre de Campo de registro Cardinalidad n de tuplas en una relacin = Grado n atributos en una relacin = Dominio coleccin de valores permitidos para ciertos atributos = 8 Tema 2. Modelo relacional de datos Conjunto de valores atmicos del mismo tipo, donde toman su valor los atributos
La definicin de dominios forma parte de la definicin 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 ningn atributo {valores de A} _ Dominio(A)
Comparaciones Restringidas a Dominio La comparacin de dos atributos slo 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 9 Tema 2. Modelo relacional de datos Una relacin R, sobre conjunto de dominios D 1 , D 2 ... D n
se compone de dos partes:
Esquema o Cabecera Conjunto de pares Atributo:Dominio { (A 1 :D 1 ), (A 2 :D 2 ) ... (A n :D n ) } Cada A j tiene asociado slo un D j Los D i 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 { { (A 1 :v i1 ), (A 2 :v i2 ) ... (A n :v in ) } }, donde i=1..m Definiciones formales: RELACIN (1) 2.2 Estructura de datos relacional 10 Tema 2. Modelo relacional de datos Un esquema de relacin: PELICULA (titulo:Titulos, duracion:Tiempo, director:Nombres, estreno:Fechas)
Un estado de la relacin: { { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) } { (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) } ... }
El estado de una relacin es variable en el tiempo nuevas tuplas, modificacin 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: RELACIN (2) 2.2 Estructura de datos relacional 11 Tema 2. Modelo relacional de datos Propiedades de una Relacin 1. No existen tuplas repetidas 2. Las tuplas no estn ordenadas 3. Los atributos no estn ordenados esquema = conjunto de pares Atributo:Dominio 4. Los valores de atributos son Atmicos dominio = conjunto de valores atmicos Interseccin fila/columna = un solo valor (no lista de valores) Si R cumple esta propiedad, R est en 1FN estado = conjunto matemtico de tuplas Definiciones formales: RELACIN (3) 2.2 Estructura de datos relacional 12 Tema 2. Modelo relacional de datos FORMAS NORMALES R est en <determinada> FN si cumple <cierto> conjunto de condiciones o restricciones necesarias para estar bien diseada de acuerdo con el modelo relacional de datos.
Toda relacin ha de estar en 1FN (estructura de datos simple)
Definiciones formales: RELACIN (4) 2.2 Estructura de datos relacional 13 Tema 2. Modelo relacional de datos Relacin vs. Tabla Relacin: Representacin abstracta de un elemento de datos Tabla: Representacin concreta de tal elemento abstracto
Ventajas Representacin muy sencilla (tabla) del elemento abstracto bsico (relacin) del Modelo Relacional Fcil de utilizar, entender, razonar... Inconveniente Aparente orden entre filas y entre columnas de la tabla Definiciones formales: RELACIN (5) 2.2 Estructura de datos relacional 14 Tema 2. Modelo relacional de datos Percibida por usuarios como una coleccin de relaciones de diversos grados (n de atributos) que varan con el tiempo (n de tuplas, estado) Las relaciones (tablas) son la estructura lgica de la BD Niveles externo y conceptual ANSI/X3/SPARC Toda BDR cumple el Principio de Informacin: Todo contenido de informacin de la BD est representado de una y slo una forma: como valores explcitos dentro de posiciones de columnas dentro de filas dentro de tablas Conexin lgica entre Relaciones (vnculo o interrelacin) Representada mediante valores No existen punteros (visibles al usuario) Definiciones formales: BD RELACIONAL (1) 2.2 Estructura de datos relacional 15 Tema 2. Modelo relacional de datos En una BDR distinguimos... Esquema de base de datos Descripcin de la base de datos Conjunto de esquemas de relacin
PELICULA ( titulo:Ttulos, director:Nombres, gnero:Gneros, rodaje:Aos, nacionalidad:Pases, duracin:Tiempo ) ACTOR ( nombre:Nombres, nombreArtistico: Nombres, agente:Nombres, cache:Dinero ) DIRECTOR ( nombre:Nombres, nacionalidad:Pases, operaPrima:Ttulos ) ... Estado o instancia de base de datos Visin del contenido de la base de datos en cierto instante Conjunto de estados de relacin Definiciones formales: BD RELACIONAL (2) 2.2 Estructura de datos relacional 16 Tema 2. Modelo relacional de datos Todo estado de BD refleja la realidad es un modelo de una porcin del mundo real (minimundo) Algunas configuraciones de valores NO tienen SENTIDO pues no representan ningn estado posible del minimundo 2 personas distintas con el mismo DNI Un empleado sin NSS Un alumno con -29 aos Una pelcula sin director
= Definicin de la BD (esquema) necesita incluir REGLAS DE INTEGRIDAD 2.3 Caractersticas generales de integridad de datos 17 Tema 2. Modelo relacional de datos Claves Candidatas y Primarias Claves Ajenas (o forneas 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 varan con el tiempo Son especficas de cada BD particular, pero el Modelo Relacional incluye... caractersticas generales de integridad importantes y necesarias en toda BD 2.3 Caractersticas generales de integridad de datos Reglas de integridad 18 Tema 2. Modelo relacional de datos Sea R una relacin R(A 1 :D 1 , A 2 :D 2 ,... A n :D n ) Una superclave de R es un subconjunto SK de atributos tal que cumple la restriccin de Unicidad: No existen dos tuplas distintas con la misma combinacin de valores para SK Una clave de R es una superclave tal que cumple la restriccin de Irreductibilidad: Ningn subconjunto de CK cumple la r. Unicidad
Clave Simple (1 atributo) o Compuesta (varios atributos) Cada clave es una restriccin de integridad 2.3 Caractersticas generales de integridad de datos Superclave y Clave de una relacin 19 Tema 2. Modelo relacional de datos Claves como restriccin de integridad CLIENTE (codCliente, nombre, ciudad, telefono,...) Qu implicaciones tiene establecer como clave... a) CK = {codCliente, ciudad} b) CK = {codCliente} ?
Varias claves en una relacin Relacin para registrar las visitas de pacientes a sus mdicos de familia. Un mismo paciente puede visitar a su mdico varias veces en un mismo da VISITAMEDICA (nssPaciente, historial, fecha, hora, numVisita, medico, observ) Claves (VISITAMEDICA)={ {nssPaciente, numVisita}, {nssPaciente, fecha, hora}, {historial, numVisita}, {historial, fecha, hora} } 2.3 Caractersticas generales de integridad de datos Superclave y Clave: Ejemplos 20 Tema 2. Modelo relacional de datos Si R tiene varias claves = Claves Candidatas Claves (ACTOR) = { {nombre}, {nombreArtistico} } Claves (EMPLEADO) = { {dni}, {nombre, fechaNac}, {nss} }
La Clave Primaria (Primary Key, PK ) es la clave candidata elegida para identificar las tuplas de R Clave Primaria (ACTOR) = {nombreArtistico} Clave Primaria (EMPLEADO) = {nss} Las Claves Alternativas (Alternative Keys, AK) son el resto de claves candidatas Claves Alternativas (ACTOR) = {nombre} Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} } 2.3 Caractersticas generales de integridad de datos Clave Candidata, Primaria y Alternativa 21 Tema 2. Modelo relacional de datos Conjunto de atributos FK de una relacin R2, tal que: 1. Existe otra relacin R1 con clave primaria PK , y 2. Cada valor de FK en R2 es idntico al de PK en alguna tupla de R1 Conjunto de atributos de una relacin que hace referencia a la clave primaria de otra relacin (o la misma)
PELICULA (ttulo, gnero, duracin, director, ...) DIRECTOR (nombre, nacionalidad, ...)
EMPLEADO (codEmp, nombre, jefe, nss, ...)
LIBRO (ttulo, isbn, autor, editorial, edicin, ao, ...) ESCRITOR (dni, nombre, ...) ARTICULO (ttulo, tema, autor, revista, pgina, ...) 2.3 Caractersticas generales de integridad de datos Clave Ajena (Externa o Fornea) 22 Tema 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, direccin, ...) HISTORIAL (nss, especialidad, fechaApert, ...) VISITA (nss, especialidad, numVisita, fecha, ...)
Clave Ajena Simple o Compuesta El uso de Claves Ajenas facilita... Eliminacin de la Redundancia: Integridad entre ficheros Mecanismo del Modelo Relacional de datos para establecer VNCULOS ENTRE RELACIONES
2.3 Caractersticas generales de integridad de datos Clave Ajena (Externa o Fornea) (2) 23 Tema 2. Modelo relacional de datos CLIENTE CUENTA 2.3 Caractersticas generales de integridad de datos Clave Ajena (Externa o Fornea) (3) nombre direccin ciudad cuenta Garca, A Gran Va, 6 Murcia 200 Lpez, B Ronda Norte, 3 Murcia 821 Azorn, C Paseo Nuevo, 9 Valencia 505 Prez, C Plaza Mayor, 2 Valencia 505 ... nmero saldo ... 200 35000 505 40000 821 50000 ... Cada cliente slo puede tener una cuenta a su nombre. Una cuenta puede tener ms de un cliente como titular. Vnculo Cliente- Cuenta 24 Tema 2. Modelo relacional de datos Restriccin 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 relacin hace referencia a otra relacin, debe referirse a una tupla existente en esa relacin
Puede existir algn valor de PK al que NO haga referencia ningn valor de la FK ESCRITOR que no haya escrito artculos: ninguna tupla de ARTICULO har referencia a la tupla correspondiente a dicho escritor 2.3 Caractersticas generales de integridad de datos Clave Ajena (Externa o Fornea) (4) ESCRITOR ARTICULO FK 25 Tema 2. Modelo relacional de datos Diagrama Referencial Expresin de la existencia de Claves Ajenas Camino Referencial 2.3 Caractersticas generales de integridad de datos Clave Ajena (Externa o Fornea) (y 5) ESCRITOR dni nombre ... editorial LIBRO ttulo isbn autor editorial ... ARTICULO ttulo tema autor revista pg ... EDITORIAL nombre direccin ... Ciclo Referencial Camino que empieza y acaba en la misma relacin Caso especial: Autorreferencia EMPLEADO codEmp ... jefe EMPL codEmp ... dep DEPTO codDep ... dire 26 Tema 2. Modelo relacional de datos Las operaciones que no satisfacen violan la Integridad Referencial, dejan la BD en un estado incorrecto Ejemplo de un Hotel: Qu pasara si se eliminara la tupla (501, D, ...) en HABITACIN? Y si se eliminara la tupla (100, D, ...)? Y si se anotara la ocupacin de la habitacin 900? 2.3 Caractersticas generales de integridad de datos Mantenimiento de la Integridad Referencial OCUPACIN codClie habit ... CLI04 100 CLI02 420 CLI05 115 CLI10 100 HABITACIN numHabit tipo ... 115 I 420 I 100 D 304 D 405 I 501 D 27 Tema 2. Modelo relacional de datos Cmo evita el SGBD esos estados incorrectos? El SGBD puede... O Rechazar toda operacin que pueda provocar un estado ilegal, o O Aceptar (y ejecutar) tales operaciones, pero realizar acciones que restauren la integridad de los datos
Diseador de la BD puede especificar al SGBD Acciones de Mantenimiento de la Integridad Referencial para que la BD SIEMPRE alcance un estado final legal 2.3 Caractersticas generales de integridad de datos Mantenimiento de la Integridad Referencial (2) 28 Tema 2. Modelo relacional de datos R2 R1 Operacin: Eliminar una tupla t de R1 que es referenciada por otras de R2 Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIN Acciones posibles: 1. Rechazar la operacin (accin por defecto) Slo permite borrar t si ninguna otra tupla hace referencia a t 2. Cascada. Propagar la eliminacin 1 Borrar todas las tuplas de R2 que referencian a t 2 Eliminar t 3. Establecer nulos (* se ver despus *) 2.3 Caractersticas generales de integridad de datos Mantenimiento de la Integridad Referencial (3) 29 Tema 2. Modelo relacional de datos R2 R1 Operacin: Modificar el valor de una FK a un valor no existente en la PK de R1 Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIN Accin: 1. Rechazar la operacin (SIEMPRE)
Intento de violacin de la restriccin de Integridad Referencial 2.3 Caractersticas generales de integridad de datos Mantenimiento de la Integridad Referencial (4) 30 Tema 2. Modelo relacional de datos Operacin: 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 HABITACIN Acciones posibles: 1. Rechazar la operacin (accin por defecto) Slo permite modificar la PK de t si ninguna tupla referencia a t 2. Cascada. Propagar la modificacin - 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 despus *) 2.3 Caractersticas generales de integridad de datos Mantenimiento de la Integridad Referencial (5) 31 Tema 2. Modelo relacional de datos R2 R1 Operacin: Insercin de una tupla t en R2 cuyo valor de FK no se corresponde con ningn valor de la PK en ninguna tupla de R1 Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIN Acciones posibles: - Rechazar la operacin (SIEMPRE)
Intento de violacin de la restriccin de Integridad Referencial
2.3 Caractersticas generales de integridad de datos Mantenimiento de la Integridad Referencial (6) 32 Tema 2. Modelo relacional de datos Encadenamiento de eliminaciones (anlogo para Modificacin) R2 R1, Accin de Eliminacin en Cascada R3 R2, Accin de Eliminacin X - Eliminar una tupla de R1 = eliminar tuplas de R2 que la referencian - Pero existen tuplas en R3 que referencian esas tuplas de R2... cmo afecta la Accin de Eliminacin X en esta operacin? Si X = en CASCADA, no-problemo! = eliminar esas tuplas de R3 Si X = RECHAZAR = La operacin completa fallar Las operaciones de actualizacin en una BD son siempre atmicas: se realiza TODO o NADA PROFESOR REA DEPARTAMENTO ASIGNATURA TITULACIN UNIVERSIDAD 2.3 Caractersticas generales de integridad de datos Mantenimiento de la Integridad Referencial (y 7) R3 R2 R1 33 Tema 2. Modelo relacional de datos En el mundo real existe... informacin perdida fechaNacimiento desconocida ausencia de informacin tiene telfono? 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 e nulo no es un valor en s mismo, sino un indicador de ausencia de informacin > No hay dos nulos iguales (num_telefono NULL = edad NULL) 2.3 Caractersticas generales de integridad de datos Nulos 34 Tema 2. Modelo relacional de datos Nulo y Claves Primarias Restriccin de Integridad de Entidad: Ningn atributo componente de una clave primaria puede contener nulo EMPLEADO (codEmp, nss, nombre, telefono, depto, jefe...) Qu pasara 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 ningn departamento jefe = null = empleados sin jefe 2.3 Caractersticas generales de integridad de datos Implicaciones de los nulos en la integridad 35 Tema 2. Modelo relacional de datos Hemos de extender la definicin de clave ajena Sea R2 una relacin. FK es una clave ajena en R2 si es un subconjunto de sus atributos tal que: 1. Existe otra relacin R1 con clave primaria PK y 2. En todo momento, cada valor de FK en R2 a) es NULO, o b) es idntico a un valor de PK en alguna tupla de R1
Restriccin de Integridad Referencial La Base de Datos no debe contener valores no nulos de clave ajena sin correspondencia 2.3 Caractersticas generales de integridad de datos Implicaciones de los nulos en la integridad (2) 36 Tema 2. Modelo relacional de datos Hay que extender algunas acciones de mantenimiento de la Integridad Referencial: R2 R1 Operacin: Eliminar una tupla t de R1 que es referenciada por otras de R2 Acciones posibles: 1. Rechazar la operacin (accin por defecto) 2. Cascada. Propagar la eliminacin 3. Establecer nulos Slo 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 Caractersticas generales de integridad de datos Implicaciones de los nulos en la integridad (3) 37 Tema 2. Modelo relacional de datos R2 R1 Operacin: 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 operacin (accin por defecto) 2. Cascada. Propagar la modificacin 3. Establecer nulos Slo 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 Caractersticas generales de integridad de datos Implicaciones de los nulos en la integridad (y 4) 38 Tema 2. Modelo relacional de datos Comprobar las claves candidatas (primaria y alternativas): No existen dos tuplas distintas con igual valor para una clave Definicin de BD : indicar los Atributos Componentes de las Claves Candidatas Comprobar la restriccin de Integridad de entidad Ningn atributo componente de una clave primaria contiene nulo Definicin de BD : indicar los Atributos Componentes de la Clave Primaria Comprobar la restriccin 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 relacin referenciada Definicin de BD : indicar los Atributos Componentes de las Claves Ajenas ... y mantenerla frente operaciones que puedan violar la integridad Definicin de BD : indicar Acciones de Mantenimiento de la Integridad Referencial 2.3 Caractersticas generales de integridad de datos Resumiendo, el SGBD se encarga de... 39 Tema 2. Modelo relacional de datos Dominio Definicin del Dominio CODPEL 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 {espaa,francia,gran_bretaa,eeuu,australia,alemania,la_india,argentina} AOS AO 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, secundario, reparto, figuracion} 40 Tema 2. Modelo relacional de datos Esquema PRODUCTORA
ACTUA_EN (actor:CODACT, film:CODPEL, papel:TIPO_PAPEL, paga:DINERO) 41 Tema 2. Modelo relacional de datos Definida por Codd, 1972 Coleccin de operadores que toman relaciones como operandos y devuelven relaciones como resultado
Operadores tradicionales sobre conjuntos unin interseccin diferencia producto cartesiano Los operandos son relaciones, y NO conjuntos arbitrarios = operaciones adaptadas a relaciones (tipo especial de conjuntos)
Operadores relacionales especiales restriccin proyeccin reunin ( join ) divisin 2.4 Manipulacin de datos 2.4.1. lgebra Relacional 42 Tema 2. Modelo relacional de datos El resultado de cualquier operacin del lgebra relacional es otra relacin
la salida de una operacin puede ser entrada (operando) de otra
= Expresiones Anidadas Sus operandos son otras expresiones del lgebra (en lugar de nombres de relacin) 2.4 Manip. de datos: lgebra Relacional Clausura relacional 43 Tema 2. Modelo relacional de datos En matemticas, AB = { e / eeA y-o eeB } Relacin = conjunto de tuplas = es posible hacer la unin de dos relaciones R y S RS = { t / teR y-o teS } Conjunto de todas las tuplas que estn en R y/o en S Sin embargo... PELICULA DIRECTOR es un conjunto, pero no es una relacin
= Las relaciones deben ser homogneas: no pueden contener mezcla de tuplas de distintos tipos Ha de mantenerse la Propiedad de Clausura: el resultado de la operacin DEBE ser una relacin Las relaciones de entrada deben ser de tipos compatibles 2.4 Manip. de datos: lgebra Relacional Compatibilidad de tipos (o con la unin) 44 Tema 2. Modelo relacional de datos Sean R ( r 1 , r 2 ,..., r n ), S ( s 1 , s 2 , ..., s n ) Relaciones R y S compatibles en tipo si tienen el mismo esquema, es decir: 1. Igual nmero de atributos: grado(R) = grado(S) = n 2. Atributos correspondientes definidos sobre el mismo dominio: dom(r i ) = dom(s i ) ,, i = 1, 2, ..., n
Ejemplo: DIRECTOR y DIR_FOTOG son de tipos compatibles
UNIN, INTERSECCIN, DIFERENCIA necesitan operandos compatibles en tipo PRODUCTO CARTESIANO no necesita compatibilidad de tipo en sus operandos 2.4 Manip. de datos: lgebra Relacional Compatibilidad de tipos (y 2) 45 Tema 2. Modelo relacional de datos RS, con R y S compatibles en tipo, es una relacin tal que: Esquema: el de R (o S) Estado: conjunto de tuplas que estn en R, en S o en ambas Las tuplas repetidas se eliminan (por definicin) Ejemplo: DIRECTOR DIR_FOTOG 2.4 Manip. de datos: lgebra Relacional Unin de relaciones RS, con R y S compatibles en tipo, es una relacin tal que: Esquema: el de R (o S) Estado: conjunto de tuplas que estn a la vez en R y en S
Ejemplo: DIRECTOR DIR_FOTOG
Interseccin de relaciones 46 Tema 2. Modelo relacional de datos RS, con R y S compatibles en tipo, es una relacin tal que: Esquema: el de R (o S) Estado: conjunto de tuplas que estn en R, pero NO en S operacin con cierta direccionalidad, como la resta aritmtica Ejemplo: DIRECTOR DIR_FOTOG 2.4 Manip. de datos: lgebra Relacional Diferencia entre relaciones La propiedad de clausura relacional permite aplicar una operacin tras otra Sean R, S, T relaciones de tipos compatibles, nica expresin: expresiones anidadas R ( S T ) Varias expresiones: relaciones intermedias con nombre A S T B R A Secuencias de operaciones 47 Tema 2. Modelo relacional de datos 2.4 Manip. de datos: lgebra Relacional Por defecto, los atributos de la relacin resultado de una operacin heredan los nombres de los del operando ms 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 relacin resultado: DIR(codDir,nomDir,apeDir,nacDir,fechaNac,pelic) DIRECTOR DIR_FOTOG Renombramiento de atributos 48 Tema 2. Modelo relacional de datos En matemticas, A X B = { (a,b) / aeA y beB } Relacin = conjunto de tuplas, = es posible el producto cartesiano entre relaciones R y S
R X S = { (t R ,t S ) / t R eR y t S eS } Conjunto de pares ordenados de tuplas de R y S Pero ha de conservarse la Propiedad de Clausura: El resultado debe ser un conjunto de tuplas (no de pares de)
= Producto Cartesiano Ampliado, pues cada par ordenado es sustituido por la tupla resultante de la combinacin de las dos tuplas origen 2.4 Manip. de datos: lgebra Relacional Producto Cartesiano entre relaciones 49 Tema 2. Modelo relacional de datos R X S, con R y S cualesquiera, es una relacin tal que: Esquema: combinacin (unin) 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 X DIRECTOR Obtiene un conjunto de tuplas tales que cada una es la combinacin de una tupla de PELICULA y otra de DIRECTOR
Operacin sin demasiada importancia prctica No se tiene ms informacin a la salida que a la entrada pero es necesaria para definir la operacin REUNIN (JOIN) 2.4 Manip. de datos: lgebra Relacional Producto Cartesiano entre relaciones (2) 50 Tema 2. Modelo relacional de datos El esquema de la relacin resultante de R X S debe estar bien formado (nombres de atributos nicos) Si R y S tienen atributos con igual nombre, R X S tendra dos atributos nombrados igual! ko! ACTOR X AGENCIA = colisin de nombres en atributo nombre Soluciones posibles: 1. Renombrar atributos de una relacin, antes del producto AGENCIA_2(codAge, nomAge, direccion, telefono) AGENCIA RESULTADO ACTOR X AGENCIA_2
2. Prefijar atributos con el nombre de su tabla, en la tabla resultado RESULTADO(codA, ACTOR.nombre, nomreal,..., codAg, AGENCIA.nombre, ...) ACTOR X AGENCIA 2.4 Manip. de datos: lgebra Relacional Producto Cartesiano entre relaciones (y 3) 51 Tema 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 X S ) X T R X ( S X T) R X S X T Conmutativa R S S R R S S R R X S S X 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 Relacional Propiedades de los operadores relacionales 52 Tema 2. Modelo relacional de datos Obtener un subconjunto de las tuplas de una relacin para las cuales se satisface una condicin de seleccin o < condicin > (<relacin>)
Resultado: Relacin (conjunto de tuplas) con atributos de <relacin> <condicin> es una expresin booleana Especificada en trminos de atributos de <relacin> Compuesta por una o ms clusulas, del tipo: <nomAtrib> <opComp> <cte> o bien <nomAtrib> <opComp> <nomAtrib> <opComp> operador de comparacin e {=, <, s, >, >, =} <cte> valor constante e dominio del atributo <nomAtrib> Clusulas conectadas por operadores booleanos AND, OR, NOT 2.4 Manip. de datos: lgebra Relacional Restriccin de una relacin o 53 Tema 2. Modelo relacional de datos Ejemplos: * Tuplas de actores representados por la agencia nmero 2 o agencia=2 (ACTOR)
* Actores cuyo cach rebasa los 30.000 o cache>30000 (ACTOR)
* Actores representados por la agencia nmero 2, cuyo cache no llega a los 22.000, o bien por la agencia 4 y con cach superior a 32.000 o (agencia=2 AND cache<25000) OR (agencia=4 AND cache>35000) (ACTOR) 2.4 Manip. de datos: lgebra Relacional Restriccin de una relacin (2) 54 Tema 2. Modelo relacional de datos Mecanismo de seleccin del sistema Aplica <condicin> a cada tupla individual de <relacin>, sustituyendo cada atributo por su valor en la tupla Si <condicin> es TRUE, la tupla se selecciona para el resultado Operador Restriccin: Unario Slo se aplica a UNA relacin Nunca puede seleccionar tuplas de ms de una relacin Se aplica a UNA sola tupla a la vez <condicin> nunca se refiere a ms de una tupla Grado(Relacin Resultado) = Grado(Relacin Origen) Tienen los mismos atributos N Tuplas(Relacin Resultado) s N Tuplas(Relacin Origen) 2.4 Manip. de datos: lgebra Relacional Restriccin de una relacin (3) 55 Tema 2. Modelo relacional de datos La operacin restriccin es conmutativa
o cond1 (o cond2 (R) )
o cond2 (o cond1 (R) )
Esto permite Secuencia de restricciones (selecciones) en cualquier orden Combinacin de una secuencia de restricciones en una nica restriccin con una condicin conjuntiva:
o cond1 (o cond2 (...(o condn (R))...))
o cond1 AND cond2 AND...AND condn (R) 2.4 Manip. de datos: lgebra Relacional Restriccin de una relacin (y 4) 56 Tema 2. Modelo relacional de datos Slo interesan algunos atributos de una relacin Se proyecta la relacin sobre esos atributos Restriccin vs. Proyeccin : o selecciona algunas tuplas de la relacin y desecha otras [ selecciona ciertos atributos y desecha los dems
[ <listAtrib> (<relacin>) Resultado: Relacin (conjunto de tuplas) cuyos atributos son slo los de <listAtrib> y en ese orden <listAtrib> lista de nombres de atributos de <relacin>
* Obtener el cdigo, nombre y el cach de todos los actores [ codA, nombre, cache (ACTOR) 2.4 Manip. de datos: lgebra Relacional Proyeccin de una relacin [ 57 Tema 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) Eliminacin implcita de duplicados Resultado relacin vlida
Grado(Relacin Resultado) = N atributos(<listAtrib>) N Tuplas(Relacin Resultado) s N Tuplas(Relacin Origen) y es igual (=) si <listAtrib> contiene una clave candidata 2.4 Manip. de datos: lgebra Relacional Proyeccin de una relacin (2) 58 Tema 2. Modelo relacional de datos La operacin proyeccin no es conmutativa [ lista1 ([ lista2 (R) )
= [ lista2 ([ lista1 (R) )
Adems, siempre que lista1 _ lista2, entonces... [ lista1 ([ lista2 (R) )
= [ lista1 (R)
2.4 Manip. de datos: lgebra Relacional Proyeccin de una relacin (y 3) 59 Tema 2. Modelo relacional de datos Combina las tuplas relacionadas de dos relaciones en una sola tupla Permite procesar vnculos entre relaciones
* Datos de pelculas junto con los de su director correspondiente Es necesario combinar cada tupla de PELCULA, 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 operacin REUNIN a las dos relaciones
R1 PELICULA director=codDir DIRECTOR 2.4 Manip. de datos: lgebra Relacional Reunin o Join entre dos relaciones 60 Tema 2. Modelo relacional de datos PELICULA ( codP, ttulo, ao, genero, guin, director, directorFotog, distrib, nacio, estreno, numOscar, taquilla ) DIRECTOR ( codDir, nombre, apellido, nacio, fechaNacim, peraPrima )
* Ttulos de pelculas junto con nombre y apellido de su director Se consigue aplicando la operacin REUNIN a las dos relaciones Y proyectando el resultado sobre los atributos requeridos R2[ titulo,nombre,apellido (PELICULA director=codDir DIRECTOR) 2.4 Manip. de datos: lgebra Relacional Reunin 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 61 Tema 2. Modelo relacional de datos Forma General para relaciones A(a1, a2, ... an) y B(b1, b2, ... bm): A <condicin de reunin> B
Resultado: Relacin con n+m atributos (a1, a2, ... an, b1, b2, ... bm) Esquema: unin de las cabeceras de A y B Estado: conjunto de tuplas, una por cada combinacin de tuplas (una de A y otra de B) que satisface <condicin de reunin>
Reunin 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 Relacional Reunin o Join entre dos relaciones (3) 62 Tema 2. Modelo relacional de datos <condicin de reunin> Expresin booleana especificada en trminos de atributos de A y B Evaluada para cada combinacin (par) de tuplas: Si la cumplen, forman una nueva tupla de la relacin resultado Es de la forma: <condicin> AND <condicin> AND... AND <condicin> donde: <condicin> tiene la forma ai u bj (condicin de reunin general), y ai es un atributo de A; bj es un atributo de B, Dominio(ai) = Dominio(bj), u (theta) cumple que u e {=, <, s, >, >, =}
Reunin con condicin de reunin general REUNIN THETA 2.4 Manip. de datos: lgebra Relacional Reunin o Join entre dos relaciones (4) 63 Tema 2. Modelo relacional de datos La reunin ms comn es la que implica comparacin de igualdad ( u = ) = EQUI-REUNIN (o REUNIN, a secas) * Actores y agencias que los representan ACTOR agencia=codAg AGENCIA Problema: colisin 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 relacin AGENC(codAg, nomAg, dirAg, tel) AGENCIA R [ nombre, nomAg (ACTOR agencia=codAg AGENC) 2. Prefijar atributos con el nombre de su tabla R [ ACTOR.nombre,AGENCIA.nombre (ACTOR agencia=codAg AGENCIA) 2.4 Manip. de datos: lgebra Relacional Reunin o Join entre dos relaciones (5) 64 Tema 2. Modelo relacional de datos Las tuplas cuyos atributos de reunin son nulos, NO aparecen en la relacin 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 relacin que no encuentran correspondencia en la otra, tampoco aparecen en la relacin resultado Los actores que no han actuado en ninguna pelcula, 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 Relacional Reunin o Join entre dos relaciones (6) 65 Tema 2. Modelo relacional de datos En general, sea A con n A tuplas y B con n B tuplas, entonces R A <condicin de reunin> B cumple que 0 s n R s n A *n B
Si ninguna combinacin de tuplas de A y B cumple la <condicin de reunin>, entonces Relacin Resultado = Relacin vaca (cero tuplas)
Si NO se especifica <condicin de reunin>, entonces la <condicin de reunin> es TRUE para todas las tuplas, y X (REUNIN PROD. CARTESIANO REUNIN CRUZADA) 2.4 Manip. de datos: lgebra Relacional Reunin o Join entre dos relaciones (y 7) 66 Tema 2. Modelo relacional de datos AB Caso particular de reunin, quiz el ms importante No necesita especificar condicin de reunin, pues... ... iguala todos los pares de atributos con igual nombre en A y B Es una EQUI-REUNIN + eliminacin de atributos superfluos = Slo conserva un atributo de reunin La definicin estndar de reunin natural exige que los atributos de reunin deben tener nombre idntico 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 Relacional Reunin natural entre relaciones 67 Tema 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 Relacional Reunin 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 68 Tema 2. Modelo relacional de datos Ejemplos: 1. Ttulo de todas las pelculas junto con el ttulo y resumen de su guin GUIO(guion, titGuion, resumen, nomAutorPpal, fechaFin, fechaEntrega) GUION RESUMEN [ titulo, titGuion, resumen
(PELICULA GUIO)
2. Ttulos de pelculas junto con el nombre y apellidos de su director DIREC(director, nombre, apellidos, nacio, fechaNacim, operaPrima) DIRECTOR PELI_DIRE [ titulo, nombre, apellidos
(PELICULA
DIREC)
3. Nombre de actores y de las agencias que los representan AGENC(agencia, nomAg, direccion, telefono) AGENCIA ACT_AGEN [ nombre, nomAg
(ACTOR
AGENC)
A qu se debe el renombramiento en cada caso? 2.4 Manip. de datos: lgebra Relacional Reunin natural entre relaciones (y 3) 69 Tema 2. Modelo relacional de datos Sean las relaciones A(a1, a2, ... an, b1, b2, ... bm) y B(b1, b2, ...bm) AB es una relacin tal que: Esquema: Relacin con los atributos no comunes R( a1, a2, ... an ) Estado: Conjunto de tuplas { (a i 1, a i 2, ... a i n) } tal que existe en A una tupla (a i 1, a i 2, ... a i n, b j 1, b j 2, ... b j m) para TODAS las tuplas (b j 1, b j 2, ... b j m ) de B
Poco comn. til para consultas especiales ocasionales Nombres de los actores que trabajan en todas las pelculas dirigidas por los hermanos Cohen Para que una tupla t aparezca en el resultado, los valores de t deben aparecer en A en combinacin con todas las tuplas de B 2.4 Manip. de datos: lgebra Relacional Divisin entre relaciones 70 Tema 2. Modelo relacional de datos y1, y4 aparecen en A en combinacin con las 3 tuplas de B, por eso estn en el resultado R = A B El resto de valores de y en A, no aparecen con todas las tuplas de B y no son seleccionadas: y2 no aparece con x2, e y3 no aparece con x1 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 Relacional Divisin entre relaciones (y 2) 71 Tema 2. Modelo relacional de datos Algunas consultas comunes no pueden expresarse con las operaciones estndar del lgebra Relacional Ampliacin de su poder expresivo con operaciones adicionales Incluidas en la mayora de los lenguajes de consulta relacionales comerciales
Funciones de agregados Funciones matemticas de agregados sobre colecciones de valores de la base de datos Valor medio del cach de todos los actores Nmero de pelculas (almacenadas en la BD) Mximo porcentaje de comisin de las distribuidoras de pelculas Mnima recaudacin en taquilla Cantidad total pagada a los actores de cierta pelcula 2.4 Manip. de datos: lgebra Relacional Otras operaciones del lgebra Relacional 72 Tema 2. Modelo relacional de datos Funciones aplicadas a un conjunto de tuplas SUMA PROMEDIO MXIMO MNIMO CUENTA (nmero de tuplas en una relacin) Agrupacin de tuplas segn valor de ciertos atributos Puede aplicarse una funcin agregada a cada grupo por separado * Media del cach de los actores agrupados por agencias Solucin? Agrupar actores segn su agencia representante (valor de atributo agencia) Cada grupo incluye tuplas de actores representados por la misma agencia Clculo del cach medio de cada grupo (funcin PROMEDIO) El resultado es una relacin R(agencia, PROMEDIO_cach) 2.4 Manip. de datos: lgebra Relacional Funciones de agregados 73 Tema 2. Modelo relacional de datos 2.4 Manip. de datos: lgebra Relacional Funciones de agregados (2) ACTOR a1 a10 a2 a3 a4 a9 a5 a8 a7 a6 AG1 AG2 AG3 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 74 Tema 2. Modelo relacional de datos <atributos de agrupacin> F <lista funciones> (<relacin>)
<atributos de agrupacin> Lista de nombres de atributos de <relacin> Indican atributos con los que construir los grupos Puede estar vaca = la relacin es un (nico) grupo <lista funciones> Lista de pares <funcin> <atributo> donde <funcin> e {SUMA, PROMEDIO, MXIMO, MNIMO, CUENTA} y <atributo> es uno de los atributos de <relacin> Resultado: una relacin R, tal que Esquema: atributos de <atributos de agrupacin> + 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 Relacional Funciones de agregados (3) 75 Tema 2. Modelo relacional de datos Ejemplos: 1. Cdigos de Pelculas, nmero de actores en cada pelcula y su paga media R(codpeli, numActores, pagaMedia) film F CUENTA actor,PROMEDIO paga (ACTUA_EN) 2. Cdigos de agencias, nmero 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 relacin resultado R, dicha relacin incluir... un atributo por cada atributo incluido en <atributos de agrupacin>, con el mismo nombre, y un atributo por cada funcin incluida en <lista funciones>, denominado FUNCIN_atributo Los esquemas de las relaciones resultado de los ejemplos anteriores seran: 1. R(film,CUENTA_actor, PROMEDIO_paga) 2. R(agencia, CUENTA_codA, PROMEDIO_cache) 2.4 Manip. de datos: lgebra Relacional Funciones de agregados (4) 76 Tema 2. Modelo relacional de datos Si no se especifican atributos de agrupacin Toda la relacin es un nico grupo Las funciones se aplican a todas las tuplas La relacin resultado tendr una sola tupla * Nmero de pelculas y recaudacin media F CUENTA codP,PROMEDIO taquilla (PELICULA)
El resultado de aplicar una funcin agregada siempre es una relacin, no un n escalar, aunque tenga un nico valor * Recaudacin mxima obtenida F MXIMO taquilla (PELICULA) 2.4 Manip. de datos: lgebra Relacional Funciones de agregados (y 5) R MAXIMO_taquilla 232.850 77 Tema 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 relacin EMPLEADO)
* Cdigos de los empleados que tienen como superior a e, en todos los niveles _________________Nivel 1
_________________Nivel 2
_________________Nivel 3
etc. e
e 1 1
e 1 2 ...
e 1 n
e 2 1...
e 2 m ... ... ... e 2 p
e 3 1... e 3 q ...
e 3 r
... ... ...
e 3 t
... 2.4 Manip. de datos: lgebra Relacional Operaciones de cierre recursivo 78 Tema 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: cdigo 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 (o 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 Relacional Operaciones de cierre recursivo (y 2) 79 Tema 2. Modelo relacional de datos Extensin de la operacin REUNIN Permiten conservar todas las tuplas en A o B o ambas, aunque... No tengan tuplas coincidentes Contengan nulos en los atributos de reunin
* Nombres de actores y de sus agencias representantes, si tienen AGEN(codAg, nomAg, direccion,telefono) AGENCIA TEMP (ACTOR agencia=codAg AGEN) RESULTADO [ nombre, nomAg (TEMP) 2.4 Manip. de datos: lgebra Relacional Reunin externa (Outer-join) entre relaciones 80 Tema 2. Modelo relacional de datos REUNIN 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
REUNIN 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
REUNIN 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 Relacional Reunin externa entre relaciones (2) 81 Tema 2. Modelo relacional de datos * Nombres de agencias y de los actores a los que representan, incluyendo... 1.- las agencias que no representan a ningn actor R1= t nomAc, nomAg (ACTOR agencia=codAg AGENCIA) 2.- los actores que no tienen agencia de representacin R2 = t nomAc, nomAg ( ACTOR agencia=codAg AGENCIA 3.- tanto las agencias que no representan a ningn actor, como los actores que no tienen agencia R3 = t nomAc, nomAg ( ACTOR agencia=codAg AGENCIA 2.4 Manip. de datos: lgebra Relacional Reunin externa entre relaciones (3) ACTOR nomAc ... agencia ... Carmelo Gmez A23 Mara Pujalte A03 Pere Ponce A10 Javier Bardem NULL AGENCIA codAg nomAg ... A10 AgeRep A30 ReprActors A03 ActorsMngr A23 ARA 82 Tema 2. Modelo relacional de datos 2.4 Manip. de datos: lgebra Relacional Reunin externa entre relaciones (y 4) ACTOR AGENCIA nomAc nomAg Carmelo Gmez ARA Mara Pujalte ActorsMngr Pere Ponce AgeRep NULL ReprActors ACTOR AGENCIA nomAc nomAg Carmelo Gmez ARA Mara Pujalte ActorsMngr Pere Ponce AgeRep Javier Bardem NULL ACTOR AGENCIA nomAc nomAg Carmelo Gmez ARA Mara Pujalte ActorsMngr Pere Ponce AgeRep Javier Bardem NULL NULL ReprActors 83 Tema 2. Modelo relacional de datos Lenguaje formal para BD Relacionales Basado en Clculo de Predicados de Primer Orden (rama de Lgica Matemtica) 2.4 Manipulacin de datos 2.4.2. Clculo Relacional Clculo Relacional vs. lgebra Relacional - Expresiones Declarativas (lenguaje no procedimental) - Secuencias de Operaciones No se indica CMO evaluar la consulta, sino QU se desea obtener Describe la informacin deseada sin dar un procedimiento especfico para obtenerla
Aunque se anidan para formar una sola expresin, siempre se indica explcitamente cierto orden de las operaciones Estrategia parcial de evaluacin de la consulta (~ lenguaje procedimental de alto nivel ) 84 Tema 2. Modelo relacional de datos Poder expresivo idntico de lgebra y clculo relacionales Cualquier obtencin de datos especificada en el lgebra Relacional puede expresarse en el Clculo Relacional (restringido a expresiones seguras) y viceversa
Definicin: Lenguaje Relacionalmente Completo Lenguaje en el que es posible expresar cualquier consulta que pueda especificarse en el Clculo Relacional Clculo Relacional como medida del poder selectivo de lenguajes relacionales
Formas de adaptar el Clculo de Predicados de 1 er Orden para crear un Lenguaje de Consultas para BDR: Clculo Relacional de Tuplas (CRT) Codd, 1972 Clculo Relacional de Dominios Lacroix y Pirotte, 1977 2.4 Manip. de datos: Clculo Relacional 85 Tema 2. Modelo relacional de datos CRT basado en la especificacin de variables de tupla Toda variable de tupla abarca o recorre una relacin = puede tomar como valor cualquier tupla de esa relacin { t | COND(t) } Resultado: conjunto de tuplas t que satisfacen la condicin COND(t) COND(t): expresin 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 Relacin de Intervalo que t recorre t.cache hace referencia al atributo cach de la variable de tupla t 2.4 Manip. de datos: Clculo Relacional Expresiones de consulta 86 Tema 2. Modelo relacional de datos Obtencin 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: Clculo Relacional Expresiones de consulta (y 2) 87 Tema 2. Modelo relacional de datos Una expresin del Clculo Relacional contiene:
Para cada variable de tupla t, su relacin de intervalo R: R(t)
Condicin de seleccin de combinaciones de tuplas -Conforme las variables de tupla recorren sus relaciones, la condicin se evala para cada combinacin de tuplas -Las combinaciones que dan TRUE se seleccionan para el resultado
Lista de atributos solicitados -Se obtienen sus valores para cada combinacin seleccionada 2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista informal 88 Tema 2. Modelo relacional de datos Expresin General { t 1 .a 1 , t 2 .a 2 , ... , t n .a p | COND(t 1 , t 2 , ..., t n , t n+1 ,t n+2 ,...t n+m ) }
donde: t 1 , t 2 , ..., t n , t n+1 , t n+2 , ... t n+m son variables de tupla a i es un atributo de la relacin que t j recorre COND(..): frmula (bien formada) del Clculo Relacional de Tuplas constituida por tomos del Clculo de Predicados 2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista formal 89 Tema 2. Modelo relacional de datos tomos R(t i ) el intervalo de la variable de tupla t i es la relacin R t i .a op t j .b ,, op e { =, =, <, s, >, > } t i y t j variables de tupla a atributo de la relacin que t i abarca b atributo de la relacin que t j abarca t i .a op c ,, c op t j .b ,, op e { =, =, <, s, >, > } t i y t j variables de tupla a atributo de la relacin que t i abarca b atributo de la relacin que t j abarca c valor constante - Los tomos estn ligados mediante operadores and, or, not y 2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista formal (2) 90 Tema 2. Modelo relacional de datos Valor lgico de un tomo Evaluacin del tomo para una combinacin especfica de tuplas = valor TRUE o FALSE R(t i ) TRUE si se asigna una tupla de R a t i
Si no, es FALSE t i .a op t j .b ,, t i .a op c ,, c op t j .b TRUE si t i y t j se asignan a tuplas tales que los atributos especificados (a y b) satisfacen la condicin Si no es as, ser FALSE 2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista formal (3) 91 Tema 2. Modelo relacional de datos Frmula bien formada (fbf) Definicin recursiva
D1. Todo tomo es una frmula bien formada R(t i ) ,, t i .a op t j .b ,, t i .a op c ,, c op t j .b
D2. Si F1 y F2 son fbf, tambin lo son... (F1 and F2), (F1 or F2), not(F1), not(F2) y (F1 F2) y los valores lgicos de estas frmulas se derivan de F1 y F2, segn la Lgica Booleana Nota: (F1 F2) (not(F1) or F2)
continuar...
2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista formal (4) 92 Tema 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 clusulas (t) o (-t) ) si no, est libre
2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista formal (5) 93 Tema 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 segn 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 Gmez F2 : (-t) (d.agencia = t.codAg) La variable de tupla d est libre en F1 y en F2 t est ligada al cuantificador - en F2 2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista formal (6) 94 Tema 2. Modelo relacional de datos Frmula bien formada (continuacin)
D3. Si F es una fbf, tambin 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, tambin 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: Clculo Relacional Expresin del CRT: punto de vista formal (7) 95 Tema 2. Modelo relacional de datos Frmula bien formada (continuacin)
Si la frmula es cerrada (toda variable ligada a cuantificadores), entonces representa una expresin que ser TRUE o FALSE F3 : (-a) (ACTOR(a) and a.nombre = Javier Cmara) F4 : (p) (PELICULA(p) (-d) (DIRECTOR(d) and d.coddir=p.director)
Si la frmula es abierta (tiene variables libres), entonces representa una consulta cuya evaluacin devolver los valores de sus variables libres que hacen TRUE la frmula F5 : ACTOR(a) and a.fechaNacim > 31/12/1971 sirve para preguntar por los actores/actrices que nacieron en 1972 o despus 2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista formal (8) 96 Tema 2. Modelo relacional de datos Expresin segura Su resultado es un nmero finito de tuplas Al usar cuantificadores (-,) o negacin (not), la expresin ha de tener sentido: ser segura y no generar una relacin infinita E= {t | not(ACTOR(t))} = tuplas del universo que NO son de ACTOR !! Dominio de una expresin del CRT Valores constantes en la expresin o que existen en cualquier tupla de las relaciones a las que se referencia en la expresin Dominio ( E={t | not(ACTOR(t))} )= todos los valores de atributos de tuplas ACTOR
= Una expresin es segura si todo valor del resultado e dominio de la expresin E es insegura, ya que el resultado incluye tuplas (y, por tanto, valores) que no estn en la relacin ACTOR (es decir, que e su dominio) 2.4 Manip. de datos: Clculo Relacional Expresin del CRT: punto de vista formal (y 9)