algebra relacional

34
Base de Datos Distribuidas Lic. Hugo D. Ramón Conceptos de Bases de Datos

Upload: blanca-parra-hernandez

Post on 13-Jun-2015

5.924 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algebra Relacional

Base de Datos Distribuidas

Lic. Hugo D. Ramón

Conceptos de Bases de Datos

Page 2: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

AgendaAlgebra RelacionalCálculo RelacionalConceptos Fundamentales de Base de DatosSQL

Page 3: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra RelacionalBD Relacional Codd (IBM), 1970

Fundamentada en • Algebra Relacional (AR) y • Calculo (CA)

Lenguajes de Consultas pocedimentalParametros de entrada ?Parametro de salida ?

AR se usa para:Optimización de consultasConsultas distribuidas

AR define un conjunto de operaciones y fórmulas para manipular tablasEstos conjuntos son relaciones de base de datos

Page 4: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra RelacionalEjemplo

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

• Apellido• Nombre• ID_EMP

Los valores de cada atributo determinan su dominioRelación es equivalente a

• Archivo plano de dos dimensiones• Tabla en las base de datos relacionales

Contiene 4-tuplasColumnas son atributosLas Filas son tuplas

Page 5: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra RelacionalEjemplo

E4JuanaSanchez

E3AndresRomero

E2CarlosCela

E1JuanPerez

ID_EMPNombreApellido

Page 6: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra RelacionalSí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 relacionesX: producto Cartesiano entre dos relaciones

Page 7: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra RelacionalDefinimos dos relaciones simples

233

122

211

CBAR:

334

221

ECAS:

Page 8: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra RelacionalEstas dos relaciones se derivan del conjunto de dominos A, B, C y ESus 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 tuplasVeremos la utilización de cada símbolo

Page 9: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra RelacionalΠ: Project

Se utiliza para extraer un atributo vertical Podemos extraer mas de unaUna fórmula típca sería que nos da una nueva relación

231221

)(, CARCA =∏

Page 10: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra Relacionalσ: Select una fila o tupla de la relación

Permite seleccionar tuplas de una relaciónExiste una fórmula como criterio de selecciónDa como resultado una nueva relación:

2312

))(( 2, CARBCA =∏ >=σ

Page 11: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra Relacional<>: Join Natural

Involucra dos relacionesConcatena dos relaciones con un atributoGenera una relación de la forma

R.A=S.A es una fórmula para concatenar sobre atributos que tienen valor idénticoSe eliminan atributos redundantes. Características de JoinNaturalExiste el equi JOIN que no elimina atributos redundantes.Nombrar

2211.. ECBASR ASAR =<> =

Page 12: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra Relacional<: Semi Join

Similar al natural JOINSolo se muestran atributos de la relación de la izq.

Muy utilizado en ambientes distribuidos (minimiza comunicaciones)

211..., CRBRARSR AA =<

Page 13: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Algebra Relacionalθ : Theta Join

Similar al natural JOINSe pueden utilizar los símbolos

• >=• >• <• <>

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

Page 14: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

∪:UniónDadas las relaciones

Da como resultado

Algebra Relacional

212541211231

:: CBASCBAR

212211541231

' CBASRR =∪=

Page 15: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

∪:UniónSe utilizan entre relaciones con atributos comunesComo resultado tenemos una concatenación Los dominios deben coincidir

Algebra Relacional

Page 16: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

∩: IntersecciónDadas las relaciones

Da como resultado

Retorna tuplas que son comunes a ambas relacionesTiene las mismas condiciones que la union

Algebra Relacional

555555213321

:: CBASCBAR

555' CBASRR =∩=

Page 17: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

-:DiferenciaDadas 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 18: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

x:Producto CartesianoDadas las relaciones

El producto cartesiano da

Algebra Relacional

333322222111211

:: CBASCBAR

322333111333322222111222322211111211......' CSBSASCRBRARRxSR ==

Page 19: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

x:Producto CartesianoEl número de tuplas es la multiplicaciónSimilar al equi JOIN cuando no hay atributo común

Algebra Relacional

Page 20: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Cálculo RelacionalEn algebra => procedimiento que resuleven la consultaEn Calculo => lenguaje de consultas no-procedimentalesChamberlin & Boyce

desarrollaron Lenguaje de ConsultasPresentaron “SEQUEL=A Structures English Query Language”, 1974En 1980 se renombre a SQL (Structured Query Language)

Mejorado durante años porInformixOracleSQL-Base, etc.

Existen dos variaciones al Cálculo relacionalCálculo de tuplasCálculo de dominio

Page 21: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Cálculo RelacionalCálculo de tuplas (CT)

Lo básico es el concepto de la variables tuplasRepresentan tuplas de una relaciónSe utilizan para extraer datos de la relaciónSe puede restringir valores de atributosEjemplo en SQL

RANGE OF PX IS EMPLEADOSPX.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

Page 22: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Cálculo RelacionalCálculo de tuplas (CT)

En CT PX es una variable de tuplaUna fórmula genérica 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 dominioLas formulas se conectan con AND, OR y NOTEjemplos

• EMP_TBL[BASICO]=1000• EMP_TBL[APELLIDO]=‘DEPARTAMENTO 1’ AND• EMP_TBL[SALARIO]>2000

Page 23: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Cálculo RelacionalCálculo de dominio (CD)

Las variables en este lenguaje están basadas en los dominosQuery By Example (QBE) de IBMUna fórmula típica

DOMAIN VARIABLE LIST, CONDITIONCONDITION:

• 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 24: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Cálculo RelacionalCá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 25: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Cálculo RelacionalCálculo de dominio (CD)

En QBE, debemos llenar valores en las variables de dominioSobre el ejemplo anterior

PlataLaCASTAPlataLaPEREZ

LOCALIDADSALARIONOMBREDespues

PLATALALOCALIDADSALARIONOMBREAntes

15002000

1200 =>

Page 26: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Conceptos Componentes típicas de una base relacional

TablasVistasÍndicesPlans o Stored ProceduresCatalogo

Relaciones contienen atributos (verticales)Tuplas (horizontales)

Tablas contienenColumnsRow

Tablas=Relación

Page 27: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

Conceptos Views son tablas virtualesIndices son estructuras para mejorar la performance de accesoPlans: procedimientos almacenados que se ejecutan en forma repetitivaCatalogo: tablas especiales donde se guardan

ParametrosInformación

Page 28: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

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.htmhttp://www.webdevelopersjournal.com/articles/sql.html

Page 29: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

SQL Lenguaje de declaración de datos (DDL)

Son comandos para los administradoresPermite crear o declara objetos en las bases de datosLos principales comandos son:

• CREATE• TABLE• INDEX• VIEW

• DROP• TABLE• INDEX• VIEW

Page 30: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

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 31: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

SQL Lenguaje de control de datos (DCL)

Permite administrar los aspectos de control y seguridadProvee dos comandos

• GRANT• Dar privilegios a los usuarios

• REVOKE• Elimina previlegios

Page 32: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

SQL Lenguaje de manipulación de datos (DML)

Una vez de creada la base de datos necesitamos procesar información u obtener reportesLas sentencias son similares a las de InglesLas claúsulas principales para reportes

• SELECT• FROM• WHERE• GROUP BY• HAVING• ORDER BY

Page 33: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

SQL Lenguaje de manipulación de datos (DML)

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

Page 34: Algebra Relacional

10/09/2007 Conceptos de Bases de Datos

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.