ecole superieure polytechnique mention …
TRANSCRIPT
N° d’ordre : 04 / RC / TCO Année Universitaire : 2015 / 2016
UNIVERSITE D’ANTANANARIVO
----------------------
ECOLE SUPERIEURE POLYTECHNIQUE
-----------------------
MENTION TELECOMMUNICATION
MEMOIRE
en vue de l’obtention
du DIPLOME de Licence
Domaine : Sciences de l’Ingénieur
Mention : Télécommunication
Parcours : Radiocommunication
par : ANDRIATSIORIMANANA Rova
CONCEPTION D’UNE BASE DE DONNEES ET
REALISATION D’UNE APPLICATION WEB POUR
L’ESPA VONTOVORONA
Soutenu le lundi 27 mars 2017 à 10H devant la Commission d’Examen composée de :
Président :
M. RATSIHOARANA Constant
Examinateurs :
Mme ANDRIANTSILAVO Haja
M. BOTO ANDRIANANDRASANA Jean Espérant
M. RAVONIMANANTSOA Ndaohialy Manda-Vy
Directeur de mémoire :
M. RAKOTONDRAINA Tahina Ezéchiel
2
i
REMERCIEMENTS
Tout d’abord, je remercie notre Seigneur DIEU, car sans grâce, sans bénédiction, et sans
bienveillance ; ce travail n’a pas pu être réalisé.
Mes sincères remerciements s’adressent aussi à :
Monsieur RAMANOELINA Panja : Professeur Titulaire, Président de l’Université d’Antananarivo,
Monsieur ANDRIANAHARISON Yvon : Professeur Titulaire, Responsable du Domaine Sciences
de l’Ingénieur de l’Ecole Supérieure Polytechnique d’Antananarivo,
Monsieur RAKOTOMALALA Mamy Alain, Maître de Conférences à l’Ecole Supérieure
Polytechnique d’Antananarivo, Responsable de la mention télécommunication,
Je tiens à témoigner ma reconnaissance à Monsieur RAKOTONDRAINA Tahina Ezéchiel, Maître
de Conférences à l’Ecole Supérieure Polytechnique d’Antananarivo, Mention Télécommunication,
qui m’a dirigée et conseillée durant la réalisation de ce travail de mémoire,
Monsieur RATSIHOARANA Constant, Maître de Conférences au sein de la mention
télécommunication et qui nous fait l’honneur de présider ce présent mémoire,
Messieurs les Membres de jury qui ont accepté d’examiner ce mémoire :
Madame ANDRIANTSILAVO Haja, Assistante d’Enseignement et de Recherche au sein de la
mention Télécommunication,
Monsieur BOTO ANDRIANANDRASANA Jean Espérant, Assistant d’Enseignement et de
Recherche au sein de la mention Télécommunication,
Monsieur RAVONIMANANTSOA Ndaohialy Manda-Vy, Maître de Conférences au sein de la
mention Télécommunication,
J’adresse un grand Merci à tous les membres de ma famille, à tous les Enseignants Chercheurs et
Personnels administratifs de l’Ecole Supérieure Polytechnique d’Antananarivo ainsi qu’à tous mes
collègues et mes amis qui de près ou de loin, ont contribué à l’accomplissement de ce travail.
ii
TABLES DES MATIERES
REMERCIEMENTS ................................................................................................................. i
TABLES DES MATIERES ..................................................................................................... ii
NOTATIONS ET ABREVIATIONS ..................................................................................... vi
INTRODUCTION GENERALE ............................................................................................ 1
: GENERALITES SUR LA BASE DE DONNEES ................................ 2
1.1 Introduction ........................................................................................................................... 2
1.2 Définition ................................................................................................................................ 2
1.2.1 Système d’Information .................................................................................................... 2
1.2.2 Base de données .............................................................................................................. 2
1.2.3 Base de données informatisée ......................................................................................... 2
1.2.4 Système de Gestion de Base de données ........................................................................ 3
1.2.5 Système de Gestion de Base de données Relationnelle .................................................. 3
1.3 Historique de la base de données ......................................................................................... 3
1.4 Utilités de la base de données ............................................................................................... 4
1.5 Objectif de la base de données ............................................................................................. 4
1.5.1 Intégration et corrélation ................................................................................................ 4
1.5.2 Flexibilité et indépendance ............................................................................................. 4
1.5.3 Disponibilité ..................................................................................................................... 4
1.5.4 Sécurité ............................................................................................................................ 5
1.6 Niveaux de description des données ANSI/SPARC ........................................................... 5
1.7 Critères d'une base de données ............................................................................................ 5
1.8 Avantages de la base de données .......................................................................................... 5
1.9 Conception de base de données ............................................................................................ 6
1.9.1 Vocabulaire ...................................................................................................................... 6
1.9.2 Méthode d’analyse du système d’information : MERISE ............................................. 7
iii
1.9.3 Les principes généraux de MERISE .............................................................................. 8
1.10 Système de gestion de base de données............................................................................ 10
1.10.1 Principes de fonctionnement ....................................................................................... 10
1.10.2 Modèle de base de données ......................................................................................... 10
1.10.3 Quelques SGBD ........................................................................................................... 12
1.11 Eléments constitutifs du modèle relationnel ................................................................... 13
1.11.1 Normalisation .............................................................................................................. 14
1.11.2 Algèbre relationnelle ................................................................................................... 15
1.12 Le langage SQL ................................................................................................................. 15
1.12.1 Langage de définition de données .............................................................................. 16
1.12.2 Langage de manipulation de données ........................................................................ 17
1.12.3 Langage de contrôle d'accès ....................................................................................... 18
1.13 Conclusion .......................................................................................................................... 19
: DEVELOPPEMENT D’APPLICATION D'ENTREPRISE ............. 20
2.1 Introduction ......................................................................................................................... 20
2.2 Généralité sur le site web .................................................................................................... 20
2.2.1 Internet ........................................................................................................................... 20
2.2.2 Web ................................................................................................................................. 20
2.2.3 Site web et application web ........................................................................................... 21
2.2.4 Page web ........................................................................................................................ 21
2.2.5 FTP ................................................................................................................................ 23
2.3 Système d’entreprise ........................................................................................................... 23
2.3.1 Le système de pilotage ................................................................................................... 24
2.3.2 Le système d’information .............................................................................................. 24
2.3.3 Le système opérant ........................................................................................................ 25
2.4 Outils nécessaires pour la mise en œuvre de ce projet ..................................................... 25
iv
2.4.1 Choix du langage de programmation ........................................................................... 25
2.4.2 Choix du système de gestion de base de données ......................................................... 29
2.4.3 Choix de l’outil de développement PHP ....................................................................... 31
2.4.4 Choix d’outil de conception de la base de données ...................................................... 31
2.4.5 Plate-forme de développement web ............................................................................... 31
2.5 Architecture logicielle ......................................................................................................... 32
2.5.1 Architecture MVC ......................................................................................................... 32
2.5.2 Avantages de l’architecture MVC ................................................................................. 33
2.5.3 Architecture 2-tiers ........................................................................................................ 33
2.5.4 Architecture 3-tiers ........................................................................................................ 33
2.6 Gestion de la sécurité .......................................................................................................... 34
2.7 Conclusion ............................................................................................................................ 34
: REALISATION DE L’APPLICATION G-ESPA .............................. 35
3.1 Introduction ......................................................................................................................... 35
3.2 Objectifs ............................................................................................................................... 35
3.3 Les utilisateurs ..................................................................................................................... 35
3.4 Conception de la base de données ...................................................................................... 36
3.4.1 Identification des entités ............................................................................................... 36
3.4.2 Dictionnaire des données .............................................................................................. 37
3.4.3 Règles de gestion ........................................................................................................... 40
3.4.4 MCD ............................................................................................................................... 42
3.4.5 MLD ............................................................................................................................... 43
3.4.6 Extrait de code SQL ou du MPD .................................................................................. 44
3.4.7 Importation du code SQL dans phpMyAdmin de WAMPSERVER ............................ 44
3.5 Codage de l’application ...................................................................................................... 45
3.5.1 Assets .............................................................................................................................. 46
v
3.5.2 Controller ....................................................................................................................... 46
3.5.3 Entity .............................................................................................................................. 46
3.5.4 Img ................................................................................................................................. 46
3.5.5 Model ............................................................................................................................. 46
3.5.6 View ................................................................................................................................ 46
3.6 Présentation de l’interface .................................................................................................. 46
3.6.1 Page d'accueil ................................................................................................................ 47
3.6.2 Cas d’un étudiant .......................................................................................................... 47
3.6.3 Cas d’un enseignant ...................................................................................................... 48
3.6.4 Cas d’un PAT ................................................................................................................ 49
3.6.5 Cas d’un administrateur ............................................................................................... 50
3.7 Conclusion ............................................................................................................................ 51
CONCLUSION GENERALE ............................................................................................... 52
ANNEXE 1 : PRESENTATION DES AUTRES INTERFACES DE L’APPLICATION53
BIBLIOGRAPHIE ET WEBOGRAPHIE........................................................................... 62
RENSEIGNEMENTS ............................................................................................................ 64
vi
NOTATIONS ET ABREVIATIONS
ANSI American National Standards Institute
BCNF BOYCE-CODD Normal Form
BD Base de données
CSS Cascading Styles Sheets
DCL Data Control Language
DDL Data Definition Language
DML Data Manipulation Language
EC Elément Constitutifs
e-mail Electronic mail
ESPA Ecole Supérieure Polytechnique d’Antananarivo
FN Forme Normale
FTP File Transfert Protocol
FTPS File Transfert Protocol Secure
HTML HyperText Markup Langague
HTTP HyperText Transfer Protocol
IBM International Business Machines
IDE Integrated Development Environment
IP Internet Protocol
ISO International Standards Organization
LDD Langage de Définition de Données
LMD Langage de Manipulation de Données
vii
MCD Modèle Conceptuelle de Données
MERISE Méthode d’Etude et de Réalisation Informatique par Sous-Ensemble
MLD Modèle Logique des données
MOpT Modèle Opérationnel des Traitements
MOT Modèle Organisationnel des Traitements
MPD Modèle Physique des données
MS Microsoft
MVC Model View Controller
ORM Object-relational mapping
PAT Personnel administratif et technique
PHP PHP Hypertext Preprocessor
PL Procedural language
SAG Service des affaires générales
SDRE Service de direction des relations Extérieures
SGBD Système de Gestion de Base de données
SGBDR Système de Gestion de Base de données relationnelle
SI Système d'information
SPARC Scalable Processor ARChitecture
SQL Structured Query Language
TCP Transmission Control Protocol
UE Unité d'enseignement
viii
UML Unified Modeling Language
URL Uniform Ressource Locator
WAMP Windows Apache MySQL PHP
XML Extensible Markup Language
1
INTRODUCTION GENERALE
Depuis quelques années, le domaine de l'informatique est en pleine expansion.
L'informatique constitue un outil d'une importance indispensable, car c'est à partir d'elle, les
hommes se servent pour diverses activités entre autres : gestion, télécommunication…concernant la
gestion, la gestion des données est un critère essentiel pour toute entreprise ou établissement. Pour
ce mémoire, on a opté pour le cas d’une école qui aura besoin de gérer l’ensemble de ses étudiants
à travers une interface simple et pratique. Cette gestion sera bien sûr traitée à travers une base de
données.
Le problème se pose au niveau de l’administration, surtout lorsque le nombre des étudiants, des
professeurs et des matières augmente et cela devient de plus en plus délicat de traiter toutes ces
données manuellement, et stocker par la suite dans l’archive de l’école. C’est ici que
l’informatisation des données devient un élément nécessaire, et le traitement automatique améliore
énormément le rendement de l’établissement que ça soit au niveau du gain du temps ou au niveau
des ressources humaines choisies pour effectuer les tâches.
Ainsi, ce mémoire consiste à concevoir une base de données pouvant contenir toutes les
informations relatives à tous les étudiants à l’ESPA Vontovorona et développer une application web
afin d’en faciliter l’accès. D’où le titre de ce mémoire : « Conception d’une base de données et
réalisation d’une application web pour l’Ecole Supérieure Polytechnique d’Antananarivo ».
Le développement de deux outils (un pour la partie serveur et un pour la partie client) était donc
nécessaire afin de pouvoir interroger le système. La partie serveur contient la base de données
proprement dite avec toutes les informations stockées sous forme de fichiers binaires. La partie
client est constituée d’un programme permettant de questionner le serveur à distance dans le but de
visualiser ou de compléter la base de données.
Ce travail se divise en trois grands chapitres. D’abord, nous allons l’entamer par les généralités sur
la base de données. Ensuite, le deuxième chapitre sera consacré sur le développement d’application
d’entreprise. Et le dernier chapitre présentera la réalisation de l’application. Pour se faire, nous
utilisons des logiciels et les langages de programmation comme outil de travail.
2
:
GENERALITES SUR LA BASE DE DONNEES
1.1 Introduction
Aujourd'hui, la disponibilité de systèmes de gestion de bases de données fiables permet aux
organisations de toutes tailles de gérer des données efficacement, de déployer des applications
utilisant ces données et de les stocker. Les bases de données sont actuellement au cœur du système
d'information des entreprises. Elles permettent de se libérer des tâches répétitives fastidieuses et
lentes qui pourraient se produire devant lui.
Ce chapitre présente quelques notions de base de données, la méthode d’analyse et de conception
de système d’information avec MERISE, le modèle de base de données relationnel et le langage
SQL.
1.2 Définition
1.2.1 Système d’Information (SI)
Un SI est un ensemble organisé de ressources : matériel, logiciel, personnel, données, procédures…
permettant d’acquérir, de traiter, de stocker des informations (sous forme de données, textes, images,
sons, etc.) dans et entre des organisations. Il regroupe toutes les informations d’un domaine précis.
[1]
1.2.2 Base de données (BD)
Une base de données est un ensemble organisé d'informations avec un objectif commun. Plus
précisément, on appelle base de données un ensemble structuré et organisé permettant le stockage
de grandes quantités d'informations afin d'en faciliter l'exploitation (ajout, mise à jour, recherche de
données). [2]
1.2.3 Base de données informatisée
Une base de données informatisée est un ensemble structuré de données enregistrées sur des
supports accessibles par l'ordinateur, représentant des informations du monde réel et pouvant être
interrogées et mises à jour par une communauté d'utilisateurs. [2]
3
1.2.4 Système de Gestion de Base de données (SGBD)
Un Système de Gestion de Base de données (SGBD) est un logiciel qui permet à l’utilisateur
d’interagir avec une BD. Il permet d’organiser les données sur les périphériques et fournit les
procédures de sélection et de recherche de ces mêmes données. Exemple : Access, MySQL,
Oracle,… Ceci caractérisé par le modèle de description des données qu'il supporte [2] [3]
1.2.5 Système de Gestion de Base de données Relationnelle (SGBDR)
Un SGBDR est un SGBD qui implémente la théorie relationnelle. [3]
1.3 Historique de la base de données
Jusque dans les années 60, l'organisation classique des données dans une entreprise se faisait sous
forme de fichiers. Très vite, des limites sont apparues :
- Processus long et fastidieux
- Contrôle en différé des données impliquant une augmentation des délais et des risques
d’erreurs.
- Grande redondance des données.
Dès 1965 apparaît l'idée de distinguer les données de leurs traitements.
Vers la fin des années 60, on commence à voir l’apparition des premiers : les systèmes réseaux et
hiérarchiques.
Ce n’est qu’à partir de 1970 qu’apparait la deuxième génération de SGBD : les systèmes
relationnels. Au début des années 80, la troisième génération de SGBD : les systèmes orientés
objet émergent. Ces avancées technologiques ont permis de résoudre les problèmes liés à
l’utilisation de fichiers et possède les avantages suivants :
- Uniformisation de la saisie et standardisation des traitements (tous les résultats de
consultation sont sous forme de listes et de tableaux)
- Contrôle immédiat de la validité des données.
- Partage de données entre plusieurs traitements, impliquant une baisse de la redondance des
données. [4]
4
1.4 Utilités de la base de données
Une base de données est faite pour enregistrer des faits, des événements qui surviennent dans la vie
d'une organisation pour les restituer à la demande ou bien pour tirer des conclusions en rapprochant
plusieurs faits élémentaires les uns des autres et prendre une décision. Sur ce, un logiciel appelé
Système de Gestion des Bases de données (SGBD) permet à un utilisateur d'interagir avec une BD.
Ce dernier permet principalement d'organiser les données sur les supports périphériques et fournit
les procédures de recherche et de sélection de ces mêmes données. [2]
1.5 Objectif de la base de données
Les bases de données ont été conçues pour répondre aux 4 objectifs suivants :
1.5.1 Intégration et corrélation
À l'origine, chaque programme disposait de ses propres données, d'où une forte redondance des
informations. Le problème majeur était de garantir la cohérence de ces informations entre les
systèmes. Le but était ainsi de centraliser les données pour éviter la redondance des données (gagner
ainsi de l'espace disque), et d'assurer la cohérence des données.
1.5.2 Flexibilité et indépendance
La base de données est censée assurer trois niveaux d'indépendance :
- l'indépendance physique : indépendance des données vis-à-vis du matériel utilisé.
- l'indépendance logique : indépendance des données vis-à-vis des schémas et sous schémas utilisés
pour représenter les données.
- l'indépendance d'accès : les méthodes d'accès aux données sont désormais gérées par le SGBD.
1.5.3 Disponibilité
La base de données permet de gérer la concurrence d'accès, de modification et de consultation des
données. Cela afin d'améliorer le temps de réponse.
5
1.5.4 Sécurité
La base de données a pour but de garantir l'intégrité et la confidentialité des données. [5]
1.6 Niveaux de description des données ANSI/SPARC
Pour atteindre les objectifs de la base de données, trois niveaux de description des données ont été
définis par la norme ANSI/SPARC.
Niveau interne (ou physique) : il définit la façon selon laquelle sont stockées les données et les
méthodes pour y accéder.
Niveau conceptuel : appelé aussi MCD (modèle conceptuel des données) ou MLD (modèle logique
des données). Il définit l'arrangement des informations au sein de la base de données.
Niveau externe : correspond à la perception de tout ou partie de la base pour un groupe donné
d'utilisateurs, indépendamment des autres. Il définit les vues des utilisateurs. [2] [4]
1.7 Critères d'une base de données
Une base de données doit répondre aux trois critères suivants :
- L'exhaustivité : Les bases de données doivent fournir une information exhaustive du système
étudié;
- La non-redondance des données : Non-répétition d'une donnée plusieurs fois ;
- La structure : C'est l'adaptation du mode de stockage de données au traitement ; structuration
que la base doit avoir est liée à l'évolution de la technologie [7]
1.8 Avantages de la base de données
La base de données présente les avantages ci-après :
- L'indépendance entre données et traitements ;
- La duplication des données est réduite ;
- La base de données dote l'entreprise d'un contrôle centralisé de données opérationnelles
- L'ordre dans le stockage de données ;
6
- L'utilisation simultanée des données par différents utilisateurs. [7]
1.9 Conception de base de données
On appelle conception d’une BD la phase d’analyse du SI qui aboutit à déterminer le futur contenu
de la base. Mais d’abord, il est nécessaire de collecter les données nécessaires dans le cadre du
système d’information étudié. Il faut ensuite procéder à la méthode d’analyse du système
d’information et de son environnement. Et enfin, la conception d’une base de données. [2] [3]
1.9.1 Vocabulaire
1.9.1.1 Recueil des besoins
Il s’agit de l’inventaire de l'ensemble des données à partir des documents de l'entreprise ou
établissement, d'un éventuel cahier des charges et plus généralement de tous les supports de
l'information.
1.9.1.2 Tri de l'information
Le tri des données recueillies est nécessaire afin d’éviter la redondance des attributs.
1.9.1.3 Concept d’entité (ou objet), occurrence et d’association
Une entité permet de modéliser un ensemble d'objets de même nature, concrets ou abstraits, ayant
un intérêt dans le domaine d’étude. Les valeurs prises par une entité sont appelées occurrence
d'entité. Une association (relation) est un lien entre plusieurs entités. [3]
1.9.1.4 Concept de propriétés
Une propriété ou un attribut est la modélisation d'une information élémentaire présente dans le
domaine d’étude. L'attribut est l'élément descriptif de l'entité ou de l'association. Il est unique dans
un modèle conceptuel et ne peut être rattaché qu'à un seul concept (entité ou association). [3]
1.9.1.5 Concept d’identifiant (ou clé) d'entité
Un identifiant est constitué d'un ou plusieurs attributs d’une entité, de sorte qu'à chaque valeur de
l'identifiant correspond une occurrence unique de l'entité. L'identifiant est représenté souligné pour
qu'il puisse être distingué des autres attributs de l'entité. [3]
7
1.9.1.6 Concept de règles de gestion
Le schéma entité/association permet d'exprimer graphiquement des règles de gestion qui
correspondent aux contraintes d'intégrités sur des données. Elles représentent les lois du domaine
d’étude modélisé dans le SI. [3]
1.9.1.7 Concept de dictionnaire des données
Le dictionnaire des données est un tableau dont les lignes représentent les différentes propriétés des
entités de notre système. En vue d’éviter un certain nombre d’anomalies sur les données retenues,
des considérations relatives à la structure et à la nature des propriétés sont à prendre en
considération. [3]
1.9.1.8 Concept de cardinalités
Le terme « cardinalité » d’un couple entité/association traduit la participation des occurrences de
l’entité aux occurrences d'une association. Une cardinalité appartient à une patte (branche) de
l'association. Chaque patte possède deux cardinalités : une cardinalité minimum (m) et une
cardinalité maximum (M). [3]
1.9.1.9 Concept de dépendance fonctionnelle
La dépendance fonctionnelle permet de déterminer les liens existant entre les entités et entre les
propriétés. Il y a dépendance fonctionnelle entre une entité (respectivement une propriété) A et entité
(respectivement une propriété) B, si la connaissance d’une valeur A permet la connaissance d’une
valeur de B. [3]
1.9.2 Méthode d’analyse du système d’information (SI) : MERISE
Avant de réaliser un projet informatique, il faut pratiquer une analyse informatique. Cette analyse
consiste à comprendre et modéliser le système d’information (SI) sur lequel on travaille. Il existe
plusieurs méthodes d’analyse et de conception de SI dont MERISE (Méthode d’Etude et de
Réalisation Informatique par Sous-Ensemble). Nous utiliserons la méthode MERISE. Elle est une
méthode de conception et de développement de systèmes d'information. Elle a été créée en 1977 par
la volonté du Ministère de l’Industrie français. Ses concepteurs sont : Hubert Tardieu, Georges Panet
8
et Gérard Vahée. MERISE, à l’instar de toutes les autres méthodes, a des avantages et des
inconvénients. [3]
1.9.2.1 Avantages
- Méthode d’analyse avec des étapes bien définies ;
- Grande distinction entre les données et les traitements pendant la modélisation, mais avec
une interaction profonde du fait de la validation des données par les traitements et vice versa.
[3]
1.9.2.2 Inconvénients
- Méthode moins adaptée aux grands projets nécessitant des résolutions partielles et évolutives
;
- Méthode moins adaptée à la modélisation orientée objet. [3]
1.9.3 Les principes généraux de MERISE
La méthode MERISE est une méthode de conception des systèmes d’information (SI), mais aussi
une démarche méthodologique de développement de SI. La méthode est une approche globale du
SI mené parallèlement et simultanément sur les données et les traitements.
Elle permet de faire une description des données du SI grâce au Modèle Conceptuel de Données
(MCD), au Modèle Logique de Données (MLD) et au Modèle Physique de Données (MPD). La
description des traitements du SI est effectuée grâce au Modèle Conceptuel des Traitement (MCT),
au Modèle Organisationnel des Traitements (MOT) et au Modèle Opérationnel des Traitements
(MOpT). La description des données du SI suit un formalisme de représentation précis, simple et
rigoureux. Ce formalisme a été normalisé au plan international par l’ISO (International
Standardisation Organisation) sous le nom de « ENTITE RELATION ». [3]
1.9.3.1 Modèle conceptuel des Données (MCD)
Le modèle conceptuel des données (MCD) ne prend pas en compte des aspects organisationnels ou
physiques. L’objectif du MCD est d’identifier, de décrire des informations et de modéliser des objets
et associations. Cependant, la construction de ce modèle passe nécessairement par l’élaboration des
règles de gestion et la construction du dictionnaire de données. [3]
9
1.9.3.2 Modèle Logique des Données (MLD)
Le modèle logique des données ou MLD fournit une description des données tenant compte des
moyens informatiques mis en œuvre. Il complète le modèle conceptuel des données ou MCD en
introduisant la notion d’organisation. Il indique donc comment les données seront organisées. Le
modèle logique des données s’obtient par application des règles de passage du MCD au MLD. Le
passage du modèle conceptuel des données au modèle logique des données suit un certain nombre
de règles :
- Règle n°1 :
Les entités deviennent des tables.
L’identifiant de l’entité devient la clé de la table.
Les propriétés de l’entité deviennent des attributs de la table.
- Règle n°2 : cas de l’association 0,1 ou 1,1 à plusieurs
L’entité qui est du côté de la cardinalité (0,1) ou (1,1) reçoit comme attribut l’identifiant de
l’autre entité.
Les propriétés de l’association deviennent des attributs de l’entité qui est du côté de la
cardinalité (0,1) ou (1,1).
- Règle n°3 : cas de l’association plusieurs à plusieurs
L’association devient une table.
Les identifiants des entités participant à l’association deviennent des attributs de
l’association, et ils forment ensemble la clé de cette table.
Les propriétés de l’association deviennent les attributs de la table issue de l’association. [3]
1.9.3.3 Modèle physique des Données (MPD)
Le modèle physique des données (MPD) étudie l’implémentation physique des données sur support
en les traduisant en enregistrements. Il nous permettra donc d’évaluer le volume de notre base de
données. Pour réaliser ce modèle, on se sert des propriétés des tables présentes au niveau du modèle
logique des données. [3]
10
1.9.3.4 Modèle Conceptuel des traitements
Ce modèle permet la reconnaissance des traitements fondamentaux, c’est-à-dire, les opérations qui
sont réalisés en fonction d’événements afin de mettre en évidence les objectifs du système.
1.9.3.5 Modèle organisationnel des traitements
Ce modèle s’attache à décrire les propriétés des traitements non traitées par le MCT, c’est-à-dire,
la durée, le lieu et les ressources nécessaires à une action. [3]
1.10 Système de gestion de base de données (SGBD)
1.10.1 Principes de fonctionnement
La gestion et l'accès à une base de données sont assurés par un ensemble de programmes qui
constitue le Système de gestion de base de données (SGBD). Un SGBD doit permettre l'ajout, la
modification, la suppression et la recherche de données. Un système de gestion de bases de données
héberge généralement plusieurs bases de données, qui sont destinées à des logiciels ou des
thématiques différentes.
Actuellement, la plupart des SGBD fonctionnent selon un mode client/serveur. Le serveur (sous-
entendu la machine qui stocke les données) reçoit des requêtes de plusieurs clients et ceci de manière
concurrente. Le serveur analyse la requête, la traite et retourne le résultat au client. [2]
.
Figure 1.01 : Architecture client/serveur de MySQL
1.10.2 Modèle de base de données
1.10.2.1 Modèle hiérarchique
Une base de données hiérarchique est une forme de système de gestion de base de données qui lie
des enregistrements dans une structure arborescente de façon à ce que chaque enregistrement n'ait
qu'un seul possesseur. [2]
11
Ce modèle est apparu dans les années 60, son but premier était de faciliter la représentation de
l'information. Celle-ci est représentée en arborescence.
Ses principaux points faibles sont :
- la recherche est difficile et coûteuse du fait que l'unique point d'entrée est la racine.
- Une faible dépendance logique, qui induit un manque de sémantique.
- Le changement de la structure des données implique une modification des applications qui
accèdent aux données. [5]
1.10.2.2 Modèle réseau
Le modèle réseau est en mesure de lever de nombreuses difficultés du modèle hiérarchique grâce à
la possibilité d'établir des liaisons de type N – N, les liens entre objets pouvant exister sans
restriction. Pour retrouver une donnée dans une telle modélisation, il faut connaître le chemin
d'accès (les liens) ce qui rend les programmes dépendants de la structure de données. [2]
1.10.2.3 Le modèle entité-association
Ce modèle est apparu dans les années 70, il permet une modélisation au niveau conceptuel. Trois
concepts sont associés à ce modèle : entité, propriété et association. Les avantages principaux de ce
modèle sont la sémantique et la facilité de lecture. [5]
1.10.2.4 Modèle relationnel
Dans ce modèle les données sont structurées suivant les principes de l'algèbre relationnelle. En
d'autres termes, les données sont enregistrées dans des tables.
Le père des bases de données relationnelles est Edgar Frank Codd. Chercheur chez IBM à la fin des
années 1960, il étudiait alors de nouvelles méthodes pour gérer de grandes quantités de données, car
les modèles et les logiciels de l'époque ne le satisfaisaient pas. Mathématicien de formation, il était
persuadé qu'il pourrait utiliser des branches spécifiques des mathématiques (la théorie des
ensembles et la logique des prédicats du premier ordre) pour résoudre des difficultés telles que la
redondance des données, l'intégrité des données ou l'indépendance de la structure de la base de
données avec sa mise en œuvre physique.
12
En 1987, le langage SQL, qui étend l'algèbre relationnelle, a été standardisé.
Les avantages de ce modèle sont : son indépendance vis-à-vis de la structure logique et physique et
la garantie des contraintes émises.
Le principal inconvénient est la perte de la sémantique de hiérarchie.
1.10.2.5 Modèle objet
Pour ce modèle, les données sont décrites comme des classes et représentées sous forme d'objets.
Le plus généralement, ce modèle est établi en UML (Unified Modeling Language ou langage de
modélisation unifié). Le modèle Objet prend en compte les notions d'héritages et permet une
navigation simple.
L’ORM ou Object Relationnal Mapping permettent de modéliser les besoins utilisateurs en classe.
Autrement dit, les ORM associent des tables de bases de données traditionnelles à des objets
(classe). [5]
1.10.3 Quelques SGBD
1.10.3.1 MySQL
MySQL est donc un Système de Gestion de Bases de données relationnelles, qui utilise le langage
SQL. C’est un des SGBDR les plus utilisés. Sa popularité est due en grande partie au fait qu’il s’agit
d’un logiciel Open Source, ce qui signifie que son code source est librement disponible et que
quiconque qui en ressent l’envie et/ou le besoin peut modifier MySQL pour l’améliorer ou l’adapter
à ses besoins. Une version gratuite de MySQL est par conséquent disponible. À noter qu’une version
commerciale payante existe également. Le logo de MySQL est un dauphin, nommé Sakila. [6]
1.10.3.2 PostgreSQL
Comme MySQL, PostgreSQL est un logiciel Open Source. Il est cependant moins utilisé,
notamment par les débutants, car moins connu. La raison de cette méconnaissance réside sans doute
en partie dans le fait que PostgreSQL a longtemps été disponible uniquement sous Unix. La première
version Windows n’est apparue qu’à la sortie de la version 8.0 du logiciel, en 2005.
PostgreSQL a longtemps été plus performant que MySQL, mais ces différences tendent à diminuer.
13
MySQL semble être aujourd’hui équivalent à PostgreSQL en termes de performances sauf pour
quelques opérations telles que l’insertion de données et la création d’index. Le langage procédural
utilisé par PostgreSQL s’appelle le PL/pgSQL. [6]
1.10.3.3 MS Access
MS Access ou Microsoft Access est un logiciel édité par Microsoft (comme son nom l’indique…).
Par conséquent, c’est un logiciel payant qui ne fonctionne que sous Windows. Il n’est pas du tout
adapté pour gérer un grand volume de données et a beaucoup moins de fonctionnalités que les autres
SGBDR. Son avantage principal est l’interface graphique intuitive qui vient avec le logiciel. [6]
1.10.3.4 Oracle database
Oracle, édité par Oracle Corporation est un SGBDR payant. Son coût élevé fait qu’il est
principalement utilisé par des entreprises. Oracle gère très bien de grands volumes de données. Il
est inutile d’acheter une licence oracle pour un projet de petite taille, car les performances ne seront
pas bien différentes de celles de MySQL ou d’un autre SGBDR. Par contre, pour des projets
conséquents (plusieurs centaines de Go de données), Oracle sera bien plus performant.
Par ailleurs, Oracle dispose d’un langage procédural très puissant (du moins plus puissant que le
langage procédural de MySQL) : le PL/SQL. [6]
1.11 Eléments constitutifs du modèle relationnel
Dans ce modèle, les données sont représentées par de tables, sans préjuger de la façon dont les
informations sont stockées dans la machine. Les tables constituent donc la structure logique du
modèle relationnel.
Attribut : Un attribut est un identifiant (un nom) décrivant une information stockée dans une base.
Domaine : Le domaine d'un attribut est l'ensemble, fini ou infini, de ses valeurs possibles.
Relation : Une relation est un sous-ensemble du point cartésien de n domaines d'attributs (n>0).
Schéma de relation : Un schéma de relation précise le nom de la relation ainsi que la liste des
attributs avec leurs domaines.
14
Degré : Le degré d'une relation est son nombre d'attributs.
Occurrence ou n - uplets ou tuples : Une occurrence, ou un - uplets ou tuples, est un élément de
l'ensemble figuré par une relation. Autrement dit, une occurrence est une ligne du tableau qui
représente la relation.
Cardinalité : La cardinalité d'une relation est son nombre d'occurrences.
Clé candidate : Une clé candidate d'une relation est un ensemble minimal des attributs de la relation
dont les valeurs identifient à coup sûr l'occurrence.
La valeur d'une clé candidate est donc distincte pour tous les tuples de la relation. La notion de la
clé candidate est essentielle dans le modèle relationnel.
Clé primaire : Une clé primaire d'une relation est une de ses clés candidates. Pour signaler la clé
primaire, ses attributs sont généralement soulignés.
Clé étrangère : Une clé étrangère dans une relation est formée d'un ou plusieurs attributs qui
constituent une clé primaire dans une autre relation.
Schéma relationnel : Un schéma relationnel est constitué par l'ensemble des schémas de relation.
Base de données relationnelle : Une base de données relationnelle est constituée par l'ensemble
des n-uplets des relations du schéma relationnel. [2]
1.11.1 Normalisation
Les formes normales sont différents stades de qualité qui permet d'éviter la redondance, source
d'anomalies. Elles ont pour objectif de permettre la décomposition en relation sans perdre de
l’information (à partir du concept de dépendances fonctionnelles). [2] [5]
1.11.1.1 La première forme normale (1FN)
Une relation est dite de première forme normale, si tous les attributs de la relation contiennent une
valeur atomique. Un attribut atomique n’est pas : multivalué (liste de valeurs), ni composé (structuré
en sous-attributs).
15
1.11.1.2 La deuxième forme normale (2FN)
Une relation est dite de deuxième forme normale, si, et seulement si, elle est en première forme
normale et si tout attribut n'appartenant pas à la clé ne dépend pas que d'une partie de la clé.
1.11.1.3 La troisième forme normale (3FN)
Une relation est en troisième forme normale si, et seulement si, elle est en deuxième forme normale
et si tout attribut n'appartenant pas à la clef ne dépend pas d'un attribut non-clé.
La troisième forme normale enlève les redondances dues aux dépendances transitives, permet de ne
pas perdre de l'information.
1.11.1.4 La forme normale de BOYCE-CODD (BCNF)
Une relation est en forme normale de BOYCE-CODD (BCNF) si, et seulement si, elle est en
troisième forme normale et si les seules dépendances fonctionnelles élémentaires sont celles dans
lesquelles une clé détermine un attribut.
Cette forme normale permet de renforcer certaines lacunes de la troisième forme normale.
1.11.2 Algèbre relationnelle
L'algèbre relationnelle est un support mathématique cohérent sur lequel repose le modèle
relationnel. On peut distinguer trois familles d'opérateurs relationnels :
Les opérateurs unaires (Sélection, Projection) : ce sont les opérateurs les plus simples, ils
permettent de produire une nouvelle table à partir d'une autre table.
Les opérateurs binaires ensemblistes (Union, Intersection, Différence) : ces opérateurs permettent
de produire une nouvelle relation à partir de deux relations de même degré et de même domaine.
Les opérateurs binaires ou n-aires (Produit cartésien, Jointure, Division) : ils permettent de
produire une nouvelle table à partir de deux ou plusieurs autres tables. [6]
1.12 Le langage SQL
Le langage SQL (Structured Query Language) peut être considéré comme le langage d'accès
normalisé aux bases de données. Il est aujourd'hui supporté par la plupart des produits commerciaux
que ce soit par les systèmes de gestion de bases de données micro tel que
16
Access ou par les produits plus professionnels tels que Oracle. Le succès du langage SQL est dû
essentiellement à sa simplicité et au fait qu'il s'appuie sur le schéma conceptuel pour énoncer des
requêtes en laissant le SGBD responsable de la stratégie d'exécution. Néanmoins, le langage SQL
ne possède pas la puissance d'un langage de programmation : entrées/sorties, instructions
conditionnelles, boucles et affectations. Pour certains traitements il est donc nécessaire de coupler
le langage SQL avec un langage de programmation plus complet.
De manière synthétique, on peut dire que SQL est un langage relationnel, il manipule donc des
tables (i.e. des relations, c'est-à-dire des ensembles) par l'intermédiaire de requêtes qui produisent
également des tables. [2]
1.12.1 Langage de définition de données
Le langage de définition de données (LDD, ou Data Definition Language, soit DDL en anglais) est
un langage orienté au niveau de la structure de la base de données. Le LDD permet de créer,
modifier, supprimer des objets. Il permet également de définir le domaine des données (nombre,
chaîne de caractères, date, booléen, . . .) et d'ajouter des contraintes de valeur sur les données.
Les instructions du LDD sont : CREATE, ALTER, DROP, RENAME. [2] [6]
CREATE permet la création d'une structure de données.
ALTER permet la modification d'une structure de données.
DROP permet la suppression d'une structure de données.
RENAME permet le renommage d'une structure de données.
Ces commandes peuvent porter sur les structures de données de type suivantes :
TABLE : table ;
INDEX : indice ;
VIEW : table virtuelle ;
SEQUENCE : suite de nombres ;
SYNONYM : synonyme ;
USER : utilisateur. [11]
17
Exemple :
- CREATE TABLE ‘etudiant’( ‘nom’ varchar(30),’prenom’ varchar(30)) ; -- création d’une
table dont le nom est ‘etudiant’, ses attributs sont ‘nom et prenom’, varchar(30) est le
domaine des données.
- ALTER TABLE ‘etudiant’ MODIFY (nom varchar(20)) ; -- modification du type de
données pour le champ ‘nom’ de la table ‘etudiant’.
- DROP TABLE ‘etudiant’ ; -- suppression de la table ‘etudiant’.
- RENAME TABLE ‘etudiant’ TO ‘etudiants’ ; -- pour le renommage.
1.12.2 Langage de manipulation de données
Le langage de manipulation de données (LMD, ou Data Manipulation Language, soit DML en
anglais) est l'ensemble des commandes concernant la manipulation des données dans une base de
données. Le LMD permet l'ajout, la suppression et la modification de lignes. [2] [6]
On distingue typiquement quatre types de commandes SQL de manipulation de données :
SELECT : sélection de données dans une table ;
INSERT : insertion de données dans une table ;
DELETE : suppression de données d'une table ;
UPDATE : mise à jour de données d'une table.
Exemple :
- SELECT nom, prenom, classe FROM eleves;
- INSERT INTO eleves (nom, prenom)VALUES ('Dupont', 'Matthieu');
- DELETE FROM eleves WHERE prenom = 'Paul' and nom = 'Durand';
- UPDATE eleves SET prenom = 'Henry' WHERE nom = 'Leroy';
La commande SELECT est l’une des LMD le plus utilisé dans une base de données relationnelle.
Elle a classiquement, la syntaxe suivante :
SELECT expr [, expr ...] FROM tables WHERE conditions GROUP BY expr HAVING conditions
ORDER BY expr LIMIT
18
La première partie de la syntaxe d'une requête SELECT permet de définir quelles colonnes doivent
être extraites des tables, et éventuellement comment les valeurs de ces colonnes doivent être
agrégées.
Le mot-clé FROM permet de définir quelles tables, vues, ou sous requêtes serviront de sources de
données. C'est aussi dans la clause FROM qu'il est possible de définir des jointures entre tables.
Le mot-clé WHERE permet de définir les conditions de sélection des tuples.
Le mot-clé GROUP BY permet de définir, via des noms de colonnes ou des expressions, comment
les résultats doivent être groupés.
Le mot-clé HAVING permet de définir des conditions sur les résultats, agrégés, d'un GROUP BY.
Il se différencie donc du WHERE par le fait que le WHERE est utilisé à la sélection des tuples avant
le GROUP BY et que le HAVING est utilisé pour la sélection des tuples après agrégation par le
GROUP BY.
Le mot-clé ORDER BY permet de trier les résultats. Le tri est par défaut croissant, mais peut être
décroissant en utilisant le mot-clé DESC. Il est possible de tirer sur plusieurs champs, en cas d'égalité
sur le premier champ, le second est utilisé et ainsi de suite.
Le mot-clé LIMIT permet de limiter le nombre de résultats d'une requête.
1.12.3 Langage de contrôle d'accès
Le langage de protections d'accès (ou Data Control Language, soit DCL en anglais) s'occupe de
gérer les droits d'accès aux tables. [2] [6]
On distingue typiquement six types de commandes SQL de contrôle de données :
GRANT : autorisation d'un utilisateur à effectuer une action ;
DENY : interdiction à un utilisateur d'effectuer une action ;
REVOKE : annulation d'une commande de contrôle de données précédente ;
COMMIT : validation d'une transaction en cours ;
ROLLBACK : annulation d'une transaction en cours ;
LOCK : verrouillage sur une structure de données.
Exemple :
- Autorisation d'un utilisateur à effectuer une action :
19
GRANT UPDATE (nom, prenom) ON eleves TO enseignant WITH GRANT OPTION;
- Interdiction d'un utilisateur à effectuer une action :
DENY DELETE TO enseignant
- Annulation d'une commande de contrôle de données précédente :
REVOKE UPDATE (nom, prenom) ON eleves FROM enseignant
- Validation d'une transaction en cours :
START TRANSACTION; UPDATE eleves SET age = '19' WHERE nom = 'Lacourt' and
prenom = 'Stephane'; COMMIT;
- Annulation d'une transaction en cours :
ROLLBACK TO sauvegarde;
- Verrouillage d'une structure de données :
LOCK TABLE eleves IN EXCLUSIVE MODE;
1.13 Conclusion
Dans ce chapitre, nous avons abordé quelques notions de la base de données, son importance, et le
système de gestion de base de données. Nous avons présenté, aussi, la méthode d’analyse et de
conception d’un système d’information avec MERISE ainsi que le langage SQL. Nous pouvons
déduire à partir de ce chapitre qu’afin d’en bénéficier des avantages de la base de données, il faut
respecter les étapes de conception.
20
:
DEVELOPPEMENT D’APPLICATION D'ENTREPRISE
2.1 Introduction
Ce mémoire est axé sur la création d’une base de données et d’une application web pour l’ESPA
Vontovorona. Pour se faire, il faut manipuler plusieurs outils tels que le JMerise, Netbeans,
WAMPSERVER, HTML5, CSS3, Bootstrap3, PHP, JavaScript. Ce chapitre visera sur le
développement de ces outils ainsi que des notions liées au site web.
2.2 Généralité sur le site web
2.2.1 Internet
L’internet ou Interconnected Network est le réseau informatique mondial accessible au public.
L'information est transmise par internet grâce à un ensemble standardisé de protocoles de transfert
de données qui est le TCP/IP ou Transmission Control Protocol/Internet Protocol. [8]
L’une des notions les plus importantes à saisir lorsque l’on travaille sur web concerne les URL ou
Uniform Ressource Locator. En effet, l’URL est une adresse sur le web de la forme :
« [Protocole: //]Serveur [: Port] / Dossier/ [Fichier]», qui identifie chaque page web et chaque
document de manière unique.
Protocole étant le nom du protocole utilisé : http, ftp…
Serveur étant le nom d’une machine reliée à internet ou à son adresse IP.
Port est le numéro de port sur lequel le serveur est en attente. Suivant le protocole utilisé, il existe
toujours une valeur par défaut : 80 pour http, 20-21 pour ftp.
Dossier est le répertoire d’emplacement du contenu et le fichier le nom du fichier.
Les valeurs entre crochets sont facultatives. [9]
2.2.2 Web
Le Web est un système de fichiers présent sur des machines (serveurs) transitant par un protocole
particulier (HyperText Transfer Protocol: HTTP), consultable grâce à des navigateurs web et
fonctionnant sur Internet.
21
2.2.3 Site web et application web
Un site web n’est rien d’autre qu’une interface graphique. On ne peut rien y faire d’autre que de
consulter les informations qu’on a placées dans le code HTML. En revanche, une application Web
ou web App est un programme dont l’interface graphique est un site web au travers d’un navigateur.
[9]
Figure 2.01 : Web App et site web
2.2.4 Page web
Une page web est l’unité de base du web. C’est un document distinct, mis en forme à l’aide du code
HTML, pour créer une source à laquelle les visiteurs peuvent se lier et la consulter ainsi. C’est un
fichier d’extension : .htm, .html,…
On peut subdiviser les pages web en deux grandes parties. [9]
2.2.4.1 Les pages web statiques
Ce sont des sites réalisés uniquement à l'aide des langages HTML et CSS. Ils fonctionnent très bien,
mais leur contenu ne peut pas être mis à jour automatiquement : il faut que le propriétaire du site (le
webmaster) modifie le code source pour y ajouter des nouveautés et ce n'est pas très pratique quand
on doit mettre à jour son site plusieurs fois dans la même journée. Ce type de site se fait de plus en
plus rare aujourd'hui, car dès que l'on rajoute un élément d'interaction (comme un formulaire de
contact), on ne parle plus de site statique, mais de site dynamique.
22
Lorsque le site est statique, le schéma est très simple. Cela se passe en deux temps :
- Le client demande au serveur à voir une page web.
- Le serveur lui répond en lui envoyant la page réclamée. [10]
Figure 2.02 : Communication Client/serveur pour un site statique
Le client, c'est le navigateur Internet de l'internaute comme, Mozilla Firefox, Google Chrome, Opéra
etc.
Le serveur web ou encore serveur http est un ensemble ordinateur/logiciel paramétré pour pouvoir
traiter certains types de pages et notamment celles qui contiennent des instructions de
programmation. Il reconnaît ces pages grâce à l'URL qu'il reçoit, effectue les traitements demandés
et transmet le résultat au format html au browser de l'internaute. Un serveur HTTP est, comme tout
serveur, à l'écoute des connexions en provenance de l'extérieur sur un port donné. Le port standard
pour un serveur HTTP est le numéro 80. À chaque requête qu'il reçoit, le serveur présente à
l'utilisateur la page demandée.
Ce type de site a l’avantage d’être rapide et facile à mettre en place. C’est un outil idéal pour donner
un avant-gout/maquette d’un site Web à construire. [12]
2.2.4.2 Les pages web dynamiques
Ce sont des pages plus complexes, ils utilisent d'autres langages en plus de HTML et CSS, tels que
PHP et MySQL. Le contenu de ces sites web est dit « dynamique » parce qu'il peut changer sans
l'intervention du webmaster. Une page web dynamique est construite à la demande par le serveur
(côté serveur), en fonction de critères spécifiques. La plupart des sites web d’aujourd’hui sont des
sites dynamiques.
Lorsque le site est dynamique, il y a une étape intermédiaire : la page est générée.
- Le client demande au serveur à voir une page web.
- Le serveur prépare la page spécialement pour le client.
- Le serveur lui envoie la page qu'il vient de générer. [10]
23
Figure 2.03 : Communication Client/serveur pour un site dynamique
2.2.5 FTP
FTP veut dire « File Transfert Protocol » ou Protocole de transfert de Fichier. C’est donc un langage
qui va permettre l’échange de fichiers entre 2 ordinateurs, et plus exactement entre un serveur et un
client. On parle alors de : serveur FTP et client FTP.
Le serveur FTP est un logiciel qui va répondre aux demandes des clients. Lorsque le serveur reçoit
une demande, il vérifie les droits et si le client à les droits suffisants, il répond à cette demande sinon
la demande est rejetée. Un exemple de serveur FTP est le FilleZilla Server.
Le client FTP, c’est lui qui va être à l’initiative de toutes les transactions. Il se connecte au serveur
FTP, effectue les commandes (récupération ou dépôt de fichiers) puis se déconnecte. Toutes les
commandes envoyées et toutes les réponses seront en mode texte. (Cela veut dire qu’un humain
peut facilement saisir les commandes et lire les réponses). Le protocole FTP n’est pas sécurisé : les
mots de passe sont envoyés sans cryptage entre le client FTP et le serveur FTP. (Le protocole FTPS
avec S pour « secure » permet de crypter les données). Un exemple de client FTP est le FilleZilla
client.
Grâce à FTP, il est possible de sauvegarder ou d’envoyer des fichiers sur des serveurs distants sans
passer par le web. On peut également se servir des services FTP pour échanger des fichiers avec
des personnes ou des entreprises surtout lorsque la taille du fichier est supérieure à 20Mo. [20]
2.3 Système d’entreprise
Un système est un élément fini dont le périmètre est une frontière qui le sépare de son
environnement.
Il interagit avec son environnement grâce à des flux d’informations entrantes, qu’il va traiter et
restituer à l’environnement sous forme de flux d’informations sortantes.
24
Un système a besoin, pour prendre des décisions, de stocker et de traiter des informations.
Figure 2.04 : Représentation schématique des systèmes de l’entreprise
2.3.1 Le système de pilotage
Le système de pilotage définit les missions et les objectifs, organise l’emploi des moyens, contrôle
l’exécution des travaux. Il assigne des objectifs à l’organisation, analyse l’environnement et le
fonctionnement interne à l’organisation, contrôle le système opérant. Il est relié aux autres systèmes
par des flux d’informations internes.
2.3.2 Le système d’information
Le système d’information est l’ensemble des ressources humaines, techniques et financières qui
fournissent, utilisent, compilent, traitent et distribuent l’information de l’organisation. Il alimente
l’organisation en informations d’origines diverses (internes ou externes). Il est la passerelle
obligatoire pour toutes les informations de l’entreprise.
25
2.3.3 Le système opérant
Le système opérant est l’ensemble des moyens humains, matériels, organisationnels qui exécutent
les ordres du système de pilotage. Il assure le fonctionnement du système global, son activité est
contrôlée par le système de pilotage.
2.4 Outils nécessaires pour la mise en œuvre de ce projet
Pour mettre en œuvre l'application web, il faut préalablement choisir un langage de programmation,
un système de gestion de base de données, une méthode de conception et des outils de
développement.
2.4.1 Choix du langage de programmation
Le langage le plus approprié pour la programmation du site, en plus de HTML qui nous servira de
base, sera le PHP, lui-même combiné à un système de gestion de base de données, MySQL. Ce sont
les langages que l’on utilise le plus souvent pour la programmation des sites web, car ils permettent
de rendre les pages Web plus dynamiques. Tout d’abord, le PHP est un langage de programmation
qui s’intègre dans les pages HTML. Il permet, entre autres, de rendre automatiques des tâches
répétitives, notamment grâce à l’utilisation de fonctions qui sont en quelque sorte des petits
programmes permettant d’accomplir ces tâches, et grâce à la communication avec une base de
données (qui contient les informations). De plus, il fallait choisir un langage permettant de
manipuler les sessions. Une session correspond à l’intervalle de temps compris entre le premier
accès par un utilisateur au site web et la clôture de toutes les fenêtres de son navigateur. Les sessions
permettront de stocker les informations concernant le membre connecté, PHP gère très bien les
sessions et elles ne sont pas difficiles à utiliser et à mettre en œuvre. PHP offre aussi l’avantage
d’être multiplateforme. On peut l’utiliser sous n’importe quel système d’exploitation (Windows,
linux, MacOs). De plus, en termes de rapidité d’exécution, les temps de réponse de PHP sont très
satisfaisants. [16]
2.4.1.1 HTML
Le HTML, acronyme d’HyperText Markup Language, est le langage de base d’un site web. Il est
aussi appelé langage de structuration de page web. Il a été créé par Tim Berners-Lee au début des
années 1990. Le HTML permet de créer des pages web au moyen de balises ouvrantes (<html>) et
26
de balises fermantes (</html>). Ce balisage sert à définir la structure du texte entouré (titres, sous-
titres, paragraphes, images, formulaires, liens). Des navigateurs comme Chrome, Explorer, Mozilla
traduisent le langage HTML pour le rendre lisible pour les utilisateurs. C’est la base d’une page
Web, parfois la seule considérée et utilisée par le logiciel qui visite cette page, comme les moteurs
de recherche ou les navigateurs textuels. On qualifie de « statiques » les pages dont le code HTML
n’est modifié ni par JavaScript ni par PHP avant ou après l’affichage dans le navigateur. Grâce au
protocole HTTP, il permet de lire des documents sur internet à partir de machine différentes. On
peut ainsi accéder, via le réseau à des documents repérés par une adresse unique, appelée URL. Ces
documents sont organisés autour d’une page d’accueil qui guide les visiteurs vers d’autres pages
HTML grâce à des hyperliens. [13]
La dernière version de HTML est le HTML5. Cette version a été finalisée le 28 octobre 2014. Dans
le langage courant, HTML5 désigne souvent un ensemble de technologies Web (HTML5, CSS3 et
JavaScript) permettant notamment le développement d'applications.
2.4.1.2 CSS
Le code CSS (Cascading Style Sheets, ou feuilles de styles en cascade) permet de modifier la
présentation des éléments HTML : couleur, taille, police de caractères, mais aussi position sur la
page, largeur, hauteur, empilement, bref tout ce qui touche à la mise en page d’un document HTML.
Ainsi, un même document HTML pourra changer d’apparence sans changer de structure, grâce
uniquement à la modification des règles CSS qui lui sont appliquées.
La séparation de la structure et de la présentation facilite ainsi la construction, mais aussi la
maintenance et l’évolution des pages Web. Le principe des feuilles de style consiste alors à attribuer
des caractéristiques de mise en forme à des groupes d’éléments. On définit par un nom une
caractéristique de mise en forme. Puis, il suffit ensuite de l’appeler pour l’appliquer à un texte. Ces
feuilles de styles permettent :
- D’avoir une présentation homogène sur tout un site ;
- De pouvoir changer l’aspect du site entier en modifiant quelques lignes ;
- D’avoir une plus grande lisibilité du HTML ;
- D’avoir un positionnement rigoureux des éléments ;
- De changer plus rapidement les pages.
27
Le développement du troisième niveau des feuilles de styles en cascade CSS3 commence dès 1999.
CSS3 devient « modulaire », afin de faciliter ses mises à jour, mais aussi son implémentation par
des agents utilisateurs aux capacités et aux besoins de plus en plus variés (navigateurs graphiques,
navigateurs pour mobiles, navigateurs vocaux). [13]
2.4.1.3 Bootstrap
Bootstrap est un framework destiné à faciliter la création d’applications web. Un Framework est
d’abord un outil qui regroupe tout un ensemble de fonctionnalités préexistantes. Il nous permet de
bénéficier d’une architecture d’application de base et offre ainsi aux développeurs un confort de
conception grâce notamment à une facilité et à une rapidité de développement, à des conventions
précises et à une décomposition de l’application méthodique et logique. Il regroupe une collection
d’outils fournis sous la forme de classes CSS et de librairies JavaScript et optimise la création du
design (graphisme, animation et interactions avec la page dans le navigateur ... etc. ...) de sites et
d'applications web. Bootstrap a été créé par deux développeurs du réseau social Twitter en aout
2011. Ce framework dispose d’une grille décomposable en 12 colonnes et qui permet de placer les
éléments avec beaucoup plus de facilité. Bootstrap se démarque des autres frameworks, car il a
l’avantage de :
- Etre « responsive », c’est-à-dire, s’adapte à la taille de l’écran, que ce soit tablette,
ordinateur, smartphone, etc.)
- Fonctionner sur tous les navigateurs.
- Posséder deux types de « layout » ou disposition: le premier qui est fixe (la « scrollbar »
ou barre déroulante s’affichera si nécessaire), le second qui s’adapte à la largeur du
navigateur.
- Embarquer un tas de composants prêts à l’usage (labels, badges, boutons, icônes, menus,
« navbar », « progressbar », etc.) qui sont plutôt soignés.
- Posséder également une dizaine de composants JavaScript comme des modals, alert, etc.
permettant de donner un peu d’interaction à votre future interface. En bref, c’est un
framework très complet. [14] [15]
28
2.4.1.4 JavaScript
Le JavaScript est un langage qui est lu et exécuté par notre navigateur ou le client (donc directement
sur notre ordinateur) et qui permet de créer des réactions en réponse à des événements sur la page
ou à des actions de l’utilisateur. Par exemple :
- un clic sur un lien qui affiche un texte masqué progressivement ;
- un compteur qui défile ;
- l’apparition renouvelée d’actualités sans que le navigateur ne demande à nouveau la page au
serveur ;
Auparavant, le code JavaScript était souvent intégré au code HTML, mais là encore, on préconise
aujourd’hui la séparation des deux langages pour des raisons d’organisation du code, mais aussi
d’accessibilité du site.
Le JavaScript est capable lui-même d’écrire du code HTML ou CSS, et donc de modifier
totalement la base d’une page Web. [13]
2.4.1.5 JQuery
JQuery est une bibliothèque JavaScript libre qui porte sur l’interaction entre JavaScript et HTML,
et a pour but de simplifier des commandes communes de JavaScript. [13]
2.4.1.6 PHP
PHP est un langage de script HTML exécuté du côté du serveur. Il veut dire « PHP Hypertext
Preprocessor ». Sa syntaxe est largement inspirée du langage C, de Java et de Perl, avec des
améliorations spécifiques. Le but du langage est d'écrire rapidement des pages HTML dynamiques.
Le langage PHP permet de rendre un site dynamique en utilisant des bases de données. Celui-ci
est compilé du côté du serveur qui n'envoie au client que le résultat HTML. À chaque accès au site,
le serveur génère donc une page unique.
Pour insérer du code PHP dans une page HTML, il faut tout d'abord changer l'extension du fichier
en .php Le code s'insère entre deux balises : <?php ?>
L'affichage du texte se fait à l'aide de la fonction echo. Exemple : echo "Texte $variable suite";
Une variable est notée comme ceci : $variable; Elle peut être déclarée n'importe où dans le code et
il n'est pas nécessaire de préciser son type.
29
Un tableau est une variable qui va contenir plusieurs valeurs.
Déclaration d'un tableau : $tableau = array('Valeur1', 'Valeur2');
Concernant les sessions, les sessions permettent de créer des variables qui vont être sauvegardées
même lorsqu’ on change de page. C'est très utilisé pour faire les espaces membres de sites Web et
qui est surement le cas de ce projet. Pour ça, il faut démarrer la session avec session_start(). Il faut
la démarrer avant de taper du code HTML.
Les variables ont la forme : $_SESSION['nom'] = valeur;
Pour détruire ces valeurs, il faut utiliser session_destroy().
Concernant la gestion des formulaires, le but est de récupérer le contenu des champs d'un formulaire
HTML dans notre code PHP pour pouvoir le traiter. Lorsqu'un formulaire est envoyé à un script
PHP, toutes les variables seront disponibles automatiquement dans le script.
Les formulaires peuvent être de type GET ou POST. Pour un formulaire de type GET, les
informations sont passées directement par l'URL en clair, ce qui peut poser des problèmes de
limitations suivant le serveur. La méthode POST n'a pas ce genre de limitation, car les informations
sont transmises par le conteneur de variables globales (dans l'entête) et sont de plus cachées. PHP
peut gérer les deux méthodes de manière transparente.
Comme dans d’autres langages de programmation, le PHP utilise aussi les structures conditionnelles
if… else simple ou imbriquée, switch ainsi que les boucles for, foreach et while.
Il utilise également des fonctions. Une fonction permet de renvoyer un résultat en fonction de
données passées en paramètres. [16]
Il est possible de développer en objet (orienté) en PHP.
2.4.2 Choix du système de gestion de base de données
Le choix d'un SGDB est crucial dans un projet informatique dans la mesure où il apporte une
influence majeure sur les performances d'une application. Dans cette étude comparative, nous
proposons trois SGBD : MySQL, PostgreSQL et SQL Server. [10]
PostGreSQL MySQL SQL Server
avantages PostGreSQL garde
l'avantage avec une
panoplie beaucoup
plus étendue: il
Rapide : le serveur
MySQL est très
rapide. Ceci s'explique
par le fait qu'il est un
Produit Microsoft
ce qui lui a permis
d'offrir de
meilleure
30
gère les types
utilisateurs, les
tableaux, des
langages
procéduraux tels
que PHP, Java et
bien d'autres ;
PostGreSQL jouit
d'un système
d'extensions
vraiment utile et
d'autres aspects tels
que les règles qui
permettent d'insérer
des données depuis
une vue par
exemple.
SGBD qui a été conçu
à l'origine pour être
performant sur des
applications Web,
donc destiné aux
applications Web dont
le critère principal est
la rapidité.
Facile à utiliser
MySQL est beaucoup
plus simple à utiliser
que la plupart des
serveurs de bases de
données commerciaux
Connexion et Sécurité :
MySQL dispose d'un
système de sécurité
permettant de gérer les
personnes et les
machines pouvant
accéder aux différentes
bases.
performance pour
certaines librairies
du Framework.net.
inconvénients Le temps
d'exécution des
requêtes est moins
rapide que MySQL
au traitement des
requêtes.
MySQL s'occupe avec
excellence des petits
volumes de données,
avec un faible nombre
d'utilisateurs ;
Produit Microsoft
donc payant et pas
forcément
compatible avec
tous(puis migration
impossible si
changement de
plateforme).
Tableau 2.01: Comparaison de Systèmes de Gestion de Bases de données.
31
Ce projet consiste à développer une application Web ce qui implique qu'il nécessite un temps de
réponse rapide de la part du Système de Gestion de Base de données. Vu que MySQL est plus rapide
par rapport à PostgreSQL et non payant, nous adoptons MySQL pour notre SGBD.
2.4.3 Choix de l’outil de développement PHP
Il n'est pas obligatoire d'utiliser des IDE pour développer en PHP, bloc note ou Notepad peuvent
très bien suffire. Toutefois, l'utilisation des IDE permet de gagner de temps en phase de
développement. Il existe de nombreux IDE libre et payant sur le marché. Notre choix s'est porté sur
NetBeans, car il apporte des fonctionnalités utiles telles qu'une auto complétion des codes, ainsi que
les colorations syntaxiques.
2.4.4 Choix d’outil de conception de la base de données
La MERISE est la méthode choisie comme méthode de conception. Afin de faciliter la conception,
l’utilisation d’un logiciel est bénéfique. Dans le cas de ce projet, nous avons utilisé le logiciel
JMerise. Ce logiciel permet de spécialiser ou de généraliser les entités et de rajouter des contraintes
sur les relations (associations). L’utilisation de JMerise est très intuitive et multiplateforme. Les
fonctionnalités offertes par JMerise sont très variées et complètes mais restreintes uniquement à
l’utilisation des Modèles MCD. Sa prise en main est facile et se fait naturellement et rapidement.
JMerise permet de faire :
- La création d’un ou plusieurs Modèles conceptuels de données MCD ;
- La vérification des MCDs et génération du MLD ;
- La génération des scripts SQL propres à différentes SGBD : MySQL, PostGres, … ;
- Création des bases de données : MySQL, PostgreSQL… ;
- Exportation des dictionnaires de données et la liste des types sous format texte ;
- Exportation des MCD/MLD sous forme d’image jpg ;
- Rétro-Conception : Création des MCDs à partir des bases de données ;
- Etc… [17]
2.4.5 Plate-forme de développement web
Afin de faire fonctionner ce projet localement (sans se connecter à un serveur externe), nous avons
utilisé WampServer comme plate-forme de développement web. WampServer n'est pas en soi un
32
logiciel, mais un environnement comprenant deux serveurs (Apache et MySQL), un interpréteur de
script (PHP), ainsi que phpMyAdmin pour l'administration web des bases MySQL.
Le WampServer utilisé ici est de version 2.5. Il intègre Apache-2.4.9, Mysql-5.6.17, php5.5.12 et
phpMyAdmin4.1.14. [18]
Le serveur web pour notre application est Apache. C’est un serveur web open-source basé sur le
protocole HTTP et fonctionnant sous Linux et sous Windows, apparu en avril 1995. C’est le serveur
web le plus utilisé (environ 70 % des serveurs web utilisent Apache actuellement). La première version
est sortie en décembre 1995.
2.5 Architecture logicielle
L’architecture logicielle décrit d’une manière symbolique et schématique les différents éléments
d’un ou de plusieurs systèmes informatiques, leurs interrelations et leurs interactions.
2.5.1 Architecture MVC
L’architecture MVC (modèle, vue et contrôleur) est un concept très puissant qui intervient dans la
réalisation d’une application. Son principal intérêt est la séparation des données (modèle), de
l’affichage (vue) et des actions (contrôleur). Le principe d’une telle structure est de diviser
l’application en 3 parties distinctes :
- Les modèles : ils représentent les données de l’application et permettent l’interaction avec
la base de données.
- Les vues : ce sont les représentations (les templates) des résultats de la requête que
l’utilisateur a effectuée.
- Les contrôleurs : ils interceptent toutes les requêtes faites par les utilisateurs. [19]
Figure 2.05 : Structure du modèle MVC
33
Le traitement d'une demande d'un client se déroule selon les étapes suivantes :
- Le client fait une demande au contrôleur. Ce contrôleur voit passer toutes les demandes des
clients. C'est la porte d'entrée de l'application. C'est le C de MVC.
- Le contrôleur traite cette demande. Pour ce faire, il peut avoir besoin de l'aide de la couche
métier, ce qu'on appelle le modèle M dans la structure MVC.
- Le contrôleur reçoit une réponse de la couche métier. La demande du client a été traitée.
Celle-ci peut appeler plusieurs réponses possibles. Un exemple classique est une page
d'erreurs si la demande n'a pu être traitée correctement ou une page de confirmation sinon.
- Le contrôleur choisit la réponse (= vue) à envoyer au client. Celle-ci est le plus souvent une
page contenant des éléments dynamiques. Le contrôleur fournit ceux-ci à la vue.
- La vue est envoyée au client. C'est le V de MVC. [19]
2.5.2 Avantages de l’architecture MVC
Un avantage apporté par ce modèle est la clarté de l'architecture qu'il impose. Cela simplifie la tâche
du développeur qui tenterait d'effectuer une maintenance ou une amélioration sur le projet. En effet,
la modification des traitements ne change en rien la vue. Par exemple on peut passer d'une base de
données de type SQL à XML en changeant simplement les traitements d'interaction avec la base, et
les vues ne s'en trouvent pas affectées. [19]
Une telle architecture est souvent appelée "architecture 3-tiers" ou à 3 niveaux.
2.5.3 Architecture 2-tiers
L'architecture à deux niveaux (aussi appelée architecture 2-tiers, tiers signifiant étages en anglais)
caractérise les systèmes clients/serveurs dans lesquels le client demande une ressource et le serveur
la lui fournit directement. Cela signifie que le serveur ne fait pas appel à une autre application afin
de fournir le service. [19]
2.5.4 Architecture 3-tiers
Il s’agit d’un modèle logique d’architecture applicative qui vise à modéliser une application comme
un empilement de trois couches logicielles (étages, niveaux, tiers ou strates).
- Le client: le demandeur de ressources ;
- Le serveur d'application (appelé aussi middleware): le serveur chargé de fournir la
ressource, mais faisant appel à un autre serveur ;
34
- Le serveur secondaire (généralement un serveur de base de données), fournissant un
service au premier serveur. [19]
Figure 2.06 : Architecture 3-tiers
2.6 Gestion de la sécurité
Un système d’authentification par login et mot de passe sécurise l’interface de mises à jour. Ainsi
chaque personne référencée dans la base de données possède un login et un mot de passe leur
permettant de consulter ou de mettre à jour ses informations. De même, l’interface d’administration
n’est accessible qu’à partir d’un identifiant et d’un mot de passe délivré aux administrateurs du site
et de la base.
Pour gérer ce système de mot de passe, deux attributs « login » et « mot de passe » figurent dans
une table de la base de données.
Les scripts d’authentification s’assurent dans un premier temps que login et le mot de passe saisi
par l’internaute correspondent bien à ceux dans la base de données. Si oui, l’accès est autorisé, sinon,
l’internaute doit recomposer les deux champs.
2.7 Conclusion
Dans ce chapitre, nous avons présenté quelques notions sur le site web. Nous avons cité aussi les
outils utilisés tels que les langages de développement, les frameworks, les librairies, les logiciels et
plates-formes de développement web afin de réaliser ce projet. Pour assurer l’évolutivité de
l’application, l’architecture logicielle MVC est avantageuse.
35
:
REALISATION DE L’APPLICATION G-ESPA
3.1 Introduction
Dans les deux chapitres précédents, nous avons présenté la méthode de conception de la base de
données et le développement d’application d’entreprise. Ces études théoriques sont très importantes,
mais insuffisantes et insignifiantes sans pratiques. Donc dans ce dernier chapitre nous allons
présenter la réalisation de l’application de gestion de l’Ecole Supérieure Polytechnique
d’Antananarivo que nous avons nommé G-ESPA en manipulant tous les outils cités dans les
chapitres précédents.
3.2 Objectifs
Avant de se mettre à coder des lignes et des lignes de code, il faut tout d’abord limiter et tracer un
cadre de développement qui donnera la vue générale du projet et les objectifs souhaités par ce
dernier. C’est pour cela que la partie primordiale du projet est sa conception, car une conception
idéale donne automatiquement un projet réussi.
Ce projet est conçu pour gérer l’ensemble des données et d’informations circulant au sein de l’ESPA
Vontovorona que ce soit étudiants, enseignants, personnel administratif et technique, matières,
mentions, parcours, notes des étudiants, emploi du temps… Toutes ces données doivent être
stockées dans une base de données et accessibles par les utilisateurs à travers une interface web
selon les accès qui leur sont autorisés.
3.3 Les utilisateurs
Quatre grands types d’utilisateurs existent au sein de l’ESPA. La figure 3.01 montre l’organigramme
de ce dernier avec le mode de codage de leurs identifiants.
36
Figure 3.01 : Organigramme des utilisateurs et codage de leurs identifiants
L’identifiant de l’étudiant est codé de la manière suivante :
Code mention + code grade/niveau à la première inscription à l’ESPA + année de première
inscription à l ESPA + numéro d’inscription
Exemple : TCO1I14034 : cet étudiant est en mention télécommunication. Il est entré à l’ESPA en
première année, cycle ingéniorat, en 2014 avec le numéro 034.
Quant aux autres types d’utilisateurs, le xxx varie de 001 et est incrémenté d’un pas à chaque nouvel
utilisateur.
3.4 Conception de la base de données
3.4.1 Identification des entités
Voici les entités qui figurent dans la base de données :
- Actualité
- Année universitaire
- Information sur baccalauréat
- Bulletin
- Compte
37
- Elément constitutif
- Emploi du temps
- Enseignant
- Enseignement
- Etudiant
- Grade / Niveau
- Information scolaire
- Mention
- Parcours
- Personnel administratif et technique
- Salle
- Semestre
- Unité d’enseignement
3.4.2 Dictionnaire des données
Entités Attributs Types et taille Définition Observation
Actualite idActu Auto-incrémenté Id de l’atualité Clé primaire
contenu text Contenu de l’actualité
image varchar(40) Chemin de l’image
datePub datetime Date et heure de publication
Annuniv
_sem
id Auto-incrémenté Id de la table Clé primaire
debutSem date Début semestre
finSem date Fin semestre
Ann_uni
v
codAnn_uni int(11) Code de l’année Clé primaire
ann_uni varchar(25) Année universitaire
bacc idBacc Auto-incrémenté Id de la baccalauréat Clé primaire
annObtention year Année d’obtention du bacc
serie varchar(25) Serie en baccalauréat
numBacc varchar(25) Numéro baccalauréat
prom year Année d’entrée à l’ESPA
etabOrigine varchar(150) Établissement d’origine
38
bulletin idBull Auto-incrémenté Id du bulletin Clé primaire
note float Note de l’EC
compte idCompte Auto-incrémenté Id du compte Clé primaire
login varchar(25) Identifiant du compte UNIQUE
pass varchar(25) Mot de passe
type varchar(15) Type d’utilisateur
ec codEC varchar(25) Code de l’EC Clé primaire
nomEC varchar(50) Nom de l’EC
emploidu
temps
idEDT Auto-incrémenté Id de l’emploi du temps Clé primaire
Jour tinyint(4) Jour de la semaine
heure tinyint(4) heure
nbCredit tinyint(4) Nombre de crédit
enseigna
nt
numMatr varchar(25) Identifiant de l’enseignant Clé primaire
numTag varchar(25) Numéro tag UNIQUE
nomEns varchar(60) Nom de l’enseignant
prenomEns varchar(60) Prénom de l’enseignant
sexe varchar(10) sexe
datNais date Date de naissance
lieuNais varchar(150) Lieu de naissance
numTel varchar(40) Numéro téléphone
mail varchar(40) Adresse e-mail
grade varchar(100) grade
photoProf varchar(40) Chemin vers la photo
enseigne
ment
idEns Auto-incrémenté Id de l’enseignement Clé primaire
codParcours varchar(10) Code du parcours Clé étrangère
codEC varchar(25) Code de l’EC Clé étrangère
idSem int(11) Code du semestre Clé étrangère
numMatr varchar(10) Identifiant de l’enseignant Clé étrangère
etudiant codEtud varchar(25) Identifiant de l’étudiant Clé primaire
numTag varchar(25) Numéro tag
nomEtud varchar(60) Nom de l’étudiant
39
prenomEtud varchar(60) Prénom de l’étudiant
sexe varchar(10) Sexe de l’étudiant
datNais date Date de naissance
lieuNais varchar(150) Lieu de naissance
nationalite varchar(30) Nationalité
situFami varchar(20) Situation de famille
telephone varchar(40) Numéro téléphone
mail varchar(60) Adresse e-mail
nomPere varchar(100) Nom du père
professionP varchar(100) Profession du père
nomMere varchar(100) Nom de la mère
professionM varchar(100) Profession de la mère
adParents varchar(100) Adresse des parents
telParents varchar(40) Numéro telephone des parents
photoEtud varchar(40) Chemin vers photo de
l’étudiant
gradeniv
eau
codGN varchar(10) Code de la grade/niveau Clé primaire
nomGN varchar(30) Nom de la grade/niveau
informati
onscol
idIS Auto-incrémenté Id de l’information scolaire Clé primaire
numCE varchar(25) Numéro de la carte étudiante
codEtud varchar(25) Identifiant de l’étudiant Clé étrangère
idSem int(11) Id du semestre Clé étrangère
codParcours varchar(10) Code du parcours Clé étrangère
codGN varchar(10) Code de la grade/niveau Clé étrangère
codAnn_uni int(11) Code de l’année universitaire Clé étrangère
validation varchar(10) Validation de la semestre
mention codMention varchar(10) Code de la mention Clé primaire
nomMention varchar(40) Nom de la mention
parcours codParcours varchar(10) Code du parcours Clé primaire
nomParcours varchar(40) Nom du parcours
pat identifiant varchar(25) Identifiant du PAT Clé primaire
40
numTag varchar(25) Numéro du Tag
nom varchar(60) nom
prenom varchar(60) prénom
sexe varchar(10) sexe
datNais date Date de naissance
lieuNais varchar(60) Lieu de naissance
numTel varchar(40) Numéro téléphone
mail varchar(40) Adresse e-mail
photo varchar(40) Chemin vers la photo
salle codSalle varchar(25) Code de la salle Clé primaire
nomSalle varchar(40) Nom de la salle
semestre idSem Auto-incrémenté Id de la semestre Clé primaire
nomSem varchar(20) Nom du semestre
ue codUE varchar(10) Code de l’UE Clé primaire
nomUE varchar(40) Nom de l’UE
Tableau 3.01: Dictionnaire des données
3.4.3 Règles de gestion
- Année universitaire - semestre : Une année universitaire peut appartenir dans 1 à N semestres
et un semestre peut être appartenu dans 1 à N années universitaires avec les dates de débuts
et fins de chaque semestre.
- Semestre - information scolaire : un semestre peut être contenu dans 1 à N informations
scolaires, mais une information scolaire ne peut contenir qu’un et un seul semestre.
- Semestre - Enseignement : un semestre peut être contenu dans 1 à N enseignements, mais
un enseignement ne peut contenir qu’un et un seul semestre.
- Semestre – grade / niveau : Un semestre peut être contenu dans 1 à N grade / niveau et un
grade / niveau peut être contenu dans 1 à N.
- Information scolaire - parcours : une information scolaire ne peut contenir qu’un et un seul
parcours, mais un parcours peut contenir 1 à N informations scolaires.
- Information scolaire - grade / niveau : une information scolaire ne peut contenir qu’un et un
seul grade / niveau, mais un grade / niveau peut être contenu dans 1 à N informations
scolaires.
41
- Information scolaire - étudiant : une information scolaire ne peut contenir qu’un et un seul
étudiant, mais un étudiant peut contenir 1 à N informations scolaires.
- Information scolaire - Bulletin : une information scolaire peut posséder dans 1 à N bulletins
de notes, mais un bulletin de notes ne peut être possédé que par une et une seule Information
scolaire.
- Parcours - mention : une mention peut contenir 1 à N parcours, mais un parcours ne peut
être contenu que dans une et une seule mention.
- Parcours – enseignement : un parcours peut être eu par 1 à N enseignements, mais un
enseignement ne peut avoir qu’un et un seul parcours.
- Etudiant – Baccalauréat : un étudiant ne possède qu’une et une seule information sur son
baccalauréat et de même qu’une information sur baccalauréat ne peut être possédée que par
un et un seul étudiant.
- Etudiant – compte : un étudiant ne possède qu’un et un seul compte et de même qu’un
compte ne peut être possédé que par un et un seul étudiant.
- Compte – enseignant : un enseignant ne possède qu’un et un seul compte et de même qu’un
compte ne peut être possédé que par un et un seul enseignant.
- Compte – personnel administratif et technique ou PAT : un PAT ne possède qu’un et un seul
compte et de même qu’un compte ne peut être possédé que par un et un seul PAT.
- Enseignant – enseignement : un enseignant peut avoir 1 à N enseignements, mais un
enseignement ne peut avoir qu’un et un seul enseignant.
- EC – UE : une UE peut appartenir 1 à N EC, mais un EC ne peut être appartenu que par une
et une seule UE.
- EC – Enseignement : un EC peut avoir 1 à N enseignements, mais un enseignement ne peut
avoir qu’un et un seul EC.
- EC – Bulletin : un EC peut appartenir à 1 à N bulletins, mais un bulletin ne peut être
appartenu que par un et un seul EC.
- Mention – salle : une mention peut utiliser 1 à N salles, mais une salle ne peut être utilisée
que par une et une seule mention.
- Emploi du temps – salle : un emploi du temps ne peut avoir qu’une et une seule salle, mais
une salle peut être eu par 1 à N emploi du temps.
- Emploi du temps – enseignement : un emploi du temps ne peut avoir qu’un et un seul
enseignement, mais un enseignement peut être eu par 1 à N emploi du temps.
42
3.4.4 MCD
Le MCD issu des règles de gestion est créé via le logiciel JMerise. La figure 3.02 montre le résultat.
Figure 3.02 : MCD de la base de données
43
3.4.5 MLD
Après avoir vérifié que le MCD est correct, le MLD est généré automatiquement par ce même
logiciel et la figure 3.03 le montre.
Figure 3.03 : MLD de la base de données
44
3.4.6 Extrait de code SQL ou du MPD
Lors de la conversion du MCD en MLD, le MPD ou modèle physique des données ou encore le
code SQL est généré automatiquement. Un extrait de code SQL du SGBD MySQL est montré ci-
dessous.
CREATE TABLE Compte( idCompte int (11) Auto_increment NOT NULL , login Varchar (25) , pass Varchar (25) , type Varchar (15) , PRIMARY KEY (idCompte ), UNIQUE KEY `login` (`login`) )ENGINE=InnoDB;
3.4.7 Importation du code SQL dans phpMyAdmin de WAMPSERVER
Afin d’administrer la base de données, il est ici incontournable d’importer le code SQL générer par
JMerise dans phpMyAdmin de WAMPSERVER. PhpMyAdmin sera notre interface qui va nous
permettre de créer les différentes tables de la base de données en respectant la structure qu’on a déjà
posée lors de la réalisation du MCD. Mais avant tout, il faudra créer la base de données en lui
donnant un nom. Dans mon cas, je l’ai appelée « memoirerova ».
Figure 3.04 : Création de la base de données dans phpMyAdmin
Figure 3.05 : Importation du code SQL dans phpMyAdmin
45
Figure 3.06 : Les tables dans la base de données espasql
3.5 Codage de l’application
Afin de réaliser l’interface de l’application, nous avons passé par différentes étapes. D’abord, nous
avons créé un dossier contenant tous les codes sources de toute l’application dans le dossier www
de WAMP. Nous avons nommé ce dossier « espaSite ».Il est décomposé en 6 sous dossiers et d’un
fichier index.php qui sera lancé en premier.
Figure 3.07 : Organisation des dossiers
46
3.5.1 Assets
Assets contient les bibliothèques et fichiers css et JavaScript utile pour l’application. C’est là que
nous avons placé le style de notre application.
3.5.2 Controller
Controller contient les contrôleurs de l’application qui sont des classes .php. Ils font le contrôle des
valeurs saisies par l’utilisateur, choisissent les pages à afficher et les actions à faire selon l’action
des utilisateurs.
3.5.3 Entity
Entity contient les entités participantes dans l’application. Ce sont les tables de la base de données
sous forme de classe .php et dont ses variables sont les attributs de la table.
3.5.4 Img
Img sert de stocker les images utilisées ou télécharger depuis l’interface.
3.5.5 Model
Model contient des classes qui sert de connexion et d’accès à la base de données grâce à des LMD
de MySQL. Les 20 tables de notre base de données vont donc être traitées et manipulées à partir du
model.
3.5.6 View
View contient les maquettes ou les pages de notre interface. Ce sont aussi ceux qui sont codés en
premier. Elles contiennent du HTML ainsi qu’un petit bloc de code PHP. Donc, elles sont
d’extension .php.
3.6 Présentation de l’interface
La conception des interfaces de l’application G-ESPA est une étape très importante puisque toutes
les interactions avec les bases de données de l’application passent à travers ces interfaces, nous
devons alors guider l’utilisateur avec les messages d’erreur ou de succès.
47
Dans cette partie, nous allons présenter quelques cas d’utilisations, sous forme d’un guide
utilisateur. Pour accéder à notre application, l’utilisateur doit taper l’URL :
« http://localhost/espaSite/ ». Cette URL redirige l’utilisateur vers la page d’accueil qui est la page
d’authentification. Donc, l’utilisateur doit s’authentifier. Comme toute application, la sécurité
d’accès est nécessaire. Il saisit son login et son mot de passe puis le serveur vérifie ces informations.
Si les valeurs saisis sont corrects, c’est-à-dire, correspondent à une ligne dans la table compte de la
base de données espasql, l’utilisateur est autorisé à accéder à la page suivante selon le type
d’utilisateur qu’il est. Sinon, l’utilisateur est encore redirigé vers cette même page
d’authentification.
3.6.1 Page d'accueil
Avant d'utiliser l'application, l'utilisateur doit s'authentifier, au démarrage de l'application
s'affiche donc une page d'authentification permettant aux utilisateurs de saisir son login et son mot
de passe.
Figure 3.08 : Page d’accueil de l’application G-ESPA
3.6.2 Cas d’un étudiant
Un étudiant a le droit de consulter les actualités, ses informations comme état civil, baccalauréat,
information scolaire. Il peut aussi consulter ses notes ainsi que tous les emplois du temps. Il a le
droit de changer son mot de passe et se déconnecter.
Après l’authentification, un étudiant est redirigé vers une page qui affiche ses informations
personnelles « http://localhost/espaSite/view/etatCivil.php ».
48
Figure 3.09 : Page pour étudiant
3.6.3 Cas d’un enseignant
Un enseignant a le droit de consulter les actualités, ses informations personnelles. Il peut aussi
consulter son emploi du temps, la liste des étudiants qu’il enseigne et saisir leur note. Il a le droit de
changer son mot de passe et se déconnecter.
Un enseignant est redirigé vers « http://localhost/espaSite/view/informationProf.php » après
authentification.
Figure 3.10 : Page pour enseignant
49
3.6.4 Cas d’un PAT
- Cas de la scolarité :
La scolarité gère plusieurs activités.
Pour les étudiants, il peut : afficher la liste des étudiants avec ses informations détaillées,
chercher un étudiant, faire l’inscription administrative et pédagogique, la réinscription,
consulter les notes.
Pour les enseignants, il peut : chercher un enseignant avec ses informations détaillées,
faire l’inscription.
Concernant les mentions et parcours, il peut : consulter les listes des mentions et parcours
de la mention, ajouter une nouvelle mention ainsi qu’un nouveau parcours.
Pour les unités d’enseignement (UE) et éléments constitutifs (EC), la scolarité peut :
consulter la liste des UE et EC de UE, en ajouter un nouveau.
Pour le semestre, il peut ajouter le début et fin du semestre.
Pour les salles, il peut consulter la liste des salles et ajouter une nouvelle.
Concernant l’emploi du temps, il peut faire l’ajout d’un emploi du temps.
Comme pour les deux types d’utilisateurs précédents, il peut consulter les actualités,
changer son mot de passe et se déconnecter.
Un PAT scolarité est redirigé vers « http://localhost/espaSite/view/espaceEtudiant.php » après
authentification.
Figure 3.11 : Page pour PAT scolarité
50
- Cas de PAT autres que la scolarité
Ces utilisateurs peuvent consulter les actualités, gérer son compte et se déconnecter. Ils sont
redirigés vers http://localhost/espaSite/view/actuPAT.php après authentification.
Figure 3.12 : Page pour PAT autre que la scolarité
3.6.5 Cas d’un administrateur
L’administrateur peut : ajouter une actualité, modifier les comptes de tous utilisateurs, inscrire un
PAT, chercher un PAT, et enfin se déconnecter.
Un administrateur est redirigé vers « http://localhost/espaSite/view/compteAdmin.php » après
authentification.
Figure 3.13 : Page pour admin
51
3.7 Conclusion
Dans ce chapitre, on a effectué la collection des données utiles, élaboration des règles de gestion, la
conception de la base de données avec l’aide de JMerise. Après importation du code SQL dans
phpMyAdmin du WampServer, la base de données « espasql » contient au total 20 tables. Ces 20
tables vont après être manipulé par des LMD de MySQL dans le code PHP afin d’effectuer
l’interaction de l’interface avec les données. Les interfaces présentées montrent la page d’accueil et
les premières pages vues par les utilisateurs après l’authentification selon leurs types, mais il en
existe encore d’autres.
52
CONCLUSION GENERALE
La base de données est très importante dans toutes entreprises surtout lorsqu’il s’agit de gérer un
grand nombre de données.
Pour ce projet, nous avons opté le cas de notre école, l’Ecole Supérieure Polytechnique d’
Antananarivo à Vontovorona, qui aura besoin de gérer l’ensemble de ses données. Pour se faire, des
études théoriques ont été faites dans les deux premiers chapitres qui sont la généralité sur la base de
données et développement d’application d’entreprise. Lors de la réalisation dans le dernier chapitre,
nous avons d’abord conçu une base de données contenant les informations nécessaires avec le
logiciel JMerise en utilisant comme SGBD le MySQL. Et afin d’en faciliter l’accès, une application
web nommée G-ESPA est créée avec. Pour se faire, nous avons utilisé PHP comme langage de
développement de l’application. HTML5, CSS3 et Bootstrap3 ont permis de mettre en œuvre la
maquette ou l’interface de l’application. Chaque utilisateur peut bien accéder à la base de données
selon les droits qu’on leur a autorisés.
Cette application permet de mettre à jour les données concernant les étudiants, les enseignants, les
personnels administratifs et techniques, les matières, les mentions et parcours, les salles et les notes
des étudiants qui sont stockés dans une base de données.
Vu que les interfaces montrant les différents cas d’utilisations possibles ne sont pas détaillées dans
le dernier chapitre de ce mémoire, les utilisateurs de cette application doivent d’abord être formés
avant son utilisation.
Le travail effectué pour ce mémoire est la première version de cette application. Donc, des
propositions d’idées d’amélioration sont nécessaires et nous aident beaucoup afin de faire évoluer
cette application.
53
ANNEXE 1 :
PRESENTATION DES AUTRES INTERFACES DE L’APPLICATION
- Cas d’un étudiant :
Figure A1.01 : Page d’affichage des informations sur le baccalauréat d’un étudiant
Figure A1.02 : Page d’affichage des informations scolaires d’un étudiant
La page de la Figure A1.02 consiste à visualiser les informations scolaires d’un étudiant suivant
deux critères : son année universitaire et son semestre.
54
Figure A1.03 : Page d’emploi du temps
La page de la Figure A1.03 consiste à visualiser l’emploi du temps d’un parcours suivant une
année universitaire et un semestre.
Figure A1.04 : Page de consultation de notes
Cette page consiste à un étudiant de visualiser sa note suivant son année universitaire et son
semestre.
55
- Cas d’un enseignant
Figure A1.05 : Page de consultation et saisie des notes
Cette page permet à un enseignant de consulter la liste de ses étudiants ainsi que de saisir leur
notes suivant ces cinq critères.
Figure A1.06 : Emploi du temps pour un enseignant
La page de la Figure A1.06 permet à un enseignant de visualiser son emploi du temps durant un
semestre d’une année universitaire.
56
- Cas d’un PAT scolarité
Figure A1.07 : Fiche d’inscription administrative
57
Cette page permet à un personnel de la scolarité d’ajouter ou inscrire les informations d’un
étudiant la première fois.
Figure A1.08 : Fiche d’inscription pédagogique
L’inscription pédagogique permet d’inscrire un étudiant à un semestre et parcours. Pour cela, il est
nécessaire que le numéro de la carte étudiante soit valide c’est-à-dire que l’étudiant soit inscrit
administrativement.
Figure A1.09 : Fiche de réinscription
La réinscription consiste comme son nom l’indique à réinscrire un étudiant pour une nouvelle
année universitaire.
58
Figure A1.10 : Page d’affichage des mentions
Cette page permet d’afficher la liste des mentions existantes à l’ESPA Vontovorona.
Figure A1.11 : Page d’affichage des parcours d’une mention
Cette page permet d’afficher la liste des parcours par mention existants à l’ESPA Vontovorona.
59
Figure A1.12 : Page pour ajout de calendrier semestriel
Cette page permet d’enregistrer le début et la fin d’un semestre pair ou impair.
Figure A1.13 : Page pour affichage des listes des unités d’enseignement
Cette page permet d’afficher la liste des UE existantes à l’ESPA Vontovorona.
Figure A1.14 : Page d’affichage des éléments constitutifs d’une unité d’enseignement
Cette page permet d’afficher la liste des EC par UE existants à l’ESPA Vontovorona.
60
Figure A1.15 : Page d’affichage des salles de classe
Cette page permet d’afficher la liste des salles disponibles par mention au sein de l’ESPA
Vontovorona.
Figure A1.16 : Gestion des enseignants par la scolarité
Cette page permet à un personnel de la scolarité de faire l’inscription d’un enseignant via le
bouton bleu et d’en rechercher un nom via le bouton vert. Le résultat de cette recherche affiche le
nom, prénom, et deux liens dont l’un se redirige vers une page affichant tous les détails de
l’enseignant et l’autre vers la liste des matières enseignés par l’enseignant.
61
- Cas d’un administrateur
Figure A1.17 : Gestion PAT par l’administrateur
Cette page permet à l’administrateur de faire l’inscription d’un PAT via le bouton bleu et d’en
rechercher un nom via le bouton vert. Le résultat de cette recherche affiche le nom, prénom, et un
lien se redirigeant vers une page affichant tous les détails d’un PAT.
Figure A1.18 : Fiche d’inscription d’un PAT
Cette page permet à un administrateur d’ajouter ou inscrire les informations d’un PAT.
62
BIBLIOGRAPHIE ET WEBOGRAPHIE
[1] Y. Prié, « Introduction à la conception de systèmes d’information », UFR Informatique -
Université Claude Bernard Lyon 1, 2008-2009.
[2] L. Audibert « Base de données et langage SQL », http://laurent-
audibert.developpez.com/Cours-BD, 30/01/17
[3] D. Mohamed, « Conception d'un dispositif opérationnel de suivi technico-économique des
exploitations agricoles dans le cadre du conseil de gestion », Mémoire de fin d’études, Institut
National Polytechnique, AU : 2010 – 2011
[4] J. F. Pillou, «Les niveaux des données », CommentCaMarche.net, septembre 2015
[5] « Base de données : théorie de modélisation », http://igm.univ-
mlv.fr/%7Edr/XPOSE2011/BDD, 01/03/17
[6] Taguan, « Administrez vos bases de données avec MySQL », www.siteduzero.com,
23/02/2012
[7] D. D. Omokoko, «Conception et réalisation d'une base de données pour la gestion de
facturation à l'office congolais de contrôle direction provinciale du Kasaà occidental », Mémoire
de fin d’études, Université Notre-Dame du Kasayi, informatique de gestion 2009
[8] « Internet », https://fr.wikipedia.org/wiki/Internet, 10/03/17
[9] G. Randria, « Web et XML », Cours I3 – TCO, Ment. TCO.- E.S.P.A., A.U. : 2015-2016
[10] « Concevez votre site web avec PHP et MySQL », www.siteduzero.com, décembre 2016
[11] « Langage de définition des données »,
https://fr.wikipedia.org/wiki/Langage_de_définition_de_données, 11/03/17
[12] F. Chaker-kharrat, « cours programmation web », Niveau : 3ème année, Année Universitaire
: 2011/2012
[13] X. Pitel «HTML-CSS-JavaScript-PHP-MySQL petites explications des technologies
web», http://www.xp-internet.com/xp-infos/HTML-CSS-JavaScript-PHP-MySQL-petites-
explications-des-technologies-Web.php, 12/03/2017
[14] « BOOTSTRAP web development », www.tutorialspoint.com, janvier 2017
[15] B. Philibert, « Bootstrap3 le framework 100 % web design », eyrolles, janvier 2017
[16] S. Rohaut, « Cours Programmation PHP », document PDF, février 2017
[17] Messouci, « Mini manuel JMerise », document PDF, janvier 2017
[18] « WampServer », https://fr.wikipedia.org/wiki/WampServer, 01/03/17
63
[19] S. Tahé « Méthodologie de développement MVC d'une application PHP », document PDF,
février 2017
[20] « C’est quoi un serveur ftp ? », http://www.culture-informatique.net/cest-quoi-un-serveur-
ftp, 12/03/17
[21] J. L. Baptiste « MERISE guide pratique modélisation des données et des traitements,
langage SQL», ENI, décembre 2016
[22] « Historique des bases de données », http://www.petite-entreprise.net/P-2649-85-G1-
historique-des-bases-de-donnees.html, 02/03/17
64
RENSEIGNEMENTS
Nom : ANDRIATSIORIMANANA
Prénom: Rova
Adresse :
Lot (R+5)2 porte 27 67Ha Sud Tana
E-mail : [email protected]
Tel : +261 33 04 815 88
Titre du mémoire :
CONCEPTION D’UNE BASE DE DONNEES ET REALISATION D’UNE APPLICATION
WEB POUR L’ESPA VONTOVORONA
Nombres de pages : 63
Nombres de tableaux : 2
Nombre de figures : 38
Directeur de mémoire : RAKOTONDRAINA Tahina Ezéchiel,
+261 33 11 761 10
65
RESUME
Ce projet vise à concevoir une base de données et développer une application pour l’ESPA
Vontovorona. Mais, pour aboutir à cette fin, nous allons tout d’abord effectuer une étude
conceptuelle de l’application en partant de la conception de la base de données, création de
l’interface et enfin l’interaction entre les deux. Le système de gestion de base de données choisi fut
MySQL et combiné avec le langage de développement PHP. L’interface de l’application a été
implémentée avec Boostrap3, qui est un framework permettant de faciliter la création de l’interface.
Ce mémoire m’a été très bénéfique d’un point de vue design, et surtout du côté de développement
d’application.
Mots clés : MySQL, PHP, Bootstrap, conception, développement
ABSTRACT
This project aims at designing a database and developing an application for ESPA Vontovorona.
But to achieve this, we will first carry out a conceptual study of the application starting from the
design of the database, creation of the interface and finally the interaction between the two. The
database management system chosen was MySQL and combined with the PHP development
language. The interface of the application has been implemented with Boostrap3, which is a
framework to facilitate the creation of the interface. This dissertation has been very beneficial to me
from a design, and especially from the application development side.
Keywords: MySQL, PHP, Bootstrap, design, development