2. Modelo relacional de datosObjetivos•  Comprender los principios estructurales del modelo de   datos relacional formal• ...
2. Modelo relacional de datosContenidos2.1 Presentación y orígenes del modelo relacional2.2 Estructura de datos relacional...
2. Modelo relacional de datosBibliografía[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de          Bases d...
2.1 Presentación y orígenes del MR• Introducido por Codd, 1970• Es un Modelo de Datos Lógico - de Representación -    (bas...
2.2 Estructura de datos relacionalBase de Datos = Conjunto de Relaciones• Relación   – Estructura de datos fundamental del...
2.2 Estructura de datos relacional   La relación   PELICULA                                          Géneros              ...
2.2 Estructura de datos relacionalTérminos básicos                                                                  Proces...
2.2 Estructura de datos relacionalDefiniciones formales: DOMINIO• Conjunto de valores atómicos del mismo tipo, donde  toma...
2.2 Estructura de datos relacionalDefiniciones formales: RELACIÓN (1) Una relación R, sobre conjunto de dominios D 1 , D 2...
2.2 Estructura de datos relacionalDefiniciones formales: RELACIÓN (2)Un esquema de relación:   PELICULA (titulo:Titulos, d...
2.2 Estructura de datos relacionalDefiniciones formales: RELACIÓN (3)• Propiedades de una Relación  1. No existen tuplas r...
2.2 Estructura de datos relacionalDefiniciones formales: RELACIÓN (4)• FORMAS NORMALES   R está en <determinada> FN si    ...
2.2 Estructura de datos relacionalDefiniciones formales: RELACIÓN (5)• Relación vs. Tabla  – Relación: Representación abst...
2.2 Estructura de datos relacionalDefiniciones formales: BD RELACIONAL(1)• Percibida por usuarios como una colección de  r...
2.2 Estructura de datos relacionalDefiniciones formales: BD RELACIONAL(2)• En una BDR distinguimos...   – Esquema de base ...
2.3 Características generales de    integridad de datos• Todo estado de BD refleja la realidad   – es un modelo de una por...
2.3 Características generales de    integridad de datosReglas de integridad• Informan al SGBD de restricciones del mundo r...
2.3 Características generales de    integridad de datosSuperclave y Clave de una relaciónSea R una relación            R(A...
2.3 Características generales de    integridad de datosSuperclave y Clave: Ejemplos• Claves como restricción de integridad...
2.3 Características generales de    integridad de datosClave Candidata, Primaria y Alternativa• Si R tiene varias claves ...
2.3 Características generales de    integridad de datosClave Ajena (Externa o Foránea)• Conjunto de atributos FK de una re...
2.3 Características generales de    integridad de datosClave Ajena (Externa o Foránea)                            (2)• Cad...
2.3 Características generales de    integridad de datosClave Ajena (Externa o Foránea)                             (3)    ...
2.3 Características generales de    integridad de datosClave Ajena (Externa o Foránea)                      (4)• Restricci...
2.3 Características generales de    integridad de datosClave Ajena (Externa o Foránea)                           (y 5)• Di...
2.3 Características generales de    integridad de datosMantenimiento de la Integridad Referencial• Las operaciones que no ...
2.3 Características generales de    integridad de datosMantenimiento de la Integridad Referencial                        (...
2.3 Características generales de    integridad de datosMantenimiento de la Integridad Referencial                         ...
2.3 Características generales de    integridad de datosMantenimiento de la Integridad Referencial                       (4...
2.3 Características generales de    integridad de datosMantenimiento de la Integridad Referencial                         ...
2.3 Características generales de    integridad de datosMantenimiento de la Integridad Referencial                   (6)   ...
2.3 Características generales de    integridad de datosMantenimiento de la Integridad Referencial                         ...
2.3 Características generales de    integridad de datosNulos• En el mundo real existe...   – información perdida          ...
2.3 Características generales de    integridad de datosImplicaciones de los nulos en la integridad• Nulo y Claves Primaria...
2.3 Características generales de    integridad de datosImplicaciones de los nulos en la integridad                  (2)• H...
2.3 Características generales de    integridad de datosImplicaciones de los nulos en la integridad                       (...
2.3 Características generales de    integridad de datosImplicaciones de los nulos en la integridad                        ...
2.3 Características generales de    integridad de datosResumiendo, el SGBD se encarga de...•   Comprobar las claves candid...
Dominio      Definición del DominioCODPEL       enteros(3)CODGUI       enteros(3)CODDIR       enteros(3)CODDIS       enter...
Esquema “PRODUCTORA”PELICULA       (codP:CODPEL, titulo:TITULOS, año:AÑO, genero:GENEROS, guion:CODGUI,               dire...
2.4 Manipulación de datos2.4.1. Álgebra Relacional• Definida por Codd, 1972• Colección de operadores que toman relaciones ...
2.4 Manip. de datos: ÁlgebraRelacionalClausura relacional  El resultado de cualquier operación del álgebra  relacional es ...
2.4 Manip. de datos: ÁlgebraRelacionalCompatibilidad de tipos (o con la unión)• En matemáticas, A∪B = { e / e∈A y-o e∈B }•...
2.4 Manip. de datos: ÁlgebraRelacionalCompatibilidad de tipos                            (y 2)Sean R ( r1, r2,..., rn ), S...
2.4 Manip. de datos: ÁlgebraRelacionalUnión de relacionesR∪S, con R y S compatibles en tipo, es una relación tal que:  Esq...
2.4 Manip. de datos: ÁlgebraRelacionalDiferencia entre relacionesR―S, con R y S compatibles en tipo, es una relación tal q...
2.4 Manip. de datos: ÁlgebraRelacionalRenombramiento de atributos• Por defecto, los atributos de la relación resultado de ...
2.4 Manip. de datos: ÁlgebraRelacionalProducto Cartesiano entre relaciones• En matemáticas, A Χ B = { (a,b) / a∈A y b∈B }•...
2.4 Manip. de datos: ÁlgebraRelacionalProducto Cartesiano entre relaciones (2)• R Χ S, con R y S cualesquiera, es una rela...
2.4 Manip. de datos: ÁlgebraRelacionalProducto Cartesiano entre relaciones                           (y 3)• El esquema de ...
2.4 Manip. de datos: ÁlgebraRelacionalPropiedades de los operadores relacionalesR, S, T relaciones de tipos compatibles• A...
2.4 Manip. de datos: ÁlgebraRelacional de una relaciónRestricciónσ• Obtener un subconjunto de las tuplas de una relación  ...
2.4 Manip. de datos: ÁlgebraRelacionalRestricción de una relación (2)• Ejemplos:   σ  * Tuplas de actores representados po...
2.4 Manip. de datos: ÁlgebraRelacionalRestricción de una relación (3)• Mecanismo de selección del sistema    – Aplica <con...
2.4 Manip. de datos: ÁlgebraRelacionalRestricción de una relación (y 4)• La operación restricción es conmutativa      σ (σ...
2.4 Manip. de datos: ÁlgebraRelacionalde una relaciónProyección∏• Sólo interesan algunos atributos de una relación• Se pro...
2.4 Manip. de datos: ÁlgebraRelacionalProyección de una relación (2)• Si <listAtrib> no contiene atributos clave  ¡tuplas...
2.4 Manip. de datos: ÁlgebraRelacionalProyección de una relación (y 3)• La operación proyección no es conmutativa      ∏li...
2.4 Manip. de datos: ÁlgebraRelacionalReunión o Join entre dos relaciones• Combina las tuplas relacionadas de dos relacion...
2.4 Manip. de datos: ÁlgebraRelacionalReunión o Join entre dos relaciones (2)  PELICULA ( codP, título, año, genero, guión...
2.4 Manip. de datos: ÁlgebraRelacionalReunión o Join entre dos relaciones (3)• Forma General para relaciones A(a1, a2, ......
2.4 Manip. de datos: ÁlgebraRelacionalReunión o Join entre dos relaciones (4)• <condición de reunión>   – Expresión boolea...
2.4 Manip. de datos: ÁlgebraRelacionalReunión o Join entre dos relaciones (5)• La reunión más común es la que implica comp...
2.4 Manip. de datos: ÁlgebraRelacionalReunión o Join entre dos relaciones (6)• Las tuplas cuyos atributos de reunión son n...
2.4 Manip. de datos: ÁlgebraRelacionalReunión o Join entre dos relaciones (y 7)• En general, sea A con nA tuplas y B con n...
2.4 Manip. de datos: ÁlgebraRelacionalReunión natural entre relaciones                      AB• Caso particular de reuni...
2.4 Manip. de datos: ÁlgebraRelacionalReunión natural entre relaciones (2)R(a, b, c)                          R   a   b   ...
2.4 Manip. de datos: ÁlgebraRelacionalReunión natural entre relaciones (y 3)• Ejemplos:  1. Título de todas las películas ...
2.4 Manip. de datos: ÁlgebraRelacional relacionesDivisión entre   ÷Sean las relaciones A(a1, a2, ... an, b1, b2, ... bm) y...
2.4 Manip. de datos: ÁlgebraRelacionalDivisión entre relaciones            (y 2)A   a    b    B   b    y1   x1       x1   ...
2.4 Manip. de datos: ÁlgebraRelacionalOtras operaciones del Álgebra Relacional• Algunas consultas comunes no pueden expres...
2.4 Manip. de datos: ÁlgebraRelacionalFunciones de agregados• Funciones aplicadas a un conjunto de tuplas   –   SUMA   –  ...
2.4 Manip. de datos: ÁlgebraRelacionalFunciones de agregados                           (2)                                ...
2.4 Manip. de datos: ÁlgebraRelacionalFunciones de agregados                              (3)    <atributos de agrupación>...
2.4 Manip. de datos: ÁlgebraRelacionalFunciones de agregados                        (4)• Ejemplos:   1. Códigos de Películ...
2.4 Manip. de datos: ÁlgebraRelacionalFunciones de agregados                    (y 5)• Si no se especifican atributos de a...
2.4 Manip. de datos: ÁlgebraRelacionalOperaciones de cierre recursivo• No pueden expresarse en el Álgebra Relacional• Se a...
2.4 Manip. de datos: ÁlgebraRelacionalOperaciones de cierre recursivo (y 2)• En Álgebra Relacional es sencillo especificar...
2.4 Manip. de datos: ÁlgebraRelacionalReunión externa (Outer-join) entrerelaciones• Extensión de la operación REUNIÓN• Per...
2.4 Manip. de datos: ÁlgebraRelacionalReunión externa entre relaciones (2)• REUNIÓN EXTERNA IZQUIERDA                  R=A...
2.4 Manip. de datos: ÁlgebraRelacionalReunión externa entre relaciones (3)  ACTOR         nomAc        ... agencia ...    ...
2.4 Manip. de datos: ÁlgebraRelacionalReunión externa entre relaciones (y 4) ACTOR   AGENCIA       nomAc        nomAg     ...
2.4 Manipulación de datos2.4.2. Cálculo Relacional• Lenguaje formal para BD Relacionales• Basado en Cálculo de Predicados ...
2.4 Manip. de datos: CálculoRelacional• Poder expresivo idéntico de álgebra y cálculo  relacionales      Cualquier obtenci...
2.4 Manip. de datos: CálculoRelacionalExpresiones de consulta• CRT basado en la especificación de variables de tupla• Toda...
2.4 Manip. de datos: CálculoRelacionalExpresiones de consulta (y 2)• Obtención de algunos atributos de las tuplas  selecci...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista informalUna expresión del Cálculo Relacional conti...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista formal• Expresión General { t1.a1, t2.a2, ... , tn...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista formal (2)• Átomos   – R(ti) el intervalo de la va...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista formal (3)• Valor lógico de un átomo  Evaluación d...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista formal (4)• Fórmula bien formada (fbf)  – Definici...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista formal (5)• Cuantificadores  – Universal ∀   (∀ t)...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista formal (6)• Variable de tupla libre y ligada en un...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista formal (7)• Fórmula bien formada             (cont...
2.4 Manip. de datos: CálculoRelacionalExpresión del CRT: punto de vista formal (8)• Fórmula bien formada              (con...
2.4 Manip. de datos: Cálculo Relacional Expresión del CRT: punto de vista formal (y 9)• Expresión segura    – Su resultado...
Upcoming SlideShare
Loading in …5
×

Tema2 1

421
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
421
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Los nombres de la relación y de los atributos ayudan a interpretar el significado de los valores de cada una de las tuplas.
  • Un dominio es un conjunto de valores escalares Un Escalar es: Menor unidad semántica de información: valor de un dato individual Valor Atómico (desde pto. de vista del modelo)
  • Cardinalidad m (cambia con el tiempo) Grado n (no suele variar)
  • La propiedad 3 (atributos no ordenados) no se cumple en las Relaciones matemáticas, donde los pares o tuplas están ordenados, es decir la tupla (1,2,3) no es la misma que (3,1,2); en el caso del modelo relacional ambas tuplas serían la misma.
  • Relación es un concepto matemático (Codd lo era). En matemáticas, una relación entre los valores de dos conjuntos D1 y D2 es un subconjunto de su producto cartesiano: D1 X D2. En el modelo relacional, una Relación es un subconjunto del producto cartesiano entre los dominios de los atributos. Es decir, esos conjuntos D1, D2 ... Dn corresponden a los dominios de los atributos a1, a2... an de la relación R. La tabla... Sí puede contener tuplas repetidas Las filas están ordenadas de arriba abajo Los atributos están ordenados de izquierda a derecha
  • El usuario percibe la base de datos en forma de tablas (relaciones), que son la estructura lógica en un sistema relacional, no la estructura física. En un SBD relacional, los niveles conceptual y externo (ANSI/SPARC) serán relacionales (estructura lógica), no así el nivel interno. En el nivel físico, el sistema es libre de almacenar los datos como desee: archivos secuenciales, indexación, dispersión, cadenas de punteros, etc., con tal de que pueda asociar la representación almacenada con las tablas del nivel lógico (niveles conceptual y externo ANSI/SPARC)
  • Una superclave es un conjunto de atributos que identifican de forma unívoca cada tupla en la relación. El conjunto de todos los atributos es una superclave. Una clave es una restricción de integridad y, por tanto: Forma parte del esquema de la base de datos Ha de cumplirse para todos los estados posibles de la base de datos. No varía con el tiempo: sigue siendo válida aunque insertemos tuplas nuevas o borremos otras en la relación
  • Implicaciones: con a) se fuerza a que el código de cada cliente sea único dentro de cada ciudad: pueden existir varios clientes con el mismo código, siempre que residan en ciudades diferentes. Con b) el código de cliente debe ser único independientemente de la ciudad.
  • Las claves proporcionan el mecanismo básico de direccionamiento en el nivel de tuplas. La PK se utilizará para referirse de manera inequívoca a una única tupla (fila) de la relación.
  • Un escritor puede estar vinculado a una editorial en particular, con la que tiene un contrato.
  • Eliminación provocada por borrado en R1  Eliminación directa de tuplas de R2 Un ejemplo: PROFESOR  AREA  DEPARTAMENTO PROFESOR ( nif , nombre, despacho, área , teléfono, email...) AREA ( nombre , departamento , num_profesores...) DEPARTAMENTO ( nombre , sede, director ) Otro ejemplo: ASIGNATURA  TITULACIÓN  UNIVERSIDAD
  • La operación tradicional sobre conjuntos UNION nos servirá para explicar algunos de los conceptos cuyo conocimiento previos nos es necesario: compatibilidad de tipos o con la unión.
  • Los atributos correspondientes son aquellos que tienen igual significado en ambas relaciones R y S.
  • El resultado es un conjunto de pares de tuplas, donde cada una tiene esta pinta: ( (r1, r2, ..., rn), (s1, s2, ..., sm) ) Y la combinación de ambas es así: ( r1, r2, ..., rn, s1, s2, ..., sm )
  • El producto cartesiano ampliado las cumple, porque se considera que las tuplas del resultado no están ordenadas.
  • Esas tuplas NO satisfacen la condición de reunión , pues la pregunta (null = “algo”) siempre tiene FALSE como resultado.
  • Puede no especificarse condición de reunión si A y B no tienen atributos en común.
  • Nótese que el renombramiento en 1 y 2 se hace para que coincidan los nombres de los atributos de reunión, mientras que en el caso 3 se renombra para que no se realice la reunión natural entre dos atributos que se llaman igual (nombre) pero que no corresponden con el mismo concepto.
  • Nótese que los renombramientos en 1 y 3 se hace para que coincidan los nombres de los atributos de reunión ( guion , agencia ) y para evitar que se realice la reunión natural entre otros atributos, que se llaman igual ( titulo , nombre ) pero que no corresponden con el mismo concepto. En el caso 2 sólo se renombra para que coincidan los nombres de los atributos de reunión.
  • La división puede obtenerse realizando esta serie de operaciones del Algebra Relacional: Sean A(x,y), B(x), donde x, y son dos conjuntos de atributos. R1   y (A) R2   y ((B  R1) - A) R  R1 - R2
  • Nivel 1: Todos los empleados cuyo jefe directo sea “e” Nivel 2: todos los empleados cuyo jefe tenga, a su vez, como jefe directo a “e”. Es decir, su jefe debe estar entre los del nivel 1.
  • [Alapati 2003] Parece que el Álgebra Relacional, que está basada en los principios de la teoría de conjuntos, debería ser suficiente para recuperar información almacenada en una BD Relacional, que también está basada en la teoría de conjuntos. Entonces, ¿por qué no usamos el Álgebra Relacional para realizar todas nuestras consultas a la base de datos? El problema es que el Álgebra Relacional, aunque está basada en principios matemáticos correctos, cuenta con un lenguaje matemático procedural. Por tanto, cualquier consulta de base de datos (salvo las muy sencillas) se convierte en una expresión matemática bastante compleja y confusa. Sólo los programadores profesionales experimentados podrían usar tal base de datos. Para evitar la complejidad del Álgebra Relacional y centrarse en las consultas sin preocuparse por las técnicas procedurales, es necesario utilizar Cálculo Relacional. Este lenguaje no incluye la complejidad matemática del Álgebra Relacional, porque se centra sólo qué se pide a la base de datos, en lugar de en cómo conducir la consulta. Con el Cálculo Relacional el foco está en el resultado que se desea obtener y las condiciones que deben ser satisfechas en el proceso, y se ignora la secuenciación de las operaciones (cuestión que sí se considera en el Álgebra Relacional).
  • La igualdad del poder expresivo del AR y del CR no tiene en cuenta las operaciones de agregados en el AR.
  • Tema2 1

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

    ×