Вы находитесь на странице: 1из 38

Lenguajes de Consulta

Fuentes http://www-db.stanford.edu/~ullman/fcdb.html
Fundamentals of Database Systems, Elmasri y Navathe
Database System Concepts,Silberschatz, Korth, Sudarshan

Marta Millan
millan@eisc.univalle.edu.co
www.eisc.univalle.edu.co/materias
1

Lenguajes
Permiten recuperacin de datos de la bd
 Varios lenguajes para MR


 Lenguajes formales
 Basados en lgica y algebra
 Facilita optimizacin


Lenguajes
 Acceso eficiente a bd
 No clculos complejos
 Declarativos vs. imperativos

Lenguajes de Consulta Relacional


Base implementacin SQL
 Algebra Relacional


 Imperativa
 til representacin planes de consulta


Clculo Relacional
 Declarativa
 Enfasis QU y no en CMO

Lenguajes de Consulta Relacional


Consultas aplicables a instancias de
relacin
 Producen instancias relacin
 Esquema relaciones entrada fijo
 Esquemas basados en posicin vs.
basados en nombres de atributos


ALGEBRA RELACIONAL

Algebra Relacional


Algebra





Operandos: relaciones o variables de relacin


Operadores: aplicados sobre relaciones
Cerrada
Operaciones se pueden componer

Algebra usada como lenguaje de


consulta para las relaciones

Algebra Relacional: Core

Seleccin ( ) Selecciona un subconjunto de


filas o tuplas de una relacin (horizontal)
Proyeccin ( ) Conserva algunas columnas de
la relacin (vertical)
Producto-cartesiano ( ) Permite combinar dos
relaciones
Diferencia-conjuntos ( ) tuplas en r1 no en r2.
Union ( ) Tuplas en r1 o en r2

Renombramiento ()

Algebra Relacional
Operadores Unarios
 Seleccin ( )
 Proyeccin ( )
 Renombramiento ( )

Operaciones de conjunto





Producto-cartesiano ( )
Diferencia-conjuntos ( )
Union ( )
Interseccin ( )

Algebra Relacional
Operadores Relacionales Binarios
 Join ( )
 Divisin

Otras Operaciones
 OUTER JOIN, OUTER UNION
 Funciones Agregadas (SUM, COUNT, AVG,
MIN, MAX)

Seleccin
R1 := C (R2)
 C es una condicin( predicado)
aplicable a attributes de R2
 R1 contiene todas las tuplas de R2 que
satisfacen C
 Esquemas R1 y R2 iguales

Seleccin
c(r) = {t | t r y c(t)}
c es una frmula del clculo proposicional
formada por trminos y operadores (and),
(or), (not)
Cada trmino puede ser:
<atributo> op <atributo> o <constante>
donde op puede ser: =, , >, , <,

Seleccin
Relacin r

12

23 10

A=B D > 5 (r)

23 10

Ejemplo
Relacin Matrcula
estudiante
Luis
Jos
Maria
Luis
Tabulado-Luis=
estudiante

Luis
Luis

curso
BD
MDI
BD
MDI

calif
3.5
4.7
3.5
4.0

estudiante=Luis(Matricula)
curso

calif

BD
MDI

3.5
4.0

Seleccin
Por conmutatividad una secuencia
(cascada) de operaciones SELECT se
puede aplicar en cualquier orden
<cond1>(<cond2>(<cond3>(R)) =
<cond2>(<cond3>(<cond1>( R)))

Seleccin
Una secuencia de operaciones
SELECT se puede reemplazar por la
conjuncin de condiciones
<cond1>(<cond2>(<cond3>(R)) =
<cond1>AND< cond2>AND < cond3>(R)))

Seleccin
El nmero de tuplas en el resultado de
un SELECT es menor que (o igual a) el
nmero de tuplas de la relacin de
entrada R

Proyeccin
R1 := L (R2)
 L lista de atributos (A1,A2,...,An) del esquema
R2
 R1 est formada por tuplas de R2, con los
atributos en el orden de la lista L
 tuplas duplicadas se eliminan si hay alguna
(conjuntos no tienen elementos duplicados)

Proyeccin
Relacin r

A,C (r)

10

20

30

40

Proyeccin: Propiedades
El total de tuplas resultado de <list>(R) es
siempre menor o igual al total de tuplas de R
 Si la lista de atributos incluye una llave de R, el
nmero de tuplas en el resultado de la proyeccin es
igual al total de tuplas en R
 PROYECCIN no es commutativa

<list1> ( <list2> (R)) = <list1> (R) sobre <list2>


conteniendo los atributos en <list1>

Ejemplo
Relacin Matricula
estudiante
Luis
Jos
Maria
Luis

curso
BD
MDI
BD
MDI

calif
3.5
4.7
3.5
4.0

Estudiantes = estudiante (Matricula)


estudiante

Luis
Jos
Mara

Proyeccin Extendida
La lista L, en L, puede contener
expresiones aplicables a los atributos:
Aritmticas como A+B C
 Ocurrencias duplicadas sobre el mismo
atributo


Ejemplo
R=

A+B C,A

A
1
3

B
2
4

(R) = C
3
7

A
1
3

Producto Cartesiano
R3 := R1 R2
 Cada tupla t1 de R1 se combina con cada tupla t2 de
R2
 La concatenacin t1t2 es una tupla de R3
 El esquema de R3 se forma con los atributos de R1 y
de R2 en el orden en que aparecen
 Si el mismo atributo A aparece en ambas relaciones
R1 y R2, usar R1.A y R2.A

Ejemplo R3 = R1 R2
R1

A
1
3

B
2
4

R2

B
5
7
9

C
6
8
10

R3

A
1
1
1
3
3
3

R1.B
2
2
2
4
4
4

R2.B
5
7
9
5
7
9

C
6
8
10
6
8
10

Producto Cartesiano
Relaciones

10
10
20
10

a
a
b
b
s

rxs

1
1
1
1
2
2
2
2

10
10
20
10
10
10
20
10

a
a
b
b
a
a
b
b

Producto Cartesiano
r x s = {t q | t r q s}


Se asume que los atributos en r(R) y


s(S) son disjuntos (R S = )
Si (R S ) necesidad de usar
renombramiento

Renombramiento
Operador produce un nuevo esquema
de relacin
 R1 := R1(A1,,An)(R2) construye relacin
R1 con atributos A1,, An y las mismas
tuplas de R2
 Notacin simplificada


R1(A1,,An) := R2

Renombramiento
Permite nombrar atributos o relaciones
 Formas de renombramiento
 S (B1, B2, , Bn )(R) cambia


 Por S el nombre de la relacin


 por B1, B1, ..Bn los nombres de los
aributos o columnas

Renombramiento


Formas de renombramiento
 S(R) cambia
 Cambia nicamente por S el nombre de
la relacin
 (B1, B2, , Bn )(R)
Cambia unicamente los nombres de las
columnas o atributos por B1, B1, ..Bn

Unin
binario r s
r s = {t | t r t s}
 r, s deben tener la misma aridad

 Operador

 Devuelve tuplas que estn en r, s ambas


 Tuplas duplicadas se eliminan
 Dominios de atributos compatibles (mismo
tipo de valores columnas correspondientes)
 Relaciones UNION compatibles

Relaciones Unin Compatibles


Dos relaciones r y rcon esquemas
R(Ai:Di), R(Ai:Di) y cardinalidades m y m,
respectivamente, son compatibles
cuando ambas estn definidas sobre el
mismo dominio.
Ai Ajdom(Ai)=dom(Aj)
Ai Ajdom(Ai)=dom(Aj)

Unin
Relaciones

r 1

rs

Observacin
Cuando los esquemas R y Rno se
corresponden (el nombre de los
atributos son diferentes en las
relaciones, o estn en distinto orden)
se sugiere renombrar los atributos
en la relacin resultante

Ejemplo
M

Calcular la unin de las


siguientes relaciones
H
Nombre-H

Cedula-H

6756989

Luis Lara

6453446

Jose Cruz

Cedula-M

Nombre-M

3232330

Mara Ruz

3455666

Rosa Toro

3216789

Julia Muoz

Diferencia
Relaciones

r s

Diferencia
r s = {t | t r t s}


Relaciones UNION compatibles


 r y s deben tener la misma aridad
 Dominios de atributos de r y s
deben ser compatibles

Composicin de Operaciones



Expresiones con mltiples operadores


A=C(r x s)
A B C D
rxs

A=C(r x s)
A

1
2
2

10
10
20

a
a
b

1
1
1
1
2
2
2
2

10
10
20
10
10
10
20
10

E
a
a
b
b
a
a
b
b

Definicin Formal
Sean E1 y E2 dos expresiones relacionales
Las siguientes son expresiones del lgebra
 E1 E2
 E1 E2
 E1 x E2
 p (E1), p es un predicado sobre los atributos en E1
 s(E1), S lista de atributos en E1

 x (E1), x es un nombre nuevo para el resultado de E1

Вам также может понравиться