-
Notifications
You must be signed in to change notification settings - Fork 1
/
ige487_edt.sql
842 lines (700 loc) · 25.7 KB
/
ige487_edt.sql
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
/*
-- =========================================================================== A
Activité : IGE487
Trimestre : Automne 2015
Composant : ige487_edt.sql
Encodage : UTF-8
Plateforme : Oracle
Responsable : [email protected]
Version : 2.0
Statut : en vigueur
-- =========================================================================== A
*/
/*
-- =========================================================================== B
Création du schéma d’entrepôt de données temporelle.
-- =========================================================================== B
*/
/*
-- =========================================================================== C
Temporalisation pour la table Employé.
-- =========================================================================== C
*/
-- Employé@VS
CREATE TABLE EMPLOYE_SINCE (
NO_EMPLOYE NUMBER,
NO_EMPLOYE_SINCE DATE NOT NULL,
NAS VARCHAR2(9) NOT NULL ,
NAS_SINCE DATE NOT NULL,
NOM VARCHAR2(30) NOT NULL ,
NOM_SINCE DATE NOT NULL ,
PRENOM VARCHAR2(30) NOT NULL,
PRENOM_SINCE DATE NOT NULL,
CONSTRAINT PK_EMPLOYES_SINCE PRIMARY KEY(NO_EMPLOYE)
);
-- Employé@VF
CREATE TABLE EMPLOYE_DURING (
NO_EMPLOYE NUMBER,
NO_EMPLOYE_DEBUT DATE,
NO_EMPLOYE_FIN DATE,
CONSTRAINT PK_EMPLOYE_DURING PRIMARY KEY (NO_EMPLOYE, NO_EMPLOYE_DEBUT, NO_EMPLOYE_FIN)
);
-- Employé_NAS@VF
CREATE TABLE EMPLOYE_NAS_DURING (
NO_EMPLOYE NUMBER,
NAS_DEBUT DATE,
NAS_FIN DATE,
NAS VARCHAR2(9) NOT NULL ,
CONSTRAINT PK_NAS_DURING PRIMARY KEY (NO_EMPLOYE, NAS_DEBUT, NAS_FIN)
);
-- Employé_NOM@VF
CREATE TABLE EMPLOYE_NOM_DURING (
NO_EMPLOYE NUMBER,
NOM_DEBUT DATE,
NOM_FIN DATE,
NOM VARCHAR2(30) NOT NULL ,
CONSTRAINT PK_NOM_DURING PRIMARY KEY (NO_EMPLOYE, NOM_DEBUT, NOM_FIN)
);
-- Employé_PRENOM@VF
CREATE TABLE EMPLOYE_PRENOM_DURING (
NO_EMPLOYE NUMBER,
PRENOM_DEBUT DATE,
PRENOM_FIN DATE,
PRENOM VARCHAR2(30) NOT NULL ,
CONSTRAINT PK_PRENOM_DURING PRIMARY KEY (NO_EMPLOYE, PRENOM_DEBUT, PRENOM_FIN)
);
/*
-- =========================================================================== D
Temporalisation pour la table Dossier_patient.
-- =========================================================================== D
*/
-- Dossier d'un patient @VS
CREATE TABLE Dossier_patient_since (
NO_DOSSIER NUMBER,
NO_DOSSIER_SINCE DATE NOT NULL,
NOM VARCHAR2(30) NOT NULL,
NOM_SINCE DATE NOT NULL,
PRENOM VARCHAR2(30) NOT NULL,
PRENOM_SINCE DATE NOT NULL,
NOM_MERE VARCHAR2(30),
NOM_MERE_SINCE DATE NOT NULL,
PRENOM_MERE VARCHAR2(30),
PRENOM_MERE_SINCE DATE NOT NULL,
NAM VARCHAR2(9) NOT NULL,
NAM_SINCE DATE NOT NULL,
DATE_DE_NAISSANCE DATE,
DATE_DE_NAISSANCE_SINCE DATE NOT NULL,
CONSTRAINT pk_DOSSIER_since PRIMARY KEY(NO_DOSSIER)
);
-- Dossier d'un patient @VF
CREATE TABLE Dossier_patient_during (
NO_DOSSIER NUMBER,
NO_DOSSIER_DEBUT DATE,
NO_DOSSIER_FIN DATE,
CONSTRAINT pk_Dossier_patient_during PRIMARY KEY(NO_DOSSIER,NO_DOSSIER_DEBUT,NO_DOSSIER_FIN)
);
-- Dossier d'un patient (nom) @VF
CREATE TABLE Dossier_patient_nom_during (
NO_DOSSIER NUMBER,
NOM VARCHAR2(30) NOT NULL,
NOM_DEBUT DATE,
NOM_FIN DATE,
CONSTRAINT pk_Dossier_patient_nom_during PRIMARY KEY(NO_DOSSIER,NOM_DEBUT,NOM_FIN)
);
-- Dossier d'un patient (prenom) @VF
CREATE TABLE Dossier_patient_prenom_during (
NO_DOSSIER NUMBER,
PRENOM VARCHAR2(30) NOT NULL,
PRENOM_DEBUT DATE,
PRENOM_FIN DATE,
CONSTRAINT pk_patient_prenom_during PRIMARY KEY(NO_DOSSIER,PRENOM_DEBUT,PRENOM_FIN)
);
-- Dossier d'un patient (nom_mere) @VF
CREATE TABLE Dossier_patient_nomMere_during (
NO_DOSSIER NUMBER,
NOM_MERE VARCHAR2(30) NOT NULL,
NOM_MERE_DEBUT DATE,
NOM_MERE_FIN DATE,
CONSTRAINT pk_patient_nomMere_during PRIMARY KEY(NO_DOSSIER,NOM_MERE_DEBUT,NOM_MERE_FIN)
);
-- Dossier d'un patient (prenom_mere) @VF
CREATE TABLE Dos_patient_pnomMere_during (
NO_DOSSIER NUMBER,
PRENOM_MERE VARCHAR2(30) NOT NULL,
PRENOM_MERE_DEBUT DATE,
PRENOM_MERE_FIN DATE,
CONSTRAINT pk_patient_prenomMere_during PRIMARY KEY(NO_DOSSIER,PRENOM_MERE_DEBUT,PRENOM_MERE_FIN)
);
-- Dossier d'un patient (NAM) @VF
CREATE TABLE Dossier_patient_nam_during (
NO_DOSSIER NUMBER,
NAM VARCHAR2(9) NOT NULL,
NAM_DEBUT DATE,
NAM_FIN DATE,
CONSTRAINT pk_patient_nam_during PRIMARY KEY(NO_DOSSIER,NAM_DEBUT,NAM_FIN)
);
-- Dossier d'un patient (date_de_naissance) @VF
CREATE TABLE Dossier_patient_naiss_during (
NO_DOSSIER NUMBER,
DATE_DE_NAISSANCE DATE NOT NULL,
DATE_DE_NAISSANCE_DEBUT DATE,
DATE_DE_NAISSANCE_FIN DATE,
CONSTRAINT pk_patient_naiss_during PRIMARY KEY(NO_DOSSIER,DATE_DE_NAISSANCE_DEBUT,DATE_DE_NAISSANCE_FIN)
);
/*
-- =========================================================================== E
Temporalisation pour la table Unité de soin.
-- =========================================================================== E
*/
--Unité de soin @VS
CREATE TABLE Unite_de_soin_since (
NO_UNITE NUMBER,
NO_UNITE_SINCE DATE NOT NULL,
NOM_UNITE VARCHAR2 (30) NOT NULL,
NOM_UNITE_SINCE DATE NOT NULL,
ETAGE NUMBER NOT NULL,
ETAGE_SINCE DATE NOT NULL,
CONSTRAINT pk_Unite_de_soin_since PRIMARY KEY(NO_UNITE)
);
-- Unité de soin @VF
CREATE TABLE Unite_de_soin_during (
NO_UNITE NUMBER,
NO_UNITE_DEBUT DATE,
NO_UNITE_FIN DATE,
CONSTRAINT pk_Unite_de_soin_during PRIMARY KEY(NO_UNITE,NO_UNITE_DEBUT,NO_UNITE_FIN)
);
-- Unité de soin (nom_unite) @VF
CREATE TABLE Unite_de_soin_nom_during (
NO_UNITE NUMBER,
NOM_UNITE VARCHAR2 (30) NOT NULL,
NOM_UNITE_DEBUT DATE,
NOM_UNITE_FIN DATE,
CONSTRAINT pk_Unite_soin_nom_during PRIMARY KEY(NO_UNITE,NOM_UNITE_DEBUT,NOM_UNITE_FIN)
);
-- Unité de soin (etage) @VF
CREATE TABLE Unite_de_soin_etage_during (
NO_UNITE NUMBER,
ETAGE NUMBER NOT NULL,
ETAGE_DEBUT DATE,
ETAGE_FIN DATE,
CONSTRAINT pk_Unite_soin_etage_during PRIMARY KEY(NO_UNITE,ETAGE_DEBUT,ETAGE_FIN)
);
/*
-- =========================================================================== F
Temporalisation pour la table Chambre.
-- =========================================================================== F
*/
--Chambre @VS
CREATE TABLE Chambre_since (
NO_CHAMBRE NUMBER,
NO_CHAMBRE_SINCE DATE NOT NULL,
NO_UNITE NUMBER NOT NULL,
NO_UNITE_SINCE DATE NOT NULL,
CONSTRAINT pk_Chambre_since PRIMARY KEY(NO_CHAMBRE),
CONSTRAINT FK_CHAMBRE_UNITE FOREIGN KEY (NO_UNITE) REFERENCES Unite_de_soin_since (NO_UNITE)
);
-- Chambre @VF
CREATE TABLE Chambre_during (
NO_CHAMBRE NUMBER,
NO_CHAMBRE_DEBUT DATE,
NO_CHAMBRE_FIN DATE,
CONSTRAINT pk_Chambre_during PRIMARY KEY(NO_CHAMBRE,NO_CHAMBRE_DEBUT,NO_CHAMBRE_FIN)
);
-- Chambre (no_unite) @VF
CREATE TABLE Chambre_numUnite_during (
NO_CHAMBRE NUMBER,
NO_UNITE NUMBER NOT NULL,
NO_UNITE_DEBUT DATE,
NO_UNITE_FIN DATE,
CONSTRAINT pk_Chambre_unite_during PRIMARY KEY(NO_CHAMBRE,NO_UNITE_DEBUT,NO_UNITE_FIN)
);
/*
-- =========================================================================== G
Temporalisation pour la table Lit.
-- =========================================================================== G
*/
--Lit @VS
CREATE TABLE Lit_since (
NO_LIT NUMBER,
NO_LIT_SINCE DATE NOT NULL,
NO_CHAMBRE NUMBER NOT NULL,
NO_CHAMBRE_SINCE DATE NOT NULL,
CONSTRAINT pk_Lit_since PRIMARY KEY(NO_LIT),
CONSTRAINT FK_LIT_CHAMBRE FOREIGN KEY (NO_CHAMBRE) REFERENCES Chambre_since(NO_CHAMBRE)
);
-- Lit @VF
CREATE TABLE Lit_during (
NO_LIT NUMBER,
NO_LIT_DEBUT DATE,
NO_LIT_FIN DATE,
CONSTRAINT pk_Lit_during PRIMARY KEY(NO_LIT,NO_LIT_DEBUT,NO_LIT_FIN)
);
-- Lit (no_chambre) @VF
CREATE TABLE Lit_numChambre_during (
NO_LIT NUMBER,
NO_CHAMBRE NUMBER NOT NULL,
NO_CHAMBRE_DEBUT DATE,
NO_CHAMBRE_FIN DATE,
CONSTRAINT pk_Lit_numChambre_during PRIMARY KEY(NO_LIT,NO_CHAMBRE_DEBUT,NO_CHAMBRE_FIN)
);
/*
-- =========================================================================== H
Temporalisation pour la table Sejour.
-- =========================================================================== H
*/
-- Sejour @VS
CREATE TABLE Sejour_since (
NO_SEJOUR NUMBER,
NO_SEJOUR_SINCE DATE NOT NULL,
NO_DOSSIER NUMBER,
NO_DOSSIER_SINCE DATE NOT NULL,
NO_UNITE NUMBER,
NO_UNITE_SINCE DATE NOT NULL,
DATE_ARRIVEE DATE,
DATE_ARRIVEE_SINCE DATE NOT NULL,
DATE_DEPART DATE,
DATE_DEPART_SINCE DATE NOT NULL,
CONSTRAINT pk_Sejour_since PRIMARY KEY(NO_SEJOUR),
CONSTRAINT FK_SEJOUR_DOSSIER FOREIGN KEY (NO_DOSSIER) REFERENCES Dossier_patient_since (NO_DOSSIER),
CONSTRAINT FK_SEJOUR_UNITE_DE_SOIN FOREIGN KEY (NO_UNITE) REFERENCES Unite_de_soin_since (NO_UNITE)
);
--Sejour @VF
CREATE TABLE Sejour_during (
NO_SEJOUR NUMBER,
NO_SEJOUR_DEBUT DATE,
NO_SEJOUR_FIN DATE,
CONSTRAINT pk_Sejour_during PRIMARY KEY(NO_SEJOUR,NO_SEJOUR_DEBUT,NO_SEJOUR_FIN)
);
--Sejour (no_dossier) @VF
CREATE TABLE Sejour_numDossier_during (
NO_SEJOUR NUMBER,
NO_DOSSIER NUMBER NOT NULL,
NO_DOSSIER_DEBUT DATE,
NO_DOSSIER_FIN DATE,
CONSTRAINT pk_Sejour_numDossier_during PRIMARY KEY(NO_SEJOUR,NO_DOSSIER_DEBUT,NO_DOSSIER_FIN)
);
--Sejour (no_unite) @VF
CREATE TABLE Sejour_numUnite_during (
NO_SEJOUR NUMBER,
NO_UNITE NUMBER NOT NULL,
NO_UNITE_DEBUT DATE,
NO_UNITE_FIN DATE,
CONSTRAINT pk_Sejour_numUnite_during PRIMARY KEY(NO_SEJOUR,NO_UNITE_DEBUT,NO_UNITE_FIN)
);
--Sejour (date_arrivee) @VF
CREATE TABLE Sejour_arrivee_during (
NO_SEJOUR NUMBER,
DATE_ARRIVEE DATE NOT NULL,
ARRIVEE_DEBUT DATE,
ARRIVEE_FIN DATE,
CONSTRAINT pk_Sejour_arrivee_during PRIMARY KEY(NO_SEJOUR,ARRIVEE_DEBUT,ARRIVEE_FIN)
);
--Sejour (date_depart) @VF
CREATE TABLE Sejour_depart_during (
NO_SEJOUR NUMBER,
DATE_DEPART DATE NOT NULL,
DEPART_DEBUT DATE,
DEPART_FIN DATE,
CONSTRAINT pk_Sejour_depart_during PRIMARY KEY(NO_SEJOUR,DEPART_DEBUT,DEPART_FIN)
);
/*
-- =========================================================================== I
Temporalisation pour la table Occupation des lits.
-- =========================================================================== I
*/
-- Occupation des lits @VS
CREATE TABLE Occupation_des_lits_since (
NO_SEJOUR NUMBER,
NO_LIT NUMBER,
OCCUPATION_LIT_SINCE DATE NOT NULL,
CONSTRAINT pk_Occupation_lits_since PRIMARY KEY(NO_SEJOUR,NO_LIT),
CONSTRAINT FK_OCCUP_LITS_SEJOUR FOREIGN KEY(NO_SEJOUR) REFERENCES Sejour_since(NO_SEJOUR),
CONSTRAINT FK_OCCUPATION_DES_LITS FOREIGN KEY(NO_LIT) REFERENCES Lit_since(NO_LIT)
);
-- Occupation des lits @VF
CREATE TABLE Occupation_des_lits_during (
NO_SEJOUR NUMBER,
NO_LIT NUMBER,
OCCUPATION_LIT_DEBUT DATE,
OCCUPATION_LIT_FIN DATE,
CONSTRAINT pk_Occupation_lits_during PRIMARY KEY(NO_SEJOUR,NO_LIT,OCCUPATION_LIT_DEBUT,OCCUPATION_LIT_FIN)
);
/*
-- =========================================================================== J
Temporalisation pour la table Medecin traitant.
-- =========================================================================== J
*/
--Medecin traitant @VS
CREATE TABLE Medecin_traitant_since (
NO_SEJOUR NUMBER,
NO_EMPLOYE NUMBER,
MEDECIN_TRAITANT_SINCE DATE NOT NULL,
D_DEBUT DATE NOT NULL,
D_DEBUT_SINCE DATE NOT NULL,
D_FIN DATE NOT NULL,
D_FIN_SINCE DATE NOT NULL,
CONSTRAINT pk_Medecin_traitant_since PRIMARY KEY(NO_SEJOUR,NO_EMPLOYE),
CONSTRAINT FK_MEDECIN_TRAITANT_SEJOUR FOREIGN KEY(NO_SEJOUR) REFERENCES Sejour_since(NO_SEJOUR),
CONSTRAINT FK_MEDECIN_TRAITANT_EMPLOYE FOREIGN KEY(NO_EMPLOYE) REFERENCES Employe_since(NO_EMPLOYE)
);
-- Medecin traitant @VF
CREATE TABLE Medecin_traitant_during (
NO_SEJOUR NUMBER,
NO_EMPLOYE NUMBER,
MEDECIN_TRAITANT_DEBUT DATE,
MEDECIN_TRAITANT_FIN DATE,
CONSTRAINT pk_Medecin_traitant_during PRIMARY KEY(NO_SEJOUR,NO_EMPLOYE,MEDECIN_TRAITANT_DEBUT,MEDECIN_TRAITANT_FIN)
);
-- Medecin traitant (date_debut) @VF
CREATE TABLE Medecin_traitant_debut_during (
NO_SEJOUR NUMBER,
NO_EMPLOYE NUMBER,
D_DEBUT DATE NOT NULL,
DEBUT DATE,
FIN DATE,
CONSTRAINT pk_Medecin_traitant_deb_during PRIMARY KEY(NO_SEJOUR,NO_EMPLOYE,DEBUT,FIN)
);
-- Medecin traitant (date_fin) @VF
CREATE TABLE Medecin_traitant_fin_during (
NO_SEJOUR NUMBER,
NO_EMPLOYE NUMBER,
D_FIN DATE NOT NULL,
DEBUT DATE,
FIN DATE,
CONSTRAINT pk_Medecin_traitant_fin_during PRIMARY KEY(NO_SEJOUR,NO_EMPLOYE,DEBUT,FIN)
);
/*
-- =========================================================================== K
Temporalisation pour la table Plage horaire.
-- =========================================================================== K
*/
-- Plage horaire@VS
CREATE TABLE PLAGE_HORAIRE_SINCE (
DATE_JOUR DATE,
QUART_DE_TRAVAIL VARCHAR2(10),
PLAGE_HORAIRE_SINCE DATE NOT NULL,
CONSTRAINT PK_PLAGE_HORAIRE_SINCE PRIMARY KEY(DATE_JOUR,QUART_DE_TRAVAIL)
);
-- Plage horaire@VF
CREATE TABLE PLAGE_HORAIRE_DURING (
DATE_JOUR DATE,
QUART_DE_TRAVAIL VARCHAR2(10),
PLAGE_HORAIRE_DEBUT DATE NOT NULL,
PLAGE_HORAIRE_FIN DATE NOT NULL,
CONSTRAINT PK_PLAGE_HORAIRE_DURING KEY(DATE_JOUR,QUART_DE_TRAVAIL,PLAGE_HORAIRE_DEBUT,PLAGE_HORAIRE_FIN)
);
/*
-- =========================================================================== L
Temporalisation pour la table role.
-- =========================================================================== L
*/
-- Rôle@VS
CREATE TABLE ROLE_SINCE (
NO_ROLE NUMBER,
NO_ROLE_SINCE DATE NOT NULL,
NOM_ROLE VARCHAR2(50) NOT NULL,
NOM_ROLE_SINCE DATE NOT NULL,
CONSTRAINT PK_ROLES_SINCE PRIMARY KEY(NO_ROLE)
);
-- Rôle@VF
CREATE TABLE ROLE_DURING (
NO_ROLE NUMBER,
NO_ROLE_DEBUT DATE NOT NULL,
NO_ROLE_FIN DATE NOT NULL,
CONSTRAINT PK_ROLES_DURING PRIMARY KEY(NO_ROLE,NO_ROLE_DEBUT,NO_ROLE_FIN)
);
-- Rôle_NOM@VF
CREATE TABLE ROLE_NOM_DURING (
NO_ROLE NUMBER,
NOM_ROLE_DEBUT DATE,
NOM_ROLE_FIN DATE,
NOM_ROLE VARCHAR2(50) NOT NULL ,
CONSTRAINT PK_ROLE_NOM_DURING PRIMARY KEY (NO_ROLE, NOM_ROLE_DEBUT, NOM_ROLE_FIN)
);
/*
-- =========================================================================== M
Temporalisation pour la table spécialité.
-- =========================================================================== M
*/
-- Spécialité@VS (Rôle que joue un employé)
CREATE TABLE SPECIALITE_SINCE (
NO_ROLE NUMBER,
NO_EMPLOYE NUMBER,
SPECIALITE_SINCE DATE NOT NULL,
CONSTRAINT PK_SPECIALITE_SINCE PRIMARY KEY(NO_ROLE, NO_EMPLOYE),
CONSTRAINT FK_SPECIALITE_ROLE_SINCE FOREIGN KEY(NO_ROLE) REFERENCES ROLE_SINCE(NO_ROLE),
CONSTRAINT FK_SPECIALITE_EMPLOYE_SINCE FOREIGN KEY(NO_EMPLOYE) REFERENCES EMPLOYE_SINCE(NO_EMPLOYE)
);
-- Spécialité@VF
CREATE TABLE SPECIALITE_DURING (
NO_ROLE NUMBER,
NO_EMPLOYE NUMBER,
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT PK_SPECIALITE_DURING PRIMARY KEY(NO_ROLE, NO_EMPLOYE, PK_DEBUT, PK_FIN)
/*USING (PK_DEBUT,PK_FIN) : KEY {NO_ROLE, NO_EMPLOYE, PK_DEBUT, PK_FIN};*/
);
/*
-- =========================================================================== N
Temporalisation pour la table Habilitation.
-- =========================================================================== N
*/
-- Habilitation@VS
CREATE TABLE HABILITATION_SINCE (
NO_ROLE NUMBER,
NO_VOIE_ADMINISTRATION NUMBER,
HABILITATION_SINCE DATE NOT NULL,
CONSTRAINT PK_HABILITATION_SINCE PRIMARY KEY(NO_ROLE, NO_VOIE_ADMINISTRATION),
CONSTRAINT FK_HABILITATION_ROLE_SINCE FOREIGN KEY(NO_ROLE) REFERENCES ROLE_SINCE(NO_ROLE),
CONSTRAINT FK_HABILITATION_VOIE_ADM_SINCE FOREIGN KEY(NO_VOIE_ADMINISTRATION) REFERENCES VOIE_ADMINISTRATION_SINCE(NO_VOIE_ADMINISTRATION)
);
-- Habilitation@VF
CREATE TABLE HABILITATION_DURING (
NO_ROLE NUMBER,
NO_VOIE_ADMINISTRATION NUMBER,
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT pk_HABILITATION PRIMARY KEY(NO_ROLE, NO_VOIE_ADMINISTRATION, PK_DEBUT, PK_FIN)
/*USING (PK_DEBUT,PK_FIN) : KEY {NO_ROLE, NO_VOIE_ADMINISTRATION, PK_DEBUT, PK_FIN};*/
);
/*
-- =========================================================================== O
Temporalisation pour la table Affectation.
-- =========================================================================== O
*/
-- Affectation@VS
CREATE TABLE AFFECTATION_SINCE (
NO_UNITE NUMBER,
NO_EMPLOYE NUMBER,
DATE_JOUR DATE,
QUART_DE_TRAVAIL VARCHAR2(10),
AFFECTATION_SINCE DATE NOT NULL,
CONSTRAINT PK_AFFECTATION_SINCE PRIMARY KEY(NO_UNITE,NO_EMPLOYE,DATE_JOUR,QUART_DE_TRAVAIL),
CONSTRAINT FK_AFFECTATION_UDS_SINCE FOREIGN KEY(NO_UNITE) REFERENCES UNITE_DE_SOIN_SINCE(NO_UNITE),
CONSTRAINT FK_AFFECTATION_EMPLOYE_SINCE FOREIGN KEY(NO_EMPLOYE) REFERENCES EMPLOYE_SINCE(NO_EMPLOYE),
CONSTRAINT FK_AFFECTATION_PH_SINCE FOREIGN KEY(DATE_JOUR,QUART_DE_TRAVAIL) REFERENCES PLAGE_HORAIRE_SINCE(DATE_JOUR,QUART_DE_TRAVAIL)
);
-- Affectation@VF
CREATE TABLE AFFECTATION_DURING (
NO_UNITE NUMBER,
NO_EMPLOYE NUMBER,
DATE_JOUR DATE,
QUART_DE_TRAVAIL VARCHAR2(10),
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT PK_AFFECTATION_DURING PRIMARY KEY(NO_UNITE,NO_EMPLOYE,DATE_JOUR,QUART_DE_TRAVAIL, PK_DEBUT, PK_FIN)
/*USING (PK_DEBUT,PK_FIN) : KEY {NO_UNITE,NO_EMPLOYE,DATE_JOUR,QUART_DE_TRAVAIL, PK_DEBUT, PK_FIN};*/
);
/*
-- =========================================================================== P
Temporalisation pour la table Voie d'Administration.
-- =========================================================================== P
*/
-- Voie d'administration@VS
CREATE TABLE VOIE_ADMINISTRATION_SINCE (
NO_VOIE_ADMINISTRATION NUMBER,
NO_VOIE_ADMINISTRATION_SINCE DATE NOT NULL,
NOM_METHODE VARCHAR2(50),
NOM_METHODE_SINCE DATE NOT NULL,
CONSTRAINT PK_VOIE_ADMINISTRATION_SINCE PRIMARY KEY(NO_VOIE_ADMINISTRATION)
);
-- Voie d'administration@VF
CREATE TABLE VOIE_ADMINISTRATION_DURING (
NO_VOIE_ADMINISTRATION NUMBER,
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT PK_VOIE_ADMINISTRATION_DURING PRIMARY KEY(NO_VOIE_ADMINISTRATION, PK_DEBUT, PK_FIN)
);
-- Voie d'administration_NOM_METHODE@VF
CREATE TABLE V_ADMIN_NOM_METHODE_DURING (
NO_VOIE_ADMINISTRATION NUMBER,
NOM_METHODE VARCHAR2(50),
NOM_METHODE_DEBUT DATE NOT NULL,
NOM_METHODE_FIN DATE NOT NULL,
CONSTRAINT PK_V_ADMIN_NOM_METHODE_DURING PRIMARY KEY(NO_VOIE_ADMINISTRATION, NOM_METHODE_DEBUT, NOM_METHODE_FIN)
);
/*
-- =========================================================================== Q
Temporalisation pour la table Medicament.
-- =========================================================================== Q
*/
-- Medicament@VS
CREATE TABLE MEDICAMENT_SINCE (
NO_MEDICAMENT NUMBER,
NO_MEDICAMENT_SINCE DATE NOT NULL,
CONSTRAINT PK_MEDICAMENT_SINCE PRIMARY KEY(NO_MEDICAMENT)
);
-- Medicament@VF
CREATE TABLE MEDICAMENT_DURING (
NO_MEDICAMENT NUMBER,
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT PK_MEDICAMENT_DURING PRIMARY KEY(NO_MEDICAMENT, PK_DEBUT, PK_FIN)
);
/*
-- =========================================================================== R
Temporalisation pour la table Voie d'Administration des médicaments.
-- =========================================================================== R
*/
-- Voie d'Administration des médicaments@VS
CREATE TABLE VOIE_ADMIN_MED_SINCE (
NO_MEDICAMENT NUMBER,
NO_VOIE_ADMINISTRATION NUMBER,
ADMIN_MED_SINCE DATE NOT NULL,
CONSTRAINT PK_VOIE_ADMIN_MED_SINCE PRIMARY KEY(NO_MEDICAMENT, NO_VOIE_ADMINISTRATION),
CONSTRAINT FK_ADMIN_MED_MED_SINCE FOREIGN KEY(NO_MEDICAMENT) REFERENCES MEDICAMENT_SINCE(NO_MEDICAMENT),
CONSTRAINT FK_ADMIN_MED_ADMIN_SINCE FOREIGN KEY(NO_VOIE_ADMINISTRATION) REFERENCES VOIE_ADMINISTRATION_SINCE(NO_VOIE_ADMINISTRATION)
);
-- Voie d'Administration des médicaments@VF
CREATE TABLE VOIE_ADMIN_MED_DURING (
NO_MEDICAMENT NUMBER,
NO_VOIE_ADMINISTRATION NUMBER,
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT PK_VOIE_ADMIN_MED_DURING PRIMARY KEY(NO_MEDICAMENT, NO_VOIE_ADMINISTRATION, PK_DEBUT, PK_FIN)
/*USING (PK_DEBUT,PK_FIN) : KEY {NO_MEDICAMENT,NO_EMPLOYE,NO_VOIE_ADMINISTRATION, PK_DEBUT, PK_FIN};*/
);
/*
-- =========================================================================== S
Temporalisation pour la table Ordonnance.
-- =========================================================================== S
*/
-- Ordonnance@VS
CREATE TABLE ORDONNANCE_SINCE (
NO_ORDONNANCE NUMBER,
NO_ORDONNANCE_SINCE DATE NOT NULL,
NO_DOSSIER NUMBER,
NO_DOSSIER_SINCE DATE NOT NULL,
NO_EMPLOYE NUMBER,
NO_EMPLOYE_SINCE DATE NOT NULL,
CONSTRAINT PK_ORDONNANCE_SINCE PRIMARY KEY(NO_ORDONNANCE),
CONSTRAINT FK_ORDONNANCE_DOS_SINCE FOREIGN KEY(NO_DOSSIER) REFERENCES DOSSIER_PATIENT_SINCE(NO_DOSSIER),
CONSTRAINT FK_ORDONNANCE_EMP_SINCE FOREIGN KEY(NO_EMPLOYE) REFERENCES EMPLOYE_SINCE(NO_EMPLOYE)
);
-- Ordonnance@VF
CREATE TABLE ORDONNANCE_DURING (
NO_ORDONNANCE NUMBER,
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT PK_ORDONNANCE_DURING PRIMARY KEY(NO_ORDONNANCE, PK_DEBUT, PK_FIN)
);
-- Ordonnance_SejourVF
CREATE TABLE ORDONNANCE_DOSSIER_DURING (
NO_ORDONNANCE NUMBER,
NO_DOSSIER NUMBER,
NO_DOSSIER_DEBUT DATE NOT NULL,
NO_DOSSIER_FIN DATE NOT NULL,
CONSTRAINT PK_ORDONNANCE_DOSSIER_DURING PRIMARY KEY(NO_ORDONNANCE, NO_DOSSIER, NO_DOSSIER_DEBUT, NO_DOSSIER_FIN)
);
-- Ordonnance_EmployeVF
CREATE TABLE ORDONNANCE_EMPLOYE_DURING (
NO_ORDONNANCE NUMBER,
NO_EMPLOYE NUMBER,
NO_EMPLOYE_DEBUT DATE NOT NULL,
NO_EMPLOYE_FIN DATE NOT NULL,
CONSTRAINT PK_ORDONNANCE_EMPLOYE_DURING PRIMARY KEY(NO_ORDONNANCE, NO_EMPLOYE, NO_EMPLOYE_DEBUT, NO_EMPLOYE_FIN)
);
/*
-- =========================================================================== T
Temporalisation pour la table Prescription.
-- =========================================================================== T
*/
-- Prescription@VS
CREATE TABLE PRESCRIPTION_SINCE (
NO_PRESCRIPTION NUMBER,
NO_PRESCRIPTION_SINCE DATE NOT NULL,
NO_ORDONNANCE NUMBER,
NO_ORDONNANCE_SINCE DATE NOT NULL,
NO_MEDICAMENT NUMBER,
NO_MEDICAMENT_SINCE DATE NOT NULL,
FREQUENCE VARCHAR(15),
FREQUENCE_SINCE DATE NOT NULL,
DOSAGE VARCHAR(15),
DOSAGE_SINCE DATE NOT NULL,
CONSTRAINT PK_PRESCRIPTION_SINCE PRIMARY KEY(NO_PRESCRIPTION),
CONSTRAINT FK_ORDONNANCE_SINCE FOREIGN KEY(NO_ORDONNANCE) REFERENCES ORDONNANCE_SINCE(NO_ORDONNANCE),
CONSTRAINT FK_MEDICAMENT_SINCE FOREIGN KEY(NO_MEDICAMENT) REFERENCES MEDICAMENT_SINCE(NO_MEDICAMENT)
);
-- Prescription@VF
CREATE TABLE PRESCRIPTION_DURING (
NO_PRESCRIPTION NUMBER,
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT PK_PRESCRIPTION_DURING PRIMARY KEY(NO_PRESCRIPTION, PK_DEBUT, PK_FIN)
);
-- Prescription_OrdonnanceVF
CREATE TABLE PRESCRIPTION_ORDO_DURING (
NO_PRESCRIPTION NUMBER,
NO_ORDONNANCE NUMBER,
NO_ORDONNANCE_DEBUT DATE NOT NULL,
NO_ORDONNANCE_FIN DATE NOT NULL,
CONSTRAINT PK_PRESCRIPTION_ORDO_DURING PRIMARY KEY(NO_PRESCRIPTION, NO_ORDONNANCE, NO_ORDONNANCE_DEBUT, NO_ORDONNANCE_FIN)
);
-- Prescription_MedicamentVF
CREATE TABLE PRESCRIPTION_MED_DURING (
NO_PRESCRIPTION NUMBER,
NO_MEDICAMENT NUMBER,
NO_MEDICAMENT_DEBUT DATE NOT NULL,
NO_MEDICAMENT_FIN DATE NOT NULL,
CONSTRAINT PK_PRESCRIPTION_MED_DURING PRIMARY KEY(NO_PRESCRIPTION, NO_MEDICAMENT, NO_MEDICAMENT_DEBUT, NO_MEDICAMENT_FIN)
);
-- Prescription_FrequenceVF
CREATE TABLE PRESCRIPTION_FREQ_DURING (
NO_PRESCRIPTION NUMBER,
FREQUENCE NUMBER,
FREQUENCE_DEBUT DATE NOT NULL,
FREQUENCE_FIN DATE NOT NULL,
CONSTRAINT PK_PRESCRIPTION_FREQ_DURING PRIMARY KEY(NO_PRESCRIPTION, FREQUENCE, FREQUENCE_DEBUT, FREQUENCE_FIN)
);
-- Prescription_DosageVF
CREATE TABLE PRESCRIPTION_DOS_DURING (
NO_PRESCRIPTION NUMBER,
DOSAGE NUMBER,
DOSAGE_DEBUT DATE NOT NULL,
DOSAGE_FIN DATE NOT NULL,
CONSTRAINT PK_PRESCRIPTION_DOS_DURING PRIMARY KEY(NO_PRESCRIPTION, DOSAGE, DOSAGE_DEBUT, DOSAGE_FIN)
);
/*
-- =========================================================================== U
Temporalisation pour la table Affectation Prescription.
-- =========================================================================== U
*/
-- Affectation Prescription@VS
CREATE TABLE AFFECTATION_PRESC_SINCE (
NO_PRESCRIPTION NUMBER,
DATE_JOUR DATE,
QUART_DE_TRAVAIL VARCHAR2(10),
NO_EMPLOYE NUMBER,
ADMIN_MED_SINCE DATE NOT NULL,
CONSTRAINT PK_AFFECTATION_PRESC_SINCE PRIMARY KEY(NO_PRESCRIPTION, DATE_JOUR, QUART_DE_TRAVAIL, NO_EMPLOYE),
CONSTRAINT FK_AFFECT_PRESC_PRESC_SINCE FOREIGN KEY(NO_PRESCRIPTION) REFERENCES PRESCRIPTION_SINCE(NO_PRESCRIPTION),
CONSTRAINT FK_AFFECT_PRESC_PLG_SINCE FOREIGN KEY(DATE_JOUR, QUART_DE_TRAVAIL) REFERENCES PLAGE_HORAIRE_SINCE(DATE_JOUR, QUART_DE_TRAVAIL),
CONSTRAINT FK_AFFECT_PRESC_EMP_SINCE FOREIGN KEY(NO_EMPLOYE) REFERENCES EMPLOYE_SINCE(NO_EMPLOYE)
);
-- Affectation Prescription@VF
CREATE TABLE AFFECTATION_PRESC_DURING (
NO_PRESCRIPTION NUMBER,
DATE_JOUR DATE,
QUART_DE_TRAVAIL NUMBER,
NO_EMPLOYE NUMBER,
PK_DEBUT DATE NOT NULL,
PK_FIN DATE NOT NULL,
CONSTRAINT PK_AFFECTATION_PRESC_DURING PRIMARY KEY(NO_PRESCRIPTION, DATE_JOUR, QUART_DE_TRAVAIL, NO_EMPLOYE, PK_DEBUT, PK_FIN)
/*USING (PK_DEBUT,PK_FIN) : KEY {NO_PRESCRIPTION, DATE_JOUR, QUART_DE_TRAVAIL, NO_EMPLOYE, PK_DEBUT, PK_FIN};*/
);
/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
-- Soumettre la création du schéma
commit;
/*
-- =========================================================================== Z
Contributeurs :
(MBB) [email protected] (matricule 15 130 742)
(SK) [email protected] (matricule 14 181 440)
(JA) [email protected] (matricule 15 146 398)
(PMA) [email protected] (matricule 15 138 398)
-- -----------------------------------------------------------------------------
-- fin de ige487_edt.sql
-- =========================================================================== Z
*/