7/24/2019 Algebra-relacional Completa
1/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
ALGEBRA y CLCULO
RELACIONAL
7/24/2019 Algebra-relacional Completa
2/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Objetivos
Aprender a construir consultas aBases de Datos relacionales
utilizando el lgebra Relacional.
7/24/2019 Algebra-relacional Completa
3/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Introduccin
El lgebra y el Clculo Relacionalconstituyen lenguajes formales asociadoscon el Modelo Relacional.
Informalmente, el lgebra Relacional (AR)es un lenguaje de procedimientos(procedural language) de alto nivel,mientras que el Clculo Relacional (CR) noes un lenguaje orientado a procedimientos.
Formalmente son equivalentes el uno con
el otro. Un lenguaje que produce una relacin que
puede derivarse utilizando CR es completorelacionalmente.
7/24/2019 Algebra-relacional Completa
4/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
lgebra Relacional
Es un lenguaje de consulta procedural. Consta de un conjunto de operaciones quetoman como entrada una o dos relaciones yproducen como resultado una nueva relacinsin cambiar las relaciones originales, por lo
tanto, es posible anidar y combinar operadores. Tanto las relaciones que actan comooperandos como la relacin resultante a lasalida pueden emplearse como entradas paraotra operacin.
Permite, como la aritmtica, que se anidenexpresiones. Esta propiedad recibe el nombrede clausura.
7/24/2019 Algebra-relacional Completa
5/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
lgebra RelacionalHay varios operadores en el AR queconstruyen relaciones y manipulan datos: Operaciones unarias:
Seleccin ( Restriccin)Proyeccin
Operaciones de conjuntos:UninDiferenciaInterseccinProducto cartesiano
Operaciones de Combinacin Operacin de Divisin Operaciones de Agregacin y Agrupamiento
7/24/2019 Algebra-relacional Completa
6/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Operaciones
7/24/2019 Algebra-relacional Completa
7/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Operaciones
7/24/2019 Algebra-relacional Completa
8/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
lgebra Relacional
Las operaciones de proyeccin, producto, unin,diferencia, y seleccin son llamadas bsicas primitivas, puesto que las otras operacionespueden definirse en trminos de stas.
Se hace necesario en este punto incluir unmodelo de datos de ejemplo en el cual trabajarpara generar ejemplos de comandos yoperadores. Para este efecto se incluye unmodelo bsico de administracin de Radio taxis.
El Grfico que se presenta a continuacinrepresenta el Modelo conceptual (ModeloLgico) o Diagrama de Entidad-Relacin:
7/24/2019 Algebra-relacional Completa
9/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
lgebra Relacional
7/24/2019 Algebra-relacional Completa
10/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
lgebra RelacionalLos Esquemas de relaciones que se pueden construir apartir de este modelo son los siguientes:
Dueo = {rut, nombre, telfono, direccin, vigencia}
Chofer = {rut, nombre, telfono, direccin,fecha_licencia_desde, fecha_licencia_hasta,
vigencia}
Vale = {correlativo, hora_desde, hora_hasta,metraje_total, tarifa_total}
Mvil = {patente, rut_dueo, rut_chofer, marca,
modelo, ao}
Viaje = {correlativo_vale, patente_movil,Hora_Desde, hora_hasta, origen, destino, tarifa,metraje}
7/24/2019 Algebra-relacional Completa
11/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Seleccin Restriccin ()
El operador de seleccin opta por tuplas quesatisfagan cierto predicado, se utiliza la letragriega sigma minscula () para sealar laseleccin.
El predicado aparece como subndice de .
La Relacin que constituye el argumento se daentre parntesis despus de la .
Ejemplos :
7/24/2019 Algebra-relacional Completa
12/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Proyeccin () La operacin de proyeccin permite quitar
ciertos atributos de la relacin. Esta operacin es unaria, copiando su relacin
base dada como argumento y quitando ciertascolumnas.
La proyeccin se seala con la letra griega pimayscula (). Como subndice de se colocauna lista de todos los atributos que se deseaaparezcan en el resultado.
La relacin argumento se escribe despus de entre parntesis.Ejemplos :
7/24/2019 Algebra-relacional Completa
13/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Unin (U)
En lgebra relacional la unin de dosrelaciones compatibles A y B es:A UNION B o A U B
Produce el conjunto de todas las tuplasque pertenecen ya sea a A o a B o aAmbas.
Al igual que en teora de conjuntos elsmbolo U representa aqu la unin de dosrelaciones.
Ejemplo :Devuelve todos los Dueos y los Choferes.
7/24/2019 Algebra-relacional Completa
14/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Interseccin ()
En lgebra relacional la interseccin de dosrelaciones compatibles A y BA INTERSECCION B o A B
Produce el conjunto de todas las tuplaspertenecientes a A y B. Al igual que en teorade conjuntos el smbolo representa aqu lainterseccin entre dos relaciones.
Ejemplo: Devuelve todos los dueos que tambin son choferes
7/24/2019 Algebra-relacional Completa
15/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Diferencia ()
En lgebra relacional la diferencia entre dosrelaciones compatibles A y B
A MENOS B o A B
Produce el conjunto de todas las tuplas t quepertenecen a A y no pertenecen a B.
Ejemplo:
Devuelve todos los dueos que NO son choferes
7/24/2019 Algebra-relacional Completa
16/70N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Producto cartesiano (X)
En lgebra relacional el producto de dosrelaciones A y B es:
A Veces B o A X B
Produce el conjunto de todas las tuplas t talesque t es el encadenamiento de una tupla aperteneciente a A y de una b que pertenece a B.se utiliza el smbolo X para representar el
producto.Ejemplos:
7/24/2019 Algebra-relacional Completa
17/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Join o Reunin
Esta operacin deriva del Producto
Cartesiano Es equivalente a realizar una seleccin
empleando un predicado de reunin como
frmula para eleccin dentro del productocartesiano de las dos relaciones operando. Es difcil de implementar eficientemente en
un Sistema de Manejo de Bases de Datos
Relacionales (RDBMS) y es causa deproblemas intrnsecos deperformance enellos.
7/24/2019 Algebra-relacional Completa
18/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Join o Reunin
En lgebra relacional el JOIN entre elatributo X de la relacin A con elatributo Y de la relacin B produce elconjunto de todas las tuplas t tal que tes el encadenamiento de una tupla a
perteneciente a A y una tupla bperteneciente a B que cumplen con elpredicado:
A.X comp B.Y es verdadero
siendo comp un operador relacional ylos atributos A.X y B.Y pertenecientes almismo dominio.
7/24/2019 Algebra-relacional Completa
19/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Formas de la operacinJoin
Combinacin Theta (-join) Equicombinacin (Equi-join) (tipo
particular de Theta)
Combinacin Natural Reunin externa (Outer join) Semicombinacin (Semi-join)
7/24/2019 Algebra-relacional Completa
20/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Join o Reunin Natural
Si el operador relacional comp es =entonces el conjunto resultante es unEQUI-JOIN.
Si se quita uno de stos (usando una
proyeccin) entonces el resultado es unJOIN-NATURAL.
Ejemplo.-
O i i d l
7/24/2019 Algebra-relacional Completa
21/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Operaciones que extienden ellgebra Relacional
Proyeccin Generalizada Combinacin externa Funciones de Agrupacin y Agregacin
7/24/2019 Algebra-relacional Completa
22/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Proyeccin Generalizada
Extiende la operacin de proyeccin permitiendo el
uso de funciones aritmticas en la lista proyectada.
F1, F2, , Fn(E)
Ees cualquier expresin del lgebra relacional
Cada F1, F2, , Fn representa expresionesaritmticas que pueden involucrar constantes atributos en el esquema de E.
Dada la relacin credit-info(customer-name, limit,
credit-balance), encontrar cuanto puede gastar unapersona:
customer-name, limit credit-balance (credit-info)
F i O i d
7/24/2019 Algebra-relacional Completa
23/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Funciones y Operaciones deAgregacin
La funcin de Agregacin toma una coleccin de valores y
devuelve un nico valor como resultado:avg: valor promediomin: valor mnimomax: valor mximosum: suma de valores
count: cantidad de valores Operacin de Agregar en lgebra relacional
G1, G2, , Gn gF1( A1), F2( A2),, Fn( An) (E)
Ees cualquier expresin en lgebra relacional
G1, G2 , Gn es una lista de atributos en los cuales agrupar(puede estar vaca)
Cada Fies una funcin de agregacin
CadaAies un nombre de atributo
Ej l d l O i
7/24/2019 Algebra-relacional Completa
24/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplo de la OperacinAgregacin
Relacin accountagrupada por branch-name:
branch-name
g
sum(balance)
(account)
branch-name account-number balance
Perryridge
PerryridgeBrightonBrightonRedwood
A-102
A-201A-217A-215A-222
400
900750750700
branch-name balance
PerryridgeBrightonRedwood
13001500700
7/24/2019 Algebra-relacional Completa
25/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Funciones de Agregacin (Cont.)
El resultado de la agregacin no tieneun nombre.
Puede utilizarse la operacin de renombrar(rename) as para denominarla.
Por conveniencia, se permite renombrarcomo parte de la operacin de agregacin.
branch-name g sum(balance) assum-balance (account)
7/24/2019 Algebra-relacional Completa
26/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Combinacin externa
Extensin de la operacinjoin que evita prdidasde informacin, ya que trabaja con la informacinque falta.
Calcula la combinacin e incluye tambin en la
relacin resultante las tuplas de R que no tenganvalores correspondientes en los atributoscomunes de S.
Asigna valores nulos (null) a los valores no
existentes en la segunda relacin. null significa que el valor es desconocido no existe Todas las comparaciones que involucran nullson false
por definicin.
7/24/2019 Algebra-relacional Completa
27/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplo de Combinacin externa
Relacin loan
Relacin borrowercustomer-name loan-number
Jones
SmithHayes
L-170
L-230L-155
300040001700
loan-number amount
L-170L-230L-260
branch-name
DowntownRedwoodPerryridge
7/24/2019 Algebra-relacional Completa
28/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplo de Combinacin externa
Combinacin interna
loan Borrowerloan-number amount
L-170
L-230
3000
4000
customer-name
Jones
Smith
branch-name
Downtown
Redwood
JonesSmithnull
loan-number amount
L-170L-230L-260
300040001700
customer-namebranch-name
DowntownRedwoodPerryridge
Combinacin externa izquierda
loan Borrower
7/24/2019 Algebra-relacional Completa
29/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplo de Combinacin externa
Combinacin externa derecha:
loan borrower
loan borrower
Combinacin externa completa
loan-number amount
L-170L-230
L-155
30004000
null
customer-name
JonesSmith
Hayes
branch-name
DowntownRedwood
null
loan-number amount
L-170L-230L-260L-155
300040001700null
customer-name
JonesSmithnull
Hayes
branch-name
DowntownRedwoodPerryridgenull
7/24/2019 Algebra-relacional Completa
30/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Valores nulos
Es posible en las tuples tomar un valor nulo,
denotado por null, para algunos atributos nullsignifica un valor desconocido que no existe.
El resultado de cualquier expresin aritmtica dondeparticipa nulles el propio valor null.
Las funciones de Agregacin simplemente ignoranvalores nulos Es una decisin arbitraria.
Para eliminacin de duplicados y agrupamiento, elvalor nulo es tratado como cualquier otro valor Alternativa: asumir que cada valor nulo es diferente de los
otros
7/24/2019 Algebra-relacional Completa
31/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Las comparaciones con valores nulos devuelven el valor
especial verdadero unknown Si se emple false en vez de unknown, entonces not (A < 5)pudiera no ser equivalente aA >= 5
Se emplea lgica tres estadoscon el valor unknown: OR: (unknown or true) = true,
(unknown or false) = unknown(unknown or unknown) = unknown
AND: (true and unknown) = unknown,(false and unknown) = false,(unknown and unknown) = unknown
NOT: (not unknown) = unknown
En SQL Pis unknown evala como cierto si el predicado Pevala a unknown
El resultado del predicado de seleccin se trata como false sievala como unknown
Valores nulos
7/24/2019 Algebra-relacional Completa
32/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Modificacin de la Base de Datos
El contenido de la base de datospuede modificarse utilizando lassiguientes operaciones:
Borrado InsercinActualizacin
Estas operaciones se expresanempleando el operador deasignacin:
7/24/2019 Algebra-relacional Completa
33/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Borrado
Una solicitud de borrado se expresa de manera
similar a una consulta, pero en vez de mostrardichas tuplas al usuario, provoca que las tuplasseleccionadas sean eliminadas de la base de datos.
Pueden eliminarse solamente tuplas completas; no
pueden borrarse valores especficos de atributos. En lgebra relacional se expresa como:
r r E
donde res una relacin y Ees una consulta enlgebra relacional.
7/24/2019 Algebra-relacional Completa
34/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplos de borrado
Borrar en la tabla account todas las tuplas
cuyo nombre de sucursal sea Perryridge.
Borrar todas las cuentas para las sucursalesubicadas en Needham.
r1
branch-city = Needham(account branch)
r2 branch-name, account-number, balance (r1)
r3 customer-name, account-number(r2 depositor)
account account r2
depositor depositor r3
Borrar todos los registros de la tabla loan concantidad en el rango de 0 a 50
loan loan amount 0 and amount 50 (loan)
account account branch-name = Perryridge(account)
7/24/2019 Algebra-relacional Completa
35/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Insercin
Para insertar datos en una relacin, puede: especificarse una tupla para ser insertada
escribir una consulta cuyo resultado sea un conjunto detuplas a insertar
En lgebra relacional, una insercin se expresa
como:r r E
donde res una relacin y Ees una expresin dellgebra relacional.
La insercin de una tupla simple se expresahaciendo que Esea una relacin constante quecontiene una tupla.
7/24/2019 Algebra-relacional Completa
36/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplos de Insercin
Insertar informacin en la base de datos especificando que
Smith tiene $1200 en la cuenta A-973 en la sucursal dePerryridge.
Ofrecer una nueva cuenta de ahorro con $200 como regalopara todos los clientes con prstamos concedidos en lasucursal de Perryridge. Hacer que el nmero del prstamo seael que se utilice como nmero de cuenta para cada nueva
cuenta de ahorro.
account account {(Perryridge, A-973, 1200)}
depositor depositor {(Smith, A-973)}
r1 (branch-name = Perryridge (borrower loan))
account account branch-name, account-number,200 (r1)
depositor depositor customer-name, loan-number(r1)
7/24/2019 Algebra-relacional Completa
37/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Actualizacin
Mecanismo para cambiar algunos valores en unatupla sin que cambien todos los valores de lamisma.
Se utiliza el operador de proyeccin generalizada
r F1, F2, , FI,
(r)
Cada Fies: el isimo atributo de r, si dicho isimo atributo no se
actualiza; o,
Si corresponde actualizar al atributo, entonces Fi es unaexpresin formada por constantes y por los atributos de r,que proporciona el valor del nuevo atributo
7/24/2019 Algebra-relacional Completa
38/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplos de actualizacin
Pagar intereses incrementando todos los balancesen un 5%.
Las cuentas con balances sobre $10,000 percibenun 6% de inters. A las restantes, pagar el 5 %
account AN, BN, BAL * 1.06 ( BAL 10000 (account))
AN, BN, BAL * 1.05 (BAL 10000 (account))
account AN, BN, BAL * 1.05 (account)
dondeAN, BNy BAL significan account-number, branch-name ybalance, respectivamente.
7/24/2019 Algebra-relacional Completa
39/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
En muchos casos no se desea que todos los
usuarios vean el modelo lgico completo; porejemplo: todas las relaciones almacenadasactualmente en la base de datos.
Considere una persona que necesita saber elnmero de cuenta de un cliente, pero no
necesita ver el importe de prstamos. Estapersona debera ver una relacin descrita, entrminos del lgebra relacional, por:customer-name, loan-number(borrower loan)
Cualquier relacin que no forma parte delmodelo conceptual pero que se hace visible paraalgn usuario como relacin virtual sedenomina vista (view).
Vistas
7/24/2019 Algebra-relacional Completa
40/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Definicin de Vista
Las vistas se definen utilizando la instruccin createview. Para definirla, hay que indicar el nombre y laconsulta que la calcula:
create view v as
donde es cualquier expresin deconsulta que sea legal en lgebra relacional. El nombrede la vista es v.
Una vez definida la vista, su nombre de vista puedeutilizarse para referirse a la relacin virtual que esgenerada por dicha vista.
Una definicin de vista no es lo mismo que crear unanueva relacin evaluando la expresin de consulta. Envez de eso, la definicin de la vista genera que seguarde una expresin, la cual es sustituida en aquellasconsultas que utilicen la vista.
7/24/2019 Algebra-relacional Completa
41/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplos de vistas
Considere la vista denominada all-customer,consistente de todas las sucursales y sus clientes.
Pueden encontrarse todos los clientes de la
sucursal Perryridge escribiendo:
create view all-customer as
branch-name, customer-name (depositor account) branch-name, customer-name (borrower loan)
customer-name
(branch-name = Perryridge (all-customer))
7/24/2019 Algebra-relacional Completa
42/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Actualizaciones mediante vistas
Las modificaciones a la Base de Datos expresadas como
vistas deben ser trasladadas a modificaciones de lasrelaciones actuales existentes en la Base de Datos. Considere la persona que necesita ver todos los datos de
imposiciones en la relacin loan excepto amount. La vistadada a dicha persona, branch-loan, se define como:
create view branch-loan asbranch-name, loan-number(loan)
Dado que se admite que un nombre de vista aparezcadondequiera que se permite un nombre de relacin, lapersona pudiera escribir:
branch-loan branch-loan {(Perryridge, L-37)}
Actualizaciones mediante vistas
7/24/2019 Algebra-relacional Completa
43/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
La insercin anterior puede representarse por una insercin en
la relacin actual loan a partir de la cual se construye la vistabranch-loan.
Una insercin en la relacin loan requiere un valor paraamount. Hay dos enfoques para trabajar esta insercin:1. Rechazarla y devolver un mensaje de error al usuario.
2. Insertar la tupla (L-37, Perryridge, null) en la relacin loan. Algunas actualizaciones a travs de vistas no son posibles de
convertir en actualizaciones de relaciones de la base de datos: create view v as branch-name =Perryridge(account))
v v (L-99, Downtown, 23)
Otras no pueden ser convertidas unvocamente: all-customer all-customer {(Perryridge, John)}
Hay que seleccionar loan o account, y crear un nuevo nmeroloan/account!
Actualizaciones mediante vistas(cont.)
Vistas Definidas Utilizando Otras
7/24/2019 Algebra-relacional Completa
44/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Vistas Definidas Utilizando OtrasVistas
Una vista puede ser utilizada en la definicinde otra vista.
Se dice que la vista v1 depende directamentede la vista v2 si v2 se emplea en la expresin
que define a v1 Se dice que la vista v1 depende de la vista v2
si v1 depende directamente de v2 o hay un
camino de dependencias desde v1 hastav2 Una vista vse denomina recursiva si
depende de si misma.
7/24/2019 Algebra-relacional Completa
45/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Expansin de vistas
Es una manera de definir el significado de las vistas
definidas en trminos de otras vistas. Sea la vista v1 definida por la expresin e1 que
puede contener a su vez otras vistas.
La expansin de vista de una expresin repite elsiguiente paso de reemplazo:
repeatBuscar todas las vistas vide e1Sustituir la vista vipor la expresin que define vi
until no queden mas vistas en e1 Mientras las definiciones de vistas no sean
recursivas, este bucle concluir.
7/24/2019 Algebra-relacional Completa
46/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Clculo relacional de tuplas
Lenguaje de consultas no procedural,
donde cada consulta est expresada en laforma{t| P(t) }
Es el conjunto de todas las tuplas ttalesque el predicado Pes verdadero para t
tes una variable de tupla, t[A] denota elvalor del atributoA para la tupla t
t rdenota que la tupla test en larelacin r Pes una frmula similar a las del clculo de
predicados
Frmulas del clculo de
7/24/2019 Algebra-relacional Completa
47/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Frmulas del clculo depredicados1. Conjunto de atributos y constantes.
2. Operadores de comparacin: , , , , , 3. Conectores: and (), or (v) not ()4. Implicacin (): x y, si x es verdadero,
entonces y es verdaderox y xv y
5. Cuantificadores:
t r (Q(t)) existe una tupla ten relacin rtal que el predicado Q(t) es truet r(Q(t)) Q es true para todas las tuplas t
en la relacin r
Ej l d l b
7/24/2019 Algebra-relacional Completa
48/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplo del banco
branch (branch-name, branch-city, assets)
customer (customer-name, customer-street,customer-city)
account (account-number, branch-name,
balance) loan (loan-number, branch-name, amount)
depositor (customer-name, account-
number) borrower (customer-name, loan-number)
Ej l d lt
7/24/2019 Algebra-relacional Completa
49/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplo de consultas
Buscar loan-number, branch-name, y amountpara prstamos superiores a $1200
Buscar el loan-numberpara cada prstamo con
una cantidad mayor que $1200
Ntese que implcitamente queda definida la relacin [loan-number]
en el esquema producto de la consulta.
{t | s loan (t[loan-number] = s[loan-number] s [amount] 1200)}
{t| t loan t[amount] 1200}
Ej l d lt
7/24/2019 Algebra-relacional Completa
50/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Buscar los nombres de todos los clientes conun prstamo, una cuenta, o ambas cosas:
{t | s borrower( t[customer-name] = s[customer-name]) u depositor( t[customer-name] = u[customer-name])
Buscar los nombres de todos los clientes quetienen prstamo y cuenta en el banco:
{t | s borrower( t[customer-name] = s[customer-name]) u depositor( t[customer-name] = u[customer-name])
Ejemplo de consultas
Ej l d lt
7/24/2019 Algebra-relacional Completa
51/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Buscar los nombres de todos los clientes con
prstamo en la sucursal Perryridge:
{t | s borrower( t[customer-name] = s[customer-name] u loan(u[branch-name] = Perryridge
u[loan-number] = s[loan-number])) notv depositor (v[customer-name] =
t[customer-name]) }
Buscar los nombres de todos los clientes quetienen un prstamo otorgado por la sucursalPerryridge, pero que no tienen cuenta en ningunasucursal del banco:
{t | s borrower(t[customer-name] = s[customer-name] u loan(u[branch-name] = Perryridge
u[loan-number] = s[loan-number]))}
Ejemplo de consultas
Ej l d lt
7/24/2019 Algebra-relacional Completa
52/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Buscar nombres de todos los clientes que hantomado prstamo en la sucursal Perryridge ylas ciudades en que viven:
{t | s loan(s[branch-name] = Perryridge u borrower (u[loan-number] = s[loan-number]
t [customer-name] = u[customer-name]) v customer (u[customer-name] = v[customer-name]
t[customer-city] = v[customer-city])))}
Ejemplo de consultas
Ej l d lt
7/24/2019 Algebra-relacional Completa
53/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Buscar los nombres de todos los clientes quetienen una cuenta en todas las sucursalesubicadas en Brooklyn:
{t | c customer (t[customer.name] = c[customer-name]) s branch(s[branch-city] = Brooklyn
u account ( s[branch-name] = u[branch-name] s depositor ( t[customer-name] = s[customer-name]
s[account-number] = u[account-number] )) )}
Ejemplo de consultas
S id d d E i
7/24/2019 Algebra-relacional Completa
54/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Seguridad de Expresiones
Es posible escribir expresiones de clculo de tuplas que
generan relaciones infinitas. Por ejemplo, {t | t r} resulta en una relacin infinita si el
dominio de uno cualquiera de los atributos de la relacin resinfinito.
Para evitar este problema, se restringe el conjunto deexpresiones permitidas a expresiones seguras.
Una expresin {t| P(t)} en el clculo relacional de tuplas essegura si cada componente de taparece en una de lasrelaciones, tuplas, o constantes que aparecen en P
NOTA: Esta condicin es mas que slo una condicin sintctica. Ejemplo: { t| t[A]=5 true } no es segura --- define un conjunto
infinito con valores de atributos que no aparecen en ninguna relacin otuplas o constantes en P.
Cl l l i l d d i i
7/24/2019 Algebra-relacional Completa
55/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Clculo relacional de dominios
Lenguaje de consultas no proceduralequivalente en potencialidad al clculorelacional de tuplas.
Cada consulta es una expresin de la
forma:{ x1, x2, , xn | P(x1,x2, , xn)}
x1,x2, , xn representan variables de dominio Prepresenta una frmula similar a las del
clculo de predicados.
Ejemplo de cons ltas
7/24/2019 Algebra-relacional Completa
56/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejemplo de consultas
Buscar loan-number, branch-name, y amount
para prstamos superiores a $1200:
{ c, a | l( c, l borrower b( l, b, a loan
b = Perryridge))}
or { c, a | l( c, l borrower l, Perryridge, a loan)}
Buscar los nombres de todos los clientes quetienen un prstamo de la sucursal Perryridge y el
monto de dicho prstamo:
{ c | l, b, a ( c, l borrower l, b, a loan a > 1200)}
Buscar nombres de clientes con prstamossuperiores a $1200:
{ l, b, a | l, b, a loan a > 1200}
Ejemplo de consultas
7/24/2019 Algebra-relacional Completa
57/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Buscar los nombres de todos los clientes que
tienen un prstamo, una cuenta ambas cosasen la sucursal Perryridge:
{ c | s, n ( c, s, n customer)
x,y,z(x, y, z branchy= Brooklyn) a,b(x, y, z account c,a depositor)}
Buscar los nombres de todos los clientes quetienen una cuenta en todas las sucursales
ubicadas en Brooklyn:
{ c | l ({ c, l borrower b,a( l, b, a loan b = Perryridge))
a( c, a depositor b,n( a, b, n account b = Perryridge))}
Ejemplo de consultas
Seguridad de las Expresiones
7/24/2019 Algebra-relacional Completa
58/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Seguridad de las Expresiones
{ x1, x2, , xn | P(x1,x2, , xn)}
es segura si se cumplen todos los tres puntos siguientes:1. Todos los valores que aparecen en tuplas de la
expresin son valores de dom(P), que significa: losvalores aparecen en Po en una tupla de una relacin
mencionada en P.2. Para cada subfrmula existe de la forma x(P1(x)),
dicha subfrmula es verdadera si y solamente si hay unvalor dexen dom(P1) tal que P1(x) sea verdadera.
3. Por cada subfrmula para todo de la forma x (P1 (x)),dicha subfrmula es verdadera si y solamente si P1(x)es verdadera para todos los valoresx de dom (P1).
Otros Lenguajes
7/24/2019 Algebra-relacional Completa
59/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Otros Lenguajes
Los lenguajes orientados a Transformaciones
son lenguajes no procedurales que empleanrelaciones para transformar datos de entradaen las salidas requeridas. Por ejemplo: elLenguaje estructurado de Consultas
(Structured Query Language - SQL). Los lenguajes grficos muestran a los
usuarios diagramas de la estructura de larelacin. El usuario llena un ejemplo de lo
que desea y el sistema devuelve los datossolicitados en ese formato. Por ejemplo:Consultas por ejemplo (Query by example -QBE).
Pearson Education Limited 1995, 2005
Otros Lenguajes
7/24/2019 Algebra-relacional Completa
60/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Otros Lenguajes
Los lenguajes de cuarta generacin (4GLs)pueden crear aplicaciones completamentepersonalizadas utilizando un conjuntolimitado de comandos en un ambiente
amistoso al usuario, comnmentemanejado por mens. Algunos sistemas aceptan una variante de
lenguaje natural, denominada 5GL, aunque
este desarrollo se encuentra an en suetapa inicial.
Pearson Education Limited 1995, 2005
Resumen (1)
7/24/2019 Algebra-relacional Completa
61/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Resumen (1)
El lgebra Relacional (AR) define unconjunto de operaciones sobre tablas quedevuelven como resultado tablas.
Estas operaciones pueden combinarse para
obtener expresiones acordes con lasconsultas deseadas. Las operaciones del AR pueden dividirse en:
Bsicas.
Adicionales, que pueden expresarse en trminosde las operaciones bsicas. Extendidas, algunas de las cuales aaden mayor
poder expresivo al AR
Resumen (2)
7/24/2019 Algebra-relacional Completa
62/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Resumen (2)
Las Bases de Datos (BD) puedenmodificarse con: la insercin,el borrado y la actualizacin
de tuplas.
Se us el AR con el operador deasignacin para expresar estasmodificaciones.
Resumen (3)
7/24/2019 Algebra-relacional Completa
63/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Resumen (3)
Las vistas son relaciones virtuales definidas
mediante expresiones de consulta. Constituyenmecanismos tiles para simplificar accesos a laBD. Pueden tener consecuencias desventajosas,por lo que los sistemas de BD restringen
estrictamente las actualizaciones medianteellas. Por razones de eficiencia del procesamiento de
las consultas, una vista puede estarmaterializada: la consulta se evala y elresultado se almacena fsicamente. Esto implicaque si las relaciones correspondientes seactualizan, debe actualizarse tambin dichavista materializada.
Resumen (4)
7/24/2019 Algebra-relacional Completa
64/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Resumen (4)
El clculo relacional de tuplas y elclculo relacional de dominios sonlenguajes no procedurales que poseenla potencia bsica necesaria en un
lenguaje de consultas relacional. El lgebra relacional bsica es unlenguaje procedural que esequivalente en potencia con ambasformas del clculo relacional cuandose restringen a las expresionesseguras.
Resumen (5)
7/24/2019 Algebra-relacional Completa
65/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Resumen (5)
El lgebra Relacional y los ClculosRelacionales son lenguajes rgidos,formales, que no resultan adecuadospara los usuarios ocasionales de los
sistemas de Bases de Datos. Los sistemas comerciales emplean
alternativas que favorecen al usuariofinal:SQL: Basado en lgebra relacional.QBE: Basado en clculo relacional de
dominios.
Bibliografa
7/24/2019 Algebra-relacional Completa
66/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Bibliografa
Silberschatz, Korth y SudarshanFundamentos de Bases de Datos
Connolly y Begg Sistemas de Bases deDatos
Date Introduccin a los Sistemas de Bases
de Datos Ullmann Principios de los Sistemas de
Bases de Datos Cisterna METODOS DE OPTIMIZACION DE
CONSULTAS PARA EL LENGUAJE SQLhttp://macine.epublish.cl/tesis/index-Contents.html (visitado 2006.05.11 11:53)
Ejercicios (1)
http://macine.epublish.cl/tesis/index-Contents.htmlhttp://macine.epublish.cl/tesis/index-Contents.htmlhttp://macine.epublish.cl/tesis/index-Contents.htmlhttp://macine.epublish.cl/tesis/index-Contents.html7/24/2019 Algebra-relacional Completa
67/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejercicios (1)
Las siguientes tablas forman parte de una BD:
Hotel (hotelNo, hotelNombre, ciudad)Room (roomNo, hotelNo, tipo, precio)Booking(hotelNo, guestNo, dateFrom, dateTo,
roomNo)Guest (guestNo, guestNombre, guestDireccion)
1. Describa las relaciones que se generanmediante las siguientes operaciones dellgebra relacional:a) hotelNo(price>50000(Room))
b) Hotel.hotelNo=Room.hotelNo(Hotel x Room)2. Proporcione las expresiones equivalentes en
el clculo relacional de tuplas y en el dedominios.
Ejercicios (2)
7/24/2019 Algebra-relacional Completa
68/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejercicios (2)
3. Escriba las expresiones tanto del lgebra
relacional, como del clculo relacional detuplas y del de dominios para responderlas siguientes consultas:
a) Enumerar todos los hoteles
b) Enumerar todas las habitaciones cuyo preciosea inferior a $20000c) Enumerar los nombres y ciudades de
procedencia de todos los huspedes en el hotel
Raddisond) Enumerar los detalles guestNo, guestNombre yguestDireccion para todos los huspedes en elhotel Sheraton
Ejercicios (3)
7/24/2019 Algebra-relacional Completa
69/70
N 2006 UDLA - Escuela de Ingeniera - Bases de Datos - Ana Paola Arriagada y Juan Jos Aranda
Ejercicios (3)
Dada la siguiente Base de Datos:Empleado (nombre-empleado, calle,
ciudad)Trabaja (nombre-empleado, nombre-
empresa, sueldo)Empresa (nombre-empresa, ciudad)Jefe (nombre-empleado, nombre-jefe)
1. Escriba una expresin del lgebrarelacional que permita realizar lassiguientes consultas:
Ejercicios (4)
7/24/2019 Algebra-relacional Completa
70/70
Ejercicios (4)
a) Averiguar los nombres de todos los empleados
que trabajan para la UDLAb) Averiguar el nombre, calle y ciudad de residenciade todos los empleados que ganan mas de$2000000 mensuales
c) Averiguar el nombre de todos los empleados que
viven en la misma ciudad donde radica la empresapara la que trabajand) Determinar la empresa con mayor nmero de
empleadose) Determinar la compaa que paga menos nmina
(salario de todos los empleados en conjunto)f) Dar a todos los jefes un aumento de salario del
10% a menos que el sueldo resultante sea mayorque $2000000. Para estos casos, aumentar elsalario solamente en un 3%