Bases de Datos Distribuidas

download Bases de Datos Distribuidas

of 171

Transcript of Bases de Datos Distribuidas

I Bases de Datos Distribuidas Introduccin A lo largo de los aos la informacin se ha convertido en una herramienta indispensableenlatomadedecisiones,yelhechodealmacenaryadministrar esta informacin a tomado mayor importancia da con da. Enlosaos70's,cuandolascomputadorascomenzaronaserusadasnosolo para realizar clculos, sino tambin para almacenar informacin, naci una nueva rea dentro de la informtica, el diseo e implementacin de sistemas de bases de datos. Estas bases de datos en sus inicios funcionaban en una sola computadora, dondeserealizabantodoslosprocesosdealmacenamiento,consultay actualizacin de la informacin.Con el surgimiento de las redes de rea local el procesamientodelainformacinfuemsfcilyrpido,auncuandoseteniaun nuevoproblema,cadavezeramayorelvolumendelainformacinquesetenia que almacenar en el nico servidor central. Conelcrecimientoeconmicomundial,aparecieron lasgrandesempresas transnacionales, con plantas y oficinas en diferentes ciudades y pases, por tanto, condiferentesredesderealocalencadaunadelasreasgeogrficasdela empresa.Esasicomoapareceunnuevoconceptoenelreadelasbasesde datos, las bases de datos distribuidas. Lasbasesdedatosdistribuidassurgenapartirdelanecesidaddepoder almacenaryadministrarinformacinencadareageogrfica,tenerunaredde computoencadaunadeellas,ypodercompartirdichainformacindemanera transparente a todos y cada uno de los usuarios de las redes, formando a si una gigantesca base de datos distribuida. II Bases de Datos Distribuidas Objetivo Estetrabajoesrealizadoconlaintencindeproveeralalumnodeun documentodeconsultabasadoenelplandeestudiodelamateria,loque permitirunfcilaccesoalainformacinrequeridadeunamanerarpiday concisa, logrando as una fcil comprensin de los temas tratados en clase.Esto sin intentar sustituir a los libros existentes de bases de datos centralizadas y bases de datos distribuidas. III Bases de Datos Distribuidas Bases de datos distribuidas Contenido Capitulo 1 Fundamentos de las bases de datos distribuidas 1.1Diferenciasentre lasbasesdedatosdistribuidasy lasbasesdedatos centralizadas ....................................................................... .............1 1.2 Ventajas de las bases de datos distribuidas contra las bases de datos centralizadas................................................................. .............4 1.3Los doce objetivos de una base de datos distribuidas...........................6 1.4Arquitectura cliente/servidor.................................................................11 1.4.1 Paradigma cliente/servidor.................................................................11 1.4.2 Procesamiento cliente/servidor...........................................................11 1.4.3 Ventajas de la arquitectura cliente/servidor........................................11 1.4.4 Desventajas de la arquitectura cliente/servidor..................................12 1.4.5 Caractersticas del cliente...................................................................12 1.4.6 Funciones del cliente..........................................................................13 1.4.7 Interfaz grafica de usuario estndar....................................................13 1.4.8 Caractersticas de[ servido.........................r.......................................14 1.4.9 Funciones del servidor........................................................................15 1.4.10 El sistema X Windows.......................................................................18 1.5 Problemas de los sistemas distribuidos.................................................19 1.6 Soporte para bases de datos distribuidas..............................................23 1.7 Resumen del capitulo.............................................................................24 1.8 Preguntas de repaso..............................................................................31 Bibliografa...................................................................................................32 Capitulo II Bases de datos en mltiples servidores 2.1 Consideraciones para distribuir bases de datos....................................34 2.1.1 Objetivo del diseo de los datos distribuidos .....................................35 2.2Diseo de bases de datos distribuidas ................................................36 2.2.1TcnicasdediseoTop-DownyBottom-Updebasesdedatos distribuidas................................................................................... 36 2.2.2 Diseo de los fragmentos de la base de datos...................................37 2.2.3 Correctez de la fragmentacin ........................................................... 372.2.4 Fragmentacin Horizontal...................................................................38 2.2.5 Fragmentacin Horizontal derivada. .................................... .............40 IV Bases de Datos Distribuidas 2.2.6 Fragmentacin Vertical ........................................................ .............42 2.2.7 Fragmentacin Mixta ........................................................... .............46 2.2.8 Distribucin de los fragmentos............................................. .............48 2.2.9 Criterios generales para la distribucin de los fragmentos.................48 2.3 Procesamiento de consultas distribuidas..............................................49 2.3.1 rbol de operadores de una consulta................................................49 2.3.2 Ejemplos de consultas distribuidas....................................................50 2.4. Resumen del capitulo...........................................................................57 2.5. Preguntas de repaso............................................................................60 2.6. Ejercicios..............................................................................................60 Bibliografa..................................................................................................62 Capitulo III Optimizacin de estrategias de acceso 3.1 Importancia de la optimizacin de consultas........................................63 3.2Transformaciones equivalentes................. ..................................... ..65 3.2.1 Transformaciones equivalentes por lgebra relacional .................. .66 3.2.2 Determinacin de subexpresiones comunes .................................. 68 3.3Mtodos de ejecucin de JOIN..........................................................70 3.3.1 Iteracin simple ............................................................................... 71 3.3.2 Iteracin orientada a bloques.......................................................... 72 3.3.3 Merge - Join ................................................................................ 73 3.3.4 Uso de ndices ................................................................................ 75 3.3.5 Hash Join ................................................................................ 76 3.3.6 Tree - way join ................................................................................ 78 3.3.7 Estrategias para procesamiento paralelo ...................................... 80 3.3.8 Join paralelo ............................................................................... 80 3.3.9 Pipeline multiway join .................................................................... 82 3.4. Principios de optmizacin. .............................................................. 84 3.5. Resumen del capitulo. ..................................................................... 88 3.6. Preguntas de repaso. ...................................................................... 93 3.7. Ejercicios............................................................................................94 Bibliografa................................................................................................94 V Bases de Datos Distribuidas CapitulolV Procesamiento de transacciones en bases de datos distribuidas 4.1 Control de concurrencia......................................................................95 4.1.1 Seriabilidad en bases de datos centralizadas..................................95 4.1.2 Seriabilidad en bases de datos distribuidas. ...................................98 4.1.3 Control de concurrencia basado en bloqueos centralizados .........100 4.1.4 Control de concurrencia basado en bloqueos distribuidos ............101 4.1.5 Bloqueo de 2 fases como un mtodo de control de concurrencia...................................................................................104 4.1.6 Etiquetas de tiempo en una base de datos distribuida...................106 4.1.7 Deadloks distribuidos.....................................................................109 4.2 Recuperacin. .................................................................................. 111 4.2.1 Transacciones. .............................................................................. 112 4.2.2 Manejo de mensajes ..................................................................... 113 4.2.3 estructura general de los registros de bitcora .............................. 114 4.2.4 Tipos de fallas ............................................................................... 116 4.2-5 Fallas de transaccin .................................................................... 117 4.2.6 Bitcora en lnea ........................................................................... 118 4.2.7 Transacciones grandes ................................................................. 118 4.2.8 Compresin de bitcora ................................................................ 119 4.2.9 Fallas del sistema .......................................................................... 120 4.2.10 Fallas en el medio de almacenamiento ....................................... 123 4.3 Integridad ..........................................................................................125 4.3.1 Reglas de integridad de dominio ................................................... 126 4.3.2 Reglas de integridad de relacin ................................................... 127 4.4 Seguridad........................................................................................131 4.4.1 Identificacin y autentificacin ....................................................... 133 4.4.2 Reglas de autorizacin...................................................................133 4.4.3 Encriptacin de datos. .. ................................................................ 134 4.4.4 Encriptacin por sustitucin, .......................................................... 135 4.4.5 Encriptacin de llave publica ......................................................... 136 4.5. Resumen del capitulo.......................................................................139 4.6. Preguntas de repaso. .......................................... ............................151 4.7. Ejercicios ......................................................................................... 152 Bibliografa..............................................................................................153 Respuestas a preguntas de repaso y ejercicios.....................................154 1 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Objetivo Elalumnoconocerlascaractersticasdelasbasesdedatosdistribuidas,el paradigmacliente/servidor,ylosaspectosquesedebenconsideraraldisearuna base de datos distribuida. Introduccin En este captulo se tratan las diferencias entre las bases de datos centralizadas ydistribuidas,lascualesproporcionanventajasydesventajasquedebernser tomadasencuentaaldisearbasesdedatosdistribuidas,asmismo,setratanlos objetivosacumplirpordichasbasesdedatos.Sediscutirtambin,unapequea descripcindelparadigmacliente/servidor,yaquelasbasesdedatosno centralizadas hacen un uso extenso de ste. 1.1 Diferencias entre las bases de datos distribuidas y las bases de datos centralizadas Lasbasesdedatosdistribuidasnosonsimplesimplementacionesdistribuidasde basesdedatoscentralizadas,auncuandopresentanalgunascaractersticas semejantes,lossistemasdistribuidosnopodranserdiseadosconlastcnicasde diseo delossistemascentralizadostradicionales. Sin embargo es posiblecomparar lossistemastradicionalesdebasesdedatosconlossistemasdebasesdedatos distribuidasenbaseadichascaractersticas,lascualesson:controlcentralizado, independencia de datos, reduccin de redundancia, estructuras fsicas complejas para un acceso eficiente y seguridad. Captulo I Fundamentos de las bases de datos distribuidas 2 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Control centralizado Laposibilidaddeproveercontrolcentralizadosobrelosrecursosdeinformacin puede ser considerada como una de las razones ms atractivas para introducir bases de datos; esto es considerado como la evolucin de los sistemas de informacin, en los cuales cada aplicacin tiene sus archivos privados.En las bases de datos distribuidas, la idea de un control centralizado tiene poco nfasis. Enlasbasesdedatosdistribuidasesposibleidentificarunaestructuradecontrol jerrquicobasadoenunAdministradorglobaldebasesdedatos,elcualtienela principal responsabilidad de la totalidad de la base de datos, y el Administrador local de basesdedatos,quientienelaresponsabilidaddesurespectivabasededatoslocal.Esto nos da como resultado una caracterstica llamada Autonoma de sitio.Las bases dedatosdistribuidastienendiferentesgradosdeautonomadesitio:desdelams completaautonomasinningnadministradorcentralizadohastaelmscompleto control centralizado. Independencia de datos. La independencia de datos quiere decir, que la organizacin actual de los datos es transparentealasaplicaciones.Losprogramassonescritosteniendounavista conceptualdelosdatos,llamadaesquemaconceptual.Laventajaprincipaldela independencia de datos es que los programas no son afectados por los cambios en la organizacin fsica de los datos. En las bases de datos, la independencia de los datos es tan importante como en las basesdedatostradicionales;sinembargo,unanuevacaractersticaseagregaala definicindelaindependenciadedatos,estaeslatransparenciadedistribucin.Gracias a la transparencia de distribucin es que se pueden escribir programas como si la base de datos no estuviera distribuida. La independencia de datos fue introducida en las bases de datos tradicionales por laarquitecturamultinivelquetienediferentesdescripcionesdelosdatosymapeos entreellos.Lasdefinicionesdeesquemaconceptual,esquemaexternoyesquema internofuerondesarrolladasparaestaarquitectura.Demanerasimilar,la transparenciadedistribucinesobtenidaenlasbasesdedatosdistribuidasporla introduccin de nuevos niveles y esquemas. 3 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Reduccin de la redundancia. En las bases de datos tradicionales, la redundancia fue reducida en lo posible, por dosrazones:primera,lainconsistenciaentrevariascopiasdelosdatosesevitada automticamenteteniendosolounacopiadelosdatos;lasegundarazn,la recuperacindeespaciodealmacenamientoaleliminarlaredundancia.La redundanciasereducecompartiendolosdatos,permitiendoquevariasaplicaciones accesen los mismos archivos. Enlasbasesdedatosdistribuidas,setienenvariasrazonesparaconsiderarla redundancia de los datos como una caracterstica necesaria: primero, las aplicaciones puedenversefavorecidassilosdatossonreplicadosentodoslossitiosdondela aplicacinlasnecesita,ysegundo,larazndedisponibilidaddelsistemapuede incrementarseporestemedio,debidoaquesielsitioenelqueseencuentranlos datosfallara,laejecucindelaaplicacinnosedetieneporqueexisteunacopiaen algn otro sitio. Estructuras complejas y acceso eficiente, Lasestructurasdeaccesocomplejas,comondicessecundariosyenlacesentre archivos, son aspectos comunes de las bases de datos tradicionales.El soporte para estas estructuras es una de las partes ms importantes del DBMS (Database Manager System, Sistema manejador de base de datos).El objetivo de estas estructuras es el de obtener un acceso eficiente a los datos. Escribirunaccesodistribuidoesmuyparecidoalhacerloenunsistema centralizado,enelsentidodequeelprogramadorespecificadequmodoser accesada la base de datos.De cualquier forma, el proceso es local a cada uno de los sitios donde se encuentran los grupos de datos. Es conveniente tomar en cuenta dos cuestiones muy importantes en el momento de accesar una base de datos distribuida, la optimizacin local y la optimizacin global de los accesos.La optimizacin global consiste en determinar qu datos sern accesados en qu sitios y qu archivos de datos sern transmitidos entre sitios.La optimizacin local consiste en decidir como llevar acabo el acceso a la base de datos local en cada sitio. 4 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Seguridad. Enlasbasesde datostradicionales,eladministradordelabase de datos,tieneel control centralizado, puede asegurarse que nicamente se tenga el acceso a los datos autorizados. Enlasbasesdedatosdistribuidas,eladministradorlocalenfrentaelmismo problema que el administrador debasesde datostradicionales. Sinembargo,valela penamencionardosaspectospeculiaresdelasbasesdedatosdistribuidas:enuna basededatosdistribuidaconunaltoniveldeautonoma,losdueosdelosdatos localespuedenprotegerdediferentesmaneras suinformacin,estodependiendodel DBMS local; y segundo, los problemas de seguridad son intrnsecos en los sistemas de bases de datos en general, esto debido a que las comunicaciones en las redes es su punto dbil con respecto a la proteccin. 1.2Ventajas de las bases de datos distribuidas sobre las bases de datos centralizadas Razones organizacionales La mayor parte de las organizaciones estn descentralizadas, y las bases de datos distribuidasseacercanmsalasnecesidadesdelaestructuradelaorganizacin distribuida. Interconexin de las bases de datos existentes. Lasbasesdedatosdistribuidassonlasolucinnaturalcuandosetienenvarias basesdedatosexistentesenlaorganizacin.Enestecaso,lasbasesdedatos distribuidas son creadas utilizando una estrategia de diseo tipo bottom-up a partir de lasbasesdedatoslocalesexistentes.Esteprocesorequiereciertogradode reestructuracinlocal;decualquierforma,elesfuerzorequeridoparaestoesmucho menorqueelnecesarioparalacreacindeunabasededatoslocalcompletamente nueva. 5 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Desarrollo incremental. Siunaorganizacinagregaunanuevaunidad,relativamenteautnoma,entonces lasbasesdedatosdistribuidassoportaranestecrecimientoconelmenorgradode impacto a las unidades ya existentes.En un sistema centralizado cualquier cambio en lasdimensionesdelsistematendraunimpactomayor,nosoloenlasnuevas aplicaciones, sino tambin en las ya existentes. Reduccin en la sobrecarga de la comunicacin. Enunabasededatosdistribuidageogrficamente,elfactorquelasaplicaciones localesveranclaramentereducidoeslasobrecargadelascomunicaciones,en relacinconbasesdedatoscentralizadas.Poreso,enelmximodequelas aplicaciones sean locales es uno de los objetivos primarios en el diseo de las bases de datos distribuidas. Consideraciones en el desempeo. La existencia de varios procesadores autnomos dan como resultado un incremento eneldesempeopormediodeunaltogradodeparalelismo.Estaconsideracin puedeseraplicadaaunsistemamultiprocesadorynonicamentealossistemasde bases de datos distribuidas.Las bases de datos distribuidas tienen la ventaja en que ladescomposicindelosdatospermitemaximizareldesempeodelasaplicaciones locales;deestaformaesminimizadalamutuainterferenciaentrediferentes procesadores. Confiabilidad y disponibilidad. Las bases de datos distribuidas obtienen, por medio de la replica de datos, un alto gradodeconfiabilidadydisponibilidad.Sinembargo,ellograrestametanoestan fcil, pues requiere del uso de ciertas tcnicas, las cuales son difciles de comprender.La capacidad de procesamiento autnomo en los diferentes sitios no es, por s misma, garantadequeexistaunacompletaconfiabilidadenelsistema,peroestogenerara unafcildegradacindelsistema;enotraspalabras,las fallasenunabasededatos distribuida pueden ser ms frecuentes que en las centralizadas, debido al gran nmero de componentes, pero el efecto de cada falla es considerado por cada aplicacin que usalosdatosensitioquefall,yporlotantoesraroqueelsistemaensutotalidad falle. 6 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas 1.3 Los doce objetivos de una base de datos distribuidas. Lasiguienteexpresinsepodraconsiderarcomoelprincipiofundamentaldelos sistemasdistribuidosengeneral,yportantoesaplicablealasbasesdedatos distribuidas: Desde el punto de vista del usuario, un sistema distribuidodeberseridnticoaunsistemano distribuido. Estoquieredecirque,los usuariosdeunsistemadistribuidodeberncomportarse exactamente como si el sistema no estuviera distribuido. Alprincipiofundamentalantesmencionadoseleconocecomoel"objetivooregla cero"delossistemasdistribuidos.Existendocereglasuobjetivosms,lascuales normanlaexistenciadeunsistema distribuidoyenestecaso,deuna basededatos distribuida.Dichos sistemas debern apegarse a ellas, en la medida, en que el diseo y la tecnologa lo permitan, tales reglas son: Autonoma local. Lossitiosdeunsistemadistribuidodebernserautnomos.Laautonomalocal significaquetodaslasoperacionesenunsitiosecontrolanenesesitio;ningnsitio deber depender de algn otro sitio para su buen funcionamiento.La autonoma local implicatambinunpropietarioyunaadministracinlocaldelosdatos,con responsabilidad local: todos los datos pertenecen a una base dedatos local, aunque-seanaccesiblesparaalgnsitioremoto.Portanto,laseguridad,integridady representacin en almacenamiento de los datos locales permanecen bajo el control del sitio local. 7 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas No dependencia de un sitio central. La autonoma local implica que todos los sitios deben tratarse igual; no debe haber dependenciadeunsitiocentralmaestroparaobtenerunserviciocentral.Lano dependenciadeunsitiocentralesdeseableporsmisma,ansinoselograla autonoma local completa. Ladependenciadeunsitiocentralseriaindeseablealmenospordosrazones: primero,elsitiocentralpodraseruncuellodebotella;ensegundolugar,elsistema seravulnerable;sielsitiocentralsufrieraundesperfecto,todoelsistemadejarade funcionar. Operacin continua. Enunsistemadistribuidocomoenunonodistribuido,loidealseriaquenunca hubieralanecesidaddeapagarelsistemaapropsito.Esdecir,elsistemanunca deber necesitar apagarse para que se pueda realizar alguna funcin, como actualizar el DBMS de un sitio existente o aadir un nuevo sitio. Dependencia (o Transparencia) con respecto a la localizacin. Laideabsicadelaindependenciaconrespectoalalocalizacinessimple;no debe ser necesario que los usuarios sepan donde estn almacenados fsicamente los datos, sino que ms bien deben comportarse (al menos desde el punto de vista lgico) comositodoslosdatosestuvieranalmacenadosensupropiositiolocal.La independencia con respecto a la localizacin hace posible la migracin de datos de un sitioaotrosinanularlavalidezdeningnprogramaoactividad.Estaposibilidadde migracin es deseable porque permite modificar la distribucin de los datos dentro de la red en respuesta a cambios en las necesidades del desempeo. Independencia con respecto a la fragmentacin. Un sistema maneja fragmentacin de los datos si es posible dividir una relacin en partesofragmentosparapropsitosdealmacenamientofsico.Lafragmentacines deseableporrazonesdedesempeo:losdatospuedenalmacenarseenlalocalidad dondeseutilizanconmayorfrecuencia,demaneraquelamayorpartedelas operaciones sean locales y se reduzca el trfico de la red. Existen en esencia dos clases de fragmentacin, horizontal y vertical, 8 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Un fragmento puede ser cualquier subrelacin arbitraria que pueda generarse de la relacin original mediante ciertas operaciones. Un sistema que maneja la fragmentacin de los datos deber ofrecer tambin una independenciaconrespectoalafragmentacin(transparenciadefragmentacin);es decir,lasbasesdedatosdistribuidasdebernpodercomportarse(desdeelpuntode vista lgico) como si los datos no estuvieran fragmentados en realidad. Independencia derplica. Un sistema maneja rplica de datos si una relacin dada (o, un fragmento dado de unarelacin)sepuederepresentarenelnivelfsicomediantevariascopias almacenadas o rplicas, en muchos sitios distintos. Larplicaesdeseable almenospor dosrazones:primero, puede producirunmejor desempeo (las aplicaciones pueden operar sobre copias locales en vez de tener que comunicarse con sitios remotos); En segundo lugar, tambin puede significar una mejor disponibilidad.Ladesventajaprincipaldelasreplicaseslaactualizacin,yaque cuando se actualiza un objeto copiado, deben de ser actualizadas todas las replicas de este objeto: Esto es, el problema de la propagacin de actualizaciones. Larplica,comolafragmentacin,debesertransparentealusuario.Enotras palabras,labasededatosdebercomportarsecomosisoloexistieraunasolacopia de los datos. Procesamiento distribuido de las consultas. Laoptimizacinestodavamsimportanteenunsistemadistribuidoqueenuno centralizado.Loesencialesque,enunaconsulta,dondeestnimplicadosvarios sitios,habrmuchasmanerasdetrasladarlosdatosenlaredparasatisfacerla solicitud yescrucialencontrarunaestrategiaeficiente. Porejemplo,unasolicitudde unin de una relacin Rx almacenada en el sitio X y una relacin Ry almacenada en un sitio Y podra llevarse a cabo trasladando Rx a Y o trasladando Ry a X, o trasladando las dos a un tercer sitio Z. As, la importancia crucial de la optimizacin es obvia, y esto asuvezpuedeversecomootraraznmsporlacullossistemasdistribuidos siempre son relacinales (pues las solicitudes relacinales son optimizables). 9 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Manejo distribuido de transacciones. Elmanejodetransaccionestienedosaspectosprincipales,elcontrolde recuperacinyelcontroldeconcurrencia.Enunsistemadistribuido,unasola transaccinpuedeimplicarlaejecucin decdigoenvadossitios. Portanto,sedice quecadatransaccinestcompuestadevariosagentes,dondeunagenteesel proceso ejecutadoen nombre deunatransaccindada enunsitio determinado.Y el sistemarequieresabercundodosagentessonpartedelamismatransaccin;por ejemplo,esobvioquenopuedepermitirseunbloqueomutuoentredosagentesque sean de la misma transaccin. Para asegurar que una transaccin dada sea atmica en el ambiente distribuido, el sistema debe asegurarse de que todos los agentes correspondientes a esa transaccin secomprometanalunsonooretrocedanalunsono,Esteefectopuedelograrse mediante el protocolo de compromiso de dos fases. Encuantoalcontroldeconcurrencia,esta funcinenunambientedistribuidoest basada con toda seguridad en el bloqueo, como sucede en los sistemas no distribuidos (se han estudiado otras estrategias para el control de concurrencia, pero en la prctica, el bloqueo parece seguir siendo la tcnica preferida). Independencia con respecto al equipo. Lasinstalacionesdecmputoenelmundorealporloregularincluyenvarias mquinas diferentesyexiste unaverdadera necesidad de poderintegrarlosdatosen todos esos sistemas y presentar al usuario una sola imagen del sistema. Independencia con respecto al sistema operativo. Este objetivo es en parte un corolario del anterior. Resulta obvia la consecuencia no slodepoderejecutarelmismoDBMSendiferentes equipos,sinotambindepoder ejecutarlo en diferentes sistemas operativos (aun en diferentes sistemas operativos del mismo equipo). Independencia con respecto a la red. Si el sistema ha de poder manejar mltiples sitios diferentes, con equipo distinto y diferentes sistemas operativos, resulta obvia la conveniencia de poder manejar tambin varias redes de comunicacin distinta. 10 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Independencia con respecto al sistema manejador de base de datos (DBMS). EnrealidadnoserequieresinoquelosDBMSenlosdiferentessitiosmanejen todoslamismainterfaz;nonecesitanserporfuerzacopiasdelmismosistema.Por ejemplo,sitantoINGREScomoORACLEmanejaran nicamente elestndarde SQL (amboslomanejanperocadaunotienecaractersticaspropiasqueloshacen prcticamente incompatibles), podra ser posible lograr una comunicacin entre los dos enelcontextodeunsistemadistribuido.Dichodeotromodo,elsistemadistribuido podra ser heterogneo, al menos en cierto grado. Unavezms, enlarealidadlasinstalacionesdecmputonosolosuelenemplear mquinasdistintas,variossistemasoperativosdiferentes,sinotambinejecutan diferentes DBMS; y seria agradable que todos esos DBMS distintos pudieran participar de alguna manera en un sistema distribuido. 1.4Arquitectura Cliente/Servidor 1.4.1 Paradigma Cliente/Servidor. El paradigma que dispone que una aplicacin espere pasivamente a que otra inicie lacomunicacinpermeaunapartetangrandedelcmputodistribuidoquetieneun nombre: paradigma de interaccin cliente/servidor. 1.4.2 Procesamiento Cliente/Servidor. El modelo de procesamiento cliente/servidor surgi como unconcepto de alto nivel de procesamiento compartido de dispositivos, tpico en las redes de rea local.En el procesamientodedispositivoscompartidosenlaredderealocal(LAN),las computadoras personales estn enlazadas a un sistema de dispositivos que permite a las computadoras personales (PCs) compartir recursos.En la terminologa LAN, tales dispositivossonllamadosservidores(unservidordearchivosyunservidorde impresinseran unejemplo).El nombre de servidoresapropiado, puesto queestos dispositivoscompartidossonusadospararecibirsolicitudesdeserviciodelas computadoras personales (PCs). Almismotiempo,elroldelasestacionesdetrabajofuecambiandohasta convertirseenclientesdelosservidores.Estoes,losclientesrealizansolicitudesde servicios a los servidores. 11 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Elmodelodeprocesamientocliente/servidoresunaextensinnaturaldel procesamientodedispositivoscompartidos.Enestemodelo,elprocesamientode aplicaciones esta dividido entre el cliente y el servidor.El procesamiento es inicializado yparcialmentecontroladoporelsolicitantedelservicio(cliente)peronoesun funcionamiento maestro-esclavo, 1.4.3 Ventajas de la arquitectura cliente/servidor. -Permite a las corporaciones obtener cada vez mejores tecnologas de computo.En la actualidad las estaciones de trabajo tienen un rendimiento y una potencia, la cual solo se obtena con mainframes, que eran muy costosas. -Permite queelprocesamiento delos datosserealiceenellugarenel quese encuentran.(Laarquitecturacliente/servidoresunaformaespecialde procesamientodistribuidoycooperativo) Porlotanto, el trficoenlaredseve reducidosignificativamente,yporconsiguientelasnecesidadesde unared de banda ancha y el costo se ven reducido. -Facilita el uso de interfaces de usuario grficas (GUI) disponibles en estaciones de trabajo.Estas nuevas interfaces pueden ser usadas por una gran variedad declientesycuentancondiferentestcnicasparamostrarlainformacin, logrando con esto una fcil navegacin. -Permiteelusodesistemasabiertos.Estoes,elclienteyelservidorpueden correrendiferentesplataformasdesoftwareyhardwarepermitiendoalos usuarios finales decidir libremente que arquitectura utilizar o poder utilizar la ya existente. 1.4.4Desventajas de la arquitectura cliente/servidor.-Siunapartesignificativadelaaplicacinlgicaesmovidaalservidor,el servidorpuedeconvertirseencuellodebotella.Losrecursosdelservidor pueden verse disminuidos por el incremento de demanda debido al aumento de usuarios. -Lasaplicacionesdistribuidas,especialmentelasquesondiseadasparael procesocooperativo,sonmscomplicadasquelasnodistribuidas.Estoes verdadparalas aplicacionesdedesarrollo,ambientesrun-timeyherramientas usadas para el mantenimiento de este ambiente distribuido. 12 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas 1.4.5 Caractersticas del cliente -Esunprogramadeaplicacinarbitrarioquesevuelveclientetemporalmente cuando necesita acceso remoto, pero tambin lleva a cabo otro computo local. -Lo llama directamente el usuario y se ejecuta solo durante la sesin. -Se ejecuta localmente en la computadora personal del usuario. -Inicia el contacto con el servidor. -Puede acceder a varios servicios, segn se necesite, pero contacta activamente con un servidor remoto a la vez. -No necesita hardware poderoso y un sistema operativo complicado. 1.4.6 Funciones del cliente LaFuncinmsimportantequedesempeaunsistemaclienteenunambiente cliente/servidoreslapresentacinyalgunasfuncioneslgicas.Elusuariofinal interacta con una aplicacin desarrollada para la presentacin lgica del sistema. Lasfuncionestradicionalesdepresentacinbasadasencaracteres,endondeel procesador desplegaba los caracteres recibidos secuencialmente desde una aplicacin en pantallaconcaracteres detamao fijo. Lacontinuaevolucin delas funcionesde presentacin ha sido estrechamente ligada con el alto desempeo de las estaciones de trabajo que ofrecan caractersticas grficas. Lascaractersticasgrficaspermitenalprocesadorcontrolardemaneraindividual los pxeles en la pantalla, por tanto, no esta limitado a un tipo de carcter o al nmero decolumnasdelapantalla.Estascaractersticaspermiten el desarrollo deinterfaces grficas de usuario (GUI) capaces de manejar grficos, imgenes, y audio-video. 1.4.7 Interfaz Grfica de Usuario estndar Unainterfazconsistenteentreelusuarioylaaplicacinrepresentaunparte importante en los sistemas abiertos.Las interfaces de presentacin entre el usuario y la aplicacin son llamadas interfaces Grficas de Usuario (GUI), y son diseadas para presentar la informacin a los usuarios de forma grfica. Existe unagranvariedaddeinterfaces,perocadanuevainterfazrequierequelos usuariosylosdesarrolladorestenganunanuevacapacitacinensususos,ylas aplicacionesseanmodificadas.Unanuevainterfazdeusuariorequierequelas aplicacionesseanreescritasparaestanuevaplataforma.Lasaplicacionesescritas 13 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas paraunaGUIespecificanosonportabasaotroambienteGUI.Unejemplode interfaces incompatibles es Linux, Windows y Unix. Auncuandolaindustriadelhardwareysoftware,aunadaaasociacionesde usuariosprefierenunaGUIen particular,SetieneunaGUIestndar,lacualdebede cumplir los siguientes requisitos: Portabilidad.-Lasaplicacionesdebendeserportabasatravsdevarias plataformasdesistemaabiertos.UnaGUIestndardebedeproporcionarunAPI estable en cualquier plataforma, de esta manera permitira una fcil y rpida manera de migrar de una plataforma a otra. Flexibilidad.-UnaGUIestndardebedeserflexibleyextensible,permitiendo ajustarseanuevostiposdemonitoresyaotrosdispositivosdeentradasalida,que podran estar disponibles en un futuro. Herramientas de desarrollo:Cualquier GUI que sea considerada un estndar debe proporcionar un conjunto de herramientas para el desarrollo. Internacionalizacin:Enlaactualidad,lainternacionalizacinesotradela formadelograrunaportabilidad.Estoincluyeotroslenguajes,nmeros,unidades monetarias,formatosdefechayhora,ysmbolosespeciales,ascomomensajes relacionados con la cultura de esos pases. Independencia de plataforma: Para ser un verdadero sistema abierto y un estndar, una GUI deber ser diseado para operar independientemente del sistema operativo o la plataforma de hardware, en el que se esta ejecutando. 1.4.8 Caractersticas del servidor -Esunprogramaprivilegiadodepropsitoespecialdedicadoaofrecerun servicio, pero puede manejar varios clientes remotos a la vez. -Se inicia automticamente al arranque del sistema y continua ejecutndose en varias sesiones. -Espera pasivamente el contacto de los clientes remotos. -Acepta el contacto de varios clientes, pero ofrece un solo servicio. 14 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas -Necesita hardware poderoso y un sistema operativo complejo. 1.4.9 Funciones de los servidores Elmejorejemplodeservidoresespecializadosconrespectoalafuncionalidady diseo son los servidores de bases de datos, Bsicamente, los servidores de bases de datosnospermitenunrpidoalmacenamientoendisco,unsignif icativopoderde procesamiento,ylacapacidaddeinteractuarconvariaaplicaciones(clientes)de manera simultnea. Unservidoresunprocesolgicoqueproveeserviciosasolicitudesde procesamiento.Enlacomputacincliente/servidor,unclienteinicialainteraccin cliente/servidor para enviar las solicitudes a los servidores.La funcin que un servidor debellevaracaboesdeterminada,engranparte,poreltipodesolicitudquelos clientespuedanenviaralservidor.Siunservidoresincapazdellevaracabola solicituddeuncliente,entonceselservidornopuedeparticiparenunainteraccin cooperativa cliente/servidor.Idealmente.Un cliente no enva una solicitud que no sea soportada por un servidor. Engeneral,sinembargo,unavezqueunclienteyunservidorsehan interconectadoatravsdeunared,algunadelassiguientesfuncionespuedenser solicitadas al servidor por el usuario: -Compartirarchivos.Enunambientedegrupodetrabajo,losclientestalvez necesitencompartirlosmismosarchivosde datos.Estosarchivossecolocan enprocesadoresdearchivoscompartidos(Servidoresdearchivos)ylos clientes envan a estos sus solicitudes de 110. -Impresin compartida.En un ambiente de grupo de trabajo, una impresora de altodesempeopuedereemplazaratodaslasimpresorasindividualesdelos clientes.Entoncestodoslosclientespuedenenviarsussolicitudesde impresinalosservidoresdeimpresin.Unservidordeimpresinmantiene todoslosarchivosaserimpresosenunacola,alacualseenvantodoslos archivos de los usuarios, y en su tumo, cada una de ellos sern impresos. 15 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas -Serviciosdecomunicacin.Enunambientedegrupodetrabajoquese encuentra conectado a un host remoto, todas las comunicaciones de software y hardwareseconcentran enundispositivoespecialconocidocomoservidor de comunicaciones, al cual los clientes envan sus solicitudes para ser procesadas. -ServiciosdeFaxEstorequiereusualmentesoftwareyequipoespecial, conocidocomoservidorde fax.Losclientesenvanyrecibendocumentosde fax por medio de una apropiada solicitud del servicio al servidor de fax. -Accesoalasbasesdedatos.Enunambientecliente/servidor,el procesamientoestadivididoenelsistemaclienteyelsistemaservidor,El servidor puede ejecutar una parte de la lgica de la base de datos.Algo similar alservidordearchivos,elservidordebasesdedatosproveealclientedelos datosqueresidenenelservidorpormediodeunasolicitud,Sinembargo,el sistemamanejadordebasesdedatos(DBMS),esmssofisticadoquelos mtodos de acceso bsicos.El DBMS de un acceso a los datos por medio de variosnivelesdebloqueoydeintegridaddedatos.ElDBMSeliminala redundanciapermitiendounatransparenciadedistribucindedatos.Los clientes requieren acceder ciertos datos (a diferencia de un servidor de archivos enelcualsetieneaccesoalarchivocompleto),ytodalamanipulacin necesaria para dar respuesta a la solicitud se realiza en el servidor de bases de datos. Otrasfuncionessolicitadasporlosclientespuedenserdecorreoelectrnico,de red, manejo de configuracin y manejo de recursos, para los cuales se deber de tener los servidores apropiados. Unnodoservidordentrodelmodelocliente/servidorpuedeserespecializadopara realizarciertafuncin.Decualquierforma,losservidoresdebencumplirconlos siguientes requerimientos generales: -Soportemultiusuario.Aunenunpequeogrupodetrabajo,unservidordebe desercapazdeproporcionarservicioamltiplesusuariosconcurrentes.Los 16 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas clientesejecutanmltiplestareasesperandoqueelservidorseacapazde soportar un procesamiento multitarea. -Escalabilidad.Unservidordebedesercapazdesatisfacerlacreciente demandadelosrecursos,ascomodelasaplicaciones.Escalabilidadno significaqueusuariosdebencomprarunsistemadeservidordemayor capacidad de procesamiento lo cual implicara un costo extra.Por el contrario, elsistemadebedesatisfacerlosrequerimientosactualesy,almismotiempo, debe de permitir una fcil expansin. -Desempeo.Unsistemaservidordebeproveernivelesdedesempeo satisfactoriosnecesarios paralaempresa ylosrequerimientos delosusuarios en un ambiente multiusuario cliente/servidor. -Almacenamiento.Como el nmero de aplicaciones ejecutndose y de usuarios aumentan,ylosavancesdelatecnologadedispositivosdealmacenamiento hanhechoqueloscostosbajen,lademandadealmacenamientoderpido acceso se ha convertido en un requisito esencial en un sistema servidor. -Gestinderedes.Lacomunicacincliente/servidorrequieredeuna comunicacindered.Ambos,clienteyservidordebendecontarcon capacidades de red.Sin una red el cliente y el servidor no podran interactuar. -Multimedia.Lasnuevasaplicacionesylasnuevastecnologascuentancon capacidadesmultimedia,esnecesariodarsoportealalmacenamientoy reproduccin de imagen, vdeo y sonido. 1.4.1 0 El sistema X Window ElsistemaXWindowpermiteunmanejotransparentedelainterfazgrficaen estaciones de trabajo.Conocido tambin como X, fue desarrollado conjuntamente por el Instituto Tecnolgico de Massachussets, IBM, y DEC en un proyecto conocido como Athena.La arquitectura X est basada en el modelo cliente/servidor.X proporciona: 17 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas -UnProtocolodecomunicacintransparenteentreunaaplicacinysu presentacinlgica,lacualpuederesidirenunaestacindetrabajo remota. -Alto desempeo en la independencia de dispositivos grficos. Enlatecnologacliente/servidor,elnodoquedespliegayrecibeinformacin,e interacta con el usuario, es el nodo cliente. LosXclientscontienenlaaplicacinlgicafuncionalescritaporeldesarrollador, aunque esta residira en un sistema servidor en la red cliente/servidor.El X Client es enlazado con las libreras X Window y las libreras de las herramientas basadas en X usadas para crear una aplicacin.Aun cuando la designacin de X Client y X Server puedenparecercontradictoriasaladefinicindeclienteyservidordelmodelo cliente/servidor.De hecho: -En elsistema X Window, elXclienteinicialainteraccinconsuservidor,el X Server. -El X Client solicita un X Server para las funciones de despliegue en pantalla. -Un X Server puede dar servicio a mltiples X clients. -X Client y X Server pueden estar en la misma mquina. 1.5 Problemas de los sistemas distribuidos Elmayorproblemaenlasredesdereaampliaesquesonlentas.Porejemplo algunasredestienenunavelocidaddetransferenciade1250bytesporsegundo, mientrasqueundiscodurorepresentativotieneunfactordetransferenciadeal rededor de 1 a 2 millones de bytes por segundo.Por lo tanto, un objetivo principal de lossistemasdistribuidosesreducirelnmeroyvolumendelosmensajes.Este objetivoasuvezdapieaproblemasenvariasreassecundarias,entreellaslas siguientes: Procesamiento de consultas. Elobjetivodereduciralmnimoeltrficoenlaredimplicaqueelprocesomismode optimizacin de consultas debe ser distribuido, adems del proceso de ejecucin de 18 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas lasconsultas. En otras palabras, un procesorepresentativoconsistiren un pasode optimizacin global, seguido de pasos de optimizacin local en cada uno de los sitios.Porejemploserequiere unaconsultaC enelsitioX,yqueCimplica unareunin de una relacin Ry de cien tuplas en el sitio Y con una relacin Rz de un milln de tuplas enelsitioZ.EloptimizadorubicadoenelsitioXescogerlaestrategiaglobalpara ejecutar C; y resulta evidente la importancia de que decida trasladar Ry a Z y no Rz a Y (y ciertamente no Ry y Rz a X).Despus, una vez que haya decidido trasladar Ry a Z, el optimizador local en Z ser el que decida cul debe ser la estrategia para realizar la unin en este sitio. Administracin del catlogo. Enunsistemadistribuido,elcatlogodelsistemaincluirnosololainformacin usualacercadelasrelaciones,ndices,usuarios,etctera;sinotambintodala informacindecontrolnecesariaparaqueelsistemapuedaofrecerlaindependencia deseadaconrespectoalalocalizacin,lafragmentacinylarplica.Existenvarias tcnicas para el almacenamiento de los catlogos: 1. Centralizado: El catlogo total se almacena una sola vez, en un sitio central. 2.Replicascompletas:Elcatlogototalsealmacenaporcompletoentodoslos sitios. 3.Dividido:Cadasitiomantienesupropiocatlogoparalosobjetosalmacenados enesesitio.Elcatlogototaleslaunindetodosloscatlogoslocalesno traslapados. 4. Combinacin de 1 y 3: Cada sitio mantiene su propio catlogo local, como en el punto 3; adems, un sitio central nico mantiene una copia unificada de todos los catlogos locales, como en el punto 1. Todosestosenfoquestienenalgnproblema.Esobvioqueelenfoque1violael objetivo de "no depender de un sitio central": el enfoque 2 adolece de una grave falta deautonoma,puestodaactualizacindelcatalogodeberdeserpropagadaacada unodelossitios.Elenfoque3hacemuycostosastodaslasoperacionesnolocales (noencontrarunobjetoremotorequerirobteneraccesoalamitaddelossitiosen promedio).El enfoque 4 es ms eficiente que el 3 (encontrar un objeto remoto requiere sloelaccesoasucatlogoremoto),peroviolaunavezmselobjetivode"no 19 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas dependerdeunsitiocentral".Porlotanto,lossistemasenlapracticacasinunca usan ninguno de estos cuatro enfoques. Propagacin de actualizaciones. Elproblemabsicoconlarplicadedatos,comosesealeslanecesidadde propagarcualquiermodificacindeunobjetolgicodadoatodaslascopias almacenadas de ese objeto, Un problema que surge es algn sitio donde se mantiene una copia del objeto podra no estar disponible en el momento de la actualizacin.As, la estrategia de propagar las actualizaciones de inmediato a todas las copias podra ser inaceptable,porqueimplicaquelamodificacin(ylatransaccin)fracasarasi cualquiera de estas copias no esta disponible en el momento. Un mtodo para manejar este problema es el llamado mtodo de "copia primaria", el cual funciona de la siguiente manera: -Una de las copias del objeto se designa como copia primaria.Las dems sern copias secundarias. -Lascopiasprimariasdelosdiferentesobjetosestnensitiosdiferentes(de modo que, una vez ms, este mtodo es distribuido). -Las operaciones de actualizacin se consideran completas tan pronto como se hamodificadolacopiaprimaria.Elsitiodondeseencuentraesacopiase encarga entonces de propagar la actualizacin a las copias secundarias en un momento posterior. Este mtodo representa un problema, una violacin al objetivo de autonoma local, porqueahoraunatransaccinpodrafallarcuandounacopia(primaria)remotade algn objeto no estuviera disponible, aun cuando se dispusiera de una copia local. Control de recuperacin. 20 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas El control de recuperacin en los sistemas distribuidos se basa por lo regular en el protocolodedosfases.Elcompromisodedosfasesesobligatorioencualquier ambiente en el cual una sola transaccin puede interactuar con vados manejadores de recursos autnomos, pero tiene especial importancia en un sistema distribuido porque losmanejadoresderecursosencuestin(DBMSlocales)operanensitiosremotos distintos y por tanto son muy autnomos. De acuerdo a lo anterior surgen los siguientes puntos: 1.Elobjetivode"nodependenciadeunsitiocentral'dictaquelafuncinde coordinador no debe asignarse a un sitio especifico de la red, sino que deben realizaradiferentessitiosparadiferentestransacciones.Porlogeneralse encarga de ella el sitio en el cual se inicia la transaccin en cuestin. 2.Elprocesodecompromiso endos fasesrequiereunacomunicacin entre el coordinadorytodoslossitiosparticipantes,locualimplicamsmensajesy mayor costo. 3.El sitio Y acta como participante en un compromiso de dos fases coordinado por el sitio X, el sitio Y deber hacer lo ordenado por el sitio X (compromiso o retroceso), lo cual implica otra prdida de autonoma local. 4.Encondicionesidealeselprocesodecompromisoendosfasesfuncionar anencasodepresentarsefallasdesitiosodelaredencualquierpunto.Idealmente,elprocesodeberasercapazdesoportarcualquiertipo concebible de falla. Control de concurrencia. Comoenmayorpartedelossistemasdistribuidoselcontroldeconcurrenciase basa en el bloqueo, tal como sucede en casi todos los sistemas no distribuidos.Pero enunsistemadistribuido,lassolicitudesdeprueba,establecimientoyliberacinde bloqueoseconvierten enmensajes(suponiendoqueel objeto en cuestines unsitio remoto), y los mensajes implican costos adicionales.Por ejemplo, se considerara una transaccinT que necesitaponeral daun objetodelcual existenrplicasennsitios remotos.Si cada sitio se encarga de los bloqueos sobre los objetos almacenados en 21 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas ese sitio (como suceder si se cumple la suposicin de autonoma local), la puesta en practica directa requerir por lo menos de 5 mensajes por cada sitio: -solicitud de bloqueo -concesiones de bloqueo -mensajes de actualizacin -verificaciones -solicitudes de liberacin de bloqueo As pues, el tiempo total invertido en la actualizacin podra con facilidad ser mayor que en un sistema centralizado. Otro problema con el bloqueo en un sistema distribuido es que puede conducir a un bloqueo mutuo, en el cual se veran implicados varios sitios. Elproblemaconunbloqueocomosteesqueningunodelossitiospuede detectarloempleandosloinformacininternadeestesitio.Dichodeotromodo,no existenciclosenlasgrficasdeesperalocales,aunqueaparecerunciclosise combinanesasdosgrficaslocalesparaformarunagrficadeesperaglobal.En consecuencia,ladeteccindebloqueosmutuosglobalesimplicamayorescostos adicionalesdecomunicacin,puesrequierejuntardealgunamaneralasgrficas locales individuales. 1.6 Soporte para bases de datos distribuidas ExistendiversosSistemasManejadoresdeBasesdeDatos(DBMS)comerciales, loscualesensusiniciosfuerondiseadosparaelmanejodebasesdedatos centralizadas, logrando un hito en el manejo de datos puesto que permitieron el diseo desistemasabiertos. Estogracias alsublenguajededatoscon quetrabajabanenla realizacin de consultas (por lo general SQL), los programadores de aplicaciones solo se preocupaban por generar las consultas en SQL y no por generar consultas para uno u otro DBMS en particular. Alaumentarlacantidaddedatosylanecesidaddeinformacin,ydelamisma maneraalevolucionarlasbasesdedatoscentralizadasadistribuidas,losDBMS tambintuvieronqueevolucionaraloqueactualmenteseconocecomoSistemas ManejadoresdeBasesdeDatosDistribuidas(DDBMS).EstosDDBMS,ademsde contarcon elsublenguaje dedatosdebentener nuevascaractersticaspropiasdelas basesdedatosdistribuidascomosonelsoportedefragmentacin,replicacin,yel 22 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas procesamiento de consultas distribuidas.Sin dejar a un lado que un DDBMS debe de serunsistemaabierto,estodebidoaqueelDDBMSsedebedecomunicarconotro sito en el cual tal vez no cuente con el mismo DDBMS. Algunos de los DDBMS comerciales con los que se cuenta son INFORMIX, DB2 y ORACLE.A continuacin se presenta una tabla en la cual se muestran algunas de las caractersticas de dichos DDBMS: DDBMSDSLREPLICA INFORMIX VS.07SQLSoportada DB2 V5SQLIntegrada ORACLE V8SQLIntegrada ExistenmuchosmsDDBMScondiferentescaractersticas,porejemplo,Sybase ofrecelasprimitivaspero-lasaplicacionesdebendeimplementarlastransacciones distribuidasporsimismas,sinembargo,esposiblediseardemaneraoptimauna basededatosdistribuidaconlasherramientasqueestosDDBMScomerciales proporcionan. 1.7Resumen Las caractersticas que deben de tener los sistemas de bases de datos son: 23 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Control centralizado: Un Administrador de base de datos (DBA) tiene la funcin de garantizar la seguridad de los datos, el administrador local tiene la responsabilidad de surespectivabasededatos,mientrasqueeladministradorglobaltienelaprincipal responsabilidad de la totalidad de los datos de la base de datos. Independenciadedatos:quieredecirque,laorganizacinactualdelosdatoses transparente a las aplicaciones y en el caso de una base de datos distribuida se refiere tambin a la transparencia de distribucin. Reduccin de redundancia: la redundancia debe de ser reducida, por dos razones: evitarlainconsistenciaentrevariascopiasdelosdatos,yrecuperarespaciode almacenamientoenelsistema,ancuandoenunabasededatosdistribuida,las aplicacionespodranversefavorecidasconlaredundancia,yaque,debidoaesta,la razn de disponibilidad puede aumentar. Estructurasfsicascomplejasyaccesoeficiente:Elusodeestructurasdeacceso podra ser una herramienta para el acceso eficiente a la base de datos, es conveniente tomarencuentalaoptimizacinlocal,elaccesoalasbasesdedatoslocales,yla optimizacinglobal,elaccesoalossitosqueconformanlabasededatos,delas consultas. Seguridad:Enlasbasesdedatostradicionales,eladministradordelabasede datos,tieneelcontrolcentralizado.Enlasbasesdedatosdistribuidas,setienen, adems,queconsiderardosaspectos,elgradodeautonomaylaseguridadenlos accesos de los usuarios. Lasbases dedatosdistribuidastienenalgunasventajassobrelasnodistribuidas, estas son: Razonesorganizacionales:Lamayorpartedelasorganizacionesestnya descentralizadas. 24 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Interconexin de las bases de datos existentes: Las bases de datos distribuidas son la solucin cuando se tiene varias bases de datos en la organizacin. Desarrollo incrementar: Es posible agregar una nueva unidad en una base de datos distribuida si afectar a las ya existentes. Reduccin delasobrecargadelacomunicacin:Enuna basede datos distribuida geogrficamente,severareducidalasobrecargadelascomunicacionesen comparacin con una base de datos no distribuida. Consideracioneseneldesempeo:Laexistenciadevariosprocesadores autnomos da como resultado un alto grado de procesamiento en paralelo. Confiabilidadydisponibilidad:Pormediodelarepicadedatos,selograunalto grado de contabilidad y disponibilidad. Existeunprincipiofundamentalenlossistemasdistribuidos,elcualesaplicablea las bases de datos distribuidas: Desde el punto de vista del usuario, un sistema distribuido deber ser idntico a un sistema no distribuido. Hay adems de este, 12 reglas para los sistemas distribuidos: Autonoma local: Significa que todas las operaciones en un sitio se controlan en ese sitio. No dependencia de un sitio central: Todos los sitios son iguales y no dependen de ningn otro sitio. Operacin continua: Un sistema distribuido siempre esta disponible. Independenciaconrespectoalalocalizacin:Losusuariosnuncasabrnla localizacin real de los datos. 25 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Independenciaconrespectoala fragmentacin: Unsistemadistribuidodeberdar la apariencia de que se encuentra en una sola pieza. Independenciadereplica:Unsistemadebercomportarsecomosisoloe)dstiera una sola copia de los datos. Procesamiento distribuido de consulta: En una consulta, la cual involucro a ms de un sitio, siempre habr varias maneras de trasladar en la informacin para satisfacerla peticin y encontrar la estrategia ms eficiente. Manejodistribuidodetransacciones:Deberpoderprocesarunatransaccina travs de varios sitios. Independenciaconrespectoalequipo:Deberpoderprocesarunatransaccina travs de diferentes plataformas de hardware y aparentar ante el usuario como si fuera uno solo. Independenciaconrespectoalsistemaoperativo:Deberdesercapazdetrabajar en cualquier sistema operativo. Independencia con respecto a la red: Deber de ser capaz de trabajar en diferentes redes. Independencia con respecto al DBMS: Varios DBMS debern trabajar en conjunto y procesar las transacciones. El paradigma que dispone que una aplicacin debe esperar pasivamente a que otra aplicacin inicie la comunicacin, tiene el nombre de interaccin cliente/servidor. El modelo de procesamiento cliente/servidor surgi del concepto de procesamiento compartido de las redes de rea local.As, las computadoras personales conectadas a unsistemapuedencompartirrecursos,lacomputadoraquesolicitaelrecursopasaa 26 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas seruncliente,mientrasqueaquellaquecomparteelrecursoyrecibelapeticinse convierte en servidor. Esta arquitectura provee ciertas ventajas: -Permite integrar mejores tecnologas al sistema. -Permitequeelprocesamientodelosdatosserealiceenellugarenelque estos residen -Facilita el uso de interfaces grficas de usuario. -Permite el uso de sistemas abiertos. A pesar de todo esto, tambin cuenta con algunas desventajas: -Elservidorpuedeconvertirseencuellodebotella,alversedisminuidoslos recursos del servidor. -El desarrollo de aplicaciones distribuidas es ms complicado que el de las no distribuidas. Tantoelclientecomoelservidor,debendecumplirconciertascaractersticaspara ser considerados como tales: Cliente -Esunprogramadeaplicacinarbitrarioquesevuelveclientetemporalmente cuando necesita acceso remoto, pero tambin lleva a cabo otro computo local. -Lo llama directamente el usuario y se ejecuta solo durante la sesin. -Se ejecuta localmente en la computadora personal del usuario. -Inicia el contacto con el servidor. -Puede acceder a varios servicios, segn se necesite, pero contacta activamente con un servidor remoto a la vez. -No necesita hardware poderoso y un sistema operativo complicado. Servidor 27 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas -Esunprogramaprivilegiadodepropsitoespecialdedicadoaofrecerun servicio, pero puede manejar varios clientes remotos a la vez. -Seiniciaautomticamente alarranquedelsistemaycontinua ejecutndose en varias sesiones. -Operaenunacomputadoracompartida(esdecir,noenunacomputadora personal). -Espera pasivamente el contacto de los clientes remotos. -Acepta el contacto de varios clientes, pero ofrece un solo servicio. -Necesita hardware poderoso y un sistema operativo complejo. Elcliente debe de cumplir con la funcin de presentar la informacin al usuario, ascomoderealizaralgunasfuncioneslgicasenelprocesamientodedicha informacin.Porsuparteelservidordebedeproveerserviciosasolicitudesde procesamiento, el cliente inicia la interaccin cliente/servidor enviando solicitudes a los servidores,lafuncindeunservidordebellevaracabounadeterminadaaccin,de acuerdo a la solicitud enviada por el cliente.Algunas funciones que un servidor pudra realizar seria: -Compartir archivos. -Compartir impresoras. -Servicios de comunicacin. -Servicios de fax. -Accesos a las bases de datos. Unservidor deber, tambin, cumplir con ciertos requerimientos generales: -Soportemultiusuario:Debedesercapazdeproporcionarservicioamltiples clientes. -Escalabilidad:Debedesercapazdesatisfacerlacrecientedemandadelos recursos y las aplicaciones. -Desempeo: Un servidor debe proveer niveles de desempeo satisfactorios. -Almacenamiento: Debe de ser capaz de almacenar tanto aplicaciones, como los archivos generados por estas y los usuarios. 28 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas -Gestindered:Tantoelservidorcomoelclientedebendecontarcon capacidades de red. -Multimedia:Enlaactualidadlanecesidadde que unservidorsoportedatos, vdeo y sonido son esenciales. Debidoaqueunsistemadistribuidoinvolucroelprocesamientocooperativoentre vadosservidoresyclientes,sepresentanalgunosproblemasquesedebendetomar en cuenta para ser solucionados: Procesamientodeconsultas:Elprocesodeberdeserdistribuido,porlotanto,un procesorepresentativoconsistirenunaactualizacinglobalseguidade optimizaciones locales en cada sitio. Administracin del catalogo: En un sistema distribuido, el catalogo del sistema incluir lainformacin acerca delasrelaciones,losndices,los usuarios, ylalocalizacin de fragmentos y replicas de los datos. Propagacindelasactualizaciones:Es necesariopropagarcualquieractualizacinde un objeto dado, en todas las copias existentes de ese objeto en el sistema. Controlderecuperacin:Esnecesarioqueunsistemadistribuidocuenteconun mtododerecuperacin,esto,encasodecadasdelsistema.Elcontrolde recuperacin en los sistemas distribuidos se basa por lo regular en el protocolo de dos fases.El compromiso de dos fases es obligatorio en cualquier ambiente en el cual una sola transaccin puede interactuar con varios manejadores de recursos autnomos. Controldeconcurrencia:elcontroldeconcurrenciasebasaenelbloqueo,las solicitudes de prueba, establecimiento y liberacin de bloqueo, los cuales se convierten enmensajes,yporlotantoimplicacostosadicionales.La puestaen practicadirecta requerirporlomenosde5mensajesporcadasitioinvolucradoenlatransaccin: solicituddebloqueo,concesionesdebloqueo,mensajesdeactualizacin, verificaciones, solicitudes de liberacin de bloqueo. 29 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Alaumentarlacantidaddedatosylanecesidaddeinformacin,ydelamisma maneraalevolucionarlasbasesdedatoscentralizadasadistribuidas,losDBMS tambintuvieronqueevolucionaraloqueactualmenteseconocecomoSistemas Manejadores de Bases de Datos Distribuidas (DDBMS).Estos DDBMS debern contar con:elsublenguajedeconsultas,elsoportedefragmentacin,replicacin,yel procesamiento de consultas distribuidas.Sin dejar a un lado que un DDBMS debe de ser un sistema abierto capaz de interactuar con otros DDBMS. 1.8 Preguntas de repaso 1.-Cualessonlascaractersticassobrelascuales,esposiblehaceruna comparacin entre bases de datos centralizadas y bases de datos distribuidas? 2.-Cualessonlasventajasquetienenlasbasesdedatosdistribuidassobrelas centralizadas? 3.-Cul es la regla cero de los sistemas distribuidos? 4.-Por qu la regla cero de los sistemas distribuidos es considerada el principio de las bases de datos distribuidas? 5.-A que se refiere la autonoma en el enfoque de las bases de datos distribuidas? 6.-Quesignificatransparenciadentrodelentornodelasbasesdedatos distribuidas? 7.-Cmo describe la arquitectura cliente - servidor? 8.-Cuales deben ser las caractersticas de un cliente? 9.-Cules deben ser las caracteristic as de un servidop10.-Que requerimientos son necesarios para un servidor? 11.- Cuales son los principales problemas a los que se enfrentan los diseadores de bases de datos distribuidas? 30 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Bibliografa [1] Date, C.J.; "An lntroduction to Databases Systems"; Volume 1-1 Fifth Edition; Addison-Wesley Publishing Company; U.S.A.; Reprinted July, 1990 [2] Date, C.J-; "An Introduction to Databases Systems"; Volume li; Addison-Wesley Publishing Company; U.S.A.; Reprinted July, 1995 [3] Korth, Henry F. Silberschatz, Abraham; "Database System Concepts"; Second Edition; McGraw-Hill; U.S.A-; Internacional Edition 1991 [4] Berson, Alex - "Client/ServerArchitecture'; McGraw-Hill; U.S.A.-, 1992 [5]Renuad,PaulE.;"IntroductiontoClient/ServerSystemsApracticarguidefor systems professionals"; Wiley Professional Computing; U.S.A.; 1993 31 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Objetivo Elalumnocomprenderlastcnicasde diseo debasesdedatosdistribuidas,as como cada uno de los tipos de fragmentacin existentes y las operaciones necesarias para realizarla. Introduccin En este captulo se tratarnlas consideraciones que se debern tener al disear la distribucin de la base de datos, as como los tipos de fragmentaciones que existen y como se obtienen.Tambin se expondr la forma en como se debern llevar a cabo el procesamientodelasconsultasenunsistemacondatosdistribuidosyloscostosde dicho procesamiento, A continuacin se presenta una tabla con las operaciones del lgebra relaciona que se utilizarn a lo largo del captulo: OperacinAbreviacinSmbolo SelectSLo ProjecionPiH JoinJN Semi-joinsi UnionUN Producto cartesianoCPX Natural JoinNJN Natural Semi-joinNSJ DiferenciaDF Captulo II Bases de Datos en mltiples servidores 32 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas 2.1 Consideraciones en la distribucin de bases de datos Desdela primera etapadelasbasesde datos distribuidas alaactualidad,se han desarrolladovariastcnicasparasudiseo.Decualquierformaestaclaroqueel diseo de bases de datos distribuidas no es fcil, ya que por si mismas, las tcnicas y organizacin, en el diseo de un sitio sencillo son complicadas, stasse vuelven ms complicadas en el diseo de un sistema multisitio.Desde el punto de vista tcnico, los nuevos problemas que se presentan son la interconexin entre los sitios por medio de lared,yladistribucin optimadelosdatosyaplicaciones enlossitiosparalograr un desempeooptimodelsistema.Desdeelpuntodevistaorganizacional,la descentralizacin es crucial, puesto que se sustituir por un sistema distribuido al tpico y extenso sistema centralizado, y en el caso de la distribucin de una aplicacin tendra un gran impacto en la organizacin. El diseo de una base de datos centralizada consiste en: 1.Disear el "esquema conceptual", el cual describe la base de datos- 2.Disear el 'esquema fsico", mapeando el esquema conceptual con las reas de almacenamiento y determinando los mtodos de acceso. En las bases de datos distribuidas estos dos puntos son utilizados para disear el esquema global y disear las bases de datos locales en cada sitio.La distribucin de las bases de datos requiere agregar dos nuevos puntos: 3.Disearlafragmentacindelosdatos,determinandocomolasrelaciones globalesserndivididas,horizontalmente,verticalmenteoenfragmentos mixtos. 4.Disear la distribucin de los fragmentos, determinando como se mapearn los fragmentos,conlasimgenesfsicas.Enestepuntosondeterminadaslas replicas de los fragmentos. Estos dos puntos son caractersticos en el diseo de datos distribuidos. 33 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas 2.1.1 Objetivos del diseo de los datos distribuidos En el diseo de los datos distribuidos, los siguientes objetivos debern ser tomados en cuenta: Procesamiento local. La distribucin de los datos aumenta el procesamiento local, esto correspondiendo a un principio bsico de quelos datos son colocados lo ms cercano a las aplicaciones quelosutilizan.Unamanerasimpledeejemplificarelprocesamientolocal,es considerardostiposdereferenciasalosdatos:referencias"locales"yreferencias "remotas".Claramente, una vez que los sitios de origen de las aplicaciones conocen la localizacinlocalyremotadelosdatos,lareferenciadependenicamentedela distribucin de los mismos. Se deber, tambin, tomar en cuenta cuando una aplicacin tiene un procesamiento local completo, es decir la aplicacin se ejecuta completamente en el lugar de origen.Laventajadelprocesamientolocalcompletonosolamentereducelosaccesos remotos, sino que adems, incremento la simplicidad en el control de la ejecucin de la aplicacin. Disponibilidad y confiabilidad de los datos distribuidos. Elalmacenamientodemltiplescopiasdelainformacinpermitelograrunalto gradodedisponibilidadparalasaplicacionesquesololeenomuestranlosdatos;el sistema puede conmutar a una copia alternativa, cuando la copia que comnmente era accesada no se encuentra disponible. LaConfiabilidadselograpormediodelalmacenamientodemltiplescopiasdela informacinpermitiendorecuperarla,decadasdelsistemaodedaosfsicosen alguna de las copias, usando cualquier otra copia disponible. Distribucin de la carga del trabajo. La distribucin de la carga del trabajo en los sitios es una caracterstica importante delossistemasdistribuidos.Ladistribucindelacargadeltrabajoeshechaen relacinconelpoderdecmputoyutilizacindelequipodecadasitio,ypara 34 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas maximizar el grado de paralelismo en la ejecucin de las aplicaciones.La distribucin de la carga del trabajo puede provocar un efecto negativo en la ejecucin local. Disponibilidad y costo del almacenamiento. Ladistribucindelasbasesdedatossereflejaenelcostoydisponibilidaddel mediodealmacenamientoenlosdiferentessitios.Estoesposibleteniendositios especializados en la red para el almacenamiento de datos.Por lo general, el costo del almacenamientodelosdatosnosestanrelevante,comparadoconelcostodeCPU,I/O, y el costo de la transmisin de las aplicaciones. 2.2 Diseo de bases de datos distribuidas 2.2.1TcnicasdediseoTop-DownyBottom-Updebasesdedatos distribuidas Setienedosalternativaseneldiseodelasbasesdedatosdistribuidas,las tcnicas Top-Down y Bottom-Up. Enlatcnicatop-down,secomienzadiseandoelesquemaglobal,yseprocede con el diseo de la fragmentacin de los datos, despusse distribuyen los fragmentos enlossitios,creandolasimgenesfsicas.Estatcnicaescomplementadaconla construccin,encadasitio, del"diseo fsico"delosdatosqueestarnalmacenados ah. Cuando la base de datos distribuida es desarrolladacomo un complemento de una base de datos existente, no es tan fcil lograr esto con la tcnica top-down- De hecho, enestecasoelesquemaglobalest,porlogeneral,comprometidoconlosdatos existentes. Cuando una nueva base de datos va a ser agregadaa una ya existente, la tcnica dediseobottom-uppuedeserutilizada.Estatcnicaconsisteenlaintegracinde esquemasexistentesenunsoloesquemaglobal.Paralaintegracin,sedeberde unirdefinicionesdedatoscomunesyresolverconflictosentrediferentes representaciones del mismo dato. En resumen, la tcnica bottom-up requiere: 35 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas 1.Laseleccin de unmodelode basededatoscomnpara disearel esquema global de la base de datos. 2.La traduccin de cada esquema local al modelo de datos comn. 3.La integracin de los esquemas locales en el esquema global comn. 2.2.2 Diseo de los fragmentos de la base de datos El diseo de los fragmentos es la primera parte dentro de la tcnica top-down.El propsitodelafragmentacinesdeterminarfragmentosnotraslapados,loscuales sern unidades lgicas de distribucin. Sepodrverque,lastuplasyatributosdelarelacin no podrnserconsiderados como"unidadesindividualesdedistribucin'.Eldiseodefragmentosconsisteen agrupar tuplas (en el caso de la fragmentacin horizontal) o atributos (en el caso de la fragmentacin vertical), las cuales tienen las "mismas propiedades" desde el punto de vistadeladistribucin.Cadagrupodetuplasoatributosquetienenlas"mismas propiedades"puedeconstituir un fragmento. La ideabsica esquesidoselementos cualquieradeunmismofragmentotienelasmismaspropiedades"desdeelpuntode \Asta de la distribucin, cualquier mtodo usado para localizar un dato puede entonces localizar a cualquiera. 2.2.3 Correctez de la fragmentacin Para que una fragmentacin sea correcta, esta deber de cumplir con las siguientes caractersticas: Completez La descomposicin de una relacin R en fragmentos RI,R2, ... ,Rn, es completa si y solo si cada elemento de datos en R puede ser encontrado en algn Ri Reconstruccin SilarelacinResdescompuestaenfragmentosRl,R2,...,Rn,debieraexistirun operador relacional V tal que: R V RiExclyete 36 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas SilarelacinResdescompuesta,enfragmentosRl,R2,....Rn,ydatosde] elemento di estn en Rj entonces di no debiera estar en algn otro fragmento Rk = k). 2.2.4 Fragmentacin horizontal Lafragmentacinhorizontalconsisteenparticionarlastuplasoregistrosdeuna Tabla global en subconjuntos de tuplas o registros; esto es muy utilizado en las bases de datos distribuidas, donde cada subconjunto pueden contener datos con propiedades geogrficamente comunes. Esimportante,dentrodelafragmentacinhorizontal,considerarlassiguientes definiciones: Predicado simple Dado R[Al,A2, ... A.], un predicado simple pj es: pj:Ai u Valor donde u e {=, =, >, , }, Valor e Di y Di es el dominio de A. Se tendr entonces R[pl,P2,P3,---,PMI Predicados minitermino Dado Ri y Pti = {p1,p2, ... pj definir M = {mi1, mi2, ... miz} como: Mi = {mij l mij = ^pik e pri pik*}, 1 k m, 1 j z donde pi*= pi o pi* = ~pi selectividad de miniterminos sel(mj) Nmero de tuplas de la relacin que sera accesada por una consulta de usuario la cual es especificada acorde a un predicado minitermino mj dado. frecuencias de acceso: acc(qj) Frecuencia con la cual la aplicacin qj accesa datos. La frecuencia de acceso por una predicado minitermino puede tambin ser definida. Considrese la siguiente relacin global: Proveedor(pclave, nombre, cveciudad) 37 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas pClaveNombrecveciudad P01John SmithSF P02Jos SanchzLA P03Juan PrezLA P04Steven FreemanSF P05AlexSD P06TereSD Para la cual se tiene la siguiente aplicacin: q: Obtener la clave y el nombre de los proveedores de cada ciudad. Se tendrn los siguientes predicados simples: P1 = {cveciudad = "SF" } P2 = { cveciudad = "LA" } P3 = { cveciudad = "SD" } Dandocomoresultadolossiguientespredicadosminiterminos,loscualesse obtienen de las combinaciones de los predicados simples: m1 = {SF^LA ^ SD}contradictorio m2 = {SF ^~LA ^ SD}contradictorio m3 = {SF ^~LA ^ ~SD} .. M6 = {~SF ^~LA ^ ~SD} contradictorio .. M7 = {~SF ^LA ^ ~SD} M8 = {~SF ^~LA ^ SD} Eliminando los miniterminos contradictorios se obtiene el siguiente resultado, donde cada uno de estos miniterminos representa un fragmento de la relacin global: M3 = {SF ^~LA ^ ~SD} M7 = {~SF ^LA ^ ~SD} M8 = {~SF ^~LA ^ SD} 38 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Entonces la fragmentacin horizontal estara dada de la siguiente forma: Proveedor1 = SL cveciudad = SF Proveedor Selectpclave, nombre, cveCiudad into Proveedor1from Proveedor Where cveCiudad = SF PclaveNombreCveciudad P01John SmithSF P04Steven FreemanSF Proveedor2 = SL cveciudad = LA Proveedor Selectpclave, nombre, cveCiudad into Proveedor2from Proveedor Where cveCiudad = LA PclaveNombreCveciudad P02Jos SanchzLA P03Juan PrezLA Proveedor3 = SL cveciudad = SD Proveedor Selectpclave, nombre, cveCiudad into Proveedor3 from Proveedor Where cveCiudad = SD PclaveNombreCveciudad P05AlexSD P06TereSD Lascondicionesanteriorescumpliranconladefinicindefragmentacin,silos nicosvaloresposiblesparaelatributoCveciudadfueran"SF","LA"ySD;deotro modo no se sabra a que fragmento corresponden las tuplas que contengan otro valor. 39 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas La reconstruccin de la Tabla global Proveedor se logra fcilmente, por medio de la siguiente condicin: Proveedor = Proveedor1 UN Proveedor2UN Proveedor3 Create View ReconstruccionProveedor As Select * from Proveedor1 Union All Select * from Proveedor2 Union All Select * from Proveedor3 Lareconstruccindelarelacinglobalsiempresellevaacabo,pormediodela operacin de unin. 2.2.5 Fragmentacin horizontal derivada En algunas ocasiones, la fragmentacin horizontal de unatabla no se puede basar enalgunapropiedaddesuspropiosatributos,perosederivadelafragmentacin horizontal de otra tabla. Considrese el siguiente ejemplo: Pedido(pclave, cveProducto,cant) PclavecveProductoCant P012325123 P01254721 P02329898 P03789587 P04741 053 P04258910 Donde pclaveeslaclavedelproveedor. Estoessignificativoparalaparticin de esta relacin ya que un fragmento contiene las tuplas para los proveedores con los cualesseobtienelacveciudad.Noobstantequecveciudadnoesunatributodela 40 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas tabla Pedido, sino que es un atributo de latabla Proveedor.Por lo tanto, se necesita una operacin de semi-join para determinar las tuplas de Pedido que corresponden con los proveedores en cierta cveciudad.Esto se logra de la siguiente manera: Pedido1 = Pedido SJ pclave = pclave Proveedor1 Select A.* into Pedido1 From Pedido AInnerJoin Proveedor1Bon (A.pclave=B.pclave) PclavePnumDeptoCant P012325Compras123 P012547Compras21 P047410Ventas53 P042589Sistemas10 Pedido2 = Pedido SJ pclave = pclave Proveedor2 Select A.* into Pedido2 From Pedido AInnerJoin Proveedor2Bon (A.pclave=B.pclave) PclavePnumDeptoCant P023298Ventas98 P037895Finanzas87 Pedido3 = Pedido SJ pclave = pclave Proveedor3 Select A.* into Pedido3 From Pedido AInnerJoin Proveedor3Bon (A.pclave=B.pclave) El efecto de la operacin semi-join nos permite seleccionar de Pedido las tuplas que satisfacenlacondicindeuninentreProveedor1,oProveedor2,oProveedor3y Pedido, de esta manera se determinaran aqullas tuplas de la Table Pedido que hacen referenciaaproveedoresenSanFrancisco,LosngelesoSanDiego, respectivamente. LareconstruccindelaTableglobalPedidopuedelograrsepormediodeuna operacin de unin como en el caso de la table Proveedor. La integridad de un fragmento requiere que no existan claves de proveedores en la TablePedido,loscualesnoestndentrodelatablaProveedor.Estoesuna restriccin tpica dentro de las bases de datos conocida como integridad referencial. 41 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas 2.2.6 Fragmentacin vertical La fragmentacinverticaldeunatablaglobales lasubdivisindesusatributosen grupos,losfragmentossonobtenidosalproyectarlatablaglobalsobrecadagrupo.La fragmentacin es correcta si cada atributo es mapeado por lo menos con un atributo delosdemsfragmentos;porotraparte,esposiblereconstruirlatablaoriginalpor medio de uniones de todos los fragmentos a la vez.Considrese el siguiente ejemplo: Emp(Cvemp, Nom, Sal, lmp, Depto) CvempNomSalImpDepto E12Juan Prez45001515 E56Jos Hernndez756159 E78Luis Prez92541517 E98Maria Sols-23452522 E32John Smith54892-522 EglRocio Snchez4600158 E73Carmen Campos7531515 Considrese las siguientes aplicaciones: q1:Obtener el nombre y departamento de todos los empleados q2:Obtener el clave, salado y tasa de impuestos por departamento q3:Obtenerlaclave,nombreydepartamentodelosempleadosconsaladomayora 10,000 Se tiene la siguiente matriz de accesos: Total de S1S2S3accesos q12327 q22125 q31214 42 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Las aplicaciones se traduciran de la manera siguiente: q1= Select nom, depto From empleados q2= Select cvemp, sal, imp From empleados Where depto = X q3= Select cvemp, nom, depto From empleados Where sal > 10000 Con esto se podr obtener la matriz de uso, en la cual se colocara, de acuerdo con los atributos accesados en cada una de las aplicaciones, colocando en cada casilla un 1 si el atributo A es reverenciado en la aplicacin qj. A1 (cvemp)A2 (nom)A3 (sal)A4 (imp)A5 (depto) q101001 q210111 q311101 Ahora se construir la matriz de afinidad, la cual se obtiene por medio de la siguiente formula aff(Ai,Aj) = E todas las consultas que accesan Ay Aj (accesos en consultas) accesos en consulta = E todos los sitios frecuencia de accesos de una consulta aff(A1, A1)= (2+1+2)(1) + (1+2+1)(1) = 9aff(A1, A2)= (1+2+1)(1) = 4aff(A1, A3)= (2+1+2)(1) + (1+2+1)(1) = 9aff(A1, A4)= (2 +1+2)(1) = 5aff(A1, A5)= (2+1+2)(1) + (1+2+1)(1) = 9aff(A2, A1)= (1 +2+ 1)(1) = 4aff(A2, A2)= (2+3+2)(1) + (1+2+ 1)(1) = 11 43 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas aff(A2, A3)= (1+2+1)(1) = 4aff(A2, A4)= 0 aff(A2, A5)= (2+3+2)(1) + (1 +2+ 1)(1) = 11 A1A2A3A4A5 Al94959 A24114011 A394959 A450555 A59119516 En la diagonal debern aparecer los valores ms altos de cada columna, de no ser as, ser necesario reordenar dichas columnas para logrado. El paso restante ser seleccionar los campos necesarios para cada fragmento, esto, de acuerdo al orden en que las columnas se encuentran en la tabla. Emp= {A1, A2,A3,A4,A5} Emp1 { A1, A2), Emp2= { A1,A3,A4,A5) Emp1 = PJcvemp, Nom, Emp Emp2 = PJCemp, Sal, Imp,Depto Emp Emp1(Cvemp, Nom) Emp2(Cvemp, Sal, lmp, Depto) o en otro caso Emp1= { A1, A2,A3} Emp2= { A1, A4, A5} 44 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Emp1 = PJcvemp, Nom, Depto Emp Emp2 = PJCemp, Sal, Imp Emp Emp1(Cvemp, Nom, Sal) Emp2(Cvemp, Imp, Depto) El atributo A1 aparece en ambos fragmentos debido a que es la llave primaria de la relacinglobal.Lamaneradeseleccionarqueatributosiranencadafragmento depende de las necesidades del sistema. La reconstruccin de la relacin Emp se puede obtener por medio de: Emp = Emp1 JNcvemp = cvemp Emp2 Esto dado que Cvemp es la llave de la relacin global Emp.En general, la inclusin delallavedelarelacinencadaunodelosfragmentosesloquehaceposiblela reconstruccin por medio de la operacin de join. 2.2.7 Fragmentacin mixta Los fragmentos son obtenidos por medio de las operaciones de fragmentacin, que puedenrelacionarseprecedentemente,esposibleaplicarlaoperacinde fragmentacin(verticalyhorizontal)demanerarecursiva,dandocomoresultadolas condicionesnecesariasparalafragmentacin.Lareconstruccinselograaplicando las reglas de reconstruccin en orden inverso de acuerdo a la fragmentacin. 45 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Pararealizarlafragmentacinmixtasedeberconsiderarlanecesidadde informacindecadaunodelossitiosdentrodelabasededatosdistribuida,estoes considrese la siguiente tabla: Emp(Cvemp, Nom, Sal, lmp, Depto) Setieneunsitioeneldepartamentofiscalelcualseencargadelclculodelos impuestos,ytressitiosms,unoporcadaunodelostresdepartamentosrestantes dentrodelaempresa.Paraeldepartamentofiscal,elnombreyeldepartamentodel trabajadornosonrelevantes,necesitandonicamenteloscamposdeclavedel empleado,salarioytasadeimpuesto.Portanto,esconvenienterealizaruna fragmentacin vertical para obtener un fragmento con los campos necesarios (cvemp, salyimp)paraestedepartamento.Elrestodelatablaglobalpodrafragmentarse horizontalmente de acuerdo a cada departamento, obteniendo tres tablas, las cuales se situaran en cada uno de los tres sitios restantes dentro del sistema distribuido. Pormediodelassiguientesoperacionesserealizarunafragmentacinmixta, donde se aplica la fragmentacin vertical, seguida por una fragmentacin horizontal por Depto: Vertical Emp1 = PJcvemp, Sal. Imp Emp Selectcvemp, Sal, ImpInto Emp1From EmpHorizontal Depto10 = SLdepto=10 PJ Cvemp, Nom,Depto Emp Select cvemp,nom, deptoInto Depto10 from EmpWheredepto=10

Depto20 = SLdepto=20 PJ Cvemp, Nom,Depto Emp Select cvemp,nom, deptoInto Depto20 from EmpWheredepto=20 Depto30 = SLdepto=30 PJ Cvemp, Nom,Depto Emp Select cvemp,nom, deptoInto Depto30 from EmpWheredepto=30 La reconstruccin de la tabla Emp se define de la siguiente forma: 46 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Emp = UN(Depto10, Depto20, Depto30) JNCvemp = Cvemp PJCvemp, Sal, Imp Emp1 Reconstruccion Horizontal Create View ReconstruccionHorizontal As Select*from Depto10 Union All Select * from Depto20 Union All Select*From Depto30 Reconstruccion Vertical Create View ReconstruccionVertical as Select A.cvemp,nom,imp,depto FromReconstruccionHorizontal AinnerjoinEmp1 B On(A.cvemp=B.cvemp) Lafragmentacinmixtaserepresentageneralmentepormediodeunrbolde fragmentacin.En el rbol de fragmentacin, la raz corresponde a latabla global, las hojascorrespondenalosfragmentos,ylosnodosintermedioscorrespondenalos fragmentos intermedios, resultantes de las operaciones.A continuacin se presenta el rbol de distribucin del ejemplo anterior: Emp Emp1 Depto10Depto20Depto30 H V 47 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Esimportantetomar encuentaque elordenen elcualserealizala fragmentacin horizontal y vertical afecta a la fragmentacin final. fragmentacin vertical seguida de fragmentacin horizontal fragmentacin horizontal seguida de fragmentacin vertical 2.2.8 Distribucin de los fragmentos Lamaneramsfcilpararealizarladistribucindelosfragmentosesconsiderar cadafragmentocomounarchivoseparado;sinembargo,esteenfoquenoes conveniente, por las siguientes razones: 1 .Los fragmentos no son modelados propiamente como archivos individuales, ya quedeestamaneranosepodratomarencuentaelhecho,dequetienenla misma estructura. 2.Haymuchosmsfragmentosquerelacionesglobales,ymuchosmodelos analticosnopuedenprocesarlasolucindeproblemasqueinvolucran demasiadas variables. 3.El modelado del comportamiento de las aplicaciones en sistema de archivos es muysimple(tpicamente,lasaplicacioneshacenun"accesoremotoa archivos"), mientras que en aplicaciones de bases de datos distribuidas pueden hacer un uso ms complejo de los datos. Algunosdeestosproblemasnotienenunasolucinsatisfactoria;porejemploel punto 3 esparticularmente difcil,puestoque el correctoenfoque permitiraevaluarla distribucin de los datos mediante cmo las aplicaciones pueden optimizar el acceso. 48 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas 2.2.9Criterios generales para la distribucin de fragmentos.Enladistribucindelosfragmentos,esimportantedistinguirentresisevaa disear una distribucin redundante o no redundante. La replicacin introduce una amplia complejidad en el diseo, porque: 1.El grado de replicacin de cada fragmento llega a ser una variable del problema. 1.El diseo de los mdulos de lectura en las aplicaciones es complicado por el hecho quelasaplicacionesdebendeseleccionarentrevariossitiosalternativos,encual accesarn el mismo fragmento replicado en estos sitios. Para determinarlaredundanciaenla distribucinde fragmentos, cualquiera delos dos mtodos siguientes puede ser utilizado: 1 .Determinarelconjuntodetodoslossitiosdondeelbeneficiodecolocaruna copia del fragmento es mayor que el costo, y colocar un fragmento en cada uno delossitiosdeesteconjunto;estemtodoselecciona"todoslossitios benficos'. 2.Determinarprimerolasolucindelproblemasinrplica,yposteriormente introducirrplicasiniciandoporlasmsbenficas;elprocesoterminacuando una 'rplica adicional' no es benfica. Ambosmtodostienenalgunasdesventajas.Enelcasodelmtodode"lossitios benficos, el hecho de cuantificar el costo y el beneficio para cada fragmento es ms crticoque enelcaso noredundante.Elmtodode"larplica adicional' esuntpico enfoque heurstica; con este mtodo, es posible tomar en cuenta que el incremento en elgradoderedundanciaescadavezmenosbenfico.Ladisponibilidadyla confiabilidaddelsistemaseveincrementadosisetienendosotrescopiasdeun fragmento. 49 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas 2.3 Procesamiento de consultas distribuidas 2.3.1 rbol de operadores de una consulta Unamaneraderepresentarlasecuenciaenqueserealizarnlasoperacionesde una consulta, es un rbol de operadores.Considrese la siguiente consulta: PJSNUM SL rea = Norte (Prevee JNNumdepto = Numdepto Depto Un ejemplo de un rbol de operadores para la consulta sera el que aparece en la figurasiguiente.Obsrvesequelashojasdelrbolsonrelacionesglobalesycada nodo representa una operacin binaria o unitaria.Un rbol define un orden parcial en comolasoperacionesdebenseraplicadasparaobtenerelresultadodeseadoenla consulta,estoes,deabajohaciaarriba.Unordendiferentedeoperaciones-correspondera un rbol tambin diferente, obteniendo una transformacin equivalente. PJSNUM SLAREA="Norte" JNNumdepto=Numdepto PROVEE DEPTO Elrbolde operadores deunaexpresin de lgebrarelaciona]puedeversecomo un rbol gramatical, asumiendo la siguiente forma: R -> identificador R -> ( R ) R -> op_uni R 50 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas R -> Rop_bin R op_uni ->SLF | PJA op_bin CP | UN | DF | JNF | NJNF | SJF | NSJF 2.3.2 Ejemplos de consultas distribuidas Supngase una universidad,quecuentaconlas carreras dederecho,contaduray administracin-Dicha universidadtieneuna basede datos distribuidacon fragmentos encadaunodelosdepartamentosconcernientesacadacarreradelamanera siguiente: Tabla global Alumnos(no-control, nombre, domicilio, ciudad, edad, especialidad) No-controlnombreDomiciliociudadedadespecialidad D12Pedro H.Hidalgo 100Celaya1-9derecho A32Jos L.Morelos 23-4Salamanca20Administracin C54Juan J.Revolucin 987Irapuato21Contadura C78Mario V.A. L. Mateos 2345Celaya21contadura A29Adolfo AJurez 199Celaya21administracin D90Adriana AGuerrero 987Irapuato21derecho D73Sandra F.Revolucin 200Salamanca20derecho A99Carmen G.A. 1. Mateos 234Celaya19administracin C34Rocio S.Guerrero 987Celaya20contadura Debido a que cada departamento requiere tener la informacin de sus alumnos, se realizara una fragmentacin horizontal utilizando la siguiente aplicacin: 51 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Q:Seleccionar el nmero de control, nombre, domicilio, ciudad, edad, especialidad para los alumnos de cada rea. Esto dara como resultado los siguientes tres fragmentos horizontales: Alumnos1 = SLespecialidad =derecho Alumnos No-controlnombredomiciliociudadEdadEspecialidad D12Pedro H.Hidalgo 100Celaya19Derecho D90Adriana A.Guerrero 987Irapuato21Derecho D73Sandra F.RevolucinSalamanca20Derecho Alumnos1 = SL especialidad =contadura Alumnos No-controlNombredomiciliociudadedadespecialidad C54Juan J.Revolucin 987Irapuato21contadura C78Mario V.A. L. Mateos 2345Celaya2-1contadura C34Roci S.Guerrero 987Celaya2-0contadura Alumnos1 = SL especialidad =administracin Alumnos No-controlNombredomiciliociudadedadespecialidad A32Jos L.Morelos 234Salamanca20administracin A29Adolfo AJurez 199Celaya21administracin A99Carmen G.A. L. Mateos 234Celaya19administracin 52 Fundamentos de las Bases de Datos Distribuidas Bases de Datos Distribuidas Como se puede observar cada departamento es un sitio dentro de nuestra base de datos distribuida, conteniendo un fragmento horizonte de la tabla global de acuerdo a la especialidad. Considrese, que se requiere una consulta en el departamento de administracin en lacualsedebendeobtenerelnombreydomiciliodelosalumnosdelacarrerade administracinquevivenenlaciudaddeCelaya,dichaconsultanotendramayor complicacin para el sistema de bases de datos, dado que el proceso se realizara de manera local en el sitio de administracin. Por lo tanto el DBMS local deber detectar que el procesamiento de la consulta se debe de realizar sobre los datos locales y, que no hay necesidad de efectuar consultas en otros sitios, esto seria como sigue: PJ nombre, domicilio SL especialidad = administracin AND ciudad = "Celaya Alumnos La cual sea traducida por el DBMS local, en el departamento de administracin a: PJ nombre, domicilio SL ciudad = "Celaya Alumnos3 nombreDomicilio Adolfo A.Jurez 199 Carmen G.A. L. Mateos 234 Ahora supngase el caso de que el departamento de contabilidad requiere el nombre, nmerodecontrolyespecialidaddelosalumnosquetienen21aosoms.Esta consulta involucro a todos los fragmentos que se encuentran