2. ¿Qué es es una base de datos?
Se define una base de datos como una serie de datos organizados y
relacionados entre sí, los cuales son recolectados y explotados por los
sistemas de información de una empresa o negocio en particular.
Desde el punto de vista informático, la base de datos es un sistema formado
por un conjunto de datos almacenados en discos que permiten el acceso
directo a ellos y un conjunto de programas que manipulen ese conjunto de
datos.
Cada base de datos se compone de una o más tablas que guarda un conjunto
de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan
una parte de la información sobre cada elemento que queramos guardar en la
tabla, cada fila de la tabla conforma un registro.
3. Caracteristicas de las bases de datos
Entre las principales características de los sistemas de base de datos podemos
mencionar:
Independencia lógica y física de los datos.
Redundancia mínima.
Acceso concurrente por parte de múltiples usuarios.
Integridad de los datos.
Consultas complejas optimizadas.
Seguridad de acceso y auditoría.
Respaldo y recuperación.
Acceso a través de lenguajes de programación estándar.
4. SQL: Definición
SQL (Structured Query Language) es un lenguaje de programación estándar e
interactivo para la obtención de información desde una base de datos y para
actualizarla. Aunque SQL es a la vez un ANSI y una norma ISO, muchos
productos de bases de datos soportan SQL con extensiones propietarias al
lenguaje estándar. Las consultas toman la forma de un lenguaje de comandos
que permite seleccionar, insertar, actualizar, averiguar la ubicación de los
datos, y más. También hay una interfaz de programación.
5. NoSQL
NoSQL es un término que describe las bases de datos no relacionales de alto
desempeño. Las bases de datos NoSQL utilizan varios modelos de datos,
incluidos los de documentos, gráficos, claves-valores y columnas. Las bases de
datos NoSQL son famosas por la facilidad de desarrollo, el desempeño
escalable, la alta disponibilidad y la resiliencia. A continuación, presentamos
varios recursos que le servirán para comenzar a usar las bases de datos
NoSQL.
6. Comparación entre SQL y NoSQL
Base de datos relacional Base de datos NoSQL
Modelo de datos
El modelo relacional normaliza los datos
en estructuras tabulares conocidas como
tablas, que están formadas por filas y
columnas. Contienen un esquema que
define estrictamente las tablas, columnas,
índices, relaciones entre las tablas y otros
elementos de las bases de datos.
Las bases de datos no relacionales (NoSQL)
no suelen contener un esquema. Se suele
utilizar una clave de partición para
recuperar valores, conjuntos de columnas
o documentos JSON o XML
semiestructurados, así como otros
documentos que contengan atributos de
elementos relacionados.
Propiedades ACID
Los sistemas de administración de bases
de datos relacionales (RDBMS)
tradicionales admiten un conjunto de
propiedades definidas por el acrónimo
ACID (por sus siglas en inglés): atomicidad,
consistencia, aislamiento y
durabilidad. Atomicidad significa “todo o
nada” – una transacción se ejecuta
completamente o no se ejecuta en
absoluto. Consistencia quiere decir que
una vez se ha ejecutado una transacción,
los datos deben acoplarse al esquema de
la base de datos. El aislamiento requiere
que las transacciones simultáneas se
ejecuten por separado. La durabilidad es
la capacidad de recuperarse de un error
inesperado del sistema o de un corte de
energía y volver al último estado
conocido.
Habitualmente, las bases de datos NoSQL
intercambian algunas de las propiedades
ACID de los sistemas de administración de
bases de datos relacionales (RDBSM)
tradicionales por un modelo de datos más
flexible que se escala de forma horizontal.
Estas características convierten las bases
de datos NoSQL en una elección excelente
en las situaciones en las que los RDBMS
detectan desafíos en la arquitectura a la
hora de superar una combinación de
cuellos de botella de desempeño,
escalabilidad, complejidad operativa y el
aumento de los costos de administración y
soporte.
7. Base de datos relacional Base de datos NoSQL
Escalado
Lo más sencillo es ampliar la escala con un
hardware más rápido. Se requieren
inversiones adicionales para que las tablas
relacionales abarquen un sistema
distribuido.
Está diseñada para reducir la escala
utilizando clústeres distribuidos de
hardware de bajo costo para aumentar el
desempeño sin que aumente la latencia.
API
Solicita almacenar y recuperar datos que
están comunicados mediante consultas
que se ajustan a un lenguaje de consulta
estructurado (SQL por sus siglas en inglés).
Estas consultas son analizadas y
ejecutadas por los sistemas de
administración de bases de datos
relacionales (RDBMS).
Las API basadas en objetos permiten a los
desarrolladores almacenar y recuperar
fácilmente estructuras de datos en
memoria. Las claves de partición permiten
que las aplicaciones busquen pares de
clave-valor, conjuntos de columnas o
documentos semiestructurados que
contengan atributos y objetos de
aplicación serializados.
Herramientas
Las bases de datos SQL normalmente
ofrecen un amplio conjunto de
herramientas que simplifican el desarrollo
de aplicaciones de base de datos.
Las bases de datos NoSQL suelen ofrecer
herramientas para administrar los
clústeres y el escalado. Las aplicaciones
representan la interfaz primaria de los
datos subyacentes.
9. Microsoft SQL Server
SQL Server es un sistema de
gestión de bases de datos
relacionales (RDBMS) de Microsoft
que está diseñado para el entorno
empresarial. SQL Server se ejecuta
en T-SQL (Transact -SQL), un
conjunto de extensiones de
programación de Sybase y
Microsoft que añaden varias
características a SQL estándar,
incluyendo control de
transacciones, excepción y manejo
de errores, procesamiento fila, así
como variables declaradas.
10. Caracteristicas
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.
Permite trabajar en modo cliente-servidor, donde la información y datos se
alojan en el servidor y los terminales o clientes de la red sólo acceden a la
información.
Además permite administrar información de otros servidores de datos.
11. Oracle
Es un sistema de gestión de base de
datos de tipo objeto-
relacional (ORDBMS, por el acrónimo
en inglés de Object-Relational Data
Base Management System),
desarrollado por Oracle Corporation.
Su dominio en el mercado de
servidores empresariales había sido
casi total hasta que recientemente
tiene la competencia del Microsoft
SQL Server y de la oferta de
otros RDBMS con
licencia libre como PostgreSQL, MySQ
L o Firebird.
12. Caracteristicas de Oracle
Puede ejecutarse en todas las plataformas, desde una Pc hasta un
supercomputador.
Oracle soporta todas las funciones que se esperan de un servidor "serio": un
lenguaje de diseño de bases de datos muy completo (PL/SQL) que permite
implementar diseños "activos", con triggers y procedimientos almacenados, con
una integridad referencial declarativa bastante potente.
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.
Existe incluso una versión personal para Windows 9x, lo cual es un punto a
favor para los desarrolladores que se llevan trabajo a casa.
Oracle es la base de datos con más orientación hacía INTERNET.
13. MongoDB
Es un sistema de base de
datos NoSQL orientado a
documentos, desarrollado bajo el
concepto de código abierto.
MongoDB forma parte de la nueva
familia de sistemas de base de datos
NoSQL. En lugar de guardar los datos
en tablas como se hace en las base
de datos relacionales, MongoDB
guarda estructuras de datos en
documentos similares a JSON con un
esquema dinámico (MongoDB utiliza
una especificación llamada BSON),
haciendo que la integración de los
datos en ciertas aplicaciones sea más
fácil y rápida.
14. Caracteristicas de MongoDB
Ventajas
Mongo DB tiene la capacidad de realizar
consultas utilizando javascript, haciendo
que estas sean enviadas directamente a la
base de datos para ser ejecutada.
Se utiliza un sistemas de archivos, ya que
cuenta con la capacidad para balancear la
carga y recopilación de datos utilizando
múltiples servidores para almacenamiento
de archivo.
El desarrollador elige una llave
shard(clave).
La configuración automática, se puede
agregar nuevas maquinas a mongo DB con
el sistema de base corriendo.
Desventajas
Mongo DB bloquea la base de datos cada
vez que se realiza un escritura, lo que
reduce la concurrencia dramáticamente.
Retorna cuando no se a escrito la
información en el espacio de
almacenamiento permanente, puede
ocasionar perdida de información.
Cambia el valor por defecto para escribir
al menos una replica, pero esto sigue sin
satisfacer la durabilidad ni la
verificabilidad.
Tiene problemas de rendimiento cuando el
volumen de datos supera los 100GB.
15. Oracle NoSQL
La base de datos NoSQL de Oracle,
permite modelar los datos como si fuesen
tablas en forma similar a como lo haría
una base dedatos relacional, almacenar
documentos JSON o, simplemente, pares
de clave y valor. Al igual que otras bases
de datos NoSQL, Oracle NoSQL, es un
sistema particionado(donde no se
comparte nada), que distribuye los datos
de manera uniforme entre las múltiples
particiones que lo conforman, en base al
valor hash de la clave primaria. Dentro de
cada partición, los nodos de
almacenamiento se replican con el fin
de garantizar una alta disponibilidad, una
rápida conmutación en el caso de un fallo
de nodo y realizar un balanceo óptimo de
la carga que representen las consultas.
16. Cassandra
Es una base de
datos NoSQL distribuida y basada en
un modelo de almacenamiento de
«clave-valor», de código abierto que
está escrita en Java. Permite grandes
volúmenes de datos en forma
distribuida. Por ejemplo, lo
usa Twitter para su plataforma. Su
objetivo principal es la escalabilidad
lineal y la disponibilidad. La
arquitectura distribuida de Cassandra
está basada en una serie de nodos
iguales que se comunican con un
protocolo P2P con lo que la
redundancia es máxima. Está
desarrollada por Apache Software
Foundation.
17. Características de Cassandra
Es distribuida, lo quiere decir que la información está repartida a lo largo de
los nodos del cluster. Además ofrece alta disponibilidad, de manera que si
alguno de los nodos se cae el servicio no se degradará.
Escala linealmente, lo que quiere decir que el rendimiento de forma lineal
respecto al número de nodos que añadamos. Por ejemplo, si con 2 nodos
soportamos 100.000 operaciones por segundo, con 4 nodos soportaremos
200.000. Esto da mucha predictibilidad a nuestros sistemas.
Escala de forma horizontal, lo que quiere decir que podemos escalar nuestro
sistema añadiendo nuevos nodos basados en hardware commodity de bajo
coste.