1. Base de Datos Distribuidas
Lic. Hugo D. Ramón
Conceptos de Bases de Datos
2. Agenda
Algebra Relacional
Cálculo Relacional
Conceptos Fundamentales de Base de Datos
SQL
10/09/2007 Conceptos de Bases de Datos
3. Algebra Relacional
BD Relacional Codd (IBM), 1970
Fundamentada en
• Algebra Relacional (AR) y
• Calculo (CA)
Lenguajes de Consultas pocedimental
Parametros de entrada ?
Parametro de salida ?
AR se usa para:
Optimización de consultas
Consultas distribuidas
AR define un conjunto de operaciones y fórmulas para
manipular tablas
Estos conjuntos son relaciones de base de datos
10/09/2007 Conceptos de Bases de Datos
4. Algebra Relacional
Ejemplo
EMP_TBL={Apellido,Nombre,ID_EMP}
Tenemos la relación EMP_TBL
Contiene los atributos
• Apellido
• Nombre
• ID_EMP
Los valores de cada atributo determinan su dominio
Relación es equivalente a
• Archivo plano de dos dimensiones
• Tabla en las base de datos relacionales
Contiene 4-tuplas
Columnas son atributos
Las Filas son tuplas
10/09/2007 Conceptos de Bases de Datos
5. Algebra Relacional
Ejemplo
Apellido Nombre ID_EMP
Perez Juan E1
Cela Carlos E2
Romero Andres E3
Sanchez Juana E4
10/09/2007 Conceptos de Bases de Datos
6. Algebra Relacional
Símbolos
Π: Project una columna de la relación
σ: Select una fila o tupla de la relación
<>: natural JOIN entre dos relaciones
<: semi JOIN entre dos relaciones
θ: theta JOIN entre dos relaciones
∪: unión entre dos relaciones
∩: intersección entre dos relaciones
−: diferencia entre dos relaciones
X: producto Cartesiano entre dos relaciones
10/09/2007 Conceptos de Bases de Datos
7. Algebra Relacional
Definimos dos relaciones simples
R: A B C S: A C E
1 1 2 1 2 2
2 2 1 4 3 3
3 3 2
10/09/2007 Conceptos de Bases de Datos
8. Algebra Relacional
Estas dos relaciones se derivan del conjunto de dominos A,
B, C y E
Sus dominio están definidos sobre los naturales 0, 1, 2, 3
R esta compuesta por A, B y C o R={A,B,C}
S esta compuesta por A, C y E o S={A,C,E}
R contiene 3 tuplas y S contiene 2 tuplas
Veremos la utilización de cada símbolo
10/09/2007 Conceptos de Bases de Datos
9. Algebra Relacional
Π: Project
Se utiliza para extraer un atributo vertical
Podemos extraer mas de una
Una fórmula típca sería que nos da una nueva relación
∏ A ,C ( R ) = A C
1 2
2 1
3 2
10/09/2007 Conceptos de Bases de Datos
10. Algebra Relacional
σ: Select una fila o tupla de la relación
Permite seleccionar tuplas de una relación
Existe una fórmula como criterio de selección
Da como resultado una nueva relación:
∏ A,C (σ B >= 2 ( R)) = A C
2 1
3 2
10/09/2007 Conceptos de Bases de Datos
11. Algebra Relacional
<>: Join Natural
Involucra dos relaciones
Concatena dos relaciones con un atributo
Genera una relación de la forma
R <>R.A=S.A S = A B C E
1 1 2 2
R.A=S.A es una fórmula para concatenar sobre atributos que
tienen valor idéntico
Se eliminan atributos redundantes. Características de Join
Natural
Existe el equi JOIN que no elimina atributos redundantes.
Nombrar
10/09/2007 Conceptos de Bases de Datos
12. Algebra Relacional
<: Semi Join
Similar al natural JOIN
Solo se muestran atributos de la relación de la izq.
R <A,A S = R.A R.B R.C
1 1 2
Muy utilizado en ambientes distribuidos (minimiza
comunicaciones)
10/09/2007 Conceptos de Bases de Datos
13. Algebra Relacional
θ : Theta Join
Similar al natural JOIN
Se pueden utilizar los símbolos
• >=
• >
• <
• <>
R' = RθA>2 S = R.A S.A R.B R.C S.C S.E
3 4 3 2 3 3
10/09/2007 Conceptos de Bases de Datos
14. Algebra Relacional
∪:Unión
Dadas las relaciones
R: A B C S: A B C
1 3 2 1 1 2
1 4 5 2 1 2
Da como resultado
R'= R∪ S = A B C
1 3 2
1 4 5
1 1 2
2 1 2
10/09/2007 Conceptos de Bases de Datos
15. Algebra Relacional
∪:Unión
Se utilizan entre relaciones con atributos comunes
Como resultado tenemos una concatenación
Los dominios deben coincidir
10/09/2007 Conceptos de Bases de Datos
16. Algebra Relacional
∩: Intersección
Dadas las relaciones
R: A B C S: A B C
1 2 3 3 1 2
5 5 5 5 5 5
Da como resultado R'= R∩S = A B C
5 5 5
Retorna tuplas que son comunes a ambas relaciones
Tiene las mismas condiciones que la union
10/09/2007 Conceptos de Bases de Datos
17. Algebra Relacional
-:Diferencia
Dadas las relaciones
R: A B C S: A B C
1 2 3 3 1 2
5 5 5 1 1 2
4 5 6 5 5 5
Da como resultado R'= R−S = A B C
1 2 3
4 5 6
Retorna tuplas que estan en la primer relacion y no en la
segunda
10/09/2007 Conceptos de Bases de Datos
18. Algebra Relacional
x:Producto Cartesiano
Dadas las relaciones R: A B C S: A B C
1 1 2 1 1 1
2 2 2 2 2 3
3 3 3
El producto cartesiano da
R' = RxS = R. A R.B R.C S . A S .B S .C
1 1 2 1 1 1
1 1 2 2 2 3
2 2 2 1 1 1
2 2 2 2 2 3
3 3 3 1 1 1
3 3 3 2 2 3
10/09/2007 Conceptos de Bases de Datos
19. Algebra Relacional
x:Producto Cartesiano
El número de tuplas es la multiplicación
Similar al equi JOIN cuando no hay atributo común
10/09/2007 Conceptos de Bases de Datos
20. Cálculo Relacional
En algebra => procedimiento que resuleven la consulta
En Calculo => lenguaje de consultas no-procedimentales
Chamberlin & Boyce
desarrollaron Lenguaje de Consultas
Presentaron “SEQUEL=A Structures English Query Language”,
1974
En 1980 se renombre a SQL (Structured Query Language)
Mejorado durante años por
Informix
Oracle
SQL-Base, etc.
Existen dos variaciones al Cálculo relacional
Cálculo de tuplas
Cálculo de dominio
10/09/2007 Conceptos de Bases de Datos
21. Cálculo Relacional
Cálculo de tuplas (CT)
Lo básico es el concepto de la variables tuplas
Representan tuplas de una relación
Se utilizan para extraer datos de la relación
Se puede restringir valores de atributos
Ejemplo en SQL
RANGE OF PX IS EMPLEADOS
PX.Apellido, PC.Nombres WHERE PX.BASICO>1000
Esto dice dos cosas
• Extraer tuplas que cumplen BASICO>1000
• De esas tuplas quiero ver Apellido y Nombre
10/09/2007 Conceptos de Bases de Datos
22. Cálculo Relacional
Cálculo de tuplas (CT)
En CT PX es una variable de tupla
Una fórmula genérica tomo la forma
TV1 operador TV2 o constantes
Donde
Tvi: variable de tuplas
operador: <,>,>=,<=,<>,=
constante: cualquier numero o string
Las constantes y Tvi deben se del mismo dominio
Las formulas se conectan con AND, OR y NOT
Ejemplos
• EMP_TBL[BASICO]=1000
• EMP_TBL[APELLIDO]=‘DEPARTAMENTO 1’ AND
• EMP_TBL[SALARIO]>2000
10/09/2007 Conceptos de Bases de Datos
23. Cálculo Relacional
Cálculo de dominio (CD)
Las variables en este lenguaje están basadas en los dominos
Query By Example (QBE) de IBM
Una fórmula típica
DOMAIN VARIABLE LIST, CONDITION
CONDITION:
• es una formula sobre una variable de dominio
• es una formula sobre un atributo involucrado en la formula
Forma general:
RELATION NAME(ATTRIBUTE BELONGING TO
RELATION=DOMAIN VARIABLE OR CONSTANT)
10/09/2007 Conceptos de Bases de Datos
24. Cálculo Relacional
Cálculo de dominio (CD)
Dada la siguiente relación
EMP _ TBL = NOMBRE SALARIO LOCALIDAD
PEREZ 2000 La Plata
CASTA 1500 La Plata
COLLO 3000 Buenos Aires
GUIDO 1200 La Plata
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)
10/09/2007 Conceptos de Bases de Datos
25. Cálculo Relacional
Cálculo de dominio (CD)
En QBE, debemos llenar valores en las variables de dominio
Sobre el ejemplo anterior
Antes NOMBRE SALARIO LOCALIDAD
> 1200 = LA PLATA
Despues NOMBRE SALARIO LOCALIDAD
PEREZ 2000 La Plata
CASTA 1500 La Plata
10/09/2007 Conceptos de Bases de Datos
26. Conceptos
Componentes típicas de una base relacional
Tablas
Vistas
Índices
Plans o Stored Procedures
Catalogo
Relaciones contienen
atributos (verticales)
Tuplas (horizontales)
Tablas contienen
Columns
Row
Tablas=Relación
10/09/2007 Conceptos de Bases de Datos
27. 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
Información
10/09/2007 Conceptos de Bases de Datos
28. SQL
SQL está dividio en tres sublenguajes
Lenguaje de declaración de datos (DDL)
• Se usa para crear componentes de la base
Lenguaje de control de datos (DCL)
• Seguridad de Datos
• Control de Consistencia
Lenguaje de manipulación de datos (DML)
• Core del SQL
• Obtener datos de las diferentes tablas
Información adicional
http://w3.one.net/~jhoffman/sqltut.htm
http://www.webdevelopersjournal.com/articles/sql.html
10/09/2007 Conceptos de Bases de Datos
29. SQL
Lenguaje de declaración de datos (DDL)
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
10/09/2007 Conceptos de Bases de Datos
30. SQL
Lenguaje de declaración de datos (DDL)
• ALTER
• TABLE <tablename> <DROP|ADD>
• Podemos ADD
• Columnas
• Primary Key
• Referentials Constraint
• Podemos DROP
• Primary Key
• Foregein Key
10/09/2007 Conceptos de Bases de Datos
31. SQL
Lenguaje de control de datos (DCL)
Permite administrar los aspectos de control y seguridad
Provee dos comandos
• GRANT
• Dar privilegios a los usuarios
• REVOKE
• Elimina previlegios
10/09/2007 Conceptos de Bases de Datos
32. SQL
Lenguaje de manipulación de datos (DML)
Una vez de creada la base de datos necesitamos procesar
información u obtener reportes
Las sentencias son similares a las de Ingles
Las claúsulas principales para reportes
• SELECT
• FROM
• WHERE
• GROUP BY
• HAVING
• ORDER BY
10/09/2007 Conceptos de Bases de Datos
33. SQL
Lenguaje de manipulación de datos (DML)
Hay claúsulas para actualizar
• DELETE
• UPDATE
• DELETE
10/09/2007 Conceptos de Bases de Datos
34. Bibliografías
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.
10/09/2007 Conceptos de Bases de Datos