13 puntos por GN⁺ 2024-07-25 | Aún no hay comentarios. | Compartir por WhatsApp

Introducción

En este tutorial de diseño de bases de datos se muestra cómo diseñar las tablas de una base de datos para un proyecto real y complejo. Se diseñará un clon de Google Calendar. Esta serie explica el enfoque del libro "Database Design using Minimal Modeling". Primero se construirá un modelo lógico completo que describa los datos del calendario, y luego se avanzará al diseño de tablas con base en ese modelo lógico.

Público objetivo

El objetivo de este libro es ayudarte a pasar de una idea ambigua a una definición completa de tablas de base de datos. Los primeros 3/4 del texto solo requieren una comprensión general de las bases de datos y explican el modelo lógico. El último 1/4 explica cómo pasar del modelo lógico a una estructura física de tablas.

Índice

  • Introducción
  • El enfoque de este libro
  • Descripción del problema
  • Parte 1: evento básico de día completo
  • Parte 2: evento basado en hora
  • Parte 3: evento recurrente de día completo
  • Parte 4: renderizado de la página del calendario
  • Parte 5: renderizado de la página del calendario para eventos basados en hora
  • Parte 6: modelo lógico completo hasta este punto
  • Parte 7: creación de tablas SQL
  • Conclusión
  • Siguientes pasos

El enfoque de este libro

La gente a menudo empieza por el diseño de tablas, pero aquí se adopta un enfoque diferente. Primero se escribe el modelo lógico y se definen los atributos de los datos y las relaciones entre entidades. Una vez decidido el modelo lógico, se diseñan las tablas físicas.

Descripción del problema

Se implementarán las funciones principales de Google Calendar. Los datos relacionados con usuarios se implementarán al mínimo. Los eventos tienen atributos como título, descripción y ubicación. La parte más compleja es la hora y la fecha.

Parte 1: evento básico de día completo

Anclas

Primero hay que encontrar las anclas. Las anclas son entidades, por ejemplo usuario (User) y evento (Event). Las anclas manejan el ID y el conteo.

Atributos del usuario

Se modelarán los datos mínimos sobre el usuario. Por ejemplo, el correo electrónico.

Atributos de eventos de día completo

Hay que almacenar el nombre del evento, la fecha de inicio y la fecha de fin.

Enlaces

Hay que decidir dónde almacenar la información de que un usuario específico creó un evento específico. Esto se maneja como un enlace, no como un atributo.

Parte 2: evento basado en hora

Zona horaria

Las zonas horarias se usan en muchos países y regiones. Las definiciones de zonas horarias cambian ocasionalmente. Se implementará un modelo mínimo relacionado con zonas horarias.

Atributos de la zona horaria

Se almacenará un nombre legible por humanos para la zona horaria.

Atributos de eventos basados en hora

Se almacenarán el nombre del evento, la hora de inicio y la hora de fin. Se usa hora local.

Enlaces

Se define el enlace entre la zona horaria y el evento basado en hora.

Similitudes entre eventos de fecha y eventos de hora

Se considerarán las similitudes entre los dos tipos de eventos. El modelado lógico permite posponer decisiones.

Parte 3: evento recurrente de día completo

Atributo #1, período

Se define un atributo sobre qué tan seguido se repite el evento.

Atributo #2, atributos entrelazados

Se define el período de los eventos recurrentes.

Atributo #3

Para los eventos mensuales, se define si se repiten en el mismo día o en el mismo día de la semana.

Día de la semana: microancla

Se decide dónde almacenar el día de la semana. Se introduce una nueva ancla.

Enlaces

Se define el enlace entre el día de la semana y el evento.

Verificación de finalización

Se vuelven a revisar los requisitos originales para confirmar si el modelado está completo.

Límite de recurrencia: más atributos entrelazados

Se define un atributo sobre hasta cuándo se repite el evento.

Parte 4: renderizado de la página del calendario

Hasta ahora se ha hablado de la parte de registro del calendario. Ahora es necesario mostrar la vista semanal del calendario del usuario.


Resumen de GN⁺

Este tutorial explica paso a paso un diseño de base de datos complejo para que incluso principiantes puedan entenderlo con facilidad. Al modelar las funciones principales de Google Calendar, ofrece un ejemplo útil que puede aplicarse a proyectos reales. Explica cómo el modelado lógico ayuda a evitar errores en el diseño de bases de datos y cómo conduce de forma natural al diseño físico de tablas. Un proyecto con funciones similares es Microsoft Outlook Calendar.

Aún no hay comentarios.

Aún no hay comentarios.