jueves, 15 de noviembre de 2012

Procesamiento de Transacciones y Arquitectura de Distribuccion de Datos


1. Administración de Objetos y Recursos


La Administración de objetos introducida al mundo de los sistemas de bases de datos se propuso para poder satisfacer las necesidades de las aplicaciones de bases de datos complejas y para añadir nuevas funcionalidades de bases de datos a los lenguajes de programación orientada a objetos. De forma concreta, las bases de datos orientadas a objetos están basadas en el concepto de encapsular los datos de un objeto y con él, el código con el que opera. Entre los conceptos más importantes que se utilizan en las bases de datos, son:




  • Diferenciación de objeto: Los objetos tienen identidades únicas que son independientes de sus valores de atributo
  • Creadores de tipo: Las estructuras de los objetos complejos se pueden construir si se aplican recursivamente un conjunto de constructores básicos (como lo son las tuplas, conjuntos, listas y bolsa). 
  • Encapsulamiento de operaciones: Tanto la estructura del objeto como las operaciones que pueden aplicarse a ellos están incluidas en las definiciones de clase de objeto.
  • Utilización en el lenguaje de programación: Los objetos persistentes y transitorios se manipulan sin problemas. Los objetos se hacen persistentes adjuntándoles a una colección persistente o denominándolos explícitamente.
  • Jerarquía de tipos y herencia: Los tipos de objetos pueden especificarse utilizando una jerarquía de tipos, que permite heredar los atributos y los métodos de los tipos definidos anteriormente. 
  • Extensiones: Todos los objetos persistentes de un tipo particular se pueden almacenar en una extensión. Las extensiones correspondientes a una jerarquía de tipos tienen implementadas restricciones de conjunto/subconjunto.
  • Soporte de objetos complejos: Los objetos complejos estructurados y no estructurados se pueden almacenar y manipular.
  • Polimorfismo y sobrecarga del operador: Los nombres de los métodos y las operaciones se pueden sobrecargar para que puedan aplicarse a diferentes tipos de objetos con implementaciones distintas.
  • Versiones: Algunos sistemas OO ofrecen soporte para conservar varias versiones del mismo objeto.

2. Integridad y Concurrencia


En la vida real, la técnica más utilizada para el control de la concurrencia en una base de datos es "los protocolos basados en los bloqueos". Dentro de los protocolos de bloqueos en dos fases, existen diversas variantes como lo son el protocolo de bloqueo en dos fases básico, el protocolo de bloqueo en dos fases estricto, el protocolo de bloqueo en dos fases conservador y el protocolo de bloqueo en dos fases riguroso. Entre todas esas, las variantes estricta y rigurosa son más comunes, debido a sus mejores propiedades de recuperabilidad. 





Debido a que algunos bloqueos son muy restrictivos, existen los llamados bloqueos compartidos/explusivos. Con ellos, se puede bloquear la lectura para un elemento X, bloquear la escritura para un elemento X o simplemente desbloquear.  De esta manera, se puede garantizar la serialización al usarse en combinacion con la regla de bloqueo en dos fases. Al hablar de bloqueos, también puede suceder un interbloqueo, el cual se produce cuando cada transacción en un conjunto de varias transacciones está esperando algún elemento que se encuentra bloqueado por otra transacción. Para solucionar estos problemas, suelen usarse la detección del inter-bloqueo (gráficos de espera) y tiempos limitados.

3. Seguridad en la BASE DE DATOS

La seguridad, en una base de datos, implica poder asegurarse que los usuarios se encuentren autorizados para poder llevar a cabo las tareas que deseen realizar dentro de la BD. Entre los muchos conceptos comprendidos en este tema, se encuentran:


  • Aspectos legales y éticos en relación con el derecho de acceso a determinada información.
  • Temas de políticas a nivel gubernamental, institucional o de empresa en relación con los tipos de información que no debería estar disponible públicamente.
  • Temas relativos al sistema.
  • La necesidad dentro de las organizaciones de identificar diferentes niveles de seguridad y de clasificar según éstos a los datos y usuarios.

Las amenazas a las bases de datos tienen como consecuencia la pérdida de integridad, disponibilidad y de confidencialidad.
  • Pérdida de integridad: La informació n debe de encontrarse protegida frente a modificaciones inadecuadas. Esta integridad se pierde si se realizan cambios no autorizados en los datos mediante acciones accidentales o intencionadas.
  • Pérdida de disponibilidad: Esto tiene relación con que los objetos estén siempre disponibles para el usuario o el programa que necesite de los datos almacenados dentor de la BD.
  • Pérdida de confidencialidad: Esto tiene que ver con la protección de los datos frente a accesos no autorizados. Esto puede involucrar desde violación de leyes hasta la amenaza a la seguridad nacional. Este acceso no autorizado a los datos de la BD puede generar la pérdida de confianza en la empresa.
Para poder proteger a la BD contra estas amenazas, se implementan cuatro tipos de medidas de control: control de acceso, control de inferencias, control de flujo y cifrado de datos
  • Control de acceso: Son las medidas que restringen el acceso al la BD en su totalidad. Se puede realizar mediante la creación de cuentas de usuarios y contraseñas.
  • Control de inferencias: Son medidas que se utilizan en las bases de datos estadísticas, las cuales permiten a organismos poder obtener información sobre un determinado grupo de población pero no de la información relativa, única y detallada de cada individuo.
  • Control de flujo: Previene que la información fluya de tal manera que llegue a usuarios no autorizados.
  • Cifrado de datos: Se usa para proteger datos confidenciales que sean transmitidos a través de algún tipo de red de comunicación. Los datos se codifican usando algún algoritmo de codificación.



4. Recuperación de la BASE DE DATOS

De suceder un algún tipo fallo en una transacción dentro de la BD, es importante que la BD se recupere al estado más actual, anterior al problema y donde funcione satisfactoriamente. Para que esto se pueda llevar a cabo, el sistema debe preservar información sobre los cambios que se realizan en los elementos de los datos. El objetivo principal de la recuperación es la de garantizar la propiedad de la atomicidad de una transacción. Los conceptos relacionados con la recuperación son:

  • Almacenamiento en caché: Esto es que los elementos de datos que se van a actualizar se almacenan en caché en los búferes de la memoria principal, para luefo actualizarse en memoria antes de escribirse de nuevo en el disco. Esta función tradicionalmente es del sistema operativo, pero la BD se encarga de hacerlo para asegurar su información.
  • Imágenes anterior y posterios a la actualización: Son los valores antiguos (imagen anterior, BFIM) y los valores nuevos (imagen posterior, AFIM) de un elemento de datos.
  • Políticas robar/no-robar y forzar/no-forzar: Si una página en caché actualizada por una transacción no puede escribirse en disco antes de que la transacción se confirme, se denomina método no-robar. De lo contrario, si el protocolo permite escribir un búfer actualizado antes de que la transacción se confirme, se denomina robar. Si todas las páginas actualizadas por una transacción se escriben inmediatamente en disco cuando la transacción se confirma, se denomina método forzar. De lo contrario, no-forzar.
  • Puntos de control del sistema: La toma de un punto de control consiste en cuatro acciones, las cuales son suspender temporalmente la ejecución de las transacciones, forzar la escritura en disco de todos los búferes de memoria que se hayan modificado, escribir un registro checkpoint en el registro del sistema para luego forzar la escritura del registro en disco, y reanudar la ejecución de las transacciones.
Existen también otros tipos de recuperación, los cuales son actualización diferida y actualización inmediata.
  • Actualización diferida: Las técnicas de este tipo de recuperación pospone cualquier actualización real de la base de datos en disco hasta que la transacción alcanza su punto de confirmación. La transacción fuerza la escritura del registro del sistema en disco antes de grabar las actualizaciones en la BD. Este tipo de recuperación puede llegar a conducir a un algoritmo de recuperación llamado NO-DESHACER/REHACER.
  • Actualización inmediata: estás técnicas pueden aplicar cambios en la BD en disco antes de que la transacción termine, pero cualquier cambio realizado debe primero grabarse en el registro del sistema y escribirse en disco para que las operaciones puedan deshacerse si es necesario.
En caso de un fallo catastrófico, lo mejor es realizar copias de seguridad periódicamente de la BD y del registro del sistema. 

5. Arquitectura Centralizada

En una base de datos, se llama arquitectura centralizada a aquella que se encuentra almacenada en su totalidad en un solo lugar físico, es decir, que se encuentra almacenada en una sola máquina, en donde los usuarios trabajan en terminales que solo muestran los resultados. Estas bases de datos se ejecutan en un único sistema sin interaccionar con ninguna otra computadora. Dichos sistemas comprenden el rango desde los sistemas de bases de datos monousuario ejecutándose en laptops hasta los sistemas de bases de datos de alto rendimiento ejecutándose en grandes sistemas.  


El CPU y los controladores de dispositivos que pueden ejecutarse concurrentemente, compitiendo así por el acceso a la memoria. La memoria caché reduce la disputa por el acceso a la memoria, ya que el CPU necesita acceder a la memoria, compartida un numero de veces menor.
Se distinguen dos formas de utilizar las computadoras: como sistemas monousuario o 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 solo sistema operativo que solo permite un único usuario. Por el contrario, un sistema multiusuario típico tiene más discos y más memoria, puede disponer de varias CPU y trabaja con un sistema operativo multiusuario.

6. Arquitectura CLIENTE/SERVIDOR

Esta arquitectura se desarrolló para poder ocuparse de los entornos de computación que una gran cantidad de PCs y otros equipos están conectados a través de la red. La idea de esta arquitectura es la de definir servidores especialiazados con funcionalidades específicas.Los dos tipos principales de arquitecturas de BD básicas se crearon sobre dos estructuras de cliente/servidor fundamental: de dos capas y de tres capas.

  • Arquitectura cliente/servidos de dos capas: Se denominan de dos capas porque los componentes software están distribuidos en dos sistemas: cliente y servidor. Las ventajas de esta arquitectura son su simplicidad y su perfecta compatibilidad con todos los sistemas existentes. Los programas de interfaz de usuario y los programas de aplicación se ejecutan del lado del cliente. Cuando se necesita acceso a la BD, el programa establece una conexión con la BD, la cual se encuentra del lado servidor, y una ves establecida la conexión, el cliente puede comunicarse con la BD.


  • Arquitectura cliente/servidor de tres capas: En la actualidad, este tipo de arquitectura es la más aplicada, debido a la aparición de la Web, que cambió los roles de cliente y servidor.En la arquitectura cliente/servidor de tres capas se dan los siguientes niveles:
    • Capa de presentación (cliente): Proporciona al usuario la interfaz e interactua con él. Los programas en esta capa representan al cliente interfaces web que sirven como conexión con la aplicación. Esta capa manipula las entradas, salidas y la navegación aceptando comandos de usuario y mostrando la información necesaria.
    • Capa de aplicación (lógica de negocio): Esta capa programa la lógica de aplicación. Las comprobaciones de seguridad o la verificación de la identidad son funcionalidades que también pueden incluirse en esta capa.
    • Capa de base de datos: Esta capa controla las consultas y peticiones de actualizaciones procedentes de la capa de aplicación, procesa las solicitudes y encía los resultados.

7. BASE DE DATOS distribuidas

Consiste en un número de elementos de procesamiento, no necesariamente homogéneos, que están interconectados mediante una red de computadores, y que cooperan para la realización de ciertas tareas asignadas. El objetivo de estos sistemas es el de dividir un gran e inmanejable problema en piezas más pequeñas para resolverlo de una manera coordinada. Son muchas las ventajas de las bases de datos distribuidas:

  • Administración de datos distribuidos con distintos niveles de transparencia: En un marco ideal, todo sistema de base de datos debe ser una distribución transparente, para poder ocultar los detalles de dónde está físicamente ubicado cada fichero dentro del sistema. Existen varios tipos de transparencias:
    • Transparencia de red o de distribución: Se refiere a la autonomía del usuario de los detalles operacionales de la red, dividido en transparencia de localización y de denominación. La transparencia de localización hace mención al hecho de que el comando usado para llevar a cabo una tarea es independiente de la ubicación de los datos y del sistema desde el que se ejecutó dicho comando. La transparencia de denominación implica que una vez especificado un nombre, se pueda acceder a los objetos nombrados sin ningún tipo de ambigüedad y sin la necesidad de especificaciones adicionales.
    • Transparencia de replicación: Ésta permite que el usuario no se entere de la existencia de copias, las cuales pueden realizarse y almacenarse en distintos lugares para poder disponer de una mayor disponibilidad, rendimiento y fiabilidad.
    • Transparencia de fragmentación: Existen dos tipos de fragmentación: la horizontal y la vertical. La horizontal distribuye una relación en conjunto de tuplas, mientras que la vertical lo hace en subrelaciones, de modo que cada subrelacion está definida por un subconjunto de las columnas de la relación original. En tal forma, la transparencia de fragmentación permite que el usuario no se entere de la existencia de fragmentos.
    • Transparencia de diseño y de ejecución: Esto hace referencia a la libertad de saber cómo está diseñada la base de datos distribuida y dónde ejecuta una transacción.
  • Incremento de la fiabilidad y disponibilidad: La fiabilidad es la probabilidad de que un sistema esté funcionando en un momento de tiempo, mientras que la disponibilidad es la probabilidad de que el sistema este continuamente disponible durante un intervalo de tiempo. Cuando los datos y el software de BD están distribuidos a lo largo de distintas locaciones, uno de ellos puede fallar, mientras que el resto debe seguir operativo.
  • Rendimiento mejorado: un sistema de BD distribuido fragmenta la base de datos manteniendo la información lo más cerca posible del punto donde es más necesaria. Al distribuirse una BD, se obtienen BD mucho más pequeñas, haciendo que las consultas locales y las transacciones de acceso a los datos tenga un mayor rendimiento debido al menor tamaño de la base de datos.
  • Expansión más sencilla: En un entorno distribuido, la expansión del sistema en términos de incorporación de más datos, incremento del tamaño de las bases de datos o la adición de más procesadores es mucho más sencilla.




No hay comentarios:

Publicar un comentario