IBD Clase 14.

Slides:



Advertisements
Presentaciones similares
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Advertisements

IBD Curso 2007 Clase 2.
IBD Plan 90 y 2003 Clase 11.
IBD Plan 90 y 2003 Clase 10.
IBD Clase 13.
IBD Clase 16.
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA la storia la historia lhistoire the history strada calle rue street.
Paso 1 Portada YO SOY EUROPEO Comisión Europea.
Conceptos Básicos Sobre Préstamos Conceptos Básicos Sobre Préstamos
Curso Bancario Básico 1.
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
integridad referencial
IBD Clase 7.
IBD Plan 90 y 2003 Clase 12. UNLP - Facultad de InformáticaIBD - CLASE 12 2 Modelado de datos Como mejorar la calidad del Esquema Conceptual ? Validación:
Otra forma es representando lo que hay de cada lado
Lenguajes Relacionales
Diseño lógico: la transformación del modelo Entidad Relación (MER) al modelo relacional Ing. Sonia Godoy Hortua.
APLICAWEB SERVICIOS LEGALES DE PUERTO RICO
Fernando Velasco
Resolución de Problemas
Circuitos de Conmutación
ALGEBRA RELACIONAL Y CALCULO RELACIONAL CON REFERENCIA A BASE DE DATOS
UNIDAD 2: FUNCIONES.
INTELIGENCIA ARTIFICIAL
Ecuaciones y Resolución de Ecuaciones Lineales
Expresiones Racionales
Exponentes Racionales y Radicales
Estadística Computacional I
Estadística Computacional I
Estadística Computacional I
Teórico: Algebra Relacional
2 Introducción: Una forma de aproximarnos una base de datos es verla como una colección de relaciones, donde una relación es una tabla con filas (tuplas)
Fundamentos de Lógica Difusa (Fuzzy)
Comité Nacional de Información Bogotá, Julio 21 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Comité Nacional de Información Bogotá, Julio 27 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
IBD Clase 15.
ALGEBRA RELACIONAL.
Exponentes y Logaritmos.
Números enteros.
Lenguaje Estructurado de Consultas (Structured Query Language – SQL)
Objetivo. Dado que ya tenemos la planificación temporal del proyecto, que responde a: ¿Qué se hará?, ¿Quién lo hará?, y ¿Cuándo lo hará? ¿Qué recursos.
Estructura Económica y desarrollo del Sistema Financiero en Puno 1 Junio de 2014 Departamento de Estudios Económicos.
Funciones: Conceptos Básicos
Sesión 14.3 Sistema Coordenado Tridimensional y Vectores en el espacio.
ESCUELA: NOMBRES: LÓGICA DE LA PROGRAMACIÓN UNIDAD 2: Naturaleza de los Datos FECHA: Ing. Patricio Abad Espinoza OCTUBRE 2009 – FEBRERO Ciencias.
Sistemas de Ecuaciones lineales
Análisis Diseño y Desarrollo
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL CURSO: GESTION DE LA CALIDAD ING.ELIZABETH FERG 1.
LA RECTA Y SUS ECUACIONES
1 LOS PROBLEMAS DE DISEÑO EN INGENIERÍA: CONCEPTO Y FORMULACIÓN NELSON VÍLCHEZ UNIVERSIDAD TECNOLÓGICA DEL CENTRO COORDINACIÓN DE INGENIERÍA.

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.
Facultad de Tecnología Informática
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.
Algebra Relacional.
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.
Diseño de base de datos Tema 4 : Algebra relacional.
UNIDAD III: MODELAJE DE BASE DE DATOS RELACIONAL..
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.
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.
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.
Tipos de Datos.
Ing. Sergio Valladares Castillo Base de Datos I Algebra Relacional.
Base de Datos I – Ing. Mary Carlota Bernal J.
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
Algebra relacional Integrantes: Víctor Sergio López Sainz. Francisco Javier centeno. Verdín Carlos Omar.
Transcripción de la presentación:

IBD Clase 14

Lenguajes de consulta Lenguajes de consulta: utilizados para operar con la BD. Procedurales: (instrucciones para realizar secuencia de operaciones) (qué y cómo) No procedurales: (solicita directamente la información deseada) (qué). Nos concentraremos primero en las consultas, dejando de lado updates. Clase 6 IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Operaciones fundamentales Álgebra Relacional: Lenguaje de consultas procedural Operaciones de uno o dos relaciones de entrada que generan una nueva relación como resultado Operaciones fundamentales Unitarias Selección Proyección Renombre Binarias Producto cartesiano Unión diferencia IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Selección: Operador  Supongamos la tabla Prestamo = (nombre_sucursal, monto, dirección) Selección: Operador  Selecciona tuplas que satisfacen un predicado dado. La condición puede tener conectivos lógicos (And, Or, Not) y operadores de comparación <>, >, <, >=, <=, = Ej1: prestamos otorgados por la sucursal XXX. Ej2: prestamos otorgados por la sucursal XXX y con monto superior a 1200$ Ejemplo uno: nombre-sucursal = “XXX” (prestamo) Ejemplo dos: nombre-sucursal = “XXX” and monto > 1200 (prestamo) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Proyección: Operador  Devuelve la relación argumento con columnas omitidas. Si quedan tuplas repetidas se excluyen. Ej3: nombres de sucursal que figuran en préstamo Ej4: sucursal cuyo monto sea superior a $10000. Ejemplo tres: nombre-sucursal (prestamo) Ejemplo cuatro: nombre-sucursal (monto > 10000 (prestamo)) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Producto Cartesiano: Operador x Conecta dos entidades de acuerdo a la definición matemática de la operación. Tabla Cliente = (nombre_cte, dirección, tel) Opera = (nombre_cte, nombre_banquero, monto) Ej5: cada cliente con sus datos personales y banquero que opera. Ej6: todos los clientes y su dirección, que operan con el banquero YYY. Ejercicio cinco: Cliente x Opera Pero esta consulta anterior da clientes y banqueros que no operan en conjunto, se juntan cada tupla de cliente con cada tupla de opera, esto significa que quedan agrupados tuplas sin sentido, necesariamente debe hacerse la siguiente operación. cliente.nombre-cte= opera.nombre-cte(Cliente x Opera) Notar que se utiliza el identificador de tabla porque los campos se llaman iguales. Ejercicio seis: cliente.nombre-cte, dirección(nombre-banquero= “YYY”(cliente.nombre-cte= opera.nombre-cte(Cliente x Opera))) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Renombrar: Operación  Permite utilizar la misma tabla en un (por ej.) producto cartesiano. Tabla Cliente = (nombre_cte, dirección, tel) Ej7: clientes que viven en la misma dirección que el cliente ZZZ Ejercicio siete: Subconsulta que permte obtener la dirección de ZZZ, con esto debo hacer un producto con cliente nuevamente dirección( nombre-cte = “ZZZ” (Cliente)) Renombro cliente para hacer la operación cliente2.nombre( cliente2.dirección = cliente.dirección [ dirección {nombre-cte = “ZZZ” (Cliente)} x cliente2 (cliente) ] ) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Unión: Operación  Equivalente a la unión matemática. Las instancias repetidas se eliminan automáticamente. Las dos tablas deben ser de unión compatibles Igual cantidad de atributos i-ésimo atributo de 1º tabla y i-ésimo atributo de 2º tabla deben tener el mismo dominio (i:1..n) Ej8: clientes que tengan cta corriente o caja ahorro en la sucursal xxx Ejercicio ocho: CTACTE=(nomcli, sucursal) CAHORRO=(nomcli, sucursal) (nomcli(sucursal=“XXX”(ctacte)))  (nomcli(sucursal=“XXX”(cahorro))) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Diferencia: Operación - Equivalente a diferencia de Conjuntos. Las dos tablas deben ser de unión compatibles Ej9: Clientes de la sucursal xxx que tienen tiene ctacte y no tienen caja ahorro Ejercicio nueve: CTACTE=(nomcli, sucursal) CAHORRO=(nomcli, sucursal) (nomcli(sucursal=“XXX”(ctacte))) - (nomcli(sucursal=“XXX”(cahorro))) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Definición de Álgebra Relacional: Una expresión básica en AR consta de Una relación de una Base de Datos Relación constante Una expresión general se construye a partir de sub-expresiones (E1,E2,...En) Expresiones: E1  E2 E1 - E2 E1 x E2 p(E1) P predicado con atributos en E1 s (E1) S lista de atributos de E1 x (E1) X nuevo nombre de E1 IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Álgebra Relacional Operaciones Adicionales: no añaden potencia, solo simplifican consultas comunes Intersección Producto Natural División Asignación IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Intersección: Operación  Equivalente a la Intersección matemática. Se puede definir en funcion de la Unión y Diferencia Ej10: Clientes de la sucursal xxx que tienen tiene ctacte y tienen caja ahorro Ejercicio diez: CTACTE=(nomcli, sucursal) CAHORRO=(nomcli, sucursal) (nomcli(sucursal=“XXX”(ctacte)))  (nomcli(sucursal=“XXX”(cahorro))) ó nomcli ( sucursal=“XXX” { [(ctacte)  (cahorro)] – [ ((ctacte) - (cahorro))  ((cahorro) - (ctacte)) ] } ) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Producto Natural: Operación |x| Realiza el producto cartesiano con una selección de tuplas “con sentido” eliminando las columnas (atributos) repetidas. Combinacion de Selección y Producto Cartesiano Resultado= tuplas donde los nombre y valores de los atributos que se repiten en ambas tablas son iguales. Si R y S son dos relaciones que no tienen atributos en común -> R x S= R|x|S R|x|(cond) S = (cond) ( R|x|S ) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Producto Natural Clientes=(nomcli,direccion,tel) Prestamos=(sucursal,nomcli) Ej11: clientes con préstamos en un banco Ej12: clientes con préstamos en la sucursal XXX Si coincidera mas de un atributo entre las tablas a realizar|x|, el mismo se realiza por la coincidencia de todos los atributos comunes a la vez. Ver ejemplo Ejercicio once: nomcli....(prestamos |x| clientes) Ejercicio doce: nomcli.(sucursal=“XXX“ ( prestamos |x| clientes )) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta División: Operación % Dado R1 y R2, el resultado son los valores de atributos de R1, que se relacionan con todas las tuplas de R2 R1 % R2 sii Esquema de R2 está incluido en el Esquema de R1 Esq( R1 % R2)= Esq( Esq(R1) – Esq(R2) ) Hacen_Cursos=(# alu, nom_curso) Cursos=(nom_curso) -> Hacen_Cursos % Cursos (alumnos que hicieron todos los cursos que existen) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Asignación: Operación  Expresión que asigna a una variable temporal el resultado de una operación. Temp  Operación del Álgebra Ej10: Clientes de la sucursal xxx que tienen tiene ctacte y tienen caja ahorro A  (ctacte)  (cahorro), D1  (ctacte) - (cahorro), D2  (cahorro)- (ctacte) nomcli ( sucursal=“XXX” { A – [ D1  D2 ] } ) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Cálculo Relacional de Tuplas: No procedural, describe información deseada sin dar un proceso específico para obtener esa información. Utiliza el cálculo de predicados para la formulación de consultas Expresión de consultas { t / P(t) } Conjunto de tuplas tal que P(Predicado) es verdadero en t. Ejemplos: Ej12:clientes con préstamos mayor que 1200$ IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Operación de proyección { t / s R / Q(s)} Ej13: solo el nombre del cliente.(del ej 12) Variable de tupla t se define solo para los atributos deseados Ej14: nombre y ciudad de los clientes con prestamo en la sucursal La Plata. Ej15: clientes con préstamo y depósitos en una sucursal de La Plata. Ejercicio doce: {t / t  Prestamo / t[cantidad] > 1200 } Ejercicio trece: { t /  s  Prestamo / ( t[nombrecte] = s [nombrecte] ^ s[cantidad] > 1200 } Ejercicio catorce: { t /  s  Prestamo / (t[nombrecte]=s[nombrecte] ^ s[sucursal]= ‘La Plata’) ^ u  cliente ( u[nombre]=s[nombre] ^ t [ciudad] = u[ciudad]) } Ejercicio quince: { t /  s  depósito (t[nombrecte]=s[nombrecte] ^ s[sucursal]= ‘La Plata’) ^  u  prestamo (u [ciudad] = ‘La Plata’) } IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Operando :  t  r (Q(t)) tuplas / t predicado Q(t) sea verdadero en r. Ej16: encontrar cliente que tiene una cuenta en todas las sucursales de La Plata Ejercicio dieciseis: {t /  u  sucursal (u[ciudadsucursal]=‘La Plata)   s  deposito (t[nombre]=s[nombre] ^ s[sucursal] = u[sucursal]) } IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Definición formal del Cálculo de tuplas Una expresión del Cálculo de tuplas { t / P(t) }, tiene: P fórmula donde aparecen varias variables de tupla T  (variable libre)  s  (variable límite) Las fórmulas se compone de átomos: IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Las fórmulas se construyen a partir de átomos: s  r; s variable de tupla y r relación s[x]  u[y], s, u variables de tupla; x, y atributos sobre s y u respectivamente;  operador (>, <, >=, =, <>, etc) s[x]  c; c constante. Las fórmulas se construyen a partir de átomos: Un átomo es una fórmula P1 fórmula  ~ P1 fórmula P1, P2 fórmula  P1 v P2, P1^ P2, P1  P2 fórmulas P1(s) fórmula que contiene variable tupla libre s   s  r(P1(s)) y  s  r(P1(s)) fórmulas IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Cálculo relacional de dominios Seguridad de expresiones { t / ~ ( t  prestamo) } infinito (todas las tuplas que no están definidas en la tabla, pero que se pueden formar a partir del dominio de los atributos= Cálculo relacional de dominios Se utilizan variables de dominio que toman valores del dominio de un atributo (en lugar de tuplas completas) Definición formal: IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Expresión { <x1,…,xn> / P <x1,…,xn> }; <x1,…,xn> variables de dominio y P fórmula Átomos definidos como el CRT Fórmulas definidas como el CRT Dada la Tabla (nombre_sucursal, nro_prestamo, nombre_cte, cantidad_prestada) Ej17: todos los datos simpre que se presten más de 1200$ Ej18: el cliente con préstamo mayor de 1200$ Ej19: cliente y monto del préstamo de aquellos clientes de La Plata Ejercicio diecisiete: { <a,b,c,d> / <a,b,c,d>  tabla ^ d > 1200 } Ejercicio dieciocho: { <a> /  b,c,d <a,b,c,d>  tabla ^ d > 1200} Ejercicio diecinueve: { <c,d> /  b, l ( <b,l,c,a>  tabla ^ b=‘La Plata’) ^  y (<c,y,d>  cliente) } IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Operaciones de Updates: solo para AR Seguridad de expresiones: similar a CRT Operaciones de Updates: solo para AR Agregar tuplas r  r  E (r relación y E nueva tupla Eliminar tuplas r  r – E Actulización de datos A  E ( r ) Ej: saldo  saldo * 1.05 ( depósito ) IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Dadas las siguientes tablas Vive (nombre_persona, calle, ciudad) Trabaja (nombre_persona, nombre_compañía, salario) Situada_en (nombre_compañía, ciudad) Dirige (nombre_persona, nombre_director) Resolver las siguientes consultas Nombre de los empleados que trabajan en la compañía X Nombre de los empleados, que no trabajan en la compañía X Nombre y ciudad en la que trabajan los empleados de la compañía X AR: nombre_persona( nombre_compañía = ‘X’ (trabaja)) CRT: { t /  s  trabaja ^ s[nombre_compania]=‘x’ ^ t[nombre_persona] = s[nombre_persona]} CRD: { n_p /  n_c, s <n_p,n_c,s>  trabaja ^ n_c ‘x’} 2. AR: vive.n_p,calle(n_c =‘x’ (trabaja |x| vive) CRT: { t / ( s  trabaja ^ s[n_c] = ‘X’ ) ^ ( u vive ^ s[n_p] = u [n_p] ^ t[n_p] = u[n_p] ^ t[calle] = u[calle])} CRD: { <a,b> /  c,d (<a,c,d>  trabaja ^ c = ‘X’ ) ^  e (<a,b,e> vive)} 3. Idem anterior con mayor que 1000 IBD - CLASE 14 UNLP - Facultad de Informática

Lenguajes de consulta Nombre, calle y ciudad de aquellos que trabajen para X y cobren más de 1000 Empleados que viven en la misma ciudad en la que está la compañía en la que trabajan. Modificar la dirección del empleado Y Eliminar todos los empleados de la compañía X Dar un aumento del 10% a los empleados Dar un aumento del 20% a los directores.  5 AR: vive.nombre_persona (vive.ciudad=situada_en.ciudad ( vive |x| trabaja |x| situada_en ) CRT: { t / ( s  trabaja) ^ ( u  vive ^ u[n_p] = s[n_p] ^ t[n_p] = u[n_p]) ^ ( r  situada_en ^ r[n_c] = s[n_c] ^ u[ciudad] = r[ciudad]) } CRD: { <a> /  b,c (<a,b,c>  trabaja) ^  d,e (<a,d,e> vive ) ^ (<b,e>  situada_en)} Resto es sencillo IBD - CLASE 14 UNLP - Facultad de Informática