Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Enero 2002
Consisten en un conjunto de tablas donde cada fila representa una relación entre
un conjunto de valores. Una tabla es un conjunto de dichas relaciones por lo que existe
una gran correspondencia entre el concepto de tabla y de relación.
Las cabeceras de una tabla o relación serán los atributos. Para cada uno de ellos
hay unos valores permitidos, esto es el dominio.
Para toda relación sus atributos deben ser atómicos, es decir, los elementos del
domino se consideran unidades indivisibles.
Los esquemas de las relaciones incluyen una lista de los atributos y de sus
dominios correspondientes. Se suele decir relación cuando en realidad se quiere decir
esquema de la relación.
3.1.3. Claves
La tabla incluye los atributos del conjunto de entidades débiles, la clave primaria
del conjunto de entidades fuertes dominante. La clave de la relación es la unión
de las claves del conjunto dominante y subordinado.
Tablas combinadas:
Atributos multivalorados:
Este lenguaje tiene una serie de operaciones y suele trabajar con una o dos
relaciones (tablas) y producen como resultado una nueva relación (otra tabla).
La selección saca filas con los datos que se elijan, esta puede ser una selección
compuesta.
3.2.1.2. La proyección
Otro ejemplo: Queremos mostrar el DNI, nombre y dirección de los clientes que
son de Madrid y Barcelona. πDni,nombre,direccion(σ ciudad=Madrid v ciudad=Barcelona).
Se denota por el signo menos ( - ), y busca las tuplas que están en una relación
pero no en la otra, es decir, devuelve las de R que no se repiten en S.
Tienen que tener la misma aridad y que los dominios de los atributos de cada relación
sea el mismo, es decir, que las relaciones sean compatibles entre sí.
aridad de las relaciones son n y m, el resultado será n x m tuplas. Tendremos tantas filas
como resulte de multiplicar el número de tuplas de las dos tablas.
Ejemplo: Tenemos la edad del cliente, mostrar todos los clientes salvo el de mayor edad.
Para ello debemos comparar unos con otros, para eso tenemos que multiplicar una tabla
con ella misma, y renombrar el campo que queremos comparar.
3.2.3.1.-Intersección
Es una operación igual que la que se puede aplicar a los conjuntos. Requiere las
mismas condiciones que en el caso de la unión. No añade más potencia, su resultado
seria r s = r – (r – s)
Denotada por el signo → , sirve para a una variable temporal asignarle una
expresión del álgebra relacional, para poder usar esta variable temporal en expresiones
posteriores. Esto es parecido a la asignación de los lenguajes de programación.
Hay tres formas: por la izquierda, que toma todas las tuplas de la relación de la
izquierda que no coincidan con ninguna tupla de la relación de la derecha, las rellena
con valores nulos en todos los demás atributos de la relación de la derecha y las añade al
resultado de la reunión natural; por la derecha, simétrica a la reunión por la izquierda; y
reunión completa, que realiza las dos operaciones.
Son funciones que toman una colección de valores y devuelven como resultado
un único valor. Son:
En los casos donde se desea aplicar las funciones de agregación a varios grupos
de conjuntos de tuplas se utiliza la operación agrupación. Por ejemplo si queremos
sumar los sueldos de los empleados según su empresa en una tabla de empleados donde
aparece su nombre, sueldo y empresa, necesitamos agrupar por empresa, lo que
quedaría:
nombre-empresaςsumsueldo(empleados)
ςsumsueldo,maxsueldo(empleados)
nombre-empresa
Esto mostraría una tabla con una tupla para cada nombre-empresa y tres columnas con
nombre-empresa, suma de sueldos, y sueldo máximo.
3.6.1. Borrado
Se expresa igual que las consultas pero en lugar de mostrar las tuplas al usuario
se eliminan de la base de datos. Ej.: dar de baja al empleado Ramírez de la tabla anterior
(3.5.3):
3.6.2. Inserció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. Hay que respetar la aridad.
Para la inserción se utiliza el operador unión. Ej.: Vamos a dar de alta a Ramírez en la
relación empleados.
empleados←empleados U {(<<Ramírez>>,CentroSur,200000)}
3.6.3. Actualización
Se usa para modificar un valor de una tupla sin modificar todos los valores de la
tupla. Por ejemplo para subir el sueldo de los empleados un 2%:
empleados←Пnombre-empleado,empresa,sueldo←sueldo*1,02(empleados)
3.7. VISTAS
Se utiliza el operador create view. Para definir una vista hay que darle nombre e indicar
la consulta. Se pondría:
Las vistas quedan almacenadas como expresión, no como resultado, por lo tanto no es
necesario actualizarlas cuando se cambian los valores de las relaciones.
Las modificaciones de la base de datos mediante las vistas plantea una serie de
problemas, por lo que generalmente no se permiten las modificaciones en las relaciones
de vistas, excepto en casos limitados.
repeat
Buscar todas las relaciones de vistas vi de ei
Sustituir la relación de vistas vi por la expresión que define vi
until no queden más relaciones de vistas en ei