algebra relacional i-bdi

31
13/03/22 Curso Bases de Datos 1 CONCEPTOS Y DISEÑOS DE BASES DE DATOS Gustavo Cáceres Castellanos Universidad Pedagógica y Tecnológica de Colombia [email protected] Especialización en Bases de Datos ÁLGEBRA RELACIONAL

Upload: deisy-montoya

Post on 26-Jul-2015

210 views

Category:

Documents


2 download

TRANSCRIPT

14/04/23 Curso Bases de Datos 1

CONCEPTOS Y DISEÑOS DE BASES DE DATOS

Gustavo Cáceres CastellanosUniversidad Pedagógica y Tecnológica de [email protected]ón en Bases de Datos

ÁLGEBRA RELACIONAL

14/04/23 Curso Bases de Datos 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

14/04/23 Curso Bases de Datos 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

14/04/23 Curso Concepto y Diseño de Bases de Datos

4

Álgebra Relacional

Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21

Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 30

10 Juan Martínez 19

ADMINISTRADOR

PRODUCTOR

Sean las relaciones:

¡¡REPASO!!¿Cuál es el esquema de

la relación ADMINISTRADOR?

(Código,Nombre,Edad)

14/04/23 Curso Bases de Datos 5

Restricción o Selección ()

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 (=,<,> etc.) y booleanos (AND, OR etc.)

El resultado es una nueva relación cuyo esquema es idéntico al esquema de R

condición(R)

14/04/23 Curso Bases de Datos 6

Restricción o Selección () Edad >= 25(Administrador):

Código < 5 (Productor):

Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21

Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 25

Código Nombre Edad2 Enrique Muñoz 25

Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 30

10 Juan Martínez 19

14/04/23 Curso Bases de Datos 7

Proyección ()

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

Lista Atributos (R)

14/04/23 Curso Bases de Datos 8

Proyección ()

Código,Edad(Administrador)Código Edad

1 332 253 21

Código Nombre2 Enrique Muñoz8 Jorge Arias

10 Juan Martínez

Código,Nombre(Productor)

Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21

Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 30

10 Juan Martínez 19

14/04/23 Curso Bases de Datos 9

Proyección ()

Código Edad1 302 253 30

Suponga una relación W así:

Edad(W)

W

Edad

30

25¡¡ se eliminan tuplas tuplas repetidas !!

El resultado será:

14/04/23 Curso Bases de Datos 10

Producto Cartesiano: R1 XX 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 ) 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

RENOMBRADO DE ATRIBUTOS

14/04/23 Curso Bases de Datos 11

Forma I:

Administrador XX [CódigoCod,NombreNom,EdadEdad1(Productor)]

Forma II:Productor1(Cod,Nom,Edad1) ‹-- Productor

14/04/23 Curso Bases de Datos 12

Ejemplo

Código Nombre Edad Cod Nom Edad11 Jorge Campos 33 2 Enrique Muñoz 251 Jorge Campos 33 8 Jorge Arias 301 Jorge Campos 33 10 Juan Martínez 192 Enrique Muñoz 25 2 Enrique Muñoz 252 Enrique Muñoz 25 8 Jorge Arias 302 Enrique Muñoz 25 10 Juan Martínez 19

3 Esteban Paz 21 2 Enrique Muñoz 253 Esteban Paz 21 8 Jorge Arias 303 Esteban Paz 21 10 Juan Martínez 19

El renombrado de la relation de la relation RR(A,B,C,D) en (A,B,C,D) en RR(A,K,L,D) se denota (A,K,L,D) se denota

BBK,CK,CLL (R)

¡¡ El renombrado es puramente sintáctico !!

Administrador XX [CódigoCod,NombreNom,EdadEdad1(Productor)]

14/04/23 Curso Bases de Datos 13

Unió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

14/04/23 Curso Bases de Datos 14

Ejemplo:

Administrador Productor:

Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 218 Jorge Arias 30

10 Juan Martínez 19

14/04/23 Curso Bases de Datos 15

Intersecció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 las tuplas que aparecen tanto en R1 como en R2

R1

R2

14/04/23 Curso Bases de Datos 16

Ejemplo

Administrador Productor

Código Nombre Edad2 Enrique Muñoz 25

14/04/23 Curso Bases de Datos 17

Diferencia: R1 R2

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

R1

R2

14/04/23 Curso Bases de Datos 18

Ejemplo

Administrador Productor:

Productor Administrador:

Código Nombre Edad1 Jorge Campos 333 Esteban Paz 21

Código Nombre Edad8 Jorge Arias 30

10 Juan Martínez 19

14/04/23 Curso Bases de Datos 19

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

Propiedades

14/04/23 Curso Bases de Datos 20

Reunión (JOIN)

NATURAL JOIN: R1 * R2Si 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.

14/04/23 Curso Bases de Datos 21

Ejemplo

Código Nombre Edad Depto1 Jorge Campos 33 12 Enrique Muñoz 25 13 Esteban Paz 21 18 Jorge Arias 30 2

10 Juan Martínez 19 212 Anselmo Rodas 28 6

Depto Descripción1 Administración2 Producción3 Ventas4 Finanzas

Empleado

Departamento

Atributo de Join

NotaNota: En este ejemplo, el campoDepto en Empleado NO ES CF con respecto a la tabla Departamento

14/04/23 Curso Bases de Datos 22

Ejemplo

Empleado * Departamento

Código Nombre Edad Depto Descripción1 Jorge Campos 33 1 Administración2 Enrique Muñoz 25 1 Administración3 Esteban Paz 21 1 Administración8 Jorge Arias 30 2 Producción

10 Juan Martínez 19 2 Producción

14/04/23 Curso Bases de Datos 23

SEMI JOIN ( ⊳)

Idéntico al NATURAL JOIN pero la relación resultante tiene el esquema de la relación izquierda ¿Utilidad?

14/04/23 Curso Bases de Datos 24

THETA JOIN (R1 ⋈ Condición R2)

El operador de comparación usado en la condición NO es el “==“ sino alguno de los siguientes: “>>“, “<<“, “>=>=“, “<=<=“, “≠≠“

Es equivalente a: Condición (R1 X R2)

14/04/23 Curso Bases de Datos 25

Ejemplo

Empleado ⋈Depto > Dep [ DeptoDep (Departamento)]

Código Nombre Edad Depto Dep Desc

8 Jorge Arias 30 2 1 Administración10 Juan Martínez 19 2 1 Administración12 Anselmo Rodas 28 6 1 Administración12 Anselmo Rodas 28 6 2 Producción12 Anselmo Rodas 28 6 3 Ventas12 Anselmo Rodas 28 6 4 Finanzas

14/04/23 Curso Bases de Datos 26

Divisió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

14/04/23 Curso Bases de Datos 27

EjemploEmpleado

Código Nombre Edad Depto1 Jorge Campos 33 12 Enrique Muñoz 25 12 Enrique Muñoz 25 23 Esteban Paz 21 18 Jorge Arias 30 2

10 Juan Martínez 19 2Depto

12

Departamento

Empleado (Depto(Departamento))

En este ejemplo la relación empleado no está normalizada, observe que la CP es (Código, Depto) y Código Nombre, Edad

Código Nombre Edad2 Enrique Muñoz 25

Depto Descripción1 Administración2 Producción

14/04/23 Curso Bases de Datos 28

Ademas ..

Se permite también el siguiente operador:

Asignación: VbleRelacion ← Relación

Otra forma de renombrar atributos y el nombre de la relación

NuevoNombreRelación(Atributos Renombrados) ( (Lista Atributos)(R))

14/04/23 Curso Bases de Datos 29

Agrupar con funcionesF : Agrupar con funciones Suma(), Promedio(), Max(), Min(), Cuenta()

Código Nombre Edad Depto1 Jorge Campos 33 12 Enrique Muñoz 25 13 Esteban Paz 21 18 Jorge Arias 30 2

10 Juan Martínez 19 212 Anselmo Rodas 28 6

¿Qué hace la siguiente consulta?

Depto F Cuenta(Código) AS conteo (Emp)

Renombradode la función de Grupo

EmpAtributos de Agrupamiento F Funciones de Grupo (R)

Ej. Sea:

SINTAXIS:

14/04/23 Curso Bases de Datos 30

Extender

Extend R ADD expresión AS nuevo_atributo

Código Nombre Sal Bono1 Jorge Campos 33 12 Enrique Muñoz 25 13 Esteban Paz 21 18 Jorge Arias 30 2

10 Juan Martínez 19 212 Anselmo Rodas 28 6

Emp

Ej: Extend Emp ADD Sal*2 AS Saldobl

14/04/23 Curso Bases de Datos 31

Ejemplo Se genera una relación como la original

pero con un atributo saldobl adicional:Código Nombre Sal Bono Saldobl

1 Jorge Campos 33 1 662 Enrique Muñoz 25 1 503 Esteban Paz 21 1 428 Jorge Arias 30 2 60

10 Juan Martínez 19 2 3812 Anselmo Rodas 28 6 56

¿Qué hace la siguiente consulta?

Ej: Extend Emp ADD 1 AS num, ‘Hola’ AS mensaje