1. Libros y videos
  2. Diseño de bases de datos
  3. Modelado de datos
Extrait - Diseño de bases de datos Del análisis a la implementación
Extractos del libro
Diseño de bases de datos Del análisis a la implementación Volver a la página de compra del libro

Modelado de datos

Introducción

En este capítulo aprenderemos cómo modelar una base de datos, a través de los pasos que componen este proceso.

Definiremos los diferentes elementos de la vida real que queremos modelar, pasando por una revisión de sus propiedades y los diferentes modelos de representación.

Proporcionaremos una introducción a NoSQL, que proporciona un método alternativo a las bases de datos SQL tradicionales. La elección entre el uso de NoSQL o SQL se debe hacer en esta etapa del diseño de la base de datos.

Se introducirán métodos de modelado de datos y veremos las diferencias entre los distintos modelos, en función de la información que queramos representar.

Por último, presentaremos una herramienta de modelado de bases de datos: DbSchema.

¿Qué es el modelado de datos?

En los capítulos anteriores, definimos qué es una base de datos, qué tipos de bases de datos existen y cómo podemos realizar un análisis de necesidades para identificar correctamente la base de datos que se va a crear.

El siguiente paso es el modelado, pero ¿qué es el modelado? Una definición formal podría ser la siguiente: en el diseño de un sistema de información, el modelado de datos consiste en el análisis y diseño de la información contenida en el sistema, con el fin de representar la estructura de esta información y estructurar su almacenamiento y procesamiento informático.

No existe una única forma de modelar una base de datos, pero sí existen diferentes técnicas que serán más o menos adecuadas para realizar esta acción. De la misma manera que para representar los planos de un edificio no utilizamos las mismas técnicas de representación que para diseñar un vehículo antes de que se construya, existen diferentes tipos de bases de datos que requieren la aplicación de las técnicas de modelado adecuadas.

Por ejemplo, supongamos que queremos modelar la base de datos de una biblioteca. Suponemos que ya hemos hecho el análisis anterior, por lo que por ahora nos centraremos solo en el modelado.

Nuestra base de datos BIBLIOTECA contendrá...

Tipos de modelado de datos

Existen diferentes tipos de modelado de datos, aquí enumeramos los principales.

1. Modelo conceptual de datos

El objetivo del modelado conceptual de datos (MCD) es desarrollar un plan preliminar que podamos detallar más adelante, con el objetivo de definir los diferentes elementos que compondrán nuestra base de datos.

La función del modelo conceptual de datos es proporcionar una perspectiva centrada en los datos sobre cómo se relacionarán los diferentes elementos entre sí, de forma conceptual.

Para realizar este modelado de datos, lo primero es hacernos una serie de preguntas desde un punto de vista funcional:

  • ¿Qué datos queremos almacenar?

  • ¿Cómo se relacionan estos datos entre sí?

Un ejemplo de modelo conceptual de datos sería el siguiente:

images/cap3_pag5.png

Este tipo de relaciones nos permitirán definir, de forma lógica, cómo se organizará la información en nuestra base de datos. Por ejemplo, defina que un libro puede pertenecer a una sola categoría, pero que una categoría puede estar asociada a varios libros o a ninguno.

2. Modelo lógico de datos

El modelo lógico de datos (MDL) es un modelo que no es específico de una base de datos en particular y describe aspectos relacionados con las propiedades, relaciones, propiedades y atributos de cada entidad.

En este capítulo discutiremos este modelo lógico...

Pasos para modelar una base de datos

El proceso de modelado de una base de datos es claro e identificado y sigue un conjunto de pasos, que se repiten hasta que se crea la base de datos. Estos son los pasos a seguir.

1. Paso 1: Identificar las entidades y sus atributos

a. Entidades

Para comenzar a modelar nuestra base de datos, lo primero que debemos hacer es obtener los requisitos previos que determinan qué información queremos almacenar.

Un requisito previo es una condición que se debe cumplir o una característica necesaria de un sistema o software. En nuestro caso, se trata de una base de datos.

Una entidad es una cosa o persona en el mundo real. Puede ser un elemento tangible, como un libro o un estudiante, pero también puede ser un concepto abstracto, como "Calificación".

Por lo tanto, la primera acción que debemos realizar para modelar nuestra base de datos es pensar en las entidades que queremos que almacene.

Ahora vamos a poner un ejemplo práctico y empezar a modelar la base de datos de nuestra biblioteca. La pregunta que debemos hacernos ahora es: ¿cuáles son las entidades que queremos almacenar en la biblioteca?

Por el momento, no vamos a entrar en detalle sobre las mejores técnicas para modelar estas entidades, ni vamos a ver cómo crearlas de una manera práctica, simplemente vamos a pensar y escribir cuáles son las entidades que necesitamos crear.

Podemos identificar la necesidad de crear las siguientes entidades:

  • LIBRO: en esta entidad, almacenaremos la lista de libros que tenemos en nuestra biblioteca, así como la información que se puede utilizar para su clasificación o identificación.

  • AUTOR: esta entidad contiene información sobre los autores. Hay que tener en cuenta que un autor puede haber escrito varios libros, pero debe haber escrito al menos uno para ser considerado autor, al menos así será en nuestra base de datos.

  • CATEGORIA: esta entidad abstracta no define un objeto físico, como un libro, ni una persona, como un autor, sino que define un concepto abstracto como la categoría del libro. Esto es así porque en nuestra base de datos BIBLIOTECA queremos agrupar los diferentes libros que tienen una serie de características similares y, por lo tanto, consideramos que pertenecen a la misma categoría.

  • CLIENTE: en esta entidad almacenaremos información...

SQL frente a NoSQL

En este tema, veremos las diferencias entre SQL y NoSQL y cómo esta diferencia puede ser de vital importancia a la hora de definir qué modelo usar.

SQL significa literalmente Structured Query Language (lenguaje de consulta estructurado). Ha sido el lenguaje de base de datos más utilizado durante muchos años y se ha implementado como estándar.

A lo largo del libro, nos referiremos de forma independiente a las bases de datos SQL como bases de datos relacionales. Esto se debe a que, en general, las bases de datos SQL son relacionales y SQL se ha establecido como una nomenclatura estándar.

NoSQL busca romper con el estándar que establecía anteriormente SQL y ofrece una alternativa que funciona mejor para casos específicos. Sin embargo, esta no es una elección que se deba tomar a la ligera porque, para la mayoría de las bases de datos, SQL sigue siendo la primera opción a utilizar.

A continuación, profundizaremos en cada tipo de base de datos. Comenzaremos abordando los conceptos teóricos para que podamos ponerlos en práctica a través de ejemplos a medida que avanzamos en el tema.

1. SQL: Structured Query Language

SQL es un lenguaje muy utilizado cuando trabajamos con bases de datos. Existen algunas variaciones entre las diferentes implementaciones y versiones de los sistemas de gestión de bases de datos (SGBD) pero, por norma general, y sin entrar en demasiados detalles, ya que ese no es el foco de este libro, podemos ver a continuación algunos ejemplos de sentencias SQL.

SQL para recuperar la lista de ID_AUTOR de la tabla LIBRO:

SELECT ID_AUTOR FROM LIBRO; 

Existen otros tipos de sentencias SQL, pero el propósito de esta sección no es explicar cómo realizar consultas en SQL, sino explicar qué es una base de datos SQL y en qué se diferencia de una base de datos NoSQL.

La gran mayoría de las bases de datos comerciales que existen hoy en día están basadas en SQL. Existen soluciones comerciales que requieren una inversión económica importante, como Oracle, pero ofrecen características avanzadas y algunos beneficios como el soporte.

También existen soluciones gratuitas, como PostgreSQL, que ofrecen menos...

Herramientas para modelar una base de datos

Existen diferentes herramientas para modelar una base de datos. A lo largo de este capítulo, hemos visto representaciones de bases de datos. Es hora de sumergirse en las diferentes herramientas disponibles, con un enfoque particular en la aplicación que se ha utilizado durante la construcción de este capítulo.

La herramienta en cuestión se llama DbSchema y tiene una opción gratuita que permite el uso de funciones básicas. También hay una versión de pago, con opciones adicionales.

También es posible utilizar la versión de prueba durante 15 días. Durante este tiempo, puede utilizar las opciones de pago del producto y conocer las diferentes características sin tener que hacer ningún desembolso, asegurándose de que DbSchema satisfaga sus necesidades antes de comprarlo.

Las opciones que ofrece la versión gratuita son las siguientes:

  • ingeniería inversa de esquema,

  • diseños interactivos,

  • creación de nuevas tablas, columnas, etc.,

  • editor SQL.

En cuanto a la versión de pago, las opciones adicionales (además de las incluidas en la versión gratuita), son las siguientes:

  • creación del modelo lógico,

  • generación de documentación interactiva HTML5,

  • asistente para crear consultas,

  • creación de un modelo de datos offline, sin una conexión a la base de datos,

  • copia de seguridad del modelo generado en un archivo,

  • sincronización de los esquemas de la base de datos,

  • exploración visual de datos,

  • informes automáticos y exportables,

  • administración de bases de datos a través de herramientas gráficas,

  • generación de datos,

  • importación de datos de archivos CSV, XML o XLS.

1. Instalación de DbSchema

Vamos a instalar DbSchema. Para ello, el primer paso es descargar el archivo de instalación desde su página oficial.

 Para descargar DbSchema, puede utilizar el siguiente enlace: https://dbschema.com/download.html

 Una vez descargado DbSchema, siga las instrucciones para instalarlo de forma predeterminada y podrá usarlo. De forma predeterminada, usaremos la licencia Pro; podemos comprobarlo de la siguiente manera: Help - About DbSchema.

images/03RI11.png

Podremos utilizar...