domingo, 9 de septiembre de 2012

TRANSPARENCIA Y FRAGMENTACION

Transparencia

El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posición del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un único equipo se tratara.

El termino Trasparencia esta definido como: "La ocultación de la separación entre el usuario y el programador de la aplicación, tal que el sistema es percibido como un todo y no como una colección de componentes independientes". Las implicaciones de la Trasparencia son de gran influencia en el diseño de los sistemas de software.

ANSA [1987] identifica 8 formas de trasparencia:

* Acceso Trasparente: permite acceder a archivos locales o remotos y a otros tipos de objetos usando las mismas instrucciones.

* Localización Trasparente: permite accesar a un objeto determinado sin necesidad de conocer su localización.

* Concurrencia Trasparente: permite a varios usuarios o programas de aplicaciones a operar concurrentemente o compartiendo datos sin una interface entre ellos.

* Replicación Trasparente: permite múltiples instancias de archivos y otros datos usados e incrementa la veracidad y desempeño sin el conocimiento de las replicas por parte de los usuarios o por los programas de aplicación.

* Trasparencia en Fallas: posibilita el ocultamiento de fallas, permitiendo a los usuarios y programas de aplicación completar sus tareas a pesar de fallas de componentes de hardware o de software.

* Trasparencia en Migración: permite el movimiento de los objetos del sistema sin afectar la operación de los usuarios de los programas de aplicación.

* Trasparencia en el Desempeño: permite al sistema ser reconfigurado para mejorar el desempeño al variar la carga, por ejemplo.

* Escalabilidad Trasparente: permite al sistema y a las aplicaciones expandirse en forma escalar sin cambiar la estructura del sistema o los algoritmos de aplicación.



FRAGMENTACION

Fragmentación hibrida: En muchos casos una fragmentación horizontal o vertical de un esquema de una base de datos no será suficiente para satisfacer los requerimientos de aplicaciones de usuario. En este caso, una fragmentación vertical puede ser seguida de uno horizontal, o viceversa, produciendo un árbol de particionamiento estructurado, . Ya que los dos tipos de particionamiento se aplican uno después del otro, esta alternativa se le conoce como fragmentaciónhíbrida. El problema de fragmentación se refiere al particionamiento de la información para distribuir cada parte a los diferentes sitios de la red. Inmediatamente aparece la siguiente pregunta: ¿Cuál es la unidad razonable de distribución?. Se puede considerar que una relación completa es lo adecuado ya que las vistas de usuario son subconjuntos de las relaciones. Sin embargo, el uso completo de relaciones no favorece las cuestiones de eficiencia sobre todo aquellas relacionadas con el procesamiento de consultas.La otra posibilidad es usar fragmentos de relaciones (sub-relaciones) lo cual favorece la ejecución concurrente de varias transacciones que accesan porciones diferentes de una relación. Sin embargo, el uso de sub-relaciones también presenta inconvenientes. Por ejemplo, las vistas de usuario que no se pueden definir sobre un solo fragmento necesitarán un procesamiento adicional a fin de localizar todos los fragmentos de una vista. Aunado a esto, el control semántico de datos es mucho más complejo ya que, por ejemplo, el manejo de llaves únicas requiere considerar todos los fragmentos en los que se distribuyen todos los registros de la relación. En resumen, el objetivo de la fragmentación es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas. Fragmentación horizontal primaria: Una fragmentación horizontal primaria de una relación se obtiene usando predicados que están definidos en esa relación. La fragmentación horizontal derivada, por otra parte, es el particionamiento de una relación como resultado de predicados que se definen en otra relación. Para poder construir una fragmentación, es necesario proporcionar información acerca de la base de datos y acerca de las aplicaciones que las utilizan. En primer término, es necesario proporcionar la información acerca del esquema conceptual global. En este sentido es importante dar información acerca de las relaciones que componen a la base de datos, la cardinalidad de cada relación y las dependencias entre relaciones. En segundo lugar se debe proporcionar información acerca de la aplicación que utiliza la base de datos. Este tipo de información es cuantitativa y consiste de los predicados usados en las consultas de usuario.  Fragmentación horizontal derivada: Una fragmentación horizontal derivada se define en la relación miembro de una liga de acuerdo a la operación de selección especificada en la relación propietaria. La liga entre las relaciones propietaria y miembro se define como una equi-junta. Una equi-junta se puede implementar por semi-juntas. Esto es importante, ya que se quiere particionar una relación miembro de acuerdo a la fragmentación de su propietario, pero se quiere que los fragmentos resultantes queden definidos únicamente en los atributos de la relación miembro.  Fragmentación vertical: Una fragmentación vertical de una relación R produce fragmentos R1R2, …, Rr, cada uno de los cuales contiene un subconjunto de los atributos de R así como la llave primaria de R. El objetivo de la fragmentación vertical es particionar una relación en un conjunto de relaciones más pequeñas de manera que varias de las aplicaciones de usuario se ejecutarán sobre un fragmento. En este contexto, una fragmentación “óptima” es aquella que produce un esquema de fragmentación que minimiza el tiempo de ejecución de las consultas de usuario. 
La fragmentación vertical ha sido estudiada principalmente dentro del contexto de los sistemas de manejo de bases de datos centralizados como una herramienta de diseño, la cual permite que las consultas de usuario traten con relaciones más pequeñas haciendo, por tanto, un número menor de accesos a páginas. 
La fragmentación vertical es inherentemente más complicada que particionamiento horizontal ya que existe un gran número de alternativas para realizarla.  Por lo tanto, se utilizan heurísticas para hacer el particionamiento. Los dos enfoques básicos son: Agrupamiento: Inicia asignando cada atributo a un fragmento, y en cada paso, algunos de los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento.  
División: Inicia con una sola relación realizar un particionamiento basado en el comportamiento de acceso de las consultas sobre los atributos.  Nos concentraremos aquí al estudio del enfoque divisional ya que, por un lado, su aplicación es más natural al enfoque de diseño “top-down”. Además, el enfoque divisional genera fragmentos que no se traslapan mientras que el agrupamiento típicamente resulta en fragmentos traslapados. Por supuesto, la no traslapación no incluye a las llaves primarias.  

LAS BASES DE DATOS Y SU IMPACTO EN EL SECTOR PRODUCTIVO DE LAS NACIONES


Para cualquier organización que está operando en el sector productivo de un país, es indispensable contar con medios para el control de la información, ya que de ello depende en gran medida que se lleguen a tomar decisiones en momentos de crisis económica o problemas legales. Desde su aparición cerca de los años 80’s, las bases de datos han sido mejoradas con el paso de los años, ya que las primeras aplicaciones eran realmente “sistemas de archivos” aunque si fueron consideradas como tal. A diferencia de las bases de datos los sistemas de archivos no tienen niveles de seguridad competentes, al ser organizados simplemente en carpetas de nivel jerárquicos muy similar a como lo hacen los sistemas operativos, por ejemplo: en el caso de Windows para encontrar un archivo llamado “documento1.odt” en el disco duro del usuario “cperez” la ruta asignada sería similar a la siguiente C:\archivos de programa \bibliotecas\documentos\formatos\documento1.odt (solo es un ejemplo las rutas pueden variar de un equipo a otro), con lo cual las únicas garantías de seguridad que se disponían eran las rutas de ubicación, algún tipo de protección por contraseña del archivo que contiene los datos y el acceso al equipo (contraseña para ingresar al sistema operativo), principalmente. Aunque de igual manera destacan la falta de protección de la red local de la organización y el propio personal encargado de administrar la información.
Fue precisamente en el sector productivo y gubernamental de los distintos países donde los sistemas de archivos mostraron problemas en cuanto a la administración y seguridad de la información de todas las áreas (sectores paraestatales y empresas privadas), ¿Por qué? Debido a que cualquiera de los empleados de una determinada empresa, podía ingresar y alterar la información en los sistemas de archivos para su beneficio o afectar a otros empleados (siempre que estuviese familiarizado con el uso de la computadora), esto acarreo grandes problemas legales y económicos que debía solucionarse de manera rápida y efectiva. La solución fue un modelo de guardado de información conocido como “base de datos relacional”, planteado por Edgar Frank Codd (23/08/1923 – 18/04/2003), en su modelo propuso un banco de datos para grandes cantidades de datos, pero con un esquema de aislamiento de los datos ¿Qué quiere decir? Que el usuario podría acceder a determinadas consultas de la información de acuerdo a la autorización y privilegios que le fueran otorgados, es decir, dependería de los directivos de la organización autorizar quien revisa la información, pero ellos como directivos tendrían acceso prácticamente en todo momento.

El modelo planteado por Codd funciono de acuerdo a las expectativas plateadas y la primera empresa en comercializar software de base de datos fue Oracle. Su producto fue ampliamente aceptado, a tal grado que prácticamente todas las empresas tanto gubernamentales como privadas cambiaron al uso de software de base de datos, ya que les brindaba niveles de administración y seguridad mayores al de los sistemas de archivos, el modelo de Codd se convirtió en el pilar para las mejoras de las bases de datos actuales, que ahora se disponen más sofisticadas como las orientadas a objetos, jerárquicas, de red, multidimensionales, etc. 

El impacto de las bases de datos tanto en el sector privado como gubernamental, ha sido tan grande que prácticamente todas las empresas desde las PyMEShasta las multinacionales  (de gobierno o privadas) hacen uso de las bases de datos, por citar empresas importantes que hacen uso a diario de este tipo de software están los bancos, solo imagine la cantidad de operaciones que debe realizar con los clientes, empresas particulares y otros bancos, la cantidad información que deben manejar es realmente sorprendente ya que tienen que revisar la información de millones de celdas de las distintas tablas que integran una base de datos y la información que consultan prácticamente no debe tener margen de error (es la meta que buscan las bases de datos tener margen de error nulo, aunque la realidad en escasas ocasiones si llegan a tener errores). Las instituciones gubernamentales de igual manera las implementan para agilizar trámites como registro del número de nacimientos, defunciones, para obtener información sobre el número de personas laborando, registro de automóviles, la cantidad total de la población etc. Donde mantener la información lo más resguardada posible es la prioridad para evitar fraudes.

Es fácil apreciar la importancia que tienen las bases de datos en todos los sectores productivos, tanto de gobierno como privados, ya que garantizan la integridad de los datos en niveles de aislamiento complejos que solo las personas autorizadas pueden acceder. Sin duda, estos tipos de software han hecho un importante aporte a la seguridad y administración de los datos de los distintos países en el mundo, ya que como muchos analistas aseguran “la información vale igual o más que el propio petróleo” .

ARQUITECTURA DE LAS BASE DE DATOS 


 Arquitectura centralizada 
Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un único sistema
informático sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los
sistemas de bases de datos monousuario ejecutándose en computadoras personales hasta los sistemas de
bases de datos de alto rendimiento ejecutándose en grandes sistemas.


 Una computadora moderna de propósito general consiste en una o unas pocas CPU’s y un número
determinado de controladores para los dispositivos que se encuentren conectados a través de un bus común,
el cual proporciona acceso a la memoria compartida. Las CPU’s poseen memorias caché locales donde se
almacenan copias de ciertas partes de la memoria para acelerar el acceso a los datos. Cada controlador de
dispositivo se encarga de un tipo específico de dispositivos (por ejemplo, una unidad de disco, una tarjeta de
sonido o un monitor). La CPU y los controladores de dispositivo pueden ejecutarse concurrentemente,
compitiendo así por el acceso a la memoria.
 Normalmente, los sistemas de bases de datos diseñados para funcionar sobre sistemas monousuario,
como las computadoras personales, no suelen proporcionar muchas de las facilidades que ofrecen los
sistemas multiusuario. En particular, no tienen control de concurrencia, que no es necesario cuando
solamente un usuario puede generar modificaciones. Las facilidades de recuperación en estos sistemas, o no
existen o son primitivas; por ejemplo, realizar una copia de seguridad de la base de datos antes de cualquier
modificación. La mayoría de estos sistemas no admiten SQL y proporcionan un lenguaje de consulta muy
simple, que en algunos casos es una variante de QBE (Query By Example).
 Aunque hoy en día las computadoras de propósito general tienen varios procesadores, utilizan
paralelismo de grano grueso, disponiendo de unos pocos procesadores (normalmente dos o cuatro) que
comparten la misma memoria principal. Las bases de datos que se ejecutan en tales máquinas habitualmente
no intentan dividir una consulta simple entre los distintos procesadores, sino que ejecutan cada consulta en
un único procesador, posibilitando la concurrencia de varias consultas. Así, estos sistemas soportan una
mayor productividad, es decir, permiten ejecutar un mayor número de transacciones por segundo, a pesar de que cada transacción individualmente no se ejecuta más rápido.
 Las bases de datos diseñadas para las máquinas monoprocesador ya disponen de multitarea,
permitiendo que varios procesos se ejecuten a la vez en el mismo procesador, usando tiempo compartido,
mientras que de cara al usuario parece que los procesos se están ejecutando en paralelo. De esta manera,
desde un punto de vista lógico, las máquinas paralelas de grano grueso parecen ser idénticas a las máquinas
monoprocesador, y pueden adaptarse fácilmente los sistemas de bases de datos diseñados para máquinas de tiempo compartido para que puedan ejecutarse sobre máquinas paralelas de grano grueso.
 Por el contrario, las máquinas paralelas de grano fino tienen un gran número de procesadores y los
sistemas de bases de datos que se ejecutan sobre ellas intentan paralelizar las tareas simples (consultas, por
ejemplo) que solicitan los usuarios.


ARQUITECTURA CLIENTE/SERVIDOR


La computación cliente/servidor es la extensión lógica de la programación modular. El supuesto
principal de la programación modular es la división de un programa grande en pequeños programas
(llamados módulos), siendo más fáciles el desarrollo y la mantenibilidad (divide y vencerás).
 Cualquier LAN (red de área local) puede ser considerada como un sistema cliente/servidor, desde el
momento en que el cliente solicita servicios como datos, ficheros o imprimir desde el servidor.


CARACTERÍSTICAS DE UN SISTEMA CLIENTE/SERVIDOR.

 Un sistema cliente/servidor es aquel en el que uno o más clientes y uno o más servidores,
conjuntamente con un sistema operativo subyacente y un sistema de comunicación entre procesos, forma un
sistema compuesto que permite cómputo distribuido, análisis, y presentación de los datos. Si existen
múltiples servidores de procesamiento de base de datos, cada uno de ellos deberá procesar una base de datos 12
distinta, para que el sistema sea considerado un sistema cliente/servidor. Cuando dos servidores procesan la
misma base de datos, el sistema ya no se llama un sistema cliente/servidor, sino que se trata de un sistema de
base de datos distribuido.
Los clientes, a través de la red, pueden realizar consultas al servidor. El servidor tiene el control
sobre los datos; sin embargo los clientes pueden tener datos privados que residen en sus computadoras. Las
principales características de la arquitectura cliente/servidor son:
 
- El servidor presenta a todos sus clientes una interfaz única y bien definida.
- El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.
- El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se
encuentra, ni de su sistema operativo.
- Los cambios en el servidor implican pocos o ningún cambio en el cliente.
Como ejemplos de clientes pueden citarse interfaces de usuario para enviar comandos a un servidor,
APIs (Aplication Program Interface) para el desarrollo de aplicaciones distribuidas, herramientas en el
cliente para acceder a servidores remotos (por ejemplo, servidores de SQL) o aplicaciones que solicitan
acceso a servidores para algunos servicios.
Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows, servidores de
archivos como NFS, servidores para el manejo de bases de datos (como los servidores de SQL), servidores de diseño y manufactura asistidos por computador, etc.





PARTES DE UN SISTEMA CLIENTE/SERVIDOR

 Los principales componentes de un sistema cliente/servidor son:
- El núcleo (back-end o sección posterior). Es el SGBD propiamente (servidor).
- El  interfaz (front-end o sección frontal). Aplicaciones que funcionan sobre el SGBD (cliente).




BASES DE DATOS DISTRIBUIDAS 


Una de las principales tendencias de la informática a lo largo de los últimos años ha sido el pasar de
grandes computadoras centralizadas (que daban como resultado gigantescas bases de datos monolíticas en
los setenta y principios de los ochenta) a redes distribuidas de sistemas informáticos (con una mayor
descentralización y autonomía del procesamiento). Con la llegada de las minicomputadoras, las tareas de
procesamiento de datos, tales como el control de inventarios y el procesamiento de pedidos pasaron de
mainframes corporativas a sistemas departamentales más pequeños. El explosivo aumento de popularidad de las computadoras personales en los años ochenta llevó la potencia de las computadoras directamente a las mesas de los despachos de millones de personas.


Los usuarios acceden a la base de datos distribuida a través de aplicaciones. Estas aplicaciones se
pueden clasificar en aquellas que no requieren datos de otros computadores (aplicaciones locales) y aquellos
que requieren datos de otros computadores (aplicaciones globales). Un SGBDD tiene las siguientes
características:
 
 - Una  colección de datos compartidos y relacionados lógicamente.
 - Los datos están divididos en fragmentos.
 - Los fragmentos se pueden duplicar.
 - Los fragmentos se colocan en  varios emplazamientos (computadores).
 - Dichos emplazamientos están conectados por una red.
 - Los datos de cada emplazamiento están bajo el control de un SGBD.
 - El SGBD en cada emplazamiento puede manejar aplicaciones locales autónomamente.
- Cada SGBD participa en al menos una aplicación global.
        No es necesario que todos los emplazamientos en el sistema tengan su propia base de datos local,
como se muestra en la siguiente topología de un SGBDD:




Procesamiento distribuido.
Es importante hacer una distinción entre SGBD distribuido y procesamiento distribuido.
Procesamiento distribuido: Una base de datos centralizada que puede ser accedida a través de una red.
El punto clave de la definición de una base de datos distribuida es que el sistema está formado por datos
que están físicamente distribuidos a través de una red. Si los datos están centralizados, incluso aunque los
usuarios puedan acceder a los datos a través de la red, no se puede considerar como un sistema distribuido.
La topología de un sistema de procesamiento distribuido se muestra en la siguiente figura: 42
1.2.  SGBD paralelo.
Debemos distinguir también entre SGBD distribuido y SGBD paralelo.
SGBD paralelo: Un SGBD que se ejecuta sobre múltiples procesadores y discos que han sido
diseñados para ejecutar operaciones en paralelo, cuando sea posible, con el propósito de mejorar el
rendimiento.
Los sistemas paralelos mejoran la velocidad de procesamiento y de E/S mediante la utilización de
UCP y discos en paralelo.  La fuerza que ha impulsado a los sistemas paralelos de bases de datos ha sido la
demanda de aplicaciones que han de manejar bases de datos extremadamente grandes (del orden de
terabytes, esto es, 10
12
 bytes) o que tienen que procesar un número enorme de transacciones por segundo
(del orden de miles de transacciones por segundo).
La ganancia de velocidad y la ampliabilidad son dos aspectos importantes en el estudio del
paralelismo. La ganancia de velocidad se refiere a la ejecución en menos tiempo de una tarea dada mediante
el incremento del grado del paralelismo. La ampliabilidad se refiere al manejo de transacciones más largas
mediante el incremento del grado de paralelismo. La ampliabilidad es normalmente el factor más importante
para medir la eficiencia de un sistema paralelo de bases de datos. El objetivo del paralelismo en los sistemas
de bases de datos suele ser asegurar que la ejecución del sistema continuará realizándose a una velocidad
aceptable, incluso en el caso de que aumente el tamaño de la base de datos o el número de transacciones. El
incremento de la capacidad del sistema mediante el incremento del paralelismo proporciona a una empresa
un modo de crecimiento más suave que el de reemplazar un sistema centralizado por una máquina más
rápida.
 Existen algunos factores que trabajan en contra de la eficiencia del paralelismo y pueden atenuar
tanto la ganancia de velocidad como la ampliabilidad: 43
- Costes de inicio. El inicio de un único proceso lleva asociado un coste de inicio. En una
operación paralela compuesta por miles de procesos, el tiempo de inicio puede llegar a ser
mucho mayor que el tiempo real de procesamiento, lo que influye negativamente en la ganancia
de velocidad.
- Interferencia. Como los procesos que se ejecutan en un sistema paralelo acceden con frecuencia
a recursos compartidos, pueden sufrir un cierto retardo como consecuencia de la interferencia de
cada nuevo proceso en la competencia con los procesos existentes por el acceso a los recursos
más comunes, como el bus del sistema, los discos compartidos o incluso los bloqueos. Este
fenómeno afecta tanto a la ganancia de velocidad como a la ampliabilidad.
- Sesgo. Al dividir cada tarea en un cierto número de pasos paralelos se reduce el tamaño del paso
medio. Es más, el tiempo de servicio de la tarea completa vendrá determinado por el tiempo de
servicio del paso más lento. Normalmente es difícil dividir una tarea en partes exactamente
iguales, entonces se dice que la forma de distribución de los tamaños es sesgada. Por ejemplo, si
se divide una tarea de tamaño 100 en 10 partes y la división está sesgada, puede haber algunas
tareas de tamaño menor que 10 y otras de tamaño superior a 10; si el tamaño de una tarea fuera
20,  la ganancia de velocidad que se obtendría al ejecutar las tareas en paralelo sólo valdría 5 en
vez de lo que cabría esperarse, 10.
Existen varios modelos de arquitecturas para las máquinas paralelas:
Memoria compartida. Todos los procesadores comparten una memoria común.
Disco compartido. Todos los procesadores comparten un disco común.
Sin compartimiento. Los procesadores no comparten ni memoria ni disco.
Jerárquico. Es un híbrido de las anteriores. 44
Memoria compartida
 En una arquitectura de memoria compartida, los procesadores y los discos tienen acceso a una
memoria común, normalmente a través de un bus o de una red de interconexión. El beneficio de la memoria
compartida es la extremada eficiencia en cuanto a la comunicación entre procesadores (cualquier procesador
puede acceder a los datos de la memoria compartida sin necesidad de la intervención del software). Un
procesador puede enviar mensajes a otros procesadores utilizando escrituras en la memoria, de modo que la
velocidad de envío es mucho mayor (normalmente es inferior a un microsegundo) que la que se alcanza con
un mecanismo de comunicación. El inconveniente de las máquinas con memoria compartida es que la
arquitectura no puede ir más allá de 32 o 64 procesadores, porque el bus o la red de interconexión se
convertiría en un cuello de botella (ya que está compartido por todos los procesadores). Llega un momento
en el que no sirve de nada añadir más procesadores ya que éstos emplean la mayoría de su tiempo esperando
su turno para utilizar el bus y así poder acceder a la memoria. Las arquitecturas de memoria compartida
suelen dotar a cada procesador de una memoria caché muy grande para evitar las referencias a la memoria
compartida siempre que sea posible. No obstante, en la caché no podrán estar todos los datos y no podrá
evitarse el acceso a la memoria compartida. Por estas razones, las máquinas con memoria compartida no
pueden extenderse llegado un punto; las máquinas actuales con memoria compartida no pueden soportar más
de 64 procesadores.
 Disco compartido
 En el modelo de disco compartido, todos los procesadores pueden acceder directamente a todos los
discos a través de una red de interconexión, pero los procesadores tienen memorias privadas. Las
arquitecturas de disco compartido ofrecen dos ventajas respecto de las de memoria compartida. Primero, el
bus de la memoria deja de ser un cuello de botella, ya que cada procesador dispone de memoria propia.
Segundo, esta arquitectura ofrece una forma barata para proporcionar una cierta tolerancia ante fallos: si
falla un procesador (o su memoria), los de más procesadores pueden hacerse cargo de sus tareas, ya que la
base de datos reside en los discos, a los cuales tienen acceso todos los procesadores. La arquitectura de disco
compartido tiene aceptación en bastantes aplicaciones; los sistemas construidos siguiendo esta arquitectura
suelen denominarse agrupaciones (clusters).
 El problema principal de los sistemas de discos compartidos es, de nuevo, la ampliabilidad. La
interconexión con el subsistema de discos es ahora el nuevo cuello de botella. Esto es especialmente grave
en situaciones en las que la base de datos realiza un gran número de acceso a los discos. Los sistemas de
discos compartidos pueden soportar un mayor número de procesadores, en comparación con los sistemas de
memoria compartida, pero la comunicación entre los procesadores es más lenta (hasta unos pocos
milisegundos, si se carece de un hardware de propósito especial para comunicaciones), ya que se realiza a
través de una red de interconexión.
Sin compartimiento
 En un sistema sin compartimiento, cada nodo de la máquina consta de un procesador, memoria y
uno o más discos. Los procesadores de un nodo pueden comunicarse con un procesador de otro nodo
utilizando una red de interconexión de alta velocidad. Un nodo funciona como una red de interconexión de
alta velocidad. Un nodo funciona como el servidor de los datos almacenados en los discos que posee. El
modelo sin compartimiento salva el inconveniente de requerir que todas las operaciones de E/S vayan a
través de una única red de interconexión, ya que las referencias a los discos locales son servidas por los
discos locales de cada procesador; solamente van por la red las peticiones, los accesos a discos remotos y las
relaciones de resultados. Es más, habitualmente, las redes de interconexión para los sistemas sin
compartimiento se diseñan para ser ampliables, por lo que su capacidad de transmisión crece a medida que
se añaden nuevos nodos. Como consecuencia, las arquitecturas sin compartimiento son más ampliables y 45
pueden soportar con facilidad un gran número de procesadores. El principal inconveniente de los sistemas
sin compartimiento es el coste de comunicación y de acceso a discos remotos, coste que es mayor que el que
se produce en las arquitecturas de memoria o disco compartido, ya que el envío de datos provoca la
intervención del software en ambos extremos.
 
Jerárquica
 La arquitectura jerárquica combina las características de las arquitecturas de memoria compartida,
de disco compartido y sin compartimiento. A alto nivel, el sistema está formado por nodos que están
conectados mediante una red de interconexión y que no comparten ni memoria ni discos. Así, el nivel más
alto es una arquitectura sin compartimiento. Cada nodo del sistema podría ser en realidad un sistema de
memoria compartida con algunos procesadores. Alternativamente, cada nodo podría ser un sistema de disco
compartido y cada uno de estos sistemas de disco compartido podría ser a su vez un sistema de memoria
compartida. De esta manera, un sistema podría construirse como una jerarquía con una arquitectura de
memoria compartida con pocos procesadores en la base, en lo más alto una arquitectura sin compartimiento
y quizá una arquitectura de disco compartido en el medio.
 Las principales diferencias entre las bases de datos paralelas sin compartimientos y las bases de
datos distribuidas son las siguientes: las bases de datos distribuidas normalmente se encuentran en varios
lugares geográficos distintos, se administran de forma separada y poseen una interconexión más lenta. Otra
gran diferencia es que en un sistema distribuido se dan dos tipos de transacciones, las locales y las globales.
Una transacción local es aquella que accede a los datos del único emplazamiento en el cual se inició la
transacción. Por otra parte, una transacción global es aquella que o bien accede a los datos situados en un
emplazamiento diferente de aquel en el que se inició la transacción, o bien accede a datos de varios
emplazamientos distintos.












Base de datos centralizados
Es una base de datos almacenada en su totalidad en un solo lugar físico, es decir, es una base de datos almacenada en una sola máquina y una sola CPU, y en donde los usuarios trabajan en terminales “tontas” que sólo muestran resultados.
Los sistemas de bases de datos centralizadas son  aquellos que se ejecutan en un único sistema informático sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los sistemas de base de datos monousuario ejecutándose en computadoras personales hasta los sistemas  de bases de datos de alto rendimiento ejecutándose en grandes sistemas. 

Base de datos distribuidas
Los computadores de un sistema distribuido se comunican entre sí a través de diversos medios de comunicación, tales como cables de alta velocidad o líneas telefónicas.
Un sistema distribuido de bases de datos consiste en un conjunto de localidades, cada uno de las cuales puede participar en la ejecución de transacciones que accedan a datos de una o varias localidades. La diferencia principal entre los sistemas de base de datos centralizados y distribuidos es que, en los primeros, los datos residen en una sola localidad, mientras que, en los últimos, se encuentran en varias localidades.


Base de datos Centralizado

Base de datos Distribuida
Control centralizado:
un solo DBA
Control jerárquico:
DBA global y DBA local
Independencia de Datos:
Organización de los datos es
transparente para el programador
Transparencia en la Distribución:
Localización de los datos es un
aspecto adicional de independencia
de datos
Reducción de redundancia:
Una sola copia de datos que se
comparta
Replicación de Datos:
Copias múltiples de datos que
incrementa la localidad y la
disponibilidad de datos
Estructuras físicas complejas para
accesos eficientes
No hay estructuras intersitios. Uso
de optimización global para reducir
transferencia de datos
Seguridad
Problemas de seguridad intrínsecos

sábado, 8 de septiembre de 2012