Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Diferencias entre base de datos relacional y no relacional
1. Base de datos relacional
Una Base de Datos Relacional, es una base de datos que cumple con el modelo
relacional, el cual es el modelo más utilizado en la actualidad para implementar
bases de datos ya planificadas. Permiten establecer interconexiones (relaciones)
entre los datos (que están guardados en tablas), y a través de dichas conexiones
relacionar los datos de ambas tablas, de ahí proviene su nombre: "Modelo
Relacional". Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de
los laboratorios IBM en San José (California), no tardó en consolidarse como un
nuevo paradigma en los modelos de base de datos.1
Características
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 relación entre una tabla padre y un hijo se lleva a cabo por medio de las claves
primarias y ajenas (o foráneas).
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
Base de datos no relacional (NO SQL)
Originalmente el término NoSQL, que fue acuñado en 1998, se refería a una base
de datos relacional de código abierto que no usaba un lenguaje de consultas SQL
(Structured Query Language).
Hasta 2009 estas cinco letras cayeron en el olvido, pero fue Johan Oskarsson,
entonces empleado de Last.fm, quien organizó un evento para tratar las bases de
datos distribuidas de código abierto no relacionales, llamándolas “NOSQL”, Not-
Only SQL.
Las características comunes entre todas las implementaciones de bases de datos
distribuidas no relacionales, propietarias o no, suelen ser las siguientes:
2. Consistencia Eventual: No se implementan mecanismos rígidos de
consistencia como los presentes en las bases de datos relacionales, donde
la confirmación de un cambio implica una comunicación del mismo a todos
los nodos que lo repliquen. Esta flexibilidad hace que la consistencia se dé,
eventualmente, cuando no se hayan modificado los datos durante un
periodo de tiempo. Esto se conoce también como BASE (Basically
Available Soft-state Eventual Consistency, o coherencia eventual flexible
básicamente disponible), en contraposición a ACID, su analogía en las
bases de datos relacionales.
Estructura distribuida: Generalmente se distribuyen los datos mediante
mecanismos de tablas de hash distribuidas (DHT) ya que realmente se
trata, según las distintas implementaciones, de redes p2p.
Escalabilidad horizontal: La implementación típica se realiza en muchos
nodos de capacidad de procesado limitado, en vez de utilizar grandes
Mainframes.
Tolerancia a fallos y Redundancia.
De entre todas las implementaciones de bases de datos NoSQL, hay muchas que
no utilizan el lenguaje de consultas SQL (por ejemplo, MongoDB usa JSON), pero
hay algunas que siguen usándolo, como por ejemplo BigTable (GQL), que lo ha
transformado manteniendo su estructura básica.
Definitivamente, con el término NoSQL nos referimos a una multitud de bases de
datos que intentan solventar las limitaciones que el modelo relacional se
encuentra en entornos de almacenamiento masivo de datos, y concretamente en
las que tiene en el momento de escalar, donde es necesario disponer de
servidores muy potentes y de balanceo de carga.
BASE DE DATOS NOSQL O BASES DE DATOS SQL
Desde hace ya sus muchos años las bases de datos relacionales han gobernado
el mundo de los datos. Estas, como bien sabe y ha sufrido todo estudiante de
ingeniería informática, normalización va normalización viene, se basan en el
modelo relacional, aquel que el gran Codd creara en los 1970. Pero en los últimos
años, una visión alternativa ha vuelto a ponerse de moda: las bases de datos NO
SQL (no relacionales).
Digo que las bases de datos NO SQL han vuelto porque los antiguos del lugar
recordarán que hace ya sus años había populares bases de datos no
relacionales, como las del modelo CODASYL o las jerárquicas (mucho más
antiguas que las ahora modernas MongoDB, CouchDB, BigTable, etc).
Y no puedo evitar poner aquí eleste comentario: parece que toda moda vuelve,
siempre volvemos a poner de moda cosas de hace años con nuevos nombres,
vuelven las bases de datos NO SQL, las no relacionales, vuelven los lenguajes
funcionales, etc.
3. También aclarar en este punto que se utiliza, y yo también utilizaré, el término
bases de datos NO SQL de manera poco rigurosa, cuando se dice bases de datos
NO SQL realmente lo que se intenta decir es que son BBDD que no utilizan el
modelo relacional (ojo, el modelo relacional, no que no usan el entidad-relación,
como he leído por ahí, no mezclemos). Pero no hay que olvidar que SQL es sólo
un lenguaje típicamente usado para tratar con el modelo relacional de las BBDD.
Los principales argumentos a favor de las bases de datos NO SQL,
los argumentos anti modelo relacional
Supongo que no serán los únicos, y que en este tema, como en todo, no hay una
única respuesta, pero el argumento que yo más escucho a favor de las bases de
datos NO SQL, contra las bases de datos relacionales, es el siguiente: Los “join”
de las bases de datos relacionales ralentizan el sistema. Aquí te dejo algunas
referencias con este argumento: una de slashdot, un debate en stackoverflow, y
alguna más.
Conviene decir que esto de ralentización aplicaría cuando millones de usuarios
hacen búsquedas en tablas con millones de filas, como es el caso de Google o
Amazon, que por ello desarrollaron sus propias bases de datos NO SQL.
Luego hay otras críticas, como la de la difícil correlación, los mapeos, del modelo
relacional con estructuras de datos jerárquicas, como XML, o con diseños de
clases complejos.
Los principales argumentos en contra de las bases de datos NO
SQL
Para los defensores de las bases de datos relacionales, los SGBDs potentes,
como Oracle, son lo suficientemente potentes para optimizar “joins” complejos. Y
como prueba, los bancos realizan miles de consultas, con miles de usuarios, y
sobreviven utilizando SQL.
Quien defiende el uso de bases de datos SQL, las relacionales de toda la vida,
argumentan que “es raro es que vayas a necesitar bases de datos NO SQL, no
vas a construir un Google”.
Luego hay otros argumentos, como que prácticamente toda estructura de datos
(como las de los XML y demás) se puede mapear al sistema relacional. Hay quien
se atreve a decir que el problema viene de no entender el SQL.
4. Un Modelo de Datos No Relacional
Se identifica por reunir las siguientes características:
• No utilizan un Modelo de Datos Relacional
• Están diseñados para ejecutarse de manera eficiente en Clusters
• Son generalmente OpenSource
• Carecen de esquema, lo que permite añadir campos libremente sin tener que
definir Ni modificar previamente la estructura; lo cual es muy útil cuando
trabajamos con datos no uniformes o cambiantes en el tiempo
Los modelos de datos No Relacionales, se conocen también como NoSQL.
No existe una única solución No Relacional (o NoSQL) y cada una de ellas
plantea su propio Modelo de Datos, junto con sus ventajas e inconvenientes.
Pueden dividirse en cuatro categorías principales:
• Orientados a Clave/Valor
• Orientados a Documentos
• Orientados a Columna
• Orientados a Grafos
De entre estos modelos, los tres primeros comparten la característica común de
estar orientados a ‘Conjuntos’ (‘Aggregate’ en inglés) que se definen Como: “Una
colección de objetos o atributos relacionados bajo una clave única, los cuales
interesa tratar como una unidad lógica e independiente