Documentos de Académico
Documentos de Profesional
Documentos de Cultura
5- Concepto NewSQL
6- Recursos y lecturas
1 - Conociendo las bases de datos
1.2 - Características
1.3 - Ventajas
SGBD - explorer.exe
(Software para gestionar los datos)
Base de datos - BD
(conjunto de datos)
Características de una sistema gestor de bases de datos
- Independencia de los datos con los programas y procesos. Esto permite modificar los
datos sin tener que modificar el código de las aplicaciones.
- Acceso eficiente a los datos. Más fácil, cómodo y rápido al estar bien organizados.
- Ayudan a mantener una baja redundancia en los datos. Solo los buenos diseños de BD
tienen poca redundancia lo cual también implica menor espacio de almacenamiento.
Problemas al diseñar y trabajar con BD
- El mantenimiento es difícil/costoso.
- La documentación es limitada.
● Entidades
● Atributos
● Relaciones entre entidades
Ejemplo de modelo entidad - relación
Relaciones
(1,N)
fecha
realiza Pedido importe
Atributos impuestos
nombre
dirección Cliente Entidad
teléfono (N,M)
contiene
nombre
precio Producto
cantidad
Cada relación del modelo de datos será una tabla cuyos campos (columnas)
serán los atributos. Otros modelos lógicos son Codasyl y Jerárquico.
Diseño lógico: tipos de diseños del modelo relacional
● Ideal para el análisis pero ocupa más espacio (redundancia en los contenidos).
Relación (claves)
Tipo de datos
Estructura (tablas)
Los diseños pueden llegar a ser complejos
MySQL Workbench para facilitar el diseño de BD relacionales
Metodología de diseño de bases de datos
3.3 - Limitaciones
Base de datos relacional
Inicio Inicio
Lectura Lectura
Escritura 2 Escritura 2
guardar guardar
Realidad actual
2. Hay que ofrecer mecanismos para coordinar las diferentes bases de datos
distribuidas y ser conscientes de sus limitaciones (CAP).
Data warehouse
...
NoSQL
Bases de datos operativas SGBD especializados. Más de 200
posibilidades
MySQLpara adaptarse a cada
Oracle
operatividad (http://nosql-database.org)
Teorema CAP
Es imposible garantizar en un sistema distribuido simultáneamente
(C)onsistencia, (A)Disponibilidad y (P)Tolerancia a partición.
Partición
El sistema siempre devuelve información aunque es posible
Disponibilidad que eventualmente ésta no sea la más actualizada.
El sistema proporciona servicio a
pesar de posibles fallos en nodos
Triángulo NoSQL cuando hay partición (sistemas distribuidos)
Tolerancia a
particiones
(P)
Disponibilidad Consistencia
(A) (C)
AP: el sistema siempre está disponible, CP: el sistema siempre contiene una visión consistente de los
aunque temporalmente puede mostrar datos inconsistentes datos, aunque no esté totalmente disponible en presencia de
particiones.
Teorema CAP
Tolerancia a
Disponibilidad
particiones
(A)
(P)
NoSQL (AP)
Riak
Cassandra
CouchDB
ACID vs BASE
Teorema CAP
Eric Brewer
(2000)
Modelo Modelo
ACID BASE
Gracias al almacenamiento distribuido y replicado,
(B)asically podemos concluir que siempre estará disponible aún
(A)tomicidad
(A)vailable cuando ocurran fallos. Una parte, al menos, podrá estar
accesible.
(D)urabilidad
NoSQL vs Relacional
Relacional NoSQL
Teorema CAP
Escalabilidad
Balanceo de cargas
Relacional
NoSQL
Relacional
vs
NoSQL
Funcionalidades a valorar en una base de datos
Misma bases de datos para todos los proyectos Diferentes bases de datos para diferentes proyectos
Ventajas Inconvenientes
Trabaja eficientemente con gran cantidad de datos Poco tiempo en el mercado si lo comparamos con las
(además de diferentes tipos y muy flexibles) relacionales (+30 años)
Funcionan en máquinas con pocos recursos (distribuido) Falta de estandarización (muchos tipos y sin un estándar
definido como las relacionales)
SQL vs NoSQL
SQL NoSQL
Es el único lenguaje de consulta de las relacionales Pueden tener diversos lenguajes de consulta (flexibilidad)
Utilizan tablas como modelo de almacenamiento Utilizan diversos formatos de almacenamiento (JSON,
XML, grafos, etc)
Las operaciones JOIN son muy comunes No se suelen hacer operaciones JOIN
Conclusión
Relacional NoSQL
Rígido Flexible
Estable Escalable
Los líderes tecnológicos
● Twitter utiliza Hbase. También cuenta con FlockDB, su propia base de datos
asociada a grafos.
Mezcla de bases de datos
Arquitectura de Twitter
Forocoches
● No utilizar JOINS.
● No crear ni utilizar esquemas de datos.
● Realizar búsquedas solo por clave primaria o índice.
● No usar índices autoincrementales. Mejor un GUID.
● No usar transacciones a nivel de BD (hacerlo en código).
● Almacenar objetos JSON (o similar).
● No utilizar funcionalidades avanzadas (disparadores, vistas, etc).
Lo realmente importante
Trabajamos con tipos de datos flexibles y diversos (documentos, grafos, objetos, etc).
Afianzando conceptos
¿Qué debemos usar si... Solución
NoSQL
No todas las carreteras están hechas para correr
Tipos de bases de datos NoSQL según su modelo (cómo se almacenan los datos)
● Clave - Valor
● Documental
● Columnas
● Grafos
Tipos de bases de datos NoSQL
Operaciones
Clave - Valor
Tamaño de la base de datos
Columnas
Documental
Grafos
Relacionales
Características Ventajas
Cada elemento es un par clave/valor. Almacena en JSON o Ideal para E/S con grandes cantidades
BLOB (objeto grande binario como archivos multimedia) de datos
Simple y potente. Permite trabajar con gran cantidad de datos en Buen rendimiento en operaciones en
operaciones sencillas. tiempo real (streaming)
Dentro del valor de cada clave podemos incluir lo que queramos. No hay
un patrón establecido.
Clave Valor
2 [Nombre: Rex]
Redis
Características Ventajas
Orientado a lectura pero no ofrece JOINS Trabajan bien con gran cantidad de datos
Cassandra
Características Ventajas
Parte de Clave - Valor (misma velocidad) pero con Similares a BD relacionales que almacenan
una mayor flexibilidad gracias a los datos semi objetos como PostgreSQL, DB2, MS SQL Server u
estructurados (acceso a través de los documentos, Oracle.
definición de índices, etc)
MongoDB
CouchDB
Características Ventajas
Se basan en nodos y sus relaciones (aristas). Facilita los problemas que se resuelven con grafos
Podemos consultar ambos.
Eficiente navegación a través de las relaciones Gran tiempo de respuesta al navegar entre
relaciones (no se necesitan JOINS)
No funciona bien con consultas genéricas Sin esquema de datos (implícito en su estructura)
Madrid Pienso
Come
Vive en
Pastor
Tiene Alemán
Emilio Raquel
Primo de
Grafos
Neo4j
Características Ventajas
Difícilmente escalables
Db4o, ObjectStore
Multidimensionales
Características Ventajas
Almacenar Almacenar
CAP Propiedades
AP CP ACID Disponibilidad