Download clase-6-algebra-relacional

Document related concepts

Álgebra relacional wikipedia , lookup

Cálculo relacional wikipedia , lookup

Modelo relacional wikipedia , lookup

Cálculo relacional basado en tuplas wikipedia , lookup

Optimización de consultas wikipedia , lookup

Transcript
E
S
C
U
E
L
A
D
E
C
I
E
N
C
I
A
S
E
M
P
R
E
S
R
I
A
L
E
S
Algebra Relacional
Paul Leger
http://pleger.cl
Consultando a una BD
• Aparte de re-escribir, una base de datos son para hacer
consultas (es decir lecturas)
• Los motores de base de datos usan diferentes lenguajes de
programación para comunicarse para permitir consultas
• La mayoría de estos lenguajes no son Turing complete, y son
específicos al dominios de la base de datos. En otras palabras,
se dicen que son Domain Specific Languages (DSLs)
no Turing complete
Algebra Relacional
• Es un lenguaje teórico para realizar consultas a una
base de datos
• SQL, el cual es un lenguaje concreto para base de
datos, tienes sus bases en algebra relacional
• Para realizar investigación en consultas a una base de
datos, se usa algebra relacional
Elementos de Algebra Relacional
• Las tablas son conocidas como relaciones
• Los registros son conocidos como tuplas
• Ejemplos
R(r1,r2,r3,…, rn) y T(r1,s2,s3)
Suponga estas dos relaciones:
Persona y Ciudad
Rut
Nombre
Ciudad
12312312-3
Paul
Coquimbo
15123561-3
Renato
Peor es nada
12354345-2
Mariana
Fucking
Ciudad
Coquimbo
Chanaral
La Serena
Peor es nada
Chigualoco
Luego veremos más
letras!!
Operaciones en AR
• Proyección (π): Proyecta una base de datos.
Por ejemplo
Rut
• π _rut_ (Persona) => R1
12312312-3
15123561-3
12354345-2
• π _nombre,ciudad_ (Persona) => R2
Nombre
Ciudad
Paul
Coquimbo
Renato
Peor es nada
Mariana
Fucking
Renombrar
• Renombrar (ρ): Renombrar una relación
• ρ_Alumno_(Persona) => Alumno
• ρ_rut,nombre,hogar (Alumno)_(Persona) => Alumno(rut,nombre,hogar)
Selección
• Selección (σ): Selecciona un conjunto de
tuplas dada una condición (o conjunto de
condiciones)
• σ_nombre=«Paul»_(Persona) =>
Rut
Nombre
Ciudad
12312312-3
Paul
Coquimbo
Producto Cartesiano: «x»
• Al igual que en la matemáticas, el producto cartesiano cruza
todas las tuplas de una relación R1 con todas las tuplas de una
relación R2
Rut
Nombre
R1.Ciudad
R2.Ciudad
12312312-3
Paul
Coquimbo
Coquimbo
12312312-3
Paul
Coquimbo
Chanaral
12312312-3
Paul
Coquimbo
La Serena
12312312-3
Paul
Coquimbo
Peor es nada
12312312-3
Paul
Coquimbo
Fucking
15123561-3
Renato
Peor es nada
Coquimbo
…
…
…
…
Unión (U)
• Unión: Une dos relaciones, donde los campos
deberían tener los mismos nombres y
dominios
• RT = Persona U Empleado
• #(RT) <= #(Persona) + #(Empleado)
– ¿Por qué la cardinalidad es <=?
Intersección (∩)
• Intersección(∩) : Intersecta dos relaciones,
donde los campos deberían tener los mismos
nombres y dominios
• RT = Persona ∩ Empleado
• RT contiene las personas que son empleados
también
Diferencia (-)
• Diferencia(-) : R=R1-R2, donde R contiene
todas las tuplas de R1 que no están en R2
• Nuevos = ActualesEmpleados - AntiguosEmpleados
Resumen
1.
2.
3.
4.
5.
6.
7.
Proyección (π)
Renombrar (ρ)
Selección (σ)
Producto Cartesiano (x)
Unión (U)
Intersección (∩)
Diferencia (-)
Ejercicios
• Dada las relaciones, resuelva
a) σ_T1.P = T2.A_(T1x T2)
b) σ_T1.Q = T2.B_(T1x T2)
c) T1 U T2
d) T1 U T1
e) σ_T1.P = T1.P_(T1x T1)
f) σ_T1.P = T2.A ^ T1.R= T2.C_(T1x T2)
g) T2-T3
h) T3 – T2
i) π _A,B_(T2) – T3
A
B
C
10
b
6
10
b
5
T3
E
S
C
U
E
L
A
D
E
C
I
E
N
C
I
A
S
E
M
P
R
E
S
R
I
A
L
E
S
Consultas