67474852 Bases de Datos Distribuidas

download 67474852 Bases de Datos Distribuidas

of 60

description

Educativo

Transcript of 67474852 Bases de Datos Distribuidas

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    1/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    2/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    1. Fundamentos Bases de Datos Distribuidas1.1.Conceptos Bsicos1.2.Objetivos Bases de Datos Distribuidas1.3.Disciplinas Estudio Bases de Datos Distribuidas1.4.Arquitectura Bases de Datos Distribuidas

    2. Diseo de bases de datos distribuidas2.1.Consideraciones Diseo Bases de Datos Distribuidas2.2.Diccionario de Datos2.3.Niveles de Transparencia

    2.3.1.Transparencia de Localizacin2.3.2.Transparencia de Fragmentacin2.3.3.Transparencia de Replica

    2.4.Fragmentacin de Datos

    2.4.1.Fragmentacin Horizontal2.4.2.Fragmentacin Vertical2.4.3.Fragmentacin Hibrida

    2.5.Distribucin de Datos2.5.1.Algoritmos Distribucin Datos No Replicados2.5.2.Algoritmos Distribucin Datos Replicados

    3. Procesamiento de consultas distribuidas3.1.Metodologa Procesamiento Consultas Distribuidas3.2.Estrategias Procesamiento Consultas Distribuidas

    3.2.1.Arboles de Consultas3.2.2.Transformaciones Equivalentes Consultas Distribuidas3.2.3.Mtodos Ejecucin del Join

    3.3.Optimizacin de Consultas Distribuidas

    3.3.1.Optimizacin Global Consultas Distribuidas3.3.2.Optimizacin Local Consultas Distribuidas

    4. Manejo de transacciones4.1.Transacciones Conceptos

    4.1.1.Estructura de Transacciones4.1.2.Ejecucin Transacciones Centralizada Distribuida4.1.3.Estructura de transacciones

    4.2.Control de Concurrencia4.2.1.Serializacin de Transacciones4.2.2.Algoritmos de Control de Concurrencia

    4.2.2.1. Basados en Bloqueo.4.2.2.2. Basados en Estampas de Tiempo4.2.2.3. Pruebas Validacin Optimistas

    4.2.3.Disciplinas del Interbloqueo prevencin deteccin eliminacin y recuperacin4.3.Confiabilidad4.3.1.Conceptos Bsicos de Confiabilidad4.3.2.Protocolos Redo Undo4.3.3.Puntos de Verificacin checkpoints4.3.4.Protocolo 2PC de Confiabilidad Distribuida

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    3/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    1 Fundamentos Bases de Datos Distribuidas

    1.1Conceptos Bsicos

    Un sistema de administracin de bases de datos distribuida (DDBMS) rige elalmacenamiento y procesamiento de datos lgicamente relacionados a travs de unsistema de computadoras interconectadas, donde tanto los datos como las funciones deprocesamiento se distribuyen entre varios sitios.

    Para entender cmo y por qu el DDBMS es diferente del DBMS, es necesario examinarbrevemente los cambios en el ambiente de base de datos.

    Durante los aos 70s, las corporaciones ejercieron sistemas de administracin de base dedatos centralizados para satisfacer sus necesidades de informacin estructuradas. Lasnecesidades de informacin estructurada son, por lo tanto, bien atendidas por los sistemascentralizados. Bsicamente, el uso de una base de datos centralizada requera que losdatos corporativos se guardaran en un solo sitio central. El acceso a los datos seproporcionaba mediante terminales no inteligentes.

    El mtodo centralizado funcionaba bien para satisfacer las necesidades de informacinestructurada de las corporaciones, pero se quedaba corto cuando los eventos siempre enmovimiento requeran tiempos de respuesta y accesos a la informacin ms rpidos. Lalenta progresin desde la solicitud de informacin hasta su aprobacin, y desde elespecialista hasta el usuario, simplemente no era til para los tomadores de decisiones enun ambiente dinmico. Lo que se requera era un acceso rpido, no estructurado a labase de datos utilizando consultas ad hoc para generar informacin al momento.

    Los sistemas de administracin de base de datos basados en el modelo relacional,podran crear el ambiente en el cual las necesidades de informacin no estructuradasserian satisfechas mediante consultas ad hoc. Los usuarios finales podran accesar a losdatos cuando lo requirieran. Tambin existieron otros tipos de modelos como: base dedatos de red o base de datos jerrquico.

    Los aos 80s dieron lugar a una serie de cambios tecnolgicos y sociales que afectaron eldesarrollo y el diseo de las bases de datos tales como:

    Los negocios se volvieron ms geogrficamente descentralizados. La competencia se globalizo. Las demandas de los clientes favorecieron el estilo de administracin

    descentralizado. Los rpidos cambios tecnolgicos crearon computadoras de bajo costo, y un

    nmero cada vez mayor de corporaciones adoptaron las redes LAN como basepara sus soluciones.

    Estos factores crearon un ambiente de negocios dinmico en el cual las compaastuvieron que responder con rapidez a las presiones competitivas y tecnolgicas.Conforme las grandes unidades de negocios se reestructuraron para formar operacionesms simples, dispersas y de reaccin rpida, dos requerimientos de base de datos sevolvieron obvios:

    El acceso rpido a los datos se volvi crucial para la toma de decisiones dinmicas

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    4/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    La descentralizacin de las estructuras de administracin basadas en ladescentralizacin de unidades de negocios hicieron de las bases de datosdescentralizadas ubicadas en lugares mltiples y de acceso mltiple, unanecesidad.

    Durante los aos 90s todos los factores anteriores se vieron influenciados fuertemente por: La creciente aceptacin de internet y, en particular la red mundial (www), como

    plataforma para el acceso y distribucin de los datos. El creciente enfoque en el anlisis de los datos que condujo al manejo y

    almacenamiento de los datos. Aunque el almacn de datos en general no es unabase de datos distribuida, depende de tcnicas tales como la replicacin dedatos y consultas distribuidas que facilitan la extraccin e integracin de susdatos.

    El impacto ms importante que promovi el xito de las bases de datos distribuidas fue eluso de internet y la solucin a los problemas de ancho de banda, de cualquier manera,las bases de datos distribuidas existen hoy en da.

    Computacin Distribuida

    Los sistemas de bases de datos distribuidas son un caso particular de los sistemasde cmputo distribuido en los cuales un conjunto de elementos de procesamientoautnomos (no necesariamente homogneos) se interconectan por una red decomunicaciones y cooperan entre ellos para realizar sustareas asignadas. Histricamente,el cmputo distribuido se ha estudiado desde muchos puntos de vista. As, es comnencontrar en la literatura un gran nmero de trminos que se han usado para identificarlo.Entre los trminos ms comunes que se utilizan para referirse al cmputo distribuidopodemos encontrar: funciones distribuidas, procesamiento distribuido de datos,

    multiprocesadores, multicomputadoras, procesamiento satelital, procesamiento tipo"backend", computadoras dedicadas y de propsito especfico, sistemas de tiempocompartido, sistemas funcionalmente modulares.Existen muchos componentes a distribuirpara realizar una tarea. En computacin distribuida los elementos que se pueden distribuirson: Control. Las actividades relacionadas con el manejo o administracin del sistema. Datos. La informacin que maneja el sistema. Funciones. Las actividades que cada elemento del sistema realiza.Procesamiento lgico. Las tareas especficas involucradas en una actividad deprocesamiento de informacin. (Bolivia, 2005, pg. 5)

    Eliminado:

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    5/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Figura 1.1. Motivacin de los sistemas de bases de datos distribuidos.

    Sistemas de bases de datos distribuidas

    Una base de datos distribuida (BDD) es un conjunto de mltiples bases de datoslgicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitiosinterconectados por una red decomunicaciones (ver Figura 1.1). (Bolivia, 2005, pg. 5)

    Un sistema de bases de datos distribuidos (SBDD)es un sistema en el cual mltiples sitios debases de datos estn ligados por un sistema de comunicaciones, de tal forma que, unusuario en cualquier sitio puede accesar los datos en cualquier parte de la redexactamente como si los datos estuvieran almacenados en su sitio propio. (Bolivia, 2005,pg. 5)

    Un sistema de manejo de bases de datos distribuidas (SMBDD) es aquel que se encargadel manejo de la BDD y proporciona un mecanismo de acceso que hace que ladistribucin sea transparente a los usuarios. El trmino transparente significa que laaplicacin trabajara, desde un punto de vista lgico, como si un solo SMBD se ejecutaraen una sola mquina, y administrara esos datos. (Bolivia, 2005, pg. 5)

    Un sistema de base de datos distribuida (SBDD) es entonces el resultado de la integracinde una base de datos distribuida con un sistema para su manejo. Dada la definicinanterior, es claro que algunos sistemas no se pueden considerar como SBDD. Por ejemplo,un sistema de tiempo compartido no incluye necesariamente un sistema de manejo debases de datos y, en caso de que lo haga, ste es controlado y administrado por una solacomputadora. (Bolivia, 2005, pg. 6)

    Un sistema de multiprocesamiento puede administrar una base de datos pero lo haceusualmente a travs de un solo sistema de manejo de base de datos; los procesadores seutilizan para distribuir la carga de trabajo del sistema completo o incluso del propio SMBDpero actuando sobre una sola base de datos. Finalmente, una base de datos la cualreside en un solo sitio de una red de computadoras y que es accesada por todos losnodos de la red no es una base de datos distribuida (Figura 1.2). Este caso se trata de unabase de datos cuyo control y administracin est centralizado en un solo nodo pero sepermite el acceso a ella a travs de la red de computadoras. (Bolivia, 2005, pg. 6)El medio ambiente tpico de un SMBDD consiste de un conjunto de sitios o nodos, loscuales tiene un sistema de procesamiento de datos completo que incluye una base dedatos local, un sistema de manejo de bases de datos y facilidades de comunicaciones. Silos diferentes sitios pueden estar geogrficamente dispersos, entonces, ellos estninterconectados por una red de tipo WAN. Por otro lado, si los sitios estn localizados endiferentes edificios o departamentos de una misma organizacin pero geogrficamente

    en la misma ubicacin, entonces, estn conectados por una red local (LAN) (Figura 1.3).(Bolivia, 2005, pg. 6)

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    6/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Figura 1.2. Un sistema centralizado sobre una red.

    Figura 1.3. Un medio ambiente distribuido para bases de datos.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    7/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    1.2 Objetivos Bases de Datos Distribuidas

    PrincipioFundamental:Ante el usuario, un sistema distribuido debe lucir exactamenteigual que un sistema que no es distribuido

    En otras palabras, los usuarios de un sistema distribuido deben ser capaces decomportarse exactamente como si nofuera distribuido.

    Todos los problemas de los sistemas distribuidos son o deberan ser, problemasinternos o en el nivel de implementacin, y no externos o en el nivel de usuario.

    El principio fundamental nos conduce a 12 reglas u objetivos:

    1.-Autonoma local. Los sitios en un sistema distribuido deben ser autnomos. La autonoma local significa que todas las operaciones en un sitio dado estn

    controladas por ese sitio; ningn sitioXdebe depender de algn otro sitio para suoperacin satisfactoria.

    La seguridad, integridad y representacin de almacenamiento de los datos localespermanecen bajo el control y jurisdiccin del sitio local.

    2.-Nodependencia de un sitio central. La autonoma local implica que todos los sitiosdeben ser tratados como iguales.

    Por lo tanto, no debe haber particularmente ninguna dependencia de un sitiomaestro central para algn servicio central, tal que todo el sistema dependa deese sitio central.

    Razones por las cuales no debera haber un sitio central: El sitio central puede ser un cuello de botella El sistema sera vulnerable; es decir, si el sitio central falla, tambin fallar

    todo el sistema

    3.-Operacin contina. Una ventaja de los sistemas distribuidos es que debenproporcionar mayor confiabilidady mayor disponibilidad.

    Confiabilidad. La probabilidad de que el sistema est listo y funcionandoen cualquier momento dado. Los SD no son una propuesta de todo onada; pueden continuar operando cuando hay alguna falla en algncomponente independiente.

    Disponibilidad. La probabilidad de que el sistema est listo y funcionandocontinuamente a lo largo de un perodo especificado.

    4.-Independenciade ubicacin. Conocida tambin como transparencia de ubicacin. Los usuarios no tienen que saber dnde estn almacenados fsicamente los

    datos, sino que deben ser capaces de comportarse como si todos los datos

    estuvieran almacenados en su propio sitio local. Esto simplifica los programas de los usuarios. En particular, permite que los

    datos emigren de un sitio a otro sin invalidar ninguno de estos programas oactividades.

    5.-Independencia de fragmentacin. Un sistema soporta la fragmentacin de datoscuando puede ser dividida en partes o fragmentos, para efectos de almacenamientofsico.

    La fragmentacin es necesaria por razones de rendimiento: los datospueden estar almacenados en la ubicacin donde son usados ms

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    8/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    frecuentemente para que la mayora de las operaciones sean locales y sereduzca el trfico en la red.

    Los usuarios deben comportarse como si los datos en realidad estuvieran sinfragmentacin alguna.

    6.-Independencia de replicacin1. Pueden significar una mejor disponibilidad(un objeto replicado permanece

    disponible para su procesamiento, mientras est disponible al menos unacopia).

    Por supuesto, la principal desventaja de las rplicas es que al actualizarlas es necesarioactualizar todas: el problema de la propagacin de la actualizacin.

    7.-Procesamiento de consultas distribuidas. La optimizacin es importante en un sistemadistribuido que en uno centralizado, incluso mucho ms.

    El punto bsico es que en una consulta que involucra a varios sitios,habr muchas formas posibles de mover los datos en el sistema parasatisfacer la solicitud, y es crucialmente importante que se encuentre unaestrategia eficiente.

    8.-Administracin de transacciones distribuidas Puede involucrar actualizaciones en muchos sitios y se debe de cuidar que

    la transaccin no caiga en un bloqueo mortal (basado en el bloqueo). Para el control de larecuperacin, es necesario asegurarse que una

    transaccin dada sea atmica en el ambiente distribuido, el sistema debepor lo tanto asegurarse de que la transaccin sea confirmada o deshecha(se puede utilizar el protocolo de confirmacin de dos fases).

    9.-Independencia de hardware.Soporte para un gran nmero de mquinas diferentes.

    Poder integrar todos los datos de todos estos sistemas y presentar al usuario una imagendel sistema nico.

    10.-Independencia de sistema operativo. Obviamente es necesario no slo tener laposibilidad de ejecutar el mismo DBMS en diferentes plataformas de hardware, sinotambin ejecutarlo en diferentes plataformas de sistema operativo.

    11.-Independenciade red. Si el sistema va a tener la posibilidad de soportar muchos sitios distintos es

    obviamente necesario tener la posibilidad de soportar tambin una variedad deredes de comunicacin distintas.

    12.-Independencia de DBMS. Lo que se necesita es que todoslos ejemplares de DBMS ensitios diferentessoporten la misma interfaz.

    Aunque no tienen que ser necesariamente copias del mismo software DBMS. En otras palabras, sera posible que el sistema distribuido fuera heterogneo, al

    menos en cierto grado. Sera muy bueno si diferentes DBMS pudieran participar de alguna forma en un

    sistema distribuido.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    9/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    1.3 Disciplinas de Estudio de Bases de Datos Distribuidas

    Son las aplicaciones ms usuales son para la gestin de empresas e instituciones pblicas.Tambin son ampliamente utilizadas en entornos cientficos con el objeto de almacenar lainformacin experimental.

    Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos seencuentran protegidos por las leyes de varios pases. Por ejemplo en Espaa, los datospersonales se encuentran protegidos por la Ley Orgnica de Proteccin de Datos deCarcter Personal (LOPD).

    1.4 Arquitectura Bases de Datos Distribuidas

    La arquitectura define la estructura de un sistema. Al definir la arquitectura se debenidentificar los componentes de un sistema, las funciones que realiza cada uno de lascomponentes y las interrelaciones e interacciones entre cada componente.

    Arquitectura de un sistema de bases de datos distribuidas

    La mayora de los sistemas de manejo de bases de datos disponibles actualmente estnbasadas en la arquitectura ANSI-SPARC la cual divide a un sistema en tres niveles: interno,conceptual y externo.

    La vista conceptual, conocida tambin como vista lgica global, representa la visin de

    la comunidad de usuarios de los datos en la base de datos. No toma en cuenta la formaen que las aplicaciones individuales observan los datos o como stos son almacenados.La vista conceptual est basada en el esquema conceptual y su construccin se hace enla primera fase del diseo de una base de datos.

    Los usuarios, incluyendo a los programadores de aplicaciones, observan los datos a travsde un esquema externo definido a nivel externo. La vista externa proporciona unaventana a la vista conceptual lo cual permite a los usuarios observar nicamente los datosde inters y los asla de otros datos en la base de datos. Puede existir cualquier nmero de

    vistas externas y ellos pueden ser completamente independientes o traslaparse entre s. Elesquema conceptual se mapea a un esquema interno a nivel interno, el cual es el nivelde descripcin ms bajo de los datos en una base de datos. Este proporciona una interfazal sistema de archivos del sistema operativo el cual es el responsable del acceso a la basede datos. El nivel interno tiene que ver con la especificacin de qu elementos sernindexados, qu tcnica de organizacin de archivos utilizar y como los datos se agrupan

    en el disco mediante "clusters" para mejorar su acceso.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    10/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Figura 1.4 Arquitectura ANSI/SPARC de una base de datos.

    Figura 1.5 Vista conceptual de las relaciones E, S, J y G.

    Figura 1.6 Definicin de una vista interna a partir de la relacin S.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    11/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Figura 1.7 Dos ejemplos de vistas externas.

    Desafortunadamente, no existe un equivalente de una arquitectura estndar parasistemas de manejo de bases de datos distribuidas. La tecnologa y prototipos de SMBDD

    se han desarrollado ms o menos en forma independiente uno de otro y cada sistema ha

    adoptado su propia arquitectura.

    Para definir un esquema de estandarizacin en bases de datos distribuidas se debe definirun modelo de referencia el cual sera un marco de trabajo conceptual cuyo propsito esdividir el trabajo de estandarizacin en piezas manejables y mostrar a un nivel generalcomo esas piezas se relacionan unas con otras. Para definir ese modelo de referencia sepuede seguir uno de los siguientes tres enfoques:

    Basado en componentes. Se definen los componentes del sistema junto con las relacionesentre ellas. As, un SMBD consiste de un nmero de componentes, cada uno de los cualesproporciona alguna funcionalidad.

    Basado en funciones. Se identifican las diferentes clases de usuarios junto con la

    funcionalidad que el sistema ofrecer para cada clase. La especificacin del sistema enesta categora tpicamente determina una estructura jerrquica para las clases deusuarios. La ventaja de este enfoque funcional es la claridad con la cual se especifican losobjetivos del sistema. Sin embargo, este enfoque no proporciona una forma de alcanzarlos objetivos.

    Basado en datos. Se identifican los diferentes tipos de descripcin de datos y se especificaun marco de trabajo arquitectural el cual define las unidades funcionales que realizarny/o usarn los datos de acuerdo con las diferentes vistas. La ventaja de este enfoque es laimportancia que asigna al manejo de datos. Este es un enfoque significativo para los

    SMBD dado que su propsito principal es manejar datos. Sin embargo, la desventaja deeste enfoque es que es prcticamente imposible especificar un modelo arquitectural sinespecificar los modelos para cada una de sus unidades funcionales. Este es el enfoque

    seguido por el modelo ANSI/SPARC.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    12/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Unidad 2 Diseo de bases de datos distribuidas

    El diseo de un sistema de base de datos distribuido implica la toma de decisiones sobrela ubicacin de los programas que accedern a la base de datos y sobre los propiosdatos que constituyen esta ltima, a lo largo de los diferentes puestos que configuren unared. La ubicacin de los programas, a priori, no debera suponer un excesivo problemadado que se puede tener una copia de ellos en cada mquina de la red (de hecho, eneste documento se asumir que as es). Sin embargo, cul es la mejor opcin paracolocar los datos: en una gran mquina que albergue a todos ellos, encargada deresponder a todas las peticiones del resto de las estaciones sistema de base de datoscentralizado , o podramos pensar en repartir las relaciones, las tablas, por toda la red. Enel supuesto que nos decidiramos por esta segunda opcin, qu criterios se deberanseguir para llevar a cabo tal distribucin?, Realmente este enfoque ofrecer un mayorrendimiento que el caso centralizado?, Podra optarse por alguna otra alternativa?. Enlos prrafos sucesivos se tratar de responder a estas cuestiones.Tradicionalmente se ha clasificado la organizacin de los sistemas de bases de datosdistribuidos sobre tres dimensiones: el nivel de comparticin, las caractersticas de accesoa los datos y el nivel de conocimiento de esas caractersticas de acceso (vea la figura2.1). El nivel de comparticin presenta tres alternativas: inexistencia, es decir, cadaaplicacin y sus datos se ejecutan en una PC con ausencia total de comunicacin conotros programas u otros datos; se comparten slo los datos y no los programas, en tal casoexiste una rplica de las aplicaciones en cada mquina y los datos viajan por la red; y, sereparten datos y programas, dado un programa ubicado en un determinado sitio, stepuede solicitar un servicio a otro programa localizado en un segundo lugar, el cual podracceder a los datos situados en un tercer emplazamiento. Como se coment lneas atrs,en este caso se optar por el punto intermedio de comparticin. (Diseo de Bases deDatos Distribuidos)

    Figura 2.1 Enfoque de la distribucin.

    Respecto a las caractersticas de acceso a los datos existen dos alternativasprincipalmente: el modo de acceso a los datos que solicitan los usuarios puede seresttico, es decir, no cambiar a lo largo del tiempo, o bien, dinmico. El lector podrcomprender fcilmente la dificultad de encontrar sistemas distribuidos reales que puedanclasificarse como estticos. Sin embargo, lo realmente importante radica, estableciendo

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    13/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    el dinamismo como base, cmo de dinmico es, cuntas variaciones sufre a lo largo deltiempo. Esta dimensin establece la relacin entre el diseo de bases de datos distribuidasy el procesamiento de consultas. (Diseo de Bases de Datos Distribuidos)La tercera clasificacin es el nivel de conocimiento de las caractersticas de acceso. Unaposibilidad es, evidentemente, que los diseadores carezcan de informacin alguna sobrecmo los usuarios acceden a la base de datos. Es una posibilidad terica, pero sera muylaborioso abordar el diseo de la base de datos con tal ausencia de informacin. Lo msprctico sera conocer con detenimiento la forma de acceso de los usuarios o, en el casode su imposibilidad, conformarnos con una informacin parcial de sta. (Diseo de Basesde Datos Distribuidos)El problema del diseo de bases de datos distribuidas podra enfocarse a travs de estatrama de opciones. En todos los casos, excepto aquel en el que no existe comparticin,aparecern una serie de nuevos problemas que son irrelevantes en el caso centralizado.(Diseo de Bases de Datos Distribuidos)

    A la hora de abordar el diseo de una base de datos distribuida podremos optarprincipalmente por dos tipos de estrategias: la estrategia ascendente y la estrategiadescendente. Ambos tipos no son excluyentes, y no resultara extrao a la hora deabordar un trabajo real de diseo de una base de datos que se pudiesen emplear endiferentes etapas del proyecto una u otra estrategia. La estrategia ascendente podraaplicarse en aquel caso donde haya que proceder a un diseo a partir de un nmero depequeas bases de datos existentes, con el fin de integrarlas en una sola. En este caso separtira de los esquemas conceptuales locales y se trabajara para llegar a conseguir elesquema conceptual global. Aunque este caso se pueda presentar con facilidad en lavida real, se prefiere pensar en el caso donde se parte de cero y se avanza en eldesarrollo del trabajo siguiendo la estrategia descendente. La estrategia descendente(vea la figura 2.2) debera resultar familiar a la persona que posea conocimientos sobre eldiseo de bases de datos, exceptuando la fase del diseo de la distribucin. Pese a todo,se resumirn brevemente las etapas por las que se transcurre. (Diseo de Bases de Datos

    Distribuidos)

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    14/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Figura 2.2 Estrategia descendente.

    Todo comienza con un anlisis de los requisitos que definirn el entorno del sistema en arasa obtener tanto los datos como las necesidades de procesamiento de todos los posiblesusuarios del banco de datos. Igualmente, se debern fijar los requisitos del sistema, losobjetivos que debe cumplir respecto a unos grados de rendimiento, seguridad,disponibilidad y flexibilidad, sin olvidar el importante aspecto econmico. Como puedeobservarse, los resultados de este ltimo paso sirven de entrada para dos actividades que

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    15/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    se realizan de forma paralela. El diseo de las vistas trata de definir las interfaces para elusuario final y, por otro lado, el diseo conceptual se encarga de examinar la empresapara determinar los tipos de entidades y establecer la relacin entre ellas. Existe un vnculoentre el diseo de las vistas y el diseo conceptual. El diseo conceptual puedeinterpretarse como la integracin de las vistas del usuario, este aspecto es de vitalimportancia ya que el modelo conceptual debera soportar no slo las aplicacionesexistentes, sino que debera estar preparado para futuras aplicaciones. En el diseoconceptual y de las vistas del usuario se especificarn las entidades de datos y sedeterminarn las aplicaciones que funcionarn sobre la base de datos, as mismo, serecopilarn datos estadsticos o estimaciones sobre la actividad de estas aplicaciones.Dichas estimaciones deberan girar en torno a la frecuencia de acceso, por parte de unaaplicacin, a las distintas relaciones de las que hace uso, podra afinarse ms anotandolos atributos de la relacin a la que accede. Desarrollado el trabajo hasta aqu, se puedeabordar la confeccin del esquema conceptual global. Este esquema y la informacin

    relativa al acceso a los datos sirven de entrada al paso distintivo: el diseo de ladistribucin. El objetivo de esta etapa consiste en disear los esquemas conceptualeslocales que se distribuirn a lo largo de todos los puestos del sistema distribuido. Seraposible tratar cada entidad como una unidad de distribucin; en el caso del modelorelacional, cada entidad se corresponde con una relacin. Resulta bastante frecuentedividir cada relacin en subrelaciones menores denominadas fragmentos que luego seubican en uno u otro sitio. De ah, que el proceso del diseo de la distribucin conste dedos actividades fundamentales: la fragmentacin y la asignacin. El ltimo paso deldiseo de la distribucin es el diseo fsico, el cual proyecta los esquemas conceptualeslocales sobre los dispositivos de almacenamiento fsico disponibles en los distintos sitios. Lasentradas para este paso son los esquemas conceptuales locales y la informacin deacceso a los fragmentos. Por ltimo, se sabe que la actividad de desarrollo y diseo es untipo de proceso que necesita de una monitorizacin y un ajuste peridicos, para que si sellegan a producir desviaciones, se pueda retornar a alguna de las fases anteriores. (Diseo

    de Bases de Datos Distribuidos)

    2.1 Consideraciones para el Diseo Bases de Datos Distribuidas

    Un sistema de administracin de base de datos distribuida rige el almacenamiento yprocesamiento de datos lgicamente relacionados a travs de sistemas decomputadoras interconectadas en las cuales, tanto las funciones de datos como deprocesamiento, se distribuyen entre varios sitios. Un DBMS debe contar por lo menos conlas funciones siguientes para ser considerado como distribuido:

    Interface de la aplicacin para interactuar con el usuario final o con programas deaplicacin y con otros DBMS dentro de la base de datos distribuida.

    Transformacin para determinar que componentes de solicitud de datos sedistribuyen y cuales son locales.

    Optimizacin de consultas para encontrar la mejor estrategia de acceso (Culesfragmentos deben ser accesados por la consulta y como, si las hay, se debensincronizar las actualizacin es de los datos?)

    Mapeo para determinar la ubicacin de los datos de fragmentos locales yremotos.

    Interface de E/S para leer o escribir datos de en medios de almacenamientoslocales permanentes.

    Formateo para preparar los datos para su presentacin al usuario final o unprograma de aplicacin.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    16/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Seguridad para proporcionar privacidad tanto en bases de datos locales como enremotas.

    Respaldo y recuperacin para garantizar la disponibilidad y recuperabilidad de labase de datos en caso de una falla.

    Administracin de base de datospara el administrador de la base de datos. Control de concurrencia para manejar el acceso simultaneo a los datos y para

    garantizar su consistencia a travs de los fragmentos en el DDBMS. Manejo de transaccionespara garantizar que los datos pasen de un estado

    consistente a otro. Esta actividad incluye la sincronizacin de transacciones localesy remotas, lo mismo que transacciones a travs de segmentos mltiples distribuidos.

    2.2 Diccionario de Datos

    Un diccionario de datos es un conjunto de metadatos que contiene las

    caractersticas lgicas de los datos que se van a utilizar en el sistema que se programa,incluyendo nombre, descripcin, alias, contenido y organizacin. (Wikipedia)

    Identifica los procesos donde se emplean los datos y los sitios donde se necesita el accesoinmediato a la informacin, se desarrolla durante el anlisis de flujo de datos y auxilia a losanalistas que participan en la determinacin de los requerimientos del sistema, sucontenido tambin se emplea durante el diseo. (Wikipedia)

    En un diccionario de datos se encuentra la lista de todos los elementos que forman partedel flujo de datos de todo el sistema. Los elementos ms importantes son flujos de datos,almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripcinde todos estos elementos. (Wikipedia)

    2.3 Niveles de Transparencia

    El propsito de establecer una arquitectura de un sistema de bases de datosdistribuidas es ofrecer un nivel de transparencia adecuado para el manejo de la

    informacin. La transparencia se puede entender como la separacin de la semntica dealto nivel de un sistema de los aspectos de bajo nivel relacionados a la implementacindel mismo. Un nivel de transparencia adecuado permite ocultar los detalles deimplementacin a las capas de alto nivel de un sistema y a otros usuarios.

    En sistemas de bases de datos distribuidos el propsito fundamental de la transparencia es

    proporcionar independencia de datos en el ambiente distribuido. Se pueden encontrardiferentes aspectos relacionados con la transparencia. Por ejemplo, puede existirtransparencia en el manejo de la red de comunicacin, transparencia en el manejo de

    copias repetidas o transparencia en la distribucin o fragmentacin de la informacin.La independencia de datos es la inmunidad de las aplicaciones de usuario a los cambiosen la definicin y/u organizacin de los datos y viceversa. La independencia de datos sepuede dar en dos aspectos: lgica y fsica.

    Independencia lgica de datos. Se refiere a la inmunidad de las aplicaciones de usuario alos cambios en la estructura lgica de la base de datos. Esto permite que un cambio en ladefinicin de un esquema no afecte a las aplicaciones de usuario. Por ejemplo, el

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    17/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    agregar un nuevo atributo a una relacin, la creacin de una nueva relacin, elreordenamiento lgico de algunos atributos.

    Independencia fsica de datos. Se refiere al ocultamiento de los detalles sobre lasestructuras de almacenamiento a las aplicaciones de usuario. Esto es, la descripcin fsicade datos puede cambiar sin afectar a las aplicaciones de usuario. Por ejemplo, los datospueden ser movidos de un disco a otro, o la organizacin de los datos puede cambiar.

    La transparencia al nivel de redse refiere a que los datos en un SBDD se accesan sobreuna red de computadoras, sin embargo, las aplicaciones no deben notar su existencia. Latransparencia al nivel de red conlleva a dos cosas:

    EjemploLas entidades a ser modeladas son ingenieros y proyectos. Para cada ingeniero,

    se desea conocer su nmero de empleado (ENO), su nombre (ENOMBRE), el puestoocupado en la compaa (TITULO), el salario (SAL), la identificacin de los nombres deproyectos en los cuales est trabajando (JNO), la responsabilidad que tiene dentro del

    proyecto (PUESTO) y la duracin de su responsabilidad en meses (DUR). Similarmente, paracada proyecto se desea conocer el nmero de proyecto (JNO), el nombre del proyecto(JNOMBRE), el presupuesto asignado al proyecto (PRESUPUESTO) y el lugar en donde sedesarrolla el proyecto (LUGAR).

    Un ingeniero puede participar en ms de un proyecto pero su salario correspondenicamente al puesto que ocupa en la compaa. As, despus de aplicar normalizacinse obtienen las relaciones E ?para ingenieros, J ?para proyectos, S ?para los salariosasignados a los puestos y G ?para los ingenieros asignados a cada proyecto.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    18/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    19/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael Gonzlez Tllez

    Bases de datos de una empresa con cuatro relaciones:

    E (ingenieros)

    ENO ENOMBRE TITULOE1 Juan Rodrguez Ingeniero ElctricoE2 Miguel Snchez Analista de SistemasE3 Armando Legarreta Ingeniero MecnicoE4 Beatriz Molleda ProgramadorE5 Jorge Castaeda Analista de SistemasE6 Luis Chvez Ingeniero ElctricoE7 Roberto Dvila Ingeniero MecnicoE8 Julia Jimnez Analista de Sistemas

    G (ingenieros asignados a proyecto)ENO JNO PUESTO DURE1 J1 Administrador 12E2 J1 Analista 24E2 J2 Analista 6E3 J3 Consultor 10E3 J4 Ingeniero 48E4 J2 Programador 18E5 J2 Administrador 24

    J (proyectos)JNO JNOMBRE PRESUPUESTO LUGARJ1 Instrumentaci

    n150000 Monterre

    y

    J2 Desarrollo debases de

    datos

    135000 Mxico

    J3 CAD/CAM 250000 PueblaJ4 Mantenimient

    o310000 Mxico

    J5 CAD/CAM 500000 Monterrey

    S (salarios asignados al puesto)TITULO SALARIO

    Ingeniero Elctrico 40000Analista de Sistemas 340002Ingeniero Mecnico 27000

    Programador 24000

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    20/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Si se quisiera obtener todos los empleados y sus salarios en la corporacin quienes han

    trabajado ms de 12 meses se hara la consulta siguiente en SQL:

    SELECT ENOMBRE, SALARIOFROM E, G, SWHERE G.DUR > 12 AND E.ENO = G.ENO AND E.TILE = S.TITLESe debe tener en cuenta que en cada sitio de la corporacin puede haber esquemasdiferentes o repetidos.

    Figura 2.3 Diferentes sitios de una corporacin.

    En el primer nivel se soporta la transparencia de red. En el segundo nivel se permite la

    transparencia de replicacin de datos. En el tercer nivel se permite la transparencia de lafragmentacin. Finalmente, en el ltimo nivel se permite la transparencia de acceso (por

    medio de lenguaje de manipulacin de datos). La responsabilidad sobre el manejo detransparencia debe estar compartida tanto por el sistema operativo, el sistema de manejode bases de datos y el lenguaje de acceso a la base de datos distribuida. Entre estos tresmdulos se deben resolver los aspectos sobre el procesamiento distribuido de consultas y

    sobre el manejo de nombres de objetos distribuidos.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    21/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Figura 2.4 Organizacin en capas de los niveles de transparencia.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    22/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Caractersticas de la Transparencia

    Un sistema de base de datos distribuida requiere caractersticas funcionales que puedanser agrupadas y descritas como caractersticas de transparencia. Las caractersticas detransparencia de DDBMS tiene la propiedad comn de permitir que el usuario sienta quees el nico que esta utilizando la base de datos. En otras palabras, el usuario cree que el oella esta trabajando con un DBMS centralizado; todas las complejidades de una base dedatos distribuida estn escondidas, o son transparentes, para el usuario. (Coronel & Rob,2004, pg. 498)Las caractersticas de transparencia del DDBMS son:

    Transparencia de distribucin, la cual permite que una base de datos distribuidasea tratada como una sola base de datos lgica. Si un DDBMS exhibetransparencia de distribucin, el usuario no necesita saber:

    o Que los datos estn en particiones

    o Que los datos pueden ser replicados en varios si tioso La ubicacin de los datos (Coronel & Rob, 2004, pg. 498)

    Transparencia de transaccin, la cual permite que una transaccin actualicedatos en varios sitios de la red. La transparencia de transaccin garantiza que latransaccin ser completada en su totalidad o abortada, con lo cual se mantienela integridad de la base de datos. (Coronel & Rob, 2004, pg. 498)

    Transparencia de falla, la cual permite que el sistema contina operando en elcaso de una falla de nodo. Las funciones que se perdieron a causa de la fallasern recobradas por otro nodo de la red. (Coronel & Rob, 2004, pg. 498)

    Transparencia de desempeo, la cual permite que el sistema funcione como sifuera un DBMS centralizado. El sistema no sufrir ninguna degradacin dedesempeo por su uso en una red o por diferencia de plataforma de la red.Tambin garantiza que el sistema encontrara la ruta de acceso mas optima a losdatos remotos. (Coronel & Rob, 2004, pg. 498)

    Transparencia de heterogeneidad, la cual permite la integracin de varios DBMSlocales diferentes conforme a un esquema comn, global. El DDBMS esresponsable de transformar las solicitudes de datos del esquema global en esquema de DDBMS local. (Coronel & Rob, 2004, pg. 498)

    2.3.1 Transparencia de Localizacin (de ubicacin)

    Existe cuando el usuario o programador debe especificar el nombre de los objetos de labase de datos pero no su ubicacin. (Coronel & Rob, 2004, pg. 499)

    Transparencia de ubicacin local

    Existe cuando el usuario o programador debe especificar tanto los nombres como las

    ubicaciones de los fragmentos. (Coronel & Rob, 2004, pg. 499)

    2.3.2 Transparencia de Fragmentacin

    Es el mayor nivel de transparencia. El usuario o programador no necesita saber que unabase de datos esta en particiones. Por consiguiente, ni los nombres ni la ubicacin de losfragmentos se especifican antes de acceder a los datos. (Coronel & Rob, 2004, pg. 499)

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    23/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    2.3.3 Transparencia de Replica

    Consiste en que si existen replicas de objetos de la base de datos, su existencia debe sercontrolada por el sistema no por el usuario.

    SI LA SENTENCIA SQL REQUIERE:

    NOMBRE DELFRAGMENTO

    NOMBRE DE LAUBICACIN

    EL DBMS SOPORTANIVEL DE TRANSPARENCIA

    DE DISTRIBUCIN

    Si Si Mapeo Local Bajo

    Si No Transparencia de ubicacin Medio

    No No Transparencia de fragmentacin Alto

    PRACTICA DE LABORATORIO No.1

    Para ilustrar el uso de varios niveles de transparencia suponga que se tiene una tabla T_EMPLEADOquecontiene los atributos EMP_CLAVE, EMP_APAT, EMP_AMAT, EMP_NOM, EMP_FNAC,EMP_FING y PUE_CLAVE.Los datos EMPLEADO estn distribuidos en 3 lugares: New York, Atlanta yMiami. La tabla est dividida por ubicacin, es decir, todos los datos del empleado de Nueva York estn

    guardados en el fragmento E1, los datos de los empleados de Atlanta en elE2y los de Miami en el E3.

    T_EMPLEADO TC_PUESTO

    EMP_CLAVE varchar(5) PK PUE_CLAVE varchar(2) PKPUE_CLAVE varchar(2) FK PUE_DESC varchar(50)EMP_APAT varchar(50)EMP_AMAT varchar(50)EMP_NOM varchar(50)EMP_FNAC datetimeEMP_FING datetime

    DBMS distribuidoTabla EMPLEADO

    E1 E2 E3

    New York Atlanta MiamiFigura 2.5 Ubicaciones de los fragmentos

    Ahora suponga que el usuario desea poner en lista todos los empleados con fecha de nacimiento anterior al

    primero de Enero de 1940. Para enfocarse en los temas de transparencia, tambin suponga que la tabla

    EMPLEADOesta fragmentada y que cada fragmento es nico (la condicin defragmentonico indica que

    todas las filas son nicas, sin hacer caso de que un fragmento este localizado en ellas). Por ltimo, supongaque ninguna parte de la base de datos esta replicada en algn otro sitio de la red.

    INSTANCIA ADMINISTRADOR PASSWORD

    DESKTOP\SVR_NEWYORK sa newyork

    DESKTOP\SVR_ATLANTA sa atlanta

    DESKTOP\SVR_MIAMI sa Miami

    DESKTOP\SVR_RECHUM sa rechum

    Segn el nivel de la transparencia de distribucin, pueden examinarse tres casos de consulta:

    Fragmento

    Ubicacin

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    24/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    CASO 1: LA BASE DE DATOS SOPORTA TRANSPARE NCIA DEFRAGMENTACIN

    La consulta se ajusta al formato de consulta de base de datos no distribuida; es decir, no especifica nombres o

    ubicaciones de fragmento.

    Previamente a esta instruccin SELECT simple, el DBA debi de generar la vista dividida para el acceso a

    datos, linkeando los servidores necesarios, para ello el administrador de la Base de Datos ser configurado

    con servidores vinculados. Esto se hace con el procedimiento sp_addlinkedserver, para emplear dicho

    procedimiento se debe tener en cuenta la sintaxis del mismo:

    sp_addlinkedserver [ @server= ] 'server'[ , [ @srvproduct= ] 'product_name' ][ , [ @provider= ] 'provider_name' ][ , [ @datasrc= ] 'data_source' ][ , [ @location= ] 'location' ][ , [ @provstr= ] 'provider_string' ][ , [ @catalog= ] 'catalog' ]

    [ @server = ] 'server'. Es el nombre local del servidor vinculado que se va a crear, es decir el alias con elque nombraremos al servidor. server es de tipo sysname y no tiene ningn valor predeterminado. Conmltiples instancias de SQL Server, server puede ser servername\instancename. Entonces, al servidor

    vinculado podr hacerse referencia como el origen de datos de SELECT *FROM

    [servername\instancename.]pubs.dbo.authors. Si no se especificadata_source, el servidor es el nombre real

    de la instancia.

    [ @srvproduct = ] 'product_name'. Es el nombre de producto del origen de datos OLE DB que se va aagregar como servidor vinculado.product_name es de tipo nvarchar(128) y su valor predeterminado esNULL. Si es SQL Server, no es necesario especificarprovider_name, data_source, location,provider_stringy catalog.

    [ @provider = ] 'provider_name'. Es el identificador de programacin nico (PROGID) del proveedor OLEDB correspondiente a este origen de datos. provider_name debe ser nico para el proveedor OLE DB

    especificado que se ha instalado en el equipo actual.provider_name es de tipo nvarchar(128) y su valorpredeterminado es NULL. Se espera que el proveedor OLE DB se registre con el PROGID proporcionado en

    el registro.

    [ @datasrc = ] 'data_source'. Es el nombre del origen de datos segn lo interpreta el proveedor OLE DB.data_source es de tipo nvarchar(4000)y su valor predeterminado es NULL. data_source se pasa como lapropiedad DBPROP_INIT_DATASOURCE para inicializar el proveedor OLE DB. Cuando se crea el

    servidor vinculado para el proveedor OLE DB de SQL Server,data_sourcepuede especificarse en el formato

    nombreServidor\nombreInstancia, que puede utilizarse para conectarse a una instancia especfica de SQLServer que se ejecute en el equipo especificado. nombreServidores el nombre del equipo en el que se ejecuta

    SQL Server y nombreInstanciaes el nombre de la instancia de SQL Server especfica a la que se conectar el

    usuario.

    [ @location = ] 'location'. Es la ubicacin de la base de datos segn la interpreta el proveedor OLE DB.location es de tipo nvarchar(4000)y su valor predeterminado es NULL. location se pasa como la propiedadDBPROP_INIT_LOCATION para inicializar el proveedor OLE DB.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    25/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    [ @provstr = ] 'provider_string'. Es la cadena de conexin especfica del proveedor OLE DB que identifica

    un origen de datos nico.provider_string es de tipo nvarchar(4000) y su valor predeterminado es NULL.provstr se pasa como la propiedad DBPROP_INIT_PROVIDERSTRING para inicializar el proveedor OLEDB. Cuando se crea el servidor vinculado para el proveedor OLE DB de SQL Server, la instancia puede

    especificarse mediante la palabra clave SERVER como, por ejemplo,

    SERVER=nombreServidor\nombreInstancia para especificar una instancia especfica de SQL Server.

    nombreServidores el nombre del equipo en el que se ejecuta SQL Server y nombreInstanciaes el nombre de

    la instancia de SQL Server especfica a la que se conectar el usuario.

    [ @catalog = ] 'catalog'. Es el catlogo que va a utilizarse cuando se establezca una conexin con elproveedor OLE DB. catalog es de tipo sysnamey su valor predeterminado es NULL.catalog se pasa como lapropiedad DBPROP_INIT_CATALOG para inicializar el proveedor OLE DB.

    SQL Server 2005

    En el analizador de consultas deDESKTOP\SVR_NEWYORKse ejecutar de la siguiente forma:

    sp_addlinkedserver 'DESKTOP\SVR_MIAMI','','SQLOLEDB','DESKTOP\SVR_MIAMI','','User ID=sa; Password=miami','BD_MIAMI'

    sp_addlinkedserver 'DESKTOP\SVR_ATLANTA', '','SQLOLEDB', 'DESKTOP\SVR_ATLANTA', '','User ID=sa; Password=atlanta', 'BD_ATLANTA'

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    26/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    As mismo en DESKTOP\SVR_ATLANTAla sintaxis ser la siguiente:

    sp_addlinkedserver 'DESKTOP\SVR_NEWYORK', '', 'SQLOLEDB','DESKTOP\SVR_NEWYORK',

    '', 'User ID=sa; Password=newyork', 'BD_NEWYORK'

    sp_addlinkedserver 'DESKTOP\MIAMI', '', 'SQLOLEDB', 'DESKTOP\SVR_MIAMI','', 'User ID=sa; Password=miami', 'BD_MIAMI'

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    27/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    As mismo en DESKTOP\SVR_MIAMIla sintaxis ser la siguiente:

    sp_addlinkedserver 'DESKTOP\SVR_NEWYORK','','SQLOLEDB','DESKTOP\SVR_NEWYORK','','User ID=sa; Password=newyork', 'BD_NEWYORK'

    sp_addlinkedserver 'DESKTOP\SVR_ATLANTA', '', 'SQLOLEDB','DESKTOP\SVR_ATLANTA', '','User ID=sa; Password=atlanta', 'BD_ATLANTA'

    Para conocer los servidores disponibles, que se han agregado, ejecute sp_helpserver en cada una de lasinstancias instaladas.

    En cualquiera de las instancias ejecute la consulta sp_helpserverdeber verse de esta forma:

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    28/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Para eliminar los servidores vinculados o disponibles, que se han agregado, ejecutesp_dropserverpara cada

    instancias que desee eliminar.

    En cualquiera de las instancias ejecute la consulta sp_dropserverdeber verse de esta forma:

    Ahora bien, si al ejecutar una consulta distribuida obtuviramos un mensaje de error referente a las consultas

    Ad Hoc como el siguiente:

    Mens. 15281, Nivel 16, Estado 1, Lnea 3SQL Server bloque el acceso a STATEMENT 'OpenRowset/OpenDatasource' del componente 'Ad HocDistributed Queries' porque este componente est desactivado como parte de la configuracinde seguridad de este servidor. Un administrador del sistema puede habilitar el uso de 'AdHoc Distributed Queries' mediante sp_configure. Para obtener ms informacin sobre cmohabilitar 'Ad Hoc Distributed Queries', vea el tema sobre la configuracin de superficie enlos Libros en pantalla de SQL Server.

    Quiere decir que debemos reconfigurar el servidor para que soporte dichas consultas mediante los siguientes

    comandos:

    En el analizador de consultas deDESKTOP\SVR_NEWYORKse ejecutar de la siguiente forma:

    sp_configure'show advanced options',1reconfigure with overridegosp_configure'Ad Hoc Distributed Queries',1reconfigure with overridego

    As mismo en DESKTOP\MIAMI , en DESKTOP\SVR_ATLANTA y DESKTOP\SVR_RECHUM

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    29/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Cuando un usuario inicia la sesin en el servidor local y ejecuta una consulta distribuida que obtiene acceso a

    una tabla del servidor vinculado, el servidor local debe iniciar la sesin en el servidor vinculado en nombre

    del usuario para obtener acceso a esa tabla. Mediante el procedimiento sp_addlinkedsrvloginespecificaremos las credenciales de inicio de sesin que utiliza el servidor local para iniciar sesin en el

    servidor vinculado.

    Al ejecutar sp_addlinkedserver, se crea automticamente una asignacin predeterminada entre todos losinicios de sesin del servidor local y los inicios de sesin remotos del servidor vinculado. La asignacin

    predeterminada indica que SQL Server utiliza las credenciales de usuario del inicio de sesin local al

    conectarse al servidor vinculado en nombre del inicio de sesin.

    En el analizador de consultas deDESKTOP\SVR_NEWYORKse ejecutar de la siguiente forma:

    EXECsp_addlinkedsrvlogin 'DESKTOP\SVR_MIAMI','false','sa','sa','miami'EXECsp_addlinkedsrvlogin 'DESKTOP\SVR_ATLANTA','false','sa','sa',

    'atlanta'

    As mismo en DESKTOP\MIAMI y en DESKTOP\SVR_ATLANTA

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    30/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    SQL Server 2000

    En el analizador de consultas deDESKTOP\SVR_NEWYORKse ejecutar de la siguiente forma:

    EXECsp_addlinkedserver'DESKTOP\ SVR_MIAMI', '','SQLOLEDB','DESKTOP\SVR_MIAMI','','','BD_MIAMI'

    EXECsp_addlinkedserver'DESKTOP\SVR_ATLANTA','','SQLOLEDB','DESKTOP\SVR_ATLANTA','','','BD_ATLANTA'

    EXECsp_addlinkedsrvlogin'DESKTOP\SVR_MIAMI','false','sa','sa','miami'EXECsp_addlinkedsrvlogin'DESKTOP\SVR_ATLANTA','false','sa','sa',

    'atlanta'

    As mismo en DESKTOP\SVR_ATLANTAla sintaxis ser la siguiente:

    EXECsp_addlinkedserver'DESKTOP\SVR_NEWYORK','','SQLOLEDB','DESKTOP\SVR_NEWYORK','','','BD_NEWYORK'

    EXECsp_addlinkedserver'DESKTOP\SVR_MIAMI','','SQLOLEDB','DESKTOP\SVR_MIAMI','','','BD_MIAMI'

    EXECsp_addlinkedsrvlogin'DESKTOP\ SVR_MIAMI','false','sa','sa','miami'EXECsp_addlinkedsrvlogin'DESKTOP\SVR_NEWYORK','false','sa','sa',

    'newyork'

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    31/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    As mismo en DESKTOP\MIAMIla sintaxis ser la siguiente:

    EXECsp_addlinkedserver'DESKTOP\SVR_NEWYORK','','SQLOLEDB','DESKTOP\SVR_NEWYORK','','','BD_NEWYORK'

    EXECsp_addlinkedserver'DESKTOP\SVR_ATLANTA','','SQLOLEDB','DESKTOP\SVR_ATLANTA','','','BD_ATLANTA'

    EXECsp_addlinkedsrvlogin'DESKTOP\SVR_NEWYORK','false','sa','sa','newyork'

    EXECsp_addlinkedsrvlogin'DESKTOP\SVR_ATLANTA','false','sa','sa','atlanta'

    Para conocer los servidores disponibles, que se han agregado, ejecute sp_helpserver en cada una de lasinstancias instaladas.

    En cualquiera de las instancias ejecute la consulta sp_helpserverdeber verse de esta forma:

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    32/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Para verificar que efectivamente se vinculo el servidor y se registro de forma correcta al usuario sa

    procederemos a ejecutar una consulta SELECT simple en el analizador de consultas deDESKTOP\SVR_NEWYORKla cual permita extraer informacin del servidor vinculado:

    SELECT*FROM[DESKTOP\SVR_MIAMI].BD_MIAMI.dbo.T_EMPLEADO

    Ahora, es importante conocer la manera de poder eliminar un registro de un usuario seguidamente revertir el

    proceso de vincular un servidor, esto se puede lograr utilizando los procedimientos almacenados

    sp_droplinkedsrvlogin y sp_dropserver, en ese mismo orden. Para ejemplificar esto, utilizaremos el analizadorde consultas de DESKTOP\SVR_NEWYORK.

    EXECsp_droplinkedsrvlogin 'DESKTOP\SVR_MIAMI','sa'EXECsp_droplinkedsrvlogin 'DESKTOP\SVR_ATLANTA','sa'

    EXECsp_dropserver 'DESKTOP\SVR_MIAMI'EXECsp_dropserver 'DESKTOP\SVR_ATLANTA'

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    33/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Luego de lo anterior nuestro servidor esta capacitado para realizar las consultas distribuidas requeridas sobre

    los diversos servidores.

    Ahora bien, para poder realizar la transparencia de fragmentacin es necesaria la creacin de vistasdistribuidas, estas se realizaran con la siguiente sintaxis en el servidor deDESKTOP\SVR_NEWYORK, y

    posteriormente hacer lo correspondiente para los servidores de DESKTOP\SVR_ATLANTA y

    DESKTOP\SVR_MIAMI:

    De esta forma la instruccin SELECT final del usuario seria una consulta simple como la siguiente:

    SELECT*FROMdbo.V_EMPLEADOWHEREEMP_APAT LIKE'K%'

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    34/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Creacion de UPDATE, DELETE e INSERT DistribuidosUPDATEOPENDATASOURCE ('SQLOLEDB','Data Source= LAPTOP\SVR_MIAMI; User ID = sa;password=miami').BD_MIAMI.dbo.TC_PUESTOSETPUE_DESC ='SOPORTE TCNICO'WHEREPUE_CLAVE LIKE'ST'

    INSERT INTOdbo.Table_1 -MIGRAR INFORMACION DE TABLA A TABLASELECTUNO FROM OPENDATASOURCE ('SQLOLEDB','Data Source=LAPTOP\SVR_ATLANTA; User ID = sa;password=atlanta').BD_atlanta.dbo.Table_1

    INSERT INSERTAR DATOS EN UNA TABLAOPENDATASOURCE ('SQLOLEDB','Data Source= evolution-v2.\SVR_ATLANTA; User

    ID = sa; password=atlanta').BD_ATLANTA.dbo.TC_PUESTOVALUES('DOS')

    DELETEOPENDATASOURCE ('SQLOLEDB','Data Source= LAPTOP\SVR_ATLANTA; User ID =sa; password=atlanta').BD_ATLANTA.dbo.Table_1

    CASO 2: LA BASE DE DATOS SOPORTA TRANSPARE NCIA DEUBICACIN

    En la consulta deben especificarse los nombres de fragmento, ms no su ubicacin.

    En este ejemplo obtendremos informacin de la tablaT_EMPLEADOubicadas en los servidores

    SVR_MIAMI Y SVR_ATLANRAdesde un equipo remoto en este caso seria SVR_NEWYORK:

    SELECTEMP_CLAVE,EMP_APAT,EMP_AMAT,EMP_NOM,EMP_FNAC,EMP_FING,PUE_CLAVEFROM dbo.T_EMPLEADO

    UNION

    SELECTEMP_CLAVE,EMP_APAT,EMP_AMAT,EMP_NOM,EMP_FNAC,EMP_FING,PUE_CLAVEFROM [DESKTOP\SVR_ATLANTA].BD_ATLANTA.dbo.T_EMPLEADO

    UNION

    SELECTEMP_CLAVE,EMP_APAT,EMP_AMAT,EMP_NOM,EMP_FNAC,EMP_FING,PUE_CLAVEFROM [DESKTOP\SVR_MIAMI].BD_MIAMI.dbo.T_EMPLEADO

    Nota: Hay que tener en cuenta que sin la especificacin correcta del esquema, en este caso dbo, al quepertenece la tabla no se podr tener acceso a ella como en versiones pasadas de SQL.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    35/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    36/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    CASO 3: LA BASE DE DATOS SOPORTA TRANSPARENCIA DE UBICACINLOCAL

    En la consulta deben especificarse los nombres de fragmento, ms no su ubicacin.

    En este primer ejemplo se obtienen datos de las instancias de servidor de SVR_ATLANTA ySVR_MIAMIdesde el servidor de SVR_NEWYORKmediante el siguiente cdigo:

    SELECT*FROM T_EMPLEADO

    UNION

    SELECT*FROM OPENDATASOURCE('SQLOLEDB','Data Source=DESKTOP\SVR_ATLANTA; User ID=sa;Password=atlanta').BD_ATLANTA.dbo.T_EMPLEADO

    UNION

    SELECT*FROM OPENDATASOURCE(

    'SQLOLEDB','Data Source=DESKTOP\SVR_MIAMI; User ID=sa;Password=miami').BD_MIAMI.dbo.T_EMPLEADO

    La instruccin UNION aplicara con diferentes servidores de SQL Server 2005, para este ejemplo puede

    ejecutar la consulta directamente sobre SQL Server 2005. De clic en el botn de Consulta de motor de

    base de datos al lado de Nueva consulta y pegue el cdigo anterior. Previamente configurado

    sp_configure

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    37/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    PRACTICA DE LABORATORIO No. 2Esta prctica consistir en aplicar los conceptos de heterogeneidad de base de datos distribuidas, vinculando

    servidores de diversas plataformas y realizando consultas distribuidas sobre ambas.

    Escenario: Suponga usted que el servidor SVR_ATLANTA ha quedado momentneamente fuera de servicio,

    el ingeniero en Sistemas decide que los empleados que se den de alta durante el tiempo que el servidor no

    funciona se capturarn en una base de datos temporal en Access para luego ser exportados al servidor.

    Base de datos Access 2007

    Ubicacin del archivo: C:\

    Nombre: BD_TEMP

    Tablas: T_EMPLEADO

    Campos en T_EMPLEADO:EMP_CLAVE (Texto, 5) PK,EMP_APAT (Texto, 50),

    EMP_AMAT (Texto, 50),EMP_NOM (Texto, 50),

    EMP_FNAC (Fecha/Hora),

    EMP_FING (Fecha/Hora),

    PUE_CLAVE (Texto, 2) PKCapture los siguientes datos en la tabla T_EMPLEADO:

    EMP_CLAVE EMP_APAT EMP_AMAT EMP_NOM EMP_FNAC EMP_FING PUE_CLAVE

    018 Gonzalez Escolar Maria 09/11/1987 15/12/2008 CP

    019 Pinilla Gallego Pilar 11/04/1980 15/12/2008 DS

    020 Rivas Acevedo Humberto 19/05/1972 15/12/2008 DS

    Nota: Una de las razones principales por las cuales se realiza una comprobacin antes de la mezcla de losdatos, es que los capturistas desconocen la ltima clave ingresada en la tabla de empleados, llevando ellos

    solamente un consecutivo, por otro lado dado que esto es un trabajo emergente se omite un catalogo de

    empleados, aunque si se toma como un campo clave primario, por los detalles anteriores se deben hacer una

    serie de comprobaciones en ambas tablas.

    a) Realice una consulta que muestre los datos desde BD_TEMP en el analizador de SQL enSVR_ATLANTA.

    SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','C:\BD_TEMP.accdb';'admin';'',T_EMPLEADO)

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    38/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    b) Realice una consulta que verifique que los datos a ingresar sean consistentes con la base de datos deATLANTA.

    /**Script para seleccionar datos desde C:\BD_TEMP.accdb y comparar las claves con las existentes enT_EMPLEADOSb) Realice una consulta que verifique que los datos a ingresar no estn duplicados en BD_ATLANTA**//** PRIMER COMPROBACION (DUPLICIDAD)

    1: Convierte a tipo de datos INT los tres caracteres que siguen a AT en la clave de un empleado p.e.AT001=1**//**2: Hace el mismo tipo de conversion que 1: pero trabaja con todos los caracteres de la cadena deaccess p.e. 018=18**//** SEGUNDA COMPROBACION (CATALOGO)

    3: Selecciona las claves de puesto que no coincidan con el catalogo de puestos**//** TERCER COMPROBACION (FECHAS)

    4: Obtiene las edades de los empleados a la fecha del ingreso las ordena y en base a la menor esperaque sean mayores de 18**/DECLARE@MENSAJE VARCHAR(100)SET@MENSAJE=''IF (SELECTTOP1 CONVERT(INT,SUBSTRING(EMP_CLAVE,3,3))ASCLAVE

    FROMT_EMPLEADO

    ORDERBYCLAVE DESC)/**1**/>=(SELECTTOP1 CONVERT(INT,SUBSTRING(EMP_CLAVE,1,3))ASCLAVEFROMOPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'C:\BD_TEMP.accdb';'admin';'',T_EMPLEADO)ORDERBYCLAVE

    DESC)/**2**/SET@MENSAJE='CLAVES DUPLICADAS,'

    IFEXISTS (SELECTPUE_CLAVEFROMOPENROWSET('Microsoft.ACE.OLEDB.12.0',

    'C:\BD_TEMP.accdb';'admin';'',T_EMPLEADO)

    WHEREPUE_CLAVE NOTIN(SELECTPUE_CLAVEFROMTC_PUESTO)/** 3**/)

    SET@MENSAJE=@MENSAJE +'CLAVES DE PUESTOS,'IF (SELECTTOP1 DATEDIFF(YEAR,EMP_FNAC,EMP_FING)ASANIOS

    FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'C:\BD_TEMP.accdb';'admin';'',T_EMPLEADO)ORDERBYANIOS ASC)/**4**/

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    39/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    c) Realice una consulta para enviar los datos desde BD_TEMP a BD_ATLANTA en SVR_ATLANTA./**Script para seleccionar datos desde C:\BD_TEMP.accdbc) Realice una consulta para enviar los datos desde BD_TEMP a BD_ATLANTA en SVR_ATLANTA**/BEGINTRANT1INSERTINTOT_EMPLEADO(EMP_CLAVE,EMP_APAT,EMP_AMAT,EMP_NOM,EMP_FNAC,EMP_FING,PUE_CLAVE)SELECT'AT'+EMP_CLAVE,EMP_APAT,EMP_AMAT,EMP_NOM,EMP_FNAC,EMP_FING,PUE_CLAVE

    FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'C:\BD_TEMP.accdb';'admin';'',T_EMPLEADO)

    SELECT*FROMT_EMPLEADO

    ROLLBACK

    COMMITTRANT1

    Vista final de la tabla T_EMPLEADO EN SVR_ATLANTA

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    40/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    41/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    2.4 Fragmentacin de Datos

    La fragmentacin de los datos permite dividir un objeto en dos o ms segmentos ofragmentos. El objeto podra ser una base de datos de usuario, una base de datos desistema o una tabla. Cada fragmento puede guardarse en cualquier sitio en una red decomputadoras. La informacin de la fragmentacin de los datos se guarda en uncatalogo de datos distribuidos (DDC), desde donde es accesara por el procesador detransacciones para procesar las solicitudes de los usuarios.

    Las estrategias de fragmentacin de los datos como se analizan aqu, estn basadas anivel de tabla y consisten en dividir una tabla en fragmentos lgicos. Podemos hablar detres estrategias de fragmentacin de datos: horizontal, vertical y mezclada (Se debe teneren cuenta que una tabla fragmentada siempre puede recrearse con sus partes

    fragmentadas mediante una combinacin de uniones y articulaciones).

    La fragmentacin horizontal se refiere a la divisin de una relacin en subconjunto(fragmento) de tuplas (filas). Cada fragmento se guarda en un nodo diferente, y cadauno de ellos tiene filas nicas. Sin embargo, todas las filas nicas tienen los mismosatributos (columnas). En suma, cada fragmento equivale a una sentencia SELECT, con unacombinacin de uniones y articulaciones.

    La fragmentacin vertical se refiere a la divisin de una relacin en subconjuntos deatributo (columna). Cada conjunto (fragmento) se guarda en un nodo diferente, y cadafragmento tiene columnas nicas, con la excepcin de la columna clave, la cual escomn a todos los fragmentos. Esto es el equivalente de la sentencia PROJECT.

    La fragmentacin mezclada se refiere a una combinacin de estrategias horizontales y

    verticales. En otras palabras, una tabla puede dividirse en varios subconjuntos horizontales(filas), y cada una tiene un subconjunto de los atributos (columnas).

    Para ilustrar las estrategias de fragmentacin, se utilizara la tabla CLIENTE de la compaaXYZ, ilustrada a continuacin, esta tabla contiene los atributos CLI_NUM, CLI_NOM,CLI_DIR, CLI_UBI, CLI_LIM,CLI_BAL, CLI_RAT, CLI_DUE

    CLI_NUM

    CLI_NOM CLI_DIR CLI_UBI CLI_LIM CLI_BAL CLI_RAT CLI_DUE

    10 Sinex,Inc. 12 Main St. NY $3500.00 $2700.00 3 $1245.00

    11 Martin Corp. 321 Sunset Blvd. MI $6000.00 $1200.00 1 $0.00

    12 Mynux Corp. 910 Eagle St. NY $4000.00 $3500.00 3 $3400.00

    13 BTBC, Inc. Rue du Monde MI $6000.00 $5890.00 3 $1090.00

    14 Victory, Inc. 123 Maple St. MI $1200.00 $550.00 1 $0.00

    15 NBCC Corp 909 High Ave. AT $2000.00 $350.00 2 $50.00

    2.4.1 Fragmentacin Horizontal

    Suponga que la gerencia corporativa de la XYZ Company requiere informacin sobre susclientes en los tres estados, pero las ubicaciones de la compaa en cada estado (NY, MIy AT) solamente requieren datos con respecto a clientes locales. Con base en esosrequerimientos, se decide distribuir los datos por estado. Por consiguiente, se definen losfragmentos horizontales de acuerdo con la estructura mostrada en la tabla siguiente:

    Comentario [W1]: Cuandoaludimos a un Nombre propiohacemos la descomposicin delmismo, en este caso losclientes que maneja la empresason otras empresaspor lo tantoel campo no se descompone enmas.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    42/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    NOMBRE DELFRAGMENTO

    UBICACIN CONDICION NOMBRE DELNODO

    NUMEROS DECLIENTE

    NUMERO DECUARTOS

    CLI_H1 New York CUS_STATE=NY NYR 10,12 2

    CLI_H2 Atlanta CUS_STATE=AT ATL 15 1

    CLI_H3 Miami CUS_STATE=MI MIA 11,13,14 3

    Cada fragmento horizontal puede tener un nmero diferente de filas, pero cada uno deellos DEBE tener los mismos atributos. Los fragmentos resultantes producen las tres tablasque a continuacin se muestran:

    Nombre del fragmento: CLI_H1 Ubicacin: New York Nodo: NYRCLI_N

    UMCLI_NOM CLI_DIR CLI_UBI CLI_LIM CLI_BAL CLI_RAT CLI_DUE

    10 Sinex,Inc. 12 Main St. NY $3500.00 $2700.00 3 $1245.00

    12 Mynux Corp. 910 Eagle St. NY $4000.00 $3500.00 3 $3400.00

    Nombre del fragmento: CLI_H2 Ubicacin: Atlanta Nodo: ATLCLI_N

    UMCLI_NOM CLI_DIR CLI_UBI CLI_LIM CLI_BAL CLI_RAT CLI_DUE

    15 NBCC Corp 909 High Ave. AT $2000.00 $350.00 2 $50.00

    Nombre del fragmento: CLI_H3 Ubicacin: Miami Nodo: MIACLI_N

    UMCLI_NOM CLI_DIR CLI_UBI CLI_LIM CLI_BAL CLI_RAT CLI_DUE

    11 Martin Corp. 321 Sunset Blvd. MI $6000.00 $1200.00 1 $0.00

    13 BTBC, Inc. Rue du Monde MI $6000.00 $5890.00 3 $1090.00

    14 Victory, Inc. 123 Maple St. MI $1200.00 $550.00 1 $0.00

    2.4.2 Fragmentacin Vertical

    Tambin puede dividirse la relacin CLIENTE en fragmentos verticales compuestos de unconjunto de atributos. Por ejemplo, suponga que la compaa est dividida en dosdepartamentos, el de servicio y el de colecciones. Cada departamento est ubicado enun edificio distinto, y cada uno tiene inters solamente en unos cuantos de los atributos dela tabla CLIENTE. En este caso, los fragmentos se definen como se muestra a continuacin:

    NOMBRE DELFRAGMENTO

    UBICACIN NOMBRE DELNODO

    NOMBRES DE ATRIBUTO

    CLI_V1 Edif. de servicio SVC CLI_NUM, CLI_NOM, CLI_DIR, CLI_UBI

    CLI_V2 Edif. de coleccin ARC CLI_NUM, CLI_LIM, CLI_BAL, CLI_RAT, CLI_DUE

    Cada fragmento vertical debe tener el mismo nmero de filas, pero la inclusin de losdiferentes atributos depende de la columna clave. Los resultados de la fragmentacinvertical se muestran a continuacin, observe que el atributo clave (CLI_NUM) es comn aambos fragmentos CLI_V1 y CLI_V2.

    Nombre del fragmento:CLI_V1

    Ubicacin: Edif. deservicio

    Nodo: SVC

    CLI_NUM CLI_NOM CLI_DIR CLI_UBI

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    43/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    10 Sinex,Inc. 12 Main St. TN

    11 Martin Corp. 321 SunsetBlvd.

    FL

    12 Mynux Corp. 910 Eagle St. TN

    13 BTBC, Inc. Rue du Monde FL

    14 Victory, Inc. 123 Maple St. FL

    15 NBCC Corp 909 High Ave. GA

    Nombre del fragmento:CLI_V2

    Ubicacin: Edif. de coleccin Nodo: ARC

    CLI_NUM CLI_LIM CLI_BAL CLI_RAT CLI_DUE

    10 $3500.00 $2700.00 3 $1245.00

    11 $6000.00 $1200.00 1 $0.00

    12 $4000.00 $3500.00 3 $3400.00

    13 $6000.00 $5890.00 3 $1090.00

    14 $1200.00 $550.00 1 $0.00

    15 $2000.00 $350.00 2 $50.00

    2.4.3 Fragmentacin Hibrida (de Mezcla)

    La estructura de la XYZ Company requiere que los datos CLIENTE se fragmentenhorizontalmente para acomodar las diferentes ubicaciones de la compaa; dentro de lasubicaciones, los datos deben ser fragmentados verticalmente para acomodar losdiferentes departamentos (servicio y coleccin). En suma la tabla CLIENTE requiere unafragmentacin mezclada.

    La fragmentacin mezclada requiere un procedimiento de dos pasos. Primero, se

    introduce la fragmentacin horizontal por cada sitio, con base en la ubicacin dentro deun estado (CLI_UBI). La fragmentacin horizontal produce los subconjuntos de tuplascliente (fragmentos horizontales) localizados en cada sitio. Como los departamentos estnlocalizados en edificios diferentes, se utiliza una fragmentacin vertical dentro de cadafragmento horizontal para dividir los atributos, con lo cual se satisfacen las necesidades deinformacin de cada departamento en cada subsitio. La fragmentacin mezclada da losresultados ilustrados en la tabla siguiente:

    NOMBRE DELFRAGMENTO UBICACIN

    CRITERIOSHORIZONTALES

    NOMBREDEL NODO

    FILASRESULTANTESEN EL SITIO

    CRITERIOS VERTICALES Y ATRIBUTOSEN CADA FRAGMENTO

    CLI_M1 NY-Servicio CLI_STATE=NY NYR-S 10,12CLI_NUM, CLI_NOM, CLI_DIR,CLI_UBI

    CLI_M2 NY-Coleccin CLI_STATE=NY NYR-C 10,12CLI_NUM,CLI_LIM,CLI_BAL,CLI_RAT, CLI_DUE

    CLI_M3 AT-Servicio CLI_STATE=AT ATL-S 15

    CLI_NUM, CLI_NOM, CLI_DIR,

    CLI_UBI

    CLI_M4 AT-Coleccin CLI_STATE=AT ATL-C 15CLI_NUM,CLI_LIM,CLI_BAL,CLI_RAT, CLI_DUE

    CLI_M5 MI-Servicio CLI_STATE=MI MIA-S 11,13,14CLI_NUM, CLI_NOM, CLI_DIR,CLI_UBI

    CLI_M6 MI-Coleccin CLI_STATE=MI MIA-C 11,13,14CLI_NUM,CLI_LIM,CLI_BAL,CLI_RAT, CLI_DUE

    Cada fragmento mostrado en la tabla anterior contiene datos de clientes por estado y,dentro de cada estado por ubicacin de departamento, para adaptarse a los

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    44/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    requerimientos de datos de cada departamento. Las tablas correspondientes a los

    fragmentos de mezcla se muestran a continuacin:

    Nombre del fragmento:CLI_M1

    Ubicacin: NY-Servicio

    Nodo: NYR-S

    CLI_NUM CLI_NOM CLI_DIR CLI_UBI

    10 Sinex,Inc. 12 Main St. NY

    12 Mynux Corp. 910 Eagle St. NY

    Nombre del fragmento:CLI_M2

    Ubicacin: NY-Coleccin Nodo: NYR-C

    CLI_NUM CLI_LIM CLI_BAL CLI_RAT CLI_DUE

    10 $3500.00 $2700.00 3 $1245.00

    12 $4000.00 $3500.00 3 $3400.00

    Nombre del fragmento:CLI_M3

    Ubicacin: AT-Servicio

    Nodo: ATL-S

    CLI_NUM CLI_NOM CLI_DIR CLI_UBI

    15 NBCC Corp 909 High Ave. AT

    Nombre del fragmento:CLI_M4

    Ubicacin: AT-Coleccin Nodo: ATL-C

    CLI_NUM CLI_LIM CLI_BAL CLI_RAT CLI_DUE

    15 $2000.00 $350.00 2 $50.00

    Nombre del fragmento:CLI_M5

    Ubicacin: MI-Servicio

    Nodo: MIA-S

    CLI_NUM CLI_NOM CLI_DIR CLI_UBI

    11 Martin Corp.321 SunsetBlvd. MI

    13 BTBC, Inc. Rue du Monde MI

    14 Victory, Inc. 123 Maple St. MI

    Nombre del fragmento:CLI_M6

    Ubicacin: MI-Coleccin Nodo: MIA-C

    CLI_NUM CLI_LIM CLI_BAL CLI_RAT CLI_DUE

    11 $6000.00 $1200.00 1 $0.00

    13 $6000.00 $5890.00 3 $1090.00

    14 $1200.00 $550.00 1 $0.00

    2.5 Distribucin de Datos

    Los datos son tiles solo cuando llegan a los usuarios correctos en el momentoadecuado. El DBA es responsable de que los datos sean distribuidos a las personasapropiadas en el momento apropiado y en el formato correcto. Las tareas de uso ydistribucin de los datos del DBA pueden requerir mucho tiempo, en particular si lacapacidad de entrega de los datos est basada en un ambiente tpico de programacinde aplicaciones, donde los usuarios dependen de programadores que suministran losprogramas para acceder a los datos guardados en la base de datos. Aunque la internet y

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    45/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    sus extensiones intranet y extranet han abierto las bases de datos a los usuarios

    corporativos, su utilizacin tambin ha creado nuevos retos para el DBA.

    La actual filosofa de distribucin de datos permite que los usuarios autorizadosaccedan ala base de datos. Una forma de realizar esta tarea es facilitar el uso de una nuevageneracin de herramientas de consulta ms complejas y los nuevos programas frontalesde web internet. Estos permiten que el DBA ensee a los usuarios a producir la informacinrequerida sin tener que depender de los programadores de aplicaciones. Naturalmente,el DBA debe asegurarse de que se sigan los procedimientos y estndares apropiados.

    Esta filosofa de distribucin es comn hoy en da, y es probable que llegue a ser mscomn conforme la tecnologa de base de datos avanza. Un ambiente como ese es msflexible para el usuario. Esta claro, que si se permite que los usuarios se vuelvanrelativamente autosuficientes en la adquisicin y uso de los datos, este ser ms eficienteen el proceso de toma de decisiones. Sin embargo, esta democracia de datos tambin

    produce algunos efectos colaterales problemticos. Al permitir que los usuarios micromanejen sus subconjuntos de datos, podra daarse sin querer la conexin entre losusuarios la funcin de la administracin de datos. El trabajo del DBA en estascircunstancias podra llegar a ser lo suficientemente complicado como paracomprometer la eficiencia de la funcin de la administracin de datos. La duplicacin dedatos podra florecer otra vez si no se realizan verificaciones a nivel organizacional paragarantizar la singularidad de los elementos de datos. As pues, los usuarios que noentiendan a cabalidad la naturaleza y fuentes de los datos podran utilizarinapropiadamente los elementos de datos.

    Rol tcnico del DBA

    El rol tcnico del DBA requiere un amplio entendimiento de las funciones del DBMS,la configuracin, los lenguajes de programacin, el modelado de datos y metodologas

    de diseo y otros temas relacionados con el DBM. Por ejemplo, las actividades tcnicasdel DBA incluyen la seleccin, instalacin, operacin, mantenimiento y actualizacin delDBMS y software utilitario, as como el diseo, desarrollo, ejecucin y mantenimiento de losprogramas de aplicacin que interactan con la base de datos.

    Muchas de las actividades tcnicas del DBA son una extensin lgica de sus actividadesadministrativas. Por ejemplo, el DBA se encarga de la seguridad e integridad, el respaldo yrecuperacin, el entrenamiento y soporte de la base de datos. Por lo tanto, el rol dobledel DBA podra ser conceptualizado como una capsula cuyo ncleo tcnico estacubierto por una corteza claramente administrativa.

    Los aspectos tcnicos del trabajo del DBA estn enraizados en las siguientes reas deoperacin:

    Evaluacin, seleccin e instalacin del DBMS y utileras Diseo y ejecucin de bases de datos y aplicaciones Pruebas y evaluaciones de bases de datos y aplicaciones Operacin del DBMS, utileras y aplicaciones Entrenamiento y soporte de los usuarios Mantenimiento del DBMS, utileras y aplicaciones

    Niveles de distribucin de los datos y procesos

    Los sistemas de base de datos actuales se clasifican con base en como la distribucin delos procesos y datos son soportados. Por ejemplo, un DBMS puede guardar datos en un

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    46/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    solo sitio (DB centralizada) o en mltiples sitios (DB distribuida) y puede soportar

    procesamientos de datos en un solo sitio o en varios. En la siguiente tabla se muestra unaclasificacin de los sistemas de base de datos de acuerdo con la distribucin de los datosy con los procesos.

    DATOS EN UN SOLO SITIO DATOS EN SITIOS MULTIPLESProceso en un solo sitio DBMS anfitrin mainframes No aplicable (requiere

    procesos mltiples)Proceso en mltiples sitios Servidor de archivos DBMS

    Cliente/servidor (DBMS deLAN)

    DDBMS Cliente/servidortotalmente distribuido

    2.5.1 Algoritmos Distribucin Datos No Replicados

    Debido al uso que se da a las redes de computadoras en la actualidad incluyendoInternet, cada vez es ms factible implementar Sistemas de Bases de Datos Distribuidas, sinembargo, esta tecnologa lleva a los desarrolladores a enfrentar un problema, la carenciade metodologas y herramientas de apoyo para su diseo que permitan decidir laubicacin de los datos en cada uno de los diferentes sitios que componen la red decomputadoras.

    Este problema se conoce como Diseo de la Distribucin y nace de la necesidad deespecificar las unidades de almacenamiento adecuadas, ya sea fragmentos verticales,horizontales o mixtos, junto con su ubicacin dentro de la aplicacin.

    El Modelo FURD, ha sido desarrollado para resolver el problema del diseo de las Bases deDatos Distribuidas, el cual esta divido en dos etapas o fases: la fragmentacin y laubicacin de fragmentos. Estas fases ya se concentran en el Modelo FURD.

    Una vez que se resuelve el Modelo FURD se puede dar solucin al problema del diseo. Sinembargo la dificultad radica precisamente en la forma de resolverlo, pues es un problemade optimizacin muy complejo que a medida que va creciendo su tamao, se vahaciendo ms difcil la forma de resolverse.

    ModeladoFURD.pdf

    2.5.2 Algoritmos Distribucin Datos Replicados

    Al tratarse de algoritmos de distribucin replicados o no replicados la definicin de nuestroproblema y variables ser diferente, es decir el problema se restringir de otra maneracomo se explica en el documento ModeladoFURD.pdf.

    Estas restricciones son:

    1 Restriccin. Cada atributo se almacena solamente en un solo sitio (Para bases de datosdistribuidas no replicadas)

    2 Restriccin. Cada atributo m se ubica en un sitio i que al menos ejecute una consultaque involucre al atributo (Para bases de datos distribuidas replicadas)

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    47/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    3. Procesamiento de consultas distribuidas

    Para adentrarse en este tema es recomendable tener conocimientos bsicos de algebrarelacional.

    El xito creciente de la tecnologa de bases de datos relacionales en el procesamiento de

    datos se debe, en parte, a la disponibilidad de lenguajes no procedurales los cuales

    pueden mejorar significativamente el desarrollo de aplicaciones y la productividad del

    usuario final. Ocultando los detalles de bajo nivel acerca de la localizacin fsica de datos,

    los lenguajes de bases de datos relacionales permiten la expresin de consultas complejas

    en una forma concisa y simple. Particularmente, para construir la respuesta a unaconsulta, el usuario no tiene que especificar de manera precisa el procedimiento que se

    debe seguir. Este procedimiento es llevado a cabo por un mdulo del DBMS llamado el

    procesador de consultas(query processor).

    Una base de datos relacional consiste en muchas piezas, pero en su corazn estn dos

    componentes importantes: el motor de almacenaje y el procesador de consultas. El motor

    de almacenaje escribe y lee datos del disco. Maneja los expedientes, concurrencia de los

    controles, y mantiene ficheros de diario. El procesador de consultas acepta sintaxis de

    SQL, selecciona un plan para ejecutar la sintaxis, y despus ejecuta el plan elegido. El

    usuario o el programa obran recprocamente con el procesador de consultas, y el

    procesador de consultas obra recprocamente con el motor de almacenaje. El

    procesador de consultas asla al usuario de los detalles de la ejecucin: el usuario

    especifica el resultado y el procesador de consultas determina como se obtiene ese

    resultado.

    Dado que la ejecucin de consultas es un aspecto crtico en el rendimiento de un DBMS,

    el procesamiento de consultas ha recibido una gran atencin tanto para bases de datos

    centralizadas como distribuidas. Sin embargo, el procesamiento de consultas es mucho

    ms difcil en ambientes distribuidos que en centralizados, ya que existe un gran nmero

    de parmetros que afectan el rendimiento de las consultas distribuidas.

    El problema de procesamiento de consultas

    La funcin principal de un procesador de consultas relacionales es transformar una

    consulta en una especificacin de alto nivel, tpicamente en clculo relacional, a una

    consulta equivalente en una especificacin de bajo nivel, tpicamente alguna variacin

    del lgebra relacional (ver Figura 3.1). La consulta de bajo nivel implementada es de

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    48/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    hecho la estrategia de ejecucin para la consulta. La transformacin debe ser correcta y

    eficiente. Es correcta si la consulta de bajo nivel tiene la misma semntica que la consulta

    original, esto es, si ambas consultas producen el mismo resultado. El mapeo bien definido

    que se conoce entre el clculo relacional y el lgebra relacional hace que la validez de

    la transformacin sea fcil de verificar. Sin embargo, producir una estrategia de ejecucin

    eficiente es mucho ms complicado. Una consulta en el clculo relacional puede tener

    muchas transformaciones correctas y equivalentes en el lgebra relacional. Ya que cada

    estrategia de ejecucin equivalente puede conducir a consumos de recursos de

    cmputo muy diferentes, la dificultad ms importante es seleccionar la estrategia de

    ejecucin que minimiza el consumo de recursos.

    Figura 3.1. Procesamiento de consultas.

    Considere el siguiente subconjunto del esquema de la base de datos que se vio en eltema 2.3:

    E (ENO, ENOMBRE, TITULO)

    G (ENO, JNO, RESPONSABLE, JORNADA)

    Con la siguiente consulta de usuario:

    "Encuentre todos los nombres de empleados que manejan un proyecto"

    La expresin de la consulta en SQL se puede ver como

    SELECT ENOMBRE

    FROM E, G

    WHERE E.ENO = G.ENO AND RESPONSABLE = "ADMINISTRADOR"

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    49/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Dos consultas equivalentes en el lgebra relacional que son transformaciones correctas

    de la consulta en SQL son:

    y

    Como es intuitivamente obvio, la segunda estrategia que evita calcular el productocartesiano entre E y G, consume mucho menos recursos que la primera y, por lo tanto, esmejor.

    En un contexto centralizado, las estrategias de ejecucin de consultas pueden ser bienexpresadas como una extensin del lgebra relacional. Sin embargo, en sistemasdistribuidos, el lgebra relacional no es suficiente para expresar la ejecucin deestrategias. Debe ser complementada con operaciones para el intercambio de datosentre nodos diferentes. Adems de elegir el orden de las operaciones del lgebra

    relacional, el procesador de consultas distribuidas debe seleccionar tambin los mejoressitios para procesar datos y posiblemente la forma en que ellos tienen que sertransformados.

    Ejemplo 3.1: Considere la siguiente consulta del ejemplo anterior:

    Supongamos que E y G estn fragmentadas horizontalmente como sigue:

    E1= ENO "E3"(E)

    E2= ENO > "E3"(E) G1= ENO "E3"(G)

    G2= ENO > "E3"(G)

    Los fragmentos E1, E2, G1 y G2 estn almacenados en los nodos 1, 2, 3 y 4,

    respectivamente, y el resultado se quiere en el nodo 5. En la Figura 3.2 se presentan dos

    estrategias distribuidas de ejecucin diferentes para la misma consulta (se ha ignorado el

    operador de proyeccin por simplicidad del ejemplo). La estrategia A explota el hecho

    de que las relaciones E y G estn fragmentadas de la misma manera y ejecuta la

    operacin de seleccin y junta en paralelo. La estrategia B centraliza todos los datos en el

    nodo resultante antes de procesar la consulta.

    Para evaluar el consumo de recursos, se usar un modelo de costo simple:

    Suponga que el costo de acceso a un tuplo (tupacc) es 1 unidad, y la

    transferencia de un tuplo (tuptrans) tiene un costo de 10 unidades.

    Suponga que E y G tienen 400 y 1000 tuplos, respectivamente, y que existen 20

    administradores en la relacin G.

  • 5/22/2018 67474852 Bases de Datos Distribuidas

    50/60

    Manual para la materia de Bases de Datos Distribuidas. Elaborado por Lic. Julio Ismael GonzlezTllez

    Tambin, suponga que los datos estn uniformemente distribuidos entre los nodos.

    Finalmente, suponga que las relaciones G y E estn agrupadas localmente en los

    atributos RESP y ENO, respectivamente, de manera que, hay un acceso directo a

    los tuplos de G y E, respectivamente.

    El costo de la estrategia A se puede derivar como sigue:

    No. Proc