Database Reference
In-Depth Information
Tableau 4-18 : Vues à créer
Code SQL
Commentaire
Vue.pour.assurer.la.cohérence.du.parent.vers.l'enfant.
CREATE VIEW v1
AS SELECT * FROM t1 pere
WHERE NOT EXISTS
(SELECT employee_id
FROM t2
WHERE department_id=pere.department_id);
Vue.pour.assurer.la.cohérence.de.l'enfant.vers.le.parent.
CREATE VIEW v2
AS SELECT * FROM t2
WHERE (department_id IN
(SELECT department_id FROM t1)
OR department_id IS NULL)
WITH CHECK OPTION;
La vue v2 restitue les départements qui n'embauchent aucun employé. La vue v1 restitue les
employés associés à un département existant et ceux qui ne sont associés à aucun département
(la condition IS NULL peut être omise dans la vue si chaque enfant doit être obligatoirement
rattaché à un parent).
Les.règles.que.vous.devez.respecter.pour.manipuler.les.données.sont.les.suivantes.
•. Côté. parent  :.modifications,.insertions.et.suppressions.par.la.vue  v1 .et.lecture.de.la.table  t1 .
•. Côté. enfant  :.modifications,.insertions,.suppressions.et.lecture.par.la.vue  v2 .
Manipulons à présent les données de notre exemple par ces vues.
Tableau 4-19 : Manipulations des vues pour l'intégrité référentielle
Cohérence fils   père
Cohérence père   fils
Insertion.correcte :
INSERT INTO v2
(employee_id, irst_name, last_name, email,
hire_date, job_id,salary, commission_pct,
manager_id, department_id )
VALUES (99,'Fred','Brouard','sqlpro',
SYSDATE,'IT_PROG',3400,0,100,90);
Toute.insertion.à.travers.la.vue. v1 .est.possible.(sous.
réserve.de.la.validité.du.type.des.colonnes.et.de.
l'existence.d'autres.contraintes.référentielles).
Insertion.correcte :
INSERT INTO v1
(department_id, department_name,
manager_id, location_id)
VALUES (800,'Eyrolles info.', 100,1700);
 
Search WWH ::




Custom Search