97 votes

A quoi servent les vues?

Je suis juste essayer d'obtenir une idée générale de ce que les points de vue sont utilisés pour RDBMSes. C'est-à-dire, je sais quel point de vue est et comment en faire un. Je sais aussi ce que j'ai utilisé dans le passé.

Mais je veux m'assurer d'avoir une compréhension approfondie de ce point de vue est utile et ce qu'une vue ne devrait pas être utile pour. Plus précisément:

  1. Qu'est ce qu'une vue?
  2. Existe-il des situations dans lesquelles il est tentant d'utiliser un point de vue lorsque vous ne devriez pas les utiliser?
  3. Pourquoi voudriez-vous utiliser une vue à la place de quelque chose comme une fonction table ou vice-versa?
  4. Existe-il des circonstances que d'un point de vue pourrait être utile que n'est pas visible au premier coup d'œil?

(Et pour l'enregistrement, certaines de ces questions sont volontairement naïf. C'est en partie un concept.)

46voto

Lou Franco Points 48823

D'une certaine manière, une vue est comme une interface. Vous pouvez modifier la structure de la table sous-jacente à votre guise, mais la vue permet au code de ne pas avoir à changer.

Les vues constituent un bon moyen de fournir quelque chose de simple aux rédacteurs de rapports. Si les utilisateurs de votre entreprise souhaitent accéder aux données à partir de Crystal Reports, vous pouvez leur donner des vues qui simplifient les données dans leur compte, voire même les dénormaliser.

45voto

6eorge Jetson Points 1541

1) qu'est Ce qu'une vue?

IOPO Dans Un Seul Endroit

•Si vous considérez que les données lui-même ou les requêtes qui font référence à des tables jointes, en utilisant un point de vue évite toute redondance inutile.

•Vue de fournir une couche d'abstraction, empêchant un accès direct aux tables (et les menottes de référencement physique dépendances). En fait, je pense que c'est une bonne pratique1 de n'offrir qu'une abstraction de l'accès à vos données sous-jacente (à l'aide de points de vue et les fonctions de table), y compris des points de vue comme

CREATE VIEW AS

1je hafta admettre qu'il y a une bonne affaire de "Faites ce que je dis; ne fais pas comme moi" dans les conseils ;)

2) existe-il des situations dans lesquelles il est tentant d'utiliser un point de vue lorsque vous ne devriez pas les utiliser?

La Performance en vue rejoint l'habitude d'être un sujet de préoccupation (par exemple, SQL 2000). Je ne suis pas expert, mais je n'ai pas inquiet à ce sujet dans un moment. (Je ne peux penser à l'endroit où je suis actuellement, à l'aide de la vue jointures).

Une autre situation où une vue peut-être exagéré, c'est quand la vue n'est référencé à partir d'un appel d'emplacement et d'une table dérivée peut être utilisé à la place. Tout comme un type anonyme est préférable à une classe .NET si le type anonyme est utilisé uniquement/référencés.

• Voir la table dérivée dans la description http://msdn.microsoft.com/en-us/library/ms177634.aspx

3) Pourquoi voudriez-vous utiliser une vue à la place de quelque chose comme une fonction table ou vice-versa?

(Mis à part les raisons de performances) Une fonction table est fonctionnellement équivalent à une vue paramétrée. En fait, une commune de la simple fonction table de cas d'utilisation consiste simplement à ajouter une clause where filtre à un existant déjà vue dans un seul objet.

4) existe-il des circonstances que d'un point de vue pourrait être utile que n'est pas visible au premier coup d'œil?

Je ne peux pas penser à tout non-apparent utilise du haut de ma tête. (Je suppose que si je le pouvais, qui la rendent apparente ;)

22voto

schmoopy Points 1741

Les vues peuvent être utilisées pour assurer la sécurité (c.-à-d. Que les utilisateurs peuvent accéder à des vues qui n'accèdent qu'à certaines colonnes d'une table), les vues peuvent fournir une sécurité supplémentaire pour les mises à jour, les insertions, etc. sp's), mais les vues sont davantage un isolement de la table réelle.

19voto

Kilhoffer Points 13430

En un sens, les vues dénormalisent. La dénormalisation est parfois nécessaire pour fournir des données de manière plus significative. C’est ce que de nombreuses applications font de toute façon par le biais de la modélisation de domaine dans leurs objets. Ils aident à présenter les données d'une manière qui correspond plus étroitement au point de vue d'une entreprise.

11voto

gsarnold Points 149

Les vues masquent la complexité de la base de données. Ils sont parfaits pour de nombreuses raisons et utiles dans de nombreuses situations, mais si vous avez des utilisateurs autorisés à rédiger leurs propres requêtes et rapports, vous pouvez les utiliser comme mesure de sécurité pour vous assurer qu'ils ne soumettent pas de manière mal conçue. requêtes avec des jointures cartésiennes désagréables qui enlèvent votre serveur de base de données.

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