Sql v snosql

6,405 views
6,294 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,405
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
201
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Sql v snosql

  1. 1. SQL NoSQL Preguntas SQL vs NOSQL ¿Solo puede quedar uno? Antonio Fernández Ares y Vicente Ruiz Rodríguez !Barralibrecamp 10 de junio de 2010 Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  2. 2. SQL NoSQL Preguntas Índice 1 SQL El modelo relacional Conceptos Básicos SQL 2 NoSQL Introducción Las ventajas Un ejemplo: Cassandra 3 Preguntas Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  3. 3. SQL
  4. 4. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Definición Modelo relacional El modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. 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. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  5. 5. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Las relaciones son buenas (y lo dice un soltero...) Su idea fundamental es el uso de «relaciones». Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados «tuplas». Para simplificar las cosas, podemos pensar en cada relación como si fuese una tabla que está compuesta por registros (cada fila de la tabla sería un registro o tupla), y columnas (también llamadas campos). Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  6. 6. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Algo de historia... Codd perseguía una serie de objetivos: Independencia física: El modo cómo se almacenan los datos no debe influir en su manipulación lógica. Independencia lógica: Añadir, eliminar o modificar cualquier elemento de la BD no debe repercutir en los programas y/o usuarios que están accediendo a subconjuntos parciales de los mismos (vistas). Flexibilidad: Ofrecer a cada usuario los datos de la forma más adecuada a la correspondiente aplicación. Uniformidad: Las estructuras lógicas de los datos presentan un aspecto uniforme (tablas), lo que facilita la concepción y manipulación de la BD por parte de los usuarios. Sencillez: Las características anteriores, así como unos lenguajes de usuario muy sencillos, producen como resultado que el modelo relacional (MR) sea fácil de comprender y de utilizar por parte del usuario final. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  7. 7. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Un poquito más de historia... Codd concedió mucha importancia al tema de la independencia de la representación lógica de los datos respecto a su almacenamiento interno, que concretó en tres tipos de independencia: de ordenación de indexación y de los caminos de acceso. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  8. 8. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Los principales Avances Los avances más importantes que el MD relacional incorpora respecto a los MD anteriores fueron: Sencillez y uniformidad: Los usuarios ven la base de datos relacional como una colección de tablas, y al ser la tabla la estructura fundamental del modelo, éste goza de una gran uniformidad, lo que unido a unos lenguajes no navegacionales y muy orientados al usuario final, da como resultado la sencillez de los sistemas relacionales. Sólida fundamentación teórica: Al estar el modelo definido con rigor matemático, el diseño y la evaluación del mismo puede realizarse por métodos sistemáticos basados en abstracciones. Independencia de la interfaz de usuario: los lenguajes relacionales, al manipular conjuntos de registros, proporcionan una gran independencia respecto a la forma en la que los datos están almacenados. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  9. 9. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Y nuestro amigo Codd besó el santo... Las ventajas citadas han contribuido a que desde mediados de los años 80, el MR sea utilizado por prácticamente la totalidad de los SGBD comerciales. Este éxito se refleja en: Algunas de las principales empresas informáticas del mundo, son en origen, empresas de SGBD: ORACLE, Sybase, INFORMIX, ... Los grandes fabricantes de software tienen “su” SGBD relacional: IBM DB2, Microsoft SQL Server, ... Existen bastantes SGBD diseñados para PC’s y usuarios no expertos: Microsoft Access, Filemaker, etc. El tremendo éxito real del MR ha supuesto que el cambio tecnológico a la siguiente generación esté siendo evolutivo y no revolucionario: Triunfan los SGBD Objeto-Relacionales, y Fracasan, en general, los SGBD de Objetos puros. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  10. 10. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Conceptos básicos I (Las tablitas) Tabla El modelo relacional proporciona una manera simple de representar los datos: una tabla bidimensinal llamada relación. Nombre Año Temporadas Episodios The big bang theory 2007 3 63 HOUSE M.D 2004 6 132 Dexter 2006 4 48 How I Met Your Mother 2005 5 112 Por ejemplo, la relación Series tiene la intención de manejar la información de las instancias de la entidad Series. Cada renglón corresponde a una entidad Series y cada columna corresponde a uno de los atributos de la entiudad. Sin embargo, las relaciones pueden representar más que entidades. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  11. 11. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Conceptos Básicos II (Atributos y Esquemas) Atributos Los atributos son las columnas de una relación y describen características particulares de ella. Esquemas Es el nombre que se le da a una relación y el conjunto de atributos en ella. En un modelo relación, un diseño consiste de uno o más esquemas, a este conjunto se le conoce como "esquema relacional de base de datos" (relational database schema) o simplemente "esquema de base de datos" (database schema) Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  12. 12. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Conceptos Básicos III (Tuplas y Dominios) Tuplas Cada uno de los renglones en una relación conteniendo valores para cada uno de los atributos. (The big bang theory, 2007, 3, 63) Dominios Se debe considerar que cada atributo (columna) debe ser atómico, es decir, que no sea divisible, no se puede pensar en un atributo como un "registro" o "estructura" de datos. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  13. 13. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL El modelo Relacional muy bien... ¿pero y SQL? Los orígenes del SQL están ligados a los de las bases de datos relacionales. Aparte del modelo, Codd propone asociado a éste un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado por el SGBD (Sistemas Gestores de Bases de Datos) experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial. El SEQUEL terminaría siendo el predecesor de SQL. SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el "SQL-86" o "SQL1". Al año siguiente este estándar es también adoptado por la ISO. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  14. 14. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL SQL2 Sin embargo, este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado "SQL-92" o "SQL2". En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales y libres. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  15. 15. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Caracterísitcas Generales SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones en éstos últimos. Es un lenguaje declarativo de "alto nivel" o "de no procedimiento", que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación y la orientación a objetos. De esta forma una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  16. 16. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL La optimización Como ya se dijo arriba, y suele ser común en los lenguajes de acceso a bases de datos de alto nivel, el SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución. El orden de ejecución interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  17. 17. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Lenguaje de Definición de datos (LDD) Lenguaje de Definición de datos (LDD) El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Existen cuatro operaciones básicas: CREATE ALTER DROP TRUNCATE Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  18. 18. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Lenguaje de Manipulación de datos (LMD) Lenguaje de Manipulación de datos (LMD) Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Operaciones básicas: INSERT UPDATE DELETE SELECT Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  19. 19. SQL El modelo relacional NoSQL Conceptos Básicos Preguntas SQL Disparadores Los desencadenantes, también conocidos como disparadores, (triggers en inglés) son definidos sobre la tabla en la que opera la sentencia INSERT, los desencadenantes son evaluados en el contexto de la operación. Desencadenantes BEFORE INSERT permiten la modificación de los valores que se insertará en la tabla. Desencadenantes AFTER INSERT no puede modificar los datos de ahora en adelante, pero se puede utilizar para iniciar acciones en otras tablas, por ejemplo para aplicar mecanismos de auditoría. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  20. 20. N O SQL
  21. 21. SQL Introducción NoSQL Las ventajas Preguntas Un ejemplo: Cassandra NoSQL NoSQL es un término usado en informática para agrupar una serie de almacenes de datos no relacionales que no proporcionan garantías ACID. Normalmente no tienen esquemas fijos de tablas ni sentencias "join". Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  22. 22. SQL Introducción NoSQL Las ventajas Preguntas Un ejemplo: Cassandra NoSQL El término NOSQL fue acuñado a principios de 2009 por un empleado de Rackspace, Eric Evans, cuando Johan Oskarsson de Last.fm quiso organizar un evento para discutir bases de datos distribuidas de código abierto. El nombre intenta describir la emergencia de un número creciente de bases de datos no relacionales y distribuidas que no suelen proveer garantias ACID. El término hace referencia a la manera de llamar a las bases de datos relacionales clásicas como MySQL, MS SQL, PostgreSQL, etc. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  23. 23. SQL Introducción NoSQL Las ventajas Preguntas Un ejemplo: Cassandra Las ventajas I Pueden manejar enormes cantidades de datos: esto es debido a su propia estructura distribuida. Por ejemplo, HyperTable, una implementación de código abierto basada en BigTable (de Google), puede escribir 1000 millones de celdas de datos por día. Al igual que BigTable, con MapReduce, es capaz de manejar 20 petabytes diarios. Se ejecutan en clusters de máquinas baratas: estos sistemas no requieren de apenas computación, en comparación con los sitemas gestores de base de datos tradicionales y basados en SQL, por lo que se pueden montar en máquinas de un coste más reducido y en mayor número, gracias a su nivel de escalabilidad. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  24. 24. SQL Introducción NoSQL Las ventajas Preguntas Un ejemplo: Cassandra Las ventajas II No generan cuellos de botella: el problema de fondo de los sistemas SQL, es que deben de transcribir cada sentencia para poder ser ejecutada y, cada sentencia compleja requiere, además de un nivel de ejecución más concreto para poderse llevar a cabo, por lo que constituye un punto de entrada común, único y conflictivo en base a rendimiento. Solo lo estrictamente necesario: son sistemas simples que no tienen un sistema de consulta complejo ni con capacidad declarativa para en una sola línea realizar una cantidad interna de operaciones desorbitada. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  25. 25. SQL Introducción NoSQL Las ventajas Preguntas Un ejemplo: Cassandra Distintos acercamientos Dentro de las bases de datos encasilladas dentro del movimiento NoSQL, existen varios acercamientos: Orientadas a documento como CouchDB o MongoDB Orientadas a grafos como Neo4j Clave/valor, como SimpleDB o Voldemort Orientadas a objetos como Db4o Tabulares como Cassandra o Hypertable Otros acercamientos como GT.M Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  26. 26. SQL Introducción NoSQL Las ventajas Preguntas Un ejemplo: Cassandra Cassandra I El modelo de datos de Cassandra es simple pero muy flexible. Cada fila se identifica con una clave única, que es un string que no tiene un tamaño límite. Una instancia de Cassandra tiene una tabla que se constituye de una o más familias de columnas definidas por el usuario. Cada familia de columnas puede contener una o dos estructuras: supercolumnas o columnas. Las dos se crean de forma dinámica y no hay límite en cuanto al número que pueden ser almacenados en una familia de columnas. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  27. 27. SQL Introducción NoSQL Las ventajas Preguntas Un ejemplo: Cassandra Cassandra II Las columnas son construcciones que tienen un nombre, un valor y un ‘timestamp’ asociado a las mismas. Se pueden almacenar tantas columnas como se quieran en una familia de columnas. Por otro lado, las supercolumnas son una construcción que tiene un nombre y un número infinito de columnas asociadas a la misma. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  28. 28. SQL Introducción NoSQL Las ventajas Preguntas Un ejemplo: Cassandra Cassandra III Cuenta con características muy interesantes: Está diseñado para estar siempre disponible. Las escrituras nunca fallan. Maneja dos diferentes tipos de lectura. Tiene un modelo de datos muy rico, permitiendo aplicaciones que manejen datos más complejos que sólamente clave-valor. Los datos son automáticamente replicados a diferentes nodos. Elasticidad: nuevos nodos pueden ser agregados fácilmente a un cluster en ejecución. Soporte para versiones y resolución de conflictos. Las lecturas y escrituras están garantizadas para ser atómicas. Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  29. 29. SQL NoSQL Preguntas Pregunta I Pregunta I SQL es un estandar conocido por gran cantidad de desarrolladores, además de que la gran cantidad de bases de datos relacionales de código abierto lo usan. ¿Qué puede ofrecer un modelo NoSQL para prestar un servicio más consistente y productivo a los desarrolladores? ¿Qué beneficios puede ofrecer no utilizar un modelo NoSQL para el desarrollo? Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  30. 30. SQL NoSQL Preguntas Pregunta II Pregunta II Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  31. 31. SQL NoSQL Preguntas Pregunta III Pregunta III Las bases de datos SQL se presentan en muchos productos de código abierto y además son ofrecidas mediante LAMP. También se suele incluir y utilizar en gran cantidad software popular de blogging, wiki, Gestores de Contenido (CMS) (como por ejemplo Wordpress, Drupal, Mediawiki,...) ¿Cuales son los productos (nuevos o propuestos) donde la utilización de un modelo no relacional será más beneficioso para el día a día de la gente que la utilización de un modelo SQL? ¿Qué productos no funcionan con las tecnologías no-sql? Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  32. 32. SQL NoSQL Preguntas Pregunta IV Pregunta IV Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  33. 33. SQL NoSQL Preguntas Pregunta V Pregunta V La mayoría de las bases de datos cumplen la función de almacén de datos o data warehouse. En definitiva lo que se quiere es contener datos que son necesarios o útiles para una organización para posteriormente transformarlos en información útil para el usuario. El almacen de datos debe de entregar la información correcta, en el momento óptimo y en el formato adecuado. Además, dar respuestas a las necesidades de usuarios expertos que pueden utilizar Sistemas de Soporte a Decisiones, Sistemas de información Ejecutiva o herramientas para hacer consultas o informes. ¿Qué tal se comporta un modelo no-sql ante un entorno de data-warehousing? ¿Y ante un sistema de alta transaccionalidad (como procesos bancarios o financieros)? Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  34. 34. SQL NoSQL Preguntas Pregunta VI Pregunta V SQL es un estandar conocido por gran cantidad de desarrolladores, además de que la gran cantidad de bases de datos relacionales de código abierto lo usan. ¿Qué puede ofrecer un modelo NoSQL para prestar un servicio más consistente y productivo a los desarrolladores? ¿Qué beneficios puede ofrecer no utilizar un modelo NoSQL para el desarrollo? Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  35. 35. SQL NoSQL Preguntas Preguntas del públicos Ahora os toca a vosotros hacer preguntas... Antonio Fernández Ares y Vicente Ruiz Rodríguez SQL vs NOSQL
  36. 36. Y por ahora hemos terminado

×