TESIS WILLY E. QUISPE ACCHA.pdf

85
UNIVERSIDAD NACIONAL DEL ALTIPLANO ESCUELA DE POSTGRADO PROGRAMA DE MAESTRIA MAESTRÍA EN INFORMÁTICA TESIS MÉTRICAS DE PERFORMANCE EN ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS EN INTERNETPRESENTADA POR: WILLY ENRIQUE QUISPE ACCHA PARA OPTAR EL GRADO ACADÉMICO DE: MAGISTER SCIENTIAE EN INFORMÁTICA MENCIÓN EN INGENIERÍA DE SOFTWARE PUNO, PERU 2014

description

TESIS WILLY E. QUISPE ACCHA.pdf

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