notas bases de datos i - mat.uson.mx · el algebra relacional se considera un lenguaje procedural,...
Post on 01-Oct-2018
220 Views
Preview:
TRANSCRIPT
Edgar Frank Codd(23 de agosto 1923 – 18 de Abril 2003)
Nació en Portland Bill, Dorset (Reino Unido)
Estudió Matemáticas y Química en Oxford.
Trabajó como programador matemático para IBM.
Obtuvo su grado de doctor en ciencias de la
computación en la Universidad de Michigan (1965).
En la década de los sesenta publicó el trabajo "Un
modelo relacional de datos para grandes bancos de
datos compartidos“.
Edgar Frank Codd(23 de agosto 1923 – 18 de Abril 2003)
Trabajó en el área de autómatas celulares, tema de su
tesis doctoral.
Definió las tres primeras Formas Normales que se
aplican para la normalización de sistemas de bases de
datos, y aún la Forma Normal de Boyce-Codd lleva
el nombre en su honor.
También trabajó sobre el término OLAP y redactó las
doce leyes del procesamiento analítico informático.
Recibió el Premio Turing de ciencias de la
computación (1981).
Algebra Relacional
El Modelo Relacional fue especificado por Edgar
Frank Codd en 1970, presentando una propuesta de
álgebra como lenguaje de consulta, nombrándola
“Algebra Relacional” (AR), y posteriormente también
presentó otro lenguaje basado en el Cálculo de
Predicados de la Lógica de Primer Orden,
nombrándolo “Cálculo Relacional” (CR).
El Algebra Relacional se considera un lenguaje
procedural, ya que para el cálculo de una nueva
relación se especifican las operaciones a realizar y el
orden en que éstas deben ser evaluadas.
El Cálculo Relacional en cambio, es un lenguaje
declarativo, ya que se deben especificar las
condiciones que debe satisfacer la relación resultante,
sin indicar el procedimiento para lograrlo.
Algebra Relacional
Se basa en un conjunto de operadores para realizar las operaciones:
Proyección ()
Selección ()
División ()
Diferencia (-)
Producto Cartesiano (X)
Interseccion ()
Reunion
Union ()
Join, Left Join, Right Join, Outer Join, etc. () Se usa para el diseño y/o traducción de una consulta
SQL y para optimización de consultas
Algebra Relacional
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
Código Nombre Edad
2 Enrique Muñoz 25
8 Jorge Arias 30
10 Juan Martínez 19
ADMINISTRADOR
PRODUCTOR
Relaciones:
Algebra Relacional
Proyección ()
Se aplica para extraer atributos
(columnas) de una relación R
Se obtiene como resultado una
nueva relación R1 que
corresponde a la lista de atributos
seleccionados
Se supone que no se obtienen
registros con valores repetidos.
<Lista Atributos> (R)
(R)
(R1)
Código,Edad(Administrador)Código Edad
1 33
2 25
3 21
Código Nombre
2 Enrique Muñoz
8 Jorge Arias
10 Juan Martínez
Código,Nombre(Productor)
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
Código Nombre Edad
2 Enrique Muñoz 25
8 Jorge Arias 30
10 Juan Martínez 19
Proyección ()
Código Edad
1 30
2 25
3 30
Con una relación R:
Edad(R)
R
25
30
Edad
¡¡ se eliminan registros repetidos !!
Proyección ()
Traducción a SQLSelect distinct edad from R
Sin distinct
Se obtiene una relación R1 que
contiene todas las tuplas de R que
cumplen la o las condiciones
específicadas.
Las condiciones se especifican
utilizando operadores de
comparación (=,<,> etc.) y para
aplicar más de una se pueden utilizar
los operadores booleanos (AND,
OR, NOT)
<condición>(R)
Selección ()
Edad >= 25
(Administrador):
Código < 5 (Productor):
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
Código Nombre Edad
2 Enrique Muñoz 25
Código Nombre Edad
2 Enrique Muñoz 25
8 Jorge Arias 30
10 Juan Martínez 19
Selección ()
Producto Cartesiano (X)
Se toma como base un conjunto de relaciones R1,
R2, ... Rn
Se obtiene una relación que se compone de los
atributos de todas las relaciones especificadas
Las relaciones especificadas no pueden tener
nombres de atributos con el mismo nombre. Si se
quieren incluir atributos de distintas relaciones que
tengan el mismo nombre se deben utilizar alias en las
relaciones (R as nombre_alias).
Unión ()
Regresa una nueva relación que incluye todos los registros de las relaciones especificadas.
Es necesario que exista compatibilidad (Es decir, el número de campos debe ser igual en todas las relaciones especificadas y según su posición, deben concordar con las características de tipo o dominio especificado).
Se supone que se eliminan los registros repetidos.
R1
R2
Ejemplo:
(Administrador Productor)
Código Nombre Edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
8 Jorge Arias 30
10 Juan Martínez 19
Regresa una nueva relación
que contiene todos los
atributos de las relaciones
especificadas que coinciden
en sus valores.
Es necesario que exista
compatibilidad.
R1
R2
Interseccion ()
Regresa una nueva relación
que contiene todas los
registros que están en R1
pero no en R2.
Es necesario que exista
compatibilidad
R1
R2
Diferencia (-)
(R1 R2)
Regresa una nueva relación que contiene los registros especificados en la proyección que están relacionados con los pares de relaciones donde se especifique esta operación.
En SQL, se puede especificar que se cumpla con una condición prioritaria utilizando la palabra reservada ‘ON’ e indicar la unificación de valores en base las condiciones especificadas.
Select <campos> from tabla1 join tabla2
On tabla1.atributoN <operador condicional> tabla2.atributoN
Reunión (Natural Join ())
top related