Database Reference
In-Depth Information
Les. règles. qui. régissent. les. insertions. ne. sont. pas. identiques. à. celles. qui. concernent. les.
mises.à.jour.ou.suppressions..Des.vues.complexes.peuvent.être.modifiables,.dans.une.cer-
taine.mesure,.lorsqu'une.table.source.est.dite.protégée.par.sa.clé.( key preserved ).
Tables protégées (key preserved tables)
Une.table.est.dite.protégée.par.sa.clé.( key preserved ).si.sa.clé.primaire.est.préservée.dans.
la.clause.de.jointure.et.se.retrouve.en.tant.que.colonne.de.la.vue.multitable.(pouvant.jouer.le.
rôle.de.clé.primaire.de.la.vue).
Considérons la vue complexe qui joint les tables des départements et des employés en incluant
toutes les colonnes non nulles. On pourrait penser que les deux tables sont protégées par clé et
sont modiiables par la vue.
Tableau 4-9 : Vue multitable
Création de la vue
Structure de la vue
CREATE VIEW soutou.v_dept_emps
(ndept,departement,id_emp,prenom,
nom,mail,date_embauche,id_emploi)
AS SELECT d.department_id,
d.department_name, e.employee_id,
e.irst_name, e.last_name,
e.email, e.hire_date, e.job_id
FROM hr.employees e, hr.departments d
WHERE e.department_id = d.department_id
ORDER BY 2,4;
SQL> DESC soutou.v_dept_emps;
Name Null? Type
--------------------- --------- ---------
NDEPT NOT NULL NUMBER(4)
DEPARTEMENT NOT NULL VARCHAR2(30)
ID_EMP NOT NULL NUMBER(6)
PRENOM VARCHAR2(20)
NOM NOT NULL VARCHAR2(25)
MAIL NOT NULL VARCHAR2(25)
DATE_EMBAUCHE NOT NULL DATE
ID_EMPLOI NOT NULL VARCHAR2(10)
En réalité, seule la table employees est protégée par clé dans cette vue, car elle joue le rôle de
la relation enfant tandis que la table departments joue le rôle de parent . En effet, toute ligne
de cette table contiendra un unique numéro d'employé, tandis que le numéro de département
est susceptible de se dupliquer.
 
Search WWH ::




Custom Search