Sei sulla pagina 1di 46

Documento basado en las presentaciones del libro Sistemas de Bases de Datos de Thomas Connolly y Carolyn E. Begg.

1
Significado del termino relacional completo.

Como es la forma de las consultas en el algebra


relacional.

Como es la forma de consultas in tuplas en el


calculo relacional.

Como es la forma de consultas en el dominio


de el calculo relacional.

Categoras del DML relacional.


2
El algebra y el calculo relacional son
lenguajes formales asociados con el modelo
relacional.
Informalmente, el algebra relacional es un
lenguaje procedimental (alto nivel) y el
calculo relacional es un lenguaje no
procedimental.
Ambos lenguajes son equivalentes.
Un lenguaje que produce una relacin que
puede ser derivada usando calculo relacional
es relacionalmente completa.
3
Las operaciones del algebra relacional
trabajan sobre una o mas relaciones para
definir otra relacin sin cambiar las relaciones
originales.
Ambos, operadores y resultados son
relaciones, as la salida desde una operacin
puede llegar a ser la entrada para otra
operacin.
Se permite que expresiones sean anidadas.
Esta propiedad es llamada Clausula.

4
Existen 5 operaciones bsicas del algebra
relacional:
Seleccin,
Proyeccin,
Producto cartesiano,
Unin,
Diferencia de Conjuntos.
Estas permiten la recuperacin de datos.
Operaciones como Join (unin), Interseccin,
y and Divisin, pueden ser expresadas en
trminos de las 5 operaciones bsicas.

5
6
7
predicado (R)
Trabaja con una simple relacin R y define la
relacin que contiene solamente aquellas tuplas
(filas) de R que satisfacen la condicin
especificada (predicado).

8
Listar todo el Staff con salario mas grande
que $10,000.
salary > 10000 (Staff)

9
col1, . . . , coln(R)
Trabaja con una simple relacin R y define una
relacin que contiene un subconjunto vertical
(atributos) de R, extractando los valores los
atributos especificados y eliminando los
duplicados.

10
Producir la lista de salarios para todo el Staff
mostrando solamente staffNo, fName,
lName, y detalles de salary.
staffNo, fName, lName, salary(Staff)

11
RS
Unin de dos relaciones R y S definen una relacin
que contiene todas las tuplas de R o S o ambas, las
tuplas duplicadas sern eliminadas.
R y S deben ser compatibles para la Unin.

Si R y S tiene i y j tuplas respectivamente, la


unin es obtenida por la concatenacin de
ellas en una relacin con un mximo de (I + J)
tuplas.

12
Liste todas las ciudades donde hay ni una
sucursal (Branch) o una propiedad en alquiler.
city(Branch) city(PropertyForRent)

13
RS
Define una relacin de las tuplas que estn en la
relacin R pero que no estn en S
R y S deben ser compatibles para la diferencia.

14
Listar todas las ciudades donde estn las
sucursales (Branch) pero no estn el las
propiedades para la renta (PropertyForRent).

city(Branch) city(PropertyForRent)

15
RS
Define una relacin que consistente del
conjunto de todas las tuplas que estn en
ambos conjuntos R y S.
R y S deben ser compatibles para la
interseccin.

R S = R (R S)

16
Listar todas las ciudades donde hay una
sucursal (Branch) y por lo menos una
propiedad para renta.
city(Branch) city(PropertyForRent)

17
RXS
Define una relacin que es la concatenacin de
todas las tuplas de la relacin R con las tuplas de
la relacin S.

18
Listar los nombre y comentarios de todos los clientes
quienes han visto una propiedad para la renta.
(clientNo, fName, lName(Client)) X (clientNo, propertyNo, comment
(Viewing))

19
Use seleccin para extraer aquellas tuplas donde
Client.clientNo = Viewing.clientNo.
Client.clientNo = Viewing.clientNo((clientNo, fName, lName(Client))
(clientNo, propertyNo, comment(Viewing)))

Producto Cartesiano y la Seleccin pueden ser reducidos a una simple operacin


llamada Join.

20
Join es derivado del producto cartesiano.

Son las operaciones ms difciles de


implementar eficientemente en una RDBMS.

21
Forma de la operacin joinTheta join
Equijoin (un particular tipo de Theta join)
Join Natural
Outer join
Semijoin

22
R FS
Define una relacin que consiste de tuplas que
satisfacen el predicado F del producto
cartesiano de R y S.
El predicado de F es de la forma R.ai S.bi
donde puede ser uno de los operadores de
comparacin (<, , >, , =, ).

23
Theta puede ser re-escrita de usando seleccin
bsica y producto cartesiano.

R FS = F(R S)

El grado de un Theta join es la suma de grados de


los operando relacionales de R y S. Si el predicado
de F contiene solo igualdad (=), el termino usado es
Equijoin.

24
Listar los nombres y comentarios de todos los
clientes quienes han visto una propiedad para
rentar.
(clientNo, fName, lName(Client)) Client.clientNo =
Viewing.clientNo (clientNo, propertyNo, comment(Viewing))

25
R S
Un Equijoin de dos relaciones R y S sobre todos los
atributos comunes x. Una ocurrencia de cada
atributo comn es eliminado de la relacin
resultado.

26
Listar los nombres y comentarios de todos los
clientes que han visto una propiedad para rentar.
(clientNo, fName, lName(Client))
(clientNo, propertyNo, comment(Viewing))

27
Para mostrar filas en el resultado que no tienen
valores de emparejamiento (match) en las
columnas del join, use Outer join.

R S
(Izquierdo) outer join es un join en el cual tuplas de R
que no tienen valores para emparejar (match) con
columnas comunes de S y estas son incluidas en el
resultado.

28
Producir un reporte de estado las propiedades
visitadas.
propertyNo, street, city(PropertyForRent) Viewing

29
R FS
Define una relacin que contiene tuplas de R que
participan en el join de R con S.

Un Semijoin puede ser escrito como una proyeccin y un


Join:

R FS = A(R F S)

30
Liste los detalles completos de todo el staff
quienes trabajan en una sucursal (branch) en
Glasgow.
Staff Staff.branchNo=Branch.branchNo(city=Glasgow(Branch))

31
RS
Define una relacin sobre los atributos C que consisten de
un conjunto de tuplas de R que corresponder con la
combinacin de todas la tupla en S.

Expresado usando operaciones bsicas:


T1 C(R)
T2 C((S X T1) R)
T T1 T2

32
Identificar todos los cliente quienes han visto
todas las propiedades de tres alcobas.
(clientNo, propertyNo(Viewing))
(propertyNo(rooms = 3 (PropertyForRent)))

33
AL(R)
Aplica la lista de funciones de agregacin, AL, a la
relacin R para definir una relacin sobre la lista
de agregacin.
AL contiene uno o ms pares
(<funcin_agregada>, <atributos>).

Las principales funciones agregadas son:


COUNT, SUM, AVG, MIN y MAX.

34
Cuantas propiedades tienen un valor de renta de ms de
350 mes?
R(myCount) COUNT propertyNo (rent > 350
(PropertyForRent))

35
GAAL(R)
Agrupacin de tuplas de R por los atributos
definidos, GA, y despus, aplica a la lista una
funcin agregada, AL, para definir una nueva
relacin

AL contiene uno o ms pares


(<funcin_agregada>, <atributos>).

La relacin resultante contiene los atributos que


agrupan, GA, junto con resultados de cada uno de
las funciones agregadas.
36
Encontrar el nmero de Personas (Staff) que trabajan en
cada sucursal (Branch) y la sumas de sus salarios.
R(branchNo, myCount, mySum)
branchNo COUNT staffNo, SUM salary (Staff)

37
La operacin de asignacin () suministra una forma
conveniente de expresar consultas complejas.
Asignacin ser hecha sobre variables de relacin
temporales.
Ejemplo: r s as
temp1 R-S (r )
temp2 R-S ((temp1 x s ) R-S,S (r ))
result = temp1 temp2
El resultado a las derecha es asignado a la variable de
relacin a la izquierda de .
Puede usarse variables en expresiones subsecuentes.
El contenido de la base de datos se
puede realizar usando las siguientes
operaciones:
Borrado (Delete)
Insercin (Insert)
Actualizacin (Update)
Todas las operaciones son expresadas
usando el operador de asignacin.
Una peticin de borrado es expresada
similarmente a una consulta, excepto que en vez
de mostrar tuplas al usuario, la tuplas son
removidas.
Se pueden borrar solamente todas las tuplas; no
se pueden borrar solo valores de atributos en
particular.
Es expresado por:
RRE
donde R es una relacin y E es consulta del
algebra relacional.
Borrar todas las tuplas de la sucursal
(Branch) donde la ciudad sea London.

Branch Branch city = London (Branch)


Para insertar datos en una relacin se debe
tener en cuenta:
Especificar la tupla a ser insertada
Escribir una consulta cuyo resultado es el
conjunto de tuplas a ser insertado.

En el algebra relacional se expresa as:


R R E
donde R es la relacin y E es la expresin
algebraica de la relacin a insertar.
Insertar informacin el la relacin Cliente la siguiente
informacin el cliente CR99 que es Jenny Lpez, telfono
123456 y prefType = House y el mximo de renta a pagar 600.

Client Client {(CR99, Jenny, Lpez, 123456, House, 600)}


Un mecanismo para cambiar valores de una
tupla sin cambiar todos los valores en la tupla
Usa el operador de proyeccin para hacer la
tarea
R F1 , F2 ,, Fl , ( R)

Cada Fi es:
Un atributo de R que no sea modificado,
,
Si el atributo a ser actualizado es Fi una expresin
puede ser usada.
Incrementar al valor mximo a pagar por renta de todos los cliente en el
4.5 porciento.

Client clientNo, fName, lName, telNo, prefType, * maxRent *4.5 (Client)


Connolly, Tomas M,. Begg, Carolyn E. Sistemas
de bases de datos: Un enfoque prctico para
diseo, implementacin y gestin. 4 Edicin.
Pearson Addison Wesley. 2005. Capitulo 4.

KORTH, HENRY F., SILBERSCHATZ, ABRAHAM,


Fundamentos de bases de datos 2da. Edicin,
McGraw-Hill/Interamericana de Espaa, Espaa,
1993

46

Potrebbero piacerti anche