Tema III.

Modelo Relacional
::Universidad del Mar::

::Campus Puerto Escondido ::

Bases de Datos I
MTI Remedios Fabián Velasco Ver. 1.1 Cuarto Semestre Licenciatura en Informática

Simbología
Concepto importante Base de Datos Tarea o ejercicio Aplicaciones

Tablas – Entidades - Relaciones
Bases de Datos I Universidad del Mar – 07/2008

Tabla 2

MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Modelo Relacional. Breve Historia
Propuesto por E. F. Codd en su artículo original “A relational model of data for large shared data banks” (Codd, 1970), anteriormente se había propuesto un modelo orientado a conjuntos (Childs, 1968). Los objetivos del modelo relacional de Codd eran:
Permitir un alto grado de independencia de los datos. Proporcionar una base teórica sólida que permitiera tratar con la semántica de los datos y con los problemas de coherencia y de redundancia. Codd introducía el concepto de relaciones normalizadas.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Modelo Relacional. Breve Historia
Este modelo tomo importancia debido a tres proyectos que se desarrollaron posteriormente para demostrar la posibilidad de implementar el modelo relacional:
Sistema R: Prototipo SGBD Relacional. Laboratorio de Investigación San José de IBM. Finales de 1970. Condujo a dos desarrollos Lenguaje de consulta estructurado – SQL Desarrollo de varios productos manejadores de base de datos – DB2, SQL/DS y Oracle.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Modelo Relacional. Breve Historia
INGRES (Interactive Graphics Retrieveal Systems, sistema gráfico interactivo de extracción. Universidad de California en Berkeley, Versión académica que contribuyo a la popularización de los conceptos. Peterlee Relational Test Vehicle en le laboratorio de IBM Scientific Centre en Peterlee, Reino Unido. Proyecto más teórico que los anteriores y su principal importancia radica en la investigación de cuestiones tales como el procesamiento y optimización de consultas y la ampliación funcional.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Terminología Modelo Relacional

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Terminología Modelo Relacional
Base de Datos Relacional es una colección de relaciones normalizadas en la que cada relación tiene un nombre distinto. Una relación es una tabla con columnas y filas.
Solamente aplica a estructuras lógicas de la BD, no a la estructura física.

Bases de Datos I

Atributos son las columnas nominadas de la relación. Dominio es el conjunto de valores permitidos para uno o más atributos. Tupla es una fila de una relación. Grado es el número de atributos en una relación. Cardinalidad es el número tuplas en una relación.
Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Terminología Modelo Relacional
Dominio 1
noCuenta
C101 C102 C201 C215 C217 C222 C305

Dominio 2 Dominio 3
nomSucursal
Centro Navacerrada Galapagar Becerril Galapagar Moralzarzal Collado Mediano

saldo
500 400 900 700 750 700 350

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

Bases de Datos I

Universidad del Mar – 07/2008

Ejemplos de dominios de atributos
Atributo
noSucursal calle ciudad codPost sexo

Dominio
Números de sucursal Nombres de Calles Nombres de ciudades Códigos Postales Sexo del personal Fechas de nacimiento Salarios del personal

Significado
El conjunto de todos los posibles número de sucursal El conjunto de todos los nombres de calle de Oaxaca. El conjunto de todos los nombres de las ciudades de Oaxaca. El conjunto de todos los códigos postales de las ciudades de Oaxaca. El sexo de la persona

Definición
Carácter: Tamaño 4 Rango de B001B999 Carácter: Tamaño 25 Carácter: Tamaño 15 Carácter: Tamaño 8 Carácter: Tamaño 1 Valor M o F Date, Rango desde 1/01/1900 formato dd/mm/aaaa Monetario: 7 dígitos, Rango de 6000.00 – 40000.00

Nacimiento salario

Todas las fechas posibles de nacimiento Posibles valores del salario del personal

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Terminología alternativa para el Modelo Relacional
Termino Formal Alternativa 1 Relación Tabla Tupla Fila Atributo Columna Alternativa 2 Archivo Registro Campo

© Pearson Education Limited 1995, 2005
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Terminología Modelo Relacional
Relacion es Sucursal y Personal:

Bases de Datos I

Universidad del Mar – 07/2008 © Pearson Education Limited 1995, 2005

MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

3.1 Estructura de las bases de 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). noCuenta nomSucursal saldo
C101 C102 C201 C215 C217 C222 C305 Centro Navacerrada Galapagar Becerril Galapagar Moralzarzal Collado Mediano 500 400 900 700 750 700 350

tupla (v1, v2, v3)

Bases de Datos I

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 de
Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

3.1 Estructura de las bases de datos relacionales.
Considere dos conjuntos: D1 & D2, donde D1 = {2, 4} y  D2 = {1, 3, 5} Producto cartesiano, D1 ×  D2, es un conjunto de todos los  pares ordenados, donde el primer elemento es miembro de D1  y el segundo elemento es miembro de D2. 

D1 × D2 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)}
Una alternativa es encontrar todas las combinaciones del  elementos con el primero de D1 y el segundo de D2. 
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

3.1 Estructura de las bases de datos relacionales.
R = {(2, 1), (4, 1)}

Cualquier subconjunto del Producto Cartesiano es  una relación, por ejemplo:
Puede especificar que pares se están utilizando en la relación  utilizando algunas condiciones de selección, ejemplo:
El segundo elemento es 1: R = {(x, y) | x ∈ D1, y ∈ D2, and  y = 1}        R = {(1,1), (2,1), (3,1)} El primer elemento es dos veces el segundo: S = {(x, y) | x ∈ D1, y ∈ D2, and  x = 2y}     R = {(2,1), (4,2), (6,3)}

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

3.1 Estructura de las bases de datos relacionales.
Considere tres conjuntos  D1, D2, D3 con  Producto Cartesiano  D1 ×  D2 ×  D3; ejemplo:
D1 = {1, 3} D2 = {2, 4} D3 = {5, 6}

D1 ×  D2 ×  D3 = {(1,2,5), (1,2,6), (1,4,5), (1,4,6), (3,2,5),  (3,2,6), (3,4,5), (3,4,6)} 

Cualquier subconjunto de esas ordenadas  triples es una relación. 
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

3.1 Estructura de las bases de datos relacionales.
Producto cartesiano de n conjuntos (D1, D2, . . .,  Dn) es:
D1 ×  D2 × . . . × Dn = {(d1, d2, . . . , dn) | d1 ∈ D1, d2 ∈ D2, . . . , dn∈ Dn} 

     normalmente se escribe:  
 n

XDi
i = 1

Cualquier conjunto de n­tuplas de este producto  cartesiano es una relación de los n conjunto.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Esquema de la base de datos
Se adopta el convenio de utilizar nombres en minúsculas para las relaciones y nombres que comiencen por una letra mayúscula para los esquemas de las relaciones. Siguiendo esta notación se utilizará Esquemacuenta para denotar el esquema de la relación de la relación cuenta. Por tanto, esquema-cuenta = (noCuenta, nomSucursal, saldo) Se denota el hecho de que cuenta es una relación de Esquema-cuenta mediante cuenta (Esquema-cuenta)
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Relaciones en una base de datos
Esquema de relación
Relación denominada, definida por un conjunto de atributos y nombres de dominio.

Esquema de base de datos relacional
Conjunto de esquemas de relación, cada una de los cuales con nombres distintivos.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Propiedades de las relaciones
La relación tiene un nombre distintivo de los demás nombres de relación del esquema relacional. Cada celda de la relación contiene exactamente un valor atómico (único). Cada atributo tiene un nombre distintivo. Los valores de un atributo pertenecen todos al mismo dominio. Cada tupla es diferente, no hay tuplas duplicadas. El orden de los atributos no tiene importancia El orden de las tuplas no tiene importancia.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Estructura básica
IF
nomCliente = {Jones, Smith, Curry, Lindsay, …}
clinetes */ /* Conjunto de nombres de

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

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

Then r = {

(Jones, Main, Harrison), (Smith, (Curry, North, Rye), North, Rye),

(Lindsay, Park, Pittsfield) } is a relation over

nomCliente x calleCliente x ciudad

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Estructura básica

nomCliente Jones Smith Curry Lindsay

calleCliente Main North North Park

ciudad Harrison Rye Rye Pittsfield

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

La Figura muestra el diagrama de esquema del ejemplo bancario.

Bases de Datos I

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

MTI Remedios Fabián Velasco

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

Bases de Datos I

Una superllave es un conjunto de uno o más atributos que, tomados colectivamente, permiten identificar de forma única una entidad en el conjunto de entidades. Por ejemplo, el atributo id-cliente del conjunto de entidades cliente es suficiente para distinguir una entidad cliente de las otras. Si K es una superllave, entonces
Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Llaves relacionales
Llave candidata
Una superllave tal que ningún subconjunto de la misma es una superllave de la relación.

Es posible que conjuntos distintos de atributos pudieran servir como llave candidata. Supóngase que una combinación de nomCliente y calleCliente es suficiente para distinguir entre los miembros del conjunto de entidades cliente. Entonces, los conjuntos {idCliente} y {nomCliente, calleCliente} son llaves candidatas. Aunque los atributos idCliente y nomCliente juntos puedan distinguir entidades cliente, su combinación no forma una llave candidata, ya que el atributo idCliente por sí solo es una llave candidata.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Llaves relacionales
Una llave candidata, K, para una relación R tiene dos propiedades:

Unicidad: En cada tupla R, los valores de K identifican univocamente a la tupla. Irreducibilidad: Ningún subconjunto de K presenta la propiedad de unicidad. Se usará el término llave primaria para denotar una llave candidata que es elegida por el diseñador de la base de datos como elemento principal para identificar las entidades dentro de un conjunto de entidades.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

La llave primaria de un conjunto de entidades permite distinguir entre las diferentes entidades del conjunto. Se necesita un mecanismo similar para distinguir entre las diferentes relaciones de un conjunto de relaciones. Sea R un conjunto de relaciones que involucra los conjuntos de entidades E1, E2,…, En. Sea llave-primaria(Ei) el conjunto de atributos que forma la llave primaria para el conjunto de entidades Ei. Si el conjunto de relaciones R no tiene atributos asociados, entonces el conjunto de atributos:
llave-primaria(E1) Ʊ llave-primaria(E2) Ʊ … Ʊ llave-primaria(En)

describe una relación individual en el conjunto R.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Llaves relacionales
Si el conjunto de relaciones R tiene atributos a1, a2,…,am asociados a él, entonces el conjunto de atributos
llave-primaria(E1) Ʊ llave-primaria(E2) Ʊ … Ʊ llave-primaria(En) Ʊ {a1, a2,…,am}

describe una relación individual en el conjunto R. En ambos casos, el conjunto de atributos llave-primaria(E1) Ʊ llave-primaria(E2) Ʊ … Ʊ llave-primaria(En) forma una superllave para el conjunto de relaciones. Llave alternativa
Llaves candidatas que no se seleccionan para ser llaves primarias.

Llave foránea
Un atributo o conjunto de atributos, dentro de una relación que se corresponde con la llave candidata de alguna Universidad Mar – 07/2008 Bases de Datos I MTI Remedios Fabián Velasco (posiblemente la misma)delrelación.

3.2 Lenguajes formales de consulta. Estos lenguajes suelen ser de un nivel superior

que el de los lenguajes de programación habituales. Pueden clasificarse como procedimentales o no procedimentales. En los lenguajes procedimentales el usuario instruye al sistema para que lleve a cabo una serie de operaciones en la base de datos para calcular el resultado deseado. En los lenguajes no procedimentales el usuario describe la información deseada sin dar un procedimiento concreto para obtener esa información. La mayor parte de los sistemas comerciales de bases de datos relacionales ofrecen un lenguaje de consulta que incluye elementos de los enfoques procedimental y no procedimental.
Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Bases de Datos I

Lenguajes «puros»:
El álgebra relacional es procedimental, El cálculo relacional de tuplas y el de dominios son no procedimentales. Estos lenguajes de consulta son rígidos y formales, y carecen del «azúcar sintáctico» de los lenguajes comerciales, pero ilustran las técnicas fundamentales para la extracción de datos de las bases de datos.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

3.3 Álgebra relacional.
Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación. Las operaciones fundamentales del álgebra relacional son selección, proyección, unión, diferencia de conjuntos y producto cartesiano. Además de las operaciones fundamentales hay otras operaciones, por ejemplo, intersección de conjuntos, reunión natural, división y asignación.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Operaciones de algebra relacional

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Operaciones fundamentales
Las operaciones selección y proyección se denominan operaciones unarias porque operan sobre una sola relación. Las otras tres operaciones (unión, diferencia de conjuntos y producto cartesiano) operan sobre pares de relaciones y se denominan, por lo tanto, operaciones binarias.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

σnomSucursal = «Navacerrada» (préstamo)
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Operaciones Unarias Selección
Lista todos los miembros del personal cuyo salario sea superior a 1000 pesos. σ salario > 1000 (Personal)

noPersona l SL21 SG37 SG14 SG5

nombreP John Ann David Susana

apellido White Beech Ford Brand

puesto Gerente Asistente Superviso r Gerente M F M F

sexo

nacimient o 1/10/45 10/11/60 24/03/58 3/07/40

salario 30000 12000 18000 24000

noSucursal B005 B003 B003 B003

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Operaciones Unarias Proyección
Se aplica a una única relación R y se define otra relación que contiene un subconjunto vertical de R, extrayendo los valores de los atributos especificados y eliminando los duplicados. La operación proyección es una operación unaria que devuelve su relación de argumentos, excluyendo algunos argumentos. Dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas. La proyección se denota por la letra griega mayúscula pi (Π). Se crea una lista de los atributos que se desea que aparezcan en el resultado como subíndice de Π. La relación de argumentos se escribe a continuación entre paréntesis. Π col1, . . . , coln(R)
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Operaciones Unarias Proyección
Supóngase que se desea hacer una lista de todos los salarios del personal, mostrando también staffNo, fName, lName, Salary.
ΠstaffNo, fName, lName, Salary (prestamo)

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

ΠnomCliente ( σcdCliente = «Peguerinos» (cliente))

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Operaciones binarias - Unión
Unión: La unión de dos relaciones R y S define una relación que contiene todas las tuplas R, de S o tanto de R como de S, eliminándose las tuplas duplicadas. R y S, deben ser compatibles, respecto a la unión. Si R y S tienen tuplas I y J, respectivamente su unión se obtiene concatenándolas en una única relación con un máximo de (I + J) tuplas.
R∪ S

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Operaciones binarias - Unión
Liste todas las ciudades donde exista una sucursal o un inmueble en alquiler.
Πciudad(Sucursal) ∪ Π ciudad(PropiedadesRenta)

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Operaciones binarias - Unión
Para que una operación unión r ∪ s sea válida hay que exigir que se cumplan dos condiciones:
1. Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo número de atributos. 2. Los dominios de los atributos i-ésimos de r y de s deben ser iguales para todo i.

Téngase en cuenta que r y s pueden ser, en general, relaciones temporales que sean resultado de expresiones del álgebra relacional.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Operaciones binarias Diferencia
La operación diferencia de conjuntos, denotada por –, permite buscar las tuplas que estén en una relación pero no en la otra. La expresión r – s da como resultado una relación que contiene las tuplas que están en r pero no en s. Se pueden buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido ningún préstamo escribiendo
ΠnomCliente (impositor) – ΠnomCliente (prestatario)
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Operaciones binarias Diferencia nomClien noCuent nomClien noCuent te a
te Abril
Gómez González González López Rupérez Santos

a C102
C101 C201 C217 C222 C215 C305

Relación Impositor

Fernández Gómez Gómez López Pérez Santos Sotoca Valdivieso

P16 P93 P15 P14 P17 P11 P23 P17

nomClien te Abril
González Rupérez

Relación Prestatario

Bases de Datos I

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

MTI Remedios Fabián Velasco

Operaciones binarias – Producto Cartesiano
La operación producto cartesiano, denotada por un aspa (×), permite combinar información de cualesquiera dos relaciones. El producto cartesiano de las relaciones r1 y r2 como r1 × r2. Recuérdese que las relaciones se definen como subconjuntos del producto cartesiano de un conjunto de dominios. Dado que el mismo nombre de atributo puede aparecer tanto en r1 como en r2, hay que crear un esquema de denominaciones para distinguir entre ambos atributos. En este caso se logra adjuntando al atributo el nombre de la relación de la que proviene originalmente.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Operaciones binarias – Producto Cartesiano
Por ejemplo, el esquema de relación de r = prestatario × préstamo es: (prestatario.nomCliente, prestatario.noPrestamo, prestamo.nomSucursal, prestamo. noPrestamo, prestamo.importe) Con este esquema se puede distinguir entre prestatario.noPrestamo y prestamo.noPrestamo. Para los atributos que sólo aparecen en uno de los dos esquemas se suele omitir el prefijo con el nombre de la relación. Esta simplificación no genera ambigüedad alguna. Por tanto, se puede escribir el esquema de relación de r como: (nomCliente, prestatario.noprestamo, nomSucursal, prestamo.noPrestamo, importe)
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Operaciones binarias – Producto Cartesiano
Ahora que se conoce el esquema de relación de r = prestatario × préstamo hay que averiguar las tuplas que aparecerán en r.
nomClien te Fernández
Gómez Gómez López Pérez Santos Sotoca Valdivieso

noPrestam o P16
P93 P15 P14 P17 P11 P23 P17

noPrestam nomSucurs o al P11 Collado
P14 P15 P16 P17 P23 P93 Mediano Centro Navacerrada Navacerrada Centro Moralzarzal Becerril

import e 900
1500 1500 1300 1000 2000 500

Relación Prestatario
Bases de Datos I

Relación Préstamo
Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Ejercicio
Resultado de
σnomSucursal = «Navacerrada» (prestatario × préstamo).

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Operación Renombramiento
Operación unaria . Denotado por la letra griega rho minúscula ( ρ), permite renombrar. Dada una expresión E del álgebra relacional, la expresión ρx (E) devuelve el resultado de la expresión E con el nombre x Las relaciones r por sí mismas se consideran expresiones (triviales) del álgebra relacional. Por tanto, también se puede aplicar la operación renombramiento a una relación r para obtener la misma relación con un nombre nuevo. Otra forma de la operación renombramiento: Supóngase que una expresión del álgebra relacional E tiene aridad n. Por tanto, la expresión ρx (A1, A2, … An) (E) devuelve el resultado de la expresión E con el nombre x y con los atributos con el nombre cambiado a A1, A2, …, An.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Ejercicio
Para ilustrar el uso del renombramiento de las relaciones, considérese la consulta «Buscar el máximo saldo de cuenta del banco». La estrategia empleada para obtener el resultado es
1) calcular una relación intermedia consistente en los saldos que no son el máximo y 2) realizar la diferencia entre la relación Πsaldo (cuenta) y la relación intermedia recién calculada.

Paso 1: Para calcular la relación intermedia hay que comparar los valores de los saldos de todas las cuentas. Esta comparación se puede hacer calculando el producto cartesiano cuenta × cuenta y formando una selección para comparar el valor de cualesquiera dos saldos que aparezcan en una tupla. En primer lugar hay que crear un mecanismo para distinguir entre los dos atributos saldo. Se utilizará la operación renombramiento para cambiar el nombre de una referencia a la relación cuenta; así, se puede hacer referencia dos veces a la relación sin ambigüedad alguna.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Ejercicio
La relación temporal que se compone de los saldos que no son el máximo puede escribirse ahora como Πcuenta.saldo ( σcuenta.saldo < d.saldo (cuenta × ρd (cuenta))) Esta expresión proporciona los saldos de la relación cuenta para los que aparece un saldo mayor en alguna parte de la relación cuenta (cuyo nombre se ha cambiado a d). El resultado contiene todos los saldos salvo el máximo. Paso 2: La consulta para averiguar el máximo saldo de cuenta del banco puede escribirse de la manera siguiente: Πsaldo (cuenta) – Πcuenta.saldo ( σcuenta.saldo < d.saldo (cuenta × ρd (cuenta))) noCuenta nomSucursal sald o
C101 C102 C201 C215 C217 C222 C305 Centro Navacerrada Galapagar Becerril Galapagar Moralzarzal Collado Mediano Universidad del Mar – 07/2008 500 400 900 700 750 700 350

Relación Cuenta
Bases de Datos I

MTI Remedios Fabián Velasco

Considérese una consulta para averiguar el nombre de todos los clientes del banco que tienen una cuenta, un préstamo o ambas cosas. Obsérvese que la relación cliente no contiene esa información, dado que los clientes no necesitan tener ni cuenta ni préstamo en el banco. Para contestar a esta consulta hace falta la información de la relación impositor y la de la relación prestatario. Se conoce la manera de averiguar los nombres de todos los clientes con préstamos en el banco: ΠnomCliente (prestatario) También se conoce la manera de averiguar el nombre de los clientes con cuenta en el banco: ΠnomCliente (impositor) Para contestar a la consulta hace falta la unión de estos dos conjuntos; es decir, hacen falta todos los nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos datos Relación pueden averiguar mediante la operación binaria unión, Relación se nomClien noCuent nomClien noCuent Impositor te Prestatario te denotada, como en la teoría de conjuntos, por ∪ a Por tanto, ¿cuál a Abril C102 Fernández P16 es la expresión buscada y cuál es el resultado? P93 Gómez C101 Gómez
González González López Rupérez Santos C201 C217 C222 C215 C305 Gómez López Pérez Santos Sotoca Valdivieso P15 P14 P17 P11 P23 P17

Ejercicio Unión

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Ejercicio Renombramiento
Considérese la siguiente consulta como un nuevo ejemplo de la operación renombramiento: «Averiguar los nombres de 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 la que vive Gómez escribiendo ΠcalleCliente, cdCliente ( σnomCliente = «Gómez» (cliente)) Sin embargo, para hallar a otros clientes que vivan en esa calle y en esa ciudad hay que hacer referencia por segunda vez a la relación cliente. En la consulta siguiente se utiliza la operación renombramiento sobre la expresión anterior para darle al resultado el nombre dirección-Gómez y para cambiar el nombre de los atributos a calle y ciudad en lugar de calleCliente y cdCliente: Πcliente.nomCliente ( σcliente.calleCliente = direccion-Gómez ^ cliente.cdCliente = direccion-Gómez. ciudad (cliente × ρdireccion-Gómez (calle, ciudad) (ΠcalleCliente, cdCliente ( σnomCliente = «Gómez» (cliente)))))
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

3.4 Calculo Relacional de Tuplas
Cuando escribimos una expresión del álgebra relacional proporcionamos una serie de procedimientos que generan la respuesta a la consulta. El cálculo relacional de tuplas, en cambio, es un lenguaje de consulta no procedimental. Describe la información deseada sin dar un procedimiento específico para obtenerla.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Supóngase que se desea averiguar nomSucursal, noPrestamo e importe de los préstamos superiores a $1200: {t | t ∈ prestamo ∧ t[importe] > 1200} Supóngase que sólo se desea obtener el atributo noPrestamo, en vez de todos los atributos de la relación préstamo. En cálculo relacional de tuplas hay que escribir una expresión para una relación del esquema (noPrestamo). Se necesitan las tuplas de (noPrestamo) tales que hay una tupla en préstamo con el atributo importe > 1200. Para expresar esta solicitud hay que utilizar el constructor «existe» ∃ de la lógica matemática. La notación ∃ t ∈ r (Q (t)) significa «existe una tupla t en la relación r tal que el predicado Q(t) es verdadero» {t | ∃ s ∈ prestamo (t[noPrestamo] = s[noPrestamo] ∧ s[importe] > 1200)}
Se lee «el conjunto de todas las tuplas t tales que existe una tupla s en la relación prestamo para la que los valores de t y de s para el atributo noPrestamo son iguales y el valor de s para el atributo importe es mayor que $1200».
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Bases de Datos I

«Averiguar el nombre de todos los clientes que tienen concedido un préstamo en la sucursal de Navacerrada». Esta consulta implica a dos relaciones: prestatario y préstamo. Sin embargo, todo lo que necesita es que tengamos dos instrucciones «existe» ∃ en la expresión de cálculo relacional de tuplas, relacionadas mediante y (∧). La consulta se escribe de la manera siguiente: {t | ∃ s ∈ prestatario (t[noPrestamo] = s[noPrestamo] ∧ ∃ u ∈ prestamo (u[noPrestamo] = s[noPrestamo] ∧ u[nomSucursal] = «Navacerrada»))} «el conjunto de todas las tuplas (nomCliente) para las que el cliente tiene un préstamo concedido en
Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Todos los clientes del banco que tienen concedido un préstamo, una cuenta abierta, o ambas cosas, se utilizó la operación unión del álgebra relacional. En el cálculo relacional de tuplas harán falta dos instrucciones «existe» ∃ relacionadas por o (∨): {t | ∃ s ∈ prestatario (t[nomCliente] = s[nomCliente]) ∨ ∃ u ∈ impositor (t[nomCliente] = u[nomCliente])}
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

«Averiguar todos los clientes que tienen una cuenta abierta en el banco pero no tienen concedido ningún préstamo». La expresión del cálculo relacional de tuplas para esta consulta es parecida a las expresiones que se acaban de ver, salvo el uso del símbolo no (¬): {t | ∃ u ∈ impositor (t[nomCliente] = u[nomCliente]) ∧ ¬ ∃ s ∈ prestatario (t[nomCliente] = s[nomCliente])} La expresión del cálculo relacional de tuplas anterior utiliza la instrucción ∃ u ∈ impositor (…) para exigir que el cliente tenga una cuenta abierta en el banco, y utiliza la instrucción ¬ ∃ s ∈ prestatario (…) para borrar a aquellos clientes que aparecen en alguna tupla de la relación prestatario por tener un préstamo del banco.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

¬P∨Q
MTI Remedios Fabián Velasco

Universidad del Mar – 07/2008

«Averiguar todos los clientes que tienen una cuenta en todas las sucursales sitas en Arganzuela». Para escribir esta consulta en el cálculo relacional de tuplas se introduce el constructor «para todo», denotado por ∀. La notación ∀ t ∈ r (Q (t)) significa «Q es verdadera para todas las tuplas t de la relación r». La expresión para la consulta se escribe de la manera siguiente: {t | ∃ r ∈ cliente (r[nomCliente] = t[nomCliente] ∧ (∀ u ∈ sucursal (u[cdSucursal] = «Arganzuela» ⇒ ∃ s ∈ impositor (t[nomCliente] = s[nomCliente] ∧ ∃ w ∈ cuenta (w[noCuenta] = s[noCuenta] ∧ w[nomSucursal] = u[nomSucursal]))))}
Universidad del Mar – 07/2008

Bases de Datos I

MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Nótese que hay una sutileza en la consulta anterior: si no hay ninguna sucursal en Arganzuela, todos los nombres de cliente satisfacen la condición. La primera línea de la expresión de consulta es crítica en este caso: sin la condición ∃ r ∈ cliente (r[nomCliente] = t[nomCliente] si no hay sucursal en Arganzuela, cualquier valor de t (incluyendo los valores que no son nombres de cliente en la relación cliente) valdría.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Definición formal
Las expresiones del cálculo relacional de tuplas son de la forma {t | P (t)} donde P es una fórmula. En una fórmula pueden aparecer varias variables tupla. Se dice que una variable tupla es una variable libre a menos que esté cuantificada mediante ∀ o ∃. Por tanto, en t ∈ prestamo ∧ ∃ s ∈ cliente (t[nomSucursal] = s[nomSucursal]) t es una variable libre. La variable tupla s se denomina variable ligada.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

Las fórmulas se construyen a partir de los átomos utilizando las reglas siguientes: Un átomo es una fórmula. Si P1 es una fórmula, también lo son ¬ P1 y (P1). Si P1 y P2 son fórmulas, también lo son P1 ∨ P2, P1 ∧ P2 y P1 ⇒ P2. Si P1(s) es una fórmula que contiene una variable tupla libre s, y r es una relación, ∃ s ∈ r (P1 (s)) y ∀ s ∈ r (P1 (s)) también son fórmulas Igual que en el álgebra relacional, se pueden escribir expresiones equivalentes que no sean idénticas en apariencia. En el cálculo relacional de tuplas estas equivalencias incluyen las tres reglas siguientes: 1. P1 ∧ P2 es equivalente a ¬ (¬ (P1) ∨ ¬ (P2)). 2. ∀ t ∈ r (P1 (t)) es equivalente a ¬ ∃ t ∈ r (¬ P1 (t)). 3. P1 ⇒ P2 es equivalente a ¬ (P1) ∨ P2.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Seguridad de las expresiones
Las expresiones del cálculo relacional de tuplas pueden generar relaciones infinitas. Supóngase que se escribió la expresión {t | ¬ (t ∈ prestamo)} Hay infinitas tuplas que no están en préstamo. La mayor parte de estas tuplas contienen valores que ni siquiera aparecen en la base de datos. Resulta evidente que no se desea permitir ese tipo de expresiones.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Para ayudar a definir las restricciones del cálculo relacional de tuplas se introduce el concepto de dominio de una fórmula relacional de tuplas, P. De manera intuitiva, el dominio de P, denotado por dom(P), es el conjunto de todos los valores a los que P hace referencia. Esto incluye a los valores mencionados en la propia P, así como a los valores que aparezcan explícitamente en P o en una o en varias relaciones cuyos nombres aparezcan en P. Así, el dominio de P es el conjunto de todos los valores que aparecen explícitamente en una o más relación cuyos nombres aparecen en P. Por ejemplo, dom(t ∈ préstamo ∧ t[importe] > 1200) es el conjunto que contiene a 1200 y el conjunto de todos los valores que aparecen en préstamo. Además, dom(¬ (t ∈ préstamo)) es el conjunto de todos los valores que aparecen en préstamo, dado que la relación préstamo se menciona en la expresión
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

Bases de Datos I

MTI Remedios Fabián Velasco

Cálculo relacional de dominios
Hay una segunda forma de cálculo relacional denominada cálculo relacional de dominios. Esta forma utiliza variables de dominio que toman sus valores del dominio de un atributo, en vez de tomarlos de una tupla completa. Las expresiones del cálculo relacional de dominios son de la forma {< x1, x2, …, xn > | P(x1, x2, …, xn)} donde x1, x2, …, xn representan las variables de dominio, P representa una fórmula compuesta de átomos.
Universidad del Mar – 07/2008

Bases de Datos I

MTI Remedios Fabián Velasco

Los átomos del cálculo relacional de dominios tienen una de las formas siguientes: <x1, x2, …, xn> ∈ r, donde r es una relación con n atributos y x1, x2, …, xn son variables de dominio o constantes de dominio. x Θ y, donde x e y son variables de dominio y Θ es un operador de comparación (<, ≤, =, ≠, >, ≥). Se exige que los atributos x e y tengan dominios que puedan compararse mediante Θ. x Θ c, donde x es una variable de dominio, Θ es un operador de comparación y c es una constante del dominio del atributo para el que x es una variable de dominio.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Las fórmulas se construyen a partir de los átomos utilizando las reglas siguientes: Un átomo es una fórmula. Si P1 es una fórmula, también lo son ¬ P1 y (P1). Si P1 y P2 son fórmulas, también lo son P1 ∧ P2, P1 ∨ P2 y P1 ⇒ P2. Si P1(x) es una fórmula en x, donde x es una variable de dominio, ∃ x < (P1 (x)) y ∀ x (P1 (x)) también son fórmulas
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Consultas de ejemplo
Averiguar el nombre de la sucursal, el número de préstamo y el importe de los préstamos superiores a 1200 pesos: {< p, s, i > | < p, s, i > ∈ prestamo ∧ i > 1200} Averiguar todos los números de préstamo de los préstamos por importe superior a 1200 pesos: {<p> | ∃ s, i (< p, s, i > ∈ prestamo ∧ i > 1200)}
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Bases de Datos I

Averiguar el nombre de todos los clientes que tienen concedido un préstamo en la sucursal de Navacerrada y averiguar el importe del préstamo: {< n, i > | ∃ p (< n, p > ∈ prestatario ∧ ∃ s (< p, s, i > ∈ prestamo ∧ s = «Navacerrada»))} Averiguar el nombre de todos los clientes que tienen concedido un préstamo, una cuenta abierta, o ambas cosas, en la sucursal de Navacerrada: {< n > | ∃ p (< n, p > ∈ prestatario ∧ ∃ s, i (< p, s, i > ∈ prestamo ∧ s = «Navacerrada»)) ∧ ∃ c (< n, c > ∈ impositor ∧ ∃ s, i (< c, s, i > ∈ cuenta ∧ s = «Navacerrada»))} Averiguar el nombre de todos los clientes que tienen una cuenta abierta en todas las sucursales situadas en Arganzuela: {< c > | ∃ s, t (< c, s, t > ∈ cliente) ∧ ∀ x, y, z (< x, y, z > ∈ sucursal) ∧ y = «Arganzuela» ∧ ∃ a, b (< a, x, b > ∈
Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Seguridad de las expresiones
Escribir expresiones que pueden generar relaciones infinitas. Esto llevó a definir la seguridad de las expresiones de cálculo relacional de tuplas. Se produce una situación parecida en el cálculo relacional de dominios. Las expresiones como {< p, s, i > | ¬ (< p, s, i > ∈ préstamo)} no son seguras porque permiten valores del resultado que no están en el dominio de la expresión.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Se dice que la expresión {< x1, x2, …, xn > | P(x1, x2, …, xn)} es segura si se cumplen todas las condiciones siguientes: 1. Todos los valores que aparecen en las tuplas de la expresión son valores de dom(P). 2. Para cada subfórmula «existe» de la forma ∃ x (P1(x)), la subfórmula es cierta si y sólo si hay un valor x en dom(P1) tal que P1(x) es verdadero. 3. Para cada subfórmula «para todo» de la forma ∀ x (P1(x)), la subfórmula es verdadera si y sólo si P1(x) es verdadero para todos los valores x de dom(P1).
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

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

Bases de Datos I

Se expresan básicamente igual que las consultas. Pero, en lugar de mostrar las tuplas al usuario, se eliminan de la base de datos.
Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Borrado
Sólo se pueden borrar tuplas enteras; no se pueden borrar valores de atributos concretos. En el álgebra relacional los borrados se expresan mediante r←r–E Donde r es una relación y E es una consulta del álgebra

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Ejemplos
Borrar todas las cuentas de Gómez. impositor ←impositor – σnomCliente = «Gómez» (impositor) Borrar todos los préstamos con importes entre 0 y 50. prestamo ← prestamo – σimporte ≥ 0 and importe ≤ 50 (prestamo) Borrar todas las cuentas de las sucursales sitas en Getafe. r1 ← σcdSucursal = «Getafe» (cuenta sucursal) r2 ←ΠnomSucursal, noCuenta, saldo (r1) cuenta ← cuenta – r2
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Inserción
Para insertar datos en una relación hay que especificar la tupla que se va a insertar o escribir una consulta cuyo resultado sea un conjunto de tuplas que vayan a insertarse. r←r∪E Donde r es una relación y E es una expresión del álgebra relacional. La inserción de una sola tupla se expresa haciendo que E sea una relación constante que contiene una tupla. cuenta ← cuenta ∪ {(C-973, «Navacerrada», 1200)}
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Ejemplo
Supóngase que se desea ofrecer una nueva cuenta de ahorro con $200 como regalo a todos los clientes con préstamos concedidos en la sucursal de Navacerrada. Sea el número de préstamo el que se utilice como número de cuenta de esta cuenta de ahorro. Hay que escribir r1←( σnomSucursal = «Navacerrada» (prestatario prestamo)) r2←ΠnomSucursal, noPrestamo (r1) cuenta ← cuenta ∪ (r2 × {(200)}) impositor ←impositor ∪ ΠnomCliente, noPrestamo (r1)
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Actualización
Modificar un valor de una tupla sin modificar todos los valores de la tupla. Se puede utilizar el operador proyección generalizada para realizar esta tarea: r←ΠF1, F2,…, Fn (r) donde cada Fi es el i-ésimo atributo de r, si el i-ésimo atributo no está actualizado, o, si hay que actualizar el atributo, una expresión, que sólo implica constantes y los atributos de r, que da el nuevo valor del atributo. Si se desea seleccionar varias tuplas de r y sólo actualizar esas mismas tuplas, se puede utilizar la expresión siguiente, donde P denota la condición de selección que escoge las tuplas que hay que actualizar: r ←ΠF1, F2, …, Fn ( σP (r)) ∪ (r – σP (r)) 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 los saldos en un 5 por ciento. Hay que escribir:
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

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

Representa un valor para un atributo que es desconocido o no es aplicable para una tupla. Formas de tratar datos nulos o excepcionales. Representa la ausencia de un valor y no es lo mismo cero o espacios, los cuales son valores.
Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

Bases de Datos I

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

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

Restricciones Generales
Reglas adicionales especificadas por los usuarios o administradores de la base de datos que definen o restringen algunos aspectos de la empresa.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

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

Vista
El resultado dinámico de una o más operaciones relacionales que operan sobre las relaciones base para producir otra relación.
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

3.7. Vistas
Una vista es una relación virtual que no tiene por qué existir necesariamente en la base de datos, sino que puede producirse cuando se solicite por parte de un usuario concreto, generándosela en el momento de la solicitud. El contenido de una vista se define como una consulta de una o mas relaciones base. Las vistas son dinámicas, significa que los cambios realizados a las relaciones base que afectan lo atributos vistos, se reflejan
Bases de Datos I Universidad del Mar – 07/2008 MTI Remedios Fabián Velasco

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

Bases de Datos I

MTI Remedios Fabián Velasco

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

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Actualización de Vistas
Existen restricciones de tipos de modificaciones que se puedan hacer a través de vistas:
Se permiten las actualizaciones si la consulta implica una sola relación base y contiene la llave principal o clave candidata de la relación base. Las actualizaciones no se permiten si implican múltiples relaciones base. Las actualizaciones no se permiten si implican operaciones de agregación o agrupación.

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Actualización de Vistas
Las clases de vistas se definen como:
Teóricamente no actualizables Teóricamente actualizables Parcialmente actualizables

Bases de Datos I

Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Bibliografía utilizada
Libros:
Fundamentos de Bases de Datos. Abraham Silberschatz, Henry F. Korth, S. Sudarshan Sistemas de Bases de Datos. Thomas Conolly y Carolyn Begg

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:
Bases de Datos I

Imágenes blanco y negro tomadas del libro de Silberschatz Imágenes color tomadas del libro de Begg
Universidad del Mar – 07/2008

MTI Remedios Fabián Velasco

Sign up to vote on this title
UsefulNot useful