Sie sind auf Seite 1von 31

05/05/2014 Curso Bases de Datos 1

CONCEPTOS Y DISEOS DE
BASES DE DATOS
Gustavo Cceres Castellanos
Universidad Pedaggica y Tecnolgica de Colombia
gustavo.caceres@uptc.edu.co
Especializacin en Bases de Datos
LGEBRA RELACIONAL

05/05/2014 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 relacin
como resultado El lgebra es cerrada
Es un formalismo que permite solicitar
informacin a las Bases de Datos
Es un lenguaje puro (en general no se
implementa directamente)
Propuesta por Codd
Se usa para la traduccin de una consulta SQL
y para optimizacin de consultas
05/05/2014 Curso Bases de Datos 3
lgebra Relacional
8 operadores iniciales clasificados en
2 grupos:
Tradicionales de la teora de conjuntos:
Unin, Interseccin, Diferencia y
Producto Cartesiano
Especiales: Restriccin (o Seleccin),
Proyeccin, Reunin (join) y Divisin
Operadores adicionales: Renombrado,
Agrupamiento

05/05/2014 Curso Concepto y Diseo de
Bases de Datos
4
lgebra Relacional
Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
3 Esteban Paz 21
Cdigo Nombre Edad
2 Enrique Muoz 25
8 Jorge Arias 30
10 Juan Martnez 19
ADMINISTRADOR
PRODUCTOR
Sean las relaciones:
REPASO!!
Cul es el esquema de
la relacin
ADMINISTRADOR?
(Cdigo,Nombre,Edad)
05/05/2014 Curso Bases de Datos 5
Restriccin o Seleccin ( )
El argumento es una relacin y
una condicin
Produce una relacin R1 que
contiene todas las tuplas de R
que cumplen una condicin
especfica
La condicin se construye
mediante operadores de
comparacin (=,<,> etc.) y
booleanos (AND, OR etc.)
El resultado es una nueva
relacin cuyo esquema es
idntico al esquema de R
condicin
(R)
05/05/2014 Curso Bases de Datos 6
Restriccin o Seleccin ( )
s
Edad >= 25
(Administrador):




s
Cdigo < 5
(Productor):


Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
3 Esteban Paz 21
Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
Cdigo Nombre Edad
2 Enrique Muoz 25
Cdigo Nombre Edad
2 Enrique Muoz 25
8 Jorge Arias 30
10 Juan Martnez 19
05/05/2014 Curso Bases de Datos 7
Proyeccin ( )
Toma como argumento una
relacin R y una lista de
atributos
Se utiliza para extraer
atributos (columnas) de
una relacin R
El resultado es una nueva
relacin R1 cuyo esquema
corresponde a la lista de
atributos proyectados
En R1 se eliminan las
tuplas duplicadas
Se puede extraer ms de
una columna a la vez
p
Lista Atributos
(R)
05/05/2014 Curso Bases de Datos 8
Proyeccin ( )
p
Cdigo,Edad
(Administrador)

Cdigo Edad
1 33
2 25
3 21
Cdigo Nombre
2 Enrique Muoz
8 Jorge Arias
10 Juan Martnez
p
Cdigo,Nombre
(Productor)
Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
3 Esteban Paz 21
Cdigo Nombre Edad
2 Enrique Muoz 25
8 Jorge Arias 30
10 Juan Martnez 19
05/05/2014 Curso Bases de Datos 9
Proyeccin ( )
Cdigo Edad
1 30
2 25
3 30
Suponga una relacin W as:
p
Edad
(W)
W
Edad
30
25
se eliminan tuplas repetidas !!
El resultado ser:
05/05/2014 Curso Bases de Datos 10
Producto Cartesiano: R1 X R2
Toma como argumentos dos relaciones R1 y R2
Da como resultado una relacin 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 comn 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
concatenacin de cada tupla de R1

con cada una de las
tuplas de R2

Renombrado de atributos
RENOMBRADO DE ATRIBUTOS
05/05/2014 Curso Bases de Datos 11
Forma I:
Administrador X [r
CdigoCod,NombreNom,EdadEdad1
(Productor)]
Forma II:
Productor1(Cod,Nom,Edad1) -- Productor
05/05/2014 Curso Bases de Datos 12
Ejemplo
Cdigo Nombre Edad Cod Nom Edad1
1 Jorge Campos 33 2 Enrique Muoz 25
1 Jorge Campos 33 8 Jorge Arias 30
1 Jorge Campos 33 10 Juan Martnez 19
2 Enrique Muoz 25 2 Enrique Muoz 25
2 Enrique Muoz 25 8 Jorge Arias 30
2 Enrique Muoz 25 10 Juan Martnez 19
3 Esteban Paz 21 2 Enrique Muoz 25
3 Esteban Paz 21 8 Jorge Arias 30
3 Esteban Paz 21 10 Juan Martnez 19
El renombrado r de la relation
R(A,B,C,D) en R(A,K,L,D) se denota
r BK,CL (R)
El renombrado es puramente sintctico !!
Administrador X [r
CdigoCod,NombreNom,EdadEdad1
(Productor)]
05/05/2014 Curso Bases de Datos 13
Unin: R1

R2
Toma como argumentos
dos relaciones R1 y R2 con
esquemas idnticos
Retorna una relacin 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
05/05/2014 Curso Bases de Datos 14
Ejemplo:
Administrador Productor:

Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
3 Esteban Paz 21
8 Jorge Arias 30
10 Juan Martnez 19
05/05/2014 Curso Bases de Datos 15
Interseccin: R1 R2


Toma como argumentos
dos relaciones R1 y R2
con esquemas idnticos
Retorna una relacin R3
con el mismo esquema
de R1 y R2 que contiene
todas las tuplas que
aparecen tanto en R1
como en R2
R1
R2
05/05/2014 Curso Bases de Datos 16
Ejemplo
Administrador Productor

Cdigo Nombre Edad
2 Enrique Muoz 25
05/05/2014 Curso Bases de Datos 17
Diferencia: R
1
- R
2

Toma como argumento
dos relaciones R1 y R2
con esquemas idnticos
Retorna una relacin
R3 con el mismo
esquema de R1 y R2
que contiene todas las
tuplas que aparecen en
R1 pero no en R2
R1
R2
05/05/2014 Curso Bases de Datos 18
Ejemplo
Administrador - Productor:



Productor - Administrador:

Cdigo Nombre Edad
1 Jorge Campos 33
3 Esteban Paz 21
Cdigo Nombre Edad
8 Jorge Arias 30
10 Juan Martnez 19
05/05/2014 Curso Bases de Datos 19
La unin, interseccin y producto
cartesiano son conmutativas y
asociativas
La diferencia no es conmutativa ni
asociativa
La interseccin no es primitiva ya que
puede ser expresada mediante la
diferencia
Propiedades
05/05/2014 Curso Bases de Datos 20
Reunin (JOIN)
NATURAL JOIN: R1 * R2

Si R1(A,B) y R2(B,C) el resultado de R1 *R2
es una relacin 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 comn (B).
El atributo B puede ser compuesto.
05/05/2014 Curso Bases de Datos 21
Ejemplo
Cdigo Nombre Edad Depto
1 Jorge Campos 33 1
2 Enrique Muoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martnez 19 2
12 Anselmo Rodas 28 6
Depto Descripcin
1 Administracin
2 Produccin
3 Ventas
4 Finanzas
Empleado
Departamento
Atributo de
Join
Nota: En este ejemplo, el campo
Depto en Empleado NO ES CF
con respecto a la tabla Departamento
05/05/2014 Curso Bases de Datos 22
Ejemplo
Empleado * Departamento
Cdigo Nombre Edad Depto Descripcin
1 Jorge Campos 33 1 Administracin
2 Enrique Muoz 25 1 Administracin
3 Esteban Paz 21 1 Administracin
8 Jorge Arias 30 2 Produccin
10 Juan Martnez 19 2 Produccin
05/05/2014 Curso Bases de Datos 23
SEMI JOIN ( )
Idntico al NATURAL JOIN pero la
relacin resultante tiene el esquema
de la relacin izquierda Utilidad?
05/05/2014 Curso Bases de Datos 24
THETA JOIN (R1
Condicin
R2)
El operador de comparacin usado en
la condicin NO es el = sino alguno
de los siguientes: >, <, >=,
<=,
Es equivalente a: s
Condicin
(R1 X R2)
05/05/2014 Curso Bases de Datos 25
Ejemplo
Empleado
Depto > Dep
[r
DeptoDep
(Departamento)]
Cdigo Nombre Edad Depto Dep Desc
8 Jorge Arias 30 2 1 Administracin
10 Juan Martnez 19 2 1 Administracin
12 Anselmo Rodas 28 6 1 Administracin
12 Anselmo Rodas 28 6 2 Produccin
12 Anselmo Rodas 28 6 3 Ventas
12 Anselmo Rodas 28 6 4 Finanzas
05/05/2014 Curso Bases de Datos 26
Divisin: R
1
R
2
Def 1: Sean las relaciones R1(A,B) y
R2(B). El resultado de R1 R2

es una
relacin 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
05/05/2014 Curso Bases de Datos 27
Ejemplo
Empleado
Cdigo Nombre Edad Depto
1 Jorge Campos 33 1
2 Enrique Muoz 25 1
2 Enrique Muoz 25 2
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martnez 19 2
Depto
1
2
Departamento
Empleado (p
Depto
(Departamento))

En este ejemplo la relacin empleado no est
normalizada, observe que la CP es (Cdigo, Depto)
y Cdigo Nombre, Edad

Cdigo Nombre Edad
2 Enrique Muoz 25
Depto Descripcin
1 Administracin
2 Produccin
05/05/2014 Curso Bases de Datos 28
Ademas ..
Se permite tambin el siguiente operador:
Asignacin: VbleRelacion Relacin

Otra forma de renombrar atributos y el
nombre de la relacin
r
NuevoNombreRelacin(Atributos Renombrados)
(

p
(Lista Atributos)
(R))
05/05/2014 Curso Bases de Datos 29
Agrupar con funciones
F : Agrupar con funciones Suma(), Promedio(), Max(), Min(),
Cuenta()


Cdigo Nombre Edad Depto
1 Jorge Campos 33 1
2 Enrique Muoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martnez 19 2
12 Anselmo Rodas 28 6
Qu hace la siguiente consulta?
Depto
F
Cuenta(Cdigo) AS conteo
(Emp)
Renombrado
de la funcin de
Grupo
Emp
Atributos de Agrupamiento F Funciones de Grupo (R)
Ej. Sea:
SINTAXIS:
05/05/2014 Curso Bases de Datos 30
Extender
Extend R ADD expresin AS nuevo_atributo
Cdigo Nombre Sal Bono
1 Jorge Campos 33 1
2 Enrique Muoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martnez 19 2
12 Anselmo Rodas 28 6
Emp
Ej: Extend Emp ADD Sal*2 AS Saldobl

05/05/2014 Curso Bases de Datos 31
Ejemplo
Se genera una relacin como la original
pero con un atributo saldobl adicional:
Cdigo Nombre Sal Bono Saldobl
1 Jorge Campos 33 1 66
2 Enrique Muoz 25 1 50
3 Esteban Paz 21 1 42
8 Jorge Arias 30 2 60
10 Juan Martnez 19 2 38
12 Anselmo Rodas 28 6 56
Qu hace la siguiente consulta?
Ej: Extend Emp ADD 1 AS num, Hola AS mensaje

Das könnte Ihnen auch gefallen