Conceptos de NoSoloSQL
-
Upload
creatif-comunicacion-proactiva -
Category
Technology
-
view
3.405 -
download
0
description
Transcript of Conceptos de NoSoloSQL
NoSQL (y SQL): Algunas nociones
Algunas definiciones, tipos y su rol en la web moderna
NoSQL (y SQL): Algunas nociones
NoSQL (y SQL): Algunas nociones
vs.
NoSQL (y SQL): Algunas nociones
ENTERING
NoSQL (y SQL): Algunas nociones
sTRUCTURATED qUERY lANGUAGE(M.O.I. aka Ministery Of Information, Brazil 1985)
NoSQL (y SQL): Algunas nociones
SQL es un manera de construir, manipular y accesar una base de datos relacional.
Tabla Tiene columnas y filas
Relaciones Llaves primarias [keys]
( única columna o combinación de columnas) Llaves foráneas [foreign]
(una col. que referencia una llave primaria u otra tabla)Normalización
Cada tabla describe solamente una cosa nada más
NoSQL (y SQL): Algunas nociones
Data Types Cada columna debe tener un tipo de data válida
Los tipos de datos están (parcialmente) estandarizados. Por ej: Numeric, Decimal, Float, Char, Varchar, Text, etc.
Create Tables/ Alter Tables Define / Modifica la estructura de la tabla
Limitadores son usados para forzar data válida en las columnas NOT NULL / CHECK / PRIMARY KEY
UNIQUE / FOREIGN KEY (especifica una relaciuón entre tablas)Hay índices (Indexes) (como una tabla virtual con punteros a una tabla física) Modificar data INSERT / UPDATE /DELETE
Transacciones Un set de instrucciones INSERT, DELETE, UPDATE que pertenecen a una unidad lógica de trabajo
NoSQL (y SQL): Algunas nociones
Joins
Los (joins) son usados para combinar información demúltiples tablas. Pueden ser INNER o OUTER Joins.
Set operatorsOperaciones con tablas o partes de ellas...
Inner Join [Left] Outer Join
UNION EXCEPT INTERSECT
etc, etc...
NoSQL (y SQL): Algunas nociones
Usando SQL en la WebPara hacer un sitio que utilice una base de datos SQL nos hará falta: * un programa de base de datos tipo RDBMS (P.ej, MS Access, SQL Server, MySQL) * Un lenguaje de programación server-side tal como PHP o ASP * SQL * HTML / CSS
RDBMS es la sigla de Relational Database Manage-ment System.RDBMS es la base de SQL y de todos los sistemas modernos de base de datos, como MS SQL Server, IBM DB2, Oracle, MySQL, y Microsoft Access.Los datos en RDBMS se guardan en objetos de la base de datos llamados tablas.Las tablas son colecciones de entradas de datos relacionadas y consiste en columnas y filas.
NoSQL (y SQL): Algunas nociones
Ejemplo de una Condición WHERE en SQL:Dada una tabla llamada “Personas”
P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger
Sólo seleccionamos las personas de la ciudad SandnesDebemos usar entonces el siguiente comando SELECT :SELECT * FROM PersonasWHERE City='Sandnes'
El resultado que arrojará será algo parecido a esto.
P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes
NoSQL (y SQL): Algunas nociones
...entering:
(or Harry Tuttle [aka De Niro] , Brazil 1985)
NoSQL (y SQL): Algunas nociones
Una definición (o dos):
Otra forma es definirlo por lo que quiere decir No :
“cualquier base de datos que NO es relacional”El término se acuñó en un encuentro con los creadores de algunas importantes/emergentes bases de datos“Bases de datos No-Relacionales” hubiera sido más correcto, ... pero era un bocado!...luego hubo una conferencia, una lista de correo, ... el nombre prendió, hubieron más conferencias...
... y aquí estamos!
NoSQL (y SQL): Algunas nociones
Una definición (o dos):
NoSQL es un concepto genérico usado para descri-bir almacenamiento estructurado que no necesita de apoyarse en SQL para ser accesado de manera útil”“NoSQL is a blanket term used to describestructured storage that doesn’t rely on SQLto be accessed in a useful way”.
Chris Lea
“NoSQL” NO significa que “SQL es MALO”... sino simplemente Not Only SQL (No sólo SQL)
NoSQL (y SQL): Algunas nociones
Peeero.. si [My]SQL hace lo que necesito, para qué necesito otra cosa??
RDBMS NoSQL
Diseñado paracargas genéricas(workloads)
Diseñado pararesolver problemasespecíficos
Grandes (y cadavez más grandes)sets de funciones
Cambia funcionespor perfomance
NoSQL (y SQL): Algunas nociones
Escalab. horizontalmás servidores creanmás capacidad
Transparente a la aplicaciónla lógica de negociación dela aplicaciónse debe separarde temas de escalado de recursos de servidor
No hay un sólo punto de falla:No UN solo servidor, que si secae, cause un fuera de serviciode la aplicación
Los sistemas NoSQL típicamenteNO hacen trasacciones ni JOIN´s• si realmente necesita transacciones, manténgase al lado de RDBMS•no tener joins termina por no tener grandes efectos
Cuál es el foco del NoSQL?..más que modelos de datos, es la escalabilidad:
NoSQL (y SQL): Algunas nociones
Porqué .. AHORA??
Tamaño de los Datos (Data Size)
Conectividad (Conectedness)
Semi-Estructuras
Arquitectura (de las bases de datos)
NoSQL (y SQL): Algunas nociones
2006 2007 2008 2009 2010
0
250
500
750
1000
397
ExaBytes (10 ) de datos almacenados por año) de datos almacenados por año
Fuente: IDC 2007
161253
397
623
988
Tamaño de los Datos (Data Size)
Cada año se crea más data digital En dos años hemos creado más datos digitales que toda los datos creados en la historia antes de ello.
NoSQL (y SQL): Algunas nociones
Conectividad (Conectedness)
Text documents
1990
Cone
ctiv
idad
de
la in
form
ació
n
FolksonomiesTagging
User-generated
content
Wikis
RSS
Blogs
Hypertext
2000 2010 2020
web 1.0 web 2.0
Ontologies
RDF
GiantGlobal
Graph (GGG)
A lo largo del tiempo la dataha evolucionado y se ha vueltomás interenlazada y conectada.El hipertexto tiene links,Los blogs tienen pingbacks,Grupos de etiquetas de datos relacionados...
NoSQL (y SQL): Algunas nociones
Individualización de contenido:En las listas de salarios de los 70´s todos los el-ementos tenían UN solo trabajo.En las listas del 2000, necesitamos 5 columnas de trabajo! O bien 8? O 15...?Todo busca “visiones enteras del mundo”Se almacena más data de cada entidadHay una tendencia acelerada a la desentra-lización de la generación de contenido... que es la marca de la Edad de la Participación (o de la web 2.0)
Semi- Estructura
NoSQL (y SQL): Algunas nociones
Arquitectura (de las bases de datos)
DB
Application80´s: Aplicacionestipo “MainFrame”
DB
Application
90´s: Base de datos como centro integrador
Application Application
DBDB DB
Application
2000´s: (y al futuro) Servicios desconectadoscon sus propios back-ends
Application Application
NoSQL (y SQL): Algunas nociones
Y de qué gustos viene?
NoSQL (y SQL): Algunas nociones
CUATRO categorías emergentes:
NoSQL (y SQL): Algunas nociones
Hace foco en escalar grandes cantidades de dataDiseñado para manejar cargas masivasBasado en DynamoPaper de AmazonModelo de datos: Colección (global) de pares de llaves-valor (key-value)Replicación y partición basado en un anillo Dynamo
Ejemplos:•Dynomite•Voldemort•Tokyo{Tyrant, Cabinet, etc...}
Key-Value (Llaves-Valor)
NoSQL (y SQL): Algunas nociones
Como si fuera “como DB Relacionales orientadas a co-lumnas”, pero con un giro extraTablas similares a las RDBMS, pero que manejan datos semiestructuradosBasados en “BigTable” de GoogleModelo de datos: Columnas Familias de cols. ACL Datos marcados por: fila, col, tiempo e index Rango de filas: tablet distribución
Ejemplos:•HBase•Hypertable•Cassandra (Facebook, Twitter, Digg...)
Big Table (clones) (o Column Stores)
NoSQL (y SQL): Algunas nociones
Similares a los de almacenamiento por valor-Llave, pero en este caso la DB sabe cuál es el Valor.Similar to Key-Value stores, but the DB knows what the Inspirado en Lotus NotesModelo de datos: Colecciones de colecciones de Llave-Valor ( Key-Value)Los documentos son bastante versionados/replicados
Ejemplos:•CouchDB•MongoDB•Redis•JackRabbit
Document Databases
NoSQL (y SQL): Algunas nociones
Se enfocan en modelar la estructura datos-interconectividadSe escala a la complejidad de los datosInspirado por la Teoría Grafo-matemática ( G=(E,V) )Modelo de datos: “grafo de propiedad” NodosRelaciones/ Bordes entre Nodos (primera clase)Pares Llave-valor en ambosPosibilidad de etiquetas de Borde y/o Tiposde Nodo/Borde.
Ejemplos:•Neo4j•AllegroGraph•Sones graphDB
DataBase Gráfica (Graph DB)
QUERY
NoSQL (y SQL): Algunas nociones
Interfaces REST (HTTP como API de acceso)Otros lenguajes de consulta que el SQL•GQL - SQL-like QL para Google BigTable•SPARQL - Query language para la Web Semántica•Gremlin - Lenguaje trasnversal gráfico•Sones Graph Query LanguageAPIs de consulta•La Google BigTable DataStore API•La API transversal Neo4j
OK! No es una DB... Y COMO LA CONSULTO?
DATAHandle
NoSQL (y SQL): Algunas nociones
Otra vez, interfaces REST (http PUT, POST, DELETE)APIs de Manipulación de Datos•Google BigTable DataStore API•Neo4j GraphDatabase APIFormatos de Serialización•JSON•Thrift•ProtoBuffers•RDF
Estee... Y COMO MANIPULO LOS DATOS?
NoSQL (y SQL): Algunas nociones
Quiénes trabajan con NoSQL?(qué jugadores!)
NoSQL (y SQL): Algunas nociones
Mmm.. Y si atamos cabos?
( o sea.. SQL o NoSQL? Cuál?)
NoSQL (y SQL): Algunas nociones
(Dream is Over...Finale, Brazil 1985)
RDBMSHasta ahora , (era) la única Database.
NoSQL (y SQL): Algunas nociones
... incluso podemos usar múltiples bases de datos en conjunto, y dejar que cada una se encargue de las cosas que maneja mejor!
NoSQL (y SQL): Algunas nociones
Ahora, hay que usar el mejor envase para cada tipo de dato.
(o lo que es igual, la mejor base de datos para el problema que se presente)
38
NoSQL (y SQL): Algunas nociones
Persistencia políglota (Polyglot persistence)
DataBase
Todas las bases de datos son bienvenidas!SQL y NoSQL... No es sólo SQL!!
NoSQL (y SQL): Algunas nociones
Conclusiones:
Dos pasos adelante (pero antes uno atrás...)La era de una sola base de datos terminóUse la herramienta justa para cada trabajoLa persistencia políglota ya está en marcha, y cada vez se volverá más cotidianaResuelve varios problemas de escalabilidad:•Escalar por tamaño - grandes cantidades de datos, muchas muchas máquinas•Escalar por complejidad - maneja esquemas complicados- evita ser ”lastrado” por profundos JOINsJugado por grandes compañías y empresas in-dependientes (una dupla saludable :)
NoSQL (y SQL): Algunas nociones
Fuentes:NoSQL for Dummieshttp://slidesha.re/boJDgs
What Does NoSQL Mean for You?http://slidesha.re/bacCWC
NoSQL: An introductionhttp://slidesha.re/bBuApG
SQL Overviewhttp://slidesha.re/i7uIWJ
Images:Google Images
Brazil (1985), de Terry Gilliam. (un capo)
Mauro Ramón, para HTML5 Experiencia Web,
2011 P2PU / Profesor Dany Bautista.