Développement d'un plan de base de données
Lorsque vous créez une base de données, la première étape consiste à établir un plan qui servira à la fois de guide lors de l'implémentation et, après cette dernière, de spécification fonctionnelle. La complexité et le niveau de détail de la structure d'une base de données sont déterminés par la complexité et la taille de l'application, ainsi que par le nombre des utilisateurs.
La nature et le niveau de complexité d'une application de base de données, ainsi que le processus de planification, peuvent considérablement varier d'un cas à l'autre. Une base de données peut être relativement simple et conçue pour être utilisée par une seule personne, ou elle peut être grande et complexe, par exemple si elle est conçue pour prendre en charge les opérations effectuées par les milliers de clients d'une banque. Dans le premier cas, la conception de la base de données se réduira à quelques notes jetées sur une feuille de papier. Celle d'une base de données complexe se veut un document formel, constitué de centaines de pages où chaque détail est analysé.
Sans préoccupation de taille ni de complexité, l'établissement du plan d'une base de données comporte les étapes suivantes :
collecte des informations ;
identification des objets ;
modélisation des objets ;
identification des types d'informations pour chaque objet ;
identification des relations entre les objets.
Collecte des informations
Avant de créer une base de données, vous devez clairement définir la fonction que cette base de données doit assurer. Si la base de données est destinée à remplacer un système d'information basé sur l'utilisation du papier ou sur des opérations manuelles, ce système vous fournira l'essentiel des informations dont vous avez besoin. Vous devez interroger toute personne impliquée dans le système afin de déterminer ce qu'elle fait et ce dont elle a besoin dans la base de données. Il faut par ailleurs déterminer les fonctions que les futurs utilisateurs attendent du nouveau système et identifier les problèmes, les limites et les goulots d'étranglement du système en place. Rassemblez des copies des questionnaires adressés aux clients, des listes d'inventaire, des rapports de gestion et de tous les documents qui peuvent faire partie du système existant ; ils vous seront utiles lorsque vous concevrez la base de données et ses interfaces.
Identification des objets
Durant la collecte des informations, vous devez identifier les objets et les entités clés qui seront gérés par la base de données. Un objet peut être un élément tangible, tel qu'un produit ou une personne, ou intangible, tel qu'une transaction commerciale, un service d'une société ou une période de paie. Il existe en général quelques objets primaires ; une fois qu'ils ont été identifiés, il devient facile de déterminer les éléments connexes. Chaque élément de votre base de données doit être associé à une table.
L'objet primaire de l'exemple de base de données AdventureWorks2008R2 incluse dans SQL Server est une bicyclette. Les objets associés à la bicyclette dans l'activité de cette société sont les employés qui la fabriquent, les fournisseurs qui vendent ses composants, les clients qui l'achètent et les transactions commerciales réalisées avec ceux-ci. Chacun de ces objets constitue une table de la base de données.
Modélisation des objets
Une fois les objets du système identifiés, vous devez les enregistrer de façon à constituer une représentation visuelle du système. Vous pouvez utiliser votre modèle de base de données comme référence lors de l'implémentation de la base de données.
À cette fin, les développeurs de bases de données ont recours à divers outils, qui vont du crayon et du papier aux logiciels complexes créés spécialement pour la modélisation conceptuelle des bases de données, en passant par les traitements de texte et les tableurs. Quel que soit l'outil que vous déciderez d'utiliser, il est important de le tenir à jour.
Identification des types d'informations pour chaque objet
Une fois les objets primaires identifiés comme candidats pour les tables, l'étape suivante consiste à identifier les types d'informations à stocker pour chaque objet. Ils constitueront les colonnes de la table de l'objet. Les colonnes d’une base de données contiennent quelques types d'informations communs :
Les colonnes de données brutes
Celles-ci stockent des informations tangibles (des noms, par exemple) déterminées par une source extérieure à la base de données.
Les colonnes catégorielles
Elles classifient ou regroupent les données et en stockent une sélection réduite ; par exemple, vrai/faux, marié/célibataire et vice-président/directeur/chef de service.
Les colonnes d’identification
Elles offrent un mécanisme d'identification des éléments stockés dans la table. Le nom de ces colonnes contient généralement un identificateur ou un nombre (par exemple employee_id, invoice_number et publisher_id). La colonne d'identification est le composant principal employé à la fois par les utilisateurs et par le traitement interne de la base de données afin d'accéder à une ligne de données d'une table. Parfois, l'objet possède un identificateur de forme tangible utilisé dans la table, tel qu'un numéro de sécurité sociale, mais dans la plupart des cas, vous pouvez définir la table de telle sorte qu'un identificateur artificiel fiable soit créé pour la ligne.
Les colonnes relationnelles ou référentielles
Elles établissent un lien entre les informations contenues dans une table et les informations reliées dans une autre table. Par exemple, une table qui assure le suivi des ventes aura normalement un lien avec la table des clients, de sorte que toutes les informations relatives à un client puissent être associées à la transaction le concernant.
Identification des relations entre les objets
Un des points forts des bases de données relationnelles est leur capacité à relier des informations concernant différents éléments de la base de données. Les types d'informations isolés peuvent être stockés à des endroits différents, mais le moteur de la base de données peut combiner ces données si cela s'avère nécessaire. Pour identifier les relations entre les objets durant le processus de conception, il convient d'examiner les tables afin de déterminer les liens logiques qui les unissent, et d'ajouter des colonnes relationnelles établissant des liens entre elles.
Par exemple, le concepteur de la base de données AdventureWorks2008R2 a créé, dans celle-ci, des tables de produits et de modèles de produit. La table Production.Product contient les informations relatives à chaque produit ; elle se compose de la colonne d'identificateur ProductID et de colonnes de données indiquant le nom, le prix, la couleur, la taille et le poids du produit. La table contient des colonnes catégorielles, telle que Class ou Style, qui permettent de regrouper les produits par types. En outre, chaque produit correspond à un modèle de produit, mais ces informations sont stockées dans une autre table. Par conséquent, la table Production.Product possède une colonne ProductModelID qui contient uniquement l'ID du modèle de produit. Lorsqu'une ligne de données est ajoutée pour un produit, la valeur de ProductModelID doit exister dans la table Production.ProductModel.