Algebra Relacional.

Slides:



Advertisements
Presentaciones similares
Dpto. Informática IES Juan de la Cierva
Advertisements

Base de Datos II.
IBD Clase 14.
Entidad Cosa u objeto real (una persona) o abstracto (un préstamo) de interés en el mundo real (una organización). Es distinguible de todos los demás objetos.
Dra. Noemí L. Ruiz Limardo Revisado 2011 © Derechos Reservados
Lenguajes Relacionales
funciones Por: Carlos Alberto García Acosta
BASE DE DATOS Primeros pasos
Conceptos Hoja de cálculo. Concepto.
Tema 5: Excel Base de Datos (II). Función DESREF y Otras
Herramientas Informáticas I
ALGEBRA RELACIONAL Y CALCULO RELACIONAL CON REFERENCIA A BASE DE DATOS
INTELIGENCIA ARTIFICIAL
Estadística Computacional I
Estadística Computacional I
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Matemática Ing. Alfonso Vicente, PMP
Teórico: Algebra Relacional
ALGEBRA RELACIONAL.
Tema: Las Consultas (y II) Tipos de uniones
Algebra Booleana y Compuertas Lógicas
Answering Queries Using Views (Levy, Mendelzon, Sagiv, Srivastava) Javier López C.
BASE DE DATOS I Clase # 1.

BASES DE DATOS I CAPÍTULO 2 EL MODELO RELACIONAL Guillermo Baquerizo
Lenguajes Formales de Consulta
John Freddy Duitama M. Universidad de Antioquia. El Cálculo Relacional. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama.
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
1 John Freddy Duitama U.de.A. Facultad de Ingeniería Optimización Algebraica. Profesor: John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. Profesor:
A TRAVÉS DE LOS ESTÁNDARES DE EXCELENCIA EN MATEMÁTICAS Estándar 2:
ANALISIS MATEMÁTICO PARA ECONOMISTAS IV
Algebra Relacional.
Facultad de Tecnología Informática
John Freddy Duitama Muñoz. Facultad de Ingeniería. U. de. A.
LOGICA DE ENUNCIADO LOGICA DE PREDICADO
BASE DE DATOS I Clase # 3.
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Algebra Relacional Ing. Fabián Ruano.
el Desplazamiento (Dx)
Curso de Teoría del Autómata
ALGEBRA RELACIONAL OPERACIONES BASICAS.
Base de Datos I. Es un lenguaje con el que los usuarios solicitan información de la BD. Estos lenguajes suelen ser de nivel superior que el de los lenguajes.
Sindy Carolina Asprilla Mosquera Angie Tatiana Guali Restrepo 11º2 ALGEBRA RELACIONAL.
Diseño de base de datos Tema 4 : Algebra relacional.
Bases de Datos Sql.
Ecuaciones Algebraicas
UNIDAD III: MODELAJE DE BASE DE DATOS RELACIONAL..
Ingeniería de Sistemas y Modelamiento.
Para pasar a tablas todos los datos sin dejar nada y que las tablas tengan sentido por si solas se tiene que seguir unos pasos: 1.Toda entidad se transforma.
 En Pascal el Conjunto es un tipo de dato intrínseco llamado Set, mediante el cual se puede representar el estado, activo o inactivo, de una serie de.
OPERADORES LOGICOS.
MANUAL DE EXCEL.
Lenguajes de consulta: son aquellos en que el usuario interroga o solicita información a la base de datos. Estos lenguajes se clasifican en procedimentales.
Las fórmulas más usadas en excel
Capítulo 3: Conjuntos Autor: José Alfredo Jiménez Murillo.
Tipos de Datos.
“CURSO PROPEDÉUTICO PARA EL MEJORAMIENTO DEL PENSAMIENTO MATEMÁTICO”
Estructuras de Decisión
MATRICES.
COLEGIO VIRTUAL GERSAIN
Maestría en ciencias de la computación
LA COMPLEJIDAD DE LAS OPERACIONES DEL ÁLGEBRA RELACIONAL
Ing. Haydeli del Rosario Roa Lopez
Base de Datos I – Ing. Mary Carlota Bernal J.
Del lenguaje ordinario al lenguaje algebraico
Logaritmo En análisis matemático, usualmente, el logaritmo de un número real positivo —en una base de logaritmo determinada— es el exponente al cual hay.
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
DML Transact SQL Sesión VI Trabajando con subconsultas.
Equipo de Profesores del Curso. Funciones de Texto.
Algebra relacional Integrantes: Víctor Sergio López Sainz. Francisco Javier centeno. Verdín Carlos Omar.
Transcripción de la presentación:

Algebra Relacional

Algebra 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. Definición: Las operaciones fundamentales son: SELECCIÓN, PROYECCIÓN UNIÓN DIFERENCIA DE CONJUNTOS PRODUCTO CARTESIANO RENOMBRAMIENTO UNARIAS: Operan sobre una sola relación BINARIAS: Operan sobre pares de relaciones

Operaciones Fundamentales: selección Selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra griega sigma δ para denotarla. El predicado aparece como subíndice de δ. La relación del argumento se da entre paréntesis a continuación de δ. EJM: Para seleccionar las tuplas de la relación PRESTAMO en que la sucursal es CARACAS hay que escribir: δnombre –sucursal = << caracas>>( préstamo)

EJM: Se pueden buscar todas las tuplas en las que el importe sea mayor que 1200 δimporte> 1200( préstamo) Se permiten comparaciones tales como: =, ≠, <,≤,>,≥, en el predicado de selección. Además se pueden combinar varios predicados en uno mayor utilizando los conectivos: y (٨) y o (٧). EJM: Encontrar las tuplas correspondientes a préstamos de más de 1200 concedidos por la sucursal de Caracas. δnombre –sucursal = << caracas>> ٨ importe> 1200( préstamo)

PROYECCIÓN Devuelve su relación de argumentos, excluyendo algunos, dado que las relaciones son conjuntos se eliminan todas las filas duplicadas. Se denota con la letra griega mayúscula pi (Π). Se crea una lista de atributos que desea que aparezcan el resultado como subíndice de Π, la relación del argumento se escribe dentro del paréntesis. EJM: Consulta para crear una lista de todos los números de préstamos y del importe. Π número –prestamo,importe( préstamo)

También se pueden combinar a lo cual se le llama COMPOSICIÓN DE OPERACIONES RELACIONALES. EJM: Encontrar los clientes que viven en Maracaibo. Π nombre –cliente(δciudad –cliente = << Maracaibo>> ( cliente))

Atributos o nombre del campo unión Consulta para unir información de tablas distintas. Se debe considerar: a) Las relaciones r y s deben tener el mismo número de atributos. b)Los dominios de los atributos deben ser iguales EJM: Consulta para encontrar el nombre de todos los clientes del banco que tienen una cuenta, un préstamo o ambas cosas. Π nombre –cliente (prestatario)U Π nombre –cliente (impostor) Nombre de la entidad Atributos o nombre del campo

Diferencia de conjuntos Denotada por – permite buscar las tuplas que estén en una relación pero no en otras. Se deben realizar en relaciones compatibles (sigue las mismas reglas de la unión) EJM: Buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido ningún préstamo. Π nombre –cliente (impostor) -Π nombre –cliente (prestatario)

Producto cartesiano Denotada por aspa (x) permite combinar información de dos relaciones cualquieras. EJM: Consultar todos los nombres de todos los clientes que tienen concedido un préstamo en la sucursal de Caracas. Π nombre –cliente ( δprestatario.numero-préstamo=préstamo.número-prestamo(δnombre –sucursal = << caracas>> (prestatario x préstamo)))

renombramiento Los resultados de las expresiones del algebra relacional no tienen un nombre que se pueda utilizar para referirse a ellas, lo cual resulta útil. Este operador denotado por: rho minúscula (ρ) permite hacerlo. EJM: Dada la expresión E seria: ρx(E). Lo cual devuelve el resultado con el nombre x

Supongamos la relación clientes:   Se utilizará un ejemplo para ir presentando los operadores y su semántica. Supongamos la relación clientes: NroCli Nombre Fecha_Alta Saldo 1 Enrique 14/09/1996 100 2 Fernando 21/07/1998 -60 3 German 19/12/1994 500 4 Alejandro 02/01/1999 90

δ saldo>0(Clientes) Selección   El primer operador que se va a presentar es la Selección σ. Este es un operador unario, por lo que toma como operando a una sola relación y su valor es cierto subconjunto de las tuplas de esa relación. Por ejemplo, si queremos saber cuáles clientes tienen saldo positivo, la sentencia: Resultado: δ saldo>0(Clientes) NroCli Nombre Fecha_Alta Saldo 1 Enrique 14/09/1996 100 3 German 19/12/1994 500 4 Alejandro 02/01/1999 90

δ Fecha_Alta '01/01/1998'(Clientes) Para determinar todas los clientes que se dieron de alta desde el año 1998 hasta la actualidad: δ Fecha_Alta  '01/01/1998'(Clientes) Resultado: NroCli Nombre Fecha_Alta Saldo 2 Fernando 21/07/1998 -60 4 Alejandro 02/01/1999 90

La condición puede se tan compleja como sea necesario, por ejemplo, lista los clientes que tienen saldo negativo y se han dado de alta durante el año 1998: δ Saldo<0 ^ Fecha_Alta  '01/01/1998' ^  Fecha_Alta  '31/12/1998'(Clientes) NroCli Nombre Fecha_Alta Saldo 2 Fernando 21/07/1998 -60

El operador σ podríamos definirlo de la siguiente manera:    Sea Φ una fórmula booleana cuyos operandos son números de columna o constantes, combinados con los comparadores =, !=, <, >, ³, £, y los operadores lógicos Ù (conjunción), Ú (disyunción), y ~ (negación). Entonces δ Φ(R) se define como el conjunto de tuplas en R tales que la fórmula Φ es cierta si substituimos cada ocurrencia de un número de columna J por t[j].

Proyección Así como la selección extrae un subconjunto de tuplas, el próximo operador llamado proyección y denotado Õ extrae un subconjunto de las columnas. Por ejemplo, si queremos una lista de los distintos saldos que hay en las cuentas de nuestros clientes, la consulta Π saldo(Clientes) produce una relación cuya única columna es saldo y que contiene una tupla por cada valor distinto de saldo que aparece en clientes Saldo 100 -60 500 90

Π nombre, saldo(Clientes) La siguiente consulta produce los pares de códigos Nombre, saldo: Π nombre, saldo(Clientes) Nombre Saldo Enrique 100 Fernando -60 German 500 Alejandro 90

Πnombre(δsaldo>0(Clientes)) Como el resultado de aplicar un operador algebraico es siempre una relación, es posible componer operadores, formando expresiones. Por ejemplo, la siguiente consulta nos dará los nombres de los clientes que tiene un saldo positivo: Πnombre(δsaldo>0(Clientes)) Nombre Enrique German Alejandro

Unión Dado que una relación es un conjunto de tuplas, podemos aplicar a dos relaciones las operaciones booleanas habituales aplicables a conjuntos. En particular, vamos a utilizar la union y la diferencia.   Para ello crearemos dos relaciones, f_parciales, con fechas de exámenes parciales y f_finales, con fechas de exámenes finales:

Finales Materia Fecha Fisica 09/05/2001 Matemática 1 15/05/2001 Matemática 2 Geometría Álgebra Datos I 16/05/2001 Datos II Programación I Programación II 17/05/2001 Compiladores 18/05/2001 Parciales Materia Fecha Logica 09/05/2001 Matemática 1 10/05/2001 Matemática 2 Geometría Álgebra Datos I 11/05/2001 Datos II Programación I Programación II 12/05/2001 Compiladores 13/05/2001

 Si ahora necesitamos un listado de todas las materias, con sus fechas de exámenes, con la consulta: f_parciales È f_finales Materia Fecha Logica 09/05/2001 Matemática 1 10/05/2001 Matemática 2 Geometría Álgebra Datos I 11/05/2001 Datos II Programación I Programación II 12/05/2001 Compiladores 13/05/2001 15/05/2001 16/05/2001 17/05/2001 18/05/2001 Formalmente, si R y S son dos relaciones del mismo rango, R È S es el conjunto de tuplas que pertenecen a R o a S.

Diferencia La operación diferencia nos permite extraer tuplas qhe no satisfagan cierta propiedad. Por ejemplo, supongamos que queremos hallar las materias que tienen la fecha de parcial pero no la de final. Con la siguiente consulta: Õmateria(f_parciales) - Õmateria (f_finales)    Obtendremos el resultado: Materia Fecha Lógica 09/05/2001 Formalmente, si R y S son dos relaciones del mismo rango, R - S es el conjunto de todas las tuplas que pertenecen a R pero no a S.   Notemos que la operación booleana de intersección de conjuntos se puede sintetizar usando la diferencia, mediante la identidad: R ∩ S = R - (R - S) donde R ∩ S denota todas tuplas que pertenecen a R y también a S.

Producto Cartesiano     Hasta ahora no hemos visto ningún operador que nos permita tomar una tupla u extenderla agregándole información proveniente de otra tupla en otra relación. Esta es la función del producto cartesiano. Dadas dos relaciones R y S de rango r y s respectivamente, el producto cartesiano es una relación de rango r + s conteniendo todas las tuplas cuyas r primeras columnas formen una tupla que pertenece en R y cuyas s restantes columnas forman una tupla que pertenece a S.   Si hacemos la siguiente consulta: R χ S Obtendremos el siguiente resultado:

Materia Fecha Logica 09/05/2001 Fisica Matemática 1 15/05/2001 Matemática 2 Geometría Álgebra Datos I 16/05/2001 Datos II Programación I Programación II 17/05/2001 Compiladores 18/05/2001 10/05/2001 Y sigue con el resto de las asignaturas…….

En general, el resultado de un producto cartesiano no será de interés en sí mismo, sino que le aplicaremos otros operadores para obtener la respuesta deseada. Por ejemplo, supongamos una consulta, en la cual necesitemos listar, para cada materia, su fecha de parcial y su fecha de final: Õf_parciales.Materia, f_parciales.fecha, f_finales.fecha(σf_parciales.materia=f_finales.materia(f_parciales χ f_finales)) Materia Fecha Matemática 1 10/05/2001 15/05/2001 Matemática 2 Geometría Álgebra Datos I 11/05/2001 16/05/2001 Datos II Programación I Programación II 12/05/2001 17/05/2001 Compiladores 13/05/2001 18/05/2001

ejercicio Considere la siguiente base de datos relacional: Empleado(nombre-empleado, calle, ciudad) Trabaja(nombre-empleado, nombre-empresa, sueldo) Empresa(nombre-empleado, ciudad) Jefe(nombre-empleado, nombre-jefe). Dese una expresión del algebra relacional para cada una de las siguientes consultas: Encontrar la compañía con mayor número de empleados Encontrar la compañía con la nómina (suma de sueldos de sus empleados)más reducida. Encontrar las compañías cuyos empleados ganen un sueldo elevado.