bd-41
DESCRIPTION
CONSULTATRANSCRIPT
![Page 1: BD-41](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/5.jpg)
ALGEBRA RELACIONAL
![Page 6: BD-41](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/22.jpg)
EjemploEjemplo
R = A B1 23 4
Π A+B → C,A (R) = C A
3 17 3
![Page 23: BD-41](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/35.jpg)
Diferencia −−−−Relaciones
r – s
A B
α
α
β
1
2
1
A B
α
β
2
3
rs
A B
α
β
1
1
![Page 36: BD-41](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052603/563db8b4550346aa9a962c26/html5/thumbnails/38.jpg)
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