jueves, 6 de septiembre de 2012

Transparencia y Fragmentacion de Las BDD

Tipos de arquitecturas/implementaciones
 
En un sistema de bases de datos distribuidas, existen varios factores que deben tomar en consideración que definen la arquitectura del sistema:
  • Distribución: Los componentes del sistema están localizados en la misma computadora o no.
  • Heterogeneidad: Un sistema es heterogéneo cuando existen en él componentes que se ejecutan en diversos sistemas operativos, de diferentes fuentes, etc.
  • Autonomía: Se puede presentar en diferentes niveles, los cuales se describen a continuación:
  1. Autonomía de diseño: Habilidad de un componente del sistema para decidir cuestiones relacionadas a su propio diseño.
  2. Autonomía de comunicación: Habilidad de un componente del sistema para decidir como y cuando comunicarse con otros SGBD (Sistema Gestor de Bases de Datos).
  3. Autonomía de ejecución: Habilidad de un componente del sistema para ejecutar operaciones locales como quiera.

Multi base de datos distribuida

Cuando una base de datos distribuida es muy homogénea se dice que es multi base de datos distribuida.

 Base de datos Federada

Cuando una base de datos distribuida tiene mucha autonomía local se dice que es federada.

Objetivos de implementación

Al implementar una base de datos distribuida se tienen ciertos objetivos comunes:
  • Transparencia de ubicación. Permite a los usuarios tener acceso a los datos sin que tenga conocimiento de la ubicación de éstos. Se puede conseguir este nivel de transparencia al utilizar los administradores de transacciones distribuidas, los cuales son capaces de determinar la localización de los datos y de emitir acciones a los calendarizadores apropiados, lo cual puede ejecutarse cuando los administradores de transacciones distribuidas poseen acceso a los directorios de localizaciones de los datos.
  • Transparencia de duplicación. Para que la transparencia de duplicación sea posible, los administradores de transacciones deben traducir las solicitudes de procesamiento de transacción en acciones para el administrador de datos. Para las lecturas el administrador de transacciones selecciona uno de los nodos que almacena los datos y ejecuta la lectura. Para optimizar el proceso, el administrador de transacciones necesita información sobre el rendimiento de varios nodos respecto al sitio de consulta, así podrá seleccionar el nodo de mejor rendimiento. La actualización y escritura de datos duplicados suelen ser más complicadas, ya que el manejador de transacciones debe emitir una acción de escritura para cada uno de los calendarizadores que almacena una copia de los datos.
  • Transparencia de concurrencia. Cuando varias transacciones se ejecuten al mismo tiempo, los resultados de las transacciones no deberán afectarse. La transparencia de concurrencia se logra si los resultados de todas las transacciones concurrentes son consistentes de manera lógica con los resultados que se habrían obtenido si las transacciones se hubieran ejecutado una por una, en cualquier orden secuencial.
  • Transparencia de fallas. Significa que a pesar de fallas las transacciones sean procesadas de un modo correcto. Frente a una falla, las transacciones deben ser atómicas, significa que se procesen todas o ninguna de ellas. Para este tipo de problemas es importante tener resguardo de la base de datos, y así poder restaurarla cuando sea conveniente. El sistema debe detectar cuándo falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló. Por último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.
  • Localidad del procesamiento. Los datos se deben distribuir lo más cerca posible de las aplicaciones que los usan para maximizar la localidad del procesamiento, este principio responde a minimizar el acceso remoto a los datos. Diseñar una distribución que maximice localidad del procesamiento puede hacerse añadiendo la cantidad de referencias locales y remotas correspondientes a cada fragmentación candidata y asignar la fragmentación eligiendo la mejor solución. Independencia de configuración. La independencia de configuración permite añadir o reemplazar hardware sin tener que cambiar componentes de software existentes en el sistema de base de datos distribuida.
  • Particionado de la Base de Datos. La base de datos se distribuye de modo que no haya solapamiento o duplicación de los datos mantenidos en las diferentes localidades, como no hay duplicaciones de los datos, se evitan los costos asociados con el almacenamiento y mantenimiento de datos redundantes. Si un mismo segmento de datos se usa en más de una localidad se ve limitada la disponibilidad de los datos. La fiabilidad también puede verse limitada cuando se produce un fallo en el sistema de cálculo de una localidad se afecta la disponibilidad de los datos de esa localidad no estén disponible para los usuarios en cualquier parte del sistema.
  • Fragmentación de datos. Consiste en subdividir las relaciones y distribuirlas entre los sitios de la red, tiene como objetivo buscar formas alternativas de dividir una las instancias (tablas) de relaciones en otras más pequeñas. La fragmentación se puede realizar por tuplas individuales (fragmentación horizontal), por atributos individuales fragmentación vertical) o una combinación de ambas (fragmentación híbrida). El principal problema de la fragmentación radica en encontrar la unidad apropiada de distribución. Una relación no es una buena unidad por muchas razones. Normalmente las vistas de una relación están formadas por subconjuntos de relaciones. Además, las aplicaciones acceden localmente a subconjuntos de relaciones. Por ello, es necesario considerar a los subconjuntos de relaciones como unidad de distribución. Al descomponer de una relación en fragmentos, tratados cada uno de ellos como una unidad de distribución, permite el proceso concurrente de las transacciones. El conjunto de estas relaciones, provocará la ejecución paralela de una consulta al ser dividida en una serie de subconsultas que operará sobre los fragmentos. Cuando las vistas definidas sobre una relación son consideradas como unidad de distribución que se ubican en diferentes sitios de la red, podemos optar por dos alternativas diferentes: La relación no estará replicada y se almacena en un único sitio, o existe réplica en todos o algunos de los sitios en los cuales reside la aplicación. Las consecuencias de esta estrategia son la generación de un volumen de accesos remotos que pueden ser innecesarios con un mal manejo de estas replicas. Además, las réplicas innecesarias pueden causar problemas en la ejecución de las actualizaciones y puede no ser deseable si el espacio de almacenamiento está limitado. Los inconvenientes de la fragmentación están dados en que si las pueden estar definidas por fragmentos mutuamente exclusivos y al recuperar los datos de dos fragmentos situados en sitios diferentes es necesario trasmitir los datos de un sitio a otro y realizar sobre ellos la operación de unión (Join), lo cual puede ser costoso. El control semántico cuando los atributos implicados en una dependencia una relación se descompone en diferentes fragmentos y estos se ubican en sitios diferentes puede ser muy costos porque es necesario hacer búsquedas en un gran número de sitios.

Bases De Datos Distribuidas En Sectores Productivos.

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 PyMES hasta 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”
 
 

lunes, 3 de septiembre de 2012

Tipos De Arquitectura


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.


Se distinguen dos formas de utilizar las computadoras: como sistemas monousuario o como sistemas 
multiusuario. En la primera categoría están las computadoras personales y las estaciones de trabajo. Un 
sistema monousuario típico es una unidad de sobremesa utilizada por una única persona que dispone de una 
sola CPU, de uno o dos discos fijos y que trabaja con un sistema operativo que sólo permite un único 
usuario.
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.
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 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.

ARQUITECTURA DE BASES DE DATOS
CLIENTE/SERVIDOR

Con el aumento de la velocidad y potencia de las computadoras personales y el decremento en su 
precio, los sistemas se han ido distanciando de la arquitectura centralizada. Los terminales conectados a un 
sistema central han sido suplantados por computadoras personales. De igual forma, la interfaz de usuario, 
que solía estar gestionada directamente por el sistema central, está pasando a ser gestionada cada vez más 
por las computadoras personales. Como consecuencia, los sistemas centralizados actúan hoy como sistemas 
servidores que satisfacen las peticiones generadas por los sistemas clientes. 
 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).

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 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.  

 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).  







ARQUITECTURA DE 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. 
 Conforme las computadoras y las redes de computadoras se extendían a través de las organizaciones, 
los datos ya no residían en un único sistema bajo el control de un único SGBD. En vez de ello, los datos se 
fueron extendiendo a través de muchos sistemas diferentes, cada uno con su propio gestor de base de datos. 
Con frecuencia los diferentes sistemas informáticos y los diferentes sistemas de gestión de base de datos 
procedían de diferentes fabricantes.


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: 

VENTAJAS E INCONVENIENTES
 La distribución de los datos y aplicaciones tiene ventajas potenciales con respecto a los sistemas de 
bases de datos centralizados. Desgraciadamente, hay también desventajas. En este punto vamos a ver las 
ventajas e inconvenientes de los SGBDD. 51
Existen varias razones que justifican la construcción de sistemas distribuidos de bases de datos: 
- Compartimiento de datos: La mayor ventaja de los sistemas distribuidos de bases de datos es que 
proporcionan un entorno en el que los usuarios de un emplazamiento pueden ser capaces de acceder a los 
datos que residen en otros emplazamientos. Por ejemplo, un usuario del emplazamiento de Ciudad Real 
puede acceder a los datos del emplazamiento de Valdepeñas. Sin esta capacidad, un usuario que deseara 
realizar una transferencia entre dos emplazamientos distintos tendría que recurrir a algún mecanismo externo 
para poner en contacto los sistemas existentes. 
- Autonomía: La ventaja principal del compartimiento de datos por medio de la distribución de los 
mismos es que cada emplazamiento puede conservar un cierto grado de control sobre los datos que tiene 
almacenados localmente. En un sistema centralizado hay un administrador local de la base de datos que es 
responsable del sistema completo. Cada administrador local de las bases de datos recibe una parte de las 
responsabilidades del administrador central. Cada administrador puede tener un grado de autonomía local 
diferente, dependiendo del diseño del sistema distribuido de bases de datos. La posibilidad de autonomía 
local es, con frecuencia, una ventaja fundamental de las bases de datos distribuidas. 
- Disponibilidad: Si en un sistema distribuido falla un emplazamiento, los emplazamientos restantes 
pueden continuar funcionando. En particular si se duplican los elementos de datos en varios 
emplazamientos, una transacción que necesite un determinado elemento de datos puede encontrarlo en 
cualquiera de dichos emplazamientos. De esta manera, el fallo de un emplazamiento no implica 
necesariamente el cierre del sistema.