2. Soit une base de données utilisée par plusieurs services
comme dans le schéma suivant :
Les utilisateurs ayant
Leur préférences,
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.
3. Pour optimiser le processus on met en place un
système de vues en amont, comme dans le schéma
suivant.
4. Une vue est une liste de colonnes ou une série
d'enregistrements extraits d'une ou de plusieurs tables
existantes, ou d'une ou plusieurs vues.
Un nom commence par une lettre.
Après la première lettre, le nom aura des
combinaisons de caractères de soulignement, de
lettres et de chiffres.
Un nom n'inclut pas les caractères spéciaux tels que
!, @, #, $, %, ^, &, ou *
Un nom n'aura pas les espaces
Si le nom est une combinaison de mots, on peut
commencer chaque mot par les majuscules.
Exemples : DateHired, RealSport
5. CREATE VIEW nom_vue [( nom_col1, …)]
AS
SELECT …….
[WITH CHECK OPTION]
CHECK OPTION vérifie que la mise à jour ou
l’insertion faite à travers la vue ne produisent que
des lignes qui font partie de la sélection de la vue.
6. SELECT * FROM nom_Vue;
Exemple:
CREATE VIEW EmployeeVue1(Nom,Prenom)
AS SELECT LastName, Firstname
FROM Employees
--consulter et extraire les données de la vue--
SELECT * FROM EmployeeVue1
7. Il possible d’effectuer des modifications
des données par INSERT|UPDATE|DELETE en
tenant compte de ce qui suit:
Le SELECT de la vue doit utiliser une seule
table, pas de clause ORDER BY
Les colonnes résultats du SELECT ne doivent
pas être des expressions
Les colonnes de la vue doivent tous avoir
l’option NOT NULL
8. INSERT into nom_vue values (val1, val2,…)
Exemple1: (sans WITH CHECK OPTION)
create view inscription_90 as select * from
stagiaire where annee between 1990 and 1999 ;
insert into inscription_90 values
(50,‘Informatique',1978);
Cette Mise à jour sera effectuée
9. Exemple2: (avec WITH CHECK OPTION)
create view inscription_90 as select * from
stagiaire where annee between 1990 and 1999
with check option ;
insert into inscription_90 values
(50,‘Informatique',1978);
Cette Mise à jour ne sera pas effectuée
10. UPDATE nom_vue SET nom_col= expression
Exemple1: (sans WITH CHECK OPTION)
Create view emp_vu10 as select * from emp
where n_dept=10
Update emp_vu10 set n_dept=30 where salaire
between 10000 and 30000
Cette Mise à jour sera effectuée
11. Exemple2: (avec WITH CHECK OPTION)
Create view emp_vu20 as select * from emp
where n_dept=20 with check option
Update emp_vu20 set n_dept=30 where salaire
between 10000 and 30000
Cette Mise à jour ne peut pas être effectuée
12. ALTER VIEW nom_vue [( nom_col1, …)]
AS
SELECT …….
[WITH CHECK OPTION]
DROP VIEW nom_vue