Les avantages d’un système de Vues SQL Server

Les vues SQL existent depuis longtemps et font partie des fondements du SQL, elles permettent de gagner au niveau développement comme au niveau méthodologique, mais leur potentiel reste peu ou mal exploité.

Voici donc une solution (parmi d’autres) pouvant aider à mettre en place ce système qui demandera du travail au niveau de la base de données, mais également sur l’organisation des équipes et leurs méthodes de travail pour s’approcher d’un modèle Agile.

Gagner du temps sur l’écriture de requêtes :

C’est certainement l’utilisation première et la plus connue des vues, elles nous permettent de stocker des requêtes avec de multiples jointures que nous écrivons tous les jours et de simplifier son utilisation au jour le jour.
L’économie de temps est évidente et son utilisation permet aussi aux nouveaux arrivants d’avoir un code de référence pour analyser le schéma de données, si le modèle de donnée n’est pas fourni.

Centralisation des règles métier

Le cas typique est une base de données utilisée par plusieurs services comme dans le schéma suivant :

Without view

Il est courant de rencontrer ce genre de projet où la base de données est requêtée par plusieurs pôles de développement avec des outils différents : simples requêtes SQL, applications tierces ou écrans développés en .NET / Java, des outils tiers comme Business Object et bien d’autres.

Les utilisateurs ayant leur préférences, les outils développés font parfois doublons entre technologie, et même sans cela, les règles métier de base peuvent être communes à tous, ce qui demande un investissement conséquent afin de vérifier la cohérence des données retournées dans les différents outils, et un effort supplémentaire pour faire corriger les erreurs dans tous les systèmes.
Il est possible d’optimiser le processus en mettant en place un système de vues en amont, comme dans le schéma suivant.

With view

Celui-ci demande un peu plus de travail de la part du pôle datawarehouse pour mettre en place les vues ou de désigner une équipe qui en aura la responsabilité, et corrigera les anomalies détectées par les pôles clients. Avec l’avantage qu’elles ne seront corrigées qu’à un seul et unique emplacement : la vue impactée.
Le plus rapide est de partir des jeux de requêtes utilisés par les développeurs Datawarehouse pour les vérifications concernant la qualité des données.
Cette organisation nécessite une implication avancée des développeurs base de données et des équipes des différents projets. On pourra facilement mettre en place une structure de développement en méthodes Agiles avec des équipes pluridisciplinaires.
Par expérience je sais que le gain de temps est conséquent.

Sécurisation de l’accès aux données

Il est également possible de gérer l’accès aux données grâce à ce système de vue, et cela de deux manières différentes :

– Vues avec droits paramétrés :

Secure 1

Chaque vue, afin de limiter l’accès aux données d’une même table ou d’un jeu de table, sera paramétré dans son code. Ensuite, chaque vue aura des droits spécifiques donnants accès à chaque service.

– Paramétrage des droits avec table de correspondances :

Chaque utilisateur ou groupe d’utilisateurs, possède des droits spécifiques et accède à une quantité limitée de données.
Cette solution à l’avantage de limiter le nombre de vues et de pouvoir maintenir les droits d’accès avec une simple table ou avec une application à part.

Secure 2

Par exemple, un utilisateur fait appel à une vue, qui, grâce à son identifiant vérifiera ses droits renseignés dans la table de paramétrage.
Ici, notre utilisateur « A » ne doit avoir accès qu’aux données françaises, la vue limitera donc les lignes de la table de fait retournées, afin qu’il ne puisse pas visualiser les informations hors de son périmètre.

Pour aller plus loin :

Correctement implémentée, une solution de vue est très performante que ce soit au niveau de la centralisation des informations ou de l’optimisation du travail entre les équipes, tout en restant suffisamment souple pour supporter de futures évolutions sans avoir à lancer de gros projets.
D’autant plus que SQL Server propose des évolutions pour améliorer les performances du sytsème, comme les vues partitionnées et les vues indexées pour ne citer qu’elles.

Pas de commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *