Una base de datos se puede definir como una herramienta para recolección y organización de datos para poder hacer una búsqueda rápida y recuperar con ayuda de un Hardware o equipo de computo. Hoy en día, las bases de datos también sirven para desarrollar análisis complejos.
Otra definición conocida es la del Dr. Naphtali Rishe, que data en el año 1992 en su publicación Database Design: The Semantic Modelling Approach, en la que define las bases de datos como un almacén de información actualizable de alguna aplicación, que oculta del usuario los aspectos físicos del almacenamiento y la representación de la información. Lo que es almacenado en la base de datos es accesible a un nivel lógico sin necesidad de involucrar los aspectos físicos de su implementación.
Debemos tener clara la diferencia entre Base de Datos y SGBD. La base de datos es el almacenamiento donde viven los datos. El SGBD (Sistema de gestión de bases de datos) es el encargado de manipular la información contenida en ese almacenamiento mediante operaciones de lectura/escritura sobre la misma, controlar la integridad y seguridad de los datos, reconstruir y reestructurar la base de datos cuando sea necesario.
Tipos de base de datos
Los tipos de bases de datos se pueden clasificar según su estructura lógica y el modo de almacenar, organizar y manipular los datos. Podemos clasificarlas en dos grandes conceptos:
Por como varíe el contenido:
Bases de datos dinámicas
Estas son las más usadas, ya que como su nombre lo indica son dinámicas, es decir, que se usan constantemente, ya sea modificando o consultando la base de datos, ejemplos de esta serían de un E-Commerce, Retail, Banca etc.
Bases de datos estáticas
Los archivos contenidos en esta base de datos solo son de lectura, y se pueden guardar pero sin usar, o usarlas un tiempo después, un ejemplo clásico de este serían bibliotecas, periódicos (para almacenar información y si se requiere consultarla tiempo después) etc.
Por modelo de datos:
Bases de datos relacionales
Una base de datos relacional se puede definir como una colección de datos organizados en un grupo de tablas formalmente descritas, que pueden ser accedidas o re-ensambladas de diferentes maneras. La forma estándar de acceder a una base de datos es con el Structured Query Language (SQL). Las sentencias SQL suelen usarse para obtener información de las bases de datos, añadir, modificar o borrar, entre otras.
Profundizando en los términos de base de datos relacionales, la conexión entre distintas tablas se le denomina «relación», a las columnas se les conoce como «atributos» y a las filas como «registros» o «tuplas».
Algunas bases de datos relacionales conocidas son: Sql Server, AWS Aurora,MySQL, Oracle, PostgreSQL, MariaDB.
Bases de datos distribuidas
Las bases de datos distribuidas consisten en el almacenamiento de porciones de las bases de datos en diferentes ubicaciones físicas y, por tanto, el procesamiento está distribuido o replicado entre los distintos puntos de una red de trabajo.
Esto trae como consecuencia que la base de datos distribuida tenga una mayor disponibilidad de los datos debido a sus múltiples ubicaciones. De esta forma ,si una de las bases de datos fallase, podría seguir funcionando correctamente, aunque puede que un poco ralentizado. Sin embargo, esta misma característica de estar distribuido puede provocar que haya duplicidad de los datos y un menor nivel de seguridad.
Dentro de las bases de datos distribuidas hay 2 tipos: homogéneas y heterogéneas. Las homogéneas son conscientes de las otras ubicaciones y cooperan en el procesamiento de las solicitudes. Además, tienen el mismo esquema y el mismo sistema de gestión de base de datos (SGBD). Mientras que las heterogéneas cooperan de forma limitada el procesamiento ya que pueden tener el SGBD y los esquemas diferentes e incluso, que los sitios no se conozcan entre sí.
Bases de datos no relacionales (NoSQL)
Las bases de datos NoSQL (No relacionales) están diseñadas para modelos de datos específicos y tienen esquemas flexibles para crear aplicaciones a la vanguardia. Son fáciles de desarrollar, tanto en funcionalidad como en rendimiento a escala. Se caracterizan por usar variedad de modelos de datos, que incluyen gráficos, documentos, clave-valor, en-memoria y búsqueda.
Estas bases de datos, a diferencia de las relacionales, no tienen un identificador que sirva de relación entre un conjunto de datos y otros. Como veremos, la información se organiza normalmente mediante documentos y es muy útil cuando no tenemos un esquema exacto de lo que se va a almacenar.
La diferencia fundamental entre una base de datos relacional y una NoSQL radica en que las bases de datos NoSQL no utilizan el modelo relacional y que SQL es utilizado como apoyo, más no como lenguaje de consultas. Entre las más usadas tenemos a Cassandra, MongoDB etc.
Bases de datos clave/valor
Son el modelo de base de datos NoSQL más popular, además de ser la más sencilla en cuanto a funcionalidad. En este tipo de sistema, cada elemento está identificado por una llave única, lo que permite la recuperación de la información de forma muy rápida. Se caracterizan por ser muy eficientes tanto para las lecturas como para las escrituras.
Bases de datos orientadas a documentos
Este tipo almacena la información como un documento, generalmente utilizando para ello una estructura simple como JSON o XML y donde se utiliza una clave única para cada registro. Este tipo de implementación permite, además de realizar búsquedas por clave/valor, realizar consultas más avanzadas sobre el contenido del documento. Son las bases de datos NoSQL más versátiles. Se pueden utilizar en gran cantidad de proyectos, incluyendo muchos que tradicionalmente funcionarían sobre bases de datos relacionales. Una de las bases de datos orientadas a documentos más usadas en MongoDB.
Bases de datos en grafo
En este tipo de bases de datos, la información se representa como nodos de un grafo y sus relaciones con las aristas del mismo, de manera que se puede hacer uso de la teoría de grafos para recorrerla. Para sacar el máximo rendimiento a este tipo de bases de datos, su estructura debe estar totalmente normalizada, de forma que cada tabla tenga una sola columna y cada relación dos.
Bases de datos columnares
Estas bases de datos cambian el enfoque clásico de organización por filas a una organización por columnas. En ellas, las unidades de datos ya no son insertadas como filas, sino que son convertidas en pares de claves y valores que constituyen la definición de cada una de las columnas. Con este cambio se mejora la velocidad en lecturas, ya que es muy rápido consultar un número reducido de columnas, sin embargo, este enfoque no es eficiente para realizar escrituras.
Las bases de datos columnares se usan desde hace mucho tiempo, su número de aplicaciones es bajo aún, debido a la demanda de las base de datos relacionales. Dentro de las más conocidas tenemos:
- Vertica Sql: Vertica es un motor de datos columnar y de procesamiento distribuido, que permite procesar a gran velocidad y en tiempo real, consultas analíticas complejas, escalando a grandes volúmenes de datos (big data).
- SAP HANA: la plataforma de desarrollo de SAP también utiliza una combinación de una base de datos relacional y una columnar.
- Amazon Redshift: Redshift ofrece un almacén de datos columnar para big data, es parte de Amazon Web Services (AWS).
- MariaDB-ColumnStore: el DBMS MariaDB (Fork de MySQL) de código abierto ofrece con el ColumnStore también una combinación de base de datos columnar y relacional.
- Apache Cassandra: el software libre está basado en Hadoop Apache y está escrito en lenguaje Java.
- MonetDB: este software de código abierto se desarrolló prestando especial atención a la minería de datos.
Concluyendo
¡Espero que les haya sido útil este post, te invito a leer nuestros artículos, y visitar nuestro canal de YouTube NotJustBI, pueden ser de gran interés para ti!
Por favor, si tienes algún comentario, duda o sugerencia, no dudes en contactarnos a través de los comentarios o por nuestro correo: info@notjustbi.com
Nos vemos en una próxima entrega.
¡El equipo de Not Just BI está para atenderte!