98
::Universidad del Mar:: ::Universidad del Mar:: ::Campus Puerto Escondido :: ::Campus Puerto Escondido :: Tema III. Tema III. Modelo Relacional Modelo Relacional Bases de Datos I Bases de Datos I MTI Remedios Fabián Velasco MTI Remedios Fabián Velasco Ver. 1.1 Ver. 1.1 Cuarto Semestre Cuarto Semestre Licenciatura en Informática Licenciatura en Informática

Bases de Datos I. Tema III. Modelo Relacional

Embed Size (px)

DESCRIPTION

Trabajo hecho por la M.C. Remedios Fabián Velasco, docente de la Universidad del Mar, campus Puerto Escondido.

Citation preview

Page 1: Bases de Datos I. Tema III. Modelo Relacional

::Universidad del Mar:: ::Universidad del Mar:: ::Campus Puerto Escondido ::::Campus Puerto Escondido ::

Tema III. Tema III. Modelo RelacionalModelo Relacional

Bases de Datos IBases de Datos IMTI Remedios Fabián VelascoMTI Remedios Fabián Velasco

Ver. 1.1Ver. 1.1Cuarto SemestreCuarto Semestre

Licenciatura en InformáticaLicenciatura en Informática

Bases de Datos IBases de Datos IMTI Remedios Fabián VelascoMTI Remedios Fabián Velasco

Ver. 1.1Ver. 1.1Cuarto SemestreCuarto Semestre

Licenciatura en InformáticaLicenciatura en Informática

Page 2: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

SimbologíaSimbología

Concepto importanteConcepto importante

Base de DatosBase de Datos

Tarea o ejercicioTarea o ejercicio

AplicacionesAplicaciones

Tablas – Entidades - RelacionesTablas – Entidades - Relaciones Tabla 2Tabla 2

Page 3: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

TemarioTemario

3 Modelo relacional.3 Modelo relacional.3.1 Estructura de las bases de datos 3.1 Estructura de las bases de datos relacionales.relacionales.3.2 Lenguajes formales de consulta.3.2 Lenguajes formales de consulta.3.3 Álgebra relacional.3.3 Álgebra relacional.3.4 Cálculo relacional.3.4 Cálculo relacional.3.5 Modificación de la base de datos.3.5 Modificación de la base de datos.3.6 Integridad.3.6 Integridad.3.7 Vistas.3.7 Vistas.

Page 4: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Modelo Relacional. Breve Modelo Relacional. Breve HistoriaHistoria

Propuesto por E. F. Codd en su artículo Propuesto por E. F. Codd en su artículo original original “A relational model of data for large “A relational model of data for large shared data banks”shared data banks” (Codd, 1970), (Codd, 1970), anteriormente se había propuesto un anteriormente se había propuesto un modelo orientado a conjuntos (Childs, 1968).modelo orientado a conjuntos (Childs, 1968).

Los objetivos del modelo relacional de Codd Los objetivos del modelo relacional de Codd eran:eran:

Permitir un Permitir un alto grado de independenciaalto grado de independencia de los de los datos.datos.Proporcionar una base teórica sólida que Proporcionar una base teórica sólida que permitiera tratar con la permitiera tratar con la semánticasemántica de los datos y de los datos y con los problemas de con los problemas de coherenciacoherencia y de y de redundanciaredundancia. . Codd introducía el concepto de relaciones Codd introducía el concepto de relaciones normalizadasnormalizadas..Permitir la ampliación de Permitir la ampliación de lenguajes de lenguajes de manipulaciónmanipulación orientados a conjuntos. orientados a conjuntos.

Page 5: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Modelo Relacional. Breve Modelo Relacional. Breve HistoriaHistoria

Este modelo tomo importancia debido Este modelo tomo importancia debido a tres proyectos que se desarrollaron a tres proyectos que se desarrollaron posteriormente para demostrar la posteriormente para demostrar la posibilidad de implementar el modelo posibilidad de implementar el modelo relacional:relacional:

Sistema RSistema R: Prototipo SGBD Relacional. : Prototipo SGBD Relacional. Laboratorio de Investigación San José de Laboratorio de Investigación San José de IBM. Finales de 1970.IBM. Finales de 1970.

Condujo a dos desarrollosCondujo a dos desarrollosLenguaje de consulta estructurado – SQLLenguaje de consulta estructurado – SQLDesarrollo de varios productos Desarrollo de varios productos manejadores de base de datos – DB2, manejadores de base de datos – DB2, SQL/DS y Oracle.SQL/DS y Oracle.

Page 6: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Modelo Relacional. Breve Modelo Relacional. Breve HistoriaHistoria

INGRESINGRES (Interactive Graphics Retrieveal (Interactive Graphics Retrieveal Systems, sistema gráfico interactivo de Systems, sistema gráfico interactivo de extracción. Universidad de California en extracción. Universidad de California en Berkeley, Berkeley, Versión académicaVersión académica que que contribuyo a la popularización de los contribuyo a la popularización de los conceptos.conceptos.Peterlee Relational Test VehiclePeterlee Relational Test Vehicle en le en le laboratorio de IBM Scientific Centre en laboratorio de IBM Scientific Centre en Peterlee, Reino Unido. Proyecto más Peterlee, Reino Unido. Proyecto más teórico que los anteriores y su principal teórico que los anteriores y su principal importancia radica en la investigación de importancia radica en la investigación de cuestiones tales como el cuestiones tales como el procesamiento y procesamiento y optimización de consultas y la ampliación optimización de consultas y la ampliación funcional.funcional.

Page 7: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Terminología Modelo Terminología Modelo RelacionalRelacional

Una base de datos relacional Una base de datos relacional consiste en consiste en un conjunto de un conjunto de tablastablas, a cada una de las , a cada una de las cuales se le asigna un nombre exclusivocuales se le asigna un nombre exclusivo. . Cada Cada filafila de la tabla representa una de la tabla representa una relaciónrelación entre un conjunto de valoresentre un conjunto de valores..Dado que Dado que cada tabla es un conjunto de cada tabla es un conjunto de dichas relacionesdichas relaciones, hay una fuerte , hay una fuerte correspondencia entre el concepto de correspondencia entre el concepto de tabla tabla y el concepto matemático de y el concepto matemático de relaciónrelación, del , del que toma su nombre el modelo de datos que toma su nombre el modelo de datos relacional. relacional.

Page 8: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Terminología Modelo Terminología Modelo RelacionalRelacional

Base de Datos RelacionalBase de Datos Relacional es una colección es una colección de relaciones normalizadas en la que cada de relaciones normalizadas en la que cada relación tiene un nombre distinto.relación tiene un nombre distinto.Una Una relaciónrelación es una tabla con columnas y es una tabla con columnas y filas.filas.

Solamente aplica a estructuras lógicas de la BD, Solamente aplica a estructuras lógicas de la BD, no a la estructura física.no a la estructura física.

AtributosAtributos son las columnas nominadas de son las columnas nominadas de la relación.la relación.DominioDominio es el conjunto de valores es el conjunto de valores permitidos para uno o más atributos.permitidos para uno o más atributos.TuplaTupla es una fila de una relación. es una fila de una relación.GradoGrado es el número de atributos en una es el número de atributos en una relación.relación.CardinalidadCardinalidad es el número tuplas en una es el número tuplas en una relación.relación.

Page 9: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Terminología Modelo Terminología Modelo RelacionalRelacional

Tiene tres cabeceras de Tiene tres cabeceras de columna: columna: noCuentanoCuenta, , nomSucursal nomSucursal y y saldosaldo. . Siguiendo la terminología Siguiendo la terminología del modelo relacional se del modelo relacional se puede hacer referencia a puede hacer referencia a estas cabeceras como estas cabeceras como atributos atributos (igual que se (igual que se hizo en el modelo E-R ). hizo en el modelo E-R ). Para cada atributo hay un Para cada atributo hay un conjunto de valores conjunto de valores permitidos, llamado permitidos, llamado dominiodominio de ese atributo. de ese atributo. Para el atributo Para el atributo nomSucursalnomSucursal, por ejemplo, , por ejemplo, el dominio es el conjunto el dominio es el conjunto de los nombres de las de los nombres de las sucursales.sucursales.

noCuentanoCuenta nomSucursalnomSucursal saldosaldo

C101C101C102C102C201C201C215C215C217C217C222C222C305C305

CentroCentroNavacerradaNavacerradaGalapagarGalapagarBecerrilBecerrilGalapagarGalapagarMoralzarzalMoralzarzalCollado MedianoCollado Mediano

500500400400900900700700750750700700350350

Dominio 1Dominio 1 Dominio 2Dominio 2 Dominio 3Dominio 3

Page 10: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Ejemplos de dominios de Ejemplos de dominios de atributosatributos

AtributoAtributo DominioDominio SignificadoSignificado DefiniciónDefiniciónnoSucursalnoSucursal Números de Números de

sucursalsucursalEl conjunto de todos los posibles El conjunto de todos los posibles número de sucursalnúmero de sucursal

Carácter: Tamaño 4 Carácter: Tamaño 4 Rango de B001-Rango de B001-B999B999

callecalle Nombres de Nombres de CallesCalles

El conjunto de todos los nombres El conjunto de todos los nombres de calle de Oaxaca.de calle de Oaxaca.

Carácter: Tamaño Carácter: Tamaño 2525

ciudadciudad Nombres de Nombres de ciudadesciudades

El conjunto de todos los nombres El conjunto de todos los nombres de las ciudades de Oaxaca.de las ciudades de Oaxaca.

Carácter: Tamaño Carácter: Tamaño 1515

codPostcodPost Códigos Códigos PostalesPostales

El conjunto de todos los códigos El conjunto de todos los códigos postales de las ciudades de postales de las ciudades de Oaxaca.Oaxaca.

Carácter: Tamaño 8Carácter: Tamaño 8

sexosexo Sexo del Sexo del personalpersonal

El sexo de la personaEl sexo de la persona Carácter: Tamaño 1 Carácter: Tamaño 1 Valor M o FValor M o F

NacimientoNacimiento Fechas de Fechas de nacimientonacimiento

Todas las fechas posibles de Todas las fechas posibles de nacimientonacimiento

Date, Rango desde Date, Rango desde 1/01/1900 formato 1/01/1900 formato dd/mm/aaaadd/mm/aaaa

salariosalario Salarios del Salarios del personalpersonal

Posibles valores del salario del Posibles valores del salario del personalpersonal

Monetario: 7 dígitos, Monetario: 7 dígitos, Rango de 6000.00 – Rango de 6000.00 – 40000.00 40000.00

Page 11: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Terminología alternativa Terminología alternativa para el Modelo Relacionalpara el Modelo Relacional

© Pearson Education Limited 1995, 2005

Termino FormalTermino Formal Alternativa Alternativa 11

Alternativa Alternativa 22

RelaciónRelaciónTuplaTuplaAtributoAtributo

TablaTablaFilaFilaColumnaColumna

ArchivoArchivoRegistroRegistroCampoCampo

Page 12: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Terminología Modelo Terminología Modelo RelacionalRelacional

© Pearson Education Limited 1995, 2005

RelacionRelaciones es Sucursal Sucursal y y Personal:Personal:

Page 13: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

EjercicioEjercicio

De la figura anterior explica cada elemento De la figura anterior explica cada elemento de la estructura relacional que se describe de la estructura relacional que se describe en las flechas.en las flechas.Indica el grado de cada relación.Indica el grado de cada relación.Indica la cardinalidad de cada relación.Indica la cardinalidad de cada relación.

Page 14: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.1 Estructura de las bases de 3.1 Estructura de las bases de datos relacionales.datos relacionales.

En la relación cuenta: D1 denota el conjunto de todos los números de cuenta, D2 el conjunto de todos los nombres de sucursal y D3 el conjunto de los saldos. Todas las filas de una relación cuenta deben consistir en una tupla (v1, v2, v3), donde v1 es un número de cuenta (es decir, v1 está en el dominio D1), v2 es un nombre de sucursal (es decir, v2 está en el dominio D2) y v3 es un saldo (es decir, v3 está en el dominio D3).

tupla (v1, v2, v3)

Cuenta sólo contendrá un subconjunto del conjunto de todas las filas posibles. Por tanto, cuenta es un subconjunto de D1 × D2 × D3.En general, una tabla de n atributos debe ser un subconjunto deD1 × D2 ×… × Dn – 1 × Dn.

noCuentanoCuenta nomSucursalnomSucursal saldosaldo

C101C101C102C102C201C201C215C215C217C217C222C222C305C305

CentroCentroNavacerradaNavacerradaGalapagarGalapagarBecerrilBecerrilGalapagarGalapagarMoralzarzalMoralzarzalCollado MedianoCollado Mediano

500500400400900900700700750750700700350350

Page 15: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.1 Estructura de las bases 3.1 Estructura de las bases de datos relacionales.de datos relacionales.

Considere dos conjuntos:Considere dos conjuntos:

DD11 & & DD22, donde , donde DD11 = {2, 4} y = {2, 4} y DD22 = {1, 3, 5} = {1, 3, 5}

Producto cartesiano, Producto cartesiano, DD11 DD22, es un conjunto de todos los , es un conjunto de todos los pares ordenados, donde el primer elemento es miembro de pares ordenados, donde el primer elemento es miembro de DD11 y el segundo elemento es miembro de y el segundo elemento es miembro de DD22. .

DD11 DD22 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)} = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)}

Una alternativa es encontrar todas las combinaciones del Una alternativa es encontrar todas las combinaciones del elementos con el primero de elementos con el primero de DD11 y el segundo de y el segundo de DD22. .

Page 16: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.1 Estructura de las bases 3.1 Estructura de las bases de datos relacionales.de datos relacionales.

Cualquier subconjunto del Producto Cartesiano es Cualquier subconjunto del Producto Cartesiano es una relación, por ejemplo:una relación, por ejemplo:

RR = {(2, 1), (4, 1)} = {(2, 1), (4, 1)}

Puede especificar que pares se están utilizando en la relación Puede especificar que pares se están utilizando en la relación utilizando algunas condiciones de selección, ejemplo:utilizando algunas condiciones de selección, ejemplo:

El segundo elemento es 1:El segundo elemento es 1:

RR = {( = {(xx, , yy) | ) | x x DD11, , y y DD22, and , and yy = 1} = 1} RR = {( = {(11,,11), (), (22,,11), (), (33,,11)})}

El primer elemento es dos veces el segundo:El primer elemento es dos veces el segundo:

SS = {( = {(xx, , yy) | ) | x x DD11, , y y DD22, and , and xx = 2 = 2yy} } RR = {( = {(22,,11), (), (44,,22), (), (66,,33)})}

Page 17: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.1 Estructura de las bases 3.1 Estructura de las bases de datos relacionales.de datos relacionales.

Considere tres conjuntos Considere tres conjuntos DD11, , DD22, , DD33 con con Producto Cartesiano Producto Cartesiano DD11 DD22 DD33; ejemplo:; ejemplo:

DD11 = {1, 3} = {1, 3} DD22 = {2, 4} = {2, 4} DD33 = {5, 6} = {5, 6}

DD11 DD22 DD33 = {(1,2,5), (1,2,6), (1,4,5), (1,4,6), (3,2,5), = {(1,2,5), (1,2,6), (1,4,5), (1,4,6), (3,2,5), (3,2,6), (3,4,5), (3,4,6)} (3,2,6), (3,4,5), (3,4,6)}

Cualquier subconjunto de esas ordenadas Cualquier subconjunto de esas ordenadas triples es una relación.triples es una relación.

Page 18: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.1 Estructura de las bases 3.1 Estructura de las bases de datos relacionales.de datos relacionales.

Producto cartesiano de Producto cartesiano de nn conjuntos ( conjuntos (DD11, , DD22, . . ., , . . ., DDnn) es:) es:

DD11 DD22 . . .. . .DDnn = {( = {(dd11, , dd22, . . . , , . . . , ddnn) | ) | dd1 1 DD11, , dd2 2 DD22, . . . , , . . . , ddnnDDnn} }

normalmente se escribe: normalmente se escribe: nnXXDDiii i = 1= 1

Cualquier conjunto de Cualquier conjunto de nn-tuplas de este producto -tuplas de este producto cartesiano es una relación de los cartesiano es una relación de los nn conjunto. conjunto.

Page 19: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Esquema de la base de Esquema de la base de datosdatos

Cuando se habla de bases de datos se debe Cuando se habla de bases de datos se debe diferenciar entre el diferenciar entre el esquema de la base de esquema de la base de datosdatos, o diseño lógico de la misma, y el , o diseño lógico de la misma, y el ejemplar de la base de datosejemplar de la base de datos, que es una , que es una instantánea de los datos de la misma en un instantánea de los datos de la misma en un momento dado.momento dado.El concepto de El concepto de relaciónrelación se corresponde con el se corresponde con el concepto de variable de los lenguajes de concepto de variable de los lenguajes de programación. El concepto de programación. El concepto de esquema de la esquema de la relaciónrelación se corresponde con el concepto de se corresponde con el concepto de definición de tipos de los lenguajes de definición de tipos de los lenguajes de programación.programación.

Page 20: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Esquema de la base de Esquema de la base de datosdatos

Se adopta el convenio de utilizar nombres en Se adopta el convenio de utilizar nombres en minúsculas para las relaciones y nombres que minúsculas para las relaciones y nombres que comiencen por una letra mayúscula para los comiencen por una letra mayúscula para los esquemas de las relaciones.esquemas de las relaciones.Siguiendo esta notación se utilizará Siguiendo esta notación se utilizará EsquemaEsquema--cuenta cuenta para denotar el esquema de la relación de para denotar el esquema de la relación de la relación la relación cuentacuenta. Por tanto, . Por tanto,

esquema-cuenta = esquema-cuenta = ((noCuenta, noCuenta, nomSucursal, saldonomSucursal, saldo))

Se denota el hecho de que Se denota el hecho de que cuenta cuenta es una relación es una relación de de Esquema-cuenta Esquema-cuenta mediante mediante

cuenta cuenta ((Esquema-cuentaEsquema-cuenta))

Page 21: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Relaciones en una base de Relaciones en una base de datosdatos

Esquema de relaciónEsquema de relaciónRelación denominada, definida por un Relación denominada, definida por un conjunto de atributos y nombres de conjunto de atributos y nombres de dominio.dominio.

Esquema de base de datos Esquema de base de datos relacionalrelacional

Conjunto de esquemas de relación, cada Conjunto de esquemas de relación, cada una de los cuales con nombres una de los cuales con nombres distintivos.distintivos.

Page 22: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Propiedades de las relacionesPropiedades de las relaciones

La relación tiene un nombre distintivo de los La relación tiene un nombre distintivo de los demás nombres de relación del esquema demás nombres de relación del esquema relacional.relacional.Cada celda de la relación contiene Cada celda de la relación contiene exactamente un valor atómico (único).exactamente un valor atómico (único).Cada atributo tiene un nombre distintivo.Cada atributo tiene un nombre distintivo.Los valores de un atributo pertenecen todos Los valores de un atributo pertenecen todos al mismo dominio.al mismo dominio.Cada tupla es diferente, no hay tuplas Cada tupla es diferente, no hay tuplas duplicadas.duplicadas.El orden de los atributos no tiene importanciaEl orden de los atributos no tiene importanciaEl orden de las tuplas no tiene importancia.El orden de las tuplas no tiene importancia.

Page 23: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

IFIF

nomClientenomCliente = {Jones, Smith, Curry, Lindsay, …} = {Jones, Smith, Curry, Lindsay, …} /* Conjunto de nombres de /* Conjunto de nombres de

clinetes */clinetes */

calleClientecalleCliente = {Main, North, Park, …} = {Main, North, Park, …} /* Conjunto de nombres de calles*//* Conjunto de nombres de calles*/

ciudadciudad = {Harrison, Rye, Pittsfield, …} = {Harrison, Rye, Pittsfield, …} /* /* Conjunto de nombres de ciudades Conjunto de nombres de ciudades

*/*/

Then Then rr = { (Jones, Main, Harrison), = { (Jones, Main, Harrison),

(Smith, North, Rye), (Smith, North, Rye),

(Curry, North, Rye), (Curry, North, Rye),

(Lindsay, Park, Pittsfield) } (Lindsay, Park, Pittsfield) }

is a relation over is a relation over

nomCliente x calleCliente x ciudadnomCliente x calleCliente x ciudad

Estructura básicaEstructura básica

Page 24: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Estructura básicaEstructura básica

JonesSmithCurryLindsay

nomCliente

MainNorthNorthPark

calleCliente

HarrisonRyeRyePittsfield

ciudad

Page 25: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Diagramas de esquemaDiagramas de esquemaUn esquema de bases de datos, junto con las dependencias Un esquema de bases de datos, junto con las dependencias de llave primaria y externa, se puede mostrar gráficamente de llave primaria y externa, se puede mostrar gráficamente mediante diagramas de esquema. mediante diagramas de esquema.

La Figura muestra el diagrama de esquema del ejemplo bancario.La Figura muestra el diagrama de esquema del ejemplo bancario.

Cada relación aparece como un cuadro con los atributos Cada relación aparece como un cuadro con los atributos listados dentro de él y el nombre de la relación sobre él. Si listados dentro de él y el nombre de la relación sobre él. Si hay atributos llave primaria, una línea horizontal cruza el hay atributos llave primaria, una línea horizontal cruza el cuadro con los atributos llave primaria listados sobre ella. cuadro con los atributos llave primaria listados sobre ella. Las dependencias de llave externa aparecen como flechas Las dependencias de llave externa aparecen como flechas desde los atributos llave externa de la relación referenciante desde los atributos llave externa de la relación referenciante a la llave primaria de la relación referenciada. a la llave primaria de la relación referenciada. No hay que confundir un diagrama de esquema con un No hay que confundir un diagrama de esquema con un diagrama E-R. En particular, los diagramas E-R no muestran diagrama E-R. En particular, los diagramas E-R no muestran explícitamente los atributos llave externa, mientras que los explícitamente los atributos llave externa, mientras que los diagramas de esquema sí.diagramas de esquema sí.

Page 26: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Llaves relacionalesLlaves relacionales

SuperllaveSuperllaveUn atributo o conjunto de atributos que identifica Un atributo o conjunto de atributos que identifica de forma inequívoca cada tupla dentro de una de forma inequívoca cada tupla dentro de una relación.relación.

Una superllave es un conjunto de uno o Una superllave es un conjunto de uno o más atributos que, tomados más atributos que, tomados colectivamente, permiten identificar de colectivamente, permiten identificar de forma única una entidad en el conjunto forma única una entidad en el conjunto de entidades.de entidades.Por ejemplo, el atributo id-cliente del Por ejemplo, el atributo id-cliente del conjunto de entidades cliente es conjunto de entidades cliente es suficiente para distinguir una entidad suficiente para distinguir una entidad cliente de las otras.cliente de las otras.Si Si K K es una superllave, entonces es una superllave, entonces también lo es cualquier superconjunto también lo es cualquier superconjunto de de KK..

Page 27: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Llaves relacionalesLlaves relacionales

Llave candidataLlave candidataUna superllave tal que ningún subconjunto de la Una superllave tal que ningún subconjunto de la misma es una superllave de la relación. misma es una superllave de la relación.

Es posible que conjuntos distintos de atributos Es posible que conjuntos distintos de atributos pudieran servir como llave candidata. Supóngase pudieran servir como llave candidata. Supóngase que una combinación de nomCliente y que una combinación de nomCliente y calleCliente es suficiente para distinguir entre los calleCliente es suficiente para distinguir entre los miembros del conjunto de entidades cliente. miembros del conjunto de entidades cliente. Entonces, los conjuntos {idCliente} y Entonces, los conjuntos {idCliente} y {nomCliente, calleCliente} son llaves candidatas.{nomCliente, calleCliente} son llaves candidatas.Aunque los atributos idCliente y nomCliente Aunque los atributos idCliente y nomCliente juntos puedan distinguir entidades cliente, su juntos puedan distinguir entidades cliente, su combinación no forma una llave candidata, ya combinación no forma una llave candidata, ya que el atributo idCliente por sí solo es una llave que el atributo idCliente por sí solo es una llave candidata.candidata.

Page 28: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Llaves relacionalesLlaves relacionales

Una llave candidata, Una llave candidata, KK, para una relación , para una relación RR tiene dos tiene dos propiedades:propiedades:

Unicidad: En cada tupla Unicidad: En cada tupla RR, los valores de , los valores de KK identifican univocamente a la tupla. identifican univocamente a la tupla. Irreducibilidad: Ningún subconjunto de Irreducibilidad: Ningún subconjunto de KK presenta la propiedad de unicidad.presenta la propiedad de unicidad.

Se usará el término Se usará el término llave primariallave primaria para denotar para denotar una llave candidata que es elegida por el una llave candidata que es elegida por el diseñador de la base de datos como elemento diseñador de la base de datos como elemento principal para identificar las entidades dentro de principal para identificar las entidades dentro de un conjunto de entidades.un conjunto de entidades.

Page 29: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Llaves relacionalesLlaves relacionalesLlave primariaLlave primaria

Llave candidata seleccionada para identificar las Llave candidata seleccionada para identificar las tuplas de manera unívoca dentro de la relación.tuplas de manera unívoca dentro de la relación.

La llave primaria de un conjunto de entidades La llave primaria de un conjunto de entidades permite distinguir entre las diferentes entidades permite distinguir entre las diferentes entidades del conjunto. Se necesita un mecanismo similar del conjunto. Se necesita un mecanismo similar para distinguir entre las diferentes relaciones para distinguir entre las diferentes relaciones de un conjunto de relaciones. Sea R un conjunto de un conjunto de relaciones. Sea R un conjunto de relaciones que involucra los conjuntos de de relaciones que involucra los conjuntos de entidadesentidades EE11, E, E22,,……, E, Enn. . Sea Sea llave-primaria(Ellave-primaria(Eii) ) el conjunto de atributos que forma la llave el conjunto de atributos que forma la llave primaria para el conjunto de entidades primaria para el conjunto de entidades EEii..Si el conjunto de relaciones Si el conjunto de relaciones R R no tiene atributos no tiene atributos asociados, entonces el conjunto de atributos:asociados, entonces el conjunto de atributos:

llave-primaria(Ellave-primaria(E11) ) ƱƱ llave-primaria(Ellave-primaria(E22) ) ƱƱ ……ƱƱ llave-primaria(Ellave-primaria(Enn))

describe una relación individual en el conjunto describe una relación individual en el conjunto RR..

Page 30: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Llaves relacionalesLlaves relacionalesSi el conjunto de relaciones Si el conjunto de relaciones R R tiene atributos tiene atributos aa11, a, a22,,……,a,amm asociados a él, entonces el conjunto de atributosasociados a él, entonces el conjunto de atributos

llave-primaria(Ellave-primaria(E11) ) ƱƱ llave-primaria(Ellave-primaria(E22) ) ƱƱ … …ƱƱ llave-primaria(Ellave-primaria(Enn) ) ƱƱ { {aa11, a, a22,,……,a,amm}}

describe una relación individual en el conjunto describe una relación individual en el conjunto RR..

En ambos casos, el conjunto de atributosEn ambos casos, el conjunto de atributosllave-primaria(Ellave-primaria(E11) ) ƱƱ llave-primaria(Ellave-primaria(E22) ) ƱƱ … …

ƱƱ llave-primaria(Ellave-primaria(Enn))forma una superllaveforma una superllave para el conjunto de relaciones. para el conjunto de relaciones.

Llave alternativaLlave alternativaLlaves candidatas que no se seleccionan para ser llaves Llaves candidatas que no se seleccionan para ser llaves primarias.primarias.

Llave foráneaLlave foráneaUn atributo o conjunto de atributos, dentro de una relación Un atributo o conjunto de atributos, dentro de una relación que se corresponde con la llave candidata de alguna que se corresponde con la llave candidata de alguna (posiblemente la misma) relación.(posiblemente la misma) relación.

Page 31: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.2 Lenguajes formales de 3.2 Lenguajes formales de consulta.consulta.

Estos lenguajes suelen ser de un nivel superior Estos lenguajes suelen ser de un nivel superior que el de los lenguajes de programación que el de los lenguajes de programación habituales. Pueden clasificarse como habituales. Pueden clasificarse como procedimentales o no procedimentales. procedimentales o no procedimentales. En los En los lenguajes procedimentales lenguajes procedimentales el usuario el usuario instruye al sistema para que lleve a cabo una instruye al sistema para que lleve a cabo una serie de operaciones en la base de datos para serie de operaciones en la base de datos para calcular el resultado deseado. calcular el resultado deseado. En los En los lenguajes no procedimentales lenguajes no procedimentales el el usuario describe la información deseada sin dar usuario describe la información deseada sin dar un procedimiento concreto para obtener esa un procedimiento concreto para obtener esa información.información.La mayor parte de los sistemas comerciales de La mayor parte de los sistemas comerciales de bases de datos relacionales ofrecen un lenguaje bases de datos relacionales ofrecen un lenguaje de consulta que incluye elementos de los de consulta que incluye elementos de los enfoques procedimental y no procedimental.enfoques procedimental y no procedimental.

Page 32: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Lenguajes «puros»: Lenguajes «puros»:

El álgebra relacional es procedimental, El álgebra relacional es procedimental, El cálculo relacional de tuplas y el de El cálculo relacional de tuplas y el de dominios son no procedimentales.dominios son no procedimentales.

Estos lenguajes de consulta son rígidos y Estos lenguajes de consulta son rígidos y formales, y carecen del «azúcar sintáctico» formales, y carecen del «azúcar sintáctico» de los lenguajes comerciales, pero ilustran de los lenguajes comerciales, pero ilustran las técnicas fundamentales para la las técnicas fundamentales para la extracción de datos de las bases de datos.extracción de datos de las bases de datos.

Page 33: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Algebra Relacional: Puede utilizarse para decir Algebra Relacional: Puede utilizarse para decir al SGBD cómo construir una nueva relación a al SGBD cómo construir una nueva relación a partir de una o más relaciones existentes ya partir de una o más relaciones existentes ya en la BD.en la BD.Cálculo relacional: Lenguaje no procedimental. Cálculo relacional: Lenguaje no procedimental. Puede utilizarse para formular la definición de Puede utilizarse para formular la definición de una relación en términos de una o más una relación en términos de una o más relaciones de BD.relaciones de BD.Para toda expresión del algebra, existe una Para toda expresión del algebra, existe una expresión equivalente en el cálculo.expresión equivalente en el cálculo.No resultan amigables para el usuario.No resultan amigables para el usuario.Se utilizan como base para otros lenguajes de Se utilizan como base para otros lenguajes de manipulación de datos.manipulación de datos.

Page 34: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

El cálculo relacional se utiliza para medir la El cálculo relacional se utiliza para medir la potencia selectiva de los lenguajes potencia selectiva de los lenguajes relacionales.relacionales.Un lenguaje que pueda usarse para Un lenguaje que pueda usarse para producir cualquier relación que se pueda producir cualquier relación que se pueda obtener mediante el cálculo relacional se obtener mediante el cálculo relacional se denomina: denomina: Relacionalmente completoRelacionalmente completo..

Page 35: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.3 Álgebra relacional.3.3 Álgebra relacional.

Consta de un conjunto de operaciones que Consta de un conjunto de operaciones que toman como entrada una o dos relaciones toman como entrada una o dos relaciones y producen como resultado una nueva y producen como resultado una nueva relación. relación. Las operaciones fundamentales del álgebra Las operaciones fundamentales del álgebra relacional son relacional son selecciónselección, , proyecciónproyección, , uniónunión, , diferencia de conjuntos ydiferencia de conjuntos y producto producto cartesianocartesiano. . Además de las operaciones fundamentales Además de las operaciones fundamentales hay otras operaciones, por ejemplo, hay otras operaciones, por ejemplo, intersección de conjuntos, reunión natural, intersección de conjuntos, reunión natural, división y asignación.división y asignación.

Page 36: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones de algebra Operaciones de algebra relacionalrelacional

Page 37: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones fundamentalesOperaciones fundamentales

Las operaciones selección y proyección se Las operaciones selección y proyección se denominan operaciones denominan operaciones unariasunarias porque porque operan sobre una sola relación.operan sobre una sola relación.

Las otras tres operaciones (Las otras tres operaciones (uniónunión, , diferencia de conjuntosdiferencia de conjuntos y y producto producto cartesiano) cartesiano) operan sobre pares de operan sobre pares de relaciones y se denominan, por lo tanto, relaciones y se denominan, por lo tanto, operaciones operaciones binariasbinarias..

Page 38: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones Unarias - Operaciones Unarias - SelecciónSelección

predicadopredicado (R) (R)Trabaja con una sola relación R y define Trabaja con una sola relación R y define otra relación que contiene únicamente otra relación que contiene únicamente aquellas tuplas (filas) de R que satisfacen aquellas tuplas (filas) de R que satisfacen la condición especificada (la condición especificada (predicadopredicado).).La operación La operación selección selección selecciona tuplas que selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra satisfacen un predicado dado. Se utiliza la letra griega sigma minúscula ( σ) para denotar la griega sigma minúscula ( σ) para denotar la selección. El predicado aparece como subíndice selección. El predicado aparece como subíndice de σ. La relación del argumento se da entre de σ. La relación del argumento se da entre paréntesis a continuación de σ.paréntesis a continuación de σ.

σσnomSucursal = «nomSucursal = «NavacerradaNavacerrada»» ((préstamopréstamo))

Page 39: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones Unarias - Operaciones Unarias - SelecciónSelección

Lista todos los miembros del personal cuyo Lista todos los miembros del personal cuyo salario sea superior a 1000 pesos.salario sea superior a 1000 pesos.

σ σ salario > 1000salario > 1000 (Personal)(Personal)

noPersonanoPersonall nombrePnombreP apellidoapellido puestopuesto sexosexo nacimientnacimient

oo salariosalario noSucursalnoSucursal

SL21SL21 JohnJohn WhiteWhite GerenteGerente MM 1/10/451/10/45 3000030000 B005B005

SG37SG37 AnnAnn BeechBeech AsistenteAsistente FF 10/11/6010/11/60 1200012000 B003B003

SG14SG14 DavidDavid FordFord SupervisoSupervisorr

MM 24/03/5824/03/58 1800018000 B003B003

SG5SG5 SusanaSusana BrandBrand GerenteGerente FF 3/07/403/07/40 2400024000 B003B003

Page 40: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones Unarias - Operaciones Unarias - ProyecciónProyección

Se aplica a una única relación R y se define otra Se aplica a una única relación R y se define otra relación que contiene un subconjunto vertical de relación que contiene un subconjunto vertical de R, extrayendo los valores de los atributos R, extrayendo los valores de los atributos especificados y eliminando los duplicados.especificados y eliminando los duplicados.La operación proyección es una operación unaria La operación proyección es una operación unaria que devuelve su relación de argumentos, que devuelve su relación de argumentos, excluyendo algunos argumentos. Dado que las excluyendo algunos argumentos. Dado que las relaciones son conjuntos, se eliminan todas las relaciones son conjuntos, se eliminan todas las filas duplicadas. La proyección se denota por la filas duplicadas. La proyección se denota por la letra griega mayúscula pi (Π). Se crea una lista de letra griega mayúscula pi (Π). Se crea una lista de los atributos que se desea que aparezcan en el los atributos que se desea que aparezcan en el resultado como subíndice de Π. La relación de resultado como subíndice de Π. La relación de argumentos se escribe a continuación entre argumentos se escribe a continuación entre paréntesis.paréntesis.

col1, . . . , colncol1, . . . , coln(R)(R)

Page 41: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones Unarias - Operaciones Unarias - ProyecciónProyección

Supóngase que se desea hacer una lista de Supóngase que se desea hacer una lista de todos los salarios del personal, mostrando todos los salarios del personal, mostrando también staffNo, fName, lName, Salary. también staffNo, fName, lName, Salary.

ΠstaffNo, fName, lName, Salary (prestamo)

Page 42: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Composición de operaciones Composición de operaciones relacionalesrelacionales

Es importante el hecho de que el resultado Es importante el hecho de que el resultado de una operación relacional sea también de una operación relacional sea también una relación. Considérese la consulta más una relación. Considérese la consulta más compleja «Encontrar los clientes que viven compleja «Encontrar los clientes que viven en Peguerinos». Hay que escribir:en Peguerinos». Hay que escribir:

ΠΠnomCliente nomCliente ( σ( σcdCliente = «cdCliente = «PeguerinosPeguerinos»» ((clientecliente))))

Page 43: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias - UniónOperaciones binarias - Unión

Unión: La unión de dos relaciones R y S Unión: La unión de dos relaciones R y S define una relación que contiene todas las define una relación que contiene todas las tuplas R, de S o tanto de R como de S, tuplas R, de S o tanto de R como de S, eliminándose las tuplas duplicadas. R y S, eliminándose las tuplas duplicadas. R y S, deben ser compatibles, respecto a la unión. deben ser compatibles, respecto a la unión.

Si R y S tienen tuplas I y J, respectivamente Si R y S tienen tuplas I y J, respectivamente su unión se obtiene concatenándolas en su unión se obtiene concatenándolas en una única relación con un máximo de (I + J) una única relación con un máximo de (I + J) tuplas.tuplas.

R S

Page 44: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias - UniónOperaciones binarias - Unión

Liste todas las ciudades donde exista una Liste todas las ciudades donde exista una sucursal o un inmueble en alquiler.sucursal o un inmueble en alquiler.

ciudad(Sucursal) ciudad(Sucursal) ciudad(PropiedadesRenta)ciudad(PropiedadesRenta)

Page 45: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias - UniónOperaciones binarias - Unión

Para que una operación unión Para que una operación unión r r s s sea sea válida hay que exigir que se cumplan válida hay que exigir que se cumplan dos dos condicionescondiciones::1. Las relaciones 1. Las relaciones r r y y s s deben ser de la misma deben ser de la misma

aridad. Es decir, deben tener el mismo número aridad. Es decir, deben tener el mismo número de atributos.de atributos.

2. Los dominios de los atributos 2. Los dominios de los atributos ii-ésimos de -ésimos de r r y de y de s s deben ser iguales para todo deben ser iguales para todo ii..

Téngase en cuenta que Téngase en cuenta que r r y y s s pueden ser, en pueden ser, en general, relaciones temporales que sean general, relaciones temporales que sean resultado de expresiones del álgebra resultado de expresiones del álgebra relacional.relacional.

Page 46: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias - Operaciones binarias - DiferenciaDiferencia

La operación La operación diferencia de conjuntosdiferencia de conjuntos, , denotada por –, permite buscar las tuplas denotada por –, permite buscar las tuplas que estén en una relación pero no en la que estén en una relación pero no en la otra. La expresión otra. La expresión r r – – s s da como resultado da como resultado una relación que contiene las tuplas que una relación que contiene las tuplas que están en están en r r pero no en pero no en ss..Se pueden buscar todos los clientes del Se pueden buscar todos los clientes del banco que tienen abierta una cuenta pero banco que tienen abierta una cuenta pero no tienen concedido ningún préstamo no tienen concedido ningún préstamo escribiendoescribiendo

ΠΠnomCliente nomCliente ((impositorimpositor) ) – – ΠΠnomCliente nomCliente ((prestatarioprestatario))

Page 47: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias - Operaciones binarias - DiferenciaDiferencia

Como en el caso de la operación unión, hay Como en el caso de la operación unión, hay que asegurarse de que las diferencias de que asegurarse de que las diferencias de conjuntos se realicen entre relaciones conjuntos se realicen entre relaciones compatiblescompatibles. Por tanto, para que una . Por tanto, para que una operación diferencia de conjuntos operación diferencia de conjuntos r r – – s s sea sea válida hay que exigir que las relaciones válida hay que exigir que las relaciones r r y y s s sean de la misma aridad y que los dominios sean de la misma aridad y que los dominios de los atributos de los atributos ii-ésimos de -ésimos de r r y y s s sean sean iguales.iguales.

nomCliennomClientete

noCuentnoCuentaa

AbrilAbrilGómezGómezGonzálezGonzálezGonzálezGonzálezLópezLópezRupérezRupérezSantosSantos

C102C102C101C101C201C201C217C217C222C222C215C215C305C305

Relación ImpositorRelación Impositor

nomCliennomClientete

noCuentnoCuentaa

FernándezFernándezGómezGómezGómezGómezLópezLópezPérezPérezSantosSantosSotocaSotocaValdiviesoValdivieso

P16P16P93P93P15P15P14P14P17P17P11P11P23P23P17P17

Relación PrestatarioRelación Prestatario

nomCliennomClienteteAbrilAbrilGonzálezGonzálezRupérezRupérez

Page 48: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias – Operaciones binarias – Producto CartesianoProducto Cartesiano

La operación La operación producto cartesianoproducto cartesiano, denotada por , denotada por un aspa (×), permite combinar información de un aspa (×), permite combinar información de cualesquiera dos relaciones. El producto cualesquiera dos relaciones. El producto cartesiano de las relaciones cartesiano de las relaciones rr1 y 1 y rr2 como 2 como rr1 × 1 × rr2.2.Recuérdese que las relaciones se definen como Recuérdese que las relaciones se definen como subconjuntos del producto cartesiano de un subconjuntos del producto cartesiano de un conjunto de dominios. conjunto de dominios. Dado que el mismo nombre de atributo puede Dado que el mismo nombre de atributo puede aparecer tanto en aparecer tanto en rr1 como en 1 como en rr2, hay que crear un 2, hay que crear un esquema de denominaciones para distinguir entre esquema de denominaciones para distinguir entre ambos atributos. En este caso se logra adjuntando ambos atributos. En este caso se logra adjuntando al atributo el nombre de la relación de la que al atributo el nombre de la relación de la que proviene originalmente. proviene originalmente.

Page 49: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias – Operaciones binarias – Producto CartesianoProducto Cartesiano

Por ejemplo, el esquema de relación de Por ejemplo, el esquema de relación de r r = = prestatario prestatario × × préstamo préstamo es:es:((prestatario.nomCliente, prestatario.noPrestamo, prestatario.nomCliente, prestatario.noPrestamo,

prestamo.nomSucursal, prestamo. noPrestamo, prestamo.nomSucursal, prestamo. noPrestamo, prestamo.importeprestamo.importe))

Con este esquema se puede distinguir entre Con este esquema se puede distinguir entre prestatarioprestatario..noPrestamo noPrestamo y y prestamoprestamo..noPrestamonoPrestamo..Para los atributos que sólo aparecen en uno de los Para los atributos que sólo aparecen en uno de los dos esquemas se suele omitir el prefijo con el dos esquemas se suele omitir el prefijo con el nombre de la relación. Esta simplificación no genera nombre de la relación. Esta simplificación no genera ambigüedad alguna. Por tanto, se puede escribir el ambigüedad alguna. Por tanto, se puede escribir el esquema de relación de esquema de relación de r r como: como: ((nomCliente, prestatario.noprestamo, nomSucursal, nomCliente, prestatario.noprestamo, nomSucursal,

prestamo.noPrestamo, importeprestamo.noPrestamo, importe))

Page 50: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias – Operaciones binarias – Producto CartesianoProducto Cartesiano

Ahora que se conoce el esquema de Ahora que se conoce el esquema de relación de relación de r r = = prestatario prestatario × × préstamo préstamo hay hay que averiguar las tuplas que aparecerán que averiguar las tuplas que aparecerán en en rr..

nomCliennomClientete

noPrestamnoPrestamoo

FernándezFernándezGómezGómezGómezGómezLópezLópezPérezPérezSantosSantosSotocaSotocaValdiviesoValdivieso

P16P16P93P93P15P15P14P14P17P17P11P11P23P23P17P17

Relación PrestatarioRelación Prestatario

noPrestamnoPrestamoo

nomSucursnomSucursalal

importimportee

P11P11P14P14P15P15P16P16P17P17P23P23P93P93

Collado Collado MedianoMedianoCentroCentroNavacerradaNavacerradaNavacerradaNavacerradaCentroCentroMoralzarzalMoralzarzalBecerrilBecerril

9009001500150015001500130013001000100020002000

500500

Relación PréstamoRelación Préstamo

Page 51: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operaciones binarias – Operaciones binarias – Producto CartesianoProducto Cartesiano

Como se podía imaginar, se crea una tupla Como se podía imaginar, se crea una tupla de de r r a partir de cada par de tuplas posible: a partir de cada par de tuplas posible: una de la relación una de la relación prestatario prestatario y otra de la y otra de la relación relación préstamopréstamo..

Page 52: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

EjercicioEjercicio

Resultado de Resultado de σnomSucursal = «Navacerrada» (σnomSucursal = «Navacerrada» (prestatario prestatario × ×

préstamopréstamo).).

Page 53: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

El acuerdo de denominaciones precedente El acuerdo de denominaciones precedente exige exige que las relaciones que sean argumentos de la que las relaciones que sean argumentos de la operación producto cartesiano tengan nombres operación producto cartesiano tengan nombres diferentes. diferentes. Esta exigencia causa problemas en algunos casos, Esta exigencia causa problemas en algunos casos, como cuando se desea calcular el producto como cuando se desea calcular el producto cartesiano de una relación consigo misma. Se cartesiano de una relación consigo misma. Se produce un problema similar si se utiliza el produce un problema similar si se utiliza el resultado de una expresión del álgebra relacional resultado de una expresión del álgebra relacional en un producto cartesiano, dado que hará falta un en un producto cartesiano, dado que hará falta un nombre para la relación para poder hacer nombre para la relación para poder hacer referencia a sus atributos.referencia a sus atributos.

Page 54: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Operación RenombramientoOperación RenombramientoOperación unaria .Operación unaria .Denotado por la letra griega rho minúscula ( ρ), Denotado por la letra griega rho minúscula ( ρ), permite renombrar. permite renombrar.

Dada una expresión Dada una expresión E E del álgebra relacional, la expresión del álgebra relacional, la expresión ρρx x ((EE)) devuelve el resultado de la expresión devuelve el resultado de la expresión E E con el con el

nombre nombre xxLas relaciones Las relaciones r r por sí mismas se consideran por sí mismas se consideran expresiones (triviales) del álgebra relacional. Por tanto, expresiones (triviales) del álgebra relacional. Por tanto, también se puede aplicar la operación también se puede aplicar la operación renombramiento a una relación renombramiento a una relación r r para obtener la para obtener la misma relación con un nombre nuevo.misma relación con un nombre nuevo.Otra forma de la operación renombramiento: Otra forma de la operación renombramiento: Supóngase que una expresión del álgebra relacional E Supóngase que una expresión del álgebra relacional E tiene aridad n. Por tanto, la expresióntiene aridad n. Por tanto, la expresión

ρρx x ((AA11, A, A22, … An, … An) () (EE))devuelve el resultado de la expresión devuelve el resultado de la expresión E E con el nombre con el nombre x x

y con los atributos con el nombre cambiado a y con los atributos con el nombre cambiado a AA1, 1, AA2, 2, …, …, AnAn..

Page 55: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

EjercicioEjercicioPara ilustrar el uso del renombramiento de las relaciones, Para ilustrar el uso del renombramiento de las relaciones, considérese la consulta «Buscar el máximo saldo de cuenta considérese la consulta «Buscar el máximo saldo de cuenta del banco». del banco». La estrategia empleada para obtener el resultado es La estrategia empleada para obtener el resultado es

1) calcular una relación intermedia consistente en los saldos 1) calcular una relación intermedia consistente en los saldos que que no no son el máximo y son el máximo y 2) realizar la diferencia entre la relación Π2) realizar la diferencia entre la relación Πsaldo saldo ((cuentacuenta) y la ) y la relación intermedia recién calculada.relación intermedia recién calculada.

Paso 1: Para calcular la relación intermedia hay que Paso 1: Para calcular la relación intermedia hay que comparar los valores de los saldos de todas las cuentas.comparar los valores de los saldos de todas las cuentas. Esta comparación se puede hacer calculando el Esta comparación se puede hacer calculando el producto producto cartesiano cartesiano cuenta cuenta × × cuentacuenta y formando una y formando una selecciónselección para para comparar el valor de cualesquiera dos saldos que comparar el valor de cualesquiera dos saldos que aparezcan en una tupla. En primer lugar hay que crear un aparezcan en una tupla. En primer lugar hay que crear un mecanismo para distinguir entre los dos atributos mecanismo para distinguir entre los dos atributos saldosaldo. Se . Se utilizará la operación utilizará la operación renombramientorenombramiento para cambiar el para cambiar el nombre de una referencia a la relación cuenta; así, se nombre de una referencia a la relación cuenta; así, se puede hacer referencia dos veces a la relación sin puede hacer referencia dos veces a la relación sin ambigüedad alguna.ambigüedad alguna.

Page 56: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

EjercicioEjercicioLa relación temporal que se compone de los saldos que no La relación temporal que se compone de los saldos que no son el máximo puede escribirse ahora como son el máximo puede escribirse ahora como

ΠΠcuenta.saldo cuenta.saldo ( σ( σcuenta.saldo < d.saldo cuenta.saldo < d.saldo ((cuenta cuenta × ρ× ρd d ((cuentacuenta))))))

Esta expresión proporciona los saldos de la relación Esta expresión proporciona los saldos de la relación cuenta cuenta para los que aparece un saldo mayor en alguna parte de la para los que aparece un saldo mayor en alguna parte de la relación relación cuenta cuenta (cuyo nombre se ha cambiado a (cuyo nombre se ha cambiado a dd). El ). El resultado contiene todos los saldos resultado contiene todos los saldos salvo salvo el máximo.el máximo. Paso 2: La consulta para averiguar el máximo saldo de Paso 2: La consulta para averiguar el máximo saldo de cuenta del banco puede escribirse de la manera siguiente:cuenta del banco puede escribirse de la manera siguiente:Πsaldo (cuenta) – Πcuenta.saldo ( σcuenta.saldo < d.saldo Πsaldo (cuenta) – Πcuenta.saldo ( σcuenta.saldo < d.saldo

(cuenta × ρd (cuenta)))(cuenta × ρd (cuenta)))noCuentanoCuenta nomSucursalnomSucursal saldsald

ooC101C101C102C102C201C201C215C215C217C217C222C222C305C305

CentroCentroNavacerradaNavacerradaGalapagarGalapagarBecerrilBecerrilGalapagarGalapagarMoralzarzalMoralzarzalCollado Collado MedianoMediano

500500400400900900700700750750700700350350

Relación CuentaRelación Cuenta

Page 57: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Ejercicio UniónEjercicio UniónConsidérese una consulta para averiguar el nombre de todos los Considérese una consulta para averiguar el nombre de todos los clientes del banco que tienen una cuenta, un préstamo o ambas clientes del banco que tienen una cuenta, un préstamo o ambas cosas. cosas. Obsérvese que la relación Obsérvese que la relación cliente cliente no contiene esa información, no contiene esa información, dado que los clientes no necesitan tener ni cuenta ni préstamo en dado que los clientes no necesitan tener ni cuenta ni préstamo en el banco. el banco. Para contestar a esta consulta hace falta la información de la Para contestar a esta consulta hace falta la información de la relación relación impositor impositor y la de la relación y la de la relación prestatario. prestatario. Se conoce la Se conoce la manera de averiguar los nombres de todos los clientes con manera de averiguar los nombres de todos los clientes con préstamos en el banco: préstamos en el banco:

ΠΠnomCliente nomCliente ((prestatarioprestatario))También se conoce la manera de averiguar el nombre de los También se conoce la manera de averiguar el nombre de los clientes con cuenta en el banco: clientes con cuenta en el banco:

ΠΠnomCliente nomCliente ((impositorimpositor))Para contestar a la consulta hace falta la Para contestar a la consulta hace falta la unión unión de estos dos de estos dos conjuntos; es decir, hacen falta todos los nombres de clientes que conjuntos; es decir, hacen falta todos los nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos datos aparecen en alguna de las dos relaciones o en ambas. Estos datos se pueden averiguar mediante la operación binaria unión, se pueden averiguar mediante la operación binaria unión, denotada, como en la teoría de conjuntos, por denotada, como en la teoría de conjuntos, por Por tanto, ¿cuál Por tanto, ¿cuál es la expresión buscada y cuál es el resultado? es la expresión buscada y cuál es el resultado?

nomCliennomClientete

noCuentnoCuentaa

AbrilAbrilGómezGómezGonzálezGonzálezGonzálezGonzálezLópezLópezRupérezRupérezSantosSantos

C102C102C101C101C201C201C217C217C222C222C215C215C305C305

nomCliennomClientete

noCuentnoCuentaa

FernándezFernándezGómezGómezGómezGómezLópezLópezPérezPérezSantosSantosSotocaSotocaValdiviesoValdivieso

P16P16P93P93P15P15P14P14P17P17P11P11P23P23P17P17

Relación Relación ImpositorImpositor

RelaciónRelaciónPrestatarioPrestatario

Page 58: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Ejercicio RenombramientoEjercicio Renombramiento

Considérese la siguiente consulta como un nuevo ejemplo de Considérese la siguiente consulta como un nuevo ejemplo de la operación renombramiento: «Averiguar los nombres de la operación renombramiento: «Averiguar los nombres de todos los clientes que viven en la misma calle y en la misma todos los clientes que viven en la misma calle y en la misma ciudad que Gómez». Se puede obtener la calle y la ciudad en ciudad que Gómez». Se puede obtener la calle y la ciudad en la que vive Gómez escribiendo la que vive Gómez escribiendo

ΠΠcalleCliente, cdCliente calleCliente, cdCliente ( ( σσnomCliente = «nomCliente = «GómezGómez» » ((clientecliente))))Sin embargo, para hallar a otros clientes que vivan en esa Sin embargo, para hallar a otros clientes que vivan en esa calle y en esa ciudad hay que hacer referencia por segunda calle y en esa ciudad hay que hacer referencia por segunda vez a la relación vez a la relación clientecliente. En la consulta siguiente se utiliza la . En la consulta siguiente se utiliza la operación renombramiento sobre la expresión anterior para operación renombramiento sobre la expresión anterior para darle al resultado el nombre darle al resultado el nombre dirección-Gómez dirección-Gómez y para y para cambiar el nombre de los atributos a cambiar el nombre de los atributos a calle calle y y ciudad ciudad en lugar en lugar de de calleCliente calleCliente y y cdClientecdCliente: :

ΠΠcliente.nomCliente cliente.nomCliente ( ( σσcliente.calleCliente = direccion-Gómez cliente.calleCliente = direccion-Gómez ^ ^ cliente.cdCliente = direccion-Gómez. ciudad cliente.cdCliente = direccion-Gómez. ciudad ((cliente cliente ×× ρρdireccion-Gómez direccion-Gómez ((calle, ciudadcalle, ciudad) () (ΠΠcalleCliente, cdCliente calleCliente, cdCliente

( ( σσnomCliente = «nomCliente = «GómezGómez» » ((clientecliente))))))))))

Page 59: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.4 Calculo Relacional de 3.4 Calculo Relacional de TuplasTuplas

Cuando escribimos una expresión del Cuando escribimos una expresión del álgebra relacional proporcionamos una álgebra relacional proporcionamos una serie de procedimientos que generan la serie de procedimientos que generan la respuesta a la consulta. respuesta a la consulta.

El cálculo relacional de tuplas, en cambio, El cálculo relacional de tuplas, en cambio, es un lenguaje de consulta es un lenguaje de consulta no no procedimentalprocedimental. Describe la información . Describe la información deseada sin dar un procedimiento deseada sin dar un procedimiento específico para obtenerla. específico para obtenerla.

Page 60: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Las consultas se expresan en el cálculo Las consultas se expresan en el cálculo relacional de tuplas comorelacional de tuplas como

{{t | Pt | P((tt)})}es decir, son el conjunto de todas las tuplas es decir, son el conjunto de todas las tuplas tales que el predicado tales que el predicado P P es cierto para es cierto para tt. . Siguiendo la notación utilizada Siguiendo la notación utilizada previamente, se utiliza previamente, se utiliza tt[[AA] para denotar el ] para denotar el valor de la tupla valor de la tupla t t en el atributo en el atributo A A y y t t ∈∈ r r para denotar que la tupla para denotar que la tupla t t está en la está en la relación relación rr..

Page 61: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Supóngase que se desea averiguar Supóngase que se desea averiguar nomSucursalnomSucursal, , noPrestamo noPrestamo e e importe importe de los préstamos superiores a $1200:de los préstamos superiores a $1200:

{{t | t t | t ∈∈ prestamo prestamo ∧∧ tt[[importeimporte] ] > > 1200}1200}Supóngase que sólo se desea obtener el atributo Supóngase que sólo se desea obtener el atributo noPrestamonoPrestamo, en , en vez de todos los atributos de la relación vez de todos los atributos de la relación préstamopréstamo. . En cálculo relacional de tuplas hay que escribir una expresión En cálculo relacional de tuplas hay que escribir una expresión para una relación del esquema (para una relación del esquema (noPrestamonoPrestamo). Se necesitan las ). Se necesitan las tuplas de (tuplas de (noPrestamonoPrestamo) tales que hay una tupla en ) tales que hay una tupla en préstamo préstamo con con el atributo el atributo importe importe > 1200. Para expresar esta solicitud hay que > 1200. Para expresar esta solicitud hay que utilizar el constructor «existe» utilizar el constructor «existe» ∃∃ de la lógica matemática. La de la lógica matemática. La notaciónnotación

∃∃ t t ∈∈ r r ((Q Q ((tt))))significa «existe una tupla significa «existe una tupla t t en la relación en la relación r r tal que el predicado tal que el predicado QQ((tt) es verdadero») es verdadero»

{{t | t | ∃∃ s s ∈∈ prestamo prestamo ((tt[[noPrestamonoPrestamo] ] = s= s[[noPrestamonoPrestamo] ] ∧∧ ss[[importeimporte] ] > > 1200)}1200)}

Se lee «el conjunto de todas las tuplas Se lee «el conjunto de todas las tuplas tt tales que existe una tupla tales que existe una tupla ss en la relación en la relación prestamoprestamo para la que los valores de para la que los valores de tt y de y de ss para el atributo para el atributo noPrestamo noPrestamo son son iguales y el valor de iguales y el valor de ss para el atributo para el atributo importe importe es mayor que $1200».es mayor que $1200».

Page 62: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

«Averiguar el nombre de todos los clientes que «Averiguar el nombre de todos los clientes que tienen concedido un préstamo en la sucursal de tienen concedido un préstamo en la sucursal de Navacerrada».Navacerrada».Esta consulta implica a dos relaciones: Esta consulta implica a dos relaciones: prestatario prestatario y y préstamopréstamo. . Sin embargo, todo lo que necesita es que Sin embargo, todo lo que necesita es que tengamos dos instrucciones «existe» tengamos dos instrucciones «existe» ∃ ∃ en la en la expresión de cálculo relacional de tuplas, expresión de cálculo relacional de tuplas, relacionadas mediante relacionadas mediante y y ((∧∧). La consulta se ). La consulta se escribe de la manera siguiente:escribe de la manera siguiente:

{{t | t | ∃∃ s s ∈∈ prestatario prestatario ((tt[[noPrestamonoPrestamo] ] = = ss[[noPrestamonoPrestamo] ] ∧∧ ∃∃ u u ∈∈ prestamo prestamo ((uu[[noPrestamonoPrestamo] ]

= s= s[[noPrestamonoPrestamo] ] ∧∧ uu[[nomSucursalnomSucursal] ] = = ««NavacerradaNavacerrada»»))}))}

«el conjunto de todas las tuplas («el conjunto de todas las tuplas (nomClientenomCliente) para ) para las que el cliente tiene un préstamo concedido en las que el cliente tiene un préstamo concedido en la sucursal de Navacerrada»la sucursal de Navacerrada»

Page 63: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Todos los clientes del banco que tienen Todos los clientes del banco que tienen concedido un préstamo, una cuenta concedido un préstamo, una cuenta abierta, o ambas cosas, se utilizó la abierta, o ambas cosas, se utilizó la operación unión del álgebra relacional. En operación unión del álgebra relacional. En el cálculo relacional de tuplas harán falta el cálculo relacional de tuplas harán falta dos instrucciones «existe» dos instrucciones «existe» ∃ ∃ relacionadas relacionadas por por o o ((∨∨):):

{{t | t | ∃∃ s s ∈∈ prestatario prestatario ((tt[[nomClientenomCliente] ] = = ss[[nomClientenomCliente]) ]) ∨∨ ∃∃ u u ∈∈ impositor impositor ((tt[[nomClientenomCliente] ] = u= u[[nomClientenomCliente])}])}

Page 64: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

«Averiguar todos los clientes que tienen una cuenta abierta «Averiguar todos los clientes que tienen una cuenta abierta en el banco pero no tienen concedido ningún préstamo». La en el banco pero no tienen concedido ningún préstamo». La expresión del cálculo relacional de tuplas para esta consulta expresión del cálculo relacional de tuplas para esta consulta es parecida a las expresiones que se acaban de ver, salvo el es parecida a las expresiones que se acaban de ver, salvo el uso del símbolo uso del símbolo no no (¬):(¬):

{{t | t | ∃∃ u u ∈∈ impositor impositor ((tt[[nomClientenomCliente] ] = u= u[[nomClientenomCliente]) ]) ∧ ∧ ¬ ¬ ∃∃ s s ∈∈ prestatario prestatario ((tt[[nomClientenomCliente] ] = s= s[[nomClientenomCliente])}])}

La expresión del cálculo relacional de tuplas anterior utiliza La expresión del cálculo relacional de tuplas anterior utiliza la instrucción la instrucción ∃∃ u u ∈∈ impositor impositor (…) para exigir que el cliente (…) para exigir que el cliente tenga una cuenta abierta en el banco, y utiliza la instrucción tenga una cuenta abierta en el banco, y utiliza la instrucción ¬ ¬ ∃∃ s s ∈∈ prestatario prestatario (…) para borrar a aquellos clientes que (…) para borrar a aquellos clientes que aparecen en alguna tupla de la relación aparecen en alguna tupla de la relación prestatario prestatario por tener por tener un préstamo del banco. un préstamo del banco.

Page 65: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

La consulta que se tomará ahora en La consulta que se tomará ahora en consideración utiliza la consideración utiliza la implicaciónimplicación, , denotada por denotada por ⇒⇒. . La fórmula La fórmula P P ⇒⇒ Q Q es lógicamente es lógicamente equivalente a equivalente a ¬ ¬ P P ∨∨ QQ. . El uso de la implicación en lugar de El uso de la implicación en lugar de no no y y o o suele sugerir una interpretación más suele sugerir una interpretación más intuitiva de la consulta en español.intuitiva de la consulta en español.

P P ⇒⇒ Q Q = = ¬ ¬ PP ∨∨ QQ

Page 66: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

«Averiguar todos los clientes que tienen una cuenta en «Averiguar todos los clientes que tienen una cuenta en todas las sucursales sitas en Arganzuela». todas las sucursales sitas en Arganzuela». Para escribir esta consulta en el cálculo relacional de Para escribir esta consulta en el cálculo relacional de tuplas se introduce el constructor tuplas se introduce el constructor «para todo»,«para todo», denotado denotado por por ∀∀. La notación. La notación

∀∀ t t ∈∈ r r ((Q Q ((tt))))significa «significa «Q Q es verdadera para todas las tuplas es verdadera para todas las tuplas t t de la de la

relación relación rr».».

La expresión para la consulta se escribe de la manera La expresión para la consulta se escribe de la manera siguiente:siguiente:

{{t | t | ∃∃ r r ∈∈ cliente cliente ((rr[[nomClientenomCliente] ] == tt[[nomClientenomCliente] ] ∧∧ ( (∀∀ u u ∈∈ sucursal sucursal ((uu[[cdSucursalcdSucursal] ] = =

««ArganzuelaArganzuela» » ⇒ ∃ ⇒ ∃ s s ∈∈ impositor impositor ((tt[[nomClientenomCliente] ] = = ss[[nomClientenomCliente] ] ∧ ∃∧ ∃ w w ∈∈ cuenta cuenta ((ww[[noCuentanoCuenta] ] = =

ss[[noCuentanoCuenta] ] ∧∧ ww[[nomSucursalnomSucursal] ] = u= u[[nomSucursalnomSucursal]))))}]))))}

Page 67: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

«el conjunto de todos los clientes (es decir, «el conjunto de todos los clientes (es decir, las tuplas las tuplas t t ((nomClientenomCliente)) tales que, para )) tales que, para todas las tuplas todas las tuplas u u de la relación de la relación sucursalsucursal, si , si el valor de el valor de u u en el atributo en el atributo cdSucursal cdSucursal es es Arganzuela, el cliente tiene una cuenta en Arganzuela, el cliente tiene una cuenta en la sucursal cuyo nombre aparece en el la sucursal cuyo nombre aparece en el atributo atributo nomSucursal nomSucursal de de uu».».

Page 68: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Nótese que hay una sutileza en la consulta Nótese que hay una sutileza en la consulta anterior: si no hay ninguna sucursal en anterior: si no hay ninguna sucursal en Arganzuela, todos los nombres de cliente Arganzuela, todos los nombres de cliente satisfacen la condición. La primera línea de satisfacen la condición. La primera línea de la expresión de consulta es crítica en este la expresión de consulta es crítica en este caso:caso:

sin la condición sin la condición ∃∃ r r ∈∈ cliente cliente ((rr[[nomClientenomCliente] ] = t= t[[nomClientenomCliente]]

si no hay sucursal en Arganzuela, cualquier si no hay sucursal en Arganzuela, cualquier valor de valor de t t (incluyendo los valores que no (incluyendo los valores que no son nombres de cliente en la relación son nombres de cliente en la relación clientecliente) valdría.) valdría.

Page 69: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Definición formalDefinición formal

Las expresiones del cálculo relacional de tuplas Las expresiones del cálculo relacional de tuplas son de la forma son de la forma

{{t | P t | P ((tt)})}donde donde P P es una es una fórmulafórmula. En una fórmula pueden . En una fórmula pueden aparecer varias variables tupla. Se dice que una aparecer varias variables tupla. Se dice que una variable tupla es una variable tupla es una variable libre variable libre a menos que a menos que esté cuantificada mediante esté cuantificada mediante ∀∀ o o ∃∃. Por tanto, en . Por tanto, en t t ∈∈ prestamo prestamo ∧∧ ∃∃ s s ∈∈ cliente cliente ((tt[[nomSucursalnomSucursal] ] = =

ss[[nomSucursalnomSucursal])])t t es una variable libre. La variable tupla es una variable libre. La variable tupla s s se se

denomina variable denomina variable ligadaligada..

Page 70: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Las fórmulas de cálculo relacional de tuplas se Las fórmulas de cálculo relacional de tuplas se construyen con construyen con átomosátomos. Los átomos tienen una de . Los átomos tienen una de las formas siguientes:las formas siguientes:s s ∈∈ rr, donde , donde s s es una variable tupla y es una variable tupla y r r es una es una relación (no se permite el uso del operador ∉)relación (no se permite el uso del operador ∉)ss[[xx] Θ ] Θ uu[[yy], donde ], donde s s y y u u son variables tuplas, son variables tuplas, x x es es un atributo en el que está definida un atributo en el que está definida ss, , y y es un es un atributo en el que está definida atributo en el que está definida u u y Θ es un y Θ es un operador de comparación (<, ≤, =, ≠, >, ≥); es operador de comparación (<, ≤, =, ≠, >, ≥); es necesario que los atributos necesario que los atributos x x e e y y tengan dominios tengan dominios cuyos miembros puedan compararse mediante Θ cuyos miembros puedan compararse mediante Θ ss[[xx] Θ ] Θ cc, donde , donde s s es una variable tupla, es una variable tupla, x x es un es un atributo en el que está definida atributo en el que está definida ss, Θ es un , Θ es un operador de comparación y operador de comparación y c c es una constante en es una constante en el dominio del atributo el dominio del atributo xx

Page 71: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Las fórmulas se construyen a partir de los átomos Las fórmulas se construyen a partir de los átomos utilizando las reglas siguientes:utilizando las reglas siguientes:Un átomo es una fórmula.Un átomo es una fórmula.Si Si PP1 es una fórmula, también lo son ¬ 1 es una fórmula, también lo son ¬ PP1 y (1 y (PP1).1).Si Si PP1 y 1 y PP2 son fórmulas, también lo son 2 son fórmulas, también lo son PP1 1 ∨∨ PP2, 2, PP1 1 ∧∧ PP2 y 2 y PP1 1 ⇒⇒ PP2.2.Si Si PP1(1(ss) es una fórmula que contiene una variable tupla ) es una fórmula que contiene una variable tupla libre libre s, s, y y r r es una relación,es una relación,∃∃ s s ∈∈ r r ((PP1 (1 (ss)) y )) y ∀∀ s s ∈∈ r r ((PP1 (1 (ss)) también son fórmulas)) también son fórmulasIgual que en el álgebra relacional, se pueden escribir Igual que en el álgebra relacional, se pueden escribir expresiones equivalentes que no sean idénticas en expresiones equivalentes que no sean idénticas en apariencia. En el cálculo relacional de tuplas estas apariencia. En el cálculo relacional de tuplas estas equivalencias incluyen las tres reglas siguientes:equivalencias incluyen las tres reglas siguientes:

1. 1. PP1 1 ∧∧ PP2 es equivalente a ¬ (¬ (2 es equivalente a ¬ (¬ (PP1) 1) ∨∨ ¬ ( ¬ (PP2)).2)).2. 2. ∀ ∀ t t ∈∈ r r ((PP1 (1 (tt)) es equivalente a ¬ )) es equivalente a ¬ ∃∃ t t ∈∈ r r (¬ (¬ PP1 (1 (tt)).)).3. 3. PP1 1 ⇒⇒ PP2 es equivalente a ¬ (2 es equivalente a ¬ (PP1) 1) ∨∨ PP2.2.

Page 72: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Seguridad de las Seguridad de las expresionesexpresiones

Las expresiones del cálculo relacional de Las expresiones del cálculo relacional de tuplas pueden generar relaciones infinitas. tuplas pueden generar relaciones infinitas. Supóngase que se escribió la expresiónSupóngase que se escribió la expresión

{{t | ¬ t | ¬ ((t t ∈∈ prestamoprestamo)})}Hay infinitas tuplas que no están en Hay infinitas tuplas que no están en préstamopréstamo. La mayor parte de estas tuplas . La mayor parte de estas tuplas contienen valores que ni siquiera aparecen contienen valores que ni siquiera aparecen en la base de datos. Resulta evidente que en la base de datos. Resulta evidente que no se desea permitir ese tipo de no se desea permitir ese tipo de expresiones.expresiones.

Page 73: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Para ayudar a definir las restricciones del cálculo relacional de Para ayudar a definir las restricciones del cálculo relacional de tuplas se introduce el concepto de tuplas se introduce el concepto de dominiodominio de una fórmula de una fórmula relacional de tuplas, relacional de tuplas, PP. . De manera intuitiva, el dominio de De manera intuitiva, el dominio de PP, denotado por , denotado por domdom((PP), es ), es el conjunto de todos los valores a los que el conjunto de todos los valores a los que P P hace referencia. hace referencia. Esto incluye a los valores mencionados en la propia Esto incluye a los valores mencionados en la propia PP, así , así como a los valores que aparezcan explícitamente en como a los valores que aparezcan explícitamente en P P o en o en una o en varias relaciones cuyos nombres aparezcan en una o en varias relaciones cuyos nombres aparezcan en PP. . Así, el dominio de Así, el dominio de P P es el conjunto de todos los valores que es el conjunto de todos los valores que aparecen explícitamente en una o más relación cuyos aparecen explícitamente en una o más relación cuyos nombres aparecen en nombres aparecen en PP. . Por ejemplo, Por ejemplo, domdom((t t ∈∈ préstamo préstamo ∧∧ tt[[importeimporte] > 1200) es el ] > 1200) es el conjunto que contiene a 1200 y el conjunto de todos los conjunto que contiene a 1200 y el conjunto de todos los valores que aparecen en valores que aparecen en préstamopréstamo. Además, . Además, domdom(¬ ((¬ (t t ∈∈ préstamopréstamo)) es el conjunto de todos los valores que aparecen )) es el conjunto de todos los valores que aparecen en en préstamopréstamo, dado que la relación , dado que la relación préstamo préstamo se menciona en se menciona en la expresiónla expresión

Page 74: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Se dice que una expresión {Se dice que una expresión {t t | | PP((tt)} es )} es segura segura si todos los valores que aparecen si todos los valores que aparecen en el resultado son valores de en el resultado son valores de domdom((PP). La ). La expresión {expresión {t t | ¬ (| ¬ (t t ∈∈ préstamopréstamo)} no es )} no es segura.segura.Obsérvese que Obsérvese que domdom(¬ ((¬ (t t ∈∈ préstamopréstamo)) es )) es el conjunto de todos los valores que el conjunto de todos los valores que aparecen en aparecen en préstamopréstamo. Sin embargo, es . Sin embargo, es posible tener una tupla posible tener una tupla t t que no esté en que no esté en préstamo préstamo que contenga valores que no que contenga valores que no aparezcan en aparezcan en préstamopréstamo. .

Page 75: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Potencia expresiva de los Potencia expresiva de los lenguajeslenguajes

El cálculo relacional de tuplas restringido a El cálculo relacional de tuplas restringido a expresiones seguras es equivalente en expresiones seguras es equivalente en potencia expresiva al álgebra relacional potencia expresiva al álgebra relacional básica (con los operadores básica (con los operadores ∪∪, – , ×, σ y ρ, – , ×, σ y ρ, , pero sin los operadores relacionales pero sin los operadores relacionales extendidos tales como la proyección extendidos tales como la proyección generalizada generalizada G G y las operaciones de reunión y las operaciones de reunión externa). externa). Por tanto, para cada expresión del álgebra Por tanto, para cada expresión del álgebra relacional hay una expresión equivalente relacional hay una expresión equivalente del cálculo relacional de tuplas, y para cada del cálculo relacional de tuplas, y para cada expresión del cálculo relacional de tuplas expresión del cálculo relacional de tuplas hay una expresión equivalente del álgebra hay una expresión equivalente del álgebra relacional. relacional.

Page 76: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Cálculo relacional de dominiosCálculo relacional de dominios

Hay una segunda forma de cálculo relacional Hay una segunda forma de cálculo relacional denominada denominada cálculo relacional de cálculo relacional de dominiosdominios. . Esta forma utiliza Esta forma utiliza variables de variables de dominiodominio que que toman sus valores del dominio de un toman sus valores del dominio de un atributo, en vez de tomarlos de una tupla atributo, en vez de tomarlos de una tupla completa. completa. Las expresiones del cálculo relacional de Las expresiones del cálculo relacional de dominios son de la formadominios son de la forma

{{< x< x11, x, x22, …, xn > | P, …, xn > | P((xx11, x, x22, …, xn, …, xn)})}donde donde xx1, 1, xx2, …, 2, …, xn xn representan las representan las variables de dominio, variables de dominio, P P representa una representa una fórmula compuesta de átomos.fórmula compuesta de átomos.

Page 77: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Los átomos del cálculo relacional de dominios Los átomos del cálculo relacional de dominios tienen una de las formas siguientes:tienen una de las formas siguientes:<<xx1, 1, xx2, …, 2, …, xnxn> > ∈∈ rr, donde , donde r r es una relación con es una relación con n n atributos y atributos y xx1, 1, xx2, …, 2, …, xn xn son variables de son variables de dominio o constantes de dominio.dominio o constantes de dominio.x x Θ Θ yy, donde , donde x x e e y y son variables de dominio y Θ son variables de dominio y Θ es un operador de comparación (<, ≤, =, ≠, >, es un operador de comparación (<, ≤, =, ≠, >, ≥). Se exige que los atributos ≥). Se exige que los atributos x x e e y y tengan tengan dominios que puedan compararse mediante Θ.dominios que puedan compararse mediante Θ.x x Θ Θ cc, donde , donde x x es una variable de dominio, Θ es es una variable de dominio, Θ es un operador de comparación y un operador de comparación y c c es una constante es una constante del dominio del atributo para el que del dominio del atributo para el que x x es una es una variable de dominio.variable de dominio.

Page 78: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Las fórmulas se construyen a partir de los Las fórmulas se construyen a partir de los átomos utilizando las reglas siguientes:átomos utilizando las reglas siguientes:Un átomo es una fórmula.Un átomo es una fórmula.Si Si PP1 es una fórmula, también lo son ¬ 1 es una fórmula, también lo son ¬ PP1 y 1 y ((PP1).1).Si Si PP1 y 1 y PP2 son fórmulas, también lo son 2 son fórmulas, también lo son PP1 1 ∧∧ PP2, 2, PP1 1 ∨∨ PP2 y 2 y PP1 1 ⇒⇒ PP2.2.Si Si PP1(1(xx) es una fórmula en ) es una fórmula en xx, donde , donde x x es es una variable de dominio, una variable de dominio, ∃∃ x x < (< (PP1 (1 (xx)) y )) y ∀∀ x x ((PP1 (1 (xx)) también son fórmulas)) también son fórmulas

Page 79: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Consultas de ejemploConsultas de ejemplo

Averiguar el nombre de la sucursal, el Averiguar el nombre de la sucursal, el número de préstamo y el importe de los número de préstamo y el importe de los préstamos superiores a 1200 pesos:préstamos superiores a 1200 pesos:{{< p, s, i > | < p, s, i > < p, s, i > | < p, s, i > ∈∈ prestamo prestamo ∧∧ i > i >

1200}1200}

Averiguar todos los números de préstamo Averiguar todos los números de préstamo de los préstamos por importe superior a de los préstamos por importe superior a 1200 pesos:1200 pesos:{{<p> | <p> | ∃∃ s, i s, i ((< p, s, i > < p, s, i > ∈∈ prestamo prestamo ∧∧ i > i >

1200)}1200)}

Page 80: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Averiguar el nombre de todos los clientes que tienen Averiguar el nombre de todos los clientes que tienen concedido un préstamo en la sucursal de Navacerrada y concedido un préstamo en la sucursal de Navacerrada y averiguar el importe del préstamo:averiguar el importe del préstamo:

{< {< nn, , i i > | > | ∃∃ p p (< (< nn, , p p > > ∈∈ prestatario prestatario ∧ ∃∧ ∃ s s (< (< p, s, i p, s, i > > ∈∈ prestamo prestamo ∧∧ s s = «Navacerrada»))}= «Navacerrada»))}

Averiguar el nombre de todos los clientes que tienen Averiguar el nombre de todos los clientes que tienen concedido un préstamo, una cuenta abierta, o ambas concedido un préstamo, una cuenta abierta, o ambas cosas, en la sucursal de Navacerrada:cosas, en la sucursal de Navacerrada:

{< {< n n > | > | ∃∃ p p (< (< nn, , p p > > ∈∈ prestatario prestatario ∧ ∃∧ ∃ ss, , i i (< (< p, s, i p, s, i > > ∈∈ prestamo prestamo ∧∧ s s = «Navacerrada»)) = «Navacerrada»)) ∧ ∃∧ ∃ c c (< (< nn, , c c > > ∈∈

impositor impositor ∧ ∃∧ ∃ ss, , i i (< (< cc, , ss, , i i > > ∈∈ cuenta cuenta ∧∧ s s = = «Navacerrada»))}«Navacerrada»))}

Averiguar el nombre de todos los clientes que tienen Averiguar el nombre de todos los clientes que tienen una cuenta abierta en todas las sucursales situadas en una cuenta abierta en todas las sucursales situadas en Arganzuela:Arganzuela:

{< {< c c > | > | ∃∃ s, t s, t (< (< cc, , s, t s, t > > ∈∈ clientecliente) ) ∧ ∀∧ ∀ xx, , yy, , z z (< (< xx, , yy, , z z > > ∈∈ sucursalsucursal) ) ∧∧ y y = «Arganzuela» = «Arganzuela» ∧ ∃∧ ∃ aa, , b b (< (< aa, , xx, , b b > > ∈∈

cuenta cuenta ∧∧ (< (< nn, , a a > > ∈∈ impositorimpositor))}))}

Page 81: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Seguridad de las expresionesSeguridad de las expresiones

Escribir expresiones que pueden generar Escribir expresiones que pueden generar relaciones infinitas. Esto llevó a definir la relaciones infinitas. Esto llevó a definir la seguridad seguridad de las expresiones de cálculo de las expresiones de cálculo relacional de tuplas. Se produce una relacional de tuplas. Se produce una situación parecida en el cálculo relacional situación parecida en el cálculo relacional de dominios.de dominios.Las expresiones como Las expresiones como

{{< p, s, i > | ¬ < p, s, i > | ¬ ((< p, s, i > < p, s, i > ∈∈ préstamopréstamo)} no )} no son seguras porque permiten valores del son seguras porque permiten valores del resultado que no están en el dominio de la resultado que no están en el dominio de la expresión.expresión.

Page 82: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Se dice que la expresiónSe dice que la expresión{{< x< x11, x, x22, …, xn > | P, …, xn > | P((xx11, x, x22, …, xn, …, xn)})}

es segura si se cumplen todas las condiciones es segura si se cumplen todas las condiciones siguientes:siguientes:

1. 1. Todos los valores que aparecen en las tuplas de la Todos los valores que aparecen en las tuplas de la expresión son valores de expresión son valores de domdom((PP).).

2. 2. Para cada subfórmula «existe» de la forma Para cada subfórmula «existe» de la forma ∃∃ x x ((PP1(1(xx)), la subfórmula es cierta si y sólo si hay un )), la subfórmula es cierta si y sólo si hay un valor valor x x en en domdom((PP1) tal que 1) tal que PP1(1(xx) es verdadero.) es verdadero.

3. 3. Para cada subfórmula «para todo» de la forma Para cada subfórmula «para todo» de la forma ∀∀ x x ((PP1(1(xx)), la subfórmula es verdadera si y sólo si )), la subfórmula es verdadera si y sólo si PP1(1(xx) es verdadero para todos los valores ) es verdadero para todos los valores x x de de domdom((PP1).1).

Page 83: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Potencia expresiva de los Potencia expresiva de los lenguajeslenguajes

Cuando el cálculo relacional de dominios se Cuando el cálculo relacional de dominios se restringe a expresiones seguras es equivalente en restringe a expresiones seguras es equivalente en potencia expresiva al cálculo relacional de tuplas potencia expresiva al cálculo relacional de tuplas restringido a expresiones seguras.restringido a expresiones seguras.Equivalencia de los tres lenguajes:Equivalencia de los tres lenguajes:El álgebra relacional básica (sin las operaciones El álgebra relacional básica (sin las operaciones extendidas)extendidas)El cálculo relacional de tuplas restringido a El cálculo relacional de tuplas restringido a expresiones segurasexpresiones segurasEl cálculo relacional de dominios restringido a El cálculo relacional de dominios restringido a expresiones segurasexpresiones seguras

Page 84: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.5. Modificación de la base de 3.5. Modificación de la base de datos.datos.

Las modificaciones de la base de datos se Las modificaciones de la base de datos se expresan utilizando la operación expresan utilizando la operación asignación.asignación.

Se expresan básicamente igual que las Se expresan básicamente igual que las consultas. Pero, en lugar de mostrar las consultas. Pero, en lugar de mostrar las tuplas al usuario, se eliminan de la base de tuplas al usuario, se eliminan de la base de datos.datos.

←←

Page 85: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

BorradoBorrado

Sólo se pueden borrar tuplas enteras; no Sólo se pueden borrar tuplas enteras; no se pueden borrar valores de atributos se pueden borrar valores de atributos concretos. concretos. En el álgebra relacional los borrados se En el álgebra relacional los borrados se expresan medianteexpresan mediante

r r ← ← r – Er – E

Donde Donde r r es una relación y es una relación y E E es una es una consulta del álgebraconsulta del álgebra

Page 86: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

EjemplosEjemplos

Borrar todas las cuentas de Gómez.Borrar todas las cuentas de Gómez.impositor impositor ←←impositor – impositor – σσnomCliente nomCliente = «Gómez» = «Gómez»

((impositorimpositor))Borrar todos los préstamos con importes entre 0 y Borrar todos los préstamos con importes entre 0 y 50.50.

prestamo prestamo ← ← prestamo prestamo – σ– σimporte importe ≥ 0 and ≥ 0 and importeimporte≤ ≤ 50 (50 (prestamoprestamo))

Borrar todas las cuentas de las sucursales sitas en Borrar todas las cuentas de las sucursales sitas en Getafe.Getafe.r1 ← σr1 ← σcdSucursal cdSucursal = «Getafe» (= «Getafe» (cuenta sucursalcuenta sucursal))

rr2 ←Π2 ←ΠnomSucursal, noCuenta, saldo nomSucursal, noCuenta, saldo ((rr1)1)cuenta cuenta ← ← cuenta cuenta – r2– r2

Page 87: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

InserciónInserción

Para insertar datos en una relación hay que Para insertar datos en una relación hay que especificar la tupla que se va a insertar o escribir especificar la tupla que se va a insertar o escribir una consulta cuyo resultado sea un conjunto de una consulta cuyo resultado sea un conjunto de tuplas que vayan a insertarse.tuplas que vayan a insertarse.

r r ← ← r r ∪∪ EE

Donde Donde r r es una relación y es una relación y E E es una expresión del es una expresión del álgebra relacional. álgebra relacional. La inserción de una sola tupla se expresa haciendo La inserción de una sola tupla se expresa haciendo que que E E sea una relación constante que contiene sea una relación constante que contiene una tupla.una tupla.

cuenta cuenta ← ← cuenta cuenta ∪∪ {(C-973, «Navacerrada», 1200)}{(C-973, «Navacerrada», 1200)}

Page 88: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

EjemploEjemplo

Supóngase que se desea ofrecer una nueva Supóngase que se desea ofrecer una nueva cuenta de ahorro con $200 como regalo a todos cuenta de ahorro con $200 como regalo a todos los clientes con préstamos concedidos en la los clientes con préstamos concedidos en la sucursal de Navacerrada.sucursal de Navacerrada.Sea el número de préstamo el que se utilice como Sea el número de préstamo el que se utilice como número de cuenta de esta cuenta de ahorro. Hay número de cuenta de esta cuenta de ahorro. Hay que escribir que escribir r1←( σr1←( σnomSucursal nomSucursal = «Navacerrada» (= «Navacerrada» (prestatario prestatario prestamoprestamo))))rr2←Π2←ΠnomSucursal, noPrestamo nomSucursal, noPrestamo ((rr1)1)cuenta cuenta ← ← cuenta cuenta ∪∪ ( (rr2 × {(200)})2 × {(200)})impositor impositor ←←impositor impositor ∪ ∪ ΠΠnomCliente, noPrestamo nomCliente, noPrestamo ((rr1)1)

Page 89: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

ActualizaciónActualización

Modificar un valor de una tupla sin modificar Modificar un valor de una tupla sin modificar todos todos los valores de los valores de la tupla. la tupla. Se puede utilizar el operador proyección generalizada para Se puede utilizar el operador proyección generalizada para realizar esta tarea:realizar esta tarea:

rr←Π←ΠFF1, 1, FF2,…, 2,…, Fn Fn ((rr))

donde cada donde cada Fi Fi es el es el ii-ésimo atributo de -ésimo atributo de rr, si el , si el ii-ésimo atributo no -ésimo atributo no está actualizado, o, si hay que actualizar el atributo, una está actualizado, o, si hay que actualizar el atributo, una expresión, que sólo implica constantes y los atributos de expresión, que sólo implica constantes y los atributos de rr, que da , que da el nuevo valor del atributo.el nuevo valor del atributo.Si se desea seleccionar varias tuplas de Si se desea seleccionar varias tuplas de r r y sólo actualizar esas y sólo actualizar esas mismas tuplas, se puede utilizar la expresión siguiente, donde mismas tuplas, se puede utilizar la expresión siguiente, donde P P denota la condición de selección que escoge las tuplas que hay denota la condición de selección que escoge las tuplas que hay que actualizar:que actualizar:

r r ←Π←ΠFF1, 1, FF2, …, 2, …, Fn Fn ( σ( σP P ((rr)) )) ∪∪ ( (r – r – σσP P ((rr))))

Para ilustrar el uso de la operación actualización supóngase que Para ilustrar el uso de la operación actualización supóngase que se realiza el pago de los intereses y que hay que aumentar todos se realiza el pago de los intereses y que hay que aumentar todos los saldos en un 5 por ciento.los saldos en un 5 por ciento.Hay que escribir:Hay que escribir:

cuenta cuenta ← Π ← Π nomSucursal, noCuenta, saldo, saldo * nomSucursal, noCuenta, saldo, saldo * 1.051.05 ( (cuenta)cuenta)

Page 90: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.6 Integridad.3.6 Integridad.

Restricciones de dominio . Limites Restricciones de dominio . Limites al conjunto de valores permitidos.al conjunto de valores permitidos.Reglas de Integridad : de Entidad Reglas de Integridad : de Entidad y Referencial y Referencial Valores nulosValores nulos

Representa un valor para un atributo que Representa un valor para un atributo que es desconocido o no es aplicable para es desconocido o no es aplicable para una tupla. una tupla. Formas de tratar datos nulos o Formas de tratar datos nulos o excepcionales.excepcionales.Representa la ausencia de un valor y no Representa la ausencia de un valor y no es lo mismo cero o espacios, los cuales es lo mismo cero o espacios, los cuales son valores.son valores.

Page 91: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.6 Integridad.3.6 Integridad.

Integridad de EntidadIntegridad de Entidad

En una relación base ningún atributo de una clave En una relación base ningún atributo de una clave principal puede ser nulo. principal puede ser nulo.

Integridad referencialIntegridad referencial

Si hay una clave externa en una relación, el valor de la Si hay una clave externa en una relación, el valor de la clave externa debe corresponderse con el valor de una clave externa debe corresponderse con el valor de una clave candidata de alguna tupla en su relación de origen clave candidata de alguna tupla en su relación de origen o el valor de la clave externa debe ser completamente o el valor de la clave externa debe ser completamente nulo.nulo.

Restricciones GeneralesRestricciones Generales

Reglas adicionales especificadas por los usuarios o Reglas adicionales especificadas por los usuarios o administradores de la base de datos que definen o administradores de la base de datos que definen o restringen algunos aspectos de la empresa. restringen algunos aspectos de la empresa.

Page 92: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.7. Vistas3.7. Vistas

Relación BaseRelación BaseUna relación con nombre Una relación con nombre correspondiente a una entidad en correspondiente a una entidad en esquema conceptual y cuyas tuplas esquema conceptual y cuyas tuplas están almacenadas físicamente en están almacenadas físicamente en la BD. la BD.

VistaVistaEl resultado dinámico de una o más El resultado dinámico de una o más operaciones relacionales que operan operaciones relacionales que operan sobre las relaciones base para sobre las relaciones base para producir otra relación. producir otra relación.

Page 93: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

3.7. Vistas3.7. Vistas

Una vista es una relación virtual que Una vista es una relación virtual que no tiene por qué existir no tiene por qué existir necesariamente en la base de datos, necesariamente en la base de datos, sino que puede producirse cuando sino que puede producirse cuando se solicite por parte de un usuario se solicite por parte de un usuario concreto, generándosela en el concreto, generándosela en el momento de la solicitud.momento de la solicitud.El contenido de una vista se define El contenido de una vista se define como una consulta de una o mas como una consulta de una o mas relaciones base. relaciones base. Las vistas son dinámicas, significa Las vistas son dinámicas, significa que los cambios realizados a las que los cambios realizados a las relaciones base que afectan lo relaciones base que afectan lo atributos vistos, se reflejan atributos vistos, se reflejan inmediatamente en la vista.inmediatamente en la vista.

Page 94: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Propósito de las VistasPropósito de las Vistas

Proporcionan un mecanismo de Proporcionan un mecanismo de seguridad potente y flexible al seguridad potente y flexible al ocultar partes de la base de datos ocultar partes de la base de datos a ojos de ciertos usuarios.a ojos de ciertos usuarios.Permite a los usuarios acceder a Permite a los usuarios acceder a los datos de una forma los datos de una forma personalizada para sus personalizada para sus necesidades, de modo que unos necesidades, de modo que unos mismos datos puedan ser vistos de mismos datos puedan ser vistos de forma distinta por diferentes forma distinta por diferentes usuarios simultáneamente.usuarios simultáneamente.Puede simplificar las operaciones Puede simplificar las operaciones complejas sobre las relaciones complejas sobre las relaciones base. base.

Page 95: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Actualización de vistasActualización de vistas

Las actualizaciones a la relación Las actualizaciones a la relación base debería reflejarse base debería reflejarse inmediatamente en todas las vistas inmediatamente en todas las vistas que hagan referencia a esa que hagan referencia a esa relación.relación.Si la vista se actualiza, la relación Si la vista se actualiza, la relación base que la soporta debe reflejar base que la soporta debe reflejar ese cambio.ese cambio.

Page 96: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Actualización de VistasActualización de Vistas

Existen restricciones de tipos de Existen restricciones de tipos de modificaciones que se puedan modificaciones que se puedan hacer a través de vistas: hacer a través de vistas:

Se permiten las actualizaciones si la consulta Se permiten las actualizaciones si la consulta implica una sola relación base y contiene la implica una sola relación base y contiene la llave principal o clave candidata de la relación llave principal o clave candidata de la relación base. base. Las actualizaciones no se permiten si implican Las actualizaciones no se permiten si implican múltiples relaciones base. múltiples relaciones base. Las actualizaciones no se permiten si implican Las actualizaciones no se permiten si implican operaciones de agregación o agrupación.operaciones de agregación o agrupación.

Page 97: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Las clases de vistas se definen Las clases de vistas se definen como:como:

Teóricamente no actualizablesTeóricamente no actualizablesTeóricamente actualizablesTeóricamente actualizablesParcialmente actualizablesParcialmente actualizables

Actualización de VistasActualización de Vistas

Page 98: Bases de Datos I. Tema III. Modelo Relacional

Bases de Datos IBases de Datos I MTI Remedios Fabián VelascoMTI Remedios Fabián VelascoUniversidad del Mar – 07/2008Universidad del Mar – 07/2008

Bibliografía utilizadaBibliografía utilizadaLibros: Libros:

Fundamentos de Bases de Datos. Abraham Fundamentos de Bases de Datos. Abraham Silberschatz, Henry F. Korth, S. SudarshanSilberschatz, Henry F. Korth, S. SudarshanSistemas de Bases de Datos. Thomas Conolly y Sistemas de Bases de Datos. Thomas Conolly y Carolyn BeggCarolyn Begg

Papers:Papers:A relational model of data for large shared data banks. E.F. Codd. IBM Research Laboratory San Jose California. 1983.El modelo relacional de bases de datos. Javier Quiroz. Boletín de Política Informática 2003.

Imágenes:Imágenes:Imágenes blanco y negro tomadas del libro de SilberschatzImágenes color tomadas del libro de Begg tomadas del libro de Begg