PDF de programación - Bases de datos NoSQL

Imágen de pdf Bases de datos NoSQL

Bases de datos NoSQLgráfica de visualizaciones

Publicado el 8 de Junio del 2018
281 visualizaciones desde el 8 de Junio del 2018
378,2 KB
13 paginas
Creado hace 7a (25/02/2013)
Bases de datos NoSQL



INTRODUCCIÓN

En la actualidad existe una gran polémica alrededor del tema relacionado con la gestión de la
información digital que se necesita almacenar para su posterior recuperación y análisis por
parte de los diseñadores, arquitectos y desarrolladores de aplicaciones informáticas de
cualquier tipo. Por un lado están los tradicionales sistemas de gestión de bases de datos
relacionales (RDBMS, por sus siglas en inglés) y por otro los prometedores sistemas de bases
de datos no relacionales y distribuidos conocidos como NoSQL (Not only SQL). Los primeros,
dueños de la mayor parte del mercado del almacenamiento de datos, con una robustez
innegable y años de explotación en múltiples entornos de gestión de información. Los
segundos, emergentes y novedosos, ofrecen sin embargo una nueva forma de pensar en el
desarrollo de aplicaciones web orientadas y centradas en el usuario [1]. Se hace necesario
entonces hacer un análisis consciente de ambas variantes por parte de los especialistas en la
gestión de la información encargados de la selección de uno u otro, con el objetivo de escoger
la solución óptima al problema presentado. A esta idea en particular se pretende tributar con
el análisis que se presenta en este artículo, realizando un estudio cronológico sobre el
surgimiento y evolución hasta la actualidad de los sistemas de gestión de bases de datos para
finalmente llegar a conclusiones al respecto.

Con la intención de organizar el análisis y ganar en claridad sobre el objetivo principal del
artículo se expondrán las causas que originaron el surgimiento de los RDBMS y los problemas
que resolvieron en sus inicios. Luego se mostrarán los problemas presentados con la variante
anterior y la necesidad del surgimiento de nuevas alternativas al mismo. Finalmente se
introducen los aspectos relacionados con el nacimiento y evolución de los sistemas de bases
de datos NoSQL. Al final el escenario quedará listo para que las personas involucradas en el
proceso de selección del gestor de bases de datos a utilizar puedan juzgar en su justa medida
las conclusiones a las que se arriban.

1.

Bases de datos relacionales

1.1.

Causas de su origen

La aparición del modelo relacional para las bases de datos estuvo precedida por la existencia
de las variantes jerárquicas y de red, las cuales permitían almacenar estructuras de datos tales
como listas y árboles. En el caso de la primera variante se trata de un sistema de gestión de
bases de datos que almacena la información en una estructura jerárquica que enlaza los
registros en forma de estructura de árbol, donde un nodo padre de información puede tener
varios nodos hijo. Esta relación jerárquica no es estrictamente obligatoria, de manera que
pueden establecerse relaciones entre nodos hermanos. En este caso específico la estructura
en forma de árbol se convierte en una estructura en forma de grafo dirigido, convirtiéndose
entonces en un sistema del tipo de red antes mencionado. [2] Una estructura de base de datos

de red, en resumen, abarca más que la estructura de árbol debido a que un nodo hijo en la
estructura puede tener más de un nodo padre. [3] Ver en la fígura 1 y 2.

Figura 1. Representación de una base de datos jerárquica Figura 2. Representación de una base de
jerárquica datos



requieran para su buen

Los problemas típicos de las bases de datos jerárquicas, y en menor medida de red, derivan del
hecho de que los sistemas gestores de ambas no implementan ningún control sobre los datos,
sino que queda en manos de las aplicaciones que garantizan que se cumplan las condiciones
invariantes que se
resumen estas
implementaciones delegaban en los desarrolladores de aplicaciones la responsabilidad de
definir el mecanismo de salva y recuperación de la información contenida en los orígenes. En
la práctica todas las aplicaciones están sujetas a errores y fallos por lo que es prácticamente
imposible que no se produzcan inconsistencias a la hora de almacenar los datos en la base de
datos. Por otra parte, dichas condiciones suelen romperse ex profeso por motivos operativos
(generalmente ajustes debidos a cambios en la lógica del negocio que se está modelando) o en
busca de optimizar
la rapidez en el acceso sin evaluar de manera consciente sus
consecuencias.

funcionamiento. En

Los problemas comunes que se producen en estas variantes de bases de datos, producto de lo
anteriormente expuesto son:


Duplicidad de registros: no se garantiza la inexistencia de registros duplicados. Esto
también es cierto para los campos "clave". Es decir, no se garantiza que dos registros
cualesquiera tengan diferentes valores en un subconjunto concreto de campos.


Integridad referencial: no existe garantía de que un registro hijo esté relacionado con
un registro padre válido. Esto significa que es posible borrar un nodo padre sin eliminar antes
los nodos hijos que tiene asociados, de manera que éstos últimos quedan relacionados con un
registro inválido o inexistente.


Desnormalización: este no es tanto un problema del modelo jerárquico como del uso
que se hace de él. Sin embargo, a diferencia del modelo relacional, las bases de datos
jerárquicas no tienen controles que impidan la desnormalización de una base de datos. No
existe el concepto de campos clave o campos únicos.



En este contexto se inserta la propuesta de modelo relacional, como respuesta a estos
inconvenientes.

1.1. Definición

Una base de datos relacional es una base de datos en donde todos los datos visibles al usuario
están organizados estrictamente como tablas de valores, y en donde todas las operaciones de
la base de datos operan sobre estas tablas. Estas bases de datos son presentadas a los usuarios
como una colección de relaciones normalizadas de diversos grados que varían con el tiempo. El
modelo relacional representa un sistema de bases de datos en un nivel de abstracción un tanto
alejado de los detalles de la máquina subyacente. El modelo relacional puede considerarse
como un lenguaje de programación más bien abstracto, orientado de manera específica hacia
las aplicaciones de bases de datos. En términos tradicionales una relación se asemeja a un
archivo, una tupla a un registro, y un atributo a un campo.

Los sistemas de bases de datos relacionales pueden presentar un inconveniente asociado al
proceso de normalización que los caracteriza. Este se evidencia en el siguiente ejemplo
relacionado con una empresa comercializadora: supongamos que se cuenta con una tabla de
codificadores Producto, una tabla Clientes y una tabla Factura. La primera tabla contiene los
productos que oferta la empresa, la segunda los datos relacionados con los clientes de la
misma y la última muestra los detalles de las facturas realizadas donde se registra de manera
obligatoria el identificador del cliente que efectuó la compra y el identificador del producto
que adquirió, además de otros datos asociados a la transacción que no son requeridos en todo
momento. El problema de este diseño normalizado se presenta en el momento de actualizar
el nombre de un producto presente en múltiples facturas anteriores, a partir de ese momento
el producto con el nombre anterior desaparece de todas las facturas y no podrá ser
recuperado con su nombre inicial. Esta situación llevada a otra escala afecta a los diseñadores
de bases de datos, que se ven obligados a denormalizar los esquemas o buscar variantes de
otro tipo para sortear esta limitación. Por otra parte está el conocido problema del Object-
Relational Impedance Mismatch, el cual se produce por una incompatibilidad entre el
paradigma orientado a objetos y el relacional. El primero está basado en principios de la
ingeniería de software y el segundo en principios matemáticos (debido a la existencia del
álgebra relacional). Por la diferencia entre las dos tecnologías están son incapaces de alcanzar
un acople perfecto. Este problema obliga a los desarrolladores a buscar soluciones
alternativas, afectando así la capa de acceso a datos definida en el sistema.

Producto de lo anterior y desde hace unos años ya, los especialistas en gestión de información
digital se dieron a la tarea de buscar soluciones particulares al almacenamiento de los datos en
sus aplicaciones, donde no estuvieran atados al controvertido modelo relacional. Surgen
entonces las variantes no relacionales que no implementan el lenguaje de consultas SQL.

2.

Bases de datos NoSQL

La respuesta a la necesidad de gestionar volúmenes masivos de información surge de la base
de datos NoSQL, término acuñado a finales de los 90 y que engloba todas las tecnologías de
almacenamiento estructurado que no cumplen el esquema relacional.

La cantidad de información manejada por comunidades, redes sociales, buscadores, y muchos
otros proyectos en el ámbito de la Web 2.0 es abrumadora, lo que ha hecho que surjan nuevas
arquitecturas de almacenamiento de información, que deben ser de alto rendimiento,
escalables y distribuidas.

Aunque esta tecnología surgió de unas necesidades muy concretas, su difusión y algunos
proyectos para encapsular sus funcionalidades y hacerlas más amigables a desarrolladores
acostumbrados a SQL está provocando que también se usen en proyectos de peque
  • Links de descarga
http://lwp-l.com/pdf11686

Comentarios de: Bases de datos NoSQL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad