1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| CREATE TABLE PERSONNE (
PersonneId CHAR(08) NOT NULL,
Nom VARCHAR(48) NOT NULL,
CONSTRAINT PERSONNE_PK PRIMARY KEY (PersonneId)
) ;
CREATE TABLE EMPLOYE (
PersonneId CHAR(08) NOT NULL,
Matricule INT NOT NULL,
Etc CHAR(10) NOT NULL,
CONSTRAINT EMPLOYE_PK PRIMARY KEY (PersonneId),
CONSTRAINT EMPLOYE_AK UNIQUE (Matricule),
CONSTRAINT EMPLOYE_PERSONNE_FK FOREIGN KEY (PersonneId)
REFERENCES Personne (PersonneId)
);
CREATE TABLE PROCHE (
PersonneId CHAR(08) NOT NULL,
CONSTRAINT PROCHE_PK PRIMARY KEY (PersonneId),
CONSTRAINT PROCHE_PERSONNE_FK FOREIGN KEY (PersonneId)
REFERENCES Personne (PersonneId)
);
CREATE TABLE LIEN_PARENTE (
ProcheId CHAR(08) NOT NULL,
EmployeId CHAR(08) NOT NULL,
LienParente VARCHAR(16) NOT NULL,
CONSTRAINT LIEN_PARENTE_PK PRIMARY KEY (ProcheId, EmployeId),
CONSTRAINT LIEN_PARENTE_EMPLOYE_FK FOREIGN KEY (EmployeId)
REFERENCES Employe (PersonneId),
CONSTRAINT LIEN_PARENTE_PROCHE_FK FOREIGN KEY (ProcheId)
REFERENCES Proche (PersonneId)
);
CREATE TABLE DOSSIER (
PersonneId CHAR(08) NOT NULL,
DossierId INT NOT NULL,
DossierNo INT NOT NULL,
Etc CHAR(10) NOT NULL,
CONSTRAINT DOSSIER_PK PRIMARY KEY (PersonneId, DossierId),
CONSTRAINT DOSSIER_AK UNIQUE (DossierNo),
CONSTRAINT DOSSIER_PERSONNE_FK FOREIGN KEY (PersonneId)
REFERENCES Personne (PersonneId)
);
CREATE TABLE PARENTE (
ProcheId CHAR(08) NOT NULL,
DossierId INT NOT NULL,
EmployeId CHAR(08) NOT NULL,
CONSTRAINT PARENTE_PK PRIMARY KEY (ProcheId, DossierId),
CONSTRAINT PARENTE_LIEN_PARENTE_FK FOREIGN KEY (ProcheId, EmployeId)
REFERENCES Lien_parente (ProcheId, EmployeId),
CONSTRAINT PARENTE_DOSSIER_FK FOREIGN KEY (ProcheId, DossierId)
REFERENCES Dossier (PersonneId, DossierId)
);
INSERT INTO PERSONNE VALUES ('Hassnaa', 'Hassnaa66') ;
INSERT INTO PERSONNE VALUES ('Driss', 'Driss35') ;
INSERT INTO PERSONNE VALUES ('fsmrel', 'fsmrel du Relationland') ;
INSERT INTO EMPLOYE VALUES ('Driss', 123456, '2003-03-20') ;
INSERT INTO EMPLOYE VALUES ('fsmrel', 234567, '2005-05-01') ;
INSERT INTO PROCHE VALUES ('Hassnaa') ;
INSERT INTO LIEN_PARENTE VALUES ('Hassnaa', 'Driss', 'cousine') ;
INSERT INTO DOSSIER VALUES ('Hassnaa', 1, 123456789, '2011-01-01') ;
INSERT INTO DOSSIER VALUES ('fsmrel', 2, 234567890, '2011-03-01') ;
--INSERT INTO PARENTE VALUES ('Hassnaa', 1, 'fsmrel') ; -- Viol d'Intégrité référentielle détecté par le SGBD.
INSERT INTO PARENTE VALUES ('Hassnaa', 1, 'Driss') ; -- OK. |
Partager