2. Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y
almacenados sistemáticamente para su posterior uso. En este sentido; una biblioteca puede
considerarse una base de datos compuesta en su mayoría por documentos y textos
impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo
tecnológico de campos como la informática y la electrónica, la mayoría de las bases de
datos están en formato digital, siendo este un componente electrónico, por tanto se ha
desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de
datos.
Hay programas denominados sistemas gestores de bases de datos, abreviado SGBD (del
inglés Database Management System o DBMS), que permiten almacenar y posteriormente
acceder a los datos de forma rápida y estructurada. Las propiedades de estos DBMS, así
como su utilización y administración, se estudian dentro del ámbito de la informática.
Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas;
También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la
información experimental.
3. Aunque las bases de datos pueden contener muchos
tipos de datos, algunos de ellos se encuentran
mutuamente protegidos por las leyes de varios países.
Por ejemplo en España, los datos personales se
encuentran protegidos por la Ley Orgánica de
Protección de Datos de Carácter Personal (LOPD), en
México por la Ley Federal de Transparencia y Acceso a
la Información Pública Gubernamental y en Argentina
la Ley de Protección de Datos Personales.1
En Argentina el Código Penal sanciona ciertas conductas
relacionadas con una base de datos: acceder
ilegítimamente a un banco de datos personales,
proporcionar o revelar información registrada en un
archivo o en un banco de datos personales cuyo secreto
estuviere obligado a guardar por ley o insertar o hacer
insertar datos en un archivo de datos personales. Si el
autor es funcionario público, sufre además pena de
inhabilitación especial.
4. • Una base de datos es una aplicación independiente que almacena una
colección de datos. Así que podemos decir que se trata de una colección de
información organizada por campos, registros y archivos, de manera que se
pueda seleccionar rápidamente los fragmentos de datos que se necesiten.
5. 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.
6. • Se puede decir que la aparición del término NoSQL aparece
con la llegada de la web 2.0 ya que hasta ese momento
sólo subían contenido a la red aquellas empresas que tenían
un portal, pero con la llegada de aplicaciones como
Facebook, Twitter o Youtube, cualquier usuario podía subir
contenido, provocando así un crecimiento exponencial de los
datos. Es en este momento cuando empiezan a aparecer
los primeros problemas de la gestión de toda esa
información almacenada en bases de datos relacionales. En
un principio, para solucionar estos problemas de
accesibilidad, las empresas optaron por utilizar un mayor
número de máquinas pero pronto se dieron cuenta de que
esto no solucionaba el problema, además de ser una
solución muy cara. La otra solución era la creación de
sistemas pensados para un uso específico que con el paso
del tiempo han dado lugar a soluciones robustas,
apareciendo así el movimiento NoSQL.
7. Por lo tanto hablar de bases de datos NoSQL es hablar de estructuras
que nos permiten almacenar información en aquellas situaciones en las
que las bases de datos relacionales generan ciertos problemas debido
principalmente a problemas de escalabilidad y rendimiento de las bases de
datos relacionales donde se dan cita miles de usuarios concurrentes y con
millones de consultas diarias. Además de lo comentado anteriormente,
las bases de datos NoSQL son sistemas de almacenamiento de
información que no cumplen con el esquema entidad–relación. Tampoco
utilizan una estructura de datos en forma de tabla donde se van
almacenando los datos sino que para el almacenamiento hacen uso de
otros formatos como clave–valor, mapeo de columnas o grafos (ver
epígrafe ‘Tipos de bases de datos NoSQL’).
8. • Es útil para manejar y obtener datos de la red de redes.
• Nos permite olvidarnos de los ficheros que forman la base de datos.
• Si trabajamos en una red social nos permite agregar otros servidores de SQL
Server. Por ejemplo dos personas que trabajan con SQL Server, uno de ellos se
puede conectar al servidor de su otro compañero y así se puede ver las bases de
datos del otro compañero con SQL Server.
• SQL permite administrar permisos a todo. También permite que alguien conecte
su SQLO al nuestro pero sin embargo podemos decirle que no puede ver esta base
de datos pero otro si.
9. • Motor de base de datos objeto-relacional más usado a nivel mundial.
• Multiplataforma: puede ejecutarse desde un PC hasta una supercomputadora.
• Permite el uso de particiones para hacer consultas, informes, análisis de
datos, etc.
• Soporta todas las funciones que se esperan de un buen servidor.
• Software del servidor que puede ejecutarse en multitud de sistemas
operativos: Linux, Mac, Windows, etc.
10. • Los datos guardados con MongoDB son de fácil lectura para los usuarios, como ya
mencionamos se guarda en formato JSON por lo cual a modo de ejemplo quedan de la
siguiente manera:
Nótese que en los documentos en lugar de crear relaciones con otra tabla se puede
especificar de forma anidada más datos, como es el caso de la dirección en el ejemplo. Los
documentos nos permiten almacenar toda la información que queramos, lo cual a veces puede
ocasionar problemas en la consistencia de los datos.
11. • Validación de documentos
• Motores de almacenamiento integrado
• Menor tiempo de recuperación ante fallas
12. • La escalabilidad y su carácter descentralizado. Soportan estructuras distribuidas.
• Suelen ser bases de datos mucho más abiertas y flexibles. Permiten adaptarse a
necesidades de proyectos mucho más fácilmente que los modelos de Entidad
Relación.
• Se pueden hacer cambios de los esquemas sin tener que parar bases de datos.
• Escalabilidad horizontal: son capaces de crecer en número de máquinas, en lugar
de tener que residir en grandes máquinas.
• Se pueden ejecutar en máquinas con pocos recursos.
• Optimización de consultas en base de datos para grandes cantidades de datos.
13. • Arquitectura escalable: gracias a un diseño masterless, en el que todos los nodos son iguales, lo que
ofrece simplicidad operativa y fácil escalabilidad horizontal.
• Diseño activo de principio a fin: ya que en todos los nodos se puede escribir y leer.
• Rendimiento a escala lineal: la posibilidad de añadir nodos sin tener que frenar el ritmo produce aumentos
en el rendimiento.
• Disponibilidad continua: elimina los puntos únicos de fallo y proporciona un tiempo de actividad constante.
• Detección de fallos y recuperación transparente: para nodos que no pueden ser fácilmente restaurados o
reemplazados.
• Modelo de datos flexible y dinámico: que soporta tipos de datos modernos para lectura y escritura rápida.
• Protección de datos sólida: un diseño de registro de confirmación evita la pérdida de datos y construye
copias de seguridad para facilitar la restauración a la vez que se mantienen los datos protegidos y seguros.
• Consistencia de los datos sintonizable: de esta forma, Cassandra base de datos ofrece apoyo a la consistencia
de los datos en un clúster ampliamente distribuido.
14. • Replicación de datos multi-centro: se
trata de un centro de datos
transversal (en diferentes zonas
geográficas) que recibe el el apoyo
de múltiples zonas de disponibilidad
en la nube tanto para escritura como
para lectura.
• Compresión de datos: garantiza que
los datos se comprimirán hasta un
80% sin que ello suponga un gasto
de recursos.
• CQL (Lenguaje de Consulta
Cassandra): un lenguaje similar a
SQL que consigue que la transición
desde una base de datos relacional
sea muy sencilla.