Este documento describe diferentes tipos de bases de datos, incluyendo bases de datos relacionales como MySQL, PostgreSQL y Oracle, y bases de datos no relacionales como MongoDB, Cassandra y Oracle NoSQL. Explica las características clave de cada uno y los casos de uso comunes.
2. ¿Qué es una base de datos?
El término de bases de datos fue escuchado por primera vez en 1963, en un
simposio celebrado en California, USA.
Se define 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.
3. Características
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. Tipos de Base de Datos
Entre los diferentes tipos de base de datos, podemos encontrar los
siguientes:
MySql: es una base de datos con licencia GPL basada en un
servidor. Se caracteriza por su rapidez. No es recomendable usar
para grandes volúmenes de datos.
PostgreSql y Oracle: Son sistemas de base de datos poderosos.
Administra muy bien grandes cantidades de datos, y suelen ser
utilizadas en intranets y sistemas de gran calibre.
Access: Es una base de datos desarrollada por Microsoft. Esta base
de datos, debe ser creada bajo el programa access, el cual crea un
archivo .mdb con la estructura ya explicada.
Microsoft SQL Server: es una base de datos más potente que
access desarrollada por Microsoft. Se utiliza para manejar grandes
volúmenes de informaciones.
5. Base de Datos tipo SQL
Es un lenguaje específico del dominio que da acceso a un sistema de gestión de bases de datos
relacionales que permite especificar diversos tipos de operaciones en ellos.
Características:
Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definición de
esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación.
Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de
consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas.
Integridad: El LDD de SQL incluye comandos para especificar las restricciones de integridad
que deben cumplir los datos almacenados en la base de datos.
Definición de vistas: El LDD incluye comandos para definir las vistas.
Control de transacciones: SQL tiene comandos para especificar el comienzo y el final de una
transacción.
SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de
SQL en lenguajes de programación como: C++, C, Java, PHP, Cobol, Pascal y Fortran.
Autorización: El LDD incluye comandos para especificar los derechos de acceso a las
relaciones y a las vistas
6. Base de Datos NoSQL
Es una amplia clase de sistemas de gestión de bases de datos que difieren del
modelo clásico de SGBDR (Sistema de Gestión de Bases de Datos Relacionales) en
aspectos importantes, siendo el más destacado que no usan SQL como lenguaje
principal de consultas. Los datos almacenados no requieren estructuras fijas como
tablas, normalmente no soportan operaciones JOIN, ni garantizan
completamente ACID (atomicidad, consistencia, aislamiento y durabilidad), y
habitualmente escalan bien horizontalmente.
Los sistemas NoSQL se denominan a veces "no sólo SQL" para subrayar el hecho
de que también pueden soportar lenguajes de consulta de tipo SQL.
7. Ventajas NoSQL
Estos sistemas responden a las necesidades de escalabilidad horizontal que tienen
cada vez más empresas.3
Pueden manejar enormes cantidades de datos.
No generan cuellos de botella.
Escalamiento sencillo.
Diferentes DBs NoSQL para diferentes proyectos.
Se ejecutan en clusters de máquinas baratas.
8. SQL SERVER
Es un software propietario de gestión de base de datos creado por la compañía
Microsoft disponible, lamentablemente solo se puede usar en el sistema operativo
Windows, aunque recientemente anunciaron que SQL Server 2016 estaría
disponible para GNU/Linux para este fin de año.
Con este sistema de gestión de base datos se puede trabajar en modo cliente y
servidor, para aquellos que quieran utilizar se puede descargar una versión express
para fines educativos, para la cual también existen apis para diferentes de tipos
lenguajes de programación.
9. Mongo DB
Es un sistema de base de datos NoSQL multiplataforma, orientado a documentos
desarrollado bajo la filosofía de software libre, los datos son guardados en la base
datos en estructuras de datos similar a JSON de JavaScript e incluso tiene
la capacidad de realizar consultas utilizando JavaScript por el cual también existen
apis para distintos lenguajes de programación para realizar consultas e informes.
La mayoría de los gestores base datos no empaquetan un programa que nos
permita administrar nuestras base de datos, para la cual existe un
programa llamado Navicat Premium, es un programa de pago que permite
gestionar las bases de datos de forma mucho más cómoda e intuitiva que se puede
usar para los 6 primeros sistemas gestores base de datos populares que se
menciona en este articulo, para MongoDB se puedes optar a usar el uMongo
10. Oracle NoSQL
Oracle NoSQL Database proporciona un modelo de datos muy sencillo para el
desarrollador de aplicaciones.
Cada fila es identificada por una clave única, y también tiene un valor, de longitud
arbitraria, que es interpretada por la aplicación.
La aplicación puede manipular (insertar, eliminar, actualizar, leer) una sola fila en
una transacción.
La aplicación también puede realizar una exploración iterativa no transaccional de
todas las filas de la base de datos
11. 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.