Unidad lll: Diseño De La Base De Datos Distribuida. El diseño de un sistema de base de datos distribuido implica la toma de decisiones sobre la ubicación de los programas que accederán a la base de datos y sobre los propios datos que constituyen esta última, a lo larg largo o de los los dife difere rent ntes es pues puesto tos s que que conf config igur ure e una una red red de orde ordena nado dore res. s. La ubic ubicac ació ión n de los los prog program ramas as,, en un prin princi cipi pio o no debería suponer un excesivo problema dado que se debe tener una copia de ellos en cada máquina de la red, sin embargo, cual es la mejor opción para colocar los datos: Podr Podría ía ser ser en una gran gran máqui áquin na que que alb alberg ergue a todo todos s ello ellos, s, enca encarg rgad ada a de respo respond nder er a toda todas s las las peti petici cion ones es del del resto resto de las las estaciones, o se podría pensar en repartir las relaciones, las tablas, por toda la red, suponiendo que se elige la segunda opción, ¿Qué crit criter erio ios s se deberí deberían an seguir seguir para para llev llevar ar a cabo cabo la dist distri ribu buci ción ón?, ?, realmente este enfoque ofrecerá un mayor rendimiento que el caso centralizado. Tradicionalmente se ha clasificado la organización de los sistemas de B.D.D. sobre tres dimensiones: El nivel de compartición, las características de acceso a los datos y el nivel de conocimiento de esas características ca racterísticas de acceso.
Diseño de la distribución. Existe Existen n divers diversas as formas formas de afront afrontar ar el proble problema ma del diseño diseño de la distribución. En el primer caso, los dos procesos fundamentales, la fragmentación y la asignación, se abordan de forma simultánea. Esta metodología se encuentra en desuso, y es sustituida por el enfoque en dos fases, caso b: La realización primeramente de la participación para luego asignar los fragmentos generados.
Replica. El sistema conserva varias copias o replicas idénticas de una tabla. Cada replica se almacena en un nodo diferente.
Ventajas: -
Dispon Disponibi ibilida lidad, d, se refi refiere ere a que que el sistem sistema a sigue sigue funci funciona onando ndo en en caso de caída de uno de los nodos.
-
Aumento del paralelismo, varios nodos consultas en paralelo sobre la misma tabla.
Desventajas:
pueden
realizar
-
Aumento de la sobrecarga en las actualizaciones, esto se refiere a que el sistema debe asegurar que todas las replicaciones de la tabla sean consistentes. Cuando se realiza una actualización sobre una de las replicas, los cambios deben propagarse a todas las replicas de dicha tabla a lo largo del sistema distribuido.
Fragmentación. Fragmentación horizontal: Una tabla T se divide en subconjuntos T1, T2, Tn. Los fragmentos se definen a través de una operación de selección y su reconstrucción se realiza con una operación de unión de los fragmentos componentes. Pueden existir fragmentos no distintos, lo cual es la combinación de fragmentos y replicación. Fragmentación vertical: Una tabla T se divide en subconjuntos T1, T2, Tn y los fragmentos de definen atraves de una operación de proyección. Cada fragmento debe incluir la clave primaria de la tabla. Su reconstrucción se realiza con una operación de JOIN de los fragmentos componentes, pudiendo existir de igual manera fragmentos no disjuntos. Fragmentación mixta: Es la combinación de las dos anteriores. Niveles de transparencia en una BDD. La transparencia se define como la separación de la semántica de alto nivel de un sistema de los aspectos de bajo nivel relacionados con la implementación del mismo. Un nivel de transparencia adecuado permite ocultar los detalles de implementación a las capas de alto nivel de un sistema y a otros usuarios. La independencia de datos se puede dar de dos maneras: -
Física
-
Lógica
Independencia física: Se refiere al ocultamiento de los detalles sobre las estructuras de almacenamiento a las aplicaciones de usuario. La descripción física de los datos puede cambiar sin afectar a las aplicaciones de usuario, por ejemplo, los datos pueden ser movidos de un disco a otro. Independencia lógica: Se refiere a la inmunidad de las aplicaciones de usuario a los cambios en la estructura lógica de la base de datos. Esto permite que un cambio en la definición de un sistema no Deva
afectar a las aplicaciones de usuario. Por ejemplo, el agregar un nuevo atributo a una relación, la creación de una nueva relación, el ordenamiento lógico de algunos atributos.
Transparencia a nivel de red. Se refiere a que los datos en un sistema de bases de datos distribuidos se accesan sobre una red de computadoras, sin embargo, las aplicaciones no deben notar su existencia. La transparencia a nivel de red conlleva a dos cosas: -
Transparencia sobre la localización de los datos: Las instrucciones que se usan son independientes de la ubicación de los datos en la red y del lugar donde la operación se lleve a cabo.
-
Transparencia sobre el esquema de nombramiento: Lo anterior se nombre proporcionando un nombre único a cada objeto en sistema distribuido. Así, no se debe mesclar la información de la localización con el nombre del objeto.
2.
La transparencia sobre la fragmentación de datos: Se refiere a que si existen replicas de objetos de la base de datos, su existencia debe ser controlada por el sistema y no por el usuario ya que se debe de tener en cuenta que cuando el usuario se encarga de manejar la réplica en el sistema, el trabajo de este es mínimo por lo que se puede obtener una eficiencia mayor. Sin embargo, el usuario puede olvidarse de mantener la coincidencia de los replicas teniendo así datos diferentes.
3. Transparencia a nivel de fragmentación: Permite que
cuando los objetos de la base de datos estén fragmentados, el sistema tenga que manejar la convención de consultas de usuario definidas sobre relaciones globales a consultas definidas sobre los fragmentos. Así también, sea necesario mesclar las repuestas a consultas fragmentadas para obtener una sola respuesta a una consulta global. El acceso a una base de datos distribuida debe hacerse de forma 100% transparente. La responsabilidad sobre el manejo de la transparencia debe estar compartida tanto por el sistema operativo, el sistema manejador de base de datos y el lenguaje de acceso a la misma. Entre estos tres módulos se deben resolver los aspectos sobre el procesamiento distribuido de las consultas y sobre el manejo de nombres de objetos distribuidos.
Transparencia a nivel de red Es de suma importancia entre las bases de datos centralizadas, sin embargo, en las distribuidas adquiere una mayor relevancia. El objetivo es convertir las acciones de usuario en instrucciones para manipular los datos. No obstante, el orden en que se realizan las transacciones afecta grandemente la velocidad de respuesta del sistema. Así, el procesamiento de consulta presenta un problema de optimización en el cual se determina el orden en el que se hace la menor cantidad de operaciones. Se tiene que considerar el procesamiento local de una consulta junto con el costo de transmisión de información al lugar donde se solicito la consulta.