III.5.1.2 Modèle logique de données (MLD)
A ce niveau, nous montrerons quelques informations qui serons
prêtes à être traiter à l'ordinateur.
1. Passage du MCD au MLD
La transformation d'une structure conceptuelle à une
structure logique nous présenterons quelques règles, dont les
voici :
? les individus (objets) sont transformés en tables ;
les propriétés des attributs et les identifiants deviennent des
clés primaires,
? les relations sont transformées en relation du type
père-fils ; les CIF
disparaissent et le père envoie sa clé au fils
qui devient une clé étrangère ; ? les relations du type
père-père deviennent aussi des tables et prennent les
identifiant ces deux entités associés.
2. Présentation du MLD
C'est un modèle relationnel conçu
dans le Microsoft Access.

45
III.5. 1.3. Modèle physique de données
(MPD)
Cette étape consiste en la prise en compte des
contraintes physiques liées au matériel de traitement et au
logiciel choisi. Le modèle physique de données est le passage du
MLD à la structure de la machine.
Tout SGBD doit pouvoir permettre entre autre : la
création d'une base de données par son langage de
définitions de données le chargement de la base de
données, la mise à jour des données et la structure par le
langage de manipulations de données l'interrogation par les
utilisateurs.
a) Règles du passage du MLD au MPD
A ce niveau les tables deviendrons des fichiers et les
attributs des champs ou rubriques). La structure de cette base de
données dépendra du type de SGBD choisi
b) Présentation du MPD
A ce stade, nous signions qu'il n'existe pas d'approche
normalisée de description et de présentation du niveau physique
de données.
Le modèle Physique de données se présente
de la manière suivant pour toutes les tables concernées.
46
TABLES
|
CHAMPS
|
TYPE
|
TAILLE
|
OBSERVATION
|
MATERIEL
|
Id_materiel
|
Texte
|
15
|
Primary Key
|
|
Nom_materil
|
Texte
|
15
|
Champ
|
|
Date_dachat
|
Date
|
15
|
Champ
|
|
Maison_fabrication
|
Texte
|
15
|
Champ
|
|
Marque
|
Texte
|
15
|
Champ
|
|
Couleur
|
texte
|
10
|
champ
|
CHAUFFEUR
|
Id_chauffeur
|
Texte
|
15
|
Primary key
|
|
Nom_chauf
|
Texte
|
15
|
Champ
|
|
Postnom_chauf
|
Texte
|
15
|
Champ
|
|
Prenom_chauf
|
Texte
|
15
|
Champ
|
|
Sexe
|
Texte
|
5
|
Champ
|
|
Age
|
Numerique
|
5
|
Champ
|
|
Niveau_etude
|
Texte
|
10
|
Champ
|
|
Adresse
|
Texte
|
20
|
Champ
|
|
Id_societe
|
texte
|
15
|
Foreign key
|
GARAGE
|
Id_garage
|
Texte
|
15
|
Primary key
|
|
Nom
|
texte
|
15
|
champ
|
SOCIETE
|
Id_societe
|
Texte
|
15
|
Primary key
|
|
Nom
|
Texte
|
15
|
Champ
|
|
adresse
|
texte
|
20
|
champ
|
GARER
|
Id_garage
|
Texte
|
15
|
Foreign key
|
|
Id_materiel
|
texte
|
15
|
Foreign key
|
CONDUIRE
|
Id_materiel
|
Texte
|
15
|
Foreign key
|
|
Id_chauffeur
|
Texte
|
15
|
Foreign key
|
|
date
|
texte
|
10
|
|
ACHETER
|
Id_materiel
|
texte
|
15
|
Foreign key
|
|
Id_societe
|
texte
|
15
|
Foreign key
|
47
III.6.APPLICATION INFORMATION (Programmation)
1 .FORMULAIRE D'ACCUEIL
Le Formulaire d'accueil qui contient les différents
contrôles, après le chargement de ce dernier un formulaire
d'authentification apparait.

2 .FORMULAIRE D'AUTHENTIFICATION
Ce formulaire vous aide à vous identifier si vous
êtes concerne ou pas par l'application.

48
3 .FORMULAIRE DE MENUS GENERALS
Ce dernier vous aide à choisir un menu les autres
formulaires de l'application.

4 .FORMULAIRE DES CHAUFFEURS
Celui-ci nous aide plus d'enregistrer les chauffeurs d'une
entreprise CARITAS, pas seulement l'ajout de chauffeur mais encore d'autres
opérations.
49

5 .FORMULAIRE DES ENGINS
Ce formulaire joue le même rôle que le formulaire des
enregistrements des chauffeurs.

Ce dernier exploite les mêmes opérations que les
précédents, mais celui-ci fait l'enregistrement des
différentes sociétés.
6 .FORMULAIRE SOCIETE
50

7 .FORMULAIRE DE GARAGE
Ce dernier exploite les mêmes opérations que les
précédents, mais celui-ci fait l'enregistrement des
différents garages.

? QUELQUES CODES DE L'APPLICATION Pour l'Appel
d'un formulaire :
}
51
private void button1_Click(object sender, EventArgs e)
{
Form form = null;
Form Form2 = new Form2();
form = Form2; Form2.Show(); this.Hide();
}
Pour une classe ( classe de la table chauffeur)
:
class Class_chauffeur
{
private string Id_chauf;
private string Nom_chauf; private string Postnom_chauf; private
string Prenom_chauf; private string Sexe_chauf; private string Niveau_chauf;
private string Age_chauf;
public string id_chauf
{
get { return Id_chauf; } set { Id_chauf = value; }
}
public string nom_chauf
{
get { return Nom_chauf; } set { Nom_chauf = value; }
}
public string postnom_chauf
{
get { return Postnom_chauf; } set { Postnom_chauf = value; }
}
public string prenom_chauf
{
get { return Prenom_chauf; } set { Prenom_chauf = value; }
}
public string sexe_chauf
{
get { return Sexe_chauf; } set { Sexe_chauf = value; }
}
public string niveau_chauf
{
get { return Niveau_chauf; } set { Niveau_chauf = value; }
}
public string age_chauf
{
get { return Age_chauf; } set { Age_chauf = value; }
}
52
Pour le Bouton Enregistrer (Table Matériel)
:
public Form5()
{
InitializeComponent();
}
string chaine = @"Provider=microsoft.ACE.OLEDB.12.0;Data
source=c:\\tfc_mfumu\\gestion_charroi.accdb";
public void ajoutmateriel()
{
Class_materiel nouv_matet = new Class_materiel();
nouv_matet.id_materiel = textBox1.Text; nouv_matet.nom_mater = textBox2.Text;
nouv_matet.marque = textBox3.Text; nouv_matet.couleur = comboBox1.Text;
nouv_matet.numer_plaque = textBox4.Text; nouv_matet.date_dachat =
dateTimePicker1.Value; nouv_matet.date_fabrication = dateTimePicker2.Value;
nouv_matet.maison_fabri = textBox5.Text; OleDbConnection conn = new
OleDbConnection(chaine); DialogResult junior = MessageBox.Show("voulez-vous
enregistrer
?", "Avertissement", MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);
if (junior == DialogResult.OK)
{
OleDbCommand cmd = new OleDbCommand("insert into T_materiel
values('" + nouv_matet.id_materiel + "','" + nouv_matet.nom_mater
+ "','" + nouv_matet.marque + "','" + nouv_matet.couleur + "','" +
nouv_matet.numer_plaque + "','" + nouv_matet.date_dachat + "','" +
nouv_matet.date_fabrication + "','" + nouv_matet.maison_fabri + "')");
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("Enregistrement reussie !");
textBox1.Text
|
=
|
"";
|
textBox2.Text
|
=
|
"";
|
textBox3.Text
|
=
|
"";
|
textBox4.Text
|
=
|
"";
|
textBox5.Text
|
=
|
"";
|
comboBox1.Text
|
=
|
"";
|
}
}
Pour le bouton Surimer :
public void supprimer()
{
string jesus = textBox1.Text;
OleDbConnection conn = new OleDbConnection(chaine); OleDbCommand
cmd = new OleDbCommand();
DialogResult juni = MessageBox.Show("Etes-vous autoriser de
supprimer ?", "Avertissement", MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);
if (juni == DialogResult.OK)
{
}
53
cmd.CommandText = "delete from T_materiel where
id_materiel='" + jesus + "'";
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("la suppression Reussie ! !");
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
comboBox1.Text = "";
}
}
Pour Bouton Modifier :
public void modifier()
{
string jesus = textBox1.Text;
OleDbConnection conn = new OleDbConnection(chaine);
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "delete from T_materiel where id_materiel='"
+ jesus + "'";
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Class_materiel nouv_matet = new Class_materiel();
nouv_matet.id_materiel = textBox1.Text;
nouv_matet.nom_mater = textBox2.Text;
nouv_matet.marque = textBox3.Text;
nouv_matet.numer_plaque = textBox4.Text;
nouv_matet.maison_fabri = textBox5.Text;
nouv_matet.couleur = comboBox1.Text;
nouv_matet.date_dachat = dateTimePicker1.Value;
nouv_matet.date_fabrication = dateTimePicker2.Value;
OleDbConnection conne = new OleDbConnection(chaine);
OleDbCommand junior = new OleDbCommand();
cmd.Connection = conne;
cmd.CommandText="insert into T_materiel values('" +
nouv_matet.id_materiel + "','" + nouv_matet.nom_mater + "','" +
nouv_matet.marque + "','" + nouv_matet.numer_plaque + "','" +
nouv_matet.maison_fabri + "','" + nouv_matet.couleur + "','" +
nouv_matet.date_dachat + "','" + nouv_matet.date_fabrication + "')";
conne.Open();
cmd.ExecuteNonQuery();
conne.Close();
MessageBox.Show("la modification a reussie avec succé
!");
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
comboBox1.Text = "";
textBox1.Focus();
}
ce dit travail.
54
|