Intégrité référentielle avec SQL Server
par Kalen Delaney
La maintenance des relations logiques entre les tables est un élément essentiel de la gestion de base de données. Voici comment utiliser les nouvelles méthodes d'application de l'intégrité référentielle dans SQL Server 2000.Le maintien de relations solides est primordial.
La création et le maintien de relations logiques entre les tables constituent une partie fondamentale du travail avec des bases de données relationnelles. La plupart des bases de données doivent entretenir certaines relations, sous peine de corruption logique des données. Lorsque de telles relations existent, on dit que ces données disposent d'une intégrité référentielle. L'une des tables est la table référencée et l'autre, la table de référence ; les valeurs de la table de référence doivent correspondre aux valeurs de la table référencée. (Certaines utilisateurs qualifient cette relation de tables parent/enfant. Toutefois, cette terminologie implique une hiérarchie évitée par le modèle relationnel). SQL Server peut mettre en oeuvre automatiquement l'intégrité référentielle à travers des contraintes de clés étrangères que vous aurez préalablement définies. Cette fonction est appelée intégrité référentielle déclarative (en anglais "Declarative Referential Integrity" ou DRI) en raison de sa présence dans la définition de la table. On peut également utiliser d'autres fonctions, comme les déclencheurs, pour imposer des relations ; on parle alors d'intégrité référentielle de procédure. Dans cet article, je présente comment gérer l'intégrité référentielle dans SQL Server, en accordant une attention particulière aux nouvelles fonctions intéressantes de SQL Server 2000.
SQL Server 7.0 et les versions précédentes disposaient d'une seule méthode pour traiter les tentatives de violation des contraintes de clés étrangères. Si un utilisateur tente de modifier les données d'une table d'une manière qui pourrait violer l'intégrité référentielle (telle qu'elle est définie dans les clés étrangères), SQL Server empêche cette modification et renvoie un message d'erreur. SQL Server 2000 dispose d'une nouvelle fonction cascade pouvant traiter les violations de l'intégrité référentielle d'une autre manière, comme je vais vous le démontrer.
Pour commencer, analysons rapidement un exemple permettant de clarifier ce que représente l'intégrité référentielle. La base de données Northwind dispose d'une table appelée Orders, et d'une autre, appelée Order Details. Dans la table Orders, la colonne OrderId représente la clé primaire identifiant chaque commande de manière unique. La table Order Details possède également une colonne OrderId mais, dans cette table, la colonne est une clé étrangère qui doit correspondre à un OrderId existant de la table Orders. Dans cet exemple, la table Orders est la table référencée et la table Order Details est la table de référence. Si on définit une contrainte de clé étrangère pour mettre en oeuvre la relation entre les tables Orders et les Order Details, SQL Server vérifie que la modification de l'une de ces tables ne viole pas la relation. Si par exemple on essaye de supprimer un enregistrement de la table Orders alors que l'OrderId de cet enregistrement existe dans la table Order Details, la suppression violera la contrainte d'intégrité référentielle. Tenter de mettre à jour une colonne OrderId de la table Orders lorsque la valeur d'origine, et non la nouvelle valeur, existe dans les Order Details, constitue également une violation. En outre, SQL Server doit vérifier chaque insertion dans Order Details pour s'assurer que le nouvel OrderId existe dans la table Orders, et doit vérifier toutes les mises à jour de la colonne OrderId dans Order Details.
Les 7 étapes vers le data warehouse
Les data warehouses sont un rêve pour les analystes : toute l'information concernant
les activités de l'entreprise est regroupée en un seul lieu et prête à être utilisée
par un ensemble cohérent d'outils d'analyse. Mais comment transformer le rêve
en réalité ?
Pour atteindre ce Nirvana des décideurs qu'est le data warehouse, il faut tout
d'abord bien penser le système. Vous devez comprendre le type de questions que
les utilisateurs vont lui poser (par exemple, combien de nouveaux clients par
trimestre ou quel segment de marché achète le plus d'environnements de développement
d'applications dans la région Ouest) car la raison d'être des systèmes de data
warehouse est de fournir aux décideurs l'information adaptée et à jour dont ils
ont besoin pour faire les bons choix.
Pour illustrer le processus, nous utiliserons un data warehouse créé pour une
société imaginaire fournissant des logiciels de développement d'applications,
du consulting, du personnel en délégation et des formations. Le marché évolue
très rapidement pour la société. Ses dirigeants ont donc besoin de savoir quels
ajustements dans leur modèle économique et leurs méthodes commerciales ils doivent
faire pour permettre à l'entreprise de poursuivre sa croissance. Pour aider la
société, nous avons travaillé avec l'encadrement supérieur pour concevoir une
solution.
Tout d'abord, nous avons déterminé les objectifs de l'entreprise pour ce nouveau
système. Ensuite, nous avons collecté et analysé des informations que la société.
Nous avons identifié les processus fondamentaux que l'entreprise devait surveiller
et construit un modèle conceptuel des données. Puis, nous avons situé les sources
de données et prévu les transformations nécessaires à leur appliquer. Enfin, nous
avons fixé la durée de conservation des données.
SQL Server 2000 : vers les sommets
Imaginez que vous pouvez construire la maison de vos rêves. Pas de problème de
budget, mais vous voulez emménager le plus vite possible. Dans ce cas, il vous
faudra choisir entre avoir la perfection avant d'emménager et prendre possession
de la maison le plus vite possible. Vous prendrez probablement du temps pour concevoir
les fondations et les pièces essentielles, quitte à ajouter une aile ou à aménager
les combles par la suite.
Le processus d'évolution de SQL Server ressemble un peu à la construction de cette
maison. Il y a plusieurs années, Microsoft a réuni plusieurs des meilleurs spécialistes
mondiaux des bases de données (de Microsoft et d'ailleurs) et leur a demandé de
créer la base de données de leurs rêves. On peut considérer SQL Server 7.0 comme
les fondations de ce projet.
Le code de SQL Server 7.0 comportait des évolutions majeures par rapport au code
de base mais les DBA et les développeurs ne pouvaient pas voir ou utiliser de
nombreuses améliorations. Microsoft SQL Server 7.0 comportait de nombreuses améliorations
visibles (telles que les services OLAP), mais la plupart des efforts de reengineering
se situait au niveau de la page ou du stockage. J'ai découvert SQL Server 2000
à la conférence SQL Server Most Valuable Professional (MVP) de Microsoft en octobre
dernier.
Les premiers briefings portaient principalement sur l'architecture interne et
je suis reparti avec un tuyau important : SQL Server 2000 s'appuie sur les fondations
de SQL Server 7.0 et rénove une partie de la plomberie et du réseau électrique.
En fait, à bien des égards, SQL Server 2000 c'est la maison terminée, la grande
extension et les salles de projection privées dont vous avez toujours révées.
Les plus consultés sur iTPro.fr
- Le trilemme de la souveraineté : le coût caché du cloud qui freine l’IA en Europe
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Semperis : gouverner l’identité à l’ère des agents IA
- Analyse Patch Tuesday Mars 2026
Articles les + lus
Fuites de données : la France, 2ème pays le plus touché au monde début 2026
Redéfinir la confiance à l’ère de l’IA agentique : les entreprises sont-elles prêtes pour le SOC autonome ?
Les défaillances des pipelines de données pèsent lourdement sur la performance des grandes entreprises
Les nouvelles menaces liées à l’IA obligent les entreprises à dépasser la seule stratégie de sauvegarde
Sauvegarder les données ne suffit plus : il faut refonder le poste de travail
À la une de la chaîne Data
- Fuites de données : la France, 2ème pays le plus touché au monde début 2026
- Redéfinir la confiance à l’ère de l’IA agentique : les entreprises sont-elles prêtes pour le SOC autonome ?
- Les défaillances des pipelines de données pèsent lourdement sur la performance des grandes entreprises
- Les nouvelles menaces liées à l’IA obligent les entreprises à dépasser la seule stratégie de sauvegarde
- Sauvegarder les données ne suffit plus : il faut refonder le poste de travail
