Je lis la Bible de SQL Server 2008 et je couvre la section des vues. Mais l'auteur n'explique pas vraiment le but des vues. Qu'est-ce qu'une bonne utilisation des vues? Dois-je les utiliser sur mon site Web et quels en sont les avantages?
sql
sql-server
Luc101
la source
la source
Réponses:
Une autre utilisation qu'aucune des réponses précédentes ne semble avoir mentionnée est le déploiement plus facile des changements de structure de table.
Supposons que vous souhaitiez retirer une table (
T_OLD
) contenant des données pour les utilisateurs actifs, et utiliser à la place une nouvelle table avec des données similaires (nomméesT_NEW
) mais contenant des données pour les utilisateurs actifs et inactifs, avec une colonne supplémentaireactive
.Si vos systèmes ont des milliards de requêtes qui le font
SELECT whatever FROM T_OLD WHERE whatever
, vous avez deux choix pour le déploiement:1) Cold Turkey - Changez la base de données, et en même temps, changez, testez et publiez de nombreux morceaux de code contenant ladite requête. TRES difficile à faire (ou même à coordonner), très risqué. Mauvais.
2) Graduel - changez le DB en créant la
T_NEW
table, en supprimant laT_OLD
table et en créant à la place une VUE appeléeT_OLD
qui imite laT_OLD
table à 100% (par exemple, la requête de vue estSELECT all_fields_except_active FROM T_NEW WHERE active=1
).Cela vous permettrait d'éviter de publier N'IMPORTE QUEL code qui sélectionne actuellement
T_OLD
et d'effectuer les modifications pour migrer le code deT_OLD
versT_NEW
à votre guise.Ceci est un exemple simple, il y en a d'autres beaucoup plus impliqués.
PS D'un autre côté, vous auriez probablement dû avoir une API de procédure stockée au lieu de requêtes directes
T_OLD
, mais ce n'est pas toujours le cas.la source
(Copié à partir du premier tutoriel qui est apparu dans une recherche Google (lien maintenant mort), mais il présente tous les avantages que j'aurais tapés manuellement moi-même.)
la source
Quelques raisons de Wikipédia :
Les vues peuvent offrir des avantages par rapport aux tableaux:
la source
VIEWS peut être utilisé comme des sections réutilisables de SELECT / CODE, qui peuvent être incluses dans d'autres sélections / requêtes à joindre, et utiliser différents filtres différents, sans avoir à recréer le SELECT entier à chaque fois.
Cela place également la logique dans un emplacement unique, de sorte que vous n'ayez pas à la modifier dans toute la base de code.
Jettes un coup d'oeil à
Choix entre procédures stockées, fonctions, vues, déclencheurs, SQL en ligne
la source
Une vue est une couche d'abstraction, et elle fait ce que fait toute bonne couche d'abstraction, y compris encapsuler le schéma de base de données et vous protéger des conséquences de la modification des détails d'implémentation internes.
C'est une interface.
la source
Voici une utilisation très courante de l'utilisation de vues pour contraindre une entité par certains critères.
Tableau: USERS contient tous les utilisateurs
Affichage: ACTIVE_USERS contient tous les utilisateurs à l'exception de ceux qui sont suspendus, bannis, en attente d'activation et ne répondant à aucun des critères que vous pourrez choisir de définir à l'avenir dans le cadre des exigences actives. Cela rend inutile la suppression de lignes de votre table USERS si vous choisissez de ne pas le faire, car ACTIVE_USERS peut toujours masquer les lignes indésirables.
De cette façon, vous pouvez utiliser la table dans vos pages de gestion des utilisateurs, mais le reste de l'application peut utiliser ACTIVE_USERS car ils peuvent être les seuls utilisateurs qui devraient pouvoir exécuter des processus et accéder / modifier des données.
la source
Les vues peuvent vous permettre de combiner des données de plusieurs tables différentes et de les formater (combiner des champs, donner des noms de champs plus significatifs, etc.) afin que ce soit plus facile pour les utilisateurs finaux. Ils sont une abstraction du modèle de base de données. Ils peuvent également être utilisés pour donner aux utilisateurs l'accès aux données de la table sans leur donner un accès direct à la table elle-même.
la source
Voici quelques-unes des nombreuses raisons d'utiliser la vue plutôt que la table directement
de imexploring.com
la source
Une petite liste de raisons / utilisations courantes:
utilisez-les pour changer le format ou l'apparence des données (c'est-à-dire que vous pouvez joindre un prénom et un nom ensemble)
effectuer des calculs ou d'autres recherches sur les données
dénormaliser les données (extraire les données de plusieurs tables en un seul endroit)
la source
Les vues sont mauvaises! Évitez-les si possible et utilisez uniquement pour la raison mentionnée par DVK - la migration temporaire des données.
Vous devez comprendre que dans une base de données avec 100 tables, il est difficile de se souvenir de l'objectif de chaque table. Maintenant, si vous ajoutez ici 300 autres vues, cela deviendra un désordre complet. Ensuite, les «amateurs de vues» ont tendance à utiliser des vues imbriquées, puis à utiliser les vues imbriquées dans les procédures stockées. Je travaille personnellement maintenant avec une base de données où il y a des vues imbriquées en profondeur 4 fois! Donc, pour comprendre la logique la plus simple d'une procédure stockée, je dois d'abord parcourir toutes les vues.
la source