You are on page 1of 19

BASES DE DATOS I

Algebra Relacional


 


 

 En la década de los sesenta publicó el trabajo "Un modelo relacional de datos para grandes bancos de datos compartidos“. 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). . Edgar Frank Codd (23 de agosto 1923 – 18 de Abril 2003)  Nació en Portland Bill.

y aún la Forma Normal de Boyce-Codd lleva el nombre en su honor. .  Definió las tres primeras Formas Normales que se aplican para la normalización de sistemas de bases de datos.  Recibió el Premio Turing de ciencias de la computación (1981). tema de su tesis doctoral.  También trabajó sobre el término OLAP y redactó las doce leyes del procesamiento analítico informático. Edgar Frank Codd (23 de agosto 1923 – 18 de Abril 2003)  Trabajó en el área de autómatas celulares.

nombrándola “Algebra Relacional” (AR).Algebra Relacional  El Modelo Relacional fue especificado por Edgar Frank Codd en 1970. . presentando una propuesta de álgebra como lenguaje de consulta. 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).

es un lenguaje declarativo. sin indicar el procedimiento para lograrlo. 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. ya que se deben especificar las condiciones que debe satisfacer la relación resultante.  El Cálculo Relacional en cambio. .Algebra Relacional  El Algebra Relacional se considera un lenguaje procedural.

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  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.

Algebra Relacional Relaciones: ADMINISTRADOR Código Nombre Edad 1 Jorge Campos 33 2 Enrique Muñoz 25 3 Esteban Paz 21 PRODUCTOR Código Nombre Edad 2 Enrique Muñoz 25 8 Jorge Arias 30 10 Juan Martínez 19 .

.Proyección ()  <Lista Atributos> (R) (R)  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 (R1) seleccionados  Se supone que no se obtienen registros con valores repetidos.

Nombre(Productor) Código Nombre 2 Enrique Muñoz Código Nombre Edad 2 Enrique Muñoz 25 8 Jorge Arias 8 Jorge Arias 30 10 Juan Martínez 10 Juan Martínez 19 .Edad(Administrador) Código Edad Código Nombre Edad 1 Jorge Campos 33 1 33 2 Enrique Muñoz 25 2 25 3 Esteban Paz 21 3 21 Código.Proyección () Código.

Proyección () Con una relación R: Sin distinct R Código Edad 1 30 2 25 3 30 Edad(R) Edad Traducción a SQL 30 Select distinct edad from R 25 ¡¡ se eliminan registros repetidos !! .

 Las condiciones se especifican utilizando operadores de comparación (=. NOT) .> etc.Selección ()  Se obtiene una relación R1 que  <condición>(R) contiene todas las tuplas de R que cumplen la o las condiciones específicadas. OR.) y para aplicar más de una se pueden utilizar los operadores booleanos (AND.<.

Selección () Código Nombre Edad Edad >= 25 1 Jorge Campos 33 (Administrador): 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 Código < 5 (Productor): 2 Enrique Muñoz 25 8 Jorge Arias 30 Código Nombre Edad 10 Juan Martínez 19 2 Enrique Muñoz 25 .

.Producto Cartesiano (X)  Se toma como base un conjunto de relaciones R1. 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. R2. . Si se quieren incluir atributos de distintas relaciones que tengan el mismo nombre se deben utilizar alias en las relaciones (R as nombre_alias)...

 Es necesario que exista compatibilidad (Es decir.  Se supone que se eliminan los registros repetidos. deben concordar con las características de tipo o dominio especificado).Unión () R1  Regresa una nueva relación que incluye todos los registros de las relaciones especificadas. . el R2 número de campos debe ser igual en todas las relaciones especificadas y según su posición.

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 .

Interseccion () R1  Regresa una nueva relación que contiene todos los atributos de las relaciones R2 especificadas que coinciden en sus valores.  Es necesario que exista compatibilidad. .

Diferencia (-) R1  Regresa una nueva relación que contiene todas los R2 registros que están en R1 pero no en R2.  Es necesario que exista compatibilidad .

En SQL.atributoN . 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.atributoN <operador condicional> tabla2. Select <campos> from tabla1 join tabla2 On tabla1.Reunión (Natural Join ())  (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.

Semi Join () – Left Join  Idéntico al NATURAL JOIN pero únicamente se muestran los atributos de la relación izquierda .