bd-41

38
1 Marta Millan [email protected] www.eisc.univalle.edu.co/materias Lenguajes Lenguajes de de Consulta Consulta Fuentes http://www-db.stanford.edu/~ullman/fcdb.html Fundamentals of Database Systems, Elmasri y Navathe Database System Concepts,Silberschatz, Korth, Sudarshan

Upload: mario-cancino-gomez

Post on 06-Dec-2015

215 views

Category:

Documents


0 download

DESCRIPTION

CONSULTA

TRANSCRIPT

Page 1: BD-41

1

Marta [email protected]/materias

LenguajesLenguajes de de ConsultaConsultaFuentes http://www-db.stanford.edu/~ullman/fcdb.htmlFundamentals of Database Systems, Elmasri y NavatheDatabase System Concepts,Silberschatz, Korth, Sudarshan

Page 2: BD-41

LenguajesLenguajes

� Permiten recuperación de datos de la bd� Varios lenguajes para MR

� Lenguajes formales

� Basados en lógica y algebra� Facilita optimización

� Lenguajes� Acceso eficiente a bd� No cálculos complejos

� Declarativos vs. imperativos

Page 3: BD-41

LenguajesLenguajes de de ConsultaConsulta RelacionalRelacional

� Base implementación SQL� Algebra Relacional

� Imperativa� Útil representación planes de consulta

� Cálculo Relacional� Declarativa

� Enfasis QUÉ y no en CÓMO

Page 4: BD-41

LenguajesLenguajes de de ConsultaConsulta RelacionalRelacional

� Consultas aplicables a instancias de relación

� Producen instancias relación� Esquema relaciones entrada fijo� Esquemas basados en posición vs.

basados en nombres de atributos

Page 5: BD-41

ALGEBRA RELACIONAL

Page 6: BD-41

Algebra Algebra RelacionalRelacional

� Algebra� Operandos: relaciones o variables de relación

� Operadores: aplicados sobre relaciones� Cerrada

� Operaciones se pueden componer

Algebra usada como lenguaje de consulta para las relaciones

Page 7: BD-41

Algebra Algebra RelacionalRelacional: : CoreCore

�� SelecciSeleccióónn ( σ ) Selecciona un subconjunto de filas o tuplas de una relación (horizontal)

�� ProyecciProyeccióónn ( π ) Conserva algunas columnas de la relación (vertical)

�� ProductoProducto--cartesianocartesiano ( ×××× ) Permite combinar dos relaciones

�� DiferenciaDiferencia--conjuntosconjuntos ( — ) tuplas en r1 no en r2.

�� UnionUnion ( ∪ ) Tuplas en r1 o en r2

�� RenombramientoRenombramiento (ρ)

Page 8: BD-41

Algebra Algebra RelacionalRelacional

OperadoresOperadores UnariosUnarios�� SelecciSeleccióónn ( σ ) �� ProyecciProyeccióónn ( π )�� RenombramientoRenombramiento ( ρ )

OperacionesOperaciones de conjuntode conjunto�� ProductoProducto--cartesianocartesiano ( × ) �� DiferenciaDiferencia--conjuntosconjuntos ( — ) �� UnionUnion ( ∪ )�� IntersecciInterseccióónn ( ∩ )

Page 9: BD-41

Algebra Algebra RelacionalRelacional

OperadoresOperadores RelacionalesRelacionales BinariosBinarios�� JoinJoin ( )

�� DivisiDivisióónn

OtrasOtras OperacionesOperaciones�� OUTER JOIN, OUTER UNIONOUTER JOIN, OUTER UNION

�� FuncionesFunciones AgregadasAgregadas (SUM, COUNT, AVG, (SUM, COUNT, AVG, MIN, MAX)MIN, MAX)

Page 10: BD-41

SelecciSeleccióónn σσσσσσσσ

R1 := σC (R2)� C es una condición( predicado)

aplicable a attributes de R2� R1 contiene todas las tuplas de R2 que

satisfacen C� Esquemas R1 y R2 iguales

Page 11: BD-41

SelecciSeleccióónn σσσσσσσσσc(r) = {t | t ∈ r y c(t)}

c es una fórmula del cálculo proposicional formada por términos y operadores ∧ (and), ∨(or), ¬ (not)Cada término puede ser:

<atributo> op <atributo> o <constante>

donde op puede ser: =, ≠, >, ≥, <, ≤

Page 12: BD-41

SelecciSeleccióónnRelación r A B C D

α

α

β

β

α

β

β

β

1

5

12

23

7

7

3

10

σA=B ∧ D > 5 (r) A B C D

α

β

α

β

1

23

7

10

Page 13: BD-41

EjemploEjemplo

Relación Matrículaestudiante curso califLuis BD 3.5José MDI 4.7Maria BD 3.5Luis MDI 4.0

Tabulado-Luis= σestudiante=“Luis”(Matricula)

estudiante curso calif

Luis BD 3.5Luis MDI 4.0

Page 14: BD-41

SelecciSeleccióónn σσσσσσσσPor conmutatividad una secuencia(cascada) de operaciones SELECT se puede aplicar en cualquier orden

σ<cond1>(σ<cond2>(σ<cond3>(R)) = σ<cond2>(σ<cond3>(σ<cond1>( R)))

Page 15: BD-41

SelecciSeleccióónn σσσσσσσσUna secuencia de operacionesSELECT se puede reemplazar por la conjunción de condiciones

σ<cond1>(σ<cond2>(σ<cond3>(R)) = σ<cond1>AND< cond2>AND < cond3>(R)))

Page 16: BD-41

SelecciSeleccióónn σσσσσσσσ

El número de tuplas en el resultado de un SELECT es menor que (o igual a) el número de tuplas de la relación de entrada R

Page 17: BD-41

ProyecciProyeccióónn ππ

R1 := πL (R2)� L lista de atributos (A1,A2,...,An) del esquema

R2

� R1 está formada por tuplas de R2, con losatributos en el orden de la lista L

� tuplas duplicadas se eliminan si hay alguna

(conjuntos no tienen elementos duplicados)

Page 18: BD-41

ProyecciProyeccióónnRelación r A B C

α

α

β

β

10

20

30

40

1

1

1

2

A C

α

α

β

β

1

1

1

2

=

A C

α

β

β

1

1

2

∏A,C (r)

Page 19: BD-41

ProyecciProyeccióónn: : PropiedadesPropiedadesEl total de tuplas resultado de π<list>(R) essiempre menor o igual al total de tuplas de R

� Si la lista de atributos incluye una llave de R, el número de tuplas en el resultado de la proyección esigual al total de tuplas en R

� PROYECCIÓN no es commutativa

π <list1> (π <list2> (R)) = π <list1> (R) sobre <list2> conteniendo los atributos en <list1>

Page 20: BD-41

EjemploEjemplo

Relación Matriculaestudiante curso califLuis BD 3.5José MDI 4.7Maria BD 3.5Luis MDI 4.0

Estudiantes = ππ estudiante (Matricula)

estudiante

LuisJoséMaría

Page 21: BD-41

ProyecciProyeccióónn ExtendidaExtendida

La lista L, en πL, puede contenerexpresiones aplicables a los atributos:� Aritméticas como A+B → C� Ocurrencias duplicadas sobre el mismo

atributo

Page 22: BD-41

EjemploEjemplo

R = A B1 23 4

Π A+B → C,A (R) = C A

3 17 3

Page 23: BD-41

ProductoProducto CartesianoCartesiano

R3 := R1 ×××× R2� Cada tupla t1 de R1 se combina con cada tupla t2 de

R2� La concatenación 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

Page 24: BD-41

EjemploEjemplo R3 = R1 R3 = R1 ΧΧ R2R2

R1 A B1 23 4

R2 B C5 67 89 10

R3 A R1.B R2.B C1 2 5 61 2 7 81 2 9 103 4 5 63 4 7 83 4 9 10

Page 25: BD-41

ProductoProducto CartesianoCartesiano

Relaciones

r x s A B

ααααββββ

11112222

C D

αββγαββγ

1010201010102010

E

aabbaabb

A B

α

β

1

2

C D

αββγ

10102010

E

aabbr

s

Page 26: BD-41

ProductoProducto CartesianoCartesiano

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 usarrenombramiento

Page 27: BD-41

RenombramientoRenombramiento ρρρρ

� Operador ρ produce un nuevo esquemade relación

� R1 := ρR1(A1,…,An)(R2) construye relaciónR1 con atributos A1,…, An y las mismastuplas de R2

� Notación simplificadaR1(A1,…,An) := R2

Page 28: BD-41

RenombramientoRenombramiento

� Permite nombrar atributos o relaciones� Formas de renombramiento

� ρS (B1, B2, …, Bn )(R) cambia

�Por S el nombre de la relación� por B1, B1, …..Bn los nombres de los

aributos o columnas

Page 29: BD-41

RenombramientoRenombramiento� Formas de renombramiento

� ρS(R) cambia�Cambia únicamente por S el nombre de

la relación

� ρ(B1, B2, …, Bn )(R) • Cambia unicamente los nombres de las

columnas o atributos por B1, B1, …..Bn

Page 30: BD-41

UniUnióónn ∪∪∪∪∪∪∪∪�Operador binario r ∪ s

r ∪ s = {t | t ∈ r ∨ t ∈ s}� r, s deben tener la misma aridad

� Devuelve tuplas que están en r, s ó ambas� Tuplas duplicadas se eliminan

� Dominios de atributos compatibles (mismotipo de valores columnas correspondientes)

� Relaciones UNION compatibles

Page 31: BD-41

RelacionesRelaciones UniUnióónn CompatiblesCompatiblesDos relaciones r y r’con esquemasR(Ai:Di), R’(Ai:Di) y cardinalidades m y m’, respectivamente, son compatibles cuando ambas están definidas sobre el mismo dominio.

∀Ai ∃ A’jdom(Ai)=dom(A’j)∀ A’i ∃ Ajdom(A’i)=dom(Aj)

Page 32: BD-41

UniUnióónn ∪∪∪∪∪∪∪∪Relaciones

r ∪∪∪∪ s

r

A B

α

α

β

1

2

1

A B

α

β

2

3

s

A B

α

α

β

β

1

2

1

3

Page 33: BD-41

ObservaciObservacióónn

Cuando los esquemas R y R’no se corresponden (el nombre de losatributos son diferentes en las

relaciones, o están en distinto orden) se sugiere renombrar los atributos

en la relación resultante

Page 34: BD-41

EjemploEjemplo

Calcular la unión de lassiguientes relaciones

Julia Muñoz3216789

Rosa Toro3455666

María Ruíz3232330

Nombre-MCedula-M

Jose Cruz6453446

Luis Lara6756989

Cedula-HNombre-H

M

H

Page 35: BD-41

Diferencia −−−−Relaciones

r – s

A B

α

α

β

1

2

1

A B

α

β

2

3

rs

A B

α

β

1

1

Page 36: BD-41

DiferenciaDiferenciar – 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

Page 37: BD-41

ComposiciComposicióónn de de OperacionesOperaciones

� Expresiones con múltiples operadores

� σA=C(r x s)A B

ααααββββ

11112222

C D

αββγαββγ

1010201010102010

E

aabbaabb

A B C D E

αββ

122

αββ

101020

aab

r x s

σA=C(r x s)

Page 38: BD-41

DefiniciDefinicióónn FormalFormalSean 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