Páginas

miércoles, 23 de octubre de 2013

FRAGMENTACION DE BASE DE DATOS

Objetivos de la fragmentación
El objetivo de la fragmentación consiste en dividir la relación en un conjunto de relaciones más pequeñas tal que algunas de las aplicaciones de usuario sólo hagan uso de un fragmento.
Sobre este marco, una fragmentación óptima es aquella que produce un esquema de división que minimiza el tiempo de ejecución de las aplicaciones que emplean esos fragmentos.
La unidad de fragmentación ideal no es la tabla sino una subdivisión de ésta.
Esto es debido a:
  • Las aplicaciones usan vistas definidas sobre varias relaciones, es decir, se forman a partir de "trozos" de varias tablas. Si conseguimos que cada una de las vistas esté definida sobre subtablas locales (o en su defecto lo mas "cerca" posible) a cada aplicación, es de esperar un incremento en el rendimiento.
  • Si múltiples vistas de diferentes aplicaciones están definidas sobre una tabla no fragmentada, se tiene :
  • Si la tabla no está replicada entonces se produce generación de tráfico por accesos remotos.
  • Si la tabla está replicada en todos o algunos de los sitios donde residen cada una de las aplicaciones entonces la generación de trafico innecesario es producida por la necesidad de la actualización de las copias.
Ventajas
Al descomponer una relación en fragmentos (unidades de distribución) :
  • Permitimos el procesamiento concurrente de transacciones ya que no se bloquean tablas enteras sino subtablas, por lo que dos consultas pueden acceder a la misma tabla a fragmentos distintos.
  • Permitimos la paralelización de consultas al poder descomponerlas en subconsultas, cada una de la cuales trabajará con un fragmento diferente incrementándose así el rendimiento.
Desventajas
  • Degradación del rendimiento en vistas definidas sobre varios fragmentos ubicados en sitios distintos (es necesario realizar operaciones con esos trozos lo cual es costoso)
  • El control semántico se dificulta y el rendimiento se degrada debido que la verificación de restricciones de integridad (claves ajenas, uniques, etc) implican buscar fragmentos en múltiples localizaciones.
Por lo tanto división y ubicación de los fragmentos no es trivial.

Tipos de fragmentación de datos
Existen tres tipos de fragmentación:
  • Fragmentación horizontal
  • Fragmentación vertical
  • Fragmentación híbrida
Para que una la fragmentación de una relación sea correcta debe satisfacer las siguientes condiciones:
  • Condición de completitud.
La descomposición de una relación R en los fragmentos R1, R2, ..., Rn es completa si y solamente si cada elemento de datos en R se encuentra en alguno de los fragmentos Ri.
  • Condición de Reconstrucción.
La descomposición de una relación R en los fragmentos R1, R2, ..., Rn es completa si y solamente si cada elemento de datos en R se encuentra en alguno de los fragmentos Ri.
  • Condición de Fragmentos Disjuntos.
Si la relación R se descompone en los fragmentos R1, R2, ..., Rn, y el dato di está en Rj, entonces, no debe estar en ningún otro fragmento Rk (k?j).
 FRAGMENTACIÓN VERTICAL DE UNA BASE DE DATOS DISTRIBUIDA
La fragmentación vertical de una relación R produce una serie de fragmentos R1, R2, ..., Rr cada uno de los cuales contiene un subconjunto de los atributos de R así como la clave primaria de R.


 FRAGMENTACIÓN HORIZONTAL DE UNA BASE DE DATOS DISTRIBUIDA
La fragmentación horizontal de una relación R produce una serie de fragmentos R1, R2, ..., Rr, cada uno de los cuales contiene un subconjunto de las tuplas de R que cumplen determinadas propiedades (predicados)
Fragmentación horizontal primaria y derivada
La Fragmentación Horizontal Primaria (FHP) de una relación se obtiene usando predicados que están definidos en esa relación.
La Fragmentación Horizontal Derivada (FHD) por otra parte, es el particionamiento de una relación como resultado de predicados que se definen en otra relación.

 FRAGMENTACIÓN MIXTA DE UNA BASE DE DATOS DISTRIBUIDA


Consiste en aplicar las operaciones de fragmentación vistas anteriormente de manera recursiva, satisfaciendo las condiciones de correctés cada vez que se realiza la fragmentación.
La reconstrucción puede ser obtenida aplicando las reglas de reconstrucción en orden inverso.
De esta forma podemos fragmentar nuestra tabla global en los pedazos que queramos y como queramos.
Ejemplo: Considere la relación de empleado (E).
Una posible fragmentación híbrida sería:
 SOFTWARE UTILIZADO EN UNA BASE DE DATOS DISTRIBUIDA

Sistema manipulador de base de datos distribuida (DDBMS)
Este sistema está formado por las transacciones y los administradores de la base de datos distribuidos. Un DDBMS implica un conjunto de programas que operan en diversas computadoras, estos programas pueden ser subsistemas de un único DDBMS de un fabricante o podría consistir de una colección de programas de diferentes fuentes.

Administrador de transacciones distribuidas (DTM)

Este es un programa que recibe las solicitudes de procesamiento de los programas de consulta o transacciones y las traduce en acciones para los administradores de la base de datos. Los DTM se encargan de coordinar y controlar estas acciones. Este DTM puede ser propietario o libre.

Sistema manipulador de base de datos (DBMS)

Es un programa que procesa cierta porción de la base de datos distribuida. Se encarga de recuperar y actualizar datos del usuario y generales de acuerdo con los comandos recibidos de los DTM.
Nodo
Un nodo es una computadora que ejecuta un DTM o un DBM o ambos. Un nodo de transacción ejecuta un DTM y un nodo de base de datos ejecuta un DBM.

BASE DE DATOS

BASE DE DATOS DISTIBUIDAS
QUE SON?
Una Base de Datos Distribuida es, una base de datos construida sobre una red computacional y no por el contrario en una máquina aislada. La información que constituye la base de datos esta almacenada en diferentes sitios en la red, y las aplicaciones que se ejecutan accesan datos en distintos sitios.
· Una Base de Datos Distribuida entonces 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. ·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:
1. cada sitio es un sistema de base de datos en sí mismo, pero
2. 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.
SU USO?
Una base de datos computarizada: es una colección de información almacenada de forma organizada en un computador.

Las bases de datos computarizadas ofrecen varias ventajas sobre sus contrapartes de papel y lápiz:

Las bases de datos son necesarias para:

Facilitan:

 - El almacenamiento de grandes cantidades de información.
 - La recuperación rápida y flexible de información.
 - La organización y reorganización de la información.
 - La impresión y distribución de información en varias formas.

Programa de base de datos: Es una herramienta de software para organizar el almacenamiento y la recuperación de esa información.
VENTAJAS?
·         El acceso a los datos es más rápido debido a que los datos se localizan más cercanos al lugar donde se utilizan.
·         El procesamiento es rápido debido a que varios nodos intervienen en el procesamiento de una carga de trabajo,
·         Nuevos nodos se pueden agregar fácil y rápidamente.
·         La probabilidad de que una falla en un solo nodo afecte al sistema es baja y existe una autonomía e independencia entre los nodos.
·         Control local de los datos con que se interactúa.
·         Mayor tolerancia a los fallos

DESVENTAJAS?
·         Es más complicado el control y la manipulación de los datos
·         Es compleja el aseguramiento de la integridad de la información en presencia de fallas no predecibles tanto de componentes de hardware como de software. La integridad se refiere a la consistencia, validez y exactitud de la información.
·         El control de concurrencia y los mecanismos de recuperación son mucho más complejos que en un sistema centralizado dado que los datos pueden estar replicados.



Sistema de gestión de bases de datos
Un Sistema de Gestión de Bases de Datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto Los SGBD también proporcionan métodos para mantener la integridad de los datos, para administrar el acceso de usuarios a los datos y para recuperar la información si el sistema se corrompe. Permite presentar la información de la base de datos en variados formatos. La mayoría de los SGBD incluyen un generador de informes. También puede incluir un módulo gráfico que permita presentar la información con gráficos y tablas.
Hay muchos tipos de SGBD distintos según manejen los datos y muchos tamaños distintos según funcionen sobre ordenadores personales y con poca memoria a grandes sistemas que funcionan en mainframes con sistemas de almacenamiento especiales.

Ambiente con múltiples procesadores
Os subprocesos múltiples y multiprocesamiento son términos asociados con la velocidad a la que corre el programa de una computadora. Ambos son métodos que requieren un matrimonio entre el conocimiento de programación y el desarrollo del equipo para poder ser utilizados apropiadamente. Estos dos términos no siempre son exclusivos mutuamente; se utilizan en equipo para incrementar la eficiencia de una computadora.
La palabra multiusuario se refiere a un concepto de sistemas operativos, pero en ocasiones también puede aplicarse a programas de computadora de otro tipo (ej. aplicaciones de base de datos) e incluso a sistemas de cómputo. En general se le llama multiusuario a la característica de un sistema operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente, estrictamente es pseudo-simultáneo (tanto en paralelismo real como simulado).
En contraposición a los sistemas monousuario, que proveen servicio y procesamiento a un sólo usuario, en la categoría de multiusuario se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten los mismos recursos. Actualmente este tipo de sistemas se emplean especialmente en redes, pero los primeros ejemplos de sistemas multiusuario fueron los centralizados, que los usuarios compartían a través del uso de múltiples dispositivos de interfaz humana
Aspectos importantes de los sistemas gestores de base de datos.
Un sistema de gestión de base de datos se puede definir como un conjunto de datos interrelacionados y los programas necesarios para acceder y manipularlos, cuyo objetivo principal es almacenar y recuperar la información de una base de datos de manera que sea fácil y eficiente a la vez.
CARACTERISTICAS
Los SGBD tienen las siguientes mínimas características:
  • Acceso a través de lenguajes de programación estándar.
  • Acceso por parte de múltiples usuarios.
  • Integridad de los datos.
  • Respaldo y recuperación (Backup).
  • Redundancia mínima.
  • Claves de seguridad, entre otras.
Los sistemas de base de datos son ampliamente usados, especialmente en las universidades, centros de investigación, banca de seguros, líneas aéreas, telecomunicaciones, recursos humanos, tiendas, supermercados, etc.
Como se puede observar, las base de datos forman parte importante de la mayoría de empresas actuales, las personas o usuarios no son conscientes de su uso debido a las interfaces, pero en el desarrollo diario de los quehaceres estas ocupan los principales planos, de hecho las base de datos forman parte de la vida de las personas.
SGBD MÁS USADOS
Entre los sistemas gestores de base de datos más usados, tenemos entre otros de acuerdo al tipo de licencia, Libres:
  • MySQL: Perteneciente a Sun Microsystems (también existe una versión no libre y más completa).
  • PostgreSQL.
  • Open Office Database: De Sun Microsystems.
  • SQLite: Con licencia GPL, entre otros.
Privativos
  • Oracle Database: Perteneciente a Oracle Corporation.
  • Fox Pro.
  • Magic.
  • Microsoft SQL sever.
  • Microsoft Access.
  • ADABAS: Perteneciente a IBM.
  • Paradox.
  • Sybase ASE, y Sybase ASA, entre otros.
A continuación se muestra algunas comparaciones entre los principales SGBD:
Soporte del Sistema operativo:
Objetos:

 



Link de video de base de datos