Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ......

34
Base de Datos Distribuidas Lic. Hugo D. Ramòn Clase 2: Conceptos de Bases de Datos

Transcript of Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ......

Page 1: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

Base de Datos Distribuidas

Lic. Hugo D. Ramòn

Clase 2: Conceptos de Bases de Datos

Page 2: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

Page 3: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

Page 4: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

Page 5: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

Algebra Relacional! Ejemplo

E4JuanaSanchez

E3AndresRomero

E2CarlosCela

E1JuanPerez

ID_EMPNombreApellido

Page 6: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

Page 7: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

Algebra Relacional! Definimos dos relaciones simples

233

122

211

CBAR:

334

221

ECAS:

Page 8: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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 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: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

)(, CARCA =∏

Page 10: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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, CARBCA =∏ >=σ

Page 11: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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 redundantes.! Nombrar

2211.. ECBASR ASAR =<> =

Page 12: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

Algebra Relacional! <: Semi Join

! Similar al natural JOIN! Solo se muestran atributos de la relación de la izq.

! Muy utilizado en ambientes distribuidos (minimiza comunicaciones)

211..., CRBRARSR AA =<

Page 13: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

Algebra Relacional! θ : Theta Join

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

• >=• >• <• <>

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

Page 14: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

! ∪ :Unión! Dadas las relaciones

! Da como resultado

Algebra Relacional

212541211231

:: CBASCBAR

212211541231

' CBASRR =∪=

Page 15: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

Algebra Relacional

Page 16: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

! ∩: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 17: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

! -: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 18: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

! x:Producto Cartesiano! Dadas las relaciones

! El producto cartesiano da

Algebra Relacional

333322222111211

:: CBASCBAR

322333111333322222111222322211111211......' CSBSASCRBRARRxSR ==

Page 19: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

! 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 20: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

Page 21: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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 22: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

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

Page 23: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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)

Page 24: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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 25: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

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

PlataLaCASTAPlataLaPEREZ

LOCALIDADSALARIONOMBREDespues

PLATALALOCALIDADSALARIONOMBREAntes

15002000

1200 =>

Page 26: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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 27: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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 28: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 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.htm! http://www.webdevelopersjournal.com/articles/sql.html

Page 29: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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 30: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 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: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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 32: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 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 reportes

! Las sentencias son similares a las de Ingles! Las claúsulas principales para reportes

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

Page 33: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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

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

Page 34: Base de Datos Distribuidas - jvmr2012.files.wordpress.com · Base de Datos Distribuidas Lic. ... • Tabla en las base de datos relacionales! ... 03/09/2003 Conceptos de Bases de

03/09/2003 Conceptos de Bases de Datos

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.