• No se han encontrado resultados

2. Modelo relacional de datos - Modelo Relacional

N/A
N/A
Protected

Academic year: 2019

Share "2. Modelo relacional de datos - Modelo Relacional"

Copied!
96
0
0

Texto completo

(1)

2. Modelo relacional de datos

Objetivos

Comprender los

principios estructurales

del modelo de

datos relacional formal

Entender los conceptos

integridad de entidad

e

integridad

referencial

, y apreciar su importancia

Entender los significados e implicaciones del concepto

nulo

en el modelo relacional

Comprender el concepto

vista relacional

, y la problemática

asociada a la modificación de datos a través de vistas

Conocer los lenguajes formales

álgebra relacional

y

cálculo

relacional de tuplas

, así como el lenguaje relacional

(2)

2

2. Modelo relacional de datos

Contenidos

2.1 Presentación y orígenes del modelo relacional

2.2 Estructura de datos relacional

2.3 Características generales de integridad de datos

2.4 Manipulación de datos: lenguajes relacionales

2.4.1 Álgebra relacional

(3)

2. Modelo relacional de datos

Bibliografía

[EN 2002] Elmasri, R.; Navathe, S.B.:

Fundamentos de Sistemas de Bases de Datos.

3ª Edición. Addison-Wesley. (Cap. 7, 8 y 9)

[EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de

bases de datos. Conceptos fundamentales. 2ª Edición. Addison-Wesley Iberoamericana. (Cap. 6 y 7)

[D 2001] Date, C.J.: Introducción a los sistemas de bases de datos. 7ª Edición. Prentice-Hall. (Cap. 3 al 9)

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

(4)

4

• 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

(5)

Base de Datos = Conjunto de Relaciones

Relación

Estructura de datos fundamental del modelo

– Tiene un nombre y representa una entidad genérica

Conjunto de tuplas

• Cada tupla representa una entidad concreta

– Compuesta de atributos con nombre (y dominio)

• Cada atributo representa un atributo de la entidad

– Representada mediante una tabla con filas y columnas

• Modelo basado en Teoría matemática

– Analogía entre “Relación” (concepto matemático) y “Tabla” – Teoría de Conjuntos y Lógica de Predicados de 1er orden » Sólida Base Formal

(6)

6

2.2 Estructura de datos relacional

título director género rodaje nacionalidad duración

Amores Perros A. González Drama 2000 México 145 The Matrix A. Wachowsky Ciencia-ficción 1999 EEUU 138 Torrente S. Segura Comedia 1997 España 110 Nos miran N. López Policiaco 2001 España 118 Amelie J. P. Jeunet Comedia 2001 Francia 122 Los lunes al sol F. León Drama 2002 España 117

tuplas c a rd in a li d a d grad o atributos

La relación PELICULA

---Ciencia-ficción, Drama,Thriller, Comedia... ---2002, 1997, 1999, 2001, 1994, 1972... Italia,Argentina, España, EEUU,

Francia,Japón.. --- ---

---d

o

m

in

io

(7)

Términos básicos

2.2 Estructura de datos relacional

Modelo Relacional Procesamiento de Ficheros

Formal SQL-92

Relación Tabla Fichero

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

Atributo Debe tener un nombre único dentro de cada relación cabecera deColumna Nombre deCampo de registro

Cardinalidad nº de tuplas en una relación =

Grado nº atributos en una relación =

(8)

8

Conjunto de valores atómicos

del mismo tipo, donde

toman su valor los atributos

– La definición de dominios forma parte de la definición de la BD

– Cada atributo definido sobre un ÚNICO dominio OBLIGATORIO

– Si A, B representan un mismo concepto, A y B con mismo dominio – Dominio D puede contener valores no tomados por ningún atributo

{valores de A}

Dominio(A)

• Comparaciones Restringidas a Dominio

– La comparación de dos atributos sólo tiene sentido si ambos toman valores del mismo dominio

– Si el SGBD soporta dominios, podrá detectar este tipo de errores

Definiciones formales: DOMINIO

(9)

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

{ (A

1

:D

1

), (A

2

:D

2

) ... (A

n

:D

n

) }

– 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

{ { (A

:v

), (A

:v

) ... (A

:v

) } },

donde i=1..m

Definiciones formales: RELACIÓN

(1)

(10)

10

Un esquema de relación:

PELICULA (titulo:Titulos, duracion:Tiempo, director:Nombres, estreno:Fechas)

Un estado de la relación:

{ { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) }

{ (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) }

... }

• El estado de una relación es variable en el tiempo

nuevas tuplas, modificación o borrado de existentes

• El esquema no suele variar  costoso:

· reescritura de “miles” de tuplas

· ¿valores de nuevos atributos para tuplas ya existentes?

– Suele incluir un conjunto de Reglas de Integridad (se verá)

Definiciones formales: RELACIÓN

(2)

(11)

Propiedades de una Relación

1.

No

existen

tuplas

repetidas

2.

Las

tuplas no

están

ordenadas

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

estado = conjunto matemático de tuplas

Definiciones formales: RELACIÓN

(3)

(12)

12

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

Definiciones formales: RELACIÓN

(4)

(13)

Relación vs. Tabla

– Relación

: Representación abstracta de un elemento de datos

– Tabla

: Representación concreta de tal elemento abstracto

– Ventajas

 Representación muy sencilla (tabla) del elemento abstracto básico (relación) del Modelo Relacional

 Fácil de utilizar, entender, razonar... – Inconveniente

Aparente orden entre filas y entre columnas de la tabla

Definiciones formales: RELACIÓN

(5)

(14)

14

• Percibida por usuarios

como una

colección de relaciones

– de diversos grados (nº de atributos)

– que varían con el tiempo (nº de tuplas, estado)

• Las relaciones (tablas) son la estructura lógica de la BD

– Niveles externo y conceptual

ANSI/X3/SPARC

• Toda BDR cumple el Principio de Información:

Todo contenido de información de la BD está representado

de una y sólo una forma: como

valores

explícitos

dentro de posiciones de columnas dentro de filas dentro de tablas

• Conexión lógica entre Relaciones

(

vínculo

o

interrelación

) – Representada mediante valores

– No existen punteros (visibles al usuario)

Definiciones formales: BD RELACIONAL

(1)

(15)

• En una BDR distinguimos...

Esquema

de base de datos

 Descripción de la base de datos

 Conjunto de esquemas de relación

PELICULA ( titulo:Títulos, director:Nombres, género:Géneros, rodaje:Años, nacionalidad:Países, duración:Tiempo ) ACTOR ( nombre:Nombres, nombreArtistico: Nombres,

agente:Nombres, cache:Dinero )

DIRECTOR ( nombre:Nombres, nacionalidad:Países, operaPrima:Títulos )

...

Estado

o instancia de base de datos

 Visión del contenido de la base de datos en cierto instante

 Conjunto de estados de relación

Definiciones formales: BD RELACIONAL

(2)

(16)

16

• 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

(17)

Claves Candidatas y Primarias

• 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

2.3 Características generales de

integridad de datos

(18)

18

Sea R una relación

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 restricción de Unicidad:

No existen dos tuplas distintas con la misma

combinación de valores para SK

• Una

clave

de R es una superclave tal que cumple la

restricción de Irreductibilidad:

Ningún subconjunto de CK cumple la r. Unicidad

• Clave Simple

(1 atributo)

o Compuesta

(varios atributos)

• Cada clave es una restricción de integridad

2.3 Características generales de

integridad de datos

(19)

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

2.3 Características generales de

integridad de datos

(20)

20

• 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 Características generales de

integridad de datos

(21)

• Conjunto de atributos FK de una relación R2, tal que:

1. Existe otra relación R1 con clave primaria PK , y

2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de R1

Conjunto de atributos de una relación que hace referencia a

la clave primaria de otra relación (o la misma)

• PELICULA (título, género, duración, director, ...) DIRECTOR (nombre, nacionalidad, ...)

• EMPLEADO (codEmp, nombre, jefe, nss, ...)

• LIBRO (título, isbn, autor, editorial, edición, año, ...) ESCRITOR (dni, nombre, ...)

ARTICULO (título, tema, autor, revista, página, ...)

2.3 Características generales de

integridad de datos

(22)

22

Cada componente de una FK debe estar definido

sobre el mismo

dominio

que el correspondiente

atributo de la PK a la que referencia

PACIENTE (nss, nombre, dirección, ...)

HISTORIAL (nss, especialidad, fechaApert, ...) VISITA (nss, especialidad, numVisita, fecha, ...)

• Clave Ajena Simple o Compuesta

• El uso de Claves Ajenas facilita...

– Eliminación de la Redundancia: Integridad entre ficheros – Mecanismo del Modelo Relacional de datos para establecer

VÍNCULOS ENTRE RELACIONES

2.3 Características generales de

integridad de datos

(23)

CLIENTE

CUENTA

2.3 Características generales de

integridad de datos

Clave Ajena (Externa o Foránea)

(3)

nombre dirección ciudad cuenta

García, A Gran Vía, 6 Murcia 200

López, B Ronda Norte, 3 Murcia 821

Azorín, C Paseo Nuevo, 9 Valencia 505

Pérez, C Plaza Mayor, 2 Valencia 505

...

número saldo .. .

200 35000

505 40000

821 50000

...

Cada cliente sólo puede tener una

cuenta a su nombre.

Una cuenta puede tener más de

un cliente como titular.

(24)

24

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

 

Puede existir algún valor de PK al que NO haga referencia

ningún valor de la FK

– ESCRITOR que no haya escrito artículos: ninguna tupla de ARTICULO

hará referencia a la tupla correspondiente a dicho escritor

2.3 Características generales de

integridad de datos

Clave Ajena (Externa o Foránea)

(4)

(25)

• Diagrama Referencial

– Expresión de la existencia de Claves Ajenas

• Camino Referencial

2.3 Características generales de

integridad de datos

Clave Ajena (Externa o Foránea)

(y 5)

ESCRITOR dni nombre ... editorial

LIBRO título isbn autor editorial ...

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

EDITORIAL nombre dirección ...

• Ciclo Referencial

– Camino que empieza y acaba en la misma relación

– Caso especial: Autorreferencia EMPLEADO codEmp ... jefe

(26)

26

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

2.3 Características generales de

integridad de datos

Mantenimiento de la Integridad Referencial

OCUPACIÓN codClie habit ...

CLI04 100 CLI02 420 CLI05 115 CLI10 100

HABITACIÓN numHabit tipo ...

115 I 420 I

100 D

304 D

405 I

(27)

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

2.3 Características generales de

integridad de datos

(28)

28

R2



R1

Operación:

Eliminar

una tupla

t

de

R1

que es

referenciada por otras de

R2

Ejemplo:

Eliminar la tupla (100, D, ...) de HABITACIÓN

Acciones posibles:

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

Sólo permite borrar t si ninguna otra tupla hace referencia a t

2. Cascada. Propagar la eliminación

1º Borrar todas las tuplas de R2 que referencian a t

2º Eliminar t

3. Establecer nulos – (* se verá después *)

2.3 Características generales de

integridad de datos

(29)

R2



R1

Operación:

Modificar

el valor de una FK a un valor

no

existente en la PK de

R1

Ejemplo:

Modificar (CLI02, 420,...) a (CLI02, 900,...) en

OCUPACIÓN

Acción:

1. Rechazar la operación (SIEMPRE)

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

Referencial

2.3 Características generales de

integridad de datos

(30)

30

Tema 2. Modelo relacional de datos

Operación:

Modificar

el valor de la PK de una tupla

t

de

R1

que es referenciada por otras tuplas de

R2

Ejemplo:

Modificar la tupla (100, D,...) a (130, D,...) en

HABITACIÓN

Acciones posibles:

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

Sólo permite modificar la PK de t si ninguna tupla referencia a t

2. Cascada. Propagar la modificación

- Toda tupla de R2 que referencia a t seguirá haciendolo: modificar su valor de FK al nuevo valor de la PK de t

- Modificar el valor de la clave primaria de t

3. Establecer nulos – (* se verá después *)

2.3 Características generales de

integridad de datos

(31)

R2



R1

Operación:

Inserción

de una tupla

t

en

R2

cuyo

valor de FK

no se corresponde con ningún valor

de la PK en

ninguna tupla de

R1

Ejemplo:

Insertar una tupla (CLI03, 555, ...) en OCUPACIÓN

Acciones posibles:

- Rechazar la operación (SIEMPRE)

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

Referencial

2.3 Características generales de

integridad de datos

(32)

32

• Encadenamiento de eliminaciones

(análogo para Modificación)

R2 R1, Acción de Eliminación en Cascada

R3 R2, Acción de Eliminación XX

- Eliminar una tupla de R1  eliminar tuplas de R2 que la referencian

- Pero existen tuplas en R3 que referencian esas tuplas de R2... ¿cómo afecta la Acción de Eliminación X en esta operación?X

 Si X = en CASCADA, no-problemo! X  eliminar esas tuplas de R3  Si X = RECHAZAR X  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

2.3 Características generales de

integridad de datos

Mantenimiento de la Integridad Referencial

(y 7)

(33)

• 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

2.3 Características generales de

integridad de datos

(34)

34

• 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

2.3 Características generales de

integridad de datos

(35)

• 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

2.3 Características generales de

integridad de datos

(36)

36

• Hay que extender algunas acciones de mantenimiento de

la Integridad Referencial:

R2



R1

Operación:

Eliminar

una tupla

t

de

R1

que es

referenciada por otras de

R2

Acciones posibles:

1. Rechazar la operación (acción por defecto) 2. Cascada. Propagar la eliminación

3. Establecer nulos

 Sólo si la FK de R2 permite NULO

- Toda tupla de R2 que referencia a t pasa a contener NULL en FK - Eliminar la tupla t

2.3 Características generales de

integridad de datos

(37)

R2



R1

Operación:

Modificar

el valor de la PK de una tupla

t

de

R1

que es referenciada por otras tuplas de

R2

Acciones posibles:

1. Rechazar la operación (acción por defecto) 2. Cascada. Propagar la modificación

3. Establecer nulos

 Sólo si la FK de R2 permite NULO

- Toda tupla de R2 que referencia a t pasa a contener NULL en FK - Modificar el valor de la PK de t

2.3 Características generales de

integridad de datos

(38)

38

Comprobar las claves candidatas (primaria y alternativas): No existen dos tuplas distintas con igual valor para una clave

 Definición de BD : indicar los Atributos Componentes de las Claves Candidatas

Comprobar la restricción de Integridad de entidad

Ningún atributo componente de una clave primaria contiene nulo

 Definición de BD : indicar los Atributos Componentes de la Clave Primaria

Comprobar la restricción de Integridad Referencial...

El valor de la clave ajena en cualquier tupla, o es nulo, o coincide con un valor de clave primaria de alguna tupla en la relación referenciada

 Definición de BD : indicar los Atributos Componentes de las Claves Ajenas

• ... y mantenerla frente operaciones que puedan violar la integridad

 Definición de BD : indicar Acciones de Mantenimiento de la Integridad Referencial

2.3 Características generales de

integridad de datos

(39)

Dominio

Definición del Dominio

CODPEL enteros(3) CODGUI enteros(3) CODDIR enteros(3) CODDIS enteros(2) CODACT enteros(4) CODAGE enteros(2)

SEXOS { M, 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ÑO

FECHAS FECHA

NOMBRES cadena caracteres variable (35) APELLIDOS cadena caracteres variable (80) DOMICILIOS cadena caracteres variable (50) TELEFONOS cadena caracteres variable (15)

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

(41)

• Definida por Codd, 1972

• Colección de operadores que toman relaciones como

operandos y devuelven relaciones como resultado

Operadores tradicionales sobre conjuntos

unión

intersección

diferencia

producto cartesiano

Los operandos son relaciones, y NO conjuntos arbitrarios

 operaciones adaptadas a relaciones (tipo especial de conjuntos)

Operadores relacionales especiales

restricción

proyección

reunión ( join )

división

2.4 Manipulación de datos

(42)

42

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)

2.4 Manip. de datos: Álgebra Relacional

(43)

• 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

2.4 Manip. de datos: Álgebra Relacional

(44)

44

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 número 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

UNIÓN

,

INTERSECCIÓN

,

DIFERENCIA

necesitan operandos compatibles en tipo

PRODUCTO CARTESIANO

no necesita compatibilidad de tipo en sus operandos

2.4 Manip. de datos: Álgebra Relacional

(45)

R

S

,

con R y S compatibles en tipo,

es una relación tal que:

Esquema: el de

R

(o

S

)

Estado: conjunto de tuplas que están en

R

, en

S

o en ambas

Las tuplas repetidas se eliminan (por definición)

Ejemplo: DIRECTOR  DIR_FOTOG

2.4 Manip. de datos: Álgebra Relacional

Unión

de relaciones

R

S

,

con R y S compatibles en tipo,

es una relación tal que:

Esquema: el de

R

(o

S

)

Estado: conjunto de tuplas que están a la vez en

R

y en

S

Ejemplo: DIRECTOR  DIR_FOTOG

(46)

46

R―S

,

con R y S compatibles en tipo,

es una relación tal que:

Esquema: el de

R

(o

S

)

Estado: conjunto de tuplas que están en

R

, pero NO en

S

operación con «cierta direccionalidad», como la resta aritmética

Ejemplo: DIRECTOR ― DIR_FOTOG

2.4 Manip. de datos: Álgebra Relacional

Diferencia

entre relaciones

• 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

(47)

2.4 Manip. de datos: Álgebra Relacional

• Por defecto, los atributos de la relación resultado de una

operación heredan los nombres de los del operando más

a la izquierda

DIR  DIRECTOR  DIR_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

(48)

48

• 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

= { (t

R

,t

S

)

/

t

R

R

y

t

S

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

2.4 Manip. de datos: Álgebra Relacional

(49)

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)

2.4 Manip. de datos: Álgebra Relacional

(50)

50

• 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

2.4 Manip. de datos: Álgebra Relacional

(51)

R, S, T

relaciones de tipos compatibles

Asociativa

( R

S )

T

R

( S

T )

R

S

T

( R

S )

T

R

( S

T )

R

S

T

( R

S )

T

R

( S

T)

R

S

T

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 el “ampliado”

2.4 Manip. de datos: Álgebra Relacional

(52)

52

• 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

2.4 Manip. de datos: Álgebra Relacional

(53)

• Ejemplos:

* Tuplas de actores representados por la agencia número 2

agencia=2 (ACTOR)

* Actores cuyo caché rebasa los 30.000€

cache>30000

(ACTOR)

* Actores representados por la agencia número 2, cuyo cache no llega

a los 22.000€, o bien por la agencia 4 y con caché superior a 32.000€

(agencia=2 AND cache<25000) OR (agencia=4 AND cache>35000)

(ACTOR)

2.4 Manip. de datos: Álgebra Relacional

(54)

54

Mecanismo de selección del sistema

– Aplica <condición> a cada tupla individual de <relación>, sustituyendo cada atributo por su valor en la tupla

– Si <condición> es TRUE, la tupla se selecciona para el resultado

Operador Restricción: Unario

– Sólo se aplica a UNA relación

Nunca puede seleccionar tuplas de más de una relación

– Se aplica a UNA sola tupla a la vez

<condición> nunca se refiere a más de una tupla

Grado(Relación Resultado) = Grado(Relación Origen) – Tienen los mismos atributos

Nº Tuplas(Relación Resultado)  Nº Tuplas(Relación Origen)

2.4 Manip. de datos: Álgebra Relacional

(55)

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

)

...

))

cond1AND cond2AND...AND condn

(R)

2.4 Manip. de datos: Álgebra Relacional

(56)

56

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

2.4 Manip. de datos: Álgebra Relacional

(57)

• Si

<listAtrib>

no contiene atributos clave  ¡tuplas repetidas!

* Obtener la agencia y la nacionalidad de todos los actores

agencia, nacionalidad

(ACTOR)

»

Eliminación implícita de duplicados

– Resultado  relación válida

Grado(Relación Resultado) = Nº atributos(<listAtrib>)

Nº Tuplas(Relación Resultado)  Nº Tuplas(Relación Origen) y es igual (=) si <listAtrib> contiene una clave candidata

2.4 Manip. de datos: Álgebra Relacional

(58)

58

• La operación proyección no es conmutativa

lista1

(

lista2

(R)

)

lista2

(

lista1

(R)

)

• Además, siempre que

lista1

lista2

, entonces...

lista1

(

lista2

(R)

)

=

lista1

(R)

2.4 Manip. de datos: Álgebra Relacional

(59)

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

2.4 Manip. de datos: Álgebra Relacional

(60)

60

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

)

2.4 Manip. de datos: Álgebra Relacional

Reunión o Join entre dos relaciones

(2)

R2 titulo nombre apellido

(61)

• Forma General para relaciones

A(a1, a2, ... an) y B(b1, b2, ... bm):

A

<condición de reunión>

B

• Resultado: Relación con n+m atributos (a1

, a

2

, ... a

n

, b

1

, b

2

, ... b

m

)

Esquema: unión de las cabeceras de A y B

Estado: conjunto de tuplas, una por cada combinación de tuplas (una de A y otra de B) que satisface <condición de

reunión>

Reunión vs. Producto Cartesiano

– En el Producto Cartesiano aparecen todas las combinaciones

posibles de tuplas de A y de B

2.4 Manip. de datos: Álgebra Relacional

(62)

62

• <

condición de reunión

>

– Expresión booleana especificada en términos de atributos de A y

B

Evaluada para cada combinación (par) de tuplas:

Si la cumplen, forman una nueva tupla de la relación resultado – Es de la forma:

<condición> AND <condición> AND... AND <condición>

donde:

<condición> tiene la forma ai

bj (condición de reunión general), y

· ai es un atributo de A; bj es un atributo de B,

· Dominio(ai) = Dominio(bj),

 

(theta) cumple que

 {=, <, , >, , }

• Reunión con condición de reunión general

REUNIÓN THETA

2.4 Manip. de datos: Álgebra Relacional

(63)

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=codAgAGENC)

2. Prefijar atributos con el nombre de su tabla

R ACTOR.nombre,AGENCIA.nombre(ACTOR agencia=codAgAGENCIA)

2.4 Manip. de datos: Álgebra Relacional

(64)

64

• Las tuplas cuyos atributos de reunión son nulos,

NO aparecen en la relación resultado

– Los actores que se auto-representan tienen NULL en atributo agencia

– Sus tuplas no aparecen en ACTOR agencia=codAg

AGENC

• Las tuplas de una relación que no encuentran

correspondencia en la otra, tampoco aparecen en la

relación resultado

– Los actores que no han actuado en ninguna película, no aparecen en ninguna tupla de la tabla ACTUA_EN

– Sus tuplas no aparecen en ACTOR codA=actor

ACTUA_EN

2.4 Manip. de datos: Álgebra Relacional

(65)

• En general, sea

A

con

n

A

tuplas y

B

con

n

B

tuplas, entonces

R

A

<condición de reunión>

B

cumple que

0

n

R

n

A

*n

B

• Si ninguna combinación de tuplas de

A

y

B

cumple la

<condición de reunión

>, entonces

– Relación Resultado = Relación vacía (cero tuplas)

• Si NO se especifica

<condición de reunión>

, entonces

– la <condición de reunión> es TRUE para todas las tuplas, y

(REUNIÓN

PROD. CARTESIANO

REUNIÓN CRUZADA)

2.4 Manip. de datos: Álgebra Relacional

(66)

66

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

2.4 Manip. de datos: Álgebra Relacional

(67)

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

Reunión natural

entre relaciones

(2)

S b d

3 -4 1 -5

T1 a R.b c S.b d

10 1 100 1 -5 20 3 100 3 -4

R a b c

10 1 100 20 3 100 30 5 300

T2 a b c d

(68)

68

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

2.4 Manip. de datos: Álgebra Relacional

(69)

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

{ (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 común. Útil para consultas especiales ocasionales

Nombres de los actores que trabajan en todas las películas dirigidas por los hermanos Cohen

• Para que una tupla

t

aparezca en el resultado, los valores

de

t

deben aparecer en

A

en combinación con todas las

tuplas de

B

2.4 Manip. de datos: Álgebra Relacional

(70)

70

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

R = A

B

El resto de valores de y en A, no aparecen con todas las tuplas de B y no son

seleccionadas: y2 no aparece con x2, e y3 no aparece con x1

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

(71)

• Algunas consultas comunes no pueden expresarse con las

operaciones estándar del Álgebra Relacional

– Ampliación de su poder expresivo con operaciones adicionales

– Incluidas en la mayoría de los lenguajes de consulta relacionales comerciales

Funciones de agregados

– Funciones matemáticas de agregados sobre colecciones de valores de la base de datos

 Valor medio del caché de todos los actores

 Número de películas (almacenadas en la BD)

 Máximo porcentaje de comisión de las distribuidoras de películas

 Mínima recaudación en taquilla

 Cantidad total pagada a los actores de cierta película

2.4 Manip. de datos: Álgebra Relacional

(72)

72

• Funciones aplicadas a un conjunto de tuplas

– SUMA

– PROMEDIO – MÁXIMO – MÍNIMO

– CUENTA (número de tuplas en una relación)

Agrupación de tuplas según valor de ciertos atributos

– Puede aplicarse una función agregada a cada grupo por separado

* Media del caché de los actores agrupados por agencias ¿Solución?

 Agrupar actores según su agencia representante (valor de atributo agencia) » Cada grupo incluye tuplas de actores representados por la misma agencia

 Cálculo del caché medio de cada grupo (función PROMEDIO)

• El resultado es una relación

R(agencia, PROMEDIO_caché)

2.4 Manip. de datos: Álgebra Relacional

(73)

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

(74)

74

<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

2.4 Manip. de datos: Álgebra Relacional

(75)

• Ejemplos:

1. Códigos de Películas, número de actores en cada película y su paga media

R(codpeli, numActores, pagaMedia) film

F

CUENTA actor,PROMEDIO paga(ACTUA_EN)

2. Códigos de agencias, número de actores en cada agencia y caché medio

R(codAg, numActores, cacheMedio)agencia

F

CUENTA codA,PROMEDIO cache(ACTOR)

• Si no se indican nombres para los atributos de la relación

resultado

R

, dicha relación incluirá...

– un atributo por cada atributo incluido en <atributos de agrupación>, con el mismo nombre, y

– un atributo por cada función incluida en <lista funciones>, denominado FUNCIÓN_atributo

Los esquemas de las relaciones resultado de los ejemplos anteriores serían: 1. R(film,CUENTA_actor, PROMEDIO_paga)

2. R(agencia, CUENTA_codA, PROMEDIO_cache)

2.4 Manip. de datos: Álgebra Relacional

(76)

76

• Si no se especifican atributos de agrupación

– Toda la relación es un único grupo

– Las funciones se aplican a todas las tuplas

– La relación resultado tendrá una sola tupla

* Número de películas y recaudación media

F

CUENTA codP,PROMEDIO taquilla

(

PELICULA

)

• El resultado de aplicar una función agregada siempre es

una relación, no un nº escalar, aunque tenga un único

valor

* Recaudación máxima obtenida

F

MÁXIMO taquilla

(

PELICULA

)

2.4 Manip. de datos: Álgebra Relacional

Funciones de agregados

(y 5)

R MAXIMO_taquilla

(77)

• No pueden expresarse en el Álgebra Relacional

• Se aplican a una referencia recursiva entre tuplas del mismo

tipo

(empleado y jefe en la relación EMPLEADO)

*

Códigos de los empleados que tienen como superior a “

e

”, en

todos

los niveles

_________________Nivel 1

_________________Nivel 2

_________________Nivel 3 etc. e

e11 e12 ... e1n

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

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

2.4 Manip. de datos: Álgebra Relacional

(78)

78

• En Álgebra Relacional es sencillo especificar empleados

cuyo jefe es “

e

” en cierto nivel conocido, pero no en todos

los niveles

Ejemplo para el nivel 2: código de los empleados cuyo jefe directo es “e” o bien su jefe es un empleado cuyo jefe es “e”

EMP_JEF(codE, codJ)  codemp, codjefe(EMPLEADO)

EMP_1(cod)  codE (

codJ=“e” (EMP_JEF)) Empleados de nivel 1

EMP_2(cod)  codE(EMP_JEF codJ=cod (EMP_1)) Empleados de nivel 2

RESULTADO  EMP_1  EMP_2

2.4 Manip. de datos: Álgebra Relacional

(79)

• 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

)

2.4 Manip. de datos: Álgebra Relacional

(80)

80

REUNIÓN EXTERNA IZQUIERDA

R = A

B

– Conserva en R todas las tuplas de A

– Si no encuentra una tupla coincidente en B, cada atributo de R

(correspondiente a B) es NULO

REUNIÓN EXTERNA DERECHA

R = A

B

– Conserva en R todas las tuplas de B

– Si no encuentra una tupla coincidente en A, cada atributo de R

(correspondiente a A) es NULO

REUNIÓN EXTERNA COMPLETA

R = A

B

– Conserva en R todas las tuplas de A y de B

– Cuando no encuentra tuplas coincidentes, rellena con NULO

2.4 Manip. de datos: Álgebra Relacional

(81)

* 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

2.4 Manip. de datos: Álgebra Relacional

Reunión externa entre relaciones

(3)

ACTOR nomAc ... agencia ...

Carmelo Gómez A23 María Pujalte A03 Pere Ponce A10 Javier Bardem NULL

AGENCIA codAg nomAg ...

(82)

82

2.4 Manip. de datos: Álgebra Relacional

Reunión externa entre relaciones

(y 4)

ACTOR AGENCIA nomAc nomAg

Carmelo Gómez ARA

María Pujalte ActorsMngr Pere Ponce AgeRep

NULL ReprActors

ACTOR AGENCIA nomAc nomAg

Carmelo Gómez ARA

María Pujalte ActorsMngr Pere Ponce AgeRep Javier Bardem NULL

ACTOR AGENCIA

nomAc nomAg

Carmelo Gómez ARA

María Pujalte ActorsMngr Pere Ponce AgeRep Javier Bardem NULL

(83)

• Lenguaje formal para BD Relacionales

• Basado en Cálculo de Predicados de Primer Orden (rama

de Lógica Matemática)

2.4 Manipulación de datos

2.4.2.

Cálculo Relacional

Cálculo Relacional vs. Álgebra Relacional

- Expresiones Declarativas

(lenguaje no procedimental) - Secuencias de Operaciones

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

»Describe la información deseada sin dar un procedimiento

específico para obtenerla

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

de las operaciones

(84)

84

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 1

er

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

(85)

• CRT basado en la especificación de

variables de tupla

• Toda variable de tupla

«abarca» o recorre una relación

 puede tomar como valor cualquier tupla de esa relación

{ t | COND(t) }

• Resultado: conjunto de tuplas t que satisfacen la condición

COND(t)

• COND(t)

: expresión condicional en la que interviene la var. de tupla

t

* Actores cuyo caché rebasa los 2.000€

{ t | ACTOR(t) and t.cache>2000 }

– ACTOR(t) indica que ACTOR es la Relación de Intervalo que t recorre

– t.cache hace referencia al atributo caché de la variable de tupla t

2.4 Manip. de datos: Cálculo Relacional

(86)

86

• Obtención de algunos atributos de las tuplas seleccionadas

{

<lista atributos>

| COND(t) }

• Ejemplos:

* Nombre y nacionalidad de los actores cuyo caché rebasa los 2.000€

{ t.nombre, t.nacionalidad | ACTOR(t) and t.cache>5000 }

* Fecha de nacimiento y nombre real del actor “Javier Bardem”

{ t.fechaNacim, t.nombreReal | ACTOR(t) and t.nombre = “Javier Bardem” }

2.4 Manip. de datos: Cálculo Relacional

Referencias

Documento similar

Un método de estudio aparte de ser una herramienta muy útil al momento de estudiar también nos ayuda a agilizar nuestra mente y tener una buena memoria para futuro?. Palabras

(1886-1887) encajarían bien en una antología de textos históricos. Sólo que para él la literatura es la que debe influir en la historia y no a la inversa, pues la verdad litera- ria

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

 Clave ajena: sus valores deben coincidir con los de la clave primaria de otra relación  representa una relación entre datos a modo de referencia. 

1 de 26.. Cálculo Relacional Orientado a Tuplas. Equivalencia entre Cálculo Relacional y Álgebra Relacional: El Algoritmo de Reducción de Codd... Tema

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de