Chapitre deuxième : Modèle physique de
données
II.0. Introduction
L'implantation des données elles-mêmes qui est
réalisée au niveau physique, c'est-àdire le chargement de
la base, nécessite que soient fixés les choix en matière
de structuration de données dans la mémoire de l'ordinateur. A
cette étape, nous faisons appel à un nouveau modèle
qualifié de modèle physique. Nous utilisons à cet effet le
logiciel Microsoft Access 2007.
II.1. Création des tables
Pour notre base de données, nous avons au total neufs
tables. Nous les créons en utilisant ici le langage de description de
données SQL (Strutured Query Language).
1) Table « SERVICE »
CREATE TABLE SERVICE
(Num_service INTEGER PRIMARY KEY, Nom_service CHAR (20) NOT
NULL);
2) Table « VEHICULE »
CREATE TABLE VEHICULE
(Num_imma_vehi CHAR (8) PRIMARY KEY,
Num_service INTEGER REFERENCES SERVICE (Num_service),
Num_chassie CHAR(20) UNIQUE,
Marque CHAR(20) NOT NULL,
Annee_Fabri INTEGER NOT NULL,
Num_ordre_vehi INTEGER UNIQUE);
3) Table « ASSURANCE »
CREATE TABLE ASSURANCE
(Num_ass CHAR (20) PRIMARY KEY,
Num_imma_vehi CHAR (8) REFERENCES VEHICULE (Num_imma_vehi),
Nom_assureur CHAR (20) NOT NULL,
Date_ass DATE CHECK (VALUE >=CURRENT DATE),
Date_exp_ass DATE CHECK ( Date_exp < Date_ass)) ;
4) Table « ENTRETIEN >
CREATE TABLE ENTRETIEN
(Num_entr CHAR (5) PRIMARY KEY,
Num_imma_vehi CHAR (8) REFERENCES VEHICULE (Num_imma_vehi),
Nom_garage CHAR (20),
Date_entretien DATE CHECK (VALUE >=CURRENT DATE),
Km_entretien INTEGER NOT NULL CHECK (VALUE >0),
Type_entretien CHAR (100) NOT NULL);
5) Table « CONDUCTEUR >
CREATE TABLE CONDUCTEUR
(Num_conducteur CHAR (12) PRIMARY KEY, Nom_conducteur CHAR (20)
NOT NULL);
6) Table « DATE_KM >
CREATE TABLE DATE_KM
(Date DATE CHECK (VALUE >= CURRENT DATE));
7) Table « VOYAGE >
CREATE TABLE VOYAGE
(Num_voy INTEGER PRIMARY KEY,
Num_imma_vehi CHAR (8) REFERENCES VEHICULE (Num_imma_vehi),
Num_conducteur CHAR (12) REFERENCES CONDUCTEUR (Num_conducteur),
Destination_voy CHAR (20) NOT NULL,
Motif_voy CHAR (50) NOT NULL,
Date_départ DATE CHECK (VALUE >= CURRENT DATE),
Date_retour DATE CHECK (VALUE >= Date_départ));
8) Table « PRELEVER >
CREATE TABLE PRELEVER
(Num_imma_vehi CHAR (8) REFERENCES VEHICULE (Num_imma_vehi), Date
DATE REFERENCES DATE_KM (Date),
PRIMARY KEY (Num_imma_vehi, Date), Kilometrage INTEGER NOT
NULL);
9) Table « BON_FUEL »
CREATE TABLE BON_FUEL
(Num_bon_fuel INTEGER PRIMARY KEY,
Num_imma_vehi CHAR (8) REFERENCES VEHICULE (Num_imma_vehi),
Qte_fuel_reçu INTEGER CHECK (VALUE >0),
Date_fuel DATE CHECK (VALUE >=CURRENT DATE),
Type_fuel CHAR (10) NOT NULL);
II.2. Calcul de l'encombrement de la base de
données
N°
|
TABLE
|
Nbre moyen
|
TUPLE
|
TYPE
|
OCTETS
|
Tuple
|
Table
|
Total
|
1.
|
SERVICE
|
4
|
Num_service
|
Entier
|
2
|
22
|
88
|
Nom_service
|
Char
|
20
|
2.
|
VEHICULE
|
40
|
Num_imma_vehi
|
Char
|
8
|
58
|
2320
|
Num_service
|
Entier
|
2
|
Num_chassie
|
Char
|
20
|
Marque
|
Char
|
20
|
Annee_Fabri
|
Entier
|
2
|
Coût_achat
|
Entier(L)
|
4
|
Num_ordre_vehi
|
Entier
|
2
|
3.
|
ASSURANCE
|
40
|
Num_ass
|
Char
|
20
|
68
|
2720
|
Num_imma_vehi
|
Char
|
8
|
Nom_assureur
|
Char
|
20
|
Date_ass
|
Date
|
8
|
Montant_ass
|
Entier(L)
|
4
|
Date_exp
|
Date
|
8
|
4.
|
ENTRETIEN
|
200
|
Num_entr
|
Char
|
5
|
43
|
8600
|
Num_imma_vehi
|
Char
|
8
|
Nom_garage
|
Char
|
20
|
Date_entr
|
Date
|
8
|
Cout_entr
|
Entier
|
2
|
5.
|
CONDUCTEUR
|
40
|
Num_conducteur
|
Char
|
12
|
32
|
1280
|
Nom_conducteur
|
Char
|
20
|
6.
|
DATE_KM
|
14600
|
Date
|
Date
|
8
|
8
|
116800
|
|
ENTRETIEN
|
480
|
Num_entr
|
Char
|
5
|
123
|
59040
|
Num_imma_vehi
|
Char
|
8
|
Type_panne
|
Char
|
50
|
Date_panne
|
Date
|
8
|
Num_accident
|
Entier
|
2
|
Dommage
|
Char
|
50
|
N°
|
TABLE
|
Nbre moyen
|
TUPLE
|
TYPE
|
OCTETS
|
Tuple
|
Table
|
Total
|
10.
|
VOYAGE
|
60
|
Num_voy
|
Entier
|
2
|
110
|
6600
|
Num_imma_vehi
|
Char
|
8
|
Num_conducteur
|
Char
|
12
|
Destination_voy
|
Char
|
20
|
Motif_voy CHAR
|
Char
|
50
|
Date_départ
|
Date
|
8
|
Date_retour
|
Date
|
8
|
Frais_mission
|
Entier
|
2
|
11.
|
PRELEVER
|
14600
|
Num_imma_vehi
|
Char
|
8
|
20
|
292000
|
Date
|
Date
|
8
|
Kilometrage
|
Entier(L)
|
4
|
12.
|
BON_FUEL
|
2080
|
Num_bon_fuel
|
Entier
|
2
|
30
|
62400
|
Num_imma_vehi
|
Char
|
8
|
Qte_fuel_reçu
|
Entier
|
2
|
Date_fuel
|
Date
|
8
|
Type_fuel
|
Char
|
10
|
Total général
|
551848
|
Tableau 2.13. Calcul de la capacité des index
(les clés) :
Clés
|
Type
|
Octets
|
Num_service
|
Entier (court)
|
2
|
Num_imma_vehi
|
Char
|
8
|
Num_ass
|
Char
|
20
|
Num_entrentien
|
Char
|
5
|
Num_conducteur
|
Char
|
12
|
Date
|
Date
|
8
|
Num_voy
|
Entier (court)
|
2
|
Num_imma_vehi, Date
|
Char
|
16
|
TOTAL
|
73
|
Tableau 2.14.
Le nombre moyen pour une année est calculé de la
manière suivante :
· SERVICE : il y a 4 services ;
· VEHICULE : On a en moyenne 40 véhicules ;
· ASSURANCE : chaque véhicule a une assurance par an
;
· ENTRETIEN : un entretien par véhicule par mois
· CONDUCTEUR : en estimant que chaque véhicule a un
conducteur : 40
· DATE_KM : à la fin de chaque journée, on
prélève le kilométrage de chaque véhicule. Pour les
40 véhicules on aura : 365 fois 40 soit 14600
· VOYAGE : en estimant 5 voyages par mois dans l'ensemble,
on aura 60 voyages pour une année.
· BON_FUEL : 1 bon est établi chaque semaine pour
chaque véhicule. Pour toute une année : 52 semaines fois 40
véhicules. On a : 2080
|