6.2 Les vues SQL
135
© Dunod – La photocopie non autorisée est un délit.
Une vue peut être supprimée par l’instruction DROP :
drop view COM_COMPLETE
Cette opération ne supprime pas les données décrites par COM_COMPLETE. Elle
interdit simplement d’y accéder selon cette vue. Seules les instructions drop table
et delete permettent de supprimer des données.
6.2.3 Les vues comme interface pour des besoins particuliers
Le but d’une vue est avant tout d’offrir à un utilisateur de la base de données une
présentation des données qui soit adaptée à ses besoins, et qui lui évite, d’une part,
la complexité d’une base de données dont seules quelques données lui sont utiles, et
d’autre part, de devoir rédiger les requêtes complexes correspondant à ses besoins.
La vue ci-dessous pourrait convenir à un analyste marketing qui étudie la répartition géographique des commandes de produits :
create view HABITUDE_ACHAT(LOCALITE,NPRO,VOLUME)
as select LOCALITE,P.NPRO,sum(QCOM*PRIX)
from
CLIENT CLI,COMMANDE COM,DETAIL D,PRODUIT P
where COM.NCLI = CLI.NCLI
and
D.NCOM = COM.NCOM
and
P.NPRO = D.NPRO
group by LOCALITE, P.NPRO
Note
Il serait intéressant de comparer les domaines d’application d’un instantané tel que
CLIENT_TOULOUSE (section 5.8.1) avec une vue de même définition.
6.2.4 Les vues comme mécanisme de contrôle d’accès
Dans une entreprise, il n’est pas envisageable que tout le monde puisse faire
n’importe quoi sur n’importe quelle donnée. C’est le rôle du contrôle d’accès que de
régenter les opérations sur les données (section 6.1). Etant donné une classe d’utilisateurs, on détermine à quelles données ceux-ci ont accès, et on défini les vues qui
ne reprennent que ces données. Ensuite, on accorde à ces utilisateurs l’autorisation
d’utiliser ces vues, mais on leur interdit l’accès aux tables de base. Un employé
chargé de faire des études sur les habitudes d’achat des clients selon différents
critères, ne doit pas avoir accès aux données personnelles de ces clients. On lui
donnera donc l’autorisation d’accéder à la vue suivante, mais pas à la table CLIENT
elle-même :
create view ANALYSE(LOCALITE, CAT, DATE, NPRO, QCOM) as
select LOCALITE, CAT, DATECOM, NPRO, QCOM
from
CLIENT C, COMMANDE M, DETAIL D
where C.NCLI = M.NCLI and M.NCOM = D.NCOM
135
© Dunod – La photocopie non autorisée est un délit.
Une vue peut être supprimée par l’instruction DROP :
drop view COM_COMPLETE
Cette opération ne supprime pas les données décrites par COM_COMPLETE. Elle
interdit simplement d’y accéder selon cette vue. Seules les instructions drop table
et delete permettent de supprimer des données.
6.2.3 Les vues comme interface pour des besoins particuliers
Le but d’une vue est avant tout d’offrir à un utilisateur de la base de données une
présentation des données qui soit adaptée à ses besoins, et qui lui évite, d’une part,
la complexité d’une base de données dont seules quelques données lui sont utiles, et
d’autre part, de devoir rédiger les requêtes complexes correspondant à ses besoins.
La vue ci-dessous pourrait convenir à un analyste marketing qui étudie la répartition géographique des commandes de produits :
create view HABITUDE_ACHAT(LOCALITE,NPRO,VOLUME)
as select LOCALITE,P.NPRO,sum(QCOM*PRIX)
from
CLIENT CLI,COMMANDE COM,DETAIL D,PRODUIT P
where COM.NCLI = CLI.NCLI
and
D.NCOM = COM.NCOM
and
P.NPRO = D.NPRO
group by LOCALITE, P.NPRO
Note
Il serait intéressant de comparer les domaines d’application d’un instantané tel que
CLIENT_TOULOUSE (section 5.8.1) avec une vue de même définition.
6.2.4 Les vues comme mécanisme de contrôle d’accès
Dans une entreprise, il n’est pas envisageable que tout le monde puisse faire
n’importe quoi sur n’importe quelle donnée. C’est le rôle du contrôle d’accès que de
régenter les opérations sur les données (section 6.1). Etant donné une classe d’utilisateurs, on détermine à quelles données ceux-ci ont accès, et on défini les vues qui
ne reprennent que ces données. Ensuite, on accorde à ces utilisateurs l’autorisation
d’utiliser ces vues, mais on leur interdit l’accès aux tables de base. Un employé
chargé de faire des études sur les habitudes d’achat des clients selon différents
critères, ne doit pas avoir accès aux données personnelles de ces clients. On lui
donnera donc l’autorisation d’accéder à la vue suivante, mais pas à la table CLIENT
elle-même :
create view ANALYSE(LOCALITE, CAT, DATE, NPRO, QCOM) as
select LOCALITE, CAT, DATECOM, NPRO, QCOM
from
CLIENT C, COMMANDE M, DETAIL D
where C.NCLI = M.NCLI and M.NCOM = D.NCOM
