Base de Datos NoSQL PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Participantes:

Kevin Féliz Encarnación, 2019-8682


Daruwin Hernández, 2019-8056

Huáscar mejía, 2019-8773


Jairo Melo, 2019-8625
Base de datos avanzada
Profesor: Carlos Caraballo
Tema: Bases de datos NoSQL
Conceptos básicos – NoSQL
En informática, NoSQL (a veces llamado "no solo SQL") es una amplia clase de sistemas
de gestión de bases de datos que difieren del modelo clásico de SGBDR (Sistema de Gestión
de Bases de Datos Relacionales) en aspectos importantes, siendo el más destacado que no
usan SQL como lenguaje principal de consultas. Los datos almacenados no requieren estructuras
fijas como tablas, normalmente no soportan operaciones JOIN, ni garantizan
completamente ACID (atomicidad, consistencia, aislamiento y durabilidad) y habitualmente
escalan bien horizontalmente.
Los sistemas NoSQL se denominan a veces "no solo SQL" para subrayar el hecho de que
también pueden soportar lenguajes de consulta de tipo SQL.
Por lo general, los investigadores académicos se refieren a este tipo de bases de
datos como almacenamiento estructurado, término que abarca también las bases de datos
relacionales clásicas.
A menudo, las bases de datos NoSQL se clasifican según su forma de almacenar los datos, y
comprenden categorías como clave-valor, las implementaciones de BigTable, bases de datos
documentales, y bases de datos orientadas a grafos.
Los sistemas de bases de datos NoSQL crecieron con las principales redes sociales, como Google,
Amazon, Twitter y Facebook. Estas tenían que enfrentarse a desafíos con el tratamiento de datos
que las tradicionales SGBDR no solucionaban.
Con el crecimiento de la web en tiempo real existía una necesidad de proporcionar
información procesada a partir de grandes volúmenes de datos que tenían unas estructuras
horizontales más o menos similares. Estas compañías se dieron cuenta de que el rendimiento y sus
propiedades de tiempo real eran más importantes que la coherencia, en la que las bases de datos
relacionales tradicionales dedicaban una gran cantidad de tiempo de proceso
En ese sentido, a menudo, las bases de datos NoSQL están altamente optimizadas para las
operaciones recuperar y agregar, y normalmente no ofrecen mucho más que la funcionalidad de
almacenar los registros (p.ej. almacenamiento clave-valor). La pérdida de flexibilidad en tiempo de
ejecución, comparado con los sistemas SQL clásicos, se ve compensada por ganancias significativas
en escalabilidad y rendimiento cuando se trata con ciertos modelos de datos.
Diferencias entre SQL y NoSQL

SQL, bases de datos relacionales


Las bases de datos relacionales (SQL) son el tipo que más tiempo lleva en el mercado de la
tecnología y son por tanto las utilizadas en mayor medida tradicionalmente. Su composición está
hecha con bases de datos llenas de tablas con filas que contienen campos estructurados. No se
trata precisamente de un tipo de base de datos muy flexible, pero tiene a favor su gran soporte y el
enorme desarrollo en herramientas debido a todo su bagaje histórico. De hecho, es una tecnología
muy reconocida en comparación con las bases NoSQL que al ser más novedosas no tienen tanto
alcance todavía. En cambio, las bases de datos SQL necesitan más recursos como norma general,
ya que cuanto más compleja sea la base más procesamiento necesitará.
El mayor inconveniente de las SQL es probablemente el referido a la escalabilidad, que es
precisamente el que permitió el desarrollo de alternativas que desembocaron en las redes NoSQL,
ya que grandes empresas que manejan datos a gran escala con necesidad de mucha
infraestructura sufrían con este problema. A partir de ahí se desarrollaron las primeras NoSQL
cerradas creadas por empresas para su uso interno, y finalmente los sistemas de código
abierto. Algunas de sus tecnologías más conocidas son Hypertable, Cassandra, MongoDB,
DynamoDB o Redis, mientras que Oracle, Microsoft SQL Server, SQlite o MySQL son cuatro de las
más utilizadas dentro de las bases de datos SQL.

NOSQL, base de datos no relacional


La gran diferencia entre los dos tipos de bases de datos es la estructuración, que en el caso
de las NOSQL se trata de una forma de almacenamiento no estructurado, todo lo contrario, a sus
predecesoras. En este caso, son de bases de datos sin una tabla fija como las que sí se encuentran
en las bases de datos relacionales, lo que permite una alta escalabilidad en ellas. Además, es
abierta y por lo tanto flexible a diferentes tipos de datos y no necesita tantos recursos para
ejecutarse; de hecho, el hardware necesario no es de un coste muy elevado. En este sentido,
también se deja notar el menor coste a la hora de la expansión, ya que no necesitan la evolución en
hardware del equipo, sino que basta con hacer un escalado horizontal, con más máquinas en las
que distribuir la carga completa.

Por contra, un par de desventajas de las bases NoSQL, que no son perfectas, son que los
desarrolles, al implementar su propio código en pos de la fiabilidad y coherencia, es decir, al no
existir tanta estandarización, se limita el número de aplicaciones seguras para realizar
transacciones, y por otro lado, tampoco es una virtud el hecho de que sea incompatible con ellas
llevar a cabo consultas SQL, lo que hace necesario un lenguaje de consulta manual que ralentiza
los procesos de este tipo concreto.

En definitiva, lo más importante que debes saber es que las NoSQL no son un sustituto de las SQL,
sino que son una alternativa que ofrece otras posibilidades, lo que las convierte en más
interesantes para determinados casos como por ejemplo proyectos que requieren una alta
escalabilidad en en los recursos son escasos y la integridad de los datos no es lo más importante,
como sí ocurre en cambio en aplicaciones especializadas por ejemplo en transacciones bancarias.

Ventajas y desventajas de las bases de datos NoSQL


Ventajas
 Se pueden hacer cambios de los esquemas sin tener que parar bases de datos.
 Escalabilidad horizontal: son capaces de crecer en número de máquinas, en lugar de tener
que residir en grandes máquinas.
 No generan cuellos de botella.
 Podría decirse que las bases de datos NoSQL de código abierto tienen una implementación
rentable. Ya que no requieren las tarifas de licencia y pueden ejecutarse en hardware de
precio bajo.
 Cuando tenemos picos de uso del sistema por parte de los usuarios en múltiples ocasiones
o constantemente.
 Suelen ser bases de datos mucho más abiertos y flexibles. Permiten adaptarse a
necesidades de proyectos mucho más fácilmente que los modelos de Entidad Relación.
Desventajas
 Falta de estandarización. Hay muchas bases de datos NoSQL y aún no hay un estándar
como si lo hay en las bases de datos relacionales.
 Soporte multiplataforma.
 Suelen tener herramientas de administración no muy usables.
 Fiabilidad en los procesos.
 Reclutamiento de personal.
 Normalización de las tablas.
Ejemplos – términos y practica

1. MongoDB.

 Es la base de datos NoSQL líder y permite a empresas ser más agiles y escalables.
 Ha sido creada para brindar rendimiento y gran disponibilidad.
 Está orientada a documentos, los cuales son almacenados en BSON, que es una
representación binaria de JSON.
 Utilizada por empresas tales como SourceForge, foursquare, MTV, Disney, IGN, Guardian,
NYTimes, Doodle.
2. Hadoop/HBase.

 Hadoop es un framework que permite el procesamiento de grandes volúmenes de datos a


través de clusters.
 Es un sistema distribuido que utiliza una arquitectura Master-Slave, usando para
almacenar su Hadoop Distribuite File System (HDFS) y algoritmos de MapReduce para
hacer cálculos.
 HBase es la base de datos de Hadoop, la cual no admite SQL y no sigue el esquema
relacional.
 La utilizan Amazon, Adobe, AOL, Ebay, Facebook, IBM, New York Time, Microsoft, Twitter,
Yahoo.

3. Cassandra.

 Es una base de datos de código abierto cuya principal característica es que fusiona Dyname,
de Amazon con BigTable, de Google.
 Permite solventar la problemática relacionada con el rendimiento del motor de búsqueda.
 Se diseñó para que las configuraciones de explotación fuesen altamente escalables,
horizontales y económicas.
 Entre las empresas que las usan están Facebook, WebEx, Symantec, IBM, Netflix, Cisco,
Twitter.

4. Redis.

 Es un motor de base de datos en memoria, basado en el almacenamiento en hashes (clave,


valor) pero también puede ser usada como una base de datos persistente.
 Su rendimiento es mayor comparado con otros motores de base de datos.
 Algunas de las empresas que hacen uso de ellas son GitHub, the Guardian, Craigslist.

5. CouchDB.

 Es una base de datos de documentos, de código abierto, mantenido por apache igual que
cassandra.
 Es distribuida e implementa sistema de replicación y re sincronización.
 Los documentos se almacenan como un potente árbol binario mediante su identificador y
numero de secuencia, que es incremental en cada actualización.
 Utilizadas por Facebook, BBC, Credit Suisse, Meebo.
6. Riak.

 Es una base de datos Key-value de código abierto NoSQL, permitiendo prototipar, probar y
desplegar aplicaciones.
 Diseñada con alta disponibilidad, escalable y con tolerancia a fallos.
 Riak KV puede ser instalado en plataformas como Debian, Ubuntu, FreeBSD, Mac OS,
Solaris, Windows Azure, SUSE.
 Entre las empresas que la utilizan están Fortune,Basho Technologies.

Ejemplos y casos de uso de Bases de datos NoSQL


Como vemos las BBDD NoSQL gozan de múltiples funciones, marcas, tipos y
ventajas. Ahora, es momento de poner más en contexto y mostrar algunos ejemplos de su
implementación.
A modo de ejemplo utilizaremos un JSON como el que conseguirás en mongoDB.
Veamos:
Supongamos que vamos a registrar diferentes personas en una colección perteneciente a
una BBDD NoSQL con algunos campos especiales. Estos no necesariamente tienen que
seguir un patrón específico como verás a continuación:
{
Nombre: «José»,
Apellidos: «Pérez Campo»,
Edad: 35,
Aficiones: [«vino»,»libros»,»ciclismo»],
Amigos: [
{
Nombre:»María»,
Edad:22
},
{
Nombre:»Luis»,
Edad:28
}

Ahora bien, si queremos añadir a otros datos de otra persona con algunas características
diferentes la podemos hacer sin mayor problema introduciendo lo siguiente:
{ Nombre: "Luis",
Estudios: "Marketing y Publicidad",
Amigos:12
}
En un modelo relacional o SQL clásico esto sería imposible de hacer. Esta es una de las
tantas ventajas de la que hemos explicado.
Esperamos que te sea de utilidad y te aventures a profundizar en el mundo de las BBDD.

También podría gustarte