Tema 3. El modelo Relacional



Documentos relacionados
Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

Álgebra Relacional. Unidad 5

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado

Cálculo Relacional. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

Consultas con combinaciones

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

Consulta y manipulación de datos. El lenguaje SQL

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Módulo 9 Sistema matemático y operaciones binarias

El modelo relacional

4. Modelo Relacional: Manipulación de los datos.

Modelos y Bases de Datos

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

BASES DE DATOS TEMA 3. MODELO RELACIONAL

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

Ecuaciones de primer grado con dos incógnitas

LiLa Portal Guía para profesores

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Estructuras algebraicas

1. DML. Las subconsultas

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones:

Tema 3. Medidas de tendencia central Introducción. Contenido

ANÁLISIS DE DATOS NO NUMERICOS

Álgebra Relacional. Dra. Amparo López Gaona () Posgrado en Ciencia e Ingeniería de la Compu. Fac. Ciencias, UNAM / 1

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

3. Modelo relacional: Estructura e integridad.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

Tecnología de la Información y la Comunicación. Base de datos. Consultas

Algebra Relacional Jos e Ram on Param a Gab ıa

SISTEMAS DE NUMERACIÓN. Sistema decimal

Bases de datos en Excel

Los números racionales

UNIDAD I: LÓGICA PROPOSICIONAL

ESQUEMA DE BASE DE DATOS ATROPELLOS

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo.

Capítulo 12: Indexación y asociación

Guía N 1: Fundamentos básicos(i)

SISTEMAS DE COORDENADAS SISTEMA COORDENADO UNIDIMENSIONAL

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

Temario. Índices simples Árboles B Hashing

TEMA 4. Diseño Lógico de bases de datos relacionales.

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Apuntes de Matemática Discreta 9. Funciones

Parámetros con la ventana de selección de usuario, reglas, texto y descomposición (IVE)

DISEÑO DE BASES DE DATOS RELACIONALES

Relaciones binarias. ( a, b) = ( c, d) si y solamente si a = c y b = d

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Introducción a la programación orientada a objetos

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

2. Entorno de trabajo y funcionalidad en Arquímedes

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x

Base de datos en Excel

SQL (Structured Query Language)

Operación de Microsoft Word

Base de datos relacional

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Introducción a la plataforma Moodle Aníbal de la Torre Plataforma Moodle. Accediendo a los contenidos

Sistemas de Bases de Datos I. Modelo Lógico Modelo Relacional

1.1. Introducción y conceptos básicos

Cálculo Relacional. 12/03/07 E.I.S.C. - Prof. Mauricio Fernández - Curso: Bases de Datos I 1/31. Porqué necesitamos un Lenguaje de Consulta?

Tema 2. Espacios Vectoriales Introducción

Modelos y Bases de Datos

Tema 5: Teoría de diseño de Bases de Datos Relacionales.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Centro de Capacitación en Informática

Operación de Microsoft Excel


Charla N 6: Utilidades de Consulta de datos.

Diseño de bases de datos Diapositiva 1

8.1. Introducción Dependencia/independencia estadística Representación gráfica: diagrama de dispersión Regresión...

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

La ventana de Microsoft Excel

select nombre from profesores where categoria='aso6';

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Tema 3. Espacios vectoriales

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

Tema III. Capítulo 2. Sistemas generadores. Sistemas libres. Bases.

Funciones, x, y, gráficos

1.4.- D E S I G U A L D A D E S

Ampliación de Estructuras de Datos

Capítulo 9. Archivos de sintaxis

Formularios. Formularios Diapositiva 1

Operación de Microsoft Word

Transcripción:

Tema 3. El modelo Relacional Juan Ignacio Rodríguez de León Resumen Presenta el modelo entidad-relación. Visión de alto nivel de las cuestiones referentes a diseño de bases de datos y los problemas encontrados al intentar reflejar la semántica de aplicaciones reales dentro de los confines de un modelo de datos. Conceptos básicos. Restricciones. Claves. Cuestiones de diseño. Diagrama entidad-relación. Conjuntos de entidades débiles. Características del modelo E-R extendido. Diseño de un esquema de base de datos E-R. Reducción de un esquema E-R a tablas. El lenguaje de modelado unificado UML El modelo Relacional En este capítulo se estudia en primer lugar los fundamentos del modelo relacional, que proporciona una forma muy simple y potente de representar datos. A continuación se describen tres lenguajes formales de consulta; los lenguajes de consulta se usan para especificar las solicitudes de información. Los tres que se estudian en este capítulo no son cómodos de usar, pero a cambio sirven como base formal para lenguajes de consulta que sí lo son y que se estudiarán más adelante. 1. La estructura de las bases de datos relacionales 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. Las columnas de cada tabla representan atributos (igual que en el modelo E-R en el Capítulo 2). Para cada atributo hay un conjunto de valores permitidos, llamado dominio de ese atributo. Formalmente se define una relación como un subconjunto del producto cartesiano de los dominios de cada atributo. Si la relación R tiene como atributos a 1, a 2,..., a n, siendo D 1, D 2,..., D n los dominios correspondientes, entonces R D 1 D 2... D n La única diferencia con el modelo matemático es que se han asignado nombres a los atributos. Como las tablas son esencialmente relaciones, se utilizarán los términos matemáticos relación y tupla en lugar de los términos tabla y fila. Dado que las relaciones son conjuntos se utiliza la notación matemática t r para denotar que la tupla t está en la relación r. Se utiliza la notación t[atributo] 1

2 EL ÁLGEBRA RELACIONAL 2 para denotar el valor de t en el atributo atributo. El orden de las tuplas es irrelevante, como en todo conjunto matemático. Se exigirá que, para toda relación r, los dominios de los atributos de r sean atómicos (indivisibles). Un valor de dominio que es miembro de todos los dominios posibles es el valor nulo (NULL), que indica que el valor es desconocido o no existe. Los valores nulos crean dificultades al acceder o modificar la base de datos y, por tanto, deben evitarse en lo posible. 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á Esquema-cuenta para denotar el esquema de la relación cuenta. Por tanto, Esquema cuenta = (numero cuenta, nombre sucursal, saldo) y se representa que cuenta es una relación de Esquema-cuenta mediante: 1.1. Claves cuenta(esquema cuenta) Los conceptos de superclave, clave candidata y clave primaria, explicadas en el tema 2, son equivalentes en el modelo relacional. Además, fruto de la conversión hecha del modelo E-R al relacional, en la que aparecían nuevas tablas y atributos, aparece la clave externa o foránea. Una clave externa es cuando una relación incluye entre sus atributos la clave primaria de otra relación. La primera relación se denomina relación referenciante, la segunda, relación referenciada. 1.2. Diagramas de esquema Un diagramas de esquema representa el esquema de la base de datos, junto con las dependencias de clave primaria y externa. Cada relación aparece como un cuadro con los atributos listados dentro de él y el nombre de la relación encima. Una línea horizontal separa los atributos que forman la clave primaria del resto. A diferencia de los diagramas E-R, aquí se muestran las claves externas. 2. El álgebra relacional El álgebra relacional es un lenguaje de consulta procedimental. 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, producto cartesiano y renombramiento. Existen otras operaciones no fundamentales, (en el sentido de que se pueden definir usando las elementales) como pueden ser la intersección de conjuntos, la reunión natural, la división y la asignación.

2 EL ÁLGEBRA RELACIONAL 3 2.1. Operaciones fundamentales Las operaciones selección, proyección y renombramiento se denominan unarias porque operan sobre una sola relación. Las otras tres operaciones operan sobre pares de relaciones y se denominan, por lo tanto, operaciones binarias. 2.1.1. La operación selección σ 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 σ. Por tanto, para seleccionar las tuplas de la relación préstamo en que la sucursal es Navacerrada hay que escribir σ nombre sucursal=navacerrada (Prestamo) Se permiten realizar comparaciones usando los operadores =,, <,, > o en el predicado de selección. Además, se pueden combinar varios predicados en uno mayor utilizando las conectivas lógicas y ( ) y o ( ). El predicado de selección puede incluir comparaciones entre dos atributos. Dado que el valor especial nulo indica valor desconocido o inexistente, cualquier comparación que implique a un valor nulo se evalúa como falsa. 2.1.2. La operación proyección π La operación proyección es una operación unaria que devuelve la relación pasada como argumento, excluyendo algunos atributos. En otras palabras, nos permite suprimir columnas. Dado que las relaciones son conjuntos, se eliminan las filas duplicadas en la relación resultante. 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 argumento se escribe a continuación entre paréntesis. Por ejemplo, la consulta para obtener los números de préstamo y el importe de la relación prestamo (suprimiendo el tercer atributo, nombre sucursal), sería: Π numero prestamo,importe (prestamo) 2.1.3. Composición de operaciones relacionales El resultado de una operación relacional es también una relación. Por ejemplo, la expresión: Π nombre cliente (σ ciudad cliente= Peregrinos (cliente)) Es válida porque el resultado de σ ciudad cliente= Peregrinos (cliente) es otra relación, que sirve como argumento de la proyección Π. En general, las operaciones del álgebra relacional pueden componerse para formar una expresión del álgebra relacional, de forma equivalente a la composición de operaciones aritméticas (como +,, y ) para formar expresiones aritméticas.

2 EL ÁLGEBRA RELACIONAL 4 2.1.4. La operación unión La operación Unión es equivalente a la unión expresada en teoría de conjuntos, e incluso se representa con el mismo símbolo, se debe asegurar que las uniones se realicen entre relaciones compatibles. Para que una operación unión r s sea válida deben cumplirse 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. 2.1.5. La operación diferencia de conjuntos 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. Como en el caso de la operación unión, hay que asegurarse de que las diferencias de conjuntos se realicen entre relaciones compatibles. 2.1.6. La operación producto cartesiano La operación producto cartesiano se denota por una aspa ( ), y permite combinar información de cualesquiera dos relaciones. Sea r = r 1 r 2. El esquema de r contendrá todos los atributos de r 1 y de r 2. Qué tuplas aparecerán en r?. Se crea una tupla en r para todas y cada una de las posibles combinaciones entre las tuplas de r 1 y las de r 2. La relación r es, por tanto, una relación de gran tamaño. Si la relación r 1 contiene n tuplas y la relación r 2 contiene m, en r habrá n m tuplas. Dado que el mismo nombre de atributo puede aparecer tanto en r 1 como en r 2, 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. 2.1.7. La operación renombramiento ρ A diferencia de las relaciones de la base de datos, los resultados de las expresiones de álgebra relacional no tienen un nombre que se pueda utilizar para referirse a ellas. Resulta útil poder ponerles nombre; el operador renombramiento, denotado por la letra griega rho minúscula (ρ), permite realizar esta tarea. Supóngase que una expresión del álgebra relacional E tiene aridad n. Por tanto, la expresión ρx(a 1, A 2,..., A n )(E) devuelve el resultado de la expresión E, con el nombre x y con los atributos con el nombre cambiado a A 1, A 2,..., A n

3 OTRAS OPERACIONES 5 3. Otras operaciones Las operaciones fundamentales del álgebra relacional son suficientes para expresar cualquier consulta del álgebra relacional. Sin embargo, algunas consultas habituales resultan complicadas. Por ello se definen otras operaciones que, si bien no añaden potencia al álgebra, simplifican las consultas. 3.0.8. La operación intersección de conjuntos La intersección de conjuntos se representa con el símbolo. Sea r = r 1 r 2, entonces toda tupla contenida en r estará también contenida en r 1 y r 2 La intersección de conjuntos no es una operación fundamental, ya que r s r (r s). 3.0.9. La operación reunión natural Generalmente, las consultas que implican un producto cartesiano incluyen un operador selección sobre el resultado del producto cartesiano. La reunión natural es una operación binaria que permite combinar ciertas selecciones y un producto cartesiano en una sola operación. Se denota por el símbolo de la reunión. La operación reunión natural forma un producto cartesiano de sus dos argumentos, realiza una selección forzando la igualdad de los atributos que aparecen en ambos esquemas de relación y, finalmente, elimina los atributos duplicados. La operación reunión zeta es una extensión de la operación reunión natural, que permite combinar una selección cualquiera y un producto cartesiano en una sola operación. Considérense las relaciones r(r) y s(s), y sea θ un predicado de los atributos del esquema R S. La operación reunión zeta r θ s se define así: 3.0.10. La operación división r θ s = σ θ (r s) La operación división se denota por, y resulta adecuada para las consultas que incluyen la expresión para todos Formalmente, sean r(r) y s(s) relaciones tal que S R, es decir, que todos los atributos del esquema S están también en el esquema R. La relación r s es una relación del esquema R S (es decir, del esquema que contiene todos los atributos del esquema R que no están en el esquema S). Una tupla t está en r s si y sólo si se cumplen estas dos condiciones: 1. t está en Π R S (r) 2. Por cada tupla t s s hay una tupla t r r que cumple las dos condiciones siguientes: a) t r [S] = t s [S] b) t r [R S] = t

4 OPERACIONES DEL ÁLGEBRA RELACIONAL EXTENDIDA 6 3.0.11. La operación asignación La operación asignación se representa con el símbolo y nos permite escribir una expresión del álgebra relacional por partes, asignando el resultado de expresiones a una relación temporal. Con la operación asignación se pueden escribir las consultas como programas secuenciales consistentes en una serie de asignaciones seguida de una última expresión, cuyo valor se muestra como resultado. 4. Operaciones del álgebra relacional extendida Las operaciones básicas del álgebra relacional se han ampliado de varias maneras. Una ampliación sencilla es permitir operaciones aritméticas como parte de la proyección. Una ampliación importante es permitir operaciones de agregación, como el cálculo de la suma de los elementos de un conjunto, o su media. Otra ampliación importante es la operación reunión externa, que permite a las expresiones del álgebra relacional trabajar con los valores nulos que modelan la información que falta. 4.1. Proyección generalizada La operación proyección generalizada amplía la operación proyección permitiendo que se utilicen funciones aritméticas en la lista de proyección. La operación proyección generalizada tiene la forma: Π F1,F 2,...,F n (E) donde E es cualquier expresión del álgebra relacional y F 1, F 2,..., F n son expresiones aritméticas. De forma trivial, la expresión aritmética puede ser simplemente un atributo o una constante. 4.2. Funciones de agregación Las funciones de agregación son funciones que toman una colección de valores y devuelven como resultado un único valor. Las funciones de agregación más habituales son sum (Suma), avg (Media aritmética), count (número de elementos), min y max (Mínimo y máximo, respectivamente). En la siguiente tabla se muestran algunos ejemplos de funciones de agregación. Conjunto de valores función resultado {1, 1, 3, 4, 4, 11} sum 24 {1, 1, 3, 4, 4, 11} avg 4 {1, 1, 3, 4, 4, 11} count 6 {1, 1, 3, 4, 4, 11} min 1 {1, 1, 3, 4, 4, 11} max 11 es La expresión del álgebra relacional para el uso de una función de agregación G f (a) (R)

4 OPERACIONES DEL ÁLGEBRA RELACIONAL EXTENDIDA 7 Donde f es la función de agregación, R es la relación considerada, y a es el atributo a utilizar. Por ejemplo: G sum(sueldo) (empleado) Es una relación con un único atributo, que contiene una sola fila con un valor correspondiente a la suma de los sueldos de todos los empleados. Las colecciones en las que operan las funciones de agregación pueden tener valores repetidos; el orden en el que aparezcan los valores no tiene importancia. Pero hay casos en los que se desea borrar los valores repetidos antes de calcular la función de agregación. Para ello hay que utilizar los mismos nombres de funciones que antes, con la cadena de texto -distinct al final del nombre de la función (por ejemplo, count-distinct) Es posible dividir una relación en grupos, y aplicar las funciones de agregación de forma independiente en cada grupo. La sintaxis sería así: G 1,G 2,...,G n G F1 (a 1 ),F 2 (a 2 ),...,F m (a m )(E) donde E es cualquier expresión del álgebra relacional; G 1, G 2,..., G n constituyen una lista de atributos que indican cómo se realiza la agrupación, cada F i es una función de agregación y cada A i es el nombre de un atributo. La relación resultante consistirá en las tuplas con los atributos usado para agrupar, más los resultado de las funciones de agregación.. 4.3. Reunión externa La operación reunión externa es una ampliación de la operación reunión para trabajar con la información que falta. Esta operación tiene tres formas diferentes: reunión externa por la izquierda, denotada por, reunión externa por la derecha, denotada por y reunión externa completa, denotada por. La reunión externa por la izquierda ( ) 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. La reunión externa por la derecha ( ) es simétrica de la reunión externa por la izquierda. La reunión externa completa ( ) realiza estas dos operaciones, rellenando las tuplas de la relación de la izquierda que no coincidan con ninguna tupla de la relación de la derecha y las tuplas de la relación de la derecha que no coincidan con ninguna tupla de la relación de la izquierda, y añadiéndolas al resultado de la reunión. 4.4. Valores nulos A menudo hay varias formas de tratar los valores nulos. Las operaciones y las comparaciones con valores nulos se deberían evitar siempre que sea posible. Dado que el valor especial nulo indica valor desconocido o no existente, cualquier operación aritmética que incluya valores nulos devolverá un valor

5 MODIFICACIÓN DE LA BASE DE DATOS 8 nulo. De manera similar, cualquier comparación (como <,, >, y ) que incluya un valor nulo se evalúa al nuevo valor lógico desconocido. Las operaciones lógicas tratan los valores desconocidos tal y como se muestra en la siguiente tabla. op1 operador op2 resultado cierto desconocido desconocido falso desconocido falso desconocido desconocido desconocido cierto desconocido cierto falso desconocido desconocido desconocido desconocido desconocido desconocido desconocido A la hora de efectuar operaciones en el álgebra relacional que impliquen valores nulos, hay que tener en cuenta que las operaciones de proyección, unión, intersección y diferencia tratan los valores nulos como cualquier otro valor al eliminar duplicados. Si dos tuplas del resultado de alguna de estas operaciones son exactamente iguales, y ambos tienen nulos en los mismos campos, se tratan como duplicados. La decisión es un tanto arbitraria porque sin saber cuál es el valor real no se sabe si los dos valores nulos son duplicados o no. Para las funciones de agregación, hay que tener en cuenta que cuando hay nulos en los atributos agregados, la operación borra los valores nulos del resultado antes de aplicar la agregación. Si el multiconjunto resultante está vacío, el resultado agregado será nulo. Obsérvese que el tratamiento de los valores nulos aquí es diferente que en las expresiones aritméticas ordinarias. 4.5. Otras operaciones adicionales Ampliacion α. Es una operación unaria, que toma una relación R y crea una relación resultante que tiene un atributo más que la original, cuyos valor se obtienen evaluando una expresión de cálculo escalar. La sintaxis de la operación es: Rα calculo escalar (nombre atributo) Resumen Ω. Permite incorporar operaciones de agregados (cuenta, suma, media, máximo, mínimo, etc). A partir de una relación R y de una lista de sus atributos, obtiene otra relación en cuya cabecera aparecen los atributos de R especificados y un nuevo atributo, con el nombre indiciado, siendo los valores de este último el resultado de evaluar la expresión de agregados. La sintaxis de la operación es: R(lista atributos)ω operaciones agregadas (nombre atributo) 5. Modificación de la base de datos En este apartado se abordará la manera de insertar, borrar o modificar información de la base de datos.

6 VISTAS 9 5.1. Borrado Las solicitudes de borrado se expresan básicamente igual que las consultas. Sin embargo, en lugar de mostrar las tuplas al usuario, se eliminan de la base de datos las tuplas seleccionadas. 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 relacional. 5.2. 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. El valor de los atributos de las tuplas insertadas deben ser miembros del dominio de cada atributo y las tuplas insertadas deben ser de la aridad correcta. En el álgebra relacional las inserciones se expresan mediante r r E donde r es una relación y E es una consulta del álgebra relacional. 5.3. Actualización Puede que, en algunas situaciones, se desee 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,F 2,...,F n (r) donde cada F i es o bien el i-ésimo atributo de r, si el i-ésimo atributo no está actualizado, o una expresión que sólo implique constantes y los atributos de r, y que de 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,F 2,...,F n (σ P (r)) (r σ P (r)) 6. Vistas En los ejemplos propuestos hasta ahora se ha operado en el nivel del modelo lógico. Es decir, se ha asumido que el conjunto de relaciones que se da son las relaciones reales guardadas en la base de datos. No es deseable que todos los usuarios puedan ver la totalidad del modelo lógico. La seguridad pueden exigir que algunos datos queden ocultos para determinados usuarios. O puede que se desee crear un conjunto personalizado de

7 EL CÁLCULO RELACIONAL DE TUPLAS 10 relaciones que se adapte mejor que el modelo lógico a la intuición de un usuario concreto. Las relaciones que no forman parte del modelo lógico pero se hacen visibles a los usuarios como relaciones virtuales se denominan vistas. 6.1. Definición de vistas Las vistas se definen utilizando la instrucción create view. Para definir una vista hay que darle un nombre e indicar la consulta que la va a calcular. La forma de la instrucción create view es create view v as < expresión de consulta > Una vez se ha definido una vista se puede utilizar su nombre para hacer referencia a la relación virtual, y podrá usarse como cualquier otra relación siempre y cuando no se ejecuten sobre ella operaciones de actualización.. 6.2. Actualizaciones mediante vistas y valores nulos las modificaciones de la base de datos expresadas en términos de vistas son problemáticas, porque deben traducirse en modificaciones de las relaciones reales en el modelo lógico de la base de datos, y puede ser que no dispongamos de la información necesaria para hacerlo.. Debido a esto generalmente no se permiten las modificaciones en las relaciones de vistas excepto en casos limitados. 6.3. Vistas definidas utilizando otras vistas las relaciones de vistas pueden aparecer en cualquier lugar en que pueda hacerlo el nombre de una relación. Por tanto, se pueden utilizar vistas en la expresión que define otra vista. La expansión de vistas es una manera de definir el significado de las vistas definidas en términos de otras vistas. El procedimiento asume que las definiciones de vistas no son recursivas; es decir, ninguna vista se usa en su propia definición, bien directa o indirectamente a través de otras definiciones de vistas. 7. El cálculo 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. 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 r para denotar que la tupla t está en la relación r.

7 EL CÁLCULO RELACIONAL DE TUPLAS 11 7.1. Consultas de ejemplo Supóngase que se desea averiguar nombre-sucursal, número-préstamo e importe de los préstamos superiores a 1.200. {t t prestamo t[importe] > 1200} Supóngase que sólo se desea obtener el atributo número préstamo, en vez de todos los atributos de la relación préstamo. Para escribir esta consulta en el cálculo relacional de tuplas hay que escribir una expresión para una relación del esquema (número préstamo). Se necesitan las tuplas de (número préstamo) 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)) se lee existe una tupla t en la relación r tal que el predicado Q(t) es verdadero. Utilizando esta notación se puede escribir la consulta Averiguar el número de préstamo de todos los préstamos por importe superior a 1.200 como {t s prestamo(t[numeroprestamo] = s[numeroprestamo] s[importe] > 1200)} El truco está en que la variable tupla t sólo se define para el atributo número préstamo, dado que es el único atributo para el que se especifica una condición. Por tanto, el resultado es una relación de (número-préstamo). Otro ejemplo, considerando dos relaciones: Averiguar el nombre de todos los clientes que tienen concedido un préstamo en la sucursal de Navacerrada {t s prestatario(t[numeroprestamo] = s[numeroprestamo] u prestamo(u[numeroprestamo] = s[numeroprestamo] u[nombresucursal] = Navacerrada ))} 7.2. 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[nombresucursal] = s[nombresucursal]) t es una variable libre. La variable tupla s se denomina variable ligada. Las fórmulas de cálculo relacional de tuplas se construyen con átomos. Los átomos tienen una de las formas siguientes: 1. s r, siendo s una variable tupla y r una relación (no se permite el uso de ).

7 EL CÁLCULO RELACIONAL DE TUPLAS 12 2. s[x] Θ u[y], donde s y u son variables tupla, x es un atributo de s, y es un atributo de u, y Θ es un operador de comparación (=,, <,, >, ). Es necesario que los atributos x e y tengan dominios comparables mediante Θ. 3. s[x] Θ c, donde s es una variable tupla, x es un atributo de s, Θ es un operador de comparación y c es una constante en el dominio de x. Las fórmulas se construyen a partir de los átomos utilizando las reglas siguientes: Un átomo es una fórmula. si P 1 es una fórmula, también lo son P 1 y (P 1 ) si P 1 y P 2 son fórmulas, también lo son P 1 P 2, P 1 P 2 y P 1 P 2 Si P1(s) es una fórmula que contiene una variable tupla libre s, y r es una relación, entonces s r(p 1 (s)) y s r(p 1 (s)) también son fórmulas. Igual que en el álgebra relacional, se pueden escribir expresiones equivalentes de diferentes maneras. En el cálculo relacional de tuplas estas equivalencias incluyen las tres reglas siguientes: 1. P 1 P 2 es equivalente a ( (P 1 ) (P 2 )) 2. t r(p 1 (t)) es equivalente a t r( P 1 (t)) 3. P 1 P 2 es equivalente a (P 1 ) P 2 7.3. 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 préstamo)} Hay infinitas tuplas que no están en préstamo. 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, ya sea de forma explícita o implícita. Por ejemplo, el dominio de t préstamo t[importe] > 1200 es el conjunto de todos los valores de préstamo más el valor 1200. 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. 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).

8 EL CÁLCULO RELACIONAL DE DOMINIOS 13 7.4. 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 (sin los operadores relacionales extendidos tales como la proyección generalizada G y las operaciones de reunión externa). 8. El 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. El cálculo relacional de dominios, sin embargo, se halla estrechamente relacionado con el cálculo relacional de tuplas. 8.1. Definición formal Las expresiones del cálculo relacional de dominios son de la forma {< x 1, x 2,..., x n > P(x 1, x 2,..., x n )} Donde x 1, x 2,..., x n representan las variables de dominio y P representa una fórmula compuesta de átomos, como en el cálculo relacional de tuplas. Los átomos del cálculo relacional de dominios tienen una de las formas siguientes: 1. < x 1, x 2,..., x n > r, donde r es una relación con n atributos y x 1, x 2,..., x n son variables de dominio o constantes de dominio. 2. x Θ y, donde x a y son variables de dominio y Θ es un operador de comparación (=,, <,, >, ). Los dominios de x e y deben poder compararse mediante Θ. 3. x Θ c, donde x es una variable de dominio, c una constante del dominio de x y Θ es un operador de comparación Las fórmulas se construyen a partir de los átomos utilizando las reglas siguientes: 1. Un átomo es una fórmula. 2. Si P 1 es una fórmula, también lo son P 1 y (P 1 ) 3. Si P 1 y P 2 son fórmulas, también lo son P 1 P 2, P 1 P 2 y P 1 P 2. 4. Si P(s) es una fórmula en x, siendo x una variable de dominio, entonces x(p(x)) y x(p(x)) también son fórmulas.

8 EL CÁLCULO RELACIONAL DE DOMINIOS 14 8.2. Seguridad de las expresiones En el cálculo relacional de dominios también es posible escribir expresiones que pueden generar relaciones. Se dice que la expresión {< x 1, x 2,..., x n > P(x 1, x 2,..., x n )} es segura si se cumplen las siguientes condiciones: 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(p(x)), la subfórmula es cierta si y sólo si hay un valor x en dom(p) tal que P(x) sea verdadero. 3. Para cada subfórmula para todo de la forma x(p(x)), la subfórmula es cierta si y sólo si P(x) es verdadera para todos los valores de x de dom(p). El propósito de las reglas adicionales es asegurar que se puedan probar las subfórmulas para todo y existe sin tener que probar infinitas posibilidades. 8.3. 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. Dado que se observó anteriormente que el cálculo relacional de tuplas restringido es equivalente al álgebra relacional, los tres lenguajes siguientes son equivalentes: 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)