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



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

Tema 3. El modelo Relacional

Álgebra Relacional. Unidad 5

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

Consulta y manipulación de datos. El lenguaje SQL

ESQUEMA DE BASE DE DATOS ATROPELLOS

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

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

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

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

BASES DE DATOS. TEMA 6. El Álgebra Relacional

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

DISEÑO DE BASES DE DATOS RELACIONALES

Álgebra Relacional. Relacional. Manipulación. Índice. Operaciones. Lenguaje

Modelos y Bases de Datos

select nombre from profesores where categoria='aso6';

Introducción al álgebra relacional. Con ejemplos en SQL

1. DML. Las subconsultas

Algebra Relacional Jos e Ram on Param a Gab ıa

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

BASES DE DATOS TEMA 3. MODELO RELACIONAL

CONSULTAS MULTITABLAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Base de datos relacional

ÁLGEGRA RELACIONAL AUTORÍA ÁNGEL LUIS COBO YERA TEMÁTICA BASES DE DATOS ETAPA CICLOS FORMATIVOS.

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

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

S.Q.L. (Lenguaje de Consulta Estructurada) Consultas Avanzadas. Sistemas de Bases de Datos II - ITS EMT CETP

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

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

LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS

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

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

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

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

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.

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

Para manipular relaciones completas, el álgebra relacional proporciona una serie de operadores que podemos clasificar en:

3. Modelo relacional: Estructura e integridad.

Tema: USO DE COMBINACIONES EXTERNAS.

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

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 10. Álgebra Relacional

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN)

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.

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

Temario. Índices simples Árboles B Hashing

3. OPERACIONES CON FUNCIONES.

Restricciones de Integridad

Bases de Datos 2. Teórico

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Ecuaciones de primer grado con dos incógnitas

Consultas con combinaciones

TALLER #5 ACCESS CONSULTAS. objeto Consulta en la vista lateral izquierda de la ventana Base de datos. Aparece esta ventana.

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?

MLM Matemática Discreta

Modelo Entidad-Relación

TEMA II. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. Temario (cont.

CURSO TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1

BASE DE DATOS RELACIONALES

Bases de datos relacionales y el modelo entidad-relación

Manual de rol gestor de GAV para moodle 2.5

Modelos y Bases de Datos

1. Lección 10 - Operaciones Financieras - Introducción a los préstamos

4 Integridad de datos relacional: llaves candidatas y temas relacionados.

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

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

Bases de Datos I Práctica 1 Ejercicios de SQL

EJERCICIOS MODELO RELACIONAL

1 Espacios y subespacios vectoriales.

Matrices equivalentes. El método de Gauss

Ing. Santiago C. Pérez Laura Noussan Lettry Carlos Campos

LABORATORIO Nº 3 PRÁCTICA DE FUNCIONES EN MICROSOFT EXCEL

Tema II: El modelo relacional de datos (2.1) El modelo relacional de datos.

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

5- Uso de sentencias avanzadas

Optimización de consultas Resumen del capítulo 14

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

LENGUAJE DE MANIPULACIÓN DE DATOS (DML) OPERADORES DE ÁLGEBRA RELACIONAL

Patrones para persistencia (I) Ingeniería del Software II

Bases de Datos I. Cursada Clase 4: Álgebra relacional y de bolsas Información ausente Claves BASES DE DATOS I

Sistemas de Datos Curso: Ernesto Chinkes. SQL Básico Algebra Relacional

Funciones, x, y, gráficos

6- Combinación de tablas

Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL

Ing. YIM ISAIAS APESTEGUI FLORENTINO Tema: Normalización

Diseño de bases de datos Diapositiva 1

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

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

Curso: Base de Datos Distribuidas. Unidad 3: Optimización de las Estrategias de Acceso. M. en C. José Mario Martínez Castro

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

LiLa Portal Guía para profesores

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

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

El modelo relacional

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 11. Cálculo Relacional

Objetivos. Contenidos. Revisar los principales conceptos de la lógica de primer orden

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

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

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

Tema 2: Modelo Entidad-Asociación (E-A)

Transcripción:

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

Álgebra Relacional Álgebra Relacional El álgebra relacional es un lenguaje formal con una serie de operadores que trabajan sobre una o varias relaciones para obtener otra relación resultado, sin que cambien las relaciones originales. Tanto los operandos como los resultados son relaciones, por lo que la salida de una operación puede ser la entrada de otra operación. Esto permite anidar expresiones del álgebra, del mismo modo que se pueden anidar las expresiones aritméticas.

Álgebra Relacional Operaciones Fundamentales Codd, propuso 8 operadores, de los cuáles 5 son fundamentales: Selección Proyección Producto cartesiano Unión Diferencia Los operadores no fundamentales: Concatenación (join) Intersección División

Álgebra Relacional Operaciones Fundamentales Las operaciones fundamentales se subdividen en : Unarias: Operan sobre una sola relación Binarias: Operan sobre pares de relaciones

Operaciones Unarias Operaciones Fundamentales - Unarias Las operaciones Unarias son: Selección Proyección Renombramiento

Operaciones Unarias Ejemplo: Entidad Bancaria Cliente Cliente_Cuenta Prestamo Nombre_ cliente Fernando Santos Maria Plazas Nicolas Romero Direccion_ cliente Calle 13 No. 23-34 Calle 123 No. 67-45 Kra 45 No. 34-78 Ciudad_ cliente Bogota Cali Bogota Nombre_ cliente Fernando santos Maria Plazas Nicolas Romero Numero _Cuenta 123 55 68 Numero_ prestamo Nombre_ sucursal Valor 11 Galerias 15000000 12 Centro 1000000 13 Salitre 50000000 Cliente_Prestamo Sucursal Cuenta Nombre_ cliente Fernando santos Maria Plazas Nicolas Romero Numero_ Prestamo 11 12 13 Nombre_ Sucursal Ciudad_ sucursal Activos Galerias Bogota 256000000 Centro Cali 450000000 Salitre Medellin 600000000 Numero_ cuenta Nombre_ sucursal Saldo 101 Galerias 256000000 102 Centro 450000000 103 Salitre 600000000

Operaciones Unarias Operación Selección o Restricción Selecciona tuplas que satisfacen un predicado dado. Corresponde a: R WHERE condición 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 σ. Ejemplo: Seleccionar las tuplas de la relación préstamo en la sucursal «Galerías» σnombre-sucursal = «Galerías» (préstamo)

Operaciones Unarias Operación Selección Ejemplo: Hacer un listado de todos los empleados con un salario anual superior a $20 000.000 σsalario>20 000.000 (empleado) Select from Empleado WHERE salario>20 000.000 En general, se permiten las comparaciones que utilizan =,, <,, > o en el predicado de selección. Ejercicio: σvalor >10 000.000 (préstamo)

Operaciones Unarias Operación Selección Además, se pueden combinar varios predicados en uno mayor utilizando las conectivas y ( ) y o ( ). Ejemplo: Encontrar las tuplas correspondiente a préstamos de más de $10 000.000 concedidos por la sucursal de Galerías Select from préstamo WHERE nombre-sucursal=`galerías' AND valor>10.000.000 σnombre-sucursal = «Galerías» valor>10 0000.000 (préstamo)

Operaciones Unarias Operación Proyección 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.

Operaciones Unarias Operación Proyección Supóngase que se desea hacer una lista de todos los números de préstamo y del valor de los mismos, pero sin que aparezcan los nombres de las sucursales. La operación proyección permite producir esta relación. Ejemplo: La consulta para crear una lista de todos los números de préstamo y del valor de los mismos: Πnúmero-préstamo, valor (préstamo)

Operaciones Unarias Composición de operaciones relacionales Es importante el hecho de que el resultado de una operación relacional sea también una relación. Ejemplo: Realizar una consulta más compleja: «Encontrar los clientes que viven en Bogotá» Πnombre-cliente ( σciudad-cliente = «Bogotá» (cliente)) La composición de operaciones del álgebra relacional para formar expresiones del álgebra relacional es igual que la composición de operaciones aritméticas (como +, -, * y ) para formar expresiones aritméticas.

Operaciones Unarias 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. 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.

La operación Renombramiento Ejemplo:«Averiguar los nombres de todos los clientes que viven en la misma calle y en la misma ciudad que Romero». Se puede obtener la calle y la ciudad en la que vive Romero escribiendo Π calle-cliente, ciudad-cliente (σ nombre-cliente = «Romero» (cliente))

La operación Renombramiento En la consulta siguiente se utiliza la operación renombramiento sobre la expresión anterior para darle al resultado el nombre dirección-romero y para cambiar el nombre de los atributos a calle y ciudad en lugar de calle-cliente y ciudad-cliente: Π cliente.nombre-cliente (σ cliente.calle-cliente = dirección-romero cliente.ciudad-cliente = dirección-romero.ciudad (cliente ρ dirección- Romero (calle, ciudad) (Π calle-cliente, ciudad-cliente (σ nombrecliente = «Romero» (cliente)))))

Operaciones Binarias Operaciones Fundamentales - Binarias Las operaciones Binarias son: Unión Diferencia de conjuntos Producto cartesiano Intersección Reunión natural División Asignación

Operaciones Binarias Operación Unión Realizar una consulta para averiguar el nombre de todos los clientes del banco que tienen una cuenta, un préstamo o ambas cosas. Para contestar a esta consulta hace falta la información de la relación impositor y la de la relación prestatario: Seleccionar los nombres de todos los clientes con préstamos en el banco: Πnombre-cliente (cliente_prestamo) Seleccionar el nombre de los clientes con cuenta en el banco: Πnombre-cliente (cliente_cuenta)

Operaciones Binarias Operación Unión 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 se pueden averiguar mediante la operación binaria unión, denotada, como en la teoría de conjuntos, por U. Por tanto, la expresión buscada es: Πnombre-cliente (cliente_prestamo) U Πnombre-cliente (cliente_cuenta)

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

Operaciones Binarias 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. Ejemplo: Seleccionar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido ningún préstamo: Πnombre-cliente(cliente_cuenta) Πnombre-cliente (cliente_prestamo)

Operaciones Binarias La operación diferencia de conjuntos 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 iguales.

Operaciones Binarias La operación producto cartesiano La operación producto cartesiano, denotada por ( ), permite combinar información de cualesquiera dos relaciones. El producto cartesiano de las relaciones r1 y r2 como r1 r2. El producto cartesiano multiplica" dos relaciones, definiendo una nueva relación que tiene todos los pares posibles de tuplas de las dos relaciones. Si la relación r1 tiene P tuplas y N atributos y la relación r2 tiene Q tuplas y M atributos, la relación resultado tendrá PxQ tuplas y M+N atributos.

Operaciones Binarias La operación producto cartesiano Ejemplo: Seleccionar los nombres de todos los clientes que tienen un préstamo en la sucursal de Galerías. Se necesita información de las relaciones préstamo y cliente_prestamo: σnombre-sucursal = «Galerías» (cliente_prestamo préstamo) Se tiene una relación que sólo atañe a la sucursal de Galerías. Sin embargo, la columna nombre-cliente puede contener clientes que no tengan concedido ningún préstamo en esta sucursal, debido a que el producto cartesiano toma todas las parejas posibles de una tupla de cliente_préstamo con una tupla de préstamo.)

Operaciones Binarias La operación producto cartesiano Dado que la operación producto cartesiano asocia todas las tuplas de préstamo con todas las tuplas de clientes_prestamo, se sabe que, si un cliente tiene concedido un préstamo en la sucursal de Galerías, hay alguna tupla de cliente_prestamo préstamo que contiene su nombre y que cliente_prestamo.número-préstamo = préstamo.número-préstamo. Por tanto: σcliente_prestamo.número-préstamo = préstamo.número-préstamo (σnombre-sucursal = «Galerías» (cliente_prestamo préstamo))

Operaciones Binarias La operación producto cartesiano sólo se obtienen las tuplas de cliente_prestamo préstamo que corresponden a los clientes que tienen concedido un préstamo en la sucursal de Galerías. Finalmente, dado que sólo se desea obtener nombrecliente, se realiza la proyección: Πnombre-cliente ( σcliente_prestamo.númeropréstamo = préstamo.número-préstamo (σnombresucursal = «Galerias» (cliente_prestamo préstamo)))

Otras Operaciones Otras Operaciones del Algebra Relacional Intersección de conjuntos ( ) Todos los clientes que tengan un préstamo concedido y una cuenta abierta: Πnombre-cliente (cliente_prestamo) Πnombre-cliente (cliente_cuenta) Reunión natural (X ) Todos los clientes que tengan un préstamo concedido y una cuenta abierta: Πnombre-cliente (cliente_prestamo X cliente_cuenta)

Otras Operaciones Otras Operaciones del Algebra Relacional División(%) Resulta adecuada para las consultas que incluyan la expresión para todos. Todos los clientes que tengan una cuenta abierta en todas las sucursales de Bogotá: R1=Obtener todas las sucursales de Bogotá R2=Todos los pares (nombre_cliente, nombre_sucursal) para los clientes que tienen una cuenta en una sucursal R1=Πnombre-sucursal (σciudad-sucursal = «Bogotá» (Sucursal)) % R2=Πnombre-cliente,nombre-sucursal (cliente_cuenta X cuenta)

Otras Operaciones Otras Operaciones del Algebra Relacional Operación asignación ( ) Actúa de la misma manera que en los lenguajes de programación. Temp1 ΠR-S (r)

Otras Operaciones Tarea Escribir o traducir las siguientes consultas en el algebra relacional: 1. Seleccionar las tuplas de la relación préstamo en que la sucursal es «Centro» 2. Encontrar los clientes que viven en Cali. 3. Seleccionar los nombres de todos los clientes que tienen concedido un préstamo en la sucursal del Centro. 4. Πnombre-cliente,numero_prestamo,valor (cliente_prestamo X prestamo) 5. Πnúmero-cuenta, saldo(cuenta)

Preguntas Gracias por su Atención