Conception de base de données. Meilleures pratiques

En prévision du démarrage du prochain flux au rythme "Base de données" Nous avons préparé un petit matériel d’auteur contenant des conseils importants pour la conception d’une base de données. Nous espérons que ce matériel vous sera utile.

Conception de base de données. Meilleures pratiques

Les bases de données sont partout : des plus simples blogs et annuaires aux systèmes d'information fiables et aux grands réseaux sociaux. Que la base de données soit simple ou complexe n’est pas aussi important qu’il est important de la concevoir correctement. Lorsqu'une base de données est conçue de manière irréfléchie et sans une compréhension claire de son objectif, elle est non seulement inefficace, mais la poursuite du travail avec la base de données sera un véritable tourment, une forêt impénétrable pour les utilisateurs. Voici quelques conseils de conception de bases de données qui vous aideront à créer un produit utile et facile à utiliser.

1. Déterminez à quoi sert le tableau et quelle est sa structure

Conception de base de données. Meilleures pratiques

Aujourd’hui, les méthodes de développement telles que Scrum ou RAD (Rapid Application Development) aident les équipes informatiques à développer rapidement des bases de données. Cependant, à mesure que le temps presse, la tentation est très grande de se lancer directement dans la construction d’une base, en imaginant vaguement quel est l’objectif lui-même, quels devraient être les résultats finaux.
 
C’est comme si l’équipe se concentrait sur un travail efficace et rapide, mais ce n’est qu’un mirage. Plus vous plongez profondément et rapidement dans les profondeurs du projet, plus il faudra de temps pour identifier et modifier les erreurs dans la conception de la base de données.

La première chose que vous devez décider est donc de définir l’objectif de votre base de données. Pour quel type d’application la base de données est-elle développée ? L'utilisateur travaillera-t-il uniquement avec des enregistrements et devra-t-il prêter attention aux transactions, ou est-il plus intéressé par l'analyse des données ? Où la base doit-elle être déployée ? Va-t-il suivre le comportement des clients ou simplement gérer les relations avec les clients ? 

Plus tôt l’équipe de conception répondra à ces questions, plus le processus de conception de base de données sera fluide.

2. Quelles données dois-je choisir pour le stockage ?

Conception de base de données. Meilleures pratiques

Planifier à l'avance. Réflexions sur ce que fera le site ou le système pour lequel la base de données est conçue dans le futur. Il est important d’aller au-delà des simples exigences des spécifications techniques. S'il vous plaît, ne commencez pas à penser à tous les types de données possibles qu'un utilisateur stockera un jour. Réfléchissez plutôt à la possibilité pour les utilisateurs d’écrire des messages, de télécharger des documents ou des photos ou d’échanger des messages. Si tel est le cas, vous devez leur allouer de l'espace dans la base de données.

Travaillez avec l'équipe, le service ou l'organisation pour lequel la base de conception sera prise en charge à l'avenir. Communiquez avec des personnes à différents niveaux, des spécialistes du service client aux chefs de service. De cette façon, grâce aux retours d’expérience, vous aurez une idée précise des exigences de l’entreprise. 

Inévitablement, les besoins des utilisateurs, même au sein d’un même service, entreront en conflit. Si vous rencontrez ce problème, n'ayez pas peur de vous fier à votre propre expérience et de trouver un compromis qui convient à toutes les parties et qui satisfasse l'objectif ultime de la base de données. Rassurez-vous : à l'avenir vous recevrez +100500 de karma et une montagne de cookies.

3. Modélisez les données avec soin

Conception de base de données. Meilleures pratiques

Il y a plusieurs points clés auxquels il faut prêter attention lors de la modélisation des données. Comme nous l'avons dit précédemment, l'objectif de la base de données détermine les méthodes à utiliser dans la modélisation. Si nous concevons une base de données pour le traitement des enregistrements en ligne (OLTP), c'est-à-dire pour créer, éditer et supprimer des enregistrements, nous utilisons la modélisation des transactions. Si la base de données doit être relationnelle, alors il est préférable d'utiliser une modélisation multidimensionnelle.

Au cours de la modélisation, des modèles de données conceptuels (CDM), physiques (PDM) et logiques (LDM) sont construits. 

Les modèles conceptuels décrivent les entités et les types de données qu'elles incluent, ainsi que les relations entre elles. Divisez vos données en morceaux logiques – cela rend la vie beaucoup plus facile.
L'essentiel est la modération, n'en faites pas trop.

Si une entité est très difficile à classer en un mot ou une phrase, il est alors temps d'utiliser des sous-types (entités enfants).

Si une entité mène sa propre vie, possède des attributs qui décrivent son comportement et son apparence, ainsi que ses relations avec d'autres objets, vous pouvez alors utiliser en toute sécurité non seulement un sous-type, mais également un supertype (entité parent). 

Si vous négligez cette règle, les autres développeurs seront confus dans votre modèle et ne comprendront pas pleinement les données et les règles pour les collecter.

Les modèles conceptuels sont mis en œuvre à l'aide de modèles logiques. Ces modèles sont comme une feuille de route pour la conception de bases de données physiques. Dans le modèle logique, les entités de données métier sont identifiées, les types de données sont déterminés et le statut de la clé de règle qui régit les relations entre les données est déterminé.

Ensuite, le modèle logique de données est comparé à la plate-forme SGBD (système de gestion de base de données) présélectionnée et un modèle physique est obtenu. Il décrit comment les données sont physiquement stockées.

4. Utilisez les bons types de données

Conception de base de données. Meilleures pratiques

L’utilisation d’un mauvais type de données peut entraîner des données moins précises, des difficultés à joindre des tables, des difficultés à synchroniser les attributs et une taille de fichier gonflée.
Pour garantir l'intégrité des informations, un attribut doit contenir uniquement les types de données qui lui sont acceptables. Si l'âge est saisi dans la base de données, assurez-vous que la colonne stocke des nombres entiers d'un maximum de 3 chiffres.

Créez un minimum de colonnes vides avec une valeur NULL. Si vous créez toutes les colonnes comme NULL, c'est une grosse erreur. Si vous avez besoin d'une colonne vide pour exécuter une fonction métier spécifique, lorsque les données sont inconnues ou n'ont pas encore de sens, n'hésitez pas à la créer. Après tout, on ne peut pas remplir à l'avance les colonnes « Date de décès » ou « Date de licenciement » ; nous ne sommes pas des devins pointant le ciel du doigt :-).

La plupart des logiciels de modélisation (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) data vous permet de créer des prototypes de régions de données. Cela garantit non seulement le type de données correct, la logique d'application et de bonnes performances, mais également que la valeur est requise.

5. Soyez naturel

Conception de base de données. Meilleures pratiques

Lorsque vous décidez quelle colonne d'un tableau utiliser comme clé, tenez toujours compte des champs que l'utilisateur peut modifier. Ne les choisissez jamais comme clé - une mauvaise idée. Tout peut arriver, mais vous devez vous assurer que c'est unique.

Il est préférable d’utiliser une clé naturelle ou commerciale. Il a une signification sémantique, vous éviterez donc les duplications dans la base de données. 

Sauf si la clé métier est unique (prénom, nom, poste) et est répétée dans différentes lignes du tableau ou si elle doit changer, alors la clé artificielle générée doit être désignée comme clé primaire.

6. Normaliser avec modération

Conception de base de données. Meilleures pratiques

Pour organiser efficacement les données dans une base de données, vous devez suivre un ensemble de directives et normaliser la base de données. Il y a cinq formes normales à suivre.
Avec la normalisation, vous évitez les redondances et garantissez l’intégrité des données utilisées dans votre application ou votre site.

Comme toujours, tout doit se faire avec modération, même normalisation. S'il y a trop de tables dans la base de données avec les mêmes clés uniques, alors vous vous êtes laissé emporter et avez sur-normalisé la base de données. Une normalisation excessive affecte négativement les performances de la base de données.

7. Testez tôt, testez souvent

Conception de base de données. Meilleures pratiques

Un plan de test et des tests appropriés doivent faire partie de la conception de la base de données.

La meilleure façon de tester votre base de données consiste à utiliser l'intégration continue. Simulez un scénario de « journée dans la vie d'une base de données » et vérifiez si tous les cas extrêmes sont traités et quelles interactions utilisateur sont probables. Plus tôt vous détecterez les bugs, plus vous économiserez du temps et de l’argent.

Ce ne sont là que sept conseils que vous pouvez utiliser pour concevoir une base de données de grande productivité et efficacité. Si vous les suivez, vous éviterez la plupart des maux de tête à l’avenir. Ces conseils ne représentent que la pointe de l’iceberg en matière de modélisation de bases de données. Il existe un grand nombre d'astuces pour la vie. Lesquels utilisez-vous ?

Source: habr.com

Ajouter un commentaire