1.1.
CONCEPTOS BÁSICOS DE BASES DE DATOS
DISTRIBUIDAS
Una
base de datos distribuida (BDD) es un conjunto de múltiples bases de datos
lógicamente relacionadas las cuales se encuentran distribuidas en diferentes
espacios lógicos y geográficos (pej. un servidor corriendo 2 máquinas
virtuales) e interconectados por una red de comunicaciones.
Dichas
BDD tienen la capacidad de realizar procesamiento autónomo, esto permite
realizar operaciones locales o distribuidas. Un sistema de Bases de Datos
Distribuida (SBDD) es un 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 acceder los datos en cualquier parte de la red
exactamente como si estos fueran accedidos de forma local.
Un
sistema distribuido de bases de datos se almacena en varias computadoras. Los
principales factores que distinguen un SBDD de un sistema centralizado son los
siguientes:
· Hay múltiples computadores, llamados
sitios o nodos. Estos nodos deben de estar comunicados
por medio de algún tipo de red de comunicaciones para transmitir datos y
órdenes entre los sitios.
Historia
La
necesidad de almacenar datos de forma masiva dio paso a la creación de los
sistemas de bases de datos. En 1970 Edgar Frank Codd escribió un artículo con
nombre: «A Relational Model of Data for Large Shared Data Banks» («Un modelo
relacional para grandes bancos de datos compartidos»). Con este artículo y
otras publicaciones, definió el modelo de bases de datos relacionales y reglas
para poder evaluar un administrador de bases de datos relacionales.
Inicio de las bases de
datos distribuidas
Originalmente
se almacenaba la información de manera centralizada, pero con el paso del
tiempo las necesidades aumentaron y esto produjo ciertos inconvenientes que no
era posible solucionarlos o volverlos eficientes de la forma centralizada.
Estos problemas impulsaron la creación de almacenamiento distribuido, los
cuales hoy en día proveen características indispensables en el manejo de información; es decir, la
combinación de las redes de comunicación y las bases de datos.
Evolución
Hay
varios factores que han hecho que las bases de datos evolucionen a bases de
datos distribuidas.
En
el mundo de los negocios se ha dado una globalización y a la vez las
operaciones de las empresas son cada vez más descentralizadas geográficamente.
También el poder de las computadoras personales aumentó y el costo de los
Mainframes ya no tenía sentido. Además, la necesidad de compartir datos ha
hecho que crezca el mercado de las bases de datos distribuidas.
Componentes
Hardware involucrado
El
hardware utilizado no difiere mucho del hardware utilizado en un servidor
normal. Al principio se creía que si los componentes de una base de datos eran
especializados serían más eficientes y rápidos, pero se comprobó que el
descentralizar todo y adoptar un enfoque "nada compartido"
(shared-nothing) resultaba más barato y eficaz. Por lo que el hardware que
compone una base de datos distribuida se reduce a servidores y la red.
Software
(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 podrían 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.
El
procesamiento de bases de datos distribuidas es el proceso en el cual la
ejecución de transacciones y la recuperación y actualización de los datos
acontece a través de dos o más computadoras independientes, por lo general
separadas geográficamente.
Las
Bases de Datos Distribuidas, no son simplemente implementaciones distribuidas
de bases de datos centralizadas, porque ellas permiten el diseño de sistemas
que representan diferentes características de las tradicionales, de sistemas
centralizados. Esto es por lo tanto útil para ver las características típicas
de BDD. Los rasgos que caracterizan las BD tradicionales se aproximan al
control centralizado, independencia de datos, reducción de redundancia,
estructuras físicas complejas para acceso eficiente, integridad, recuperación
control de concurrencia, privacidad y seguridad.
Los
principales factores que distinguen un SBDD de un sistema centralizado son los
siguientes:
·
Hay múltiples computadores, llamados
sitios o nodos.
·
Estos sitios deben de estar comunicados
por medio de algún tipo de red de comunicaciones para transmitir datos y
órdenes entre los sitios.
Un
sistema de base de datos distribuidas es aquel en el que hay múltiples sitios
de base de datos unidos por un sistema de comunicaciones, en forma tal que los
datos en cualquier sitio son accesibles para los usuarios de otros sitios.
Normalmente, cada sitio o nodo tiene un sistema completo de procesamiento de
información, con su propia función de administración de datos, personal,
usuarios, hardware y software. Inclusive una base de datos local, sistema de
administración de base de datos y software de comunicaciones.
Lo
mínimo que debe tener un sitio es memoria y procesador de comunicaciones. Los
sitios por lo general están separados geográficamente y están unidos por un
sistema de telecomunicaciones, aunque es posible tener un sistema distribuido y
comunicado por medio de una red de área local dentro de un solo edificio o área
pequeña. Se pretende que los usuarios no necesiten conocer la verdadera
localización de los datos a que acceden y para ellos el sistema parece ser una
base de datos local.
OBJETIVOS DE LAS B.D.D
·
Transparencia de ubicación. Permite a los
usuarios tener acceso a los datos sin que tenga conocimiento de la ubicación de
éstos.
·
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.
·
Transparencia de concurrencia. Cuando
varias transacciones se ejecuten al mismo tiempo, los resultados de las
transacciones no deberán afectarse.
·
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.
·
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.
·
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.
·
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 de relaciones en otras
más pequeñas.
DISCIPLINAS DE ESTUDIO
.
Las principales disciplinas de estudio para conocer las bases son las
siguientes:
A)
INGENIERIA: Para conocer cono se desarrollan y que forma tendrán para
implementarse
B)
ALGEBRA: Busca establecer relaciones en base a funciones algebraicas
C)
BASES DE DATOS: Buscan un adecuado funcionamiento de acuerdo a los principios
de estas
D)
REDES: Implementado en adecuado sistema para su funcionamiento sin concurrencia
1.2 DISEÑO DE BASES DE
DATOS DISTRIBUIDAS
El
problema de diseño de bases de datos distribuidos se refiere, en general, a
hacer decisiones acerca de la ubicación de datos y programas a través de los
diferentes sitios de una red de computadoras. La decisión de donde colocar a
las aplicaciones tiene que ver tanto con el software del SMBDD como con las
aplicaciones que se van a ejecutar sobre la base de datos.
Los
pasos a seguir para diseñar una base de datos distribuida:
•
1. Diseño del "esquema conceptual" el cual describe la base de datos
integrada (esto es, todos los datos que son utilizados por las aplicaciones que
tienen acceso a las bases de datos).
•
2. Diseño "físico de la base de datos", esto es, mapear el esquema
conceptual a las áreas de almacenamiento y determinar los métodos de acceso a
las bases de datos.
•
3. Diseño de la fragmentación, este se determina por la forma en que las
relaciones globales se subdividen en fragmentos horizontales, verticales o
mixtos.
•
4. Diseño de la asignación de los fragmentos, esto se determina en la forma en
que los fragmentos se mapean a las imágenes físicas, en esta forma, también se
determina la solicitud de fragmentos.
ARQUITECTURA DE BASES DE
DATOS DISTRIBUIDAS
Podemos
destacar tres niveles principales según la visión y la función que realice el
usuario sobre la base de datos:
.
Nivel Interno: es el nivel más cercano al almacenamiento físico de los datos.
Permite escribirlos tal y como están almacenados en el ordenador. En este nivel
se diseñan los archivos que contienen la información, la ubicación de los
mismos y su organización, es decir se crean los archivos de configuración.
.
Nivel conceptual: En este nivel se representan los datos que se van a utilizar
sin tener en cuenta aspectos como lo que representamos en el nivel interno.
.
Nivel externo: es el más cercano al usuario. En este nivel se describen los
datos o parte de los datos que más interesan a los usuarios.
Estos
tres niveles de visión de usuarios los proporcionan los sistemas gestores de
base de datos.
1.3. PROCESAMIENTO DE
OPERACIONES DE ACTUALIZACIÓN DISTRIBUIDA
Los
sistemas cliente/servidor involucran varias computadoras conectadas a una red.
Las computadoras que procesan programas de aplicaciones se conocen como
clientes y las que procesan bases de datos se conocen como servidor.
Arquitectura Cliente
Servidor
Un
sistema cliente servidor puede tener varios servidores de procesamiento de
bases de datos, cuando esto ocurre cada servidor debe procesar una base de
datos distinta. Cuando dos o más servidores procesan una misma base de datos,
el sistema no es considerado cliente servidor, más bien, es conocido como
sistema de base de datos distribuido.
Funciones del cliente:
.
Administrar la interfaz de usuario.
.
Aceptar datos del usuario.
.
Procesar la lógica de la aplicación.
.
Generar las solicitudes para la base de datos.
.
Trasmitir las solicitudes de la base de datos al servidor.
.
Recibir los resultados del servidor.
.
Dar formatos a los resultados.
Funciones del servidor:
.
Aceptar las solicitudes de la base de datos de los clientes.
.
Procesar las solicitudes de los clientes.
.
Dar formato a los resultados y trasmitirlos al cliente.
.
Llevar a cabo la verificación de integridad.
.
Mantener los datos generales de la base de datos.
.
Proporcionar control de acceso concurrente.
.
Llevar a cabo la recuperación.
.
Optimizar el procesamiento de consulta/actualización.
1.4 PROCESAMIENTO DE
CONSULTAS DISTRIBUIDAS
El
sistema debe de ser capaz de procesar consultas que hagan referencia a datos
situados a más de un nodo.
Primeramente
se debe de contar con heterogeneidad de los datos, para que puedan ser usados
para formular consultas. Tenemos los siguientes ejemplos:
Así como también necesitamos contar con:
.
Localización de los datos para generar reglas heuristicas
.
Descomposición de consultas en paralelo en cada nodo
.
Reducir la cantidad de datos a transferir en la red
ESTRATEGIAS DE
PROCESAMIENTO DE CONSULTAS DE BASES DE DATOS DISTRIBUIDAS
Contamos
con la estrategia de Re formulación de consultas, que nos sirve para encontrar
q la información que nos va a proveer sea solo la que se le pidió por la fuente.
También se cuenta con la estrategia de descomposición de las fuentes, q
consiste en que según las fuentes q pidan cierto tipo de datos sean las
atendidas con mayor velocidad.
OPTIMIZACIÓN DE CONSULTAS
DISTRIBUIDAS
Para
poder optimizar una consulta necesitamos tener claras las propiedades del algebra
relacional para asegurar la re formulación de la consulta, al optimizar una consulta
obtenemos los siguientes beneficios:
.
Minimizar costos
.
Reducir espacios de comunicaciones
.
Seguridad en envíos de información.
1.5. MANEJO DE
TRANSACCIONES
Se
considera el manejo de transacciones cuando un dispositivo móvil inicia una
transacción hacia la base de datos o hacia un servidor fijo. La transacción
puede ejecutarse en el servidor o en el dispositivo móvil.
Una
transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de
órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma
indivisible o atómica. Un SGBD se dice transaccional, si es capaz de mantener
la integridad de los datos, haciendo que estas transacciones no puedan
finalizar en un estado intermedio. Cuando por alguna causa el sistema debe
cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar
la base de datos en su estado inicial (llamado punto de integridad), como si la
orden de la transacción nunca se hubiese realizado.
Para
esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee
los mecanismos para especificar que un conjunto de acciones deben constituir
una transacción.
BEGIN
TRAN: Especifica que va a empezar una transacción.
COMMIT
TRAN: Le indica al motor que puede considerar la transacción completada con
éxito.
ROLLBACK
TRAN: Indica que se ha alcanzado un fallo y que debe restablecer la base al
punto de integridad. En un sistema ideal, las transacciones deberían garantizar
todas las propiedades ACID; en la práctica, a veces alguna de estas propiedades
se simplifica o debilita con vistas a obtener un mejor rendimiento.
Un
ejemplo de transacción, Un ejemplo habitual de transacción es el traspaso de
una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante
dos operaciones distintas, una en la que se decrementa el saldo de la cuenta
origen y otra en la que incrementamos el saldo de la cuenta destino. Para
garantizar la atomicidad del sistema (es decir, para que no aparezca o
desaparezca dinero), las dos operaciones deben ser atómicas, es decir, el
sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída
del sistema), el resultado final es que, o bien se han realizado las dos
operaciones, o bien no se ha realizado ninguna.
Se
debe tomar en cuenta: Desconexiones, movilidad, errores, fallas en el
dispositivo móvil.
Se
debe mantener la autonomía y la consistencia local del SMBD.
Los
algoritmos dependen de:
.
Si el dispositivo está ejecutando la transacción (no, solo lectura, lectura y
escritura)
.
Si se almacenaron los datos en disco.
.
Si el dispositivo móvil necesita datos que se encuentran en otros dispositivos
móviles.
REFERENCIAS
,
http://basededatosdistribuidas01.blogspot.mx/2012/02/unidad-1-fundamentos-de-bases-dedatos.html y http://tbdmontalvogil.blogspot.mx/2013/12/unidad-1-sistemas-de-bases-dedatos.html






No hay comentarios:
Publicar un comentario