2. ¿Qué es una Base de datos?
Una base de datos es el conjunto de datos informativos
organizados en un mismo contexto para su uso y vinculación.
Una base de datos es una colección de información
organizada de forma que un programa de ordenador
pueda seleccionar rápidamente los fragmentos
de datos que necesite. Una base de datos es un
sistema de archivos electrónico. Las bases de
datos tradicionales se organizan por campos,
registros y archivos.
3. Base de datos tipo SQL
SQL (Lenguaje de Consulta Estructurada)
es un lenguaje declarativo de acceso
a bases de datos relacionales que permite
especificar diversos tipos de operaciones
en ellas.
4. “El SQL es el lenguaje estándar
ANSI/ISO de definición,
manipulación y control de bases de
datos relacionales. Es un lenguaje
declarativo: sólo hay que indicar
qué se quiere hacer. En cambio, en
los lenguajes procedimentales es
necesario especificar cómo hay que
hacer cualquier acción sobre la
base de datos. Por estas razones, y
como lenguaje estándar, el SQL es
un lenguaje con el que se puede
acceder a todos los sistemas
relacionales comerciales.
En la terminología usada en SQL
no se alude a las relaciones, del
mismo modo que no se usa el
término atributo, pero sí la
palabra columna, y no se habla de
tupla, sino de línea.
S Q L
5. Base de datos No SQL
Cuándo pensamos en bases de datos relacionales a
nuestra mente suelen acudir los mismos nombres. En
la parte comercial tenemos Oracle y Microsoft SQL
Server. Del lado del software libre, tenemos opciones
como Postgre SQL o MySQL. Aunque cada una tiene
sus peculiaridades, para un desarrollador no es difícil
elegir entre un sistema y otro.
Pero el problema principal que encontramos, es que
aunque todas se denominan NoSQL, en realidad hay
diferentes tipos. Dependiendo de lo que necesitemos,
deberemos decantarnos por una u otra.
6. Tipos de NoSQL
Aunque hay varias aproximaciones diferentes para
clasificar las bases de datos NoSQL, en general se
considera que existen cuatro tipos diferentes:
◉ Orientadas a documentos,
◉ Orientadas a columnas,
◉ Clave-valor
◉ Grafo.
7. Orientadas a documentos
Son aquellas que gestionan datos semi
estructurados. Es decir documentos.
Estos datos son almacenados en algún
formato estándar como puede ser XML,
JSON o BSON. Para hacernos una idea
un documento suele ser algo parecido a:
Categorias
Son las bases de datos NoSQL más
versátiles. En esta categoría
encontramos:
◉ MongoDB: probablemente la base
de datos NoSQL más famosa del
momento. Algunas compañías que
actualmente utilizan MongoDB son
Foursquare o eBay.
◉ CouchDB: es la base de datos
orientada a documentos de Apache.
Una de sus interesantes
características es que los datos son
accesibles a través de una API Rest.
Este sistema es utilizado por
compañías como Credit Suisse y la
BBC.
Bases de datos NoSQL
8. Orientadas a columnas
Este tipo de bases de datos
están pensadas para realizar
consultas y agregaciones
sobre grandes cantidades de
datos. Funcionan de forma
parecida a las bases de
datos relacionales, pero
almacenando columnas de
datos en lugar de registros.
Categoría
En esta categoría encontramos:
◉ Cassandra: incluida en esta
sección, aunque en realidad
sigue un modelo híbrido entre
orientada a columnas y clave-
valor. Es utilizada por Facebook y
Twitter (aunque dejaron de
usarla para almacenar tweets).
◉ HBase. Escrita en Java y
mantenida por el Projecto
Hadoop de Apache, se utiliza
para procesar grandes
cantidades de datos. La utilizan
Facebook, Twitter o Yahoo.
Bases de datos NoSQL
9. De clave valor
◉ Estas son las más
sencillas de entender.
Simplemente guardan
tuplas que contienen una
clave y su valor. Cuándo
se quiere recuperar un
dato, simplemente se
busca por su clave y se
recupera el valor.
Categorías
En esta categoría encontramos:
◉ DynamoDB: desarrollada por
Amazon, es una opción de
almacenaje que puedemos
usar desde los Amazon Web
Services. La utilizan el
Washington Post y Scopely.
◉ Redis: desarrollada en C y de
código abierto, es utilizada
por Craiglist y Stack
Overflow (a modo de caché).
Bases de datos NoSQL
10. En grafo
Basadas en la teoría de
grafos utilizan nodos y
aristas para representar
los datos almacenados.
Son muy útiles para
guardar información en
modelos con muchas
relaciones, como redes y
conexiones sociales.
Categorías
En esta categoría encontramos:
◉ Infinite Graph: escrita en
Java y C++ por la compañía
Objectivity. Tiene dos
modelos de licenciamiento:
uno gratuito y otro de pago.
◉ Neo4j: base de datos de
código abierto, escrita en
Java por la compañía Neo
Technology. Utilizada por
compañías como HP,
Infojobs o Cisco.
Bases de datos NoSQL
11. SQL Server
◉ Soporte de
transacciones.
◉ Soporta
procedimientos
almacenados.
◉ Incluye también un
entorno gráfico de
administración, que
permite el uso de
comandos DDL y
DML gráficamente.
Oracle
◉ Oracle es el motor de
base de datos relacional
más usado.
◉ Puede ejecutarse en
todas las plataformas.
◉ Oracle soporta todas las
funciones que se esperan
de un servidor.
◉ Permite el uso de
particiones para la mejora
de la eficiencia, de
replicación e incluso
ciertas versiones admiten
la administración de
bases de datos
distribuidas.
◉ El software del servidor
puede ejecutarse en
multitud de sistemas
operativos
Mongo DB
◉ Da respuesta a la necesidad
de almacenamiento de todo
tipo de datos:
estructurados, semi-
estructurados y no
estructurados.
◉ Tiene un gran rendimiento
en cuanto a escalabilidad y
procesado de la
información.
◉ Se adapta a las necesidades
actuales de las aplicaciones.
◉ Está orientada a
documentos.
◉ Da a los desarrolladores
todas las funcionalidades
que tienen las bases de
datos relacionales
Características de las BD mas populares
12. Oracle NoSQL
◉Escalada horizontalmente.
◉Base de datos de valor
clave para servicios de
Internet y nube.
◉Oracle NoSQL Database
proporciona un modelo de
transacción poderoso y
flexible que simplifica
enormemente el proceso
de desarrollo de una
aplicación basada en
NoSQL.
◉Escala horizontalmente
con mayor disponibilidad y
balance de carga
transparente aún cuando
agrega una nueva
capacidad dinámicamente.
Cassandra
◉ Es distribuida, La
información está repartida a
lo largo de los nodos del
cluster.
◉ Escala linealmente, El
rendimiento de forma lineal
respecto al número de
nodos que añadamos.
◉ Escala de forma horizontal,
Podemos escalar nuestro
sistema añadiendo nuevos
nodos basados en
hardware commodity de
bajo coste.
◉ Implementa una
arquitectura Peer-to-Peer,
Elimina los puntos de fallo
único y no sigue patrones
maestro-esclavo como
otros sistemas de
almacenamiento.
Características de las BD mas populares