TESIS WILLY E. QUISPE ACCHA.pdf
-
Upload
larry-aguirre -
Category
Documents
-
view
13 -
download
3
description
Transcript of TESIS WILLY E. QUISPE ACCHA.pdf
-
UNIVERSIDAD NACIONAL DEL ALTIPLANO
ESCUELA DE POSTGRADO
PROGRAMA DE MAESTRIA
MAESTRA EN INFORMTICA
TESIS
MTRICAS DE PERFORMANCE EN ADMINISTRACIN DE BASES DE
DATOS DISTRIBUIDAS EN INTERNET
PRESENTADA POR:
WILLY ENRIQUE QUISPE ACCHA
PARA OPTAR EL GRADO ACADMICO DE:
MAGISTER SCIENTIAE EN INFORMTICA
MENCIN EN INGENIERA DE SOFTWARE
PUNO, PERU
2014
-
2
-
UNIVERSIDAD NACIONAL DEL ALTIPLANO
ESCUELA DE POSTGRADO
PROGRAMA DE MAESTRIA
MAESTRA EN INFORMTICA
TESIS
MTRICAS DE PERFORMANCE EN ADMINISTRACIN DE BASES DE
DATOS DISTRIBUIDAS EN INTERNET
PRESENTADA POR:
WILLY ENRIQUE QUISPE ACCHA
PARA OPTAR EL GRADO ACADMICO DE:
MAGISTER SCIENTIAE EN INFORMTICA
MENCIN EN INGENIERA DE SOFTWARE
APROBADA POR EL SIGUIENTE JURADO: PRESIDENTE
.
M.Sc. ERNESTO NAYER TUMI FIGUEROA
PRIMER MIEMBRO
.
M.Sc. PEDRO LEONARDO QUISPE TICONA
SEGUNDO MIEMBRO
.
M.Sc. REYNALDO SUCARI LEON
ASESOR DE TESIS
.
M.Sc. PACO WILSON MARCONI QUISPE
Puno, 5 de Febrero de 2014.
-
i
DEDICATORIA
Dedico este trabajo principalmente a Dios, por haberme dado la vida y permitirme
el haber llegado hasta este momento tan importante de mi formacin profesional.
A mi madre, a pesar de nuestra distancia fsica, siento que ests conmigo siempre
y aunque nos faltaron muchas cosas por vivir juntos. S que este momento
hubiera sido tan especial para ti como lo es para m. A mi padre, por ser el pilar
ms importante y por demostrarme siempre su cario y apoyo incondicional sin
importar nuestras diferencias de opiniones. A mi esposa Lurdes, a quien quiero
como una compaera, por compartir momentos significativos conmigo y por
siempre estar dispuesta a escucharme y ayudarme en cualquier momento y a mis
hijos Max Brandon y Betsy Shamira, porque sin ellos no hubiera logrado esta
meta.
.
-
ii
AGRADECIMIENTOS
- Agradezco a Dios por protegerme durante todo mi camino y darme fuerzas
para superar obstculos y dificultades a lo largo de mi vida.
- A la Universidad, catedrticos por haberme permitido ascender un grado
ms en mi formacin profesional.
- A mi madre y padre, que con su demostracin de padres ejemplares me
han enseado a no desfallecer ni rendirme ante nada y siempre perseverar
a travs de sus sabios consejos.
- A mi esposa, por acompaarme durante todo este arduo camino y
compartir conmigo alegras y fracasos.
- Gracias a todas las personas que me ayudaron directa e indirectamente en
la realizacin de esta tesis.
-
iii
INDICE GENERAL
Pg.
DEDICATORIA i
AGRADECIMIENTOS ii
INDICE GENERAL iii
INDICE DE CUADROS vi
INDICE DE FIGURAS vii
RESUMEN viii
ABSTRACT ix
INTRODUCCIN 1
CAPTULO I
PROBLEMTICA DE LA INVESTIGACIN
1.1 DESCRIPCIN DEL PROBLEMA 3
1.1.1 FORMULACIN DEL PROBLEMA 4
1.2 OBJETIVOS DE LA INVESTIGACIN 4
1.2.1 OBJETIVO GENERAL. 4
1.2.2 OBJETIVOS ESPECIFICOS... 4
CAPTULO II
MARCO TERICO
2.1 ANTECEDENTES DE LA INVESTIGACI 5
2.1.1 INVESTIGACIONES DE NIVEL INTERNACIONAL 5
2.1.2 INVESTIGACIONES DE NIVEL NACIONAL. 9
2.2 MARCO REFENCIAL.. 12
2.2.1 SISTEMAS DISTRIBUIDOS.
2.2.2 BASE DE DATOS DISTRIBUIDAS.
2.2.3 BASE DE DATOS CENTRALIZADA
2.2.4 SISTEMAS CENTRALIZADOS Y SISTEMAS
DISTRIBUIDOS.
2.2.5 REDES DE COMPUTADORAS
2.2.6 TECNOLOGA DE LA INFORMACIN
2.2.7 LA NECESIDAD DE DISTRIBUIR DATOS.
12
13
18
16
19
21
23
24
-
iv
2.2.8 BASE DE DATOS Y DBMS..
2.2.9 PROCESAMIENTO DE CONSULTAS EN BASE DE
DATOS.
2.2.10 SEGURIDAD EN BASE DE DATOS DISTRIBUIDA
2.2.11 TRANSACCIONES DISTRIBUIDAS.
2.2.12 INTEGRIDAD DE DATOS EN ENTORNOS
DISTRIBUIDOS
25
27
28
30
30
2.3 GLOSARIO DE TERMINOS BSICOS 34
CAPTULO III
METODOLOGA
3.1 TIPO Y DISEO DE INVESTIGACIN.. 37
3.1.1 TIPO DE INVESTIGACIN. 37
3.2
3.3
3.1.2 DISEO DE INVESTIGACIN...
MTODO......................................
UNIDAD DE ANLISIS..
37
38
38
CAPTULO IV
RESULTADOS Y DISCUSIN
4.1 ANLISIS DE BASE DE DATOS RELACIONALES. 39
4.1.1 TIPOS DE SISTEMA DE GESTIN DE BASE DE
DATOS.
39
4.1.2 CARACTERSTICAS DE BASE DE DATOS
RELACIONAL.
4.1.3 VENTAJAS Y DESVENTAJAS
4.1.4 DISEO DE LAS BASES DE DATOS
RELACIONALES
40
40
41
4.2 ANLISIS DE BASE DE DATOS NO RELACIONALES..
4.2.1 PORQUE UTILIZAR BASE DE DATOS NoSQL.
42
43
4.3
4.2.2 EJEMPLOS DE BASES DE DATOS NOSQL.
4.2.3 POR QU APARECEN LOS SISTEMAS NOSQL..
PRUEBA DE RENDIMIENTO BASE DE DATOS..
43
44
48
-
v
4.3.1 DEFINICIN DE AMBIENTE DE PRUEBA..
4.3.2 ANLISIS COMPRATIVO...
4.3.3 EVALUACIN DE RESULTADOS.
48
51
64
CONCLUSICIONES 67
RECOMENDACIONES 69
BIBLIOGRAFA. 70
-
vi
INDICE DE CUADROS
Pg.
Cuadro 1 Especificaciones tcnicas base de datos Postgre ........... 44
Cuadro 2 Especificaciones tcnicas base de datos Mongo ..... 44
Cuadro 3 Especificaciones tcnicas base de datos MySQL.. .......... 44
Cuadro 4 Especificaciones de escenarios.. ..... 45
Cuadro 5 Estructura de la tabla/coleccin para los escenario ..... 45
Cuadro 6 Variables para evaluacin.. ...... 46
Cuadro 7 Tiempos de insercin escenario N 1. .... 47
Cuadro 8 Tiempos de insercin escenario N 2. .... 47
Cuadro 9 Consumo de recursos escenario N 1. ....... 48
Cuadro 10 Consumo de recursos escenario N 2 .. 51
Cuadro 11 Errores de insercin en escenario N 1......... .. 55
Cuadro 12 Errores de insercin en escenario N 2......... .. 56
Cuadro 13 Error de acceso de BD. En escenario N 1... .. 57
Cuadro 14 Error de acceso de BD. En escenario N 2... .. 58
Cuadro 15 Resumen de pruebas .......... .. 60
-
vii
INDICE DE FIGURAS
Pg.
Figura 1: Topologas de Redes de Comunicacin ....... 27
Figura 2: Paginacin escenario N 1 ................. 48
Figura 3: Acceso a disco fsico en escenario N 1 ...... 49
Figura 4: Uso de procesador en escenario N 1 .......... 50
Figura 5: Consumo de memoria RAM en escenario N 1 ...... 51
Figura 6: Paginacin en escenario N 2 ........ 52
Figura 7: Acceso a disco fsico en escenario N 2... ...... 52
Figura 8: Uso de procesador en escenario N 2 ....... 53
Figura 9: Consum de memoria RAM en escenario N 2 ...... 54
Figura 10: Porcentaje de errores de insercin en escen. N 1 ..... 55
Figura 11: Porcentaje de errores de insercin en escen. N 2 ..... 56
Figura 12: Porcentaje de errores de acceso a bd. N 1 ........ 58
Figura 13: Porcentaje de errores de acceso a bd. N 2 ........ 59
Figura 14:Porcentaje de xito en implementacin. de solucin ............. 60
-
viii
RESUMEN
Esta tesis describe el anlisis de mtricas de performance en administracin
de bases de datos distribuidas en Internet, para cumplir con dicho objetivo se
hizo el anlisis de bases de datos relacionales y no relacionales y finalmente
se hizo un anlisis comparativo entre las bases de datos relacionales y no
relacionales. La metodologa empleada para cumplir con los objetivos se
emple el mtodo analtico pues se har un anlisis de las ventajas y
desventajas de Software MongoDB, MySQL y PostgreSQL. Este trabajo
de investigacin pretende proponer una alternativa de base de datos que es
el de tipo de no relacional (NoSQL) frente a las bases de datos de tipo
relacional, de forma que puedan ser competitivas y hagan uso de las
tecnologas emergentes que abordan las necesidades de hoy en da. Las
conclusiones de la investigacin luego de realizado el anlisis de mtricas de
performance en administracin de bases de datos distribuidas en Internet se
concluye que la mejor opcin al momento de implementar una solucin para
el desarrollo datos NoSQL documental, ya que el porcentaje de tener xito
es del 70%, el cual es notablemente superior al caso en el que se
implemente una base de datos relacional.
Palabras clave: anlisis, Base de datos, Internet
-
ix
ABSTRACT
This thesis describes the analyze of metric of performance in administration of
data base in internet distributions, for carrying out with that objective we did
the analyze of relational and not relational data base and finally we did
comparative analysis between relational and not relational data base. The
methodology used for carying out with the objectives were analitic method it
will be analyze of advantange and disadvantange of Software
"Mongo,DB,MySQL and PostgreeSQL" . This work of research tries to propose
an alternative of data base which is the kind of not relational (NoSQL) beside
the data base of kind relational, it can be competetives and it uses the
emerging tecnhologies to approach the necesities of today's. The conclusions
of the research was realized the analyzes of metric of performance in
administration of data base in internet distributions we conclude that the best
option in the moment of implement a solution for developmenting documental
NoSQL datas, the achivement of percentage is 70%, which is the highest
notably in the case when we implements a relational data base.
Key word: analysis, data base, internet.
.
-
1
INTRODUCCIN
Actualmente las organizaciones que manejan bases de datos operan con
gran cantidad de datos, esto se debe a la cantidad de usuarios, aplicaciones
y necesidades internas o externas. Tanto es el crecimiento de estas
tecnologas que no es mantenible ni escalable continuar en algunos casos
con los mismos motores de bases de datos ya que dificulta la
administracin y mantenimiento de la informacin.
Hasta ahora se pueden identificar a grandes rasgos dos tecnologas de
gestin para el almacenamiento de datos: Las basadas en SQL y las que
no siguen este estndar, denominadas NoSQL; las primeras son las
mayormente conocidas como MySQL y Oracle de la compaa Oracle,
SQL Server de Microsoft, PostgreSQL de PostgreSQL Global Developer
Group.
Las bases de datos NoSQL surgieron como consecuencia de los
rendimientos de los motores basados en SQL, ya que no cumplan las
expectativas de tiempo de respuesta. Esta siguiente generacin de sistemas
de gestin de bases de datos contiene unas caractersticas particulares, ya
que es no relacional, distribuida, de cdigo abierto y horizontalmente
escalable estas caractersticas se explicarn en detalle ms adelante-,
de esta forma se optimiza el tiempo de consulta sobre las bases de datos y
soportan una mayor cantidad de datos.
La presente tesis se encuentra dividida por cuatro captulos, exponiendo a
continuacin
-
2
En el CAPITULO I, se identifica el problema y objetivos de estudio por
los cuales se va a desarrollar la investigacin.
En el CAPITULO II, se realiza un anlisis de las base de datos y
sistemas distribuidos
En el CAPITULO III, se describe la metodologa de investigacin
En el CAPITULO IV, se da a conocer el anlisis y resultados de
la investigacin.
Finalmente se adiciona las conclusiones, recomendaciones, bibliografa y
anexos de la investigacin desarrollada
-
3
CAPITULO I
PROBLEMTICA DE INVESTIGACIN
1.1 DESCRIPCIN DEL PROBLEMA
En la actualidad las bases de datos facilita el almacenamiento de
informacin lo cual se ha vuelto indispensable para cualquier institucin
o empresa que maneja bases de datos que contengan informacin til; el
problema radica en la sobrecarga de base de datos en un solo servidor, ya
que por el crecimiento de cualquier institucin o empresa requiere que sus
servidores estn fsicamente esparcidos en varios sitios de la red.
Cada sitio es un sistema de base de datos en s mismo, con el fin de
que un usuario de cualquier sitio de la red pueda obtener acceso a los datos,
tal como si todos los datos estuvieran almacenados en un solo servidor, es
en realidad una especie de objeto virtual, cuyos datos se almacenan
fsicamente en varias bases de datos reales pero ubicadas en diferentes
sitios.
La disponibilidad de las bases de datos y de las redes de
computadoras ha promovido el desarrollo de un nuevo campo denominado
bases de datos distribuidos. La utilizacin de bases de datos
distribuidos representa una solucin viable para instituciones o empresas
-
4
que manejen una gran cantidad de informacin y estn esparcidas en varios
servidores o sitios de la red.
1.1.1 FORMULACIN DEL PROBLEMA
Concretando el inters de esta investigacin y de lo
expuesto anteriormente, se plante la siguiente interrogante:
De qu manera se puede realizar el anlisis de mtricas de performance en
la administracin de bases de datos distribuidas en internet?
1.2 OBJETIVOS DE LA INVESTIGACIN
Se plante los siguientes objetivos:
1.2.1 OBJETIVO GENERAL
Realizar un anlisis de mtricas de performance en administracin
de bases de datos distribuidas en Internet.
1.2.2 OBJETIVOS ESPECFICOS Analizar las bases de datos Relacionales
Analizar las bases de datos no Relacionales
Realizar las pruebas de rendimiento de bases de datos no relacional
versus las bases de datos relacionales
-
5
CAPITULO II
MARCO TERICO
2.1 ANTECEDENTES DE LA INVESTIGACIN
2.1.1 INVESTIGACIONES DE NIVEL INTERNACIONAL
MENNDEZ LEONEL DE CERVANTES, Antonio Francisco
(2009). Planificacin de sistemas distribuidos en tiempo real. Tesis para
optar el grado de Doctor de Ingeniera Computacin. Mxico.
Universidad nacional Autnoma de Mxico.
Dicho trabajo de investigacin estudia el comportamiento de los
sistemas distribuidos en tiempo real y plantea dos contribuciones para
realizar un anlisis ms acucioso de dichos sistemas: en primer lugar se
plantea una mtrica de disponibilidad de nodos que participan en un
sistema distribuido, esta mtrica adems de proponer como evaluar dicha
disponibilidad, permite tambin evaluar el rendimiento del sistema distribuido.
La segunda contribucin del trabajo, plantea la necesidad y la posibilidad de
tener un planificador global para los sistemas distribuidos en tiempo real.
Se presentan dos casos de estudio en los que se pueden apreciar tanto
la viabilidad como las caractersticas de ambas contribuciones; en el primer
-
6
caso de estudio se implementa la mtrica de disponibilidad del nodo en un
sistema distribuido de alto rendimiento (Cluster), en donde la mtrica
permite obtener un uso equitativo del sistema distribuido al balancear la
carga entre los nodos participantes con lo que se logra un buen rendimiento
del sistema distribuido y un incremento en su desempeo al compararlo con
otras tcnicas de distribucin de cargas. En el segundo caso de estudio se
utiliza el planificador global propuesto para planificar un sistema distribuido
de control en tiempo- real. El uso de este planificador presenta entre otras
ventajas la posibilidad de encontrar las cotas de muestreo del sistema que le
permitan operar dentro de los lmites de desempeo aceptable as como la
velocidad de transmisin que debe tener la red de comunicaciones.
PALENCIA GUTIRREZ, Jos Carlos (1999). Anlisis de
planificabilidad de sistemas distribuidos de tiempo real basados en
prioridades fijas. Tesis para optar el grado de Doctor. Santander.
Universidad de Cantabria.
En la tesis doctoral se estudia el anlisis de sistemas de tiempo real en los
que se debe verificar el cumplimiento de ciertos requerimientos temporales,
principalmente referidos a plazos mximos de ejecucin. Esta verificacin se
realiza mediante el anlisis de planificabilidad basado en el clculo de
tiempos de respuesta de peor. El estudio se centra en los sistemas
multiprocesadores y distribuidos gobernados por eventos y planificados
mediante polticas basadas en asignacin de prioridades fijas. Dentro de
este mbito no se conocen tcnicas exactas de anlisis, de manera que
parte de la investigacin se ha orientado a la bsqueda de tcnicas
-
7
analticas aproximadas que verifiquen suficientemente el cumplimiento de los
requisitos temporales. El trabajo presentado en esta tesis se dirige
bsicamente a esa bsqueda. Por un lado, se centra en la formalizacin y
optimizacin de las tcnicas de anlisis previamente desarrolladas por otros
autores, mediante modelos que aproximan el comportamiento real de los
sistemas distribuidos de forma que sean analizables, aunque introduciendo
con ello cierto pesimismo, que hace que el anlisis no resulte exacto, pero s
suficiente. Por otro lado, la tesis se centra en la bsqueda de un nuevo
modelo que permita reducir el pesimismo en el anlisis. El modelo que se
propone es el basado en tareas con offsets dinmicos, mediante el que se
consiguen mejoras sustanciales frente a los modelos anteriormente
utilizados. Tambin se optimiza el anlisis al considerar las relaciones de
precedencia en la ejecucin de tareas dentro del sistema distribuido. La
inclusin de estas relaciones de precedencia cuando deducimos las
expresiones analticas que conducen a la obtencin de los tiempos de
respuesta hace que se reduzca fuertemente el pesimismo. Este modelo se
ha encontrado tambin adecuado para el anlisis de tareas que se
suspenden o para el anlisis de tareas con prioridades variantes, dentro de
sistemas multiprocesadores y distribuidos.
CAMPOVERDE BORJA, Henry Daniel (2012). Desarrollo de
aplicaciones web mediante HTML5 y la base de datos NoSQL mongo
DB. Tesis para optar el ttulo de Ingeniero en Sistemas. Ecuador.
Universidad del Azuay.
HTML desde su primera versin descrita tiempos atrs, ha ido evolucionando
-
8
hasta llegar a su actual versin HTML5. Esta tesis est basado en aquella
nueva versin, desarrollando as una aplicacin web orientada a redes
sociales, con el objetivo de exponer cambios y mejoras que han surgido a la
par con HTML5 y aadiendo una nueva alternativa para el almacenamiento
de datos como lo es MongoDB, una base de datos NoSQL, que
intenta solventar limitaciones del modelo relacional al momento de trabajar
con una cantidad masiva de datos.
RUIZ CARRETE, Jos Guadalupe (2004). Procesamiento de consultas
en bases de datos paralelas. Tesis para optar el grado de
Maestro en Ciencias en la Especialidad de Computacin. Mxico. Centro
de Investigacin y de Estudios Avanzados del IPN.
En aos recientes, se ha producido un incremento continuo en la
cantidad de datos manipulados por los sistemas manejadores de bases de
datos (DBMS). Ms an, ya no resulta extrao para un DBMS manipular
bases de datos con tamaos que van desde los cientos de gigabytes
hasta terabytes. Por otra parte, los sistemas con mltiples procesadores son
cada vez ms accesibles, por lo que es posible aplicar cmputo paralelo para
procesar grandes volmenes de informacin en las bases de datos.
El procesamiento de juntas (joins) en bases de datos, es una operacin
que demanda muchos recursos de cmputo, sobre todo en bases de datos
grandes. Para resolver este problema se hace necesario combinar tcnicas
de bases de datos (especialmente bases de datos distribuidas y
procesamiento paralelo) para reducir los tiempos de respuesta a los usuarios
de una base de datos grande. En este trabajo, se muestran algoritmos para
-
9
realizar cada una de las etapas involucradas en la implementacin de una
base de datos en paralelo. Los algoritmos son desarrollados en C haciendo
uso de la interfaz de paso de mensajes (MPI)
2.1.2 INVESTIGACIONES DE NIVEL NACIONAL PRO CONCEPCION, Luzmila Elisa (2010). Base de datos
distribuidos usando algoritmos genticos para optimizacin de proceso
transaccin en la Web. Tesis para optar el grado acadmico de
Doctor en Ingeniera. Lima-Per. Universidad Nacional Federico Villareal.
La tesis est orientada al crecimiento y evolucin del servidor web de
una manera econmica y escalable que lleva a un rendimiento ptimo. Por
consiguiente, existe la necesidad de estudiar los procesos de transacciones
del sistema, de tal manera que se aplique otra alternativa como algoritmos
genticos para optimizar el proceso de transaccin en el servidor, a fin de
as mejorar los procesos del servidor web y mejorar la atencin a los
clientes/usuarios.
El objetivo es implementar un simulador de transacciones orientado a la
toma de decisiones del administrador de transacciones con la aplicacin de
algoritmos genticos. Se us los algoritmos genticos para determinar que
transaccin se debe tomar para asignarlo en la cola de procesos.
Las conclusiones de esta tesis son: se ha realizado un anlisis de los
modelos de transacciones que operan actualmente y se ha extrado
tales mecanismos para llevarlo a un proceso de toma de decisiones en
funcin de los algoritmos genticos.
-
10
Se ha implementado un simulador prototipo para un sistema de aplicacin
con algoritmos genticos, para optimizar el proceso de transaccin, antes de
procesar datos, se evaluaran los procesos de transacciones sobre: tiempo
de simulacin, nmero de transacciones, tiempo de la transaccin, numero
de recursos, longitud de la cola del recurso. Probabilidad de
cruzamiento, probabilidad de mutacin, transacciones en cola, atendidos, en
lectura, en escritura, tiempo consumido, y se consigue los resultados de
procesos ptimos; el tiempo de procesamiento de datos mediante el
simulador es menor que el tiempo de procesamiento de datos que en el
procesador convencional, mejor uso del recurso de la computadora.
OATE LLERENA, Luis Robert (2005). Diseo de bases de
datos distribuida empleando la arquitectura de replicacin Oracle. Tesis
para optar el Ttulo Profesional de Ingeniero de Sistemas. Trujillo- Per.
Universidad Nacional de Trujillo.
La cantidad de innovaciones tecnolgicas que ha habido ha promovido
un cambio en la forma de observar a los sistemas de informacin y, en
general, a las aplicaciones computacionales. Existen avances
tecnolgicos que se realizan continuamente en circuitos, dispositivos
de almacenamiento, programas y metodologas. Sin embargo, los cambios
tecnolgicos van de la mano con la demanda de los usuarios y programas
para la explotacin exhaustiva de tales dispositivos mejorados. Por tanto,
existe un continuo desarrollo de nuevos productos los cuales incorporan
ideas nuevas desarrolladas por compaas e instituciones acadmicas.
-
11
Un rea en la cual las soluciones estn integrando tecnologa con
nuevas arquitecturas o formas de hacer las cosas es, sin lugar a dudas, el
rea de los sistemas distribuidos de informacin. Ellos se refieren al
manejo de datos almacenados en facilidades de cmputo localizadas en
muchos sitios ligados a travs de una red de comunicaciones. Un caso
especfico de estos sistemas distribuidos es lo que se conoce como bases de
datos distribuidas. Las razones por las que compaas y negocios migran
hacia bases de datos distribuidas incluyen razones organizacionales y
econmicas, para obtener una interconexin confiable y flexible con las
bases de datos existentes, y por un crecimiento futuro. El enfoque distribuido
de las bases de datos se adapta ms naturalmente a la estructura de las
organizaciones. Adems, la necesidad de desarrollar una aplicacin global
(que incluya a toda la organizacin), se resuelve fcilmente con bases de
datos distribuidas. Si una organizacin crece por medio de la creacin de
unidades o departamentos nuevos, entonces, el enfoque de bases de datos
distribuidas permite un crecimiento suave.
-
12
2.2 MARCO REFERENCIAL
2.2.1 SISTEMAS DISTRIBUIDOS
Un sistema distribuido consiste de una coleccin de computadoras
autnomas, unidas por una red de cmputo y equipadas con software
especfico (Colouris, 2001).
Un sistema distribuido es una coleccin de computadoras
independientes que aparecen ante los usuarios del sistema como una nica
computadora (Tanenbaum, 1996).
El desarrollo de la tecnologa y en particular la de los sistemas
distribuidos de cmputo ha tenido como metas a alcanzar, el tener sistemas
cada vez ms rpidos, eficientes, confiables, precisos y adaptables. Algunos
sistemas buscan brindar mayor calidad de servicio y rapidez al aumentar
el nmero de servidores. En los sistemas de misin crtica, lo que se busca
es la continuidad en la operacin del sistema, donde lo ms importante no es
la rapidez sino su disponibilidad, an a expensas de realizar inversiones
redundantes en tecnologa que slo ser usada en caso de falla. En otro
tipo de sistemas lo que se busca es la precisin o capacidad de cmputo,
pasando a un segundo plano el tiempo que el sistema tarde en entregar los
resultados. Otro tipo de necesidades son aquellas que surgen cuando lo
ms importante es el tiempo de entrega, si el resultado es correcto pero
tardo, se convierte en invlido para todo el sistema, o peor an, ocasiona
que el sistema se colapse; este ltimo tipo de sistema se conocen como
Sistemas de Tiempo - Real (Garcia, 2003).
-
13
2.2.2 BASE DE DATOS DISTRIBUIDAS
Las BDD aportan las ventajas de la computacin distribuida al dominio de
la gestin de BD. Un sistema de cmputo distribuido consiste en un
conjunto de elementos de procesamiento, no necesariamente homogneos,
que estn interconectados por una red de computadoras, y que cooperan en
la ejecucin de ciertas tareas asignadas. Como objetivo general, los
sistemas de cmputo distribuido dividen un problema grande y, a veces,
inmanejable, en piezas ms pequeas y las resuelven eficientemente de
forma coordinada. La viabilidad econmica de este enfoque proviene de dos
razones:
Se aprovecha ms la potencia de la estacin de trabajo para
resolver tareas complejas.
Cada elemento de procesamiento autnomo se puede gestionar
independientemente y puede desarrollar mejor sus aplicaciones.
Ahora es posible definir a una Base de Datos Distribuida desde
diferentes puntos de vista, se plantean a continuacin algunas
definiciones:
Una Base de Datos Distribuida es una nica base de datos lgica que
est fsicamente separada en varias computadoras que se encuentran
conectadas por una red de comunicaciones. Generalmente, la
administracin de Base de Datos Distribuida se encuentra
centralizada como un recurso corporativo mientras que se provee
flexibilidad y manejo local (Burleson, 1994).
Una Base de Datos Distribuida es una coleccin de mltiples Base
-
14
de Datos, lgicamente interrelacionadas, diseminadas sobre una red de
computadoras. Un DBMS1 distribuido (DDBMS) es un sistema de
software que permite la administracin de la Base de Datos Distribuida y
hace que esa distribucin permanezca transparente al usuario (Ozsu
& Valduriez,1996).
1 DataBase Management System: es una coleccin de programas que permite a un
usuario crear, manipular y mantener una Base de Datos
-
15
Una Base de Datos Distribuida no es una coleccin de archivos que
pueden ser almacenados individualmente en cada nodo o estacin de
trabajo de una red. Para formar una Base de Datos Distribuida estos archivos
necesariamente deben estar interrelacionados, permitiendo un acceso va
una interfaz comn.
El objetivo principal para la distribucin de datos es proveer un acceso
sencillo a la informacin por parte de los usuarios de mltiples localidades o
nodos de trabajo de una red de computadoras. Para alcanzar este objetivo,
los sistemas de base de datos distribuidos deben de proveer transparencia
de ubicacin, que significa que el usuario no necesita conocer la localizacin
fsica de cada dato dentro de la red. Idealmente, la informacin en la red
aparece como si fuera parte de una base de datos convencional (no
distribuida) almacenada en un sitio central, hacia donde todos los usuarios
convergen (Bobak, 1993).
2.2.2.1 TIPOS DE BASE DE DATOS DISTRIBUIDAS
El trmino DDBMS puede describir diversos sistemas que presentan
muchas diferencias entre s. El punto principal que todos estos sistemas
tienen en comn es el hecho que los datos y el software estn distribuidos
entre mltiples sitios conectados por alguna especie de red de
comunicaciones. Se discutir a continuacin varios tipos de DDBMS y los
criterios y factores que distinguen a algunos de estos sistemas (Bell &
Grimson, 1992).
El primer factor que se considera es el grado de homogeneidad
del software del DDBMS. Si todas las estaciones de trabajo utilizan software
-
16
idntico, al igual que todos los usuarios de la Base de Datos Distribuida,
en este caso en ambiente ser homogneo, en caso contrario se dice que el
sistema es heterogneo. Otro factor relacionado con el grado
de homogeneidad es el grado de autonoma local. Si el sitio local no
puede funcionar como un DBMS autnomo, el sistema no tiene autonoma
local. Por otro lado, si se permite a las transacciones locales acceder
directamente al nodo servidor, el sistema tendr cierto grado de autonoma
local.
En un extremo de la gama de autonoma, tenemos un DDBMS que da
al usuario la impresin de ser un DBMS centralizado. Solo hay un esquema
conceptual del modelo de datos y todo acceso al sistema rehace a travs de
un sitio que es parte del DDBMS, de modo que no hay autonoma local. En el
otro extremos se encuentran con un DBMS distribuido denominado
Federativo o Federado (o sistemas con mltiples Base de Datos). En un
sistema as, cada servidor es un DBMS centralizado independiente y
autnomo que tiene sus propios usuarios locales, transacciones locales y
Administrador de Base de Datos (DBA), por tanto posee un alto grado de
autonoma local. El trmino bases de datos federales (BDF) se utiliza cuando
algn esquema de la federacin de Base de Datos es compartido por las
aplicaciones. Por otro lado, un sistema de mltiples Base de Datos no tiene
un esquema global e interactivamente construye uno segn la aplicacin que
lo necesita. Los dos sistemas son hbridos entre sistemas centralizados y
distribuidos, y la distincin que se hace entre ellos no se sigue estrictamente.
Se hace referencia a ambos como DBF en un sentido genrico.
-
17
2.2.2.2 OBJETIVOS DE UNA BASE DE DATOS DISTRIBUIDA
Existen varias condiciones de negocio que alientan el uso de Base de
Datos Distribuida (Breitbart, Komondoor, Rastogi, Seshadri, &
Silberschatz,1999):
Distribucin y autonoma de unidades de negocio. Las organizaciones se
encuentran esparcidas geogrficamente y cada unidad organizacional
necesita disponer de sus datos en forma local.
Compartir los datos. Las decisiones empresariales se toman en funcin
de las necesidades globales de la empresa.
Costo y disponibilidad en las comunicaciones de datos. El costo de las
comunicaciones es generalmente elevado. Mantener copias locales de
los datos es una forma confiable y econmica para tener un acceso
rpido y econmico a la informacin dentro de la organizacin.
Recuperacin de Base de datos. Replicar la informacin en diferentes
estaciones de trabajo es una estrategia para asegurar que una Base de
Datos daada pueda ser rpidamente recuperada, permitiendo de
esa forma aumentar la disponibilidad de los datos.
Los principales objetivos que se persiguen con Base de Datos
Distribuida consisten en proveer al usuario de un acceso a los datos desde
diferentes ubicaciones. Desde aqu se pueden derivar algunas
consideraciones que deben estar provistas en los sistemas que
soporten distribucin de informacin:
Transparencia de localizacin: el usuario no debe conocer la ubicacin de
los datos para poder acceder a ellos.
-
18
Autonoma local: cada sitio donde residan datos tiene el control exclusivo
sobre ellos. Esto se logra mediante un DBMS que acta como
administrador local de los datos. Cada sitio, si bien cuenta con autonoma,
coopera con el resto de los sitios, compartiendo la informacin y
controlando el uso correcto de la misma Comparado con las Bases de
Datos centralizadas, una Base de Datos Distribuida presenta ventajas
que se describen a continuacin:
Incrementar la fiabilidad y disponibilidad
Control local de los datos
Crecimiento modular
Menor costo en las comunicaciones
Mejor tiempo de respuesta
2.2.3 BASE DE DATOS CENTRALIZADA
Los sistemas centralizados han sido utilizados durante tres dcadas
(60, 70, 80) como base para la tecnologa de informacin, pero desde
mediados de los 90, algunos nuevos aspectos surgieron para tender hacia la
utilizacin de sistemas distribuidos como soporte para la tecnologa de
informacin (Simon,1996):
Avances en tecnologa de computadoras y de comunicaciones
utilizadas para implementar la infraestructura de tecnologas de
informacin.
Crecimiento en las aplicaciones que llevan a la tecnologa
de informacin hacia niveles operacionales, administrativos y
-
19
estratgicos de las organizaciones.
Permitir que las estructuras organizacionales se adapten rpidamente
a los cambios en los ambientes de negocios.
Los cambios producidos en la dcada del 90 que motivan
avances tecnolgicos para la IT pueden resumirse en:
Mejora en la infraestructura y diseo de aplicaciones para la tecnologa
de informacin.
Evolucin contina en computadoras personales (estaciones de trabajo)
Posibilidad de interconexin de estaciones de trabajo (redes
de computadoras)
Servicios de informacin de rea global (bsicamente internet)
2.2.4 SISTEMAS CENTRALIZADOS Y SISTEMAS DISTRIBUIDOS
La perspectiva histrica sobre la evolucin de los sistemas distribuidos
revela un nmero de ventajas y desventajas. En general, para el desarrollo
actual y futuro de sistema de informacin tanto las polticas centralizadas
como las distribuidas deberan ser tenidas en cuenta. Un sistema
centralizado puede ser muy til para el usuario final y puede ofrecer
una mejor seguridad, integridad de informacin y funcionalidad (Colouris,
2001).
Los sistemas distribuidos, adems, tiene asociadas diferentes
caractersticas que pueden presentar tanto ventajas como desventajas
operativas. Estos pros y contras deben ser cuidadosamente analizados en
funcin de cada problema particular, para que, de esta forma, la decisin de
utilizacin o no se tome en forma correcta.
-
20
Se presentan a continuacin ciertos pros y contras de los
sistemas distribuidos. Como aspectos positivos se pueden mencionar:
Mayor flexibilidad: las componentes de un sistema distribuido pueden
ser agregadas, actualizadas, mudadas de sitio o directamente
removidas sin afectarse entre s.
Autonoma local: cada estacin de trabajo (nodo o localidad) tiene
el control absoluto de sus recursos.
Mejoras en la fiabilidad y disponibilidad: los sistemas centralizados
son ms vulnerables a cadas. Si el sitio central deja de operar,
todos los usuarios se ven imposibilitados de trabajar. Los sistemas
distribuidos tienen mltiples componentes del mismo tipo, configurados
independientemente y de manera tal que el sistema es tolerante a
fallos (si una estacin de trabajo no responde otra tomar su lugar y el
cliente, en general, podr satisfacer sus necesidades).
Mejoras en la performance: al separar los servicios del sistema
en mltiples localidades, el usuario podr acceder ms rpidamente a
los recursos. Adems, es posible lograr un mayor nivel de paralelismo
en el acceso a los datos.
Entre las desventajas asociadas a los sistemas distribuidos
pueden mencionarse:
Sistemas ms difciles de controlar debido al nmero creciente
de recursos en el mismo.
Mayor dificultad para brindar seguridad. Los sistemas distribuidos
son ms propensos a ataques, la autonoma local puede hacer
-
21
que una localidad deje puertas abiertas por donde puedan efectuarse
accesos indebidos. El control sobre la seguridad de los recursos
resulta ms complejo.
Las herramientas de desarrollo de sistemas distribuidos y el personal
que las pueden utilizar son ms escasos. La experiencia en el
desarrollo y utilizacin de herramientas est ms enfocada hacia
sistemas centralizados.
Reducir la fiabilidad y disponibilidad. Claramente se observa que
esta caracterstica est definida previamente como una ventaja. Cmo
debe, entonces, ser interpretada? Los sistemas centralizados pueden
ofrecer control fsico, operacional y condiciones de ambiente con ms
experiencia de desarrollo, esto significa que los sistemas deberan ser
ms fiables y deberan estar disponibles antes en el tiempo. Los
sistemas distribuidos, por el contrario, agregan ms aspectos que los
hacen ms proclives a fallos, ms difciles de probar y que necesitan
ms recursos humanos y de tiempo para su desarrollo.
2.2.5 REDES DE COMPUTADORAS
Se define una red de computadoras como una coleccin de estaciones
de trabajo autnomas que son capaces de intercambiar informacin entre
ellas. Las claves de la definicin son: interconexin y autonoma. El concepto
de autonoma, ya definido previamente, es una necesidad bsica para la
generacin de una Base de Datos Distribuidas (Tanenbaum, 1996).
Existen varios criterios para clasificar redes de computadoras. Un
criterio es la estructura de interconexin, otro es el modo de transmisin, y el
-
22
tercero lo representa la distribucin geogrfica.
De acuerdo con la estructura de interconexin, denominado topologa,
se pueden clasificar las redes como: Estrella, Anillo, Jerrquica, Anidada, etc.
En trminos de esquemas de comunicacin pueden ser redes punto a punto
o redes multipunto. En las redes punto a punto cada par de nodos se conecta
entre ellos, y no comparten el canal con otros nodos, mientras que una red
multipunto posee un canal comn de comunicaciones, el cual es utilizado por
cada estacin de trabajo de la red. Por ltimo, y de acuerdo a la distribucin
geogrfica, se pueden caracterizar las redes en WAN (Wide Area Network) o
LAN (Local Area Network) (Hallsall, 1992).
Las redes WAN pueden estar constituidas tanto con topologa
multipunto como punto a punto. El medio fundamental de transmisin
para topologa multipunto se denomina broadcast (en lneas generales, se
enva un mensaje al medio, donde todos los nodos escuchan, y solo la
estacin de trabajo destinataria responde al mismo). Las redes WAN con
topologa punto a punto pueden tener diversos tipos de conexiones,
estrella, anillo, etc. como se plante en el prrafo anterior.
Las redes WAN comnmente estn compuestas por equipos
heterogneos que requieren que el medio de transmisin sea capaz de
adaptarse a esta heterogeneidad. Para ello, se dispone de
estandarizaciones que solucionan el problema. La arquitectura de
interconexin de la ISO/OSI para sistemas abiertos (open systems) es una
variante posible.
-
23
Las redes LAN son redes limitadas geogrficamente. Proveen un
mayor ancho de banda para las comunicaciones. Los medios de
comunicacin son, generalmente, cables (pticos, coaxiles o estructurados)
aunque en algunos casos la comunicacin puede hacerse wireless (sin
cable). Estos medios proveen un mejor ancho de banda para establecer las
comunicaciones y una mejor performance en las transmisiones. En
general, una red LAN provee mejores oportunidades de trabajo, como
distribuir el proceso de control de aplicaciones, servidores de archivos
centralizados, disminuir el costo de almacenamiento secundario, etc.
Las necesidades de mercado actual hacen necesario compartir ambas ideas
de redes. Esto es, una organizacin puede tener, en distintas
ubicaciones, redes LAN; de esta forma, se mejora las prestaciones que
necesitan localmente los usuarios. Adems, cada una de estas redes
son interconectadas para compartir informacin, generando as una red
WAN. En estos casos, el medio ms utilizado para establecer la
comunicacin entre redes LAN ser Internet.
2.2.6 TECNOLOGA DE LA INFORMACIN
Las organizaciones actuales se estn expandiendo ms all de los
lmites geogrficos tradicionales en bsqueda de nuevas oportunidades de
negocios, nuevos clientes, nuevos mercados, tratando de mejorar su
viabilidad financiera y organizacional. Esto deriva en la necesidad de
una Tecnologa de Informacin ms flexible y productiva que soporte el
incremento innovador de los sistemas de informacin. Las organizaciones
estn creando infraestructuras de tecnologas de informacin que
-
24
soporten el envo de informacin, experiencia y servicios de acuerdo a
la demanda existente en tiempo y forma correcta para estaciones de trabajo
tanto fijas o mviles.
La industria de la tecnologa de informacin evoluciona hacia un cambio
innovador. Las estaciones de trabajo se transforman desde lo que se puede
llamar cmputo intensivo hacia comunicacin intensiva (informacin
intensiva), agregando la utilizacin de datos multimediales. En conclusin,
el objetivo fundamental de diseo de la tecnologa de sistemas
distribuidos apunta a presentar al usuario la ilusin que todos los
recursos se localizan en su estacin de trabajo. Un sistema distribuido en
este contexto es simplemente una coleccin de computadoras autnomas,
conectadas por una red, que permite compartir recursos y la cooperacin
entre aplicaciones, con la finalidad de responder ante una tarea dada (Simon,
1996).
2.2.7 LA NECESIDAD DE DISTRIBUIR DATOS
El objetivo principal para la distribucin de datos es proveer un acceso
sencillo a la informacin por parte de los usuarios de mltiples localidades o
nodos de trabajo de una red de computadoras. Para alcanzar este objetivo,
los sistemas de Base de Datos Distribuidos deben proveer transparencia de
ubicacin, que significa que el usuario no necesita conocer la localizacin
fsica de cada dato dentro de la red. Idealmente, la informacin en la red
aparece como si fuera parte de una Base de Datos convencional (no
distribuida) almacenada en un sitio central, hacia donde todos los usuarios
convergen (Bobak, 1993).
-
25
2.2.8 BASE DE DATOS Y DBMS
Una Base de Datos es una componente ms de los sistemas de
informacin. Se puede definir una Base de Datos de diversas formas:
Coleccin de datos interrelacionados (Elmasri & Navathe, 2002). Coleccin de archivos diseados para servir a mltiples aplicaciones
(Silberschatz, Korth, & Sudarshan, 1998) Contenedor para relaciones variables, el contenido de una BD dada
en cualquier momento de tiempo es un conjunto de relaciones
variables (Darwen, 1998).
Las definiciones de Base de Datos precedentes son muy generales, por
ejemplo se puede considerar que la coleccin de palabras que conforman
esta pgina de texto estn relacionadas y, por ende, constituyen una
Base de Datos. No obstante, el uso comn de Base de Datos es ms
restrictivo. Una Base de Datos tiene un conjunto de propiedades implcitas:
Representa algn aspecto del mundo real. Los cambios de este
mundo real se reflejan en la Base de Datos.
Es una coleccin lgicamente coherente de datos con algn tipo
de significados inherente. En general, cualquier ordenamiento aleatorio
de datos no representa una Base de Datos, como lo seran las palabras
que conforman esta pgina del texto.
Una Base de Datos es diseada, construida y manipulada con datos
para un propsito especfico, definido en los requerimientos del
problema original y para ser utilizada por un conjunto de usuarios.
-
26
Entonces una BD tiene alguna fuente desde la cual se derivan los
datos, algn grado de interaccin con eventos del mundo real y una
audiencia que est activamente interesada en el contenido de la misma.
Un DBMS (DataBase Management System) es una coleccin de
programas que permite a un usuario crear, manipular y mantener una Base
de Datos. El DBMS es un software de propsito general que facilita el
proceso de definicin, construccin y manipulacin de Base de Datos para
varias aplicaciones. Cuando se define una Base de Datos se involucra la
especificacin de tipos estructuras y limitaciones de datos, los cuales sern
almacenados en ella. La construccin de una Base de Datos es el proceso
de recolectar los datos sobre algn dispositivo (disco rgido, por
ejemplo) controlado por el DBMS. Por ltimo, manipular una Base de Datos
incluye aquellas funciones de consulta con el fin de obtener ciertos
resultados especficos a partir de los datos almacenados.
Las ventajas que se tienen al utilizar una Base de Datos son (Hoffer &
Prescott, 2002):
Independencia entre datos y programas de aplicacin Redundancia mnima de datos
Mejorar la consistencia de la informacin
Mejorar la productividad del rea de negocios
Mejorar la calidad de datos mejorando su accesibilidad y tiempo
de respuesta
Minimizar el mantenimiento.
-
27
2.2.9 PROCESAMIENTO DE CONSULTAS EN BASE DE
DATOS DISTRIBUIDA
Una consulta expresada en un lenguaje de alto nivel como SQL,
primero debe pasar por un anlisis lxico, un anlisis sintctico y una
validacin. El analizador lxico identifica los smbolos del lenguaje en el texto
de la consulta, mientras que el analizador sintctico revisa la sintaxis de la
consulta para determinar si est formulada de acuerdo con las reglas
sintcticas del lenguaje de consulta. Adems, la consulta se debe validar,
para lo cual se debe comprobarse que todos los nombres de atributos y de
relaciones sean vlidos y tengan sentido desde el punto de vista semntico
en el esquema de BD que se est utilizando.
Adems, una consulta tiene muchas posibles estrategias de ejecucin,
y el proceso de elegir la ms adecuada para procesar una consulta se
conoce como optimizacin de consulta. El proceso de optimizacin de
consultas consiste en determinar cul es el mejor esquema de resolucin, el
cual debera ser el que mejor respuesta tenga en performance.
En un esquema distribuido existen factores adicionales a los que se
tienen en cuenta para la optimizacin de consultas en un
esquema centralizado. Un factor es el costo de transferir datos por la red, otro
factor es la disponibilidad de la informacin (en que nodos se encuentra el
dato, si los nodos estn momentneamente disponibles, etc.). No es el
objetivo de este trabajo el estudio de procesamiento distribuido de consultas
(Ceri, 1991).
-
28
2.2.10 SEGURIDAD EN BASE DE DATOS DISTRIBUIDA
Un requerimiento importante de los DBMS, tanto distribuidos como
centralizados, es la habilidad de soportar control sobre los datos. Esto
incluye administracin de vistas, control de la seguridad, control de la
integridad. En otras palabras, estas capacidades deben asegurar que
los usuarios autorizados lleven a cabo las operaciones correctas sobre la
base de datos manteniendo la integridad en la Base de Datos (Fernandez et
al., 1981).
La definicin de las reglas que controlan la manipulacin de los datos
es parte de las tareas de DBA (administrador de la Base de Datos). En
general, las reglas son similares a sistemas centralizados con algunos
agregados. La seguridad de los datos es una funcin importante del DBMS
que protege la informacin contra acceso no autorizado. La seguridad de
datos incluye dos aspectos: proteccin de datos y control de autorizacin.
La proteccin de datos es necesaria para prevenir acceso no
autorizado de usuarios. Esta funcin, tpicamente, es provista por el sistema
de archivos en el contexto de sistemas operativos, tanto, centralizados o
distribuidos. La principal aproximacin para la proteccin de datos es la
encriptacin de los mismos.
El control de autorizacin debe garantizar que slo los usuarios
autorizados lleven a cabo las operaciones que les fueron permitidas sobre la
Base de Datos. Tanto los DBMS centralizados como los distribuidos
son capaces de establecer restricciones de acceso a subconjuntos de la
Base de Datos o de usuarios. De las soluciones para control de
-
29
autorizacin en sistemas centralizados, se derivan las soluciones para
DBMS distribuidos, con algn grado ms de complejidad.
En lo que respecta al control de autorizacin distribuido, los
problemas son autentificacin de usuarios remota, manipulacin de reglas de
autorizacin distribuidas, manipulacin de grupos de vistas y grupos de
usuario.
La autentificacin remota es necesaria dado que cualquier sitio
del DDBMS puede aceptar programas iniciados y autorizados en otros nodos
de la red. Para prevenir accesos remotos a usuarios no autorizados el
usuario debe ser identificado y autenticado en el nodo accedido. Son
posibles dos soluciones:
La informacin de autenticacin de usuarios es replicada en cada nodo.
Los programas locales, iniciados en cada sitio remoto, deben,
tambin indicar el nombre de usuario y su password.
Todos los sitios del sistema distribuido se identifican y autentican a
s mismo de la misma forma que lo hacen los usuarios. La comunicacin
entre sitios es protegida por el uso de password de sitio. Una vez
inicializado el sitio debe ser autenticado.
Las reglas de autorizacin distribuidas son expresadas de la misma
forma que los sistemas centralizados. Todas las reglas deben estar
disponibles, replicadas, para todos los sitios de la red.
-
30
2.2.11 TRANSACCIONES DISTRIBUIDAS
El acceso a los datos en los sistemas distribuidos se realiza mediante
transacciones, que deben conservar las propiedades. Hay que tener en
cuenta que en un esquema distribuido existen dos tipos de transacciones
diferentes: transacciones locales y transacciones globales (Gray & Reuter, 1996).
Las transacciones locales son las que tienen acceso y actualizan datos
slo en una Base de Datos local, residente en un nodo o localidad, en
tanto que las transacciones globales tienen acceso y actualizan datos en
varios nodos o localidades de la red. Asegurar las propiedades de las
transacciones locales es similar al proceso realizado en entornos
centralizados.
Sin embargo, en caso de transacciones globales, esta tarea es
mucho ms compleja y requiere un estudio mucho ms detallado
2.2.12 INTEGRIDAD DE DATOS EN ENTORNOS DISTRIBUIDOS
2.2.12.1 FALLOS EN ENTORNOS DISTRIBUIDOS
Los sistemas distribuidos pueden sufrir los mismos tipos de fallos que
los sistemas centralizados (por ejemplo, errores de software, errores de
hardware o fallos graves de disco). Sin embargo, hay otros tipos de fallos
con los que tratar en los entornos distribuidos (Tanenbaum, 1996). Los tipos
principales de fallo, que ahora aparecen, son:
Fallo de una estacin de trabajo o nodo Prdida de mensajes
Fallo en el enlace de comunicaciones Divisin de la red.
-
31
La prdida o deterioro de los mensajes es una posibilidad que siempre
se encuentra presente en los sistemas distribuidos. Protocolos, como TCP/IP,
surgen para tratar con estos errores y tratar de minimizar su impacto.
En lo que respecta a conceptos como fallo en el enlace
de comunicaciones o divisin de la red hay que analizar, primeramente, la
manera en que pueden interconectarse los sistemas distribuidos. Cada nodo
o estacin de trabajo puede estar conectado de varias formas (algunas de
las conexiones posibles se presentan en la figura 1.
Figura 1 Topologas de Redes de Comunicacin
Fuente: http://wikitel.info/wiki/Redes_de_comunicaciones
-
32
Cada configuracin presenta ventajas e inconvenientes. Se pueden
comparar segn los criterios siguientes:
Costo de instalacin: el costo de enlazar fsicamente los nodos del
sistema.
Costo de comunicaciones: el costo en tiempo y dinero para enviar
un mensaje desde el nodo A al nodo B.
Disponibilidad: el grado en que se puede tener acceso a los datos a
pesar del fallo de algunos de los enlaces o estaciones de trabajo.
Las diferentes topologas descriptas en la figura 1 representan distintas
formas de conexin (representadas por los arcos) entre estaciones de
trabajo (representadas por los nodos de un grafo). Una red totalmente
conectada, entonces, presenta una conexin fsica punto a punto entre cada
par de nodos de la red. De esta forma se logra tener una red donde el nivel
de disponibilidad es alto, el costo de mandar un mensaje es el mnimo
posible, pero el costo de la instalacin resulta muy elevado. Por otro lado,
una red tipo estrella tendr un costo de instalacin mucho menor, pero todos
los mensajes debern pasar por el nodo central, generando as un punto
nico de fallos que disminuir la disponibilidad y har aumentar el costo de
comunicaciones (Hasse & Henrich,1995).
Si se dispone de una red parcialmente conectada hay enlaces directos
entre algunos nodos. Por tanto, costo de instalacin es menor a una
red totalmente conectada, pero los mensajes entre dos nodos sin conexin
directa deben rutearse a travs de una secuencia de enlaces de
-
33
comunicaciones, aumentando su costo. Si fallara un enlace de
comunicaciones, habra que volver a rutear los mensajes que se
deberan transmitir por ese enlace. En algunos casos es posible encontrar
otro camino por la red, de manera que los mensajes pueden alcanzar su
destino. En otras situaciones, el fallo puede ocasionar que se produzca una
divisin de la red, cuando no se encuentra un camino alternativo para enviar
el mensaje. La divisin de la red produce situaciones de fallo delicadas que
en algunos casos, como el protocolo de compromiso de tres fases, puede
llevar a inconvenientes para preservar la integridad de la informacin en la
BDD (Skeen, 1991).
Para que un sistema distribuido sea robusto debe detectar los
fallos, volver a configurar el sistema para que el proceso de transacciones
pueda continuar y recuperarse cuando se repare el enlace (nodo) fallado.
Los diferentes tipos de fallo se tratan de manera diferente. La prdida
de mensajes se trata mediante la retransmisin. La retransmisin reiterada
de un mensaje por un enlace, sin que se reciba un acuse de recibo, es
sntoma de fallo del enlace. La red suele intentar encontrar una ruta
alternativa para el mensaje. El fallo en encontrar esta ruta puede ser
sntoma de divisin de la red. No es posible, por lo general, diferenciar entre
fallo de un emplazamiento y divisin de la red. El sistema puede detectar el
fallo pero no identificar su tipo.
Una vez detectada una situacin anmala (fallo) el sistema debe
reconfigurarse para poder continuar de un modo normal su
funcionamiento. Para ello existen una serie de acciones:
-
34
Si se han guardado datos replicados en el nodo que no responde, hay
que actualizar el diccionario de datos distribuidos para que
cualquier transaccin generada no acceda a dicho nodo para buscar
informacin de esa copia.
Si estaban activas transacciones generadas en esa localidad hay
que abortarlas, para ello existen los protocolos de compromiso que se
describirn en la seccin siguiente.
Si el nodo cado actuara como servidor central de algn tipo de
operacin, se deber seleccionar un nuevo servidor alternativo. Si bien
anteriormente
se discuti que en un entorno distribuido no debe existir sitios centrales,
algunas operaciones temporales requieren de su existencia. Ms
adelante se discutirn estas situaciones y su solucin.
Luego, la recuperacin del nodo y su reingreso al sistema distribuido
tambin requiere una serie de acciones. Estas incluyen actualizar los
diccionarios distribuidos para que el nodo pueda ser nuevamente accedido,
y actualizar la copia de la BD para que reflejen los cambios realizados
mientras estaba sin conexin.
2.3 GLOSARIO DE TRMINOS BSICOS Adaptacin. Habilidad de un sistema para mantener su estructura, proceso
y funciones particulares, cuando se enfrenta a cambios en el medio.
Administracin. Gestin de recursos para un mejor aprovechamiento de
los mismos.
-
35
Algoritmo. Un procedimiento por pasos, que en un determinado nmero
de ellos produce l ptimo.
Anlisis. Separacin y distincin de las partes de un todo hasta llegar
a conocer sus principios constitutivos.
Bases de datos. Sistema formado por un conjunto de datos almacenados
en memorias de almacenamiento masivo que permiten el acceso directo a
esos datos y un conjunto de programas que manipulan ese conjunto de datos.
Bit. Unidad mnima de transmisin de datos, empleada principalmente
en referencia a mdems o comunicaciones de red.
Byte. Unidad de informacin, compuesta de 8 bits consecutivos. Cada byte
puede representar, por ejemplo, una letra.
Cdigo pseudoaleatorio. Seal con propiedades similares a las del
ruido pseudoaleatorio. Es un patrn complicado pero repetido de unos y
ceros.
Comunicacin. Intercambio de informacin que fluye de forma
multidireccional segn el tamao del grupo. Es la transduccin que existe
entre dos sistemas o un sistema y un subsistema o un sistema concreto y
uno abstracto, o modelo, en un proceso ciberntico.
Consulta. Mtodo para acceder a los datos en las bases de datos.
Datos. Representacin simblica (numrica, alfabtica, algortmica etc.), un
atributo o una caracterstica de una entidad.
Digitalizacin. Convertir una representacin analgica en una
-
36
representacin digital, directamente manejable por una computadora.
Estructura. Arquitectura estable en las relaciones entre subsistemas y
sistemas.
Protocolo. Proceso de sincronizacin de intercambio de informacin en una
secuencia lgica.
Red. Proceso de comunicacin permanente, abierto y dinmico en paralelo,
en forma de retcula con relaciones redundantes.
Sistema. Es una reunin o conjunto de elementos relacionados con un
objetivo comn. "Es una unin de partes o componentes, conectados en una
forma organizada". "Las partes se afectan por estar en el sistema y se
cambian si lo dejan". "La unin de las partes hace algo". Un sistema puede
existir realmente como un agregado natural de partes componentes
encontradas en la naturaleza.
-
37
CAPITULO III
METODOLOGA
3.1 TIPO Y DISEO DE INVESTIGACIN
3.1.1 TIPO DE INVESTIGACIN
Para definir los alcances de esta investigacin, es necesario
saber primero que existen diferentes tipos de investigacin, segn
Hernndez, Fernndez & Baptista (2014) enfoca la investigacin hacia 4
tipos que son exploratorios, descriptivos, correlacinales y explicativos.
De acuerdo con las caractersticas, objetivos de la investigacin ser
de tipo explicativo, ya que tenemos que realizar un anlisis comparativo
entre las bases de datos relacionales con bases de datos no relacionales.
3.1.2 DISEO DE INVESTIGACIN
De acuerdo con Hernndez, Fernndez & Baptista (2014), existen dos
tipos de diseos: la investigacin experimental y la investigacin no experimental.
De acuerdo al inters de esta investigacin ser de tipo no
experimental, ya que observamos todo los factores en su ambiente de trabajo
natural, sin afectar ninguna variable.
-
38
3.2 MTODO
Dentro de las bases de datos relacionales y no relacionales existen dos
grupos los cuales son: las gratuitas y las que necesitan el pago de
licenciamiento para funcionar. Para cumplir con los objetivos de la presente
investigacin se opt por utilizar las bases de datos que son gratuitas de
cdigo no propietario, lo que permite descargarlas y hacer uso de la
funciones sin ningn costo.
Se emplear el mtodo analtico pues se har un anlisis de las
ventajas y desventajas de Software MongoDB, MySQL y PostgreSQL.
Para lograr el objetivo final de este trabajo de investigacin, el cual es
identificar una alternativa viable NoSQL, es necesario un conocimiento
suficiente de informacin tanto de bases de datos de este tipo SQL, as
como los requisitos y sus necesidades
3.3 UNIDAD DE ANLISIS
El estudio y el desarrollo del presente proyecto se realizaron sobre el
producto de Software MongoDB, MySQL y PostgreSQL para cumplir con los
objetivos de la presente investigacin.
-
39
CAPITULO IV
RESULTADOS Y DISCUSIONES
4.1 ANLISIS DE BASE DE DATOS RELACIONALES
En la actualidad, las bases de datos relacionales se han proyectado a
ser una de las herramientas ms difundidas, las cuales permiten almacenar,
manipular y recuperar informacin de diversos campos.
Las bases de datos relacionales es una base de datos que cumple con
el modelo relacional, el cual es el modelo ms utilizado en la actualidad para
implementar bases de datos ya planificadas. Permiten establecer
interconexiones (relaciones) entre los datos (que estn guardados en tablas),
y a travs de dichas conexiones relacionar los datos de ambas tablas.
4.1.1 TIPOS DE SISTEMA DE GESTIN DE BASE DE DATOS
Existen dos sistemas de gestin de base de datos: sistemas de gestin
propietarios y sistemas de cdigo abierto.
Entre los sistemas de gestin propietarios tenemos:
Oracle
Microsoft SQL Server
DB2, etc.
-
40
Entre los sistemas de gestin de cdigo abierto tenemos:
MySQL
Postgres
Firebird
SQLite,etc
4.1.2 CARACTERSTICAS DE BASE DE DATOS RELACIONAL
Una Base de Datos se compone de varias tablas o relaciones.
No pueden existir dos tablas con el mismo nombre ni registro.
Cada tabla es a su vez un conjunto de registros (filas y columnas).
La relacin entre una tabla padre y un hijo se lleva a cabo por medio de
las claves primarias y ajenas (o forneas).
Las claves primarias son la clave principal de un registro dentro de
una tabla y stas deben cumplir con la integridad de datos.
Las claves ajenas se colocan en la tabla hija, contienen el mismo valor
que la clave primaria del registro padre; por medio de stas se hacen las
formas relacionales
4.1.3 VENTAJAS Y DESVENTAJAS
4.1.3.1 VENTAJAS
Provee herramientas que garantizan evitar la duplicidad de registros.
Garantiza la integridad referencial, as, al eliminar un registro elimina
todos los registros relacionados dependientes.
Favorece la normalizacin por ser ms comprensible y aplicable.
-
41
4.1.3.2 DESVENTAJAS
Presentan deficiencias con datos grficos, multimedia, CAD y sistemas
de informacin geogrfica.
No se manipulan de forma manejable los bloques de texto como tipo
de dato.
Las bases de datos orientadas a objetos (BDOO) se propusieron con el
objetivo de satisfacer las necesidades de las aplicaciones anteriores y
as, complementar pero no sustituir a las bases de datos relacionales.
4.1.4 DISEO DE LAS BASES DE DATOS RELACIONALES
El primer paso para crear una base de datos, es planificar el tipo de
informacin que se quiere almacenar en la misma, teniendo en cuenta dos
aspectos: la informacin disponible y la informacin que necesitamos.
La planificacin de la estructura de la base de datos, en particular de
las tablas, es vital para la gestin efectiva de la misma. El diseo de la
estructura de una tabla consiste en una descripcin de cada uno de los
campos que componen el registro y los valores o datos que contendr cada
uno de esos campos.
Los campos son los distintos tipos de datos que componen la tabla, por
ejemplo: nombre, apellido, domicilio. La definicin de un campo requiere: el
nombre del campo, el tipo de campo, el ancho del campo, etc.
Los registros constituyen la informacin que va contenida en los
campos de la tabla, por ejemplo: el nombre del paciente, el apellido del
paciente y la direccin de este. Generalmente los diferentes tipos de campos
-
42
que se pueden almacenar son los siguientes: Texto (caracteres), Numrico
(nmeros), Fecha / Hora, Lgico (informaciones lgicas si/no, verdadero/falso,
etc.), imgenes.
En resumen, el principal aspecto a tener en cuenta durante el diseo de
una tabla es determinar claramente los campos necesarios, definirlos en
forma adecuada con un nombre especificando su tipo y su longitud.
4.2 ANLISIS DE BASE DE DATOS NO RELACIONALES
Las bases de datos NoSQL son sistemas de almacenamiento de
informacin que no cumplen con el esquema entidad-relacin al que todos
nos acostumbramos desde las primeras bases de datos. Mientras que las
tradicionales bases de datos relacionales basan su funcionamiento en tablas,
joins y transacciones ACID, las bases de datos NoSQL no imponen
una estructura de datos en forma de tablas y relaciones entre ellas (no
imponen un esquema pre-fijado de tablas), en ese sentido son ms flexibles,
ya que suelen permitir almacenar informacin en otros formatos como clave-
valor (similar a tablas Hash), Mapeo de columnas, Documentos o grafos.
Adems de la carencia de un esquema predeterminado, la
principal caracterstica de las bases de datos NoSQL es que estn pensadas
para manipular enormes cantidades de informacin de manera muy rpida.
Para ello suelen almacenar toda la informacin que pueden en memoria
(utilizando el disco como una mera herramienta de persistencia), y estn
preparadas para escalar horizontalmente sin perder rendimiento. Suelen
funcionar bastante bien en hardware de bajo coste (PCs normales y
corrientes), y permiten el escalado horizontal aadiendo nuevas mquinas
-
43
en caliente (idealmente sin necesidad de reinicio del sistema).
4.2.1 PORQUE UTILIZAR BASE DE DATOS NOSQL
Si se pretende desarrollar una aplicacin que requiera la
lectura/escritura de cantidades enormes de datos y que pueda dar
servicio a millones de usuarios sin perder rendimiento, entonces debemos
plantearnos el uso de una base de datos NoSQL. Las grandes redes
sociales como Facebook y twitter o el propio Google las utilizan como medio
fundamental de almacenamiento de informacin.
Se puede utilizar una base de datos NoSQL para almacenar toda
la informacin de una aplicacin, aunque la mayora de los casos se recurre
a sistemas mixtos que combinan los clsicos sistemas relacionales
(fcilmente manipulables e interrogables con el lenguaje SQL) con soluciones
NoSQL para aquellas funcionalidades que requieren millones de consultas e
tiempo real.
4.2.2 EJEMPLOS DE BASES DE DATOS NOSQL
Cassandra fue desarrollada por Facebook para su sistema de
mensajera, y posteriormente donado a la fundacin Apache (a finales del
2010 Facebook paso a utilizar HBase sobre Hadoop). Otro ejemplo de base
de datos NoSQL de clave-valor que est adquiriendo muy buena fama es
Redis2.
MongoDB es de las ms conocidas bases de datos orientadas a
documentos, y Neo4J las ms popular orientada a grafos.
-
44
4.2.3 POR QU APARECEN LOS SISTEMAS NOSQL
Primero debemos aclarar que las bases de datos relacionales no tienen
nada de malo, es ms, vale la pena mencionar que con el avance de
la tecnologa patrocinada por las grandes empresas que se dedican a las
bases de datos como Oracle, Microsoft, IBM, Informix, etc. Se han
desarrollado tcnicas para escalar sus productos en funcin a la demanda y
uso al que son sometidas dichas implementaciones. Entre las ms
populares para la web estn MySql, PostgreSQL, Oracle, etc.
2
Redis es un coleccin de datos estructurados
-
45
Una vez mencionado lo anterior podemos analizar la evolucin que la
web ha sufrido. El factor determinante en la evolucin de la web es el
propsito que se le ha dado a la misma, por ejemplo:
Web 2.03 (Enfocado a lo social). Software como Servicio2 (Relacionado con los servicios en la nube o
cloud computing).
Estos dos trminos son los que definen las aplicaciones web de hoy en
da. Una combinacin de las dos ha dado origen a un nuevo negocio los
startups, su forma de funcionamiento podramos resumirla de la siguiente
manera: los desarrolladores crean ideas que facilitan la vida a los usuarios y
los ofrecen como servicios web muchas veces gratuitos, para luego una vez
que tengan una base de usuarios aceptable implementar un modelo de
negocio basado en la publicidad, etc. Un ejemplo de esto puede ser
Facebook que adems de la publicidad hace tambin negocio con las
aplicaciones, por ejemplo City Ville. Podemos citar tambin a Twitter,
FourSquare como claros ejemplos. Tambin se valen de otros modelos de
negocio como los denominamos servicios web freemium, a los que nos
suscribimos generalmente de forma gratuita y luego tenemos la posibilidad
de contratar adicionales al servicio gratuito por los que si tenemos que pagar,
por ejemplo Dropbox (sistema de almacenamiento online) ofrece su servicio
de almacenamiento gratuito hasta 2GB y si deseamos ms espacio
debemos pagar una cuota anual. De esta manera podemos comprender que
las aplicaciones web se han convertido en un negocio rentable, para el
que necesitamos simplemente buenas ideas.
3 WEB 2.0: es un trmino asociado con aplicaciones web que facilitan el compartir informacin y la colaboracin en la web. Ejemplos los servicios de red social, las wikis, blogs, etc
-
46
Una vez entendido lo explicado anteriormente es necesario observar la
popularidad que dichos servicios han ido obteniendo, hay algunas ideas que
tienen xito y llegan a tener miles o incluso millones de suscripciones, y
otros que no llegan a un nivel considerable de usuarios. El que nos interesa
estudiar es el primer caso, donde dichos servicios o aplicaciones web
comenzaron a popularizarse y a crecer en nmero de usuarios llegando
hasta millones, las empresas enfrentaron nuevos desafos para mantener la
calidad del servicio. Uno de estos retos es la escalabilidad, si bien los
modelos relacionales se pueden adaptar para hacerlos escalar incluso en los
entornos ms difciles, s que es cierto que, a menudo, se hacen cada vez
menos intuitivos a medida que aumenta la complejidad. Triples y cudruples
JOINs en consultas SQL, a veces poco eficientes, y sistemas de
almacenamiento de resultados en cachs para acelerar la resolucin de
las peticiones y evitar ejecutar cada vez estas pesadas operaciones, son
el pan de cada da en muchos de estos proyectos de software.
Por este motivo principalmente es que las empresas de gran nivel como
Facebook, Google, Amazon han creado proyectos aplicando tecnologas de
base de datos alternativas a las tradicionales relacionales. Han prestado
principal atencin a las bases de datos documentales y clave/valor; y, en
base a estas han creado sus motores de almacenamiento como por ejemplo:
Google cre BigTable, Facebook cre Cassandra, Amazon cre Dynamo,
etc. Luego de desarrollar dichos proyectos la mayor parte de empresas han
liberado el cdigo de sus creaciones como software open Source, el mismo
que ha ido mejorado por comunidades de desarrollo y empresas particulares
que venden soporte y asesoramiento en el desarrollo de aplicaciones que
-
47
usen dichas bases de datos.
De esta manera los sistemas NoSQL surgen como una nueva
alternativa (basada en tecnologa ya existente: bases de datos
clave/valor y documentales) para solventar estos problemas proponiendo
una estructura de almacenamiento ms verstil, aunque sea a costa de
perder ciertas funcionalidades como las transacciones que engloban
operaciones en ms de una coleccin de datos, o la incapacidad de ejecutar
el producto cartesiano de dos tablas (tambin llamado JOIN) teniendo que
recurrir a la desnormalizacin de datos.
Vale la pena recalcar que las bases de datos NoSQL no buscan
reemplazar a las bases de datos tradicionales; es ms, la mayor parte de
empresas que usan NoSQL han desarrollado aplicaciones hbridas que
usan en conjunto bases de datos tradicionales y NoSQL en un mismo
ecosistema. Es por este motivo que los ingenieros de la herramienta en
estudio MongoDB publicaron lo que han llamado la filosofa de MongoDB
que se expresa en la frase Using the Right Tool for the Right Job, estas
palabras quieren decir: usando la herramienta indicada para el trabajo
indicado. Estas palabras dejan claro que las bases de datos NoSQL no han
surgido como reemplazo a las bases de datos relacionales, sino como una
herramienta ms a considerar cuando desarrollemos un proyecto, es decir
que en ciertos escenarios ser mejor usar una base de datos tradicional, en
otros ser mejor una combinacin de bases de datos NoSQL con bases de
datos tradicionales, y por supuesto habrn casos en los que podamos usar
bases de datos NoSQL solas.
-
48
4.3 PRUEBA DE RENDIMIENTO BASE DE DATOS NOSQL
DOCUMENTAL VERSUS SQL RELACIONAL
4.3.1 DEFINICIN DE AMBIENTE DE PRUEBA
Todas las pruebas se realizaran bajo las mismas condiciones de
hardware, tiempo, estructuracin bsica y disponibilidad de recursos, esto
con la finalidad de no proporcionar ninguna clase de ventaja o desventaja a
cualquiera de las bases de datos sometidas a la prueba.
La prueba en los distintos escenarios se realizara con las siguientes
especificaciones tcnicas del sistema operativo y software para la
simulacin de las consultas a las bases de datos por parte de los usuarios:
Sistema Windows 7 en la versin Ultimate
Procesador Intel Core i3
Memoria RAM de 1024 MB
Disco duro con capacidad de 30 GB
El software Jakarta-Jmeter utilizado en la versin 2,4 para realizar las
prueba de estrs, para las distintas bases de datos, dicha aplicacin de
software cuenta con la posibilidad de realizar pruebas a cualquier base de datos
que soporte conexiones ODBC.
A continuacin se presenta el cuadro 1 con el resumen de los aspectos y
caractersticas ms importantes de la primera base de datos relacional
sometida a las pruebas de rendimiento.
-
49
Cuadro 1 Especificaciones tcnicas base de datos PostgreSQL
Caractersticas Soporte
Versin 9,1,4
Tipo Relacional
ACID Si
Tamao mximo de la base de datos Ilimitado
Tamao mximo de la tabla 32 TB
Tamao mximo de campo 1 GB
Cantidad mxima de columnas por tabla 250- 1600 (dependiendo del tipo)
Sistemas operativos Linux y Unix, Mac OS X y Windows 32/64 bit Fuente: PostgreSQL. http://www.postgresql.org.es/sobre_postgresql.
En el cuadro 2 se presenta un resumen de los aspectos y
caractersticas de la primera base de datos NoSQL Sometida a las pruebas de
rendimiento.
Cuadro 2 Especificaciones tcnicas base de datos MongoDB
Caracterstica Soporte
Versin 10gen
Tipo NoSQL documental
ACID No
Tamao mximo de la base de datos Ilimitado
Tamao mximo del nodo 3 TB
Cantidad mxima de nodos Ilimitado
Tamao mximo de documentos por nodo 12 millones
Sistemas operativos Linux y Unix, Mac OS X y Windows 32/64 bit Fuente: PostgreSQL. http://www.10gen.com/use-case/high-volume-data-feeds.
En el cuadro 3 contiene los aspectos tcnicos de la segunda base
de datos relacional sometida a las pruebas de rendimiento.
Cuadro 3 Especificaciones tcnicas base de datos MySQL Caracterstica Soporte
Versin 5,5,24
Tipo Relacional ACID Si
Tamao mximo de la base de datos Ilimitado
Tamao mximo del nodo 2 TB
Cantidad mxima de nodos 1 GB
Tamao mximo de documentos por tabla 1- 15(dependiendo del tipo)
Sistemas operativos Linux y Unix, Mac OS X y Windows 32/64 bit
Fuente: PostgreSQL http://dev.mysql.com/doc/refman/5.0/es/table-size.html.
-
50
4.3.1.1 DEFINICIN DE ESCENARIOS DE PRUEBA
Las especificaciones de los escenarios de prueba se detallan en el cuadro 4:
Cuadro 4
Especificaciones de escenarios Especificaciones Escenario 1 Escenario 2
Duracin 10 min. 10 min.
Descripcin
Simulacin de 10 000 usuarios realizando 100 inserciones a la base de datos cada 15 seg.
Simulacin de 100 000 usuarios realizando 100 inserciones a la base de datos cada 15 seg.
Polticas de insercin
Consultas a una tabla para las bases de datos relacionales y a una coleccin en el caso de la base de datos NoSQL.
Consultas a una tabla para las bases de datos relacionales y a una coleccin en el caso de la base de datos NoSQL.
Fuente: Elaboracin Propia
La estructura utilizada en todas las bases de datos sometidas a
las pruebas de rendimiento se describe en el cuadro 5:
Cuadro 5 Estructura de la tabla/coleccin para los escenarios
PUBLICACIN
Nombre (char)
Nickname (char)
Texto (text) Fuente: Elaboracin Propia
4.3.1.2 VARIABLES A EVALUAR
En el cuadro 6 se enumeran las variables internas de salida y entrada
de las cuales se tiene control y mediante ellas se realizan los respectivos
anlisis para determinar el rendimiento de las distintas bases de datos
en los escenarios descritos con anterioridad.
-
51
Cuadro 6 Variables para evaluacin
Tipo de variable Variables
Internas de entrada
Tiempo entre inserciones
Cantidad de inserciones
Tiempo total de inserciones
Internas de salida
Tiempo de respuesta
Consumo de recursos
Porcentaje de fallo
Disponibilidad Fuente: elaboracin propia.
El anlisis de rendimiento se basar nicamente en las variables
internas de salida.
A continuacin se describirn brevemente las variables que
formarn parte del anlisis de rendimiento de las distintas bases de datos.
Tiempo de respuesta: es el tiempo medio que la base de datos tarda en
realizar el total de inserciones solicitadas.
Consumo de recursos: es el porcentaje de uso de CPU, memoria RAM,
uso de procesador y espacio en disco utilizado durante las
inserciones a la base de datos.
Porcentaje de fallo: medicin del porcentaje de inserciones exitosas y de
inserciones fallidas a la base de datos.
Disponibilidad: porcentaje de accesos exitosos y fallidos a la base de
datos.
4.3.2 ANLISIS COMPRATIVO POSTGRESQL, MYSQL Y
MONGODB 10GEN
Las pruebas realizadas a las bases de datos consisten en la insercin
masiva y concurrente de datos durante 10 minutos, a continuacin se
muestran, describen y analizan los resultados obtenidos en los diversos escenarios.
-
52
4.3.2.1 TIEMPOS DE RESPUESTAS
El tiempo de respuesta hace referencia al lapso de tiempo para realizar la
insercin de un registro dentro de la base de datos. En el cuadro 7 se listan los
resultados de inserciones obtenidos en las tres bases de datos para el escenario 1.
Cuadro 7 Tiempos de insercin escenario N 1
Parmetros PostgreSQL MySQL MongoDB
Total de accesos 501 517 199 959 760 120
Intentos de inserciones cada 15 seg. 100 100 100
Tiempo medio por insercin (ms.) 212 1640 107 Fuente: elaboracin propia.
A continuacin se presenta en el cuadro 8, con los resultados
obtenidos en las pruebas de insercin de las tres bases de datos en
escenario 2.
Cuadro 8 Tiempos de insercin escenario N 2
Parmetros PostgreSQL MySQL MongoDB
Total de accesos 281 132 236 779 895 003
Intentos de inserciones cada 15 seg. 1 000 1 000 1 000
Tiempo medio por insercin (ms.) 6 280 16 460 121 Fuente: elaboracin propia.
De acuerdo a los resultados obtenidos en las pruebas de los dos
escenarios se observa que las bases de datos relacionales insertan menos
datos que la base de datos NoSQL, esto se debe a que el tiempo medio de
insercin por dato es ms elevado en las primeras con respecto a la base de
datos NoSQL documental.
4.3.2.2 CONSUMO DE RECURSOS
Durante el tiempo que se realizaron las pruebas de los distintos
escenarios en todo momento se monitoriz el estado de los recursos
del computador, en el cual se encontraban las bases de datos, a continuacin se
muestran los resultados obtenidos correspondientes al consumo de recursos del
computador por parte de las bases de datos.
-
53
En el cuadro 9 se presenta un resumen del porcentaje de recursos
consumidos durante el escenario 1 por las bases de datos sometidas a las
pruebas.
Cuadro 9 Consumo de recursos escenario N 1
Recurso PostgreSQL MySQL MongoDB
Archivo de paginacin 22,25% 18,41% 12,21%
Disco fsico 20,50% 55,13% 15,62%
Procesador 69,64% 72,55% 23,79%
Memoria RAM 48,31% 43,39% 20,92% Fuente: elaboracin propia.
Los resultados porcentuales del uso del recurso de paginacin por
cada una de las bases de datos sometidas a las pruebas del escenario 1 se
pueden observar en la figura 2.
Figura 2 Paginacin escenario N 1
Fuente: elaboracin propia.
Como se observa, el uso de paginacin por parte de las bases de datos
relacionales es relativamente bajo, pero a pesar de eso presentan un
consumo mayor con respecto a la base de datos NoSQL documental.
-
54
Se debe considerar que a mayor porcentaje de consumo de recursos se
incurre en un menor rendimiento del equipo.
En la figura 3 se observan los porcentajes de utilizacin de disco duro o
acceso al mismo, por parte de las bases de datos sometidas a las pruebas
del escenario 1.
Figura 3 Acceso a disco fsico en escenario N 1
Fuente: elaboracin propia.
El mayor porcentaje de acceso a disco fsico lo realiza el DBMS MySQL
con un 55 %, lo cual representa una carga para el sistema y por
consiguiente un bajo rendimiento del equipo.
El porcentaje de uso de procesador que realiz cada una de las bases
de datos durante la realizacin de las pruebas del escenario 1 se
encuentra representada de forma grfica en la figura 4.
-
55
Figura 4 Uso de procesador en escenario N 1
Fuente: elaboracin propia.
Uno de los recursos ms importantes que afectan el rendimiento
del equipo es el consumo de procesador, por consiguiente una aplicacin
que consume menos recursos de procesamiento es ms favorable que una
que consume la mayor parte del procesador.
El uso de procesador, por parte de PostgreSQL y de
MySQL es notablemente elevado, representando ms del 50 % de la
capacidad de procesamiento, por lo consiguiente reducen en gran manera