Title: LENGUAJES DE BASES DE DATOS
1LENGUAJES DE BASES DE DATOS
ÁLGEBRA RELACIONAL Parte I
Gloria Lucía Giraldo Gómez Universidad Nacional
de Colombia glgiraldog_at_unalmed.edu.co Bloque
anexo al M8 Oficina 313
2Álgebra Relacional
- Permite operar con el Modelo Relacional
- Conjunto de operadores que toman relaciones como
sus operandos y regresan una relación como
resultado ? El álgebra es cerrada - Es un formalismo que permite solicitar
información a las Bases de Datos - Es un lenguaje puro (en general no se implementa
directamente) - Propuesta por Codd
- Se usa para la traducción de una consulta SQL y
para optimización de consultas
3Álgebra Relacional
- 8 operadores iniciales clasificados en 2 grupos
- Tradicionales de la teoría de conjuntos Unión,
Intersección, Diferencia y Producto Cartesiano - Especiales Restricción (o Selección),
Proyección, Reunión (join) y División - Operadores adicionales Renombrado, Agrupamiento
4Álgebra Relacional
REPASO!! Cuál es el esquema de la relación
ADMINISTRADOR? (Código,Nombre,Edad)
Sean las relaciones
ADMINISTRADOR
PRODUCTOR
5Restricción o Selección (s)
scondición(R)
- El argumento es una relación y una condición
- Produce una relación R1 que contiene todas las
tuplas de R que cumplen una condición específica - La condición se construye mediante operadores de
comparación (,lt,gt etc.) y booleanos (AND, OR
etc.) - El resultado es una nueva relación cuyo esquema
es idéntico al esquema de R
6Restricción o Selección (s)
- sEdad gt 25 (Administrador)
- sCódigo lt 5 (Productor)
7Proyección (p)
p Lista Atributos (R)
- Toma como argumento una relación R y una lista de
atributos - Se utiliza para extraer atributos (columnas) de
una relación R - El resultado es una nueva relación R1 cuyo
esquema corresponde a la lista de atributos
proyectados - En R1 se eliminan las tuplas duplicadas
- Se puede extraer más de una columna a la vez
8Proyección (p)
- pCódigo,Edad(Administrador)
pCódigo,Nombre(Productor)
9Proyección (p)
Suponga una relación W así
W
pEdad(W)
El resultado será
se eliminan tuplas repetidas !!
10Producto Cartesiano R1 X R2
- Toma como argumentos dos relaciones R1 y R2
- Da como resultado una relación R3 cuyo esquema
consta tanto de los atributos de R1 como de los
atributos de R2 - Los esquemas de R1 y R2 deben ser disjuntos, es
decir los esquemas de R1 y R2 no pueden tener
nombres de atributos en común por qué? - Se debe usar un alias (mediante el operador r) si
los esquemas no son disjuntos - R3 contiene todas las tuplas resultantes de la
concatenación de cada tupla de R1 con cada una de
las tuplas de R2
Renombrado de atributos
11Ejemplo
El renombrado ? de la relation R(A,B,C,D) en
R(A,K,L,D) se denota ? B?K,C?L (R)
Administrador X rCódigo?Cod,Nombre?Nom,Edad?Edad1
(Productor)
El renombrado es puramente sintáctico !!
12Unión R1 È R2
- Toma como argumentos dos relaciones R1 y R2 con
esquemas idénticos - Retorna una relación R3 con el mismo esquema de
R1 y R2 que contiene todas la tuplas de R1 y
todas las de R2, eliminando tuplas repetidas
R1
R2
13Ejemplo
- Administrador È Productor
14Intersección R1 ? R2
R1
- Toma como argumentos dos relaciones R1 y R2 con
esquemas idénticos - Retorna una relación R3 con el mismo esquema de
R1 y R2 que contiene todas las tuplas que
aparecen tanto en R1 como en R2
R2
15Ejemplo
- Administrador Ç Productor
16Diferencia R1 - R2
R1
- Toma como argumento dos relaciones R1 y R2 con
esquemas idénticos - Retorna una relación R3 con el mismo esquema de
R1 y R2 que contiene todas las tuplas que
aparecen en R1 pero no en R2
R2
17Ejemplo
- Administrador - Productor
- Productor - Administrador
18TAREA Observa y Verifica !!
- La unión, intersección y producto cartesiano son
conmutativas y asociativas - La diferencia no es conmutativa ni asociativa
- La intersección no es primitiva ya que puede ser
expresada mediante la diferencia
19Reunión (JOIN)
- NATURAL JOIN R1 ? R2
- Si R1(A,B) y R2(B,C) el resultado de R1 ? R2
- es una relación R3 con esquema R3(A,B,C) donde
cada tupla de R1 se concatena con cada tupla de
R2 SIEMPRE Y CUANDO tengan el mismo valor del
atributo en común (B). - El atributo B puede ser compuesto.
20Ejemplo
Empleado
Departamento
Nota En este ejemplo, el campo Depto en Empleado
NO ES CF con respecto a la tabla Departamento
Atributo de Join
21Ejemplo
22SEMI JOIN ( ?)
- Idéntico al NATURAL JOIN pero la relación
resultante tiene el esquema de la relación
izquierda Utilidad?
23THETA JOIN (R1 QCondición R2)
- El operador de comparación usado en la condición
NO es el sino alguno de los siguientes gt,
lt, gt, lt, ? - Es equivalente a sCondición (R1 X R2)
24Ejemplo
- Empleado Q Depto gt Dep r Depto?Dep
(Departamento)
25División R1 R2
- Def 1 Sean las relaciones R1(A,B) y R2(B). El
resultado de R1 R2 es una relación R3 cuyo
esquema esta compuesto por el atributo A, donde
para todo valor de B en R2 existe una pareja en
R1 de A con ese valor. - Def 2
- R ? S t t ? ?K (R) y t x s ? r con
- K esquema de R esquema de S
Tuplas de S
Tuplas de R
26Ejemplo
En este ejemplo la relación empleado no está
normalizada, observe que la CP es (Código, Depto)
y Código ? Nombre, Edad
Departamento
Empleado (pDepto(Departamento))
27Ademas ..
- Se permite también el siguiente operador
- Asignación VbleRelacion ? Relación
- Otra forma de renombrar atributos y el nombre de
la relación - r NuevoNombreRelación(Atributos Renombrados) (
p(Lista Atributos)(R))
28Agrupar con funciones
- G Agrupar con funciones Sum(), Avg(), Max(),
Min(), Count() -
SINTAXIS
Atributos de Agrupamiento G Funciones de Grupo (R)
Emp
Ej. Sea
Qué hace la siguiente consulta? Depto G
Count(Código) AS conteo (Emp)
Renombrado de la función de Grupo
29Extender
- Extend R ADD expresión AS nuevo_atributo
Emp
Ej Extend Emp ADD Sal2 AS Saldobl
30Ejemplo
- Se genera una relación como la original pero con
un atributo saldobl adicional
Qué hace la siguiente consulta? Ej Extend Emp
ADD 1 AS num, Hola AS mensaje