bases+de+datos+distribuidas

**1.** Una Base de Datos Distribuida es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se encuentra físicamente esparcido en varios "sitios" de la red. Y Un sistema de base de datos distribuidas se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en el cual : Cada sitio es un sistema de base de datos en sí mismo, pero, Los sitios han convenido en trabajar juntos ( si es necesario ) con el fin de que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario.

**2.** El procesamiento de bases de datos distribuidas es el procesamiento de bases de datos en el cual la ejecución de transacciones y la recuperación y actualización de los datos acontece a través de dos o más computadoras independientes, por lo general separadas geográficamente. La figura 1 muestra un sistema de base de datos distribuida que involucra cuatro computadoras. Figura 1 Arquitectura de base de datos distribuida



El **sistema** **de administración de base de datos distribuida** (DDBMS), está formado por las transacciones y los administradores de base de datos distribuidos de todas las computadoras. Tal y como se muestra, tal DDBMS es un esquema genérico que implica un conjunto de programas que operan en diversas computadoras. Estos programas pueden ser subsistemas de un producto único DDBMS, concesionado por un sólo fabricante, o también pudiera resultar una colección de programas de fuentes dispares: algunos concesionados por fabricantes, y algunos otros escritos en casa. El propósito de esta figura es ilustrar las funciones que deban atenderse en el procesamiento de bases de datos distribuidas.

ejemplo: Nivel Conceptual //** : La vista conceptual es una presentación de toda la información contenida en la base de datos. Además puede ser muy diferente en la forma en que percibe los datos cualquier usuario final, es decir, debe ser un panorama de los datos. Tal como son y no como los percibe los usuarios. Debido a las limitaciones del lenguaje o bien al equipo que se esta utilizando. El nivel conceptual se define mediante un esquema conceptual el cual incluye la definición de cada uno de los tipos de registros (entidades), además, el esquema conceptual no debe asociarse a representaciones de campos almacenados tales como punteros, índices, etc., si el esquema conceptual se desarrolla en forma independiente de los datos entonces el esquema externo definido en base al esquema conceptual será también independiente de los datos. Nivel Interno //** : Representación de bajo nivel de toda la base de datos, se compone de varias ocurrencias, de varios tipos de registros, el nivel interno todavía esta aún paso del nivel físico ya que no se manejan los registros fijos. La vista interna se define a través de un esquema interno el cual no sólo define los diversos tipos de registros almacenados, si no, también especifica los índices asociados, representación de los campos almacenados, secuencia física de los registros, etc.
 * 3. ARQUITECTURA DE UN SISTEMA DE BASES DE DATOS **
 * // Nivel Externo //** : Es el nivel del usuario individual, es decir, los usuarios pueden ser programadores en algunos casos usuarios finales, cada usuario dispone de un lenguaje y en el caso de un programador. Dispone de un lenguaje convencional. En el caso de un usuario final, será un lenguaje de consulta o un Lenguaje orientado hacia los usuarios. El punto importante de todos estos lenguajes es que debe incluir un sublenguaje de datos del cual estará inmerso o dentro de un lenguaje anfitrión, un lenguaje dado, cualquier va ha permitir el empleo de varios lenguajes anfitriones y varios sublenguajes para datos.
 * lenguaje VB o “C” || >>>>> || lenguaje anfitrión ||
 * Access || >>>>> || Sublenguaje. ||
 * DBSE || >>>>> || lenguaje arquitectónico ||
 * ASSIST || >>>>> || SUB-LENGUAJE. ||
 * SQL || >>>>> || sub-lenguaje. ||


 * 4. VENTAJAS Y DESVENTAJAS **


 * Ventajas **
 * Refleja una estructura organizacional - los fragmentos de la base de datos se ubican en los departamentos a los que tienen relación.
 * Autonomía local - un departamento puede controlar los datos que le pertenecen.
 * Disponibilidad - un fallo en una parte del sistema solo afectará a un fragmento, en lugar de a toda la base de datos.
 * Rendimiento - los datos generalmente se ubican cerca del sitio con mayor demanda, también los sistemas trabajan en paralelo, lo cual permite balancear la carga en los servidores.
 * Economía - es más barato crear una red de muchas computadoras pequeñas, que tener una sola computadora muy poderosa.
 * Modularidad - se pueden modificar, agregar o quitar sistemas de la base de datos distribuida sin afectar a los demás sistemas (módulos).
 * Desventajas **
 * Complejidad - Se debe asegurar que la base de datos sea transparente, se debe lidiar con varios sistemas diferentes que puden presentar dificultades únicas. El diseño de la base de datos se tiene que trabajar tomando en cuenta su naturaleza distribuida, por lo cual no podemos pensar en hacer joins que afecten varios sistemas.
 * Economía - la complejidad y la infraestructura necesaria implica que se necesitará una mayor mano de obra
 * Seguridad - se debe trabajar en la seguridad de la infraestructura así como cada uno de los sistemas.
 * Integridad - Se vuelve difícil mantener la integridad, aplicar las reglas de integridad a través de la red puede ser muy caro en términos de transmisión de datos.
 * Falta de experiencia - las bases de datos distribuidas son un campo relativamente nuevo y poco común por lo cual no existe mucho personal con experiencia o conocimientos adecuados.
 * Carencia de estándares - aún no existen herramientas o metodologías que ayuden a los usuarios a convertir un DBMS centralizado en un DBMS distribuido.
 * Diseño de la base de datos se vuelve más complejo - además de las dificultades que generalmente se encuentran al diseñar una base de datos, el diseño de una base de datos distribuida debe considerar la fragmentación, replicación y ubicación de los fragmentos en sitios específicos.

· Los componentes consisten en los datos, el software del Sistema de Manejador de Bases de Datos SMBD y los dispositivos de almacenamiento secundario asociados, como discos para el almacenamiento en línea de la base de datos y cintas para las copias de seguridad. · Se pueden tener acceso remoto a una base de datos centralizada a través de terminales conectadas al sitio; los datos y el software del SMBD residen principalmente en un solo sitio... · La base de datos está almacenada en varias computadoras conectadas en red. · Surgen debido a la existencia física de organismos descentralizados. · Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas universidades, sucursales de tiendas, etc. || · se ejecutan en un único sistema informático sin interaccionar con ninguna otra computadora. · Un solo punto de control de los clientes para la Web y línea de comandos. · // tienen sus propios usuarios locales, sus propios DBMS y programas para la administración de transacciones, y su propio administrador local de comunicación de datos .// · La vista del explorador permite la administración de trabajos, calendarios, etc. · Los flujos de trabajos se pueden editar y controlar en el diseño gráfico. · Los objetos son organizados en una jerarquía de archivo/directorio. · Grupo de comandos intuitivo. · Optimiza el procesamiento automatizado que permite que se lleve a cabo más trabajo sin intervención. · Reduce el costo de personal al permitir que los empleados se enfoquen en tareas que consuman menos tiempo y sean menos repetitivas. · Inicia trabajos basados en tiempo o eventos reduciendo posibles errores humanos. · Reduce los costos de operación al eliminar la programación manual de procesos repetitivos y trabajosos. · Realiza tareas rutinarias de mantenimiento del sistema y de procesamiento de datos fuera de horas. · Implementa secuencias de trabajos simples y complejos basados en la finalización satisfactoria de los requisitos de otros trabajos o recursos (archivo o hardware). || ·   es una colección de archivos relacionados con la finalidad de permitir el manejo de la información de alguna compañía. · contiene archivos que pueden ser vistos como una colección de registros y cada registro está compuesto de una colección de campos. || · Son transparentes al usuario. ·  es una colección de archivos relacionados con la finalidad de permitir el manejo de la información de alguna compañía. · Están compuestas por archivos y colecciones de registros donde cada registro está compuesto de una colección de campos que permiten llevar información de alguna característica o atributo de alguna entidad del mundo real. ||
 * 5.**
 * || **BASES DE DATOS DISTRIBUIDAS** || **BASES DE DATOS CENTRALIZADAS** ||
 * DIFERENCIAS || · Todos los componentes del sistema residen en un solo computador o sitio.
 * SEMEJANZAS || · Son transparentes al usuario.

**6.** Las bases de Datos Distribuidas por lo general son aplicadas en empresas o asociaciones que tienes más de una sucursal, ya que estas deben de estar entrelazadas entre sí para que los usuarios de cualquiera de estas puedan accesar a toda la información que se almacena en cada una de ellas.

**7.** ** Las doce reglas. ** 1. **Autonomía Local.** Los sitios de un sistema distribuido deben ser autónomos. La autonomía local significa que todas las operaciones en un sitio dado se controlan en ese sitio; ningún sitio X deberá depender de algún otro sitio Y para su buen funcionamiento. La autonomía local implica también un propietario y una administración locales de los datos, con responsabilidad local : todos los datos pertenecen " en realidad" a una base de datos local, aunque sean accesibles desde algún sitio remoto. La autonomía local implica que todos los sitios deben tratarse igual; no debe haber dependencia de un sitio central "maestro" para obtener un servicio central, como por ejemplo un procesamiento centralizado de las consultas o una administración centralizada de las transacciones, de modo que todo el sistema dependa de ese sitio central. En un sistema distribuido, lo mismo que en uno no distribuido, idealmente nunca debería haber necesidad de apagar a propósito el sistema. Es decir, el sistema nunca debería necesitar apagarse para que se pueda realizar alguna función, como añadirse un nuevo sitio o instalar una versión mejorada del DBMS en un sitio ya existente. La idea básica de la independencia con respecto a la localización es simple : no debe ser necesario que los usuarios sepan dónde están almacenados físicamente los datos, sino que más bien deben poder comportarse - al menos desde un punto de vista lógico - como si todos los datos estuvieran almacenados en su propio sitio local. Un sistema maneja fragmentación de los datos si es posible dividir una relación en partes o "fragmentos" para propósitos de almacenamiento físico. La fragmentación es deseable por razones de desempeño: los datos pueden almacenarse en la localidad donde se utilizan con mayor frecuencia, de manera que la mayor parte de las operaciones sean sólo locales y se reduzca al tráfico en la red. Un sistema maneja réplica de datos si una relación dada se puede representar en el nivel físico mediante varias copias almacenadas o réplicas, en muchos sitios distintos. La réplica es deseable al menos por dos razones : en primer lugar, puede producir un mejor desempeño (las aplicaciones pueden operar sobre copias locales en vez de tener que comunicarse con sitios remotos) ; en segundo lugar, también puede significar una mejor disponibilidad (un objeto estará disponible para su procesamiento en tanto esté disponible por lo menos una copia, al menos para propósitos de recuperación).
 * 2. No dependencia de un sitio central. **
 * 3. Operación continua. **
 * 4. Independencia con respecto a la localización. **
 * 5. Independencia con respecto a la fragmentación. **
 * 6. Independencia de réplica. **

** 7. Procesamiento distribuido de consultas. ** En este aspecto debemos mencionar dos puntos amplios. la optimización es todavía más importante en un sistema distribuido que en uno centralizado. Lo esencial es que, en una consulta donde están implicados varios sitios, habrá muchas maneras de trasladar los datos en al red para satisfacer la solicitud, y es crucial encontrar una estrategia suficiente. El manejo de transacciones tiene dos aspectos principales, el control de recuperación y el control de concurrencia, cada uno de los cuales requiere un tratamiento más amplio en el ambiente distribuido. Para explicar ese tratamiento más amplio es preciso introducir primero un término nuevo, "agente". En un sistema distribuido, una sola transacción puede implicar la ejecución de código en varios sitios ( en particular puede implicar a actualizaciones en varios sitios ). Por tanto, se dice que cada transacción está compuesta de varios agentes, donde un agente es el proceso ejecutado en nombre de una transacción dada en determinado sitio. Y el sistema necesita saber cuándo dos agentes son parte de la misma transacción. En cuanto al control de concurrencia, esta función en un ambiente distribuido estará basada con toda seguridad en el bloqueo, como sucede en los sistemas no distribuidos. Las instalaciones de cómputo en el mundo real por lo regular incluyen varias máquinas diferentes -máquinas IBM, DEC, HP, UNISYS, PC etc- y existe una verdadera necesidad de poder integrar los datos en todos esos sistemas y presentar al usuario "una sola imagen del sistema". Por tanto conviene ejecutar el mismo DBMS en diferentes equipos, y además lograr que esos diferentes equipos participen como socios iguales en un sistema distribuido. Este objetivo es un corolario del anterior. Es obvia la conveniencia no sólo de poder ejecutar el mismo DBMS en diferentes equipos, sino también poder ejecutarlo en diferentes sistemas operativos y lograr que una versión MVS y una UNIX y una PC/DOS participen todas en el mismo sistema distribuido. Si el sistema ha de poder manejar múltiples sitios diferentes, con equipo distinto y diferentes sistemas operativos, resulta obvia la conveniencia de poder manejar también varias redes de comunicación distintas. Bajo este título consideramos las implicaciones de relajar la suposición de homogeneidad estricta. Puede alegarse que esa suposición es quizá demasiado rígida. En realidad, no se requiere sino que los DBMS en los diferentes sitios manejen todos la misma interfaz; no necesitan ser por fuerza copias del mismo sistema.
 * 8. Manejo distribuido de transacciones. **
 * 9. Independencia con respecto al equipo. **
 * 10. Independencia con respecto al sistema operativo. **
 * 11. Independencia con respecto a la red. **
 * 12. Independencia con respecto al DBMS **

8. Realice un ejemplo con la base de datos proyectos para: fragmentación Vertical, fragmentación horizontal y Fragmentación mixta.

FRAGMENTACION VERTICAL EJ: Proyecto (num_proyecto, nom_proyecto, num_oficina) SELECT num_proyecto, num_oficina FROM proyecto

FRAGMENTACION HORIZONTAL EJ: SELECT * FROM proyectos Where nom_proyectos