Bases de datos

> Temas > Bases de datos
Editar

Sección dedicada a las Bases de datos. Todas las bases de datos más habituales utilizadas en el desarrollo general y de aplicaciones web en particular.

En el desarrollo de aplicaciones de software una de las piezas fundamentales son las bases de datos, el modelo más habitual para el almacenamiento, con persistencia, de la información que manejan las aplicaciones.

Existen diversos sistemas de bases de datos, creados por distintos fabricantes. Estos sistemas se les conoce generalmente como SGBD (Sistemas gestores de bases de datos) y básicamente nos permiten crear y administrar en ellos un número indeterminado de bases de datos. A los SGBD también se les conoce habitualmente como motores de bases de datos.

Los sistemas gestores de bases de datos más populares son MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Todas ellas bases de datos relacionales. También es muy popular MongoDB, que es una base de datos no relacional o NoSQL. Además podríamos agregar Access, que no sería tanto un sistema gestor de base de datos, sino un programa de ofimática capaz de trabajar con datos en tablas, de modo similar que los SGBD.

Más información:

Colecciones

Colección de Software para administración de bases de datos

Software para administración de bases de datos

Conoce las alternativas más populares y...

12 ítems
Bases de datos

Manuales

Tutorial de SQL
Completo Manual de SQL. Aprende a utilizar el estándar utilizado para la consulta de bases de datos. Seleccionar, crear, modificar y borrar registros y mucho más.
Taller de MySQL
El Manual de MySQL lo organizamos como una guía práctica para el trabajo con MySQL y MariaDB, con artículos diversos de utilidad para el trabajo diario con el sistema gestor de bases de datos.
Tutorial de Oracle
En este tutorial aprenderas a gestionar una base de datos con el sistema gestor Oracle.
Iniciación a las bases de datos
Este manual contiene una iniciación a las bases de datos, especialmente a las bases de datos relacionales, a la definición del modelo relacional y al lenguaje SQL.

Qué son los Sistemas Gestores de Bases de Datos

Un Sistema Gestor de Bases de Datos (a veces usamos simplemente las siblas SGBD, o DBMS, por sus siglas en inglés) es un software especializado que permite a los usuarios crear, gestionar, consultar y manipular bases de datos. Estos sistemas se encargan de almacenar los datos de una manera efectiva y además proporcionan unos mecanismos de acceso a los datos a los usuarios y administradores.

Otras funciones del sistema gestor de base de datos es mantener la información organizada, accesible y además que tenga la suficiente integridad, es decir que no falten cosas y que las relaciones entre los datos se encuentren correctamente realizadas.

Entre algunas funciones de los SGBD encontramos las siguientes:

  • Manejar los datos de las bases de datos
  • Administrar las transacciones
  • Dar soporte al respaldo de la información (backup) y la restauración de los datos respaladados
  • Gestionar los permisos de acceso a los datos y la seguridad
  • Garantizar la integridad referencial entre las tablas.

Los sistemas gestores de bases de datos pueden clasificarse en varios tipos. La clasificación más importante se realiza por el modelo de datos que implementa. Los SGBD más comunes son los que gestionan las Bases de Datos Relacionales (RDBMS). Estos son los que están basados en el modelo relacional y utilizan SQL como lenguaje de acceso a los datos. Los sistemas gestores de bases de datos más populares son los relacionales. Algunos ejemplos son MySQL, PostgreSQL, Oracle o Microsoft SQL Server, pero hay muchos más. Además actualmente también son populares los sistemas gestores de bases de datos no relacionales, también conocidos como NoSQL, siendo el más conocido MongoDB.

Qué son los Sistemas Gestores de Bases de Datos

Editar

Tipos de relaciones en el modelo relacional

En el modelo de bases de datos relacionales encontramos diversos tipos de relaciones entre tablas. Es muy importante tenerlas en cuenta para definir correctamente el modelo de la base de datos para una aplicación.

Los tipos de relaciones que podemos encontrarnos son los siguientes.

1 a 1

Se da cuando un registro de una tabla se relaciona únicamente con otro registro de otra tabla y cuando un registro de la segunda tabla se relaciona únicamente con un registro de la primera.

Por ejemplo, el usuario y el perfil de usuario: Un usuario solamente puede tener un perfil y un perfil solamente puede pertenecer a un usuario.

Este tipo de relación no resulta muy frecuente, la verdad, porque muchas veces este tipo de tablas simplemente pueden estar juntas. Por ejemplo, la información del perfil del usuario podría estar directamente en la misma tabla del usuario. Sin embargo, en algunas situaciones puede venir bien que estén separadas. Por ejemplo imaginemos que solamente los usuarios "premium" pueden generar su perfil. En este caso quizás no sea buena tan buena idea meter en la tabla de los usuarios los datos de perfl, que en el fondo solamente van necesitarla unos pocos.

1 a n

También llamada "uno a muchos". Esta relación se da cuandoun registro de una tabla (A) puede estar relacionado con "n" registros de otra tabla (B), siendo que los registros de la segunda tabla (B) solo pueden pertenecer a 1 registro de la primera (A).

Por ejemplo, los artículos de un blog tienen comentarios. Un artículo puede tener "n" comentarios, pero un comentario puede pertenecer a únicamente un artículo.

Esta relación resulta bastante habitual y cuando ocurre, en la segunda tabla, generalmente colocamos el identificador de la primera tabla. Por ejemplo, en los comentarios tendremos el identificador del artículo al que pertenecen.

n a m

También llamada "muchos a muchos". Esta relación ocurre cuando un registro de una tabla puede estar relacionado con "n" registros de otra tabla, siendo que 1 registro de la segunda tabla pueden estar relacionado con varios registros de la primera tabla.

Por ejemplo, artículos y categorías. Un artículo podría tener "n" categorías y además 1 categoría puede estar en "n" artículos.

Esta relación, un poco más compleja de implementar, también resulta bastante habitual. Para implementarla se genera una tabla pivote, que contiene los identificadores o claves de los registros que relaciona.

Editar

Clasificaciones o tipos de bases de datos

El modelo de bases de datos más extendido en la actualidad es el relacional. Sin embargo hay mucho más allá de las bases de datos relacionales. Aquí vamos a ver las distintas clasificaciones o tipos de las bases de datos, según cómo manejan los datos y qué funcionalidades ofrecen.

  • Bases de Datos Relacionales: Estas bases de datos almacenan datos en tablas, donde cada fila representa un registro y cada columna representa un atributo de ese registro. Utilizan el lenguaje SQL (Structured Query Language) para manejar los datos. Ejemplos populares de este tipo de bases de datos son los que se conocen de sobra como MySQL, PostgreSQL, MS SQL Server, Oracle, SQLite...
  • Bases de Datos NoSQL: Estas bases de datos están diseñadas para manejar grandes volúmenes de datos distribuidos de manera eficiente. El sistema gestor de bases de datos más común de esta clasificación es MongoDB. Este tipo de bases de datos no sigue el modelo relacional y no utilizan SQL como lenguaje principal de consulta. Son tipos de bases de datos que también tienen mucha variabilidd. Algunas de sus categorías principales serían:
    • Documentales: Almacenan datos en documentos (generalmente en formato JSON, BSON, etc.). Ejemplos son MongoDB y CouchDB.
    • Clave-valor: Almacenan los datos en un arreglo de claves y valores, siendo muy eficientes para consultas de recuperación por clave. Ejemplos incluyen Redis y DynamoDB.
    • Columnares: Organizan los datos por columnas en lugar de por filas, lo que permite realizar operaciones de lectura y escritura de manera muy eficiente en columnas específicas. Ejemplos son Cassandra y HBase.
    • Grafos: Diseñadas para almacenar y manejar datos en forma de grafos (nodos y aristas), útiles para representar y trabajar con relaciones complejas. Ejemplos populares son Neo4j y ArangoDB.
  • Bases de Datos en Memoria: Estas bases de datos utilizan la memoria principal para el almacenamiento de datos. Se usan en los lugares donde no es un problma la volatiliad y donde se necesite tiempos de respuesta extremadamente rápidos. Son ideales para aplicaciones que requieren acceso rápido y frecuente a los datos. Ejemplos son Memcached y Redis.
  • Bases de Datos de Almacén de Datos (Data Warehouse): Optimizadas para el análisis y la consulta de grandes cantidades de datos, estas bases de datos son esenciales para el business intelligence y análisis de datos. Ejemplos incluyen Google BigQuery y Amazon Redshift.
  • Bases de Datos Distribuidas: Están diseñadas para ejecutarse en múltiples ubicaciones o en un entorno distribuido, gestionando la consistencia y la replicación de datos a través de diferentes nodos. Ejemplos podrían ser CockroachDB y Cassandra.
  • Bases de Datos de Series Temporales: Especializadas en el manejo y almacenamiento de secuencias de datos a lo largo del tiempo. Son utilizadas comúnmente en el monitoreo de redes, aplicaciones de IoT y seguimiento de métricas en tiempo real. InfluxDB y TimescaleDB son ejemplos destacados.

Cada tipo de base de datos tiene sus propias ventajas y desventajas, por lo que es importante no dejarse llevar por las modas, sino simplemnte analizar el problema y decidir qué modelo es el más adecuado para una necesidad concreta en el proyecto o aplicación.

Editar

¿Quieres añadir algo sobre Bases de datos?

Crea artículos, recursos o comparte información sobre Bases de datos

Crear un bloque

Temas relacionados

Dentro de Bases de datos

Modelo relacional

El modelo relacional es uno de los modelos existentes en las bases de datos que tiene las relaciones como elemento constituyente más importante.

En el panorama de las bases de datos existen varios modelos de trabajo. El más importante es el modelo relacional. Este modelo incluye la figura de la tabla y sus relaciones como elemento principal.

En el modelo relacional los datos se organizan en tablas. En cada tabla se almacena un conjunto de registros, que serían las filas. Cada registro tiene un conjunto de valores, que serían las columnas.

Las tablas definen relaciones que permiten el acceso desde un dato a todos los datos que tiene relacionados en la base de datos. Para implementar las relaciones se usan las llaves, o claves. Estas consisten en columnas de una tabla donde se guardan los identificadores (las llaves o claves) de los registros con los que está relacionado un elemento. Estas llaves por tanto permiten mencionar de manera exacta qué datos tiene relacionados un registro con otros registros de otras tablas (o la misma tabla si fuera necesario).

El modelo relacional fue propuesto por Edgar F. Codd en el año 1970. Desde entonces es modelo dominante para el diseño de bases de datos.

Los elementos principales del modelo relacional son los siguientes:

  • Tabla: Una tabla es una estructura compuesta por filas y columnas que sirve para almacenar los datos de una entidad y donde cada fila contiene un registro individual de esa entidad. Las columnas representan un campo de cada registro.
  • Registro o tupla: Son las filas de las tablas, un elemento dentro de la entidad.
  • Campo o atributo: Es una columna de una tabla. Los campos tienen un tipo de datos y la información almacenada debe respetar ese tipo. Cada registro por tanto tiene un cojunto de datos asociados que se almacenan en los campos.
  • Clave primaria: Es el campo o conjunto de campos que identifican un registro de manera única. Generalmente se usan llaves o claves primarias en las tablas que tienen valores autonuméricos. Estos permiten que sea el motor de la base de datos el que les asigne el identificador al dar de alta los registros. Pero también puede haber casos en los que una clave primaria esté compuesto de la combinación de varios campos.
  • Clave foránea: Son las claves que hay en una tabla que sirven para relacionarla con elementos de otras tablas. Consisten en un atributo (o a veces conjuto de atributos) que contiene un valor que corresponde con la clave primaria de otra tabla.

Hay algunas características importantes en el modelo relaciona que también son destacables:

  • Integridad referencial, que consiste en una restricción que implementan los sistemas gestores de bases de datos, limitando las operaciones sobre los registros de bases de datos, de modo que se garantice que las relaciones entre tablas se mantengan correctamente. Por ejemplo, si tenemos una tabla donde un regustro de una clave foránea apunta a otro registro de otra tabla, entonces no se permite borrar el elemento apuntado para no estropear esa relación.
  • Normalización, que es un proceso importante a la hora de diseñar el modelo de datos, esto es la estructura de una base de datos (tablas, campos, relaciones). El objetivo de la normalización es reducir o eliminar la redundancia y mejorar la integridad de los datos.
  • Lenguaje SQL: Los sistemas gestores del modelo relacional usan de manera generalizada un lenguaje de consulta llamado SQL que permite realizar una serie de operaciones sobre las tablas, como la selección (incluye el filtrado de filas), inserciones, actualizaciones y borrados. También incluye la posibilidad de mezclar los datos con las tablas relacionadas, unirlos, interseccionarlos, etc.

Editar

Modelo relacional

Preguntas y respuestas de Modelo relacional

Preguntas y respuestas de Bases de datos

Se han recibido 20 faqs en Bases de datos

Hacer una pregunta