Professional Documents
Culture Documents
de Sistemas e
Informtica- UNMSM
BASE DE DATOS NO
RELACIONAL
Base de Datos - Laboratorio
13200149
13200037
13200191
06200166
2016
ndice
1.-INTRODUCCIN ............................................................................................................................................... 2
2.-Base de Datos Relacionales ......................................................................................................................... 3
2.1 Origen ............................................................................................................................................................ 3
2.2 Definicin ..................................................................................................................................................... 4
2.3 Ventajas de una Base de Datos relacional ...................................................................................... 5
2.4 Desventajas de una Base de Datos relacional ............................................................................... 5
3 Base de Datos no relacionales...................................................................................................................... 6
3.1 Origen ............................................................................................................................................................ 6
3.2 Definicin ..................................................................................................................................................... 6
3.3 Tipos de Base de Datos NoSQL............................................................................................................ 7
3.4 Ejemplo de Base de Datos NoSQL ...................................................................................................... 9
3.5 Ventajas de una Base de Datos NoSQL........................................................................................... 11
3.6 Desventajas de una Base de Datos NoSQL.................................................................................... 11
4 Consultas con MongoDB............................................................................................................................... 12
5 Principales Diferencias Entre SQL y NoSQL ......................................................................................... 15
6 Cuando utilizar qu tipo de Base de Datos ........................................................................................... 16
7 Conclusiones ..................................................................................................................................................... 17
8 Bibliografa ........................................................................................................................................................ 18
1.-INTRODUCCIN
En la presente existe una gran polmica alrededor del tema relacionado con la gestin de la
informacin digital que se necesita almacenar para su posterior recuperacin y anlisis por
parte de los diseadores, arquitectos y desarrolladores de aplicaciones informticas de
cualquier tipo.
Por un lado, estn los tradicionales sistemas de gestin de bases de datos relacionales
(RDBMS, por sus siglas en ingls) y por otro los prometedores sistemas de bases de datos
no relacionales y distribuidos conocidos como NoSQL (Not only SQL). Los primeros,
dueos de la mayor parte del mercado del almacenamiento de datos, con una robustez
innegable y aos de explotacin en mltiples entornos de gestin de informacin. 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.
Nosotros organizaremos el anlisis hecho para tener claro el objetivo principal del trabajo,
se definir las causas que originaron el surgimiento de los RDBMS y las ventajas y
desventajas que nos da. Luego se mostrarn 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 evolucin de los sistemas de bases
de datos NoSQL. Al final nuestras conclusiones.
Los problemas comunes que se producen en estas variantes de bases de datos son:
Duplicidad de registros:
No se garantiza la inexistencia de registros duplicados. Esto tambin 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 garanta de que un registro hijo est relacionado con un registro
padre vlido. 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 invlido o inexistente.
Desnormalizacin:
Este no es tanto un problema del modelo jerrquico como del uso que se
hace de l. Sin embargo, a diferencia del modelo relacional, las bases de datos
jerrquicas no tienen controles que impidan la desnormalizacin 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.
2.2 Definicin
Una base de datos relacional es una base de datos en donde todos los datos visibles
al usuario estn 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 coleccin de relaciones normalizadas de diversos
grados que varan con el tiempo. El modelo relacional representa un sistema de bases
de datos en un nivel de abstraccin un tanto alejado de los detalles de la mquina
subyacente. El modelo relacional puede considerarse como un lenguaje de
programacin ms bien abstracto, orientado de manera especfica hacia las
aplicaciones de bases de datos. En trminos tradicionales una relacin 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 normalizacin que los caracteriza.
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 ingeniera de software y el segundo en
principios matemticos (debido a la existencia del lgebra relacional). Por la diferencia
entre las dos tecnologas estn 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 aos ya, los especialistas en gestin de
informacin 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.
Est ms adaptado su uso y los perfiles que los conocen son mayoritarios y ms
baratos.
Debido al largo tiempo que llevan en el mercado, estas herramientas tienen un
mayor soporte y mejores suites de productos y add-ons para gestionar estas bases
de datos.
La atomicidad de las operaciones en la base de datos. Esto es, que en estas bases de
datos o se hace la operacin entera o no se hace utilizando la famosa tcnica del
rollback.
Los datos deben cumplir requisitos de integridad tanto en tipo de dato como en
compatibilidad.
3.2 Definicin
Se puede decir que la aparicin del trmino NoSQL aparece con la llegada de la web 2.0
ya que hasta ese momento slo suban contenido a la red aquellas empresas que tenan
un portal, pero con la llegada de aplicaciones como Facebook, Twitter o Youtube,
cualquier usuario poda subir contenido, provocando as un crecimiento exponencial
de los datos.
Es en este momento cuando empiezan a aparecer los primeros problemas de la gestin
de toda esa informacin almacenada en bases de datos relacionales. En un principio,
para solucionar estos problemas de accesibilidad, las empresas optaron por utilizar un
mayor nmero de mquinas, pero pronto se dieron cuenta de que esto no solucionaba
el problema, adems de ser una solucin muy cara. La otra solucin era la creacin de
sistemas pensados para un uso especfico que con el paso del tiempo han dado lugar a
soluciones robustas, apareciendo as el movimiento NoSQL.
Por lo tanto, hablar de bases de datos NoSQL es hablar de estructuras que nos permiten
Se trata de una base de datos creada por Apache del tipo clavevalor.
Dispone de un lenguaje propio para realizar consultas CQL (Cassandra Query
Language). Cassandra es una aplicacin Java por lo que puede correr en cualquier
plataforma que cuente con la JVM.
2.- Redis
Se trata de una base de datos creada por Salvatore Sanfilippo y Pieter Noordhuis y est
apoyado por VMWare. Se trata de una base de datos del tipo clavevalor. Se puede
imaginar como un array gigante en memoria para almacenar datos, datos que pueden
ser cadenas, hashes, conjuntos de datos o listas.
10
Tiene la ventaja de que sus operaciones son atmicas y persistentes. Por ponerle una
pega, Redis no permite realizar consultas, slo se puede insertar y obtener datos,
adems de las operaciones comunes sobre conjuntos (diferencia, unin e insercin).
Creado en ANSI C, por lo tanto, es compatible y funciona sin problemas en sistemas
Unix, Linux y sus derivados, Solaris, OS/X sin embargo no existe soporte oficial para
plataformas Windows.
3.- MongoDB
Se trata de una base de datos creada por 10gen del tipo orientada a documentos, de
esquema libre, es decir, que cada entrada puede tener un esquema de datos diferente
que nada tenga que ver con el resto de registros almacenados. Es bastante rpido a la
hora de ejecutar sus operaciones ya que est escrito en lenguaje C++.
Para el almacenamiento de la informacin, utiliza un sistema propio de documento
conocido con el nombre BSON, que es una evolucin del conocido JSON pero con la
peculiaridad de que puede almacenar datos binarios.
En poco tiempo, MongoDB se ha convertido en una de las bases de datos NoSQL
favoritas por los desarrolladores.
4.- CouchDB
Se trata de un sistema creado por Apache y escrito en lenguaje Erlang que funciona en
la mayora de sistemas POSIX, incluyendo GNU/LINUX y OSX, pero no as en sistemas
Windows.
Como caractersticas ms importantes cabe destacar el uso de Restfull HTTP API como
interfaz y JavaScript como principal lenguaje de interaccin. Para el almacenamiento
de los datos se utiliza archivos JSON. Permite la creacin de vistas, que son el
mecanismo que permite la combinacin de documentos para retornar valores de varios
documentos, es decir, CouchDB permite la realizacin de las operaciones JOIN tpicas de
SQL.
11
Se pueden hacer cambios de los esquemas sin tener que parar bases de datos.
12
Para ver las bases de datos que tenemos, utilizamos show dbs.
Para usar una base de datos, al igual que en MySQL, tenemos el comando use manejandodatos:
13
db.amigos.save(dato1);
db.amigos.save(dato2);
Vamos a mostrar los registros de amigos . Lo que en SQL equivaldria a SELECT * FROM amigos
se escribe db.amigos.find():
14
15
No utilizan SQL como lenguaje de consultas. La mayora de las bases de datos NoSQL
evitan utilizar este tipo de lenguaje o lo utilizan como un lenguaje de apoyo. Por poner
algunos ejemplos, Cassandra utiliza el lenguaje CQL, MongoDB utiliza JSON o BigTable
hace uso de GQL.
No utilizan estructuras fijas como tablas para el almacenamiento de los datos. Permiten
hacer uso de otros tipos de modelos de almacenamiento de informacin como sistemas
de clavevalor, objetos o grafos.
16
Cuando tenemos elevados picos de uso del sistema por parte de los usuarios en
mltiples ocasiones.
17
7 Conclusiones
Las Base de Datos NoSQL son una clara alternativa a los RDBMS, sobre todo para
algunas aplicaciones sociales y web que requieren elevada escalabilidad
La mayora de los casos las RDBMS deberan seguir siendo la primera opcin, Su
capacidad de hacer JOIN y las garantas ACID son muy importantes para muchas
aplicaciones.
Es muy posible que los RDBMS actuales evolucionen para incorpora capacidades de
NoSQL,
18
8 Bibliografa