Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ......

27
Catedra de Base de Datos Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Ciclo Lec)vo 2016

Transcript of Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ......

Page 1: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

CatedradeBasedeDatosFacultaddeCienciasExactasyTecnología

UniversidadNacionaldeTucumán

CicloLec)vo2016

Page 2: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

BASES DE DATOS DISTRIBUIDAS

Conceptos. Funciones. Fragmentación. Replicación. Estrategias para la

optimización en las consultas. Concurrencia. Recuperación de la información

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 3: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

•  IntroducciónalMarcoTeórico

•  BasesdeDatosDistribuidas

•  Ventajas.Desventajas.Funciones

•  TomadeDecisiones.Enfoque

•  EstrategiasdeDiseño

•  Fragmentación.Preguntas.Estrategias.

•  ReplicacióndelosDatos

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

GUIA DE LA PRESENTACION

Page 4: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

INTRODUCCIÓN. CONCEPTOS

El diseño de una base de datos distribuida, cualquiera sea el enfoque que se siga, debe

responder satisfactoriamente las siguientes preguntas:

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 5: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

DEFINICIÓN BASE DE DATOS DISTRIBUIDAS

“Coleccióndemúl.plesbasesdedatos,lógicamente

interrelacionadas,distribuidassobreunareddeordenadores”.

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Requisitos:

•  Integraciónlógicadelosdatosenunúnicoesquemaglobal

•  Almacenamiento6sicodistribuido.

•  Accesocomúndetodoslosusuariosadatoslocalesyremotos.

Page 6: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

DEFINICIÓN SISTEMAS DE GESTION DE BASES DE DATOS DISTRIBUIDA

“Productoso;warecapazdeges.onarunaBDD,

suministrandomecanismosdeaccesoquehacen

transparenteladistribución“

SISTEMA DE BDD = BDD + SGBDD

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 7: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

CARÁCTERÍSTICAS

Lossistemasdebasesdedatosdistribuidosdebengarantizarla

•  Integridad:Cada transacción asegura el trabajo de proteger la integridad del estado de un

sistema, al proveer cuatro garantías básicas conocidas como las propiedades ACID

(atomicidad, consistencia, aislamiento y durabilidad). Si somos capaces de fragmentar,

debemos garantizar la integracion de los datos, sin perdidas ni anomalias.

•  Consistenciadelosdatos:Es el estado coherente en la información o datos que contiene y

que relaciona, en el cual la información cumple las necesidades o expectativas de quien la

requiera.

•  Obedece todas las restricciones de integridad definidas sobre ella.

•  Eliminando o controlando las redundancias de datos.

•  Resultado de lo anterior será una Base de datos con “Estado coherente”.

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 8: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

CARÁCTERÍSTICAS

•  LosdatosdebenestarDísicamenteenmásdeunordenador(distintassedes)

•  Lassedesdebenestarinterconectadasmedianteunared(cadasedeesunnododelared)

•  Losdatoshandeestarlógicamenteintegradostantoenlocalcomoremoto.

•  Enunaúnicaoperación sepuedeaccedera los datosque se encuentran enmásdeuna

sede(accesoadatoslocalesoremotos)

•  Todaslasaccionesquenecesitenrealizarsesobremásdeunasedeserántransparentesal

usuario

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 9: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

VENTAJAS Y DESVENTAJAS

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 10: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

ANSI SPARC: ARQUITECTURA DE BASE DE DATOS DE 3 NIVELES

ANSI SPARC es un acrónimo del American National Standard Institute of

Standard Planning and Requirements Committee.

Es un enfoque estándar acordado de tres niveles, para el diseño de base

de datos:

•  Nivel Externo

•  Nivel conceptual

•  Nivel Interno (incluye el almacenamiento físico de los datos)

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 11: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

ANSI SPARC ARQUITECTURA DE BASE DE DATOS DE 3 NIVELES

Nivel Externo o De Visión

Nivel Conceptual

Nivel Interno o Físico

NIVEL

LOGICO

NIVEL

FISICO

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 12: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

ANSI SPARC ARQUITECTURA DE BASE DE DATOS DE 3 NIVELES

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

La ubicación de los programas y de los datos deben analizarse desde la etapa de modelado:

Sistemadebasesdedatoscentralizado:

losdatossealmacenanenunaúnicacomputadoraque.enelacapacidadyvelocidadnecesariaparaservirlosdatosalasdemáscomputadorasdelared.Esla

técnicamasfrecuentealmomentodellevaradelantela

implementacióndeunsistemadebasesdedatos.

Sistemadebasesdedatosdistribuido:

losdatossedistribuyenenlas

computadorasqueintegranlared,deacuerdoalasnecesidadesopera.vasdecadapuestodetrabajo,alaseguridad,alos

recursosconquesecuenten,etc.

Page 13: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

BASES DE DATOS DISTRIBUIDAS

COMPARTICION

datos

Datos y programas

MODO DE ACCESO

estático

dinámico

NIVEL DE CONOCIMIENTO

Información Parcial

Información Total

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 14: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

BASES DE DATOS DISTRIBUIDAS

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 15: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

BASES DE DATOS DISTRIBUIDAS

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 16: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

BASES DE DATOS DISTRIBUIDAS

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 17: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

ESTRATEGIAS DE DISEÑO

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

ANALISIS DE REQUISITOS

REQUISITOS DEL SISTEMA

(OBJETIVOS) DISEÑO CONCEPTUAL DISEÑO DE LAS VISTAS

ESQUEMA CONCEPTUAL

GLOBAL INFORMACION DE

ACCESO DEFINICION DE LOS ESQUEMAS

EXTERNOS

DISEÑO DE LA DISTRIBUCION

ESQUEMAS CONCEPTUALES

GLOBALES

DISEÑO FISICO

ESQUEMAS FISICOS

MONITORIZACION Y AJUSTES

INTERVENCION DEL

USUARIO

Centralizado

Distribuido

Page 18: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

TIPOS DE FRAGMENTACIÓN - BASES DE DATOS DISTRIBUIDAS

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Distribuciondedatosapar;rdel

filtradoporcriteriosdelos

registrosDistribuciondedato

sa

par;rlaseparacionde

atributosyrepi;endolos

atributosclavesen

aquellatablaquenolo

tuviera

Page 19: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

REPLICACIÓN - BASES DE DATOS DISTRIBUIDAS

Definición:

“Si un fragmento se almacena en más de un puesto,

se dice que está replicado”

Ventajas:

•  Mejora la disponibilidad de los datos

•  Incrementa la rapidez en las actualizaciones (para mantener la consistencia)

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 20: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

FRAGMENTACION HORIZONTAL

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

La Integración de los datos de la

relación original se realiza a partir

de la Unión de los fragmentos:

T = T1 U T2 U … U Tn

Page 21: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

FRAGMENTACION VERTICAL

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 22: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

EJEMPLO GLOBAL - BASES DE DATOS DISTRIBUIDAS

PROCESAMIENTOYOPTIMIZACIÓNDECONSULTAS

CONSIDERACIONESGENERALESPARARESOLVERELEJERCICIO

Tamañodearchivosytransacciones:

•  TablaEMPLEADO:1000000Bytes•  TablaDEPARTAMENTO:3500Bytes

•  Sitodoempleadoperteneceaundepartamento,laconsultaincluirá10.000

registros.

•  Cadaregistrodevueltoocupará40Bytes

•  SupongamosqueelresultadodebeirapuestodetrabajoespecíDico.

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 23: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

EJEMPLO GLOBAL - BASES DE DATOS DISTRIBUIDAS

Consulta:

SELECTnombrep,apellido,nombred

FROMempleado,departamento

WHEREempleado.nd=departamento.numerod;

Existentresestrategiasposibles.

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 24: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

PROCESAMIENTO Y OPTIMIZACIÓN DE CONSULTAS Estrategia1.Transferirlasdosrelacionesalpuestoquesolicitayrealizarahílacomposición.

Totaltransferido:1.000.000+3500=1.003.500

Estrategia2.TransferirEMPLEADOalpuestodondeesténlosdatos,realizarlaconsultay

enviarelresultadoalpuestoquesolicita.

Totaltransferido:1.000.000+400.000=1.400.000

Estrategia3.TransferirDEPARTAMENTOalServidor,ejecutaryenviarelresultadoalpuesto

quesolicita.

Totaltransferido:3.500+400.000=403.500

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 25: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Se ejecuta el procedimiento almacenado motor_distribución: Definición: CREATE DEFINER=`root`@`localhost` PROCEDURE `motor_distribucion`() MODIFIES SQL DATA BLOCK1: BEGIN

DECLARE doneBogota INT DEFAULT 0; DECLARE MEDELLIN INT DEFAULT 2; DECLARE cuentab, cuentamvarchar(20); DECLARE valorbBIGINT(20); DECLARE tipob INT; DECLARE fechab TIMESTAMP; DECLARE ciudadb INT; DECLARE curBogota CURSOR FOR SELECT cuenta, valor, tipo, fecha, ciudad FROM banco_bogota.transaccion_foranea WHERE fecha=CURDATE(); DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET doneBogota = 1; OPEN curBogota; /*transaccionesforeanes de bogota*/ REPEAT FETCH curBogota INTO cuentab, valorb, tipob, fechab, ciudadb; IF NOT doneBogota THEN /*ciudad de medellin*/ IF ciudadb=MEDELLIN THEN /*se almacena un registro en transacciones de medellin*/ INSERT INTO banco_medellin.transaccion(cuenta, valor, tipo, fecha) VALUES (cuentab, valorb, tipob, fechab);

/*se actualiza el saldo para la cuenta de medellin*/ UPDATE banco_medellin.cuenta_cliente mcc SET mcc.saldo = ( SELECTdcc.saldo FROM datacenter.cuenta_cliente dcc WHERE dcc.cuenta = cuentab) WHERE mcc.num = cuentab; /*se almacena el registro de la transaccion*/ INSERT INTO auditoria(cuenta, valor, tipo, fecha, ciudad) VALUES (cuentab, valorb, tipob, CURDATE(), ciudadb); END IF;

END IF; UNTIL doneBogota END REPEAT; CLOSE curBogota; BLOCK2: BEGIN DECLARE doneMedellin INT DEFAULT 0;

DECLARE cuentab, cuentamvarchar(20); DECLARE valormBIGINT(20); DECLARE tipom INT; DECLARE fecham TIMESTAMP; DECLARE ciudadm INT; DECLARE BOGOTA INT DEFAULT 1; DECLARE curMedellin CURSOR FOR SELECT cuenta, valor, tipo, fecha, ciudad FROM banco_medellin.transaccion_foranea WHERE fecha=CURDATE(); DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET doneMedellin = 1; OPEN curMedellin; /*transaccionesforeanes de medellin*/ REPEAT FETCH curmedellin INTO cuentam, valorm, tipom, fecham, ciudadm; IF NOT doneMedellin THEN /*ciudad de bogota*/ IF ciudadm=BOGOTA THEN /*se almacena un registro en transacciones de bogota*/ INSERT INTO banco_bogota.transaccion(cuenta, valor, tipo, fecha) VALUES (cuentam, valorm, tipom, fecham); /*se actualiza el saldo para la cuenta de bogota*/ UPDATE banco_bogota.cuenta_clientebcc SET bcc.saldo = ( SELECTdcc.saldo FROM datacenter.cuenta_cliente dcc WHERE dcc.cuenta = cuentam) WHERE bcc.num = cuentam; /*se almacena el registro de la transaccion*/ INSERT INTO auditoria(cuenta, valor, tipo, fecha, ciudad) VALUES (cuentam, valorm, tipom, CURDATE(), ciudadm); END IF; END IF; UNTIL doneMedellin END REPEAT; CLOSE curMedellin; END Block2; END Block1

Page 26: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

Referencias

•  Fundamentos de bases de datos. Capitulo 1 (Abraham Silberschatz, Henry F. Korth /

y/ S. Sudarshan.—(Tra. Fernándo Sáenz Pérez, Antonio García Cordero /y/ Jesús

Correas Fernández.-- Rev. Tca. Luis Grau Fernández). McGraw Hill. Madrid /c.

2006/5a. Edic.

•  Apuntes de Catedra de Gestion de datos

•  Michael Mannino, Administración de Bases de Datos, Diseño e desarrollo de

Aplicaciones, 3a Edición, Mc Graw Hill, 2007

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS

Page 27: Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ... procesamiento y optimizaciÓn de consultas consideraciones generales para resolver el ejercicio

Sitio Web de la Cátedra http://catedras.facet.unt.edu.ar/bd

BasesdeDatos Mg.Ing.GustavoE.Juárez

BASES DE DATOS