CHAPITRE VIII : MODELE PHYSIQUE DE DONNEES
Un modèle physique de données est un
modèle qui découle d'un modèle logique qui spécifie
les détails d'implantation du modèle logique dans un SGBD,
habituellement formulés grâce à un script de
définition de données (Physical Data model). Script de
définition de données, est une suite d'instructions de
définition de données rédigées selon les exigences
du langage SQL. Ces instructions spécifient le schéma physique de
la BD notamment, la structure des tables ainsi que toutes les contraintes
d'intégrité applicables aux données stockées dans
les tables (Data Definition Script)41
.
Types SQL42
La norme SQL ANSI propose un ensemble de types qui
sont donnés dans le tableau 4.1. Ce tableau présente
également la taille, en octets, des instances de chaque type, cette
taille n'étant ici qu'à titre indicatif car elle peut varier
selon les systèmes.
Types SQL ANSI
|
Type
|
Description
|
Taille
|
INTEGER
|
Type des entiers relatifs
|
4 octets
|
SMALLINT
|
Idem.
|
2 octets
|
BIGINT
|
Idem.
|
8 octets
|
FLOAT
|
Flottants simple précision
|
4 octets
|
DOUBLE PRECISION
|
Flottants double précision
|
8 octets
|
REAL
|
Synonyme de FLOAT
|
4 octets
|
NUMERIC (M, D)
|
Numérique avec précision fixe.
|
M octets
|
DECIMAL (M, D)
|
Idem.
|
M octets
|
CHAR(M)
|
Chaines de longueur fixe
|
M octets
|
VARCHAR(M)
|
Chaines de longueur variable
|
L+1 avec L = M
|
BIT VARYING
|
Chaines d'octets
|
Longueur de la chaine
|
DATE
|
Date (jour, mois, an)
|
env. 4 octets
|
TIME
|
Horaire (heure, minutes, secondes)
|
env. 4 octets
|
DATETIME
|
Date et heure
|
8 octets
|
YEAR
|
Anée
|
2 octets
|
Page | 68
1. Table Hospitalisation
Table
|
Contrainte
|
Instruction SQL
|
HOSPITALISATION
|
|
Create table Hospitalisation(
|
numhosp
|
numtrait chabnumeros litnumeros
|
1
2
3
|
numhosp varchar(6) primary key not null, numtrait varchar(30) not
null,
Constraint TK_numtrait Foreign key(numtrait) references
traitement(numtrait), chambnumeros varchar(3),
litnumeros varchar(4));
|
2. Table Ordonnance
Table
|
Contrainte
|
Instruction SQL
|
ORDONNANCE
|
|
Create table Ordonnance(
|
numord
|
numed dateord observmed
|
1
2
3
|
numord varchar(6) primary key not null, numed varchar(6) not
null, Constraint DK_numed Foreign key(numed) references Medecin(numed), dateord
date,
observmed varchar(100));
|
3. Table Examen
Table
|
Contrainte
|
Instruction SQL
|
EXAMEN
|
1
|
Creat table examen(
numexam varchar(6) primary key not null, date date,
result varchar(100));
|
numexam date
result
|
Page | 69
4. Table Médecin
Table
|
Contrainte
|
Instruction SQL
|
MEDECIN
|
1
|
Create table medecin(
numed varchar(6) primary key not null,
Nomed varchar(30),
Postnom varchar(30),
Prenom varchar(30),
N°ordre varchar(6));
|
numed nomed postnom prenom n°ordre
|
|
5. Table Agent
Table
|
Contrainte
|
Instruction SQL
|
AGENT
numagent
|
|
Create table agent(
numagent varchar(6) primary key not null,
Nomagent varchar(30),
Postnom varchar(30),
Prenom varchar(30),
categorie varchar(50),
grade varchar(50);
|
nomagent postnom prenom categorie grade
|
|
6. Table Médicament
Table
|
Contrainte
|
Instruction SQL
|
MEDICAMENT
|
|
Create table medicament(
numedic varchar(6) primary key not null,
typemedic varchar(50),
entrepfab varchar(6),
datefab date,
datexip date);
|
numedic typemedic entrepfab datefab datexip
|
1
|
|
7. Table Resultant
Table
|
Contrainte
|
Instruction SQL
|
RESULTAT
|
|
Create table resultat(
|
|
1
2
3
|
numresult varchar(6) primary key not null, numpat varchar(6) not
null,
Constraint CE_numpat Foreign key(numpat)
|
numresult numpat
|
annotation
|
|
references Patient(numpat), annotation varchar(100) not null);
|
Page | 70
8. Table Patient
Table
|
Contrainte
|
Instruction SQL
|
PATIENT
|
|
Create table Patient(
|
|
1
2
3
|
numpat varchar(6) primary key not null, numagent varchar(6) not
null,
Constraint FK_numagent Foreign key(numagent)
|
numpat numagent
|
numfam nompat postenom
|
4
5
|
references agent(numagent),
numfam varchar(6) not null,
Constraint GK_numfam Foreign key(numfam)
|
prenom daterec profession datenais sexe groupesang poids
/age
|
|
references famille(numfam), Nompat varchar(30), Postnom
varchar(30), Prenom varchar(30), daterec date,
Profession varchar(30), Datenais date,
Sexe varchar(1),
Groupesang varchar(6), Poids varchar(8),
Age varchar(8));
|
9. Table Consultation
Table
|
Contrainte
|
Instruction SQL
|
CONSULTATION
|
|
Create table consultation(
|
|
|
numcons varchar(6) primary key not null, numpat varchar(6) not
null,
Constraint FK_numpat Foreign key(numpat)
|
numcons numpat
|
1
2
3
|
numed datcons observ
|
4
5
|
references patient(numpat),
numed varchar(6) not null,
Constraint GK_numed Foreign key(numed)
references Medecin(numed),
datcons date,
observ varchar(100)) ;
|
Page | 71
10. Table Famille
Table
|
Contrainte
|
Instruction SQL
|
FAMILLE
|
|
Create table Famille(
|
numfam numagent nomtutelle
|
1
2
3
|
numfam varchar(6) primary key not null, numagent varchar(6) not
null,
Constraint FK_numagent Foreign key(numagent)
|
lien parental
|
|
references agent(numagent),
|
degre
|
4
|
nomtutelle varchar(30), degre varchar(30));
|
11. Table Ambulatoire
Table
|
Contrainte
|
Instruction SQL
|
AMBULATOIRE
|
|
Create table Ambulatoire(
|
numambul numtrait heurearriv
|
1
2
3
|
numambul varchar(6) primary key not null, numtrait varchar(6) not
null,
Constraint KK_numtrait Foreign key(numtrait)
|
observ
|
|
references traitement(numtrait), Observ varchar(30));
|
12. Table Exige
Table
|
Contrainte
|
Instruction SQL
|
EXIGE
|
|
Create table Exige(
|
numtrait numedic
|
1
2
|
numtrait varchar(6) not null,
Constraint FK_numtrait Foreign key(numtrait)
|
nombrcpé/plaq dose
qte
|
3
4
|
references traitement(numtrait),
nummedic varchar(6) not null,
Constraint FK_numedic Foreign key(numedic)
references medicament(numedic),
Nombrcpé/plaq varchar(30)
dose varchar(30),
qte(30));
|
Page | 72
13. Table Sortie
Table
|
Contrainte
|
Instruction SQL
|
SORTIE
|
|
Create table Sortie(
|
numsort numpat date
|
1
2
3
|
numsortie varchar(6) primary key not null, numpat varcha(6)
notnull,
Constraint FK_numpat Foreign key(numpat)
|
motif
|
|
references patient(numpat), Date date,
Motif varchar(30));
|
14. Table Décédé
Table
|
Contrainte
|
Instruction SQL
|
DECEDE
|
|
Create table Decede(
|
numdec numpat
|
1
2
|
numdec varchar(6) primary key not null, numpat varcha(6)
notnull,
|
Lieu
|
3
|
Constraint SK_numpat Foreign key(numpat)
|
date Nomhop
|
|
references patient(numpat), Lieu varchar(30),
Date date,
nohop varchar(30));
|
15. Table Transfert
Table
|
Contrainte
|
Instruction SQL
|
TRANSFERT
|
|
Create table transfert(
|
numtransf numpat hoptrans
|
1
2
3
|
numtransf varchar(6) primary key not null, numpat varcha(6)
notnull,
Constraint FK_numpat Foreign key(numpat)
|
date motif
gardemal
|
|
references patient(numpat), Hoptrans varchar(30), Date date,
motif varchar(100),
gardemal varchar(30));
|
Page | 73
16. Table Unité
Table
|
Contrainte
|
Instruction SQL
|
UNITE
|
|
Create table unite(
|
numunite numagent nomunite
|
1
2
3
|
numunite varchar(6) primary key not null, numagent varcha(6)
notnull, Constraint MK_numagent Foreign key(numagent) references
agent(numagent), nomunite varchar(30));
|
17. Table Contient
Table
|
Contrainte
|
Instruction SQL
|
CONTIENT
|
|
Create table contient(
|
numord numedic
|
1
2
|
Numord varchar(6) not null,
Constraint FK_numord Foreign key(numord)
|
nombrcpé/plaq dose
qte
|
3
4
|
references ordonnance(numord),
nummedic varchar(6) not null,
Constraint FK_numedic Foreign key(numedic)
references medicament(numedic),
Nombrcpéouplaq varchar(30)
dose varchar(30),
qte(30));
|
18. Table Produire
Table
|
Contrainte
|
Instruction SQL
|
PRODUIR
|
|
Create table produire(
|
numexam numresult
|
1
2
3
|
numexam varchar(6) not null,
Constraint FK_numexam Foreign key(numexam) references
examen(numexam), Numresult varchar(6) not null,
|
|
4
|
Constraint FK_numresult Foreign key(numresult) references
resultat(numresult));
|
19. Table Local
Table
|
Contrainte
|
Instruction SQL
|
LOCAL
|
|
Create table local(
|
1
2
3
|
numlocal varchar(6) primary key not null, numtransf varchar(6)
not null,
Constraint LK_numtransf Foreign key(numtransf)
|
numlocal numtransf
|
province
|
|
references transfert(numtransf), province varchar(30) not
null);
|
Page | 74
20. Table Etranger
Table
|
Contrainte
|
Instruction SQL
|
ETRANGER
|
|
Create table Etranger(
|
codepaysEtr numtransf nompays
|
1
2
3
|
CodepaysEtr varchar(6) primary key not null, numtransf varchar(6)
not null, Constraint PK_numtransf Foreign key(numtransf) references
Transfert(numtransf), nompays varchar(30) not null);
|
21. Traitement
Table
|
Contrainte
|
Instruction SQL
|
TRAITEMENT
|
1
2
3
|
Create table Traitement(
numtrait varchar(6) primary key not null,
numpat varchar(6) not null,
Constraint OK_numpat Foreign key(numpat)
references Patient(numpat),
Genremal varchar(30),
Nomal varchar (30),
Datedeb date,
Datefin date,
Orientation varchar(100));
|
numtrait numpat genremal nomal datedeb datefin
orientation
|
22. Table Recommande
Table
|
Contrainte
|
Instruction SQL
|
RECOMMANDE
|
|
Create table Recommande(
|
numed numexam
|
1
2
|
numed varchar(6) not null,
Constraint XK_numed Foreign key(numed)
|
typexam date
|
3
|
references Medecin(numed),
numexam varchar(6) not null,
Constraint EK_numexam Foreign key(numexam)
references examen(numexam),
typexam varchar(30),
date date);
|
Page | 75
CINQUIEME PARTIE : DEPLOIEMENT DU NOUVEAU SYSTEME EN
RESEAU
Page | 76
|
|