chapitre 4
1. Introduction Le Modèle Conceptuel est
construit pour
|
décrit exactement les informations à besoin.
Prévenir les erreurs, et détecter les
éléments de projet mal comprendre. former une importante
documentation "système idéal ".
permet de construire une base solide pour la base de
données physique. fait un très bon entraînement entre le
groupe de développement.
Permet de faire un changement facile, Si les parties du
modèle ne sont pas satisfaisantes ou sont mal comprises.
|
|
2. Le modèle relationnel
Défini par EF Codd de la société IBM
dès 1970, ce modèle a été amélioré et
rendu opérationnel dans les années 80 sous la forme de SBGD-R
(SGBD Relationnels). Voici une liste non exhaustive de tels SGBD-R :
Access de Microsoft.
Oracle.
DB2 d'IBM.
Interbase de Borland.
SQL server de microsoft.
L'expérience montre que le modèle relationnel s'est
imposé parce qu'il était le plus simple en terme
d'indépendance des données par rapport aux applications et de
facilité de représenter les données dans notre esprit.
Toutes les relations entre les objets contenant les informations
sont décrites et représentées sous la forme de tableaux
à 2 dimensions.
Nous avons basé pour modéliser notre
système sur le modèle entité association selon la syntaxe
et les recommandations proposées par oracle, Et voici une petite
présentation et explication.
3. Modèle entité-association sous oracle
3.1 Représentation des entités
EMPLOYÉ
Commande
Emploi
3.2 Représentation des attributs :
|
indique l'attribut obligatoire, qui est connu et
disponible pour chaque instance. Indique l'Attribut
facultatif, qui est inconnu ou qui n'est pas important à savoir
pour quelques instances.
|
EMPLOYÉ NOM
Prénom
Date Naissance Email
3.3 Représentation d'une relation : Relation
obligatoires et Facultatifs :
Facultatif : obligatoires :
Un emploi peut être tenu par un employé ou
plus
Un employé peut avoir exactement un
travail.
EMPLOYÉ
Avoir
Tenu par
Emploi
Relation et fin de la relation :
EMPLOYÉ
Avoir
Emploi
Tenu par
Quand vous avez lu la relation, imaginez qu'il est divisé
en deux perspectives:
EMPLOYÉ
Emploi
Chaque EMPLOYÉ doit avoir
exactement un emploi
EMPLOYÉ
Emploi
Un emploi peut être occupé
par un EMPLOYÉ ou plus.
Lire une fin de la relation :
P
Partager en
Partie de
Q
Chaque P peut être partager
en un Q ou plus.
Chaque Q doit être partie
d'exactement
un P.
Une relation d'une entité 1 à une entité 2
doit être lu:
Chaque entité 1 {doit être | peut
être}
Nom relation
{Un ou plus | exactement un} entité 2
|
les types de relations:on
distingue trois types de relations :
1. Un a m (1 : m)
2. Plusieurs a plusieurs (m : m)
3. Un a un (1 :1)
> la relation de type (1 : m) :
> La relation de type (m : m) :
(b)
> la relation de type (1 : 1) :
3.4 Les contraintes
d'intégrités
L'identificateur unique :
Un identificateur unique est un ensemble d'attributs et/ou de
relations permettant de distinguer les différentes occurrences d'une
même entité.
Représentation de l'identificateur
unique
Dans un diagramme entité relation les attributs qui
composent un identificateur unique sont marqués par :
1. # pour les attributs.
2. Avec une petite barre qui traverse la fin de la relation.
Bac
Type bac Session
ETUDIANT
#numéro inscription Nom
Prénom
Date Naissance Email
indiquer un identificateur unique 4. Etude du
cas
Le Modèle conceptuel (E-A):
Après cette petite présentation de la
méthode choisie, on passe maintenant à la phase de conception de
la base de donnée qui été simple et claire grâce
à la simplification offerte par cette méthode.
Le diagramme qui ce suit concerne seulement une partie de la base
de données globale, c'est la partie accordée à nos
interfaces (inscription, outils d'administration,..).
.
Année
universitaire #Année
Transférer à
Dériver
WILAYA
#Code
Nom
UNIVERSITE
# Code Nom
Correspondre
Contient
Possède
BAC # Code Nom
Pour
Pour
Comprendre
Contient
Résulter de
Accorder à
Dépendre de
OPTIONS
# Code Nom
Associer
Transférer à
comprendre
Dériver de
DOSSIER RETIRER # Code
Couvre
Contient
FICHE ETUDE # Id
#Année univ Matricule
Dépendre de Associer
SPECIALITE
# Code Nom
Appartient à
Comprendre
DOSSIER BLOQUE
# Code
Justifier par
Justifier
TYPE CONGE
# Code Nom
DOSSIER_TRANSFERER
#Code
Spécialité destination option
destination
DIPLOME
# Code Nom
LE Modèle conceptuel entité
association.
Posséder
Contient
ETUDIANT
# Id
Nom
Prénom
Date naissance Lieu naissance Adresse
Résider
Héberger
COMMUNE
# Code
Nom
FACULTE
# Code
Nom
Appartient à
Contient
Appartient à
Appartient à
Contient
Avoir
NATIONALITE
# Code
Lebel
DEPARTEMENT
# Code
Nom
Le modèle relationnel
A partir du modèle conceptuel on construit le
modèle relationnel qui est plus proche de la base de données
physique, ici on n'a pas dessiné le diagramme de ce modèle mais
on juste fait une description des tables finales.
BAC :
Colonnes:
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
CODE
|
VARCHAR2
|
2
|
Non
|
Code
|
BAC_FR
|
VARCHAR2
|
40
|
Non
|
Le nom du bac en français
|
BAC_AR
|
VARCHAR2
|
40
|
Non
|
Le nom du bac en arabe
|
Contraintes:
Nom
|
Type
|
Table référencée
|
BAC AR UK
|
UNIQUE
|
|
BAC FR UK
|
UNIQUE
|
|
BAC PK
|
PRIMARY
|
|
|
WILAYA :
Colonnes.
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
CODE
|
VARCHAR2
|
2
|
Non
|
Code
|
WILAYA_FR
|
VARCHAR2
|
30
|
Non
|
Nom wilaya en français
|
WILAYA_AR
|
VARCHAR2
|
30
|
Non
|
Nom wilaya en arabe
|
Contraintes :
Nom
|
Type
|
Table référencée
|
WIL AR UK
|
UNIQUE
|
|
WIL FR UK
|
UNIQUE
|
|
WIL PK
|
PRIMARY
|
|
COMMUNE :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
CODE
|
VARCHAR2
|
5
|
Non
|
Code
|
COMMUNE_AR
|
VARCHAR2
|
40
|
Non
|
Nom commune en français
|
COMMUNE_FR
|
VARCHAR2
|
40
|
Non
|
Nom commune en arabe
|
CODE_WIL
|
VARCHAR2
|
2
|
Oui
|
Code wilaya
|
Contraintes :
Nom
|
Type
|
Table référencée
|
COMMUNE CODE UK
|
UNIQUE
|
|
COMMUNE FK
|
FOREIGN
|
WILAYA
|
COMMUNE UK
|
UNIQUE
|
|
NATIONALITE :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
CODE_NATION
|
NUMBER
|
3
|
Non
|
Code
|
NATIONALITE_FR
|
VARCHAR2
|
40
|
Non
|
Nom nationalité en français
|
NATIONALITE_AR
|
VARCHAR2
|
40
|
Non
|
Nom nationalité en arabe
|
Contraintes :
Nom
|
Type
|
Table référencée
|
NATIONALITE AR UK
|
UNIQUE
|
|
NATIONALITE FR UK
|
UNIQUE
|
|
PK NATIONALITE
|
PRIMARY
|
|
|
UNIVERSITE :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
désignation
|
CODE
|
VARCHAR2
|
2
|
Non
|
Code
|
UNIV_FR
|
VARCHAR2
|
40
|
Non
|
Nom université en français
|
UNIV_AR
|
VARCHAR2
|
40
|
Non
|
Nom université en arabe
|
SIGLE
|
BLOB
|
|
Oui
|
Sigle d'université
|
DATE _OUVERTURE
|
DATE
|
7
|
Oui
|
Date d' ouverture
|
ADRESSE_FR
|
VARCHAR2
|
60
|
Oui
|
Adresse en français
|
ADRESSE_AR
|
VARCHAR2
|
60
|
Oui
|
Adresse en arabe
|
WILAYA
|
VARCHAR2
|
2
|
Oui
|
Wilaya d'université
|
TELEPHONE1
|
VARCHAR2
|
12
|
Oui
|
Téléphone 1
|
TELEPHONE2
|
VARCHAR2
|
12
|
Oui
|
Téléphone 2
|
FAX1
|
VARCHAR2
|
12
|
Oui
|
Fax 1
|
FAX2
|
VARCHAR2
|
12
|
Oui
|
Fax 2
|
Contraintes :
Nom
|
Type
|
Table référencée
|
UNIV AR UK
|
UNIQUE
|
|
UNIVERSITE FK
|
FOREIGN
|
WILAYA
|
UNIVERSITE PK
|
PRIMARY
|
|
UNIV FR UK
|
UNIQUE
|
|
FACULTE:
Colonnes:
Nom
|
Type de données
|
Taille
|
Null ?
|
désignation
|
CODE
|
VARCHAR2
|
4
|
Non
|
code
|
FAC_FR
|
VARCHAR2
|
40
|
Non
|
Nom français de faculté
|
FAC_AR
|
VARCHAR2
|
40
|
Non
|
Nom arabe de faculté
|
CODE _UNIV
|
VARCHAR2
|
2
|
Oui
|
Code université
|
TELEPHONE1
|
VARCHAR2
|
12
|
Oui
|
Telephone1
|
TELEPHONE2
|
VARCHAR2
|
12
|
Oui
|
Telephone2
|
FAX1
|
VARCHAR2
|
12
|
Oui
|
Fax1
|
FAX2
|
VARCHAR2
|
12
|
Oui
|
Fax2
|
Contraintes :
Nom
|
Type
|
Table référencée
|
FACULTE FK
|
FOREIGN
|
UNIVERSITE
|
FACULTE PK
|
PRIMARY
|
|
FACULTE UK
|
UNIQUE
|
|
DEPARTEMENT :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
désignation
|
CODE
|
VARCHAR2
|
6
|
Non
|
Code
|
DEPART_FR
|
VARCHAR2
|
30
|
Non
|
Nom département en français
|
DEPART_AR
|
VARCHAR2
|
30
|
Non
|
Nom département en arabe
|
CODE_FAC
|
VARCHAR2
|
4
|
Oui
|
Code faculté
|
DATE _OUVERTURE
|
DATE
|
7
|
Oui
|
Date d' ouverture
|
TELEPHONE1
|
VARCHAR2
|
12
|
Oui
|
Téléphone 1
|
TELEPHONE2
|
VARCHAR2
|
12
|
Oui
|
Téléphone 2
|
FAX1
|
VARCHAR2
|
12
|
Oui
|
Fax 1
|
FAX2
|
VARCHAR2
|
12
|
Oui
|
Fax 2
|
Contraintes :
Nom
|
Type
|
Table référencée
|
DEPARTEMENT FK
|
FOREIGN
|
FACULTE
|
DEPARTEMENT PK
|
PRIMARY
|
|
DEPARTEMENT UK
|
UNIQUE
|
|
|
SPECIALITE :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
CODE
|
VARCHAR2
|
9
|
Non
|
Code
|
FR_SPECIAT
|
VARCHAR2
|
40
|
Non
|
Nom spécialité en français
|
AR_SPECIAT
|
VARCHAR2
|
40
|
Non
|
Nom spécialité en arabe
|
CODE_DEPL
|
VARCHAR2
|
1
|
Oui
|
Code diplôme
|
CODE_DEPART
|
VARCHAR2
|
6
|
Oui
|
Code département
|
Contraintes :
Nom
|
Type
|
Table référencée
|
SPECIALITE DEPART FK
|
FOREIGN
|
DEPARTEMENT
|
SPECIALITE DEPLOME FK
|
FOREIGN
|
DEPLOME
|
SPECIALITE PK
|
PRIMARY
|
|
SPECIALITE UK
|
UNIQUE
|
|
DEPLOME :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
désignation
|
CODE
|
VARCHAR2
|
1
|
Non
|
Code
|
DEPL_FR
|
VARCHAR2
|
30
|
Non
|
Nom diplôme en français
|
DEPL_AR
|
VARCHAR2
|
30
|
Non
|
Nom diplôme en arabe
|
FIN_CYCLE
|
NUMBER
|
1
|
Non
|
Année fin de cycle
|
Contraintes :
Type
Nom
|
|
Table référencée
|
DEPLOME AR UK
|
UNIQUE
|
|
DEPLOME FR UK
|
UNIQUE
|
|
DEPLOME PK
|
PRIMARY
|
|
OPTIONS :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
désignation
|
CODE
|
VARCHAR2
|
10
|
Oui
|
Code
|
OPTION_FR
|
VARCHAR2
|
40
|
Non
|
Nom option en français
|
OPTION_AR
|
VARCHAR2
|
40
|
Non
|
Nom option en arabe
|
ANNEE_DEBUT
|
VARCHAR2
|
9
|
Oui
|
Année début de l'option
|
Nom
|
Type
|
Table référencée
|
OPTIONS CODE UK
|
UNIQUE
|
|
OPTIONS FK
|
FOREIGN
|
SPECIALITE
|
OPTIONS UK
|
UNIQUE
|
|
|
ANNEE UNIV :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
ANNEE
|
VARCHAR2
|
4
|
Non
|
Année universitaire
|
TITLE
|
VARCHAR2
|
9
|
Oui
|
Intitulé
|
Contraintes :
Nom
|
Type
|
Table référencée
|
ANNEE UNIV PK
|
PRIMARY
|
|
ETUDIANT :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
IDENT
|
VARCHAR2
|
20
|
Non
|
L'identificateur d'étudiant
|
NOM_AR
|
VARCHAR2
|
30
|
Non
|
Nom en arabe
|
NOM_FR
|
VARCHAR2
|
30
|
Non
|
Nom en français
|
PRENOM_AR
|
VARCHAR2
|
30
|
Non
|
Prénom en arabe
|
PRENOM_FR
|
VARCHAR2
|
30
|
Non
|
Prénom en français
|
DATE _NAISSANCE
|
DATE
|
7
|
Non
|
Date de naissance
|
LIEU_NAISSANCE
|
VARCHAR2
|
20
|
Oui
|
Lieu de naissance
|
COMMUNE
|
VARCHAR2
|
5
|
Oui
|
Commune de résidence
|
NATIONALITE
|
NUMBER
|
3
|
Oui
|
Nationnalité
|
ADRESSE_AR
|
VARCHAR2
|
40
|
Non
|
Adresse en arabe
|
ADRESSE_FR
|
VARCHAR2
|
40
|
Non
|
Adresse en frainçais
|
BAC
|
VARCHAR2
|
2
|
Oui
|
Type de bac acquise
|
PAYS_BAC
|
NUMBER
|
3
|
Oui
|
Paye de bac
|
MOYENNE_BAC
|
NUMBER
|
2
|
Non
|
Moyenne de bac
|
PHOTO
|
BLOB
|
|
Oui
|
Photo
|
PRENOMP_AR
|
VARCHAR2
|
30
|
Non
|
Prénom père arabe
|
PRENOMP_FR
|
VARCHAR2
|
30
|
Non
|
Prénom père français
|
PRENOMM_AR
|
VARCHAR2
|
30
|
Non
|
Prénom mère arabe
|
PRENOMM_FR
|
VARCHAR2
|
30
|
Non
|
Prénom mère français
|
NOMM_AR
|
VARCHAR2
|
30
|
Non
|
Nom mère arabe
|
NOMM_FR
|
VARCHAR2
|
30
|
Non
|
Nom mère français
|
SEXE
|
VARCHAR2
|
1
|
Oui
|
sexe
|
Nom
|
Type
|
Table référencée
|
ETUDIANT BAC FK
|
FOREIGN
|
BAC
|
ETUDIANT COMM ADR FK
|
FOREIGN
|
COMMUNE
|
ETUDIANT COMM NAISS FK
|
FOREIGN
|
COMMUNE
|
ETUDIANT NATIONALITE FK
|
FOREIGN
|
NATIONALITE
|
ETUDIANT PK
|
PRIMARY
|
|
ETUDIANT SEXE CK
|
CHECK
|
|
FICHE ETUDE :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
ANNEE_UNIV
|
VARCHAR2
|
4
|
Non
|
Année universitaire
|
IDENT
|
VARCHAR2
|
20
|
Non
|
L'identificateur d'etudiant
|
CODE_SPECIAT
|
VARCHAR2
|
9
|
Oui
|
Code de spécialité
|
CODE_OPTION
|
VARCHAR2
|
9
|
Oui
|
Code d'option
|
NIVEAU
|
NUMBER
|
1
|
Nom
|
Niveau d'etude
|
MATRICULE
|
VARCHAR2
|
20
|
Non
|
matricule
|
Contraintes :
Nom
|
Type
|
Table référencée
|
FICHE ANNEE UNIV FK
|
FOREIGN
|
ANNEE_UNIV
|
FICHE ETUDIANT FK
|
FOREIGN
|
ETUDIANT
|
FICHE OPTIONS FK
|
FOREIGN
|
OPTIONS
|
FICHE PK
|
PRIMARY
|
|
FICHE SPECIAT FK
|
FOREIGN
|
SPECIALITE
|
TYPE CONGE :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
TYPE_CONGE
|
VARCHAR2
|
2
|
Non
|
Code de congé
|
TITLE _CONGE_FR
|
VARCHAR2
|
40
|
Non
|
Intitulé congé en français
|
TITLE _CONGE_AR
|
VARCHAR2
|
40
|
Non
|
Intitulé congé en arabe
|
Contraintes :
Nom
|
Type
|
Table référencée
|
TYPE AR CONGE TITLE UK
|
UNIQUE
|
|
TYPE CONGE PK
|
PRIMARY
|
|
TYPE FR CONGE TITLE UK
|
UNIQUE
|
|
|
DOSSIER BLOQUE : Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
désignation
|
ANNEE_UNIV
|
VARCHAR2
|
4
|
Non
|
Année universitaire
|
IDENT
|
VARCHAR2
|
20
|
Non
|
L'identificateur d'etudiant
|
TYPE_CONGE
|
VARCHAR2
|
2
|
Oui
|
Type de congé
|
Contraintes :
Nom
|
Type
|
Table référencée
|
DOSSIER BLOQUE CONGE FK
|
FOREIGN
|
TYPE_CONGE
|
DOSSIER BLOQUE IDENT FK
|
FOREIGN
|
FICHE_ETUDE
|
DOSSIER BLOQUE PK
|
PRIMARY
|
|
DOSSIER TRANSFERER :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
desiniation
|
ANNEE_UNIV
|
VARCHAR2
|
4
|
Non
|
Année universitaire
|
IDENT
|
VARCHAR2
|
20
|
Non
|
L'identificateur d'etudiant
|
SPECIAT_DEST
|
VARCHAR2
|
9
|
Oui
|
Spécialité destination
|
OPTIONS_DEST
|
VARCHAR2
|
10
|
Oui
|
Option destination
|
Contraintes :
Nom
|
Type
|
Table référencée
|
DOSSIER TRANSFERER ID FK
|
FOREIGN
|
FICHE_ETUDE
|
DOSSIER TRF OPTIONS FK
|
FOREIGN
|
OPTIONS
|
DOSSIER TRFR PK
|
PRIMARY
|
|
DOSSIER TRF SPECIAT FK
|
FOREIGN
|
SPECIALITE
|
DOSSIER RETIRER :
Colonnes :
Nom
|
Type de données
|
Taille
|
Null ?
|
designation
|
ANNEE_UNIV
|
VARCHAR2
|
4
|
Non
|
Année universitaire
|
IDENT
|
VARCHAR2
|
20
|
Non
|
L'identificateur d'etudiant
|
Contraintes :
Nom
|
Type
|
Table référencée
|
DOSSIER RETIRER ID FK
|
FOREIGN
|
FICHE_ETUDE
|
DOSSIER RETIRER PK
|
PRIMARY
|
|
Ces tables sont nécessaires pour stocké les
informations agissantes pour nos interfaces, associées avec l'ensemble
des contraintes qui maintiennent l'intégrité de la base de
données.
Le choix des tailles des champs est arbitraire. Les tailles
réel reste à la sélection de l'université.
le code de l'implémentation sera vu dans le chapitre
suivant.
|