127 votes

Quelle est une bonne raison d'utiliser des vues SQL?

Je lis la bible de SQL Server 2008 et je couvre la section des vues. Mais l'auteur n'explique vraiment pas le but des vues. Quel est un bon usage pour les vues? Devrais-je les utiliser sur mon site Web et quels sont leurs avantages?

115voto

DVK Points 63282

Une autre utilisation qu'aucune des réponses précédentes semblent avoir mentionné, c'est plus facile de déploiement de la structure du tableau des changements.

Dites, vous souhaitez à la retraite d'un tableau (T_OLD) contenant des données d'utilisateurs actifs, et au lieu d'utiliser une table avec des données similaires (nommé T_NEW) mais qui contient des données pour l'actif ou inactif utilisateurs, avec une colonne supplémentaire "active".

Si votre système(s) ont gazillion requêtes qui n' SELECT whatever FROM T_OLD WHERE whatever, vous avez deux choix pour le déploiement:

1) la Dinde Froide - Modifier la DB, et dans le même temps, le changement, et le test de libération de nombreux morceaux de code qui contenait dit requête. TRÈS dur à faire (ou même de coordonner), très risqué. Mauvais.

2) Progressive - modifier la DB en créant T_NEW, à l'abandon T_OLD et au lieu de créer une VUE appelée T_OLD qui imite le T_OLD de table 100% (e.g l'avis de requête est - SELECT all_fields_except_active FROM T_NEW WHERE active=1).

Qui vous permettra d'éviter de vous libérer de TOUT code qui permet actuellement de T_OLD, et faire les changements à migrer du code de T_OLD à T_NEW à loisir.

C'est un simple exemple, il y a d'autres beaucoup plus impliqués.

P. S. d'autre part, vous devriez probablement avoir eu une procédure stockée API au lieu de diriger les requêtes de T_OLD, mais ce n'est pas toujours le cas.

62voto

David Stratton Points 45298

(Copié à partir de la première tutoriel qui est venu dans une recherche Google, mais il a tous les avantages que j'aurais tapé manuellement moi-même.)

Les points de vue ont les avantages suivants:

  • Sécurité - les Vues peuvent être rendus accessibles à des utilisateurs, tandis que les tables sous-jacentes ne sont pas directement accessibles. Cela permet à l'administrateur de la base de donner aux utilisateurs uniquement les données dont ils ont besoin, tout en protégeant les données d'autres dans la même table.
  • Simplicité - les Vues peuvent être utilisés pour masquer et de la réutilisation des requêtes complexes.
  • Nom de la colonne de Simplication ou des Précisions - les Vues peuvent être utilisées pour fournir des alias sur les noms des colonnes pour les rendre plus mémorable et/ou significatives.
  • Tremplin - Vues peuvent fournir un tremplin dans un "multi-niveau de la requête". Par exemple, vous pouvez créer une vue d'une requête qui compte le nombre de ventes de chaque vendeur avait fait. Vous pouvez ensuite requête de ce point de vue pour le groupe de l'équipe de vente par le nombre de ventes qu'ils avaient fait.

22voto

user210748 Points 89

Quelques raisons de Wikipédia:

Les vues peuvent fournir des avantages sur les tables:

  1. Les vues peuvent représenter un sous-ensemble des données contenues dans une table
  2. Les vues peuvent se joindre et de simplifier plusieurs tables en une seule table virtuelle
  3. Les vues peuvent agir comme des tables agrégées, où le moteur de base de données des agrégats de données (somme, moyenne...) et présente les résultats calculés dans le cadre des données
  4. Les vues peuvent masquer la complexité des données; par exemple, un point de vue pourrait apparaître comme Sales2000 ou Sales2001, de manière transparente partitionnement de la réelle de la table sous-jacente
  5. Vues prennent très peu d'espace pour stocker; la base de données ne contient que les définition d'un point de vue, pas une copie de toutes les données qu'il présente
  6. Selon le moteur SQL utilisé, les opinions peuvent fournir une sécurité supplémentaire
  7. Les vues peuvent limiter le degré de l'exposition d'une table ou des tables pour le monde extérieur

15voto

astander Points 83138

Les VUES peuvent être utilisées comme réutilisable sections de SÉLECTIONNER/CODE, qui peuvent être inclus dans d'autres sélectionne/requêtes à être rejoint, et l'utilisation de divers filtres différents, sans avoir à recréer l'ensemble de SÉLECTIONNER à chaque fois.

Ceci est également des lieux de la logique, en un seul endroit, de sorte que vous n'avez pas à modifier tous la base de code.

Jetez un oeil à

Le choix Entre les Procédures Stockées, les Fonctions, les Vues, les Triggers en ligne de SQL

La principale beauté de la vue, c'est qu'il peut être utilisé comme une table dans la plupart des les situations, mais contrairement à un tableau, il peut encapsuler des calculs très complexes et couramment utilisé rejoint. Il peut également utiliser à peu près n'importe quel objet dans la base de données sauf pour les procédures stockées. Vues sont plus utiles si vous avez toujours besoin d' pour rejoindre le même ensemble de tables de dire un De commande avec une Commande de plus de Détails pour se résumé de calcul de champs, etc.

11voto

le dorfier Points 27267

Une vue est une couche d'abstraction et elle agit comme toute bonne couche d'abstraction, notamment en encapsulant le schéma de base de données et en vous protégeant des conséquences de la modification des détails de l'implémentation interne.

C'est une interface.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X