Top Banner
Base de Datos Distribuidas Lic. Hugo D. Ramòn 2001
38
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: AR1

Base de Datos Distribuidas

Lic. Hugo D. Ramòn2001

Page 2: AR1

11/10/2001 Sistemas Distribuidos

Agenda! Algebra Relacional! Cálculo Relacional! Conceptos Fundamentales de Base de Datos! SQL

Page 3: AR1

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:

! 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

Page 4: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! Ejemplo

! EMP_TBL={Apellido,Nombre,ID_EMP}! Tenemos la relación EMP_TBL! Contiene los atributos

• Apellido• Nombre• ID_EMP

! Los valores posibles 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

Page 5: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! Ejemplo

E4JuanaSanchez

E3AndresRomero

E2CarlosCela

E1JuanPerez

ID_EMPNombreApellido

Page 6: AR1

11/10/2001 Sistemas Distribuidos

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! F: fórmula usada en las operaciones de arriba! ∪ : unión entre dos relaciones! ∩: intersección entre dos relaciones! −: diferencia entre dos relaciones! ÷: division entre dos relaciones! X: producto Cartesiano entre dos relaciones

Page 7: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! Definimos dos relaciones simples

233

122

211

CBAR:

334

221

ECAS:

Page 8: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! Estas dos relaciones se derivan del conjunto de dominos A,

B, C y D! 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 compueta 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

Page 9: AR1

11/10/2001 Sistemas Distribuidos

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

231221

)(', CARR CA =Π=

Page 10: AR1

11/10/2001 Sistemas Distribuidos

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:

2312

))(( 2'

, CARR BCA =Π= >=σ

Page 11: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! <>: Join Natural

! Involucra dos relaciones! Concatena dos relaciones con un atributo! Genera una relación de la forma

! R.A=S.A es una fórmula para concatenar sobre atributos que tienen valor idéntico

! Se eliminan atributos redundantes. Carácteristicas de Join Natural

! Existe el equi JOIN que no elimina atributos. Utiliza Pefijos

2211

'.. ECBASRR ASAR =<>==

Page 12: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! <>: Join Natural

! Podríamos querer ver algunos atributos

21..))(('

, ESARSRR AAEA =<>Π= =

Page 13: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! <: Semi Join

! Similar al natural JOIN! Solo se muestran atributos de la relación a la derecha

! Muy utilizado en ambientes distribuidos (minimiza comunicaciones)

211...'

, CRBRARSRR AA =<=

Page 14: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! θ : Theta Join

! Similar al natural JOIN! Se pueden utilizar los símbolos

• >=• >• <• <>

332343......' 2 ESCSCRBRASARSRR A == > θ

Page 15: AR1

11/10/2001 Sistemas Distribuidos

Algebra Relacional! F :Fórmula

! Representa subformulas ! Revisemos ejemplos anteriores

Page 16: AR1

11/10/2001 Sistemas Distribuidos

! ∪ :Unión! Dadas las relaciones

! Da como resultado

Algebra Relacional

212541211231

:: CBASCBAR

212211541231

' CBASRR =∪=

Page 17: AR1

11/10/2001 Sistemas Distribuidos

! ∪ :Unión! Se utilizan entre relaciones con atributos comunes! Como resultado tenemos una concatenaciòn ! Los dominios deben coincidir

Algebra Relacional

Page 18: AR1

11/10/2001 Sistemas Distribuidos

! ∩:Intersección! Dadas las relaciones

! Da como resultado

! Retorna tuplas que son comunes a ambas relaciones! Tiene las mismas condiciones que la union

Algebra Relacional

555555213321

:: CBASCBAR

555' CBASRR =∩=

Page 19: AR1

11/10/2001 Sistemas Distribuidos

! -:Diferencia! Dadas las relaciones

! Da como resultado

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

Algebra Relacional

555654211555213321

:: CBASCBAR

654321

' CBASRR =−=

Page 20: AR1

11/10/2001 Sistemas Distribuidos

! ÷:División! Dadas las relaciones

! Da como resultado

Algebra Relacional

1122

111246115225335

:: ASBAR

555

' ASRR =÷=

Page 21: AR1

11/10/2001 Sistemas Distribuidos

! ÷:División! Existen dos condiciones para hacer esta operación

• La secuencia en el dominio de match debe se idéntico (3,2,1)

• Los valores resultantes deben ser los mismos (5,5,5)

Algebra Relacional

Page 22: AR1

11/10/2001 Sistemas Distribuidos

! x:Producto Cartesiano! Dadas las relaciones

! El producto cartesiano da

Algebra Relacional

333322222111211

:: CBASCBAR

322333111333322222111222322211111211......' CSBSASCRBRARRxSR ==

Page 23: AR1

11/10/2001 Sistemas Distribuidos

! x:Producto Cartesiano! El número de tuplas es la multiplicación! Similar al equi JOIN cuando no hay atributo común

Algebra Relacional

Page 24: AR1

11/10/2001 Sistemas Distribuidos

Cálculo 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 años por

! Informix! Oracle! SQL-Base, etc.

! Existen dos variaciones al Cálculo relacional! Cálculo de tuplas! Cálculo de dominio

Page 25: AR1

11/10/2001 Sistemas Distribuidos

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

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

Page 26: AR1

11/10/2001 Sistemas Distribuidos

Cálculo Relacional! Cálculo de tuplas (CT)

! En CT EMP_TBL.BASICO es una variable de tupla! Una fórmula generica tomo la forma

TV1 operador TV2 o constantesDonde

Tvi: variable de tuplasoperador: <,>,>=,<=,<>,=constante: cualquier numero o string

! Las constantes y Tvi deben se del mismo dominio! Las formulas se conectan con AND, OR y NOT

Page 27: AR1

11/10/2001 Sistemas Distribuidos

Cálculo Relacional! Cálculo de dominio (CD)

! Las variables en este lenguaje están basadas en los dominos! Existe el producto 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)

Page 28: AR1

11/10/2001 Sistemas Distribuidos

Cálculo Relacional! Cálculo de dominio (CD)

! Dada la siguiente relación

! 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_NRCONDITION (EMP_TBL(LOCALIDAD=‘La Plata’)AND(SALARIO_NR>=1100)

PlataLaGUIDOAiresBuenosCOLLO

PlataLaCASTAPlataLaPEREZ

LOCALIDADSALARIONOMBRETBLEMP

1200300015002000

_ =

Page 29: AR1

11/10/2001 Sistemas Distribuidos

Cálculo Relacional! Cálculo de dominio (CD)

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

PlataLaCASTAPlataLaPEREZ

LOCALIDADSALARIONOMBREDespues

PLATALALOCALIDADSALARIONOMBREAntes

15002000

1200 =>

Page 30: AR1

11/10/2001 Sistemas Distribuidos

Conceptos ! Componentes tipicas de una base relacional

! Tablas! Vistas! Indices! Plans o Stored Procedures! Catalogo

! Relaciones contienen ! atributos (verticales)! Tuplas (horizontales)

! Tablas contienen! Columns ! Row

! Tablas=Relación

Page 31: AR1

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! Información

Page 32: AR1

11/10/2001 Sistemas Distribuidos

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

Page 33: AR1

11/10/2001 Sistemas Distribuidos

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

Page 34: AR1

11/10/2001 Sistemas Distribuidos

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

Page 35: AR1

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

Page 36: AR1

11/10/2001 Sistemas Distribuidos

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

Page 37: AR1

11/10/2001 Sistemas Distribuidos

SQL ! Lenguaje de manipulación de datos (DML)

! Hay claúsulas para actualizar • DELETE• UPDATE• DELETE

Page 38: AR1

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.