Sei sulla pagina 1di 36

SQL

NoSQL
Preguntas

SQL vs NOSQL
Solo puede quedar uno?

Antonio Fernndez Ares y Vicente Ruiz Rodrguez


!Barralibrecamp

10 de junio de 2010

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

ndice

SQL
El modelo relacional
Conceptos Bsicos
SQL
NoSQL
Introduccin
Las ventajas
Un ejemplo: Cassandra
Preguntas

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Definicin
Modelo relacional
El modelo relacional para la gestin de una base de
datos es un modelo de datos basado en la lgica de
predicados y en la teora de conjuntos.
Es el modelo ms utilizado en la actualidad para
modelar problemas reales y administrar datos
dinmicamente.
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 Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Las relaciones son buenas (y lo dice un soltero...)

Su idea fundamental es el uso de


relaciones. Estas relaciones podran
considerarse en forma lgica como
conjuntos de datos llamados tuplas.
Para simplificar las cosas, podemos
pensar en cada relacin como si fuese
una tabla que est compuesta por
registros (cada fila de la tabla sera un
registro o tupla), y columnas (tambin
llamadas campos).

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Algo de historia...
Codd persegua una serie de objetivos:
Independencia fsica: El modo cmo se almacenan los datos no
debe influir en su manipulacin lgica.
Independencia lgica: Aadir, eliminar o modificar cualquier
elemento de la BD no debe repercutir en los programas y/o usuarios que
estn accediendo a subconjuntos parciales de los mismos (vistas).
Flexibilidad: Ofrecer a cada usuario los datos de la forma ms
adecuada a la correspondiente aplicacin.
Uniformidad: Las estructuras lgicas de los datos presentan un
aspecto uniforme (tablas), lo que facilita la concepcin y manipulacin
de la BD por parte de los usuarios.
Sencillez: Las caractersticas anteriores, as como unos lenguajes de
usuario muy sencillos, producen como resultado que el modelo
relacional (MR) sea fcil de comprender y de utilizar por parte del
usuario final.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Un poquito ms de historia...

Codd concedi mucha importancia al tema de la


independencia de la representacin lgica de los datos
respecto a su almacenamiento interno, que concret en
tres tipos de independencia:
de ordenacin
de indexacin
y de los caminos de acceso.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Los principales Avances


Los avances ms 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 coleccin 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.
Slida fundamentacin terica: Al estar el modelo definido con
rigor matemtico, el diseo y la evaluacin del mismo puede
realizarse por mtodos sistemticos 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
estn almacenados.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Y nuestro amigo Codd bes el santo...


Las ventajas citadas han contribuido a que
desde mediados de los aos 80, el MR sea
utilizado por prcticamente la totalidad de los
SGBD comerciales.
Este xito se refleja en:
Algunas de las principales empresas informticas 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 diseados para PCs y usuarios no
expertos: Microsoft Access, Filemaker, etc.
El tremendo xito real del MR ha supuesto que el cambio
tecnolgico a la siguiente generacin est siendo evolutivo y no
revolucionario: Triunfan los SGBD Objeto-Relacionales, y
Fracasan, en general, los SGBD de Objetos puros.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Conceptos bsicos I (Las tablitas)


Tabla
El modelo relacional proporciona una manera simple de
representar los datos: una tabla bidimensinal llamada
relacin.
Nombre
The big bang theory
HOUSE M.D
Dexter
How I Met Your Mother

Ao
2007
2004
2006
2005

Temporadas
3
6
4
5

Episodios
63
132
48
112

Por ejemplo, la relacin Series tiene la intencin de manejar la


informacin de las instancias de la entidad Series. Cada rengln
corresponde a una entidad Series y cada columna corresponde a uno
de los atributos de la entiudad. Sin embargo, las relaciones pueden
representar ms que entidades.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Conceptos Bsicos II (Atributos y Esquemas)


Atributos
Los atributos son las columnas de una relacin y
describen caractersticas particulares de ella.
Esquemas
Es el nombre que se le da a una relacin y el conjunto de
atributos en ella. En un modelo relacin, un diseo
consiste de uno o ms 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 Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Conceptos Bsicos III (Tuplas y Dominios)

Tuplas
Cada uno de los renglones en una relacin 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
atmico, es decir, que no sea divisible, no se puede
pensar en un atributo como un "registro" o "estructura"
de datos.

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

El modelo Relacional muy bien... pero y SQL?


Los orgenes del SQL estn 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 clculo de
predicados.
Basndose en estas ideas, los laboratorios de IBM definen el
lenguaje SEQUEL (Structured English QUEry Language) que
ms tarde sera ampliamente implementado por el SGBD
(Sistemas Gestores de Bases de Datos) experimental System R,
desarrollado en 1977 tambin por IBM.
Sin embargo, fue Oracle quien lo introdujo por primera vez en
1979 en un programa comercial.
El SEQUEL terminara siendo el predecesor de SQL. SQL pasa a
ser el lenguaje por excelencia de los diversos SGBD relacionales
surgidos en los aos siguientes y es por fin estandarizado en
1986 por el ANSI, dando lugar a la primera versin estndar de
este lenguaje, el "SQL-86" o "SQL1". Al ao siguiente este
estndar es tambin adoptado por la ISO.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

SQL2

Sin embargo, este primer estndar no cubre todas las


necesidades de los desarrolladores e incluye funcionalidades de
definicin de almacenamiento que se consideraron suprimir. As
que en 1992 se lanza un nuevo estndar ampliado y revisado del
SQL llamado "SQL-92" o "SQL2".
En la actualidad el SQL es el estndar de facto de la inmensa
mayora de los SGBD comerciales y libres. Y, aunque la
diversidad de aadidos particulares que incluyen las distintas
implementaciones comerciales del lenguaje es amplia, el soporte
al estndar SQL-92 es general y muy amplio.

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Caractersitcas 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 terica y su
orientacin al manejo de conjuntos de registros, y no a registros
individuales, permite una alta productividad en codificacin y la
orientacin a objetos. De esta forma una sola sentencia puede
equivaler a uno o ms programas que se utilizaran en un
lenguaje de bajo nivel orientado a registros.

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

La optimizacin
Como ya se dijo arriba, y suele ser comn 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
cmo conseguirlo, por lo que una sentencia no establece
explcitamente un orden de ejecucin.
El orden de ejecucin interno de una sentencia puede afectar
gravemente a la eficiencia del SGBD, por lo que se hace
necesario que ste lleve a cabo una optimizacin antes de su
ejecucin. Muchas veces, el uso de ndices acelera una
instruccin de consulta, pero ralentiza la actualizacin de los
datos. Dependiendo del uso de la aplicacin, se priorizar el
acceso indexado o una rpida actualizacin de la informacin.
La optimizacin difiere sensiblemente en cada motor de base de
datos y depende de muchos factores.

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Lenguaje de Definicin de datos (LDD)

Lenguaje de Definicin de datos (LDD)


El lenguaje de definicin de datos (en ingls Data
Definition Language, o DDL), es el que se encarga de la
modificacin de la estructura de los objetos de la base de
datos.
Existen cuatro operaciones bsicas:
CREATE
ALTER
DROP
TRUNCATE

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Lenguaje de Manipulacin de datos (LMD)


Lenguaje de Manipulacin de datos (LMD)
Un lenguaje de manipulacin de datos (Data
Manipulation Language, o DML en ingls) es un lenguaje
proporcionado por el sistema de gestin de base de datos
que permite a los usuarios llevar a cabo las tareas de
consulta o manipulacin de los datos, organizados por el
modelo de datos adecuado.
El lenguaje de manipulacin de datos ms popular hoy
da es SQL, usado para recuperar y manipular datos en
una base de datos relacional. Operaciones bsicas:
INSERT
UPDATE
DELETE
SELECT
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

El modelo relacional
Conceptos Bsicos
SQL

Disparadores
Los desencadenantes, tambin conocidos
como disparadores, (triggers en ingls)
son definidos sobre la tabla en la que
opera la sentencia INSERT, los
desencadenantes son evaluados en el
contexto de la operacin.
Desencadenantes BEFORE INSERT
permiten la modificacin 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
auditora.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

N O SQL

SQL
NoSQL
Preguntas

Introduccin
Las ventajas
Un ejemplo: Cassandra

NoSQL
NoSQL es un trmino usado en informtica para agrupar
una serie de almacenes de datos no relacionales que no
proporcionan garantas ACID. Normalmente no tienen
esquemas fijos de tablas ni sentencias "join".

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Introduccin
Las ventajas
Un ejemplo: Cassandra

NoSQL
El trmino NOSQL fue acuado 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
cdigo abierto.
El nombre intenta describir la emergencia de un
nmero creciente de bases de datos no relacionales y
distribuidas que no suelen proveer garantias ACID.
El trmino hace referencia a la manera de llamar a
las bases de datos relacionales clsicas como
MySQL, MS SQL, PostgreSQL, etc.

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Introduccin
Las ventajas
Un ejemplo: Cassandra

Las ventajas I

Pueden manejar enormes cantidades de datos: esto es


debido a su propia estructura distribuida. Por ejemplo,
HyperTable, una implementacin de cdigo abierto basada en
BigTable (de Google), puede escribir 1000 millones de celdas de
datos por da. Al igual que BigTable, con MapReduce, es capaz
de manejar 20 petabytes diarios.
Se ejecutan en clusters de mquinas baratas: estos
sistemas no requieren de apenas computacin, en comparacin
con los sitemas gestores de base de datos tradicionales y
basados en SQL, por lo que se pueden montar en mquinas de
un coste ms reducido y en mayor nmero, gracias a su nivel de
escalabilidad.

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Introduccin
Las ventajas
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, adems
de un nivel de ejecucin ms concreto para poderse llevar a
cabo, por lo que constituye un punto de entrada comn, 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 lnea realizar una cantidad interna
de operaciones desorbitada.

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Introduccin
Las ventajas
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 Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Introduccin
Las ventajas
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 tamao lmite.
Una instancia de Cassandra tiene una tabla que se
constituye de una o ms 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 dinmica y no hay lmite
en cuanto al nmero que pueden ser almacenados
en una familia de columnas.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Introduccin
Las ventajas
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
construccin que tiene un nombre y un nmero
infinito de columnas asociadas a la misma.

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Introduccin
Las ventajas
Un ejemplo: Cassandra

Cassandra III
Cuenta con caractersticas muy interesantes:
Est diseado 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 ms complejos que
slamente clave-valor.
Los datos son automticamente replicados a
diferentes nodos.
Elasticidad: nuevos nodos pueden ser agregados
fcilmente a un cluster en ejecucin.
Soporte para versiones y resolucin de conflictos.
Las lecturas y escrituras estn garantizadas para ser
atmicas.
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Pregunta I

Pregunta I
SQL es un estandar conocido por gran cantidad de
desarrolladores, adems de que la gran cantidad de
bases de datos relacionales de cdigo abierto lo usan.
Qu puede ofrecer un modelo NoSQL para prestar
un servicio ms consistente y productivo a los
desarrolladores?
Qu beneficios puede ofrecer no utilizar un modelo
NoSQL para el desarrollo?

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Pregunta II

Pregunta II

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Pregunta III
Pregunta III
Las bases de datos SQL se presentan en muchos
productos de cdigo abierto y adems son ofrecidas
mediante LAMP. Tambin 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 utilizacin de un modelo no relacional ser
ms beneficioso para el da a da de la gente que la
utilizacin de un modelo SQL?
Qu productos no funcionan con las tecnologas
no-sql?
Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Pregunta IV

Pregunta IV

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Pregunta V
Pregunta V
La mayora de las bases de datos cumplen la funcin de almacn de
datos o data warehouse. En definitiva lo que se quiere es contener
datos que son necesarios o tiles para una organizacin para
posteriormente transformarlos en informacin til para el usuario. El
almacen de datos debe de entregar la informacin correcta, en el
momento ptimo y en el formato adecuado. Adems, dar respuestas a
las necesidades de usuarios expertos que pueden utilizar Sistemas de
Soporte a Decisiones, Sistemas de informacin 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 Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Pregunta VI

Pregunta V
SQL es un estandar conocido por gran cantidad de
desarrolladores, adems de que la gran cantidad de
bases de datos relacionales de cdigo abierto lo usan.
Qu puede ofrecer un modelo NoSQL para prestar
un servicio ms consistente y productivo a los
desarrolladores?
Qu beneficios puede ofrecer no utilizar un modelo
NoSQL para el desarrollo?

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

SQL
NoSQL
Preguntas

Preguntas del pblicos

Ahora os toca a vosotros hacer preguntas...

Antonio Fernndez Ares y Vicente Ruiz Rodrguez

SQL vs NOSQL

Y por ahora hemos terminado

Potrebbero piacerti anche