Sunteți pe pagina 1din 32

1

Instituto TECNOLOGICO SUPERIOR DE CALKINI EN


EL ESTADO DE CAMPECHE

FUNDAMENTOS DE BASE DE DATOS



INTEGRANTES:

JOSE RICARDO KANTUN COOL 2547
JAIRO MISAEL uitz haas 2032
LUIS ALBERTO pech cocon 1987
GILBERTO IVAN CAAMAL DZUL 2045


Lenguajes de consulta
Lenguajes de consulta: utilizados
para operar con la BD.

Procedurales: (instrucciones para
realizar secuencia de operaciones) (qu y
cmo)


No procedurales: (solicita directamente
la informacin deseada) (qu).

2
Lenguajes de consulta
lgebra Relacional
Es un conjunto de operaciones que describen paso
a paso como computar una respuesta sobre las
relaciones


Operaciones fundamentales

Unitarias

Seleccin
Proyeccin
Renombre
3
Binarias

Producto cartesiano
Unin
diferencia
Lenguajes de consulta
Supongamos la tabla
Prestamo = (nombre_sucursal, monto, direccin)
Seleccin: Operador o
Selecciona tuplas que satisfacen un predicado dado.
La condicin puede tener conectivos lgicos (And, Or,
Not) y operadores de comparacin





4
Ej1: prestamos otorgados por la sucursal
XXX.

onombre-sucursal = XXX (prestamo)

Ej2: prestamos otorgados por la sucursal XXX
y con monto superior a $1200

o nombre-sucursal = XXX and monto > 1200
(prestamo)

UNLP - Facultad de Informtica IBD - CLASE 14 5
Lenguajes de consulta
Proyeccin: Operador t
Devuelve la relacin argumento con
columnas omitidas. Si quedan tuplas
repetidas se excluyen.

omitir tr. Dejar de hacer [una cosa].
tr.-prnl. Pasar en silencio [una cosa].

Dejar a una persona o cosa fuera de algn grupo
"En la invitacin no excluyas a ninguno de los amigos.


6
Ej3: nombres de sucursal que figuran
en prstamo
tnombre-sucursal (prestamo)

Ej4: sucursal cuyo monto sea superior
a $10000.

tnombre-sucursal (omonto > 10000
(prestamo))

7
Lenguajes de consulta
Producto Cartesiano: Operador
x

Conecta dos entidades de acuerdo a la
definicin matemtica de la operacin.

Tabla Cliente = (nombre_cte, direccin,
tel) Opera = (nombre_cte,
nombre_banquero, monto)


8
Ej5: cada cliente con sus datos personales y
banquero que opera.
Cliente x Opera
o
cliente.nombre-cte= opera.nombre-cte (Cliente x Opera)

Notar que se utiliza el identificador de tabla porque los campos
se llaman iguales.
Ej6: todos los clientes y su direccin, que
operan con el banquero YYY.
t
cliente.nombre-cte, direccin
(o
nombre-banquero=
YYY(ocliente.nombre-cte= opera.nombre-cte(Cliente x Opera)))
9
Lenguajes de consulta
Renombrar: Operacin
Permite utilizar la misma tabla en un
producto cartesiano (por ej.).

Tabla Cliente = (nombre_cte,
direccin, tel)

Ej7: clientes que viven en la misma
direccin que el cliente ZZZ
10
Ejercicio siete:
Subconsulta que permite obtener la direccin de
ZZZ, con esto debo hacer un producto con cliente
nuevamente
t
direccin
( o
nombre-cte = ZZZ
(Cliente))
Renombro cliente para hacer la operacin
t
cliente2.nombre
(
o
cliente2.direccin = cliente.direccin
[ t
direccin
{o
nombre-cte = ZZZ
(Cliente)} x
cliente2

(cliente) ]
)
11
Lenguajes de consulta
Unin: Operacin
Equivalente a la unin matemtica.
Las instancias repetidas se eliminan
automticamente.
Las dos tablas deben ser de unin
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)

12
Ej8: clientes que tengan cuenta
corriente o caja ahorro en la sucursal
xxx.

CTACTE=(nomcli, sucursal)
CAHORRO=(nomcli, sucursal)
(t
nomcli
(o
sucursal=XXX
(ctacte)))
(t
nomcli
(o
sucursal=XXX
(cahorro)))

13
Lenguajes de consulta
Diferencia: Operacin

Equivalente a diferencia de Conjuntos.
Las dos tablas deben ser de unin
compatibles
14
Ej9: Clientes de la sucursal xxx
que tiene ctacte y no tienen caja
ahorro

CTACTE=(nomcli, sucursal)
CAHORRO=(nomcli, sucursal)
(t
nomcli
(o
sucursal=XXX
(ctacte))) -
(t
nomcli
(o
sucursal=XXX
(cahorro)))


15
Lenguajes de consulta
Definicin de lgebra Relacional:

Una expresin bsica en AR consta de
Una relacin de una Base de Datos
Relacin constante

Una expresin general se construye a partir de sub-
expresiones (E1,E2,...En)

Expresiones:
E1 E2
E1 - E2
E1 x E2
o
p
(E1) P predicado con atributos en E1
t
s
(E1) S lista de atributos de E1

x
(E1) X nuevo nombre de E1
16
Lenguajes de consulta
lgebra Relacional

Operaciones Adicionales: no aaden
potencia, solo simplifican consultas comunes

Interseccin
Producto Natural
Divisin
Asignacin
17
Lenguajes de consulta
Interseccin: Operacin

Equivalente a la Interseccin matemtica.

Se puede definir en funcion de la Unin y
Diferencia

18
Ej10: Clientes de la sucursal xxx
que tienen tiene ctacte y tienen
caja ahorro
CTACTE=(nomcli, sucursal)
CAHORRO=(nomcli, sucursal)

(t
nomcli
(o
sucursal=XXX
(ctacte)))
(t
nomcli
(o
sucursal=XXX
(cahorro)))

t
nomcli
( o
sucursal=XXX
{ [(ctacte)
(cahorro)] [ ((ctacte) - (cahorro))
((cahorro) - (ctacte)) ] } )
19
Lenguajes de consulta
Producto Natural: Operacin |x|
Realiza el producto cartesiano con una
seleccin de tuplas con sentido eliminando
las columnas (atributos) repetidas.
Combinacion de Seleccin 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 comn -> R x S= R|x|S
R|x|
(cond)

S = o
(cond)
( R|x|S )

20
21
Lenguajes de consulta
Producto Natural
Clientes=(nomcli,direccion,tel)
Prestamos=(sucursal,nomcli)
Ej11: clientes con prstamos en un banco
t
nomcli....
(prestamos |x| clientes)
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.
22
Lenguajes de consulta
Divisin: Operacin %
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)
23
Lenguajes de consulta
Asignacin: Operacin :
Expresin que asigna a una variable temporal el
resultado de una operacin.
Temp : Operacin del lgebra
Ej10: Clientes de la sucursal xxx que tienen tiene
ctacte y tienen caja ahorro
CTACTE=(nomcli, sucursal)
CAHORRO=(nomcli, sucursal)
(t
nomcli
(o
sucursal=XXX
(ctacte))) (t
nomcli
(o
sucursal=XXX
(cahorro)))

t
nomcli
( o
sucursal=XXX
{ [(ctacte) (cahorro)] [ ((ctacte) -
(cahorro)) ((cahorro) - (ctacte)) ] } )

A : (ctacte) (cahorro), D1 : (ctacte) - (cahorro),
D2 : (cahorro)- (ctacte)
t
nomcli
( o
sucursal=XXX
{ A [ D1 D2 ] } )
24
Lenguajes de consulta
Clculo Relacional de Tuplas:
No procedural, describe informacin deseada sin dar un
proceso especfico para obtener esa informacin.

Utiliza el clculo de predicados para la formulacin de
consultas

Expresin de consultas
{ t / P(t) }
Conjunto de tuplas tal que P(Predicado) es verdadero en t.
Ejemplos:

Ej12:clientes con prstamos mayor que 1200$
t
nomcli.
(o
sucursal=XXX
( prestamos |x| clientes ))

25
Lenguajes de consulta
Operacin de proyeccin
{- t / se R / Q(s)}

Ej13: solo el nombre del cliente.(del ej
12)
t
nomcli.
(o
sucursal=XXX
( prestamos |x|
clientes ))

Variable de tupla t se define solo para los
atributos deseados

26
Lenguajes de consulta
Operando :

t e 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
{t / u e sucursal (u[ciudadsucursal]=La
Plata) - s e deposito
(t[nombre]=s[nombre] ^ s[sucursal] =
u[sucursal]) }

27
Lenguajes de consulta
Definicin formal del Clculo de tuplas
Una expresin del Clculo de tuplas { t / P(t)
}, tiene:
P frmula donde aparecen varias variables de
tupla
T e (variable libre)
- s e (variable lmite)
Las frmulas se compone de tomos:
28
Lenguajes de consulta
s e r; s variable de tupla y r relacin
s[x] O u[y], s, u variables de tupla; x, y atributos
sobre s y u respectivamente; O operador (>, <, >=,
=, <>, etc)
s[x] O c; c constante.
Las frmulas se construyen a partir de
tomos:
Un tomo es una frmula
P1 frmula ~ P1 frmula
P1, P2 frmula P1 v P2, P1^ P2, P1 P2 frmulas
P1(s) frmula que contiene variable tupla libre s
s e r(P1(s)) y - s e r(P1(s)) frmulas
29
Lenguajes de consulta
Seguridad de expresiones
{ t / ~ ( t e prestamo) } infinito (todas las tuplas
que no estn definidas en la tabla, pero que se
pueden formar a partir del dominio de los atributos=

Clculo relacional de dominios
Se utilizan variables de dominio que toman
valores del dominio de un atributo (en lugar
de tuplas completas)
Definicin formal:
30
Lenguajes de consulta
Seguridad de expresiones: similar a CRT
Operaciones de Updates: solo para AR
Agregar tuplas
r : r E (r relacin y E nueva tupla
Eliminar tuplas
r : r E
Actulizacin de datos
o
A : E
( r )
Ej: o
saldo : saldo * 1.05
( depsito )
31
Lenguajes de consulta
Expresin { <x
1
,,x
n
> / P <x
1
,,x
n
> }; <x
1
,,x
n
>
variables de dominio y P frmula
tomos definidos como el CRT
Frmulas definidas como el CRT
Dada la Tabla (nombre_sucursal, nro_prestamo,
nombre_cte, cantidad_prestada)
Ej17: todos los datos simpre que se presten ms de 1200$
{ <a,b,c,d> / <a,b,c,d> e tabla ^ d > 1200 }
Ej18: el cliente con prstamo mayor de 1200$
{ <a> / - b,c,d <a,b,c,d> e tabla ^ d > 1200}
Ej19: cliente y monto del prstamo de aquellos clientes de
La Plata
{ <c,d> / - b, l ( <b,l,c,a> e tabla ^ b=La Plata) ^ - y
(<c,y,d> e cliente) }


32

S-ar putea să vă placă și