FF

viernes, 18 de octubre de 2013

 

Esquema de Fragmentacion de una Base de Datos


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.
Cada relación global puede ser dividida en porciones que no se solapen llamados fragmentos. El mapa resultante se denomina esquema de fragmentación. Una relación global puede dividirse en n fragmentos y un fragmento sólo puede pertenecer a una relación global.
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.
Tipos de fragmentación:
  •   Vertical
  •   Horizontal
  •   Mixta

 Fragmentación vertical
Una fragmentación vertical de una relación R produce fragmentosR1, R2, ..., 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.

Fragmentación horizontal
En las siguientes secciones revisaremos de manera más formal la forma de construir los diferentes tipos de fragmentación.
La 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 términos de la información cuantitativa acerca de las aplicaciones de usuario, se necesita tener dos conjuntos de datos:
La selectividad de los minitérminos: Denotada comosel( mi ), se refiere al número de tuplos de la relación que serán accesadas por una consulta de usuario especificada de acuerdo a un predicado minitérmino dado.
La frecuencia de acceso: Denotada como acc( qi ), se refiere a la frecuencia con la cual una consulta de usuarioqi es accesada en un periodo de tiempo. Note que las frecuencias de acceso de minitérminos se pueden determinar a partir de las frecuencias de consultas. La frecuencia de acceso de un minitérmino se denota comoacc( mi ).
Una fragmentación horizontal primaria se define por una operación de selección en las relaciones propietarias de un esquema de la base de datos. Por tanto, dada una relación R, su fragmentación horizontal está dada por
Rj = s Fj (R), 1 £ j £ w
donde, Fj es una fórmula de selección, la cual es preferiblemente un predicado minitérmino. Por lo tanto, un fragmento horizontal Ride una relación R consiste de todos los tuplos de R que satisfacen un predicado minitérmino mi. Lo anterior implica que dado un conjunto de predicados minitérmino M, existen tantos fragmentos horizontales de R como minitérminos existan. El conjunto de fragmentos horizontales también se entiende como los fragmentos minitérminos.
Es necesario desarrollar un algoritmo que tome como entrada una relación R y el conjunto de predicados simples Pr y proporcione como resultado el conjunto de fragmentos de R = { R1, R2, …, Rm} el cual obedece las reglas de fragmentación. Un aspecto importante del conjunto de predicados es que debe ser completoy minimal.
Un conjunto de predicados simples Pr se dice que es completo si y solo si los accesos a los tuplos de los fragmentos minitérminos definidos en Pr requieren que dos tuplos del mismo fragmento tengan la misma probabilidad de ser accesados por cualquier aplicación.
Fragmentación mixta o híbrida:
En muchos casos la fragmentación vertical u horizontal del esquema de la base de datos no será suficiente para satisfacer los requisitos de las aplicaciones. Como ya se citó al comienzo de este documento podemos combinar ambas, utilizando por ello la denominada fragmentación mixta. Cuando al proceso de fragmentación vertical le sigue una horizontal, es decir, se fragmentan horizontalmente los fragmentos verticales resultantes, se habla de la fragmentación mixta HV. En el caso contrario, estaremos ante una fragmentación VH. Una característica común a ambas es la generación de árboles que representan la estructura de fragmentación (vea la figura 8).
Considere, por ejemplo, la relación PROVINC. Recordará que se le aplicó una fragmentación horizontal de acuerdo al valor del atributo CCODZONA resultando cuatro fragmentos horizontales. Podríamos pensar en aplicarle una nueva fragmentación de carácter vertical. Entonces resultarían cuatro fragmentos horizontales divididos, por ejemplo, en dos fragmentos verticales. En este caso el número total de fragmentos ascendería, lógicamente, a ocho.


SOFTWARE UTILIZADO EN BASE DE DATOS DISTRIBIDA



Como en cualquier otra parcela de trabajo en las empresas, las bases de datos son una pieza fundamental que conviene gestionar de manera eficaz para que todo funcione a la perfección. Existen muchas alternativas informáticas para manejarlas, por eso a veces cuesta decantarse por un producto u otro y al final la decisión siempre irá en función de pequeños inputs como el precio o el alcance que ofrezca cada candidato. Para facilitaros un poco el trabajo, vamos a repasar cuales son las bases de datos más utilizadas y una breve introducción a cada una.
MySql es una de las herramientas de gestión de bases de datos más usadas
MySql
Es sumamente fácil de administrar, operar y es famoso por su instalación de 15 minutos, la cual en 15 minutos es posible instalar, configurar y montar una BD relacional ya sea sistemas OLTP o bien OLAP, aunque por excelencia MySQLServer es comúnmente usado para desarrollos Web 2.0 y Enterprise2.0.
Oracle
La tecnología Oracle para organizaciones en crecimiento es abierta, fácil de integrar, simple de administrar y altamente escalable, lo cual ayuda a adaptarse más rápido a los cambios del mercado o a los requerimientos delcliente. Las soluciones Oracle permiten alinear sus procesos con las cambiantes necesidades durante un largo período, brindando así valor continuo para nuestra empresa.

DBase
La seguridad en dBASE Plus sigue siendo muy similar a la que ya existía antiguamente en la base de datos MS/DOS dBASE 2.0. La ventana de Escritorio que presenta es una combinación de estilos que se tomó de diferentes programas. Es un tributo al poder fácil y entendible flexibilidad que hace de dBASE una plataforma superior de desarrollo. Como es a menudo el caso, una simple vista de diseño puede enmascarar mucho de la complejidad del software. Es difícil hacer que el software se vea fácil.
FileMaker Pro
FileMaker Pro es el programa de bases de datos que tiene la potencia y flexibilidad para manejar todas tus funciones decada día en casa y en la oficina sin tener que aprender instrucciones de programación complejas. Su estabilidad es buena ya que es muy sencilla y también uno no se pierde en las pantallas como se hace en Access.
Microsoft Access
Microsoft Access es uno de los sistemas de gestión de bases de datos relacionales más usuales para los sistemas operativos Windows, desarrollado por el mismo Microsoft y orientado a ser usado en un entorno personal o en pequeñas organizaciones. Es un componente de la suite ofimática Microsoft Office. Permite crear ficheros de bases de datos relacionales que pueden ser fácilmente gestionadas por una interfaz gráfica simple.

Aplicaciones de bases de datos distribuidas
Los ambientes en los que se encuentra el uso de las BDD son:
·        Cualquier organización que tiene una estructura descentralizada: organismos gubernamentales y de servicios públicos.
·        La industria de la manufactura, particularmente aquella con plantas múltiples, y la industria automotriz.
·        Aplicaciones de control y comando militar.
·        Cadenas hoteleras.
·        Líneas de transportación aérea.
·        Servicios bancarios y financieros.
Ejemplos de algunos DDBMS:
Prototipos

  •   SDD-1, que fue construido en la división de investigación de Computer Corporation of America.     Finales de los años 70 y principios de los 80.
  •      R*, una versión distribuida del prototipo System R, construida en IBM Research    Principios de los años 80
  •      Distributed Ingres, una versión distribuida del prototipo Ingres, construida en la Universidad de California en Berkeley
  • Principios de los 80
Implementaciones comerciales:
•       La mayoría de los productos SQL actuales proporcionan algún tipo de soporte de BDD (con diversos grados de funcionalidad).

  •   Ingres/Star, el componente de BDD de Ingres
  •    La opción de BDD de Oracle
  •  La propiedad de datos distribuidos de DB2
  • Tanto los DDBMS prototipos como los productos, son relacionales (al menos todos soportan SQL)
  • Además, hay varias razones por las cuales, para que un sistema distribuido sea exitoso, debe ser relacional.
La tecnología relacional es un requisito previo para tecnología distribuida.

jueves, 17 de octubre de 2013


Base de datos distribuida


La base de datos distribuida consiste en un almacén de datos, es decir en un conjunto de datos almacenado de manera sistemática siempre dispuesto a ser utilizado. Pero tiene una particularidad que la diferencia y que consiste en que estos datos están almacenados en distintas máquinas que integran un sistema y que tienen conexión entre sí.
Cada uno de los procesadores que integran dicho sistema se conoce con el nombre de localidad o nodo, y por lo tanto la información va a estar distribuida en las distintas localidades y no en una sola localidad, que es lo que ocurre con las bases de datos centralizadas.
Son un grupo de datos que pertenecen a un sistema pero a su vez esta repartido entre ordenadores de una misma red, ya sea a nivel local o cada uno en una diferente localización geografía, cada sitio en la red es autónomo en sus capacidades de procesamiento y es capaz de realizar operaciones locales y en cada uno de estos ordenadores debe estar ejecutando se una aplicación a nivel global que permita la consulta de todos los datos como si se tratase de uno solo
Es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones
Una BDD es en realidad un tipo de BD virtual cuyas partes componentes están almacenadas en varias BD “reales” distintas que se encuentran en varios sitios distintos (de hecho, es la unión lógica de esas BD reales).
Una base de datos tiene un  sitio local :
·    Sus propios usuarios locales
·      Su propio DBMS loca
·   Software de administración de transacciones (incluyendo su propio software local para bloqueo, registro en bitácora, recuperación, etc.)


Ventajas y Desventajas

 Ventajas
  • Los sistemas de bases de datos distribuidos tienen múltiples ventajas. En primer lugar los datos son localizados en lugar más cercano, por tanto, el acceso es más rápido, 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 comunicación entre nodos se mejora, los costos de operación se reducen, son amigables al usuario, 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.
  • Las razones por las que compañías y negocios migran hacia bases de datos distribuidas incluyen razones organizacionales y económicas, para obtener una interconexión confiable y flexible con las bases de datos existentes, y por un crecimiento futuro. El enfoque distribuido de las bases de datos se adapta más naturalmente a la estructura de las organizaciones. Además, la necesidad de desarrollar una aplicación global (que incluya a toda la organización), se resuelva fácilmente con bases de datos distribuidas. Si una organización crece por medio de la creación de unidades o departamentos nuevos, entonces, el enfoque de bases de datos distribuidas permite un crecimiento suave.
  • Los datos se pueden colocar físicamente en el lugar donde se accedan más frecuentemente, haciendo que los usuarios tengan control local de los datos con los que interactúan. Esto resulta en una autonomía local de datos permitiendo a los usuarios aplicar políticas locales respecto del tipo de accesos a sus datos
  • Mediante la replicación de información, las bases de datos distribuidas pueden presentar cierto grado de tolerancia a fallos haciendo que el funcionamiento del sistema no dependa de un solo lugar como en el caso de las bases de datos centralizadas.
  • La independencia de datos se puede dar en dos aspectos: lógica y física.
  • 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. Un sistema distribuido, que oculta su naturaleza distribuida al usuario, es más complejo que el sistema centralizado. Las consideraciones adicionales tales como el control de concurrencia y la seguridad deberían tenerse en cuenta, no para mencionar la complejidad alta de la optimización de consultas, comparado con una base de datos centralizada, sino que las actualizaciones se complican proporcionalmente con el aumento de replicas en el sistema.
  • La confiabilidad /Eficiencia. Se deben implementar mecanismos que garanticen la consistencia y permitan detectar fallas en el sistema y su posterior recuperación. Al ocurrir alguna falla en sitios distintos, el sitio que contenga una réplica de esa base de datos, y además sea operable debe garantizar la consistencia y actualización de su base de datos. Al reponerse los diferentes sitios el sistema de gestión de base de datos debe granizar la actualización de esos sitios que estaban sin operar.
  • AL estar particionada la red que une los diferentes sitios es un poco más difícil garantizar las actualizaciones de las bases de datos. Puesto que las localidades del sistema distribuido operan en paralelo, es más difícil garantizar que los algoritmos sean correctos. Existe la posibilidad de errores extremadamente sutiles. (Profundizar)
  • Mayor tiempo extra de procesamiento. El intercambio de mensajes y los cálculos adicionales que se requieren para coordinar las localidades son una forma de tiempo extra que no existe en los sistemas centralizados.
  • Costo. La complejidad aumentada significa que los costos de mantenimiento y adquisición del sistema son mucho más altos que los de un DBMS centralizado.
  • La capacidad de almacenamiento de cada sitio debe tenerse en cuenta, usualmente el costo de almacenamiento no es importante comparado con otros costos, no obstante, las limitaciones de almacenamiento deben ser consideradas.
  • Aumento del tráfico de comunicación. Cuando un sitio accede frecuentemente a los datos de otros sitios, aumenta el tráfico de mensaje y transacciones en la red, y por tanto las comunicaciones, lo que puede convertirse en un cuello de botella.
  • Integridad. Debido a que no todos los datos se ubican en un lugar centralizado – una estación (nodo) - el fracaso podría ocasionar una pérdida de datos para otros nodos.


Sistema De Bases De Datos Distribuida (SBDD)

Sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones, de tal forma que, un usuario en cualquier sitio puede accesar los datos en cualquier parte de la red exactamente como si los datos estuvieran almacenados en su sitio propio. 







 Características:
  • Permitir que cada sitio almacene y mantenga su propia BD facilita el acceso inmediato y eficaz de sus datos que se usan más frecuentes.
  • Mejora la fiabilidad si la computadora de un sitio se cae, el resto de la red sigue funcionando.
  •  Permitir el control local de los datos en un sitio mejora el grado de satisfacción de los usuarios con relación al sistema de BD.
  • Cuando cada sitio procesa sus datos locales se elimina un poco el tráfico de la red, pero si los sitios usan frecuentemente datos almacenados en otros sitios las comunicaciones pueden convertirse en un cuello de botella.

Funciones.

  •       Recopilación y captura de datos.
  •       Edición de datos y corrección de errores.
  •       Diseño de archivos y mantenimiento de programas.
  •       Localización de archivos grandes.
  •       Procesamiento de transacciones

 


AMBRENTE CON MÚLTIPLES PROCESADORES

Un procesador multinúcleo es aquel que combina dos o más microprocesadores independientes en un solo paquete, a menudo un solo circuito integrado. Un dispositivo de doble núcleo contiene solamente dos microprocesadores independientes. En general, los microprocesadores multinúcleo permiten que un dispositivo computacional exhiba una cierta forma del paralelismo a nivel de (TLP) sin incluir múltiples microprocesadores en paquetes físicos separados. Esta forma de TLP se conoce a menudo como multiprocesamiento a nivel de chip  o CMP.

Multiprocesamiento es un Procesamiento simultáneo con dos o más procesadores en un computador, o dos o más computadores que están procesando juntos. Cuando se usa dos o más computadores, se unen con un canal de alta velocidad y comparten la carga de trabajo general entre ellos. En caso de que uno falle el otro se hace cargo. El multiprocesamiento también se efectúa en computadores de propósitos especiales, como procesadores vectoriales, los cuales proveen procesamiento simultáneo de conjunto de datos. Aunque los computadores se construyen con diversas características que se superponen, como ejecutar instrucciones mientras se ingresan y se sacan datos, el multiprocesamiento se refiere específicamente a la ejecución de instrucciones simultáneas.


ASPECTOS IMPORTANTES DE LOS

 SISTEMAS GESTORES 


Los SGBD pueden considerarse como intermediarios entre las aplicaciones y la representación de los datos. Así, los desarrolladores ven los datos desde una perspectiva de más alto nivel. Esa perspectiva es la del modelo de bases de datos utilizado. De esta forma, el desarrollo de aplicaciones separa dos aspectos:
  • El diseño de la(s) bases de datos, que finaliza con una base de datos creada en un SGBD terminado y diseñada de acuerdo a un modelo.
  • El diseño y desarrollo de las aplicaciones, que se hace utilizando el diseño de la base de datos.

Ambos tipos de actividades no se hacen en secuencia, sino de forma simultánea, pero en la mayoría de las aplicaciones actuales se utiliza un SGBD de un tipo u otro. Así, el desarrollo de las aplicaciones en general requiere menos esfuerzo, ya que los desarrolladores no tienen que preocuparse de diseñar una gestión de datos eficiente, dado que el SGBD se supone que se encarga de eso. Los desarrolladores solo tratan con el SGBD mediante lenguajes normalizados (y a veces estandarizados) de alto nivel que ocultan muchos detalles de almacenamiento y permiten al programador centrarse en definir qué datos quiere obtener o guardar, y no en los detalles de cómo estos datos están almacenados y cómo se puede acceder de forma eficiente a ellos.
En otras palabras, es una función esencial de los SGBD en proporcionar independencia de los datos y las aplicaciones. Así, se puede diseñar la base de datos incluso antes que las aplicaciones, y ese diseño permitirá que se desarrollen múltiples aplicaciones posteriormente.
Los SGBD ocultan la representación interna de los datos ofreciendo un conjunto de funciones de más alto nivel. No obstante, en ocasiones es necesario “descender” un poco en los detalles de almacenamiento. Por ejemplo, esto a veces hace falta cuando se necesita ajustar el rendimiento de las consultas al máximo. En otros casos, una base de datos puede guardar información de cientos de entidades. Esto sucede por ejemplo en algunos sistemas de gestión empresarial. Pero muchas aplicaciones no requieren manipular o consultar todas las tablas, sino que a veces sólo necesitan algunos datos de unas pocas entidades.
Los diferentes niveles de abstracción a menudo se denominan niveles:
El nivel físico permite ver (algunos) detalles de la representación de la información en ficheros. Este nivel sólo es de interés para los desarrolla dores que se encargan de afinar el rendimiento de las consultas y actualizaciones. Requiere conocimientos técnicos muy específicos del SGBD concreto que se esté utilizando, y no están normalizados ni estandarizados.
El nivel lógico es el que se utiliza en el desarrollo (a excepción de las tareas que acabamos de mencionar), y considera la base de datos como un conjunto de informaciones y sus relaciones. Lo que se maneja es el qué información se almacena y no cómo está almacenada. Este nivel lógico suele ajustarse a un determinado modelo de bases de datos, y en ocasiones estos modelos tienen un cierto nivel de estandarización. Por ejemplo, los SGBD que implementan el modelo relacional son a nivel lógico prácticamente iguales, y cuentan con lenguajes de consulta como SQL que han sido estandarizados.
El nivel de vistas permite que se oculte a nivel lógico una parte de la base de datos, y que sólo veamos algunas informaciones determinadas. Una vista es un subconjunto de la información de una base de datos que se ha definido para abstraer una parte concreta de una base de datos. Las vistas se utilizan para simplificar su uso por parte de desarrolla dores y usuarios.