Tutorial de diseño de bases de datos para Google Calendar
(kb.databasedesignbook.com)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.