Modelo de una base de datos
Cuando hablamos de crear una base de datos, no podemos olvidarnos del modelo de base datos; este concepto determina en muchos casos el tipo de base de datos que vamos a emplear. En esta entrada vamos a explicar en qué consisten los modelos de bases de datos y qué tipos hay.
¿Qué es un modelo de base de datos?
Un modelo de base de datos es la estructura lógica que adopta la base de base datos, incluyendo las relaciones y limitaciones que determinan cómo se almacenan y organizan y cómo se accede a los datos. Así mismo, un modelo de base de datos también define qué tipo de operaciones se pueden realizar con los datos, es decir, que también determina cómo se manipulan los mismos, proporcionando también la base sobre la que se diseña el lenguaje de consultas.
Tipos de modelos de bases de datos
Tal y como ocurre con las bases de datos, existen diferentes tipos de modelos de bases de datos, como vamos a ver en los próximos puntos. Qué modelo elegir para nuestra base de datos dependerá, por un lado, del sistema de gestión de bases de datos que estemos usando, puesto que este debe se compatible con el modelo de datos (lo habitual es que los SGBD estén desarrollados para emplear un modelo de base de datos en concreto, aunque hay algunos compatibles con múltiples modelos).
Modelo de base de datos relacional
El modelo de base de datos relacional es uno de los más comunes. Este modelo es el que emplean las bases de datos relacionales y ordena los datos en tablas (relaciones) compuestas por columnas y filas.
Cada columna alberga un atributo de la entidad (nombre, dirección, fecha de nacimiento…); a los atributos de una relación se los llama dominio. Escogiendo un atributo en concreto o una combinación de varios tenemos una clave primaria, a la que se puede hacer referencia en otras tablas, en las que será un clave externa.
En cada fila (tupla) se incluyen datos sobre una instancia específica de la entidad (por ejemplo, un cliente específico).
Además, el modelo también representa el tipo de relaciones entre las tablas, que pueden ser uno a uno, uno a muchos o muchos a muchos.
Podéis ver la estructura del modelo relacional de base de datos en el ejemplo:
Modelo jerárquico
Si vamos a emplear una base datos jerárquica, el modelo de datos que emplearemos será el jerárquico, que se caracteriza por presentar los datos en una estructura de árbol invertido, donde cada registro tiene un único nodo raíz, del que surgen otros nodos (registros); los nodos en un mismo nivel son nodos padre, cada nodo padre tiene el mismo nodo raíz, y puede tener nodos hijos, pero los nodos hijos solo pueden tener un nodo padre. Este modelo se emplea poco actualmente.
En este modelo, los registros de un mismo nivel se clasifican en un orden específico.
Modelo orientado a objetos
El modelo de la base de datos orientada a objetos define la base de datos como una colección de objetos utilizados en la programación orientada a objetos (es decir, que emplear lenguajes como C++ o Java, por ejemplo). Este modelo de base de datos utiliza tablas también, pero no solo se limita a ellas y permite almacenar información muy detallada sobre cada objeto.
Los objetos se dotan de un conjunto de características propias, que a su vez les diferencian de objetos similares. Los objetos similares pueden agruparse en una clase y cada objeto de esta es una instancia. Las clases intercambian datos entre sí a través métodos (mensajes).
Modelo entidad-relación
El modelo entidad-relación es básicamente el paso previo a uno modelo de bases datos relacional, puesto que se trata de un diagrama elaborado a través de unos elementos básicos y su relación entre ellos:
Entidades (son los objetos que se representan en la base de datos).
Atributos (son el contenido de la entidad, sus características). A los atributos se les asigna un clave para distinguirlos de los demás registros.
Relación (el vínculo que define la dependencia entre varias entidades).
Cardinalidad (es la participación entre entidades, que pueden ser uno a uno, uno a varios o varios a varios).
Modelos de bases de datos NoSQL
Ya hemos visto un modelo de bases de datos NoSQL, también llamadas bases de datos no relacionales, el modelo de base de datos orientado a objetos, pero existen otros:
Modelo de base de datos gráfico, similar al de red, pero más flexible, puesto que permite que cualquier nodo se pueda conectar a cualquier otro.
Modelo multivalor, que nace del modelo relacional, pero en el que los atributos pueden contener una lista de datos en vez de un solo punto de datos.
Modelo de documentos, empleado para almacenar y administrar documentos o datos semiestructurados, en vez de datos atómicos (como hacen las bases relacionales).