You are on page 1of 19

Facultad de Ingeniera

de Sistemas e
Informtica- UNMSM

BASE DE DATOS NO
RELACIONAL
Base de Datos - Laboratorio

Profesor: Eduardo P. Vilca


Integrantes:

CHUMBIRAY TAPIA, Juan

13200149

GUERRERO QUIJANO, Gerson Alexander 13200158

ROQUE IGREDA, Anthony Jhonathan

13200037

VILCHEZ NOE, Ayrton Ray

13200191

Cuesta Gomez, Julyo Andre

06200166

E.A.P. Ingeniera de Sistemas


CICLO: 2016-II

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.

2.-Base de Datos Relacionales


2.1 Origen
La aparicin del modelo relacional para las bases de datos estuvo precedida por la
existencia de las variantes jerrquicas y de red, las cuales permitan almacenar
estructuras de datos tales como listas y rboles.
En el caso de la primera variante se trata de un sistema de gestin de bases de datos
que almacena la informacin en una estructura jerrquica que enlaza los registros en
forma de estructura de rbol, donde un nodo padre de informacin puede tener varios
nodos hijo. Esta relacin jerrquica no es estrictamente obligatoria, de manera que
pueden establecerse relaciones entre nodos hermanos. En este caso especfico la
estructura en forma de rbol se convierte en una estructura en forma de grafo dirigido,
convirtindose entonces en un sistema del tipo de red antes mencionado. En la
segunda, una estructura de base de datos de red, abarca ms que la estructura de rbol
debido a que un nodo hijo en la estructura puede tener ms de un nodo padre.

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.

2.3 Ventajas de una Base de Datos relacional

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.

2.4 Desventajas de una Base de Datos relacional

Las atomicidades de las operaciones juegan un papel crucial en el rendimiento de


las bases de datos.
Escalabilidad, que, aunque probada en muchos entornos productivos suele, por
norma, ser inferior a las bases de datos NoSQL.

3 Base de Datos no relacionales


3.1 Origen
La respuesta a la necesidad de gestionar volmenes masivos de informacin surge de
la base de datos NoSQL, trmino acuado a finales de los 90 y que engloba todas las
tecnologas de almacenamiento estructurado que no cumplen el esquema relacional.
La cantidad de informacin 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 informacin, que deben ser de alto
rendimiento, escalables y distribuidas. Aunque esta tecnologa surgi de unas
necesidades muy concretas, su difusin y algunos proyectos para encapsular sus
funcionalidades y hacerlas ms amigables a desarrolladores acostumbrados a SQL est
provocando que tambin se usen en proyectos de pequeo tamao, con lo que todo
indica que a medio plazo convivirn con las bases de datos tradicionales
independientemente del volumen de datos a gestionar.

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

almacenar informacin en aquellas situaciones en las que las bases de datos


relacionales generan ciertos problemas debido principalmente a problemas de
escalabilidad y rendimiento de las bases de datos relacionales donde se dan cita miles
de usuarios concurrentes y con millones de consultas diarias.
Adems de lo comentado anteriormente, las bases de datos NoSQL son sistemas de
almacenamiento de informacin que no cumplen con el esquema entidadrelacin.
Tampoco utilizan una estructura de datos en forma de tabla donde se van almacenando
los datos, sino que para el almacenamiento hacen uso de otros formatos como clave
valor, mapeo de columnas o grafos.

3.3 Tipos de Base de Datos NoSQL


Dependiendo de la forma en la que almacenen la informacin, nos podemos encontrar
varios tipos distintos de bases de datos NoSQL. Los tipos ms utilizados.
1.- Bases de datos clave valor

Son el modelo de base de datos NoSQL ms popular, adems de ser la ms sencilla en


cuanto a funcionalidad. En este tipo de sistema, cada elemento est identificado por una
llave nica, lo que permite la recuperacin de la informacin de forma muy rpida,
informacin que habitualmente est almacenada como un objeto binario. Se
caracterizan por ser muy eficientes tanto para las lecturas como para las escrituras.
Algunos ejemplos de este tipo son Cassandra, BigTable o HBase.

2.- Bases de datos documentales

Este tipo almacena la informacin como un documento, generalmente utilizando para


ello una estructura simple como JSON o XML y donde se utiliza una clave nica para
cada registro. Este tipo de implementacin permite, adems de realizar bsquedas por
clavevalor, realizar consultas ms avanzadas sobre el contenido del documento.
Son las bases de datos NoSQL ms verstiles. Se pueden utilizar en gran cantidad de
proyectos, incluyendo muchos que tradicionalmente funcionaran sobre bases de datos
relacionales.
Algunos ejemplos de este tipo son MongoDB o CouchDB.
3.- Bases de datos en grafo

En este tipo de bases de datos, la informacin se representa como nodos de un grafo y


sus relaciones con las aristas del mismo, de manera que se puede hacer uso de la teora
de grafos para recorrerla. Para sacar el mximo rendimiento a este tipo de bases de
datos, su estructura debe estar totalmente normalizada, de forma que cada tabla tenga
una sola columna y cada relacin dos.
Este tipo de bases de datos ofrece una navegacin ms eficiente entre relaciones que
en un modelo relacional.
Algunos ejemplos de este tipo son Neo4j, InfoGrid o Virtuoso.

4.- Bases de datos orientadas a objetos


En este tipo, la informacin se representa mediante objetos, de la misma forma que
son representados en los lenguajes de programacin orientada a objetos (POO) como
ocurre en JAVA, C# o Visual Basic .NET.
Algunos ejemplos de este tipo de bases de datos son Zope, Gemstone o Db4o.

3.4 Ejemplo de Base de Datos NoSQL


Veamos a continuacin algunos tipos de bases NoSQL ms utilizadas actualmente.
1.- Cassandra

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

3.5 Ventajas de una Base de Datos NoSQL

La escalabilidad y su carcter descentralizado. Soportan estructuras distribuidas.

Suelen ser bases de datos mucho ms abiertos y flexibles. Permiten adaptarse a


necesidades de proyectos mucho ms fcilmente que los modelos de Entidad
Relacin.

Se pueden hacer cambios de los esquemas sin tener que parar bases de datos.

Escalabilidad horizontal: son capaces de crecer en nmero de mquinas, en lugar


de tener que residir en grandes mquinas.

Se pueden ejecutar en mquinas con pocos recursos.

Optimizacin de consultas en base de datos para grandes cantidades de datos.

3.6 Desventajas de una Base de Datos NoSQL

No todas las bases de datos NoSQL contemplan la atomicidad de las instrucciones


y la integridad de los datos. Soportan lo que se llama consistencia eventual.

Problemas de compatibilidad entre instrucciones SQL. Las nuevas bases de datos


utilizan sus propias caractersticas en el lenguaje de consulta y no son 100%
compatibles con el SQL de las bases de datos relacionales. El soporte a problemas
con las queries de trabajo en una base de datos NoSQL es ms complicado.

Falta de estandarizacin. Hay muchas bases de datos NoSQL y an no hay un


estndar como si lo hay en las bases de datos relacionales. Se presume un futuro
incierto en estas bases de datos.

Soporte multiplataforma. An quedan muchas mejoras en algunos sistemas para


que soporten sistemas operativos que no sean Linux.

Suelen tener herramientas de administracin no muy usables o se accede por


consola.

12

4 Consultas con MongoDB


Antes hemos hablado de MONGODB, un servidor de base de datos NoSQL.
En una consola, ejecutamos mongo.

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

Vamos a crear los primeros documentos:


dato1 = { nombre: 'Juan' };
dato2 = { edad: 34 };
Y los guardo en la coleccin amigos con save:

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

La sentencia INSERT amigos(campos) VALUES (valor) de SQL es transformada en


db.amigos.save({ campo: valor })

Ya tenemos 3 amigos, y hemos probado a insertar.

15

5 Principales Diferencias Entre SQL y NoSQL


Algunas de las diferencias ms destacables que nos podemos encontrar entre los sistemas
NoSQL y los sistemas SQL estn:

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.

No suelen permitir operaciones JOIN. Al disponer de un volumen de datos tan


extremadamente grande suele resultar deseable evitar los JOIN. Esto se debe a que,
cuando la operacin no es la bsqueda de una clave, la sobrecarga puede llegar a ser
muy costosa. Las soluciones ms directas consisten en desnormalizar los datos, o bien
realizar el JOIN mediante software, en la capa de aplicacin.

Arquitectura distribuida. Las bases de datos relacionales suelen estar centralizadas en


una nica mquina o bien en una estructura msteresclavo, sin embargo, en los casos
NoSQL la informacin puede estar compartida en varias mquinas mediante
mecanismos de tablas Hash distribuidas.

16

6 Cuando utilizar qu tipo de Base de Datos


Algunas de las razones que nos pueden llevar a decantarnos por el uso de las bases de datos
NoSQL en lugar de las clsicas SQL son:

Cuando el volumen de los datos crece muy rpidamente en momentos puntuales,


pudiendo llegar a superar el Terabyte de informacin.

Cuando la escalabilidad de la solucin relacional no es viable tanto a nivel de costes


como a nivel tcnico.

Cuando tenemos elevados picos de uso del sistema por parte de los usuarios en
mltiples ocasiones.

Cuando el esquema de la base de datos no es homogneo, es decir, cuando en cada


insercin de datos la informacin que se almacena puede tener campos distintos.

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

Bases de Datos No Relacionales (NoSQL)


Autor:
Diego Lpez-de-Ipia Gonzlez-de-Artaza
http://es.slideshare.net/dipina/nosql-cassandra-couchdb-mongodb-y-neo4j

NOSQL vs SQL. Diferencias y cuando elegir cada una


Autor:
Javier
https://blog.pandorafms.org/es/nosql-vs-sql-diferencias-y-cuando-elegir-cada-una/

Bases de datos NoSQL


Autor:
Ing Hansel Gracia del Busto, Ing Osmel Yanes Enrquez
http://revistatelematica.cujae.edu.cu/index.php/tele/article/viewFile/74/74

Bases de datos NoSQL. Qu son y tipos que nos podemos encontrar


Autor:
Acenswhitepapers
https://www.acens.com/wp-content/images/2014/02/bbdd-nosql-wp-acens.pdf

You might also like