Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ......
Transcript of Catedra de Base de Datos · sistema de bdd = bdd + sgbdd ... para el diseño de base ......
CatedradeBasedeDatosFacultaddeCienciasExactasyTecnología
UniversidadNacionaldeTucumán
CicloLec)vo2016
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
• 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
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
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.
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
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
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
VENTAJAS Y DESVENTAJAS
BasesdeDatos Mg.Ing.GustavoE.Juárez
BASES DE DATOS
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
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
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.
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
BASES DE DATOS DISTRIBUIDAS
BasesdeDatos Mg.Ing.GustavoE.Juárez
BASES DE DATOS
BASES DE DATOS DISTRIBUIDAS
BasesdeDatos Mg.Ing.GustavoE.Juárez
BASES DE DATOS
BASES DE DATOS DISTRIBUIDAS
BasesdeDatos Mg.Ing.GustavoE.Juárez
BASES DE DATOS
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
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
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
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
FRAGMENTACION VERTICAL
BasesdeDatos Mg.Ing.GustavoE.Juárez
BASES DE DATOS
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
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
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
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
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
Sitio Web de la Cátedra http://catedras.facet.unt.edu.ar/bd
BasesdeDatos Mg.Ing.GustavoE.Juárez
BASES DE DATOS