13 points par GN⁺ 2024-07-25 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Introduction

Ce tutoriel de conception de base de données montre comment concevoir les tables d’un projet réel complexe. Nous allons concevoir un clone de Google Calendar. Cette série explique l’approche du livre "Database Design using Minimal Modeling". Nous commencerons par construire un modèle logique complet décrivant les données d’un calendrier, puis nous passerons à la conception des tables à partir de ce modèle logique.

Public visé

L’objectif de ce livre est d’aider à passer d’une idée ambiguë à une définition complète des tables d’une base de données. Les trois premiers quarts du texte ne nécessitent qu’une compréhension générale des bases de données et expliquent le modèle logique. Le dernier quart décrit comment passer du modèle logique à la structure physique des tables.

Sommaire

  • Introduction
  • L’approche de ce livre
  • Description du problème
  • Part 1 : événements de base sur une journée entière
  • Part 2 : événements basés sur l’heure
  • Part 3 : événements récurrents sur une journée entière
  • Part 4 : rendu de la page du calendrier
  • Part 5 : rendu de la page du calendrier pour les événements basés sur l’heure
  • Part 6 : modèle logique complet à ce stade
  • Part 7 : création des tables SQL
  • Conclusion
  • Étapes suivantes

L’approche de ce livre

Les gens commencent souvent par la conception des tables, mais nous adoptons une approche différente. Nous rédigeons d’abord le modèle logique et définissons les attributs des données ainsi que les relations entre les entités. Une fois le modèle logique arrêté, nous concevons les tables physiques.

Description du problème

Nous allons implémenter les principales fonctionnalités de Google Calendar. Les données liées aux utilisateurs seront implémentées au minimum. Les événements ont des attributs tels que le titre, la description et le lieu. La partie la plus complexe concerne l’heure et la date.

Part 1 : événements de base sur une journée entière

Ancres

Nous devons d’abord trouver les ancres. Une ancre est une entité, par exemple utilisateur (User) et événement (Event). Les ancres gèrent les ID et le comptage.

Attributs de l’utilisateur

Nous allons modéliser un minimum de données pour l’utilisateur, par exemple l’e-mail.

Attributs des événements sur une journée entière

Nous devons stocker le nom de l’événement, la date de début et la date de fin.

Liens

Nous devons décider où stocker l’information indiquant qu’un utilisateur donné a créé un événement donné. Cela est traité comme un lien et non comme un attribut.

Part 2 : événements basés sur l’heure

Fuseau horaire

Les fuseaux horaires sont utilisés dans de nombreux pays et régions. Leur définition change parfois. Nous allons implémenter un modèle minimal lié aux fuseaux horaires.

Attributs du fuseau horaire

Nous allons stocker un nom lisible par un humain pour le fuseau horaire.

Attributs des événements basés sur l’heure

Nous allons stocker le nom de l’événement, l’heure de début et l’heure de fin. L’heure locale est utilisée.

Liens

Nous définissons le lien entre le fuseau horaire et les événements basés sur l’heure.

Similarités entre événements par date et événements par heure

Nous allons examiner les similarités entre ces deux types d’événements. La modélisation logique permet de repousser certaines décisions.

Part 3 : événements récurrents sur une journée entière

Attribut n°1 : la fréquence

Nous définissons un attribut indiquant à quelle fréquence l’événement se répète.

Attribut n°2 : attributs imbriqués

Nous définissons la périodicité des événements récurrents.

Attribut n°3

Pour les événements mensuels, nous définissons s’ils se répètent le même jour ou le même jour de la semaine.

Jour de la semaine : micro-ancre

Nous décidons où stocker le jour de la semaine. Nous introduisons une nouvelle ancre.

Liens

Nous définissons le lien entre le jour de la semaine et l’événement.

Vérification de complétude

Nous revoyons les exigences d’origine pour vérifier si la modélisation est terminée.

Limite de récurrence : davantage d’attributs imbriqués

Nous définissons un attribut indiquant jusqu’à quand l’événement se répète.

Part 4 : rendu de la page du calendrier

Jusqu’ici, nous avons discuté de la partie enregistrement du calendrier. Nous devons maintenant afficher la vue hebdomadaire du calendrier de l’utilisateur.


Résumé de GN⁺

Ce tutoriel explique pas à pas une conception de base de données complexe afin de la rendre accessible même aux débutants. En modélisant les principales fonctionnalités de Google Calendar, il fournit un exemple utile applicable à des projets réels. Il montre comment la modélisation logique permet d’éviter les erreurs de conception de base de données et mène naturellement à la conception des tables physiques. Microsoft Outlook Calendar est un exemple de projet proposant des fonctionnalités similaires.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.