Professional Documents
Culture Documents
Agenda
! ! ! !
11/10/2001
Sistemas Distribuidos
Algebra Relacional
! ! ! !
BD Relacional Codd (IBM), 1970 Fundamentos de Algebra Relacional (AR) y Calculo (CA) Lenguajes de Consultas a partir de este trabajo AR se usa para:
! !
! !
AR define un conjunto de operaciones y frmulas para manipular tablas Estos conjuntos son relaciones de base de datos
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
Ejemplo
! ! !
! !
! ! !
11/10/2001
Algebra Relacional
!
Ejemplo
ID_EMP E1 E2 E3 E4
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
Smbolos
! ! ! ! ! ! ! ! ! ! !
: Project una columna de la relacin : Select una fila o tupla de la relacin <>: natural JOIN entre dos relaciones <: semi JOIN entre dos relaciones : theta JOIN entre dos relaciones F: frmula usada en las operaciones de arriba : unin entre dos relaciones : interseccin entre dos relaciones : diferencia entre dos relaciones : division entre dos relaciones X: producto Cartesiano entre dos relaciones
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
R: A 1 2 3
B 1 2 3
C 2 1 2
S: A 1 4
C 2 3
E 2 3
11/10/2001
Sistemas Distribuidos
Algebra Relacional
! ! ! ! ! !
Estas dos relaciones se derivan del conjunto de dominos A, B, C y D Sus dominio estn definidos sobre los naturales 0, 1, 2, 3 R esta compuesta por A, B y C o R={A,B,C} S esta compueta por A, C y E o S={A,C,E} R contiene 3 tuplas y S contiene 2 tuplas Veremos la utilizacin de cada smbolo
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
: Project
! ! !
Se utiliza para extraer un atributo vertical Podemos extraer mas de una Una frmula tpca sera que nos da una nueva relacin
' RA ( R) = ,C =
A C 1 2 3 2 1 2
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
Permite seleccionar tuplas de una relacin Existe una frmula como criterio de seleccin Da como resultado una nueva relacin:
' ( B >=2 ( R )) = RA ,C =
A C 2 1 3 2
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
Involucra dos relaciones Concatena dos relaciones con un atributo Genera una relacin de la forma
R
! ! !
' R. A=S. A
= R <>S = A B C E 1 1 2 2
R.A=S.A es una frmula para concatenar sobre atributos que tienen valor idntico Se eliminan atributos redundantes. Carcteristicas de Join Natural Existe el equi JOIN que no elimina atributos. Utiliza Pefijos
Sistemas Distribuidos
11/10/2001
Algebra Relacional
!
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
1
!
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
Sistemas Distribuidos
Algebra Relacional
!
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
R: A B C 1 1
!
S: A B C 1 2
R S = A 1 1 1 2 B 3 4 1 1 C 2 5 2 2
3 4
R'=
2 5
1 1
2 2
Da como resultado
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
:Unin ! Se utilizan entre relaciones con atributos comunes ! Como resultado tenemos una concatenacin ! Los dominios deben coincidir
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
R: A B C 1 5
!
S: A B C 3 5
R'=
2 5
3 5
1 5
2 5
A 5 B 5 C 5
Da como resultado
RS =
! !
Retorna tuplas que son comunes a ambas relaciones Tiene las mismas condiciones que la union
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
R:
A 1 5 4
B 2 5 5
C 3 5 6
S:
A 3 1 5
B 1 1 5
C 2 2 5
A 1 4 B 2 5 C 3 6
Da como resultado
R'=
RS =
11/10/2001
Algebra Relacional
!
R :
A 5 5 5 6 1 2 1
B 3 2 1 4 1 2 1
R S = A 5 5 5
S :
A 3 2 1 2 1
Da como resultado
R '=
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
R: A B C 1 2 3 1 2 3 2 2 3
S: A B C 1 2 1 2 1 3
El producto cartesiano da
R ' = RxS = R. A R.B 1 1 1 2 2 3 3 1 2 2 3 3 R.C 2 2 2 2 3 3 1 2 1 2 1 2 1 2 1 2 1 2
S . A S .B S .C 1 3 1 3 1 3
11/10/2001
Sistemas Distribuidos
Algebra Relacional
!
x:Producto Cartesiano ! El nmero de tuplas es la multiplicacin ! Similar al equi JOIN cuando no hay atributo comn
11/10/2001
Sistemas Distribuidos
Clculo Relacional
!
! ! !
Presentado en el paper SEQUEL=A Structures English Query Language, 1974 En 1980 se renombre a SQL (Structured Query Language) Mejorado durante aos por
! ! !
11/10/2001
Clculo Relacional
!
Lo bsico es el concepto de la variables tuplas Representan tuplas de una relacin Se utilizan para extraer datos de la relacin Se puede restringir valores de atributos Ejemplo en SQL
SELECT EMP_TBL.Apellido, EMP_TBL. Nombre WHERE EMP_TBL.BASICO>1000
11/10/2001
Sistemas Distribuidos
Clculo Relacional
!
! !
Las constantes y Tvi deben se del mismo dominio Las formulas se conectan con AND, OR y NOT
11/10/2001
Sistemas Distribuidos
Clculo Relacional
!
Las variables en este lenguaje estn basadas en los dominos Existe el producto Query By Example (QBE) de IBM Una frmula tpica DOMAIN VARIABLE LIST, CONDITION CONDITION:
es una formula sobre una variable de dominio es una formula sobre un atributo involucrado en la formula
11/10/2001
Sistemas Distribuidos
Clculo Relacional
!
EMP _ TBL =
Para extraer Nombre, Salario y Localidad de la gente de La Plata y que gane mas de 1100 debemos hacer
EMP_NR,SALARIO_NR,LOCALIDAD_NR CONDITION (EMP_TBL(LOCALIDAD=La Plata) AND (SALARIO_NR>=1100)
11/10/2001
Sistemas Distribuidos
Clculo Relacional
!
En QBE, debemos llenar valores en las variables de dominio Haciendo sobre el ejemplo anterior
Antes
NOMBRE
Despues
11/10/2001
Conceptos
!
Tablas Vistas Indices Plans o Stored Procedures Catalogo atributos (verticales) Tuplas (horizontales) Columns Row
Relaciones contienen
! !
Tablas contienen
! !
Tablas=Relacin
11/10/2001 Sistemas Distribuidos
Conceptos
! ! ! !
Views son tablas virtuales Indices son estructuras para mejorar la performance de acceso Plans: procedimientos almacenados que se ejecutan en forma repetitiva Catalogo: tablas especiales donde se guardan
! !
Parametros Informacin
11/10/2001
Sistemas Distribuidos
SQL
!
Informacin adicional
! !
http://w3.one.net/~jhoffman/sqltut.htm http://www.webdevelopersjournal.com/articles/sql.html
11/10/2001
Sistemas Distribuidos
SQL
!
Son comandos para los administradores Permite crear o declara objetos en las bases de datos Los principales comandos son:
CREATE
TABLE INDEX VIEW
DROP
TABLE INDEX VIEW
11/10/2001
Sistemas Distribuidos
SQL
!
11/10/2001
Sistemas Distribuidos
SQL
!
REVOKE
Elimina previlegios
11/10/2001
Sistemas Distribuidos
SQL
!
! !
Una vez de creada la base de datos necesitamos procesar informacin u obtener reportes Las sentencias son similares a las de Ingles Las clasulas principales para reportes
SELECT FROM WHERE GROUP BY HAVING ORDER BY
11/10/2001
Sistemas Distribuidos
SQL
!
11/10/2001
Sistemas Distribuidos
Bibliografia
! ! !
Distributed Database Systems. Bell, D; Grimson J. Addison Wesley, 1992. Principles of Distributed Database Systems. Ozsu, T; Valduriez, P. Prentice Hall, 1991. Managing Distributed Databases. Burleson, D. Wiley, 1994.
11/10/2001
Sistemas Distribuidos