Diferencias entre base de datos relacional y no relacional

  • Published on
    22-Jul-2015

  • View
    504

  • Download
    2

Transcript

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 ms utilizado en la actualidad para implementar bases de datos ya planificadas. Permiten establecer interconexiones (relaciones) entre los datos (que estn guardados en tablas), y a travs 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 Caractersticas 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 relacin entre una tabla padre y un hijo se lleva a cabo por medio de las claves primarias y ajenas (o forneas). 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 trmino NoSQL, que fue acuado en 1998, se refera a una base de datos relacional de cdigo 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 cdigo abierto no relacionales, llamndolas NOSQL, Not-Only SQL. Las caractersticas comunes entre todas las implementaciones de bases de datos distribuidas no relacionales, propietarias o no, suelen ser las siguientes: Consistencia Eventual: No se implementan mecanismos rgidos de consistencia como los presentes en las bases de datos relacionales, donde la confirmacin de un cambio implica una comunicacin 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 tambin como BASE (Basically Available Soft-state Eventual Consistency, o coherencia eventual flexible bsicamente disponible), en contraposicin a ACID, su analoga 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, segn las distintas implementaciones, de redes p2p. Escalabilidad horizontal: La implementacin tpica 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 usndolo, como por ejemplo BigTable (GQL), que lo ha transformado manteniendo su estructura bsica. Definitivamente, con el trmino 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 aos las bases de datos relacionales han gobernado el mundo de los datos. Estas, como bien sabe y ha sufrido todo estudiante de ingeniera informtica, normalizacin va normalizacin viene, se basan en el modelo relacional, aquel que el gran Codd creara en los 1970. Pero en los ltimos aos, una visin 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 recordarn que hace ya sus aos haba populares bases de datos no relacionales, como las del modelo CODASYL o las jerrquicas (mucho ms 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 aos con nuevos nombres, vuelven las bases de datos NO SQL, las no relacionales, vuelven los lenguajes funcionales, etc. Tambin aclarar en este punto que se utiliza, y yo tambin utilizar, el trmino 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-relacin, como he ledo por ah, no mezclemos). Pero no hay que olvidar que SQL es slo un lenguaje tpicamente 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 sern los nicos, y que en este tema, como en todo, no hay una nica respuesta, pero el argumento que yo ms 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 ms. Conviene decir que esto de ralentizacin aplicara cuando millones de usuarios hacen bsquedas 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 crticas, como la de la difcil correlacin, los mapeos, del modelo relacional con estructuras de datos jerrquicas, como XML, o con diseos 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 prcticamente toda estructura de datos (como las de los XML y dems) se puede mapear al sistema relacional. Hay quien se atreve a decir que el problema viene de no entender el SQL. Un Modelo de Datos No Relacional Se identifica por reunir las siguientes caractersticas: No utilizan un Modelo de Datos Relacional Estn diseados para ejecutarse de manera eficiente en Clusters Son generalmente OpenSource Carecen de esquema, lo que permite aadir 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 tambin como NoSQL. No existe una nica solucin 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 categoras principales: Orientados a Clave/Valor Orientados a Documentos Orientados a Columna Orientados a Grafos De entre estos modelos, los tres primeros comparten la caracterstica comn de estar orientados a Conjuntos (Aggregate en ingls) que se definen Como: Una coleccin de objetos o atributos relacionados bajo una clave nica, los cuales interesa tratar como una unidad lgica e independiente