Base de Datos Distribuidas
Lic. Hugo D. Ramòn
Clase 2: Conceptos de Bases de Datos
03/09/2003 Conceptos de Bases de Datos
Agenda! Algebra Relacional! Cálculo Relacional! Conceptos Fundamentales de Base de Datos! SQL
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
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
03/09/2003 Conceptos de Bases de Datos
Algebra Relacional! Ejemplo
E4JuanaSanchez
E3AndresRomero
E2CarlosCela
E1JuanPerez
ID_EMPNombreApellido
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
03/09/2003 Conceptos de Bases de Datos
Algebra Relacional! Definimos dos relaciones simples
233
122
211
CBAR:
334
221
ECAS:
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
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 =∏
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 =∏ >=σ
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 =<> =
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 =<
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 == >θ
03/09/2003 Conceptos de Bases de Datos
! ∪ :Unión! Dadas las relaciones
! Da como resultado
Algebra Relacional
212541211231
:: CBASCBAR
212211541231
' CBASRR =∪=
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
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 =∩=
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 =−=
03/09/2003 Conceptos de Bases de Datos
! x:Producto Cartesiano! Dadas las relaciones
! El producto cartesiano da
Algebra Relacional
333322222111211
:: CBASCBAR
322333111333322222111222322211111211......' CSBSASCRBRARRxSR ==
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
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
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
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
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)
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
_ =
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 =>
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
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
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
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
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
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
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
03/09/2003 Conceptos de Bases de Datos
SQL ! Lenguaje de manipulación de datos (DML)
! Hay claúsulas para actualizar • DELETE• UPDATE• DELETE
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.
Top Related