You are on page 1of 38

Base de Datos Distribuidas

Lic. Hugo D. Ramn 2001

Agenda
! ! ! !

Algebra Relacional Clculo Relacional Conceptos Fundamentales de Base de Datos SQL

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:
! !

Optimizacin de consultas Consultas distribuidas

! !

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
! ! !

EMP_TBL={Apellido,Nombre,ID_EMP} Tenemos la relacin EMP_TBL Contiene los atributos


Apellido Nombre ID_EMP

! !

Los valores posibles determinan su dominio Relacin 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


Sistemas Distribuidos

11/10/2001

Algebra Relacional
!

Ejemplo

Apellido Perez Cela Romero Sanchez

Nombre Juan Carlos Andres Juana

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
!

Definimos dos relaciones simples

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
!

: Select una fila o tupla de la relacin


! ! !

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
!

<>: Join Natural


! ! !

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
!

<>: Join Natural


!

Podramos querer ver algunos atributos

R = ((RA=A <>S)) = R.A S.E


' A,E

11/10/2001

Sistemas Distribuidos

Algebra Relacional
!

<: Semi Join


! !

Similar al natural JOIN Solo se muestran atributos de la relacin a la derecha

R = R < S = R.A R.B R.C


' A, A

1
!

Muy utilizado en ambientes distribuidos (minimiza comunicaciones)

11/10/2001

Sistemas Distribuidos

Algebra Relacional
!

: Theta Join ! Similar al natural JOIN ! Se pueden utilizar los smbolos


>= > < <>

R' = RA>2 S = R.A S.A R.B R.C S.C S.E 3


11/10/2001

Sistemas Distribuidos

Algebra Relacional
!

F :Frmula ! Representa subformulas ! Revisemos ejemplos anteriores

11/10/2001

Sistemas Distribuidos

Algebra Relacional
!

:Unin ! Dadas las relaciones

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
!

:Interseccin ! Dadas las relaciones

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
!

-:Diferencia ! Dadas las relaciones

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 =

Retorna tuplas que estan en la primer relacion y no en la segunda


Sistemas Distribuidos

11/10/2001

Algebra Relacional
!

:Divisin ! Dadas las relaciones

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
!

:Divisin ! Existen dos condiciones para hacer esta operacin


La secuencia en el dominio de match debe se idntico (3,2,1) Los valores resultantes deben ser los mismos (5,5,5)

11/10/2001

Sistemas Distribuidos

Algebra Relacional
!

x:Producto Cartesiano ! Dadas las relaciones

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
!

Chamberlin & Boyce desarrollaron Lenguaje de Consultas


! !

Manipular Extraer datos de bases relacionales

! ! !

Presentado en el paper SEQUEL=A Structures English Query Language, 1974 En 1980 se renombre a SQL (Structured Query Language) Mejorado durante aos por
! ! !

Informix Oracle SQL-Base, etc. Clculo de tuplas Clculo de dominio


Sistemas Distribuidos

Existen dos variaciones al Clculo relacional


! !

11/10/2001

Clculo Relacional
!

Clculo de tuplas (CT)


! ! ! ! !

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

Esto dice dos cosas


Extraer tuplas que cumplen EMP_TBL.BASICO>1000 De esas tuplas quiero ver Apellido y Nombre

11/10/2001

Sistemas Distribuidos

Clculo Relacional
!

Clculo de tuplas (CT)


! !

En CT EMP_TBL.BASICO es una variable de tupla Una frmula generica 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

11/10/2001

Sistemas Distribuidos

Clculo Relacional
!

Clculo de dominio (CD)


! ! !

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

Forma general: RELATION NAME(ATTRIBUTE BELONGING TO RELATION=DOMAIN VARIABLE OR CONSTANT)

11/10/2001

Sistemas Distribuidos

Clculo Relacional
!

Clculo de dominio (CD)


!

Dada la siguiente relacin


NOMBRE PEREZ CASTA COLLO GUIDO SALARIO LOCALIDAD 2000 1500 3000 1200 La Plata La Plata Buenos Aires La Plata

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
!

Clculo de dominio (CD)


! !

En QBE, debemos llenar valores en las variables de dominio Haciendo sobre el ejemplo anterior

Antes

NOMBRE

SALARIO LOCALIDAD > 1200 = LA PLATA

Despues

NOMBRE PEREZ CASTA

SALARIO LOCALIDAD 2000 La Plata 1500 La Plata


Sistemas Distribuidos

11/10/2001

Conceptos
!

Componentes tipicas de una base relacional


! ! ! ! !

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
!

SQL est dividio en tres sublenguajes


!

Lenguaje de declaracin 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 manipulacin de datos (DML)


Core del SQL Obtener datos de las diferentes tablas

Informacin adicional
! !

http://w3.one.net/~jhoffman/sqltut.htm http://www.webdevelopersjournal.com/articles/sql.html

11/10/2001

Sistemas Distribuidos

SQL
!

Lenguaje de declaracin 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

11/10/2001

Sistemas Distribuidos

SQL
!

Lenguaje de declaracin de datos (DDL)


ALTER
TABLE <tablename> <DROP|ADD> Podemos ADD Columnas Primary Key Referentials Constraint Podemos DROP Primary Key Foregein Key

11/10/2001

Sistemas Distribuidos

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

11/10/2001

Sistemas Distribuidos

SQL
!

Lenguaje de manipulacin de datos (DML)


!

! !

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
!

Lenguaje de manipulacin de datos (DML)


!

Hay clasulas para actualizar


DELETE UPDATE DELETE

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

You might also like