Junior Entreprise Informatique Groupe 5

Transcription

Junior Entreprise Informatique Groupe 5
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
Junior Entreprise Informatique
Groupe 5
1. Table des matières
1. Table des matières______________________________________________________________2
2. Introduction ___________________________________________________________________3
3. Le Fonctionnement de la JEI et nos besoins_________________________________________4
A. Le Membre : __________________________________________________________________4
B. Le Client : ____________________________________________________________________4
C. Le Mandat :___________________________________________________________________4
4. Le modèle de départ_____________________________________________________________5
5. Le modèle simplifié _____________________________________________________________6
6. Le modèle " objet " _____________________________________________________________7
A. Prédicats _____________________________________________________________________7
B. Table des constituants ___________________________________________________________8
C. Relations _____________________________________________________________________8
D. Algèbre relationnel _____________________________________________________________9
1. Questions __________________________________________________________________________________9
2. Equations algébriques: ________________________________________________________________________9
E. SQL: ________________________________________________________________________9
1. Questions: __________________________________________________________________________________9
2. Requètes ___________________________________________________________________________________9
F. Listing des objets ______________________________________________________________10
G. Constituant des Classes _________________________________________________________11
H. Boites de dialogue _____________________________________________________________12
7. Conclusion __________________________________________________________________15
2
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
2. Introduction
Pour ce travail de création d'un modèle de base de données, nous avions décidé de prendre un sujet qui
nous tenait à cœur, soit la base de données de notre propre entreprise : la Junior Entreprise
Informatique (JEI).
Le but était d'avoir un système qui nous permette de gérer nos membres, nos mandats et évidement nos
clients de la manière la plus facile possible.
Nous avions donné trois buts principaux à notre Base de Données: il fallait qu'elle soit
Souple : que nous puissions facilement changer nos méthodes de fonctionnement sans
affecter la base de données.
Efficace : que nous ne perdions pas de temps à remplir des tonnes d'information inutiles ou inutilisables
Portable : que nous puissions facilement proposer notre base de données à d'autres Junior
Entreprises en Suisse.
Nous allons commencer par présenter le fonctionnement de la Junior Entreprise Informatique, ainsi
que notre démarche pour arriver à une base de données utilisable tous les jours.
3
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
3. Le Fonctionnement de la JEI et nos besoins
La JEI fonctionne de la manière suivante :
Il existe une structure avec des membres, des membres honoraires ou (cas rares) des employés. Les
membres peuvent occuper un certain nombre de postes qui forme la direction. Ces membres ou
employés effectuent des mandats pour des clients (privés ou entreprises).
A. Le Membre :
Nous avions pensé faire un résumé exhaustif des connaissances des membres, mais comme elles
changent tous les jours,… nous avons abandonné cette idée.
Nous avions aussi besoin d'avoir un certain nombre d'informations de base :
• nom, adresse, n° de téléphone, adresse E-mail etc.
De son titre s'il en a un :
• Président, etc.
Nous avions évidemment besoin de savoir s'il travaille sur un mandat et si oui, sur lequel.
Les rares employés qui peuvent être engagés par la JEI sont au niveau de la base de données assimilés
à des membres, étant donné qu’ils recèlent le même type d’informations.
B. Le Client :
Nous cherchions à avoir un maximum d'informations utiles sur chaque client.
Les informations de base :
• Nom, adresse, téléphone, fax, etc.
• Quels mandats on été effectués chez ce client et par qui.
• Comment ce client nous a-t’il contacté (si nous avons été recomandé par quelqu’un)
C. Le Mandat :
Nous avons plusieurs type de mandats différents :
• Les dépannages : il s'agit généralement d'un déplacement chez un privé pour lui réparer ou
installer quelque chose sur son ordinateur. Dans la plus part des cas une à deux visite suffisent. Le
client paye comptant à la fin de chaque visite (sauf autre arrangement). Il sagit donc d'un mandat
très court dont nous aimerions avoir une trace avec les deux informations suivante :
• Matériel du client
• Le problème
en plus évidement de la date du dépannage, et du nom de la personne qui a effectué ce dépannage.
• Les conseils : Le principe de fonctionnement est à peu près le même que pour un dépannage mais
en beaucoup plus souple. Il peut s'agir d'une série de cours comme d'un conseil rapide.
• Les pages Web : Il s'agit là généralement d'un gros mandat traité par plusieurs personnes et qui
consiste en la création d’un site internet. Ces mandats sont généralement destinés aux entreprises.
4
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
4. Le modèle de départ
La première idée a été de minimiser le nombre d’informations redondantes en essayant de grouper les
informations communes aux différentes tables en une seule table (ex: table “Commune”)
De plus, nous avons voulu créer une table JEI, comportant les informations de base de l’entreprise,
afin d’améliorer la portabilité de la base de données.
5
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
5. Le modèle simplifié
Dans une deuxième étape, nous avons chercher à simplifier aux maximum le nombre de tables et à
éliminer non pas les redondances mais les champs inutiles:
• Etant donné que la table JEI comporte exactement le même type d’information qu’un tuple de la
table “clients/partenaires” nous l’avons intégré à cette dernière.
Nous nous sommes rendu compte que la table commune posait quelques problèmes car un code postal
peut avoir plusieurs communes qui y sont ratachées. Nous avons donc trouvé plus judicieux d’intégrer
cette information dans les tables “membres” et “clients/partenaires”.
• Nous avons également décider de garder un seul champ téléphone (par opposition à deux champ
téléphone 1 et téléphone 2) car nous n’allions jamais composer de numéro au travers de notre base
de données.
• La table “direction” avait pour but de nous permettre de modifier simplement les membres de la
direction. Finalement la liste de la direction pouvant être donnée à l’aide d’une simple requète SQL,
il était plus simple de modifier directement le champ TypeMembre. De plus, ces modifications faites
par le biais d’une table suplémentaire doublerai le nombre de champ à modifier.
6
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
6. Le modèle " objet "
Après le travail effectué selon l'approche relationnelle sur notre modèle de base données, nous
nous sommes rendus compte qu'il y avait une autre méthode plus appropriée aux données que nous
voulions traiter; il s'agit de l'approche orientée objets.
En effet, les données enregistrées dans les tables membres et clients de la première méthode
étaient très proches. La programmation orientée objet s'applique à la perfection à ce genre de base de
données. En effet il suffit de créer un objet "Personne" contenant les informations redondantes dans
les deux tables (par exemple les champs nom, prénom etc...), puis crée deux objets enfants appelés
"Membre" et "Client" qui ne contiennent que les informations propres à chaque groupe.
A. Prédicats
||Personnes(no, fp, p, n, adr1, adr2, cp, c, t, f, e, notes, u)||:"La personne numéro no, ayant comme
formule de politesse fp, portant le prénom p et le nom n, habite à l'adresse1 adr1, à l'adresse2 adr2, de
code postal cp, de commune c, ayant le numéro e téléphone t, le numéro de fax f ansi que l'adresse
email e, les notes le concernant notes. Sont adresse URL est u"
||Contact(no, pID, s, ti, typ, p, d)||:" Le contact numéro no, dont ses caractéristiques sont référenciées
dans l'enregistrement numéro pID,travail dans la société s, porte le titre ti. Le client est de type typ, sa
provenance est p, la date du dernier contact est d."
||Mandats(no, cID, c, t, n, dd, df, e, notes)||:" Le mandat numéro no, dont le contact porte le numéro
cID, à le code c, dont le type est t. Le membre responsable à le numéro n. La date du début du mandat
est dd et la date de fin du mandat est df. L'état d'avancement du mandat es te, les notes concernant le
mandat sont notes."
||Membres(no, pID, t)||:" Le membre portant le numéro no, dont ses caractéristiques sont référenciées
dans l'enregistrement numéro pID est un membre de type t.”
7
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
B. Table des constituants
Adresse1
Adresse2
CodeMandat
ContactID
CodePostal
Commune
Compétence
PersonneID
DateDébut
DateFin
DernierContact
Email
EtatMandat
Fax
FormulePolitesse
MandatID
MembreID
Nom
Notes
Prénom
Provenance
Société
Téléphone
TitrePersonne
TypeClient
TypeMandat
TypeMembre
URL
Texte
Texte
Texte
Numérique entier
Numérique entier
Texte
Texte
Numérique entier
Date
Date
Date
Texte
Mot("En cours", "Fini", "Abandonné")
Texte
Mot("Monsieur", "Madame", "Mademoiselle")
Numérique entier
Numérique entier
Texte
Texte
Texte
Mot("SEINF", "Web", "Affiche", "Connaissance", "JEG", Inconnu")
Texte
Texte
Texte
Mot("Partenaire", "Université", "Entreprise", "Privé")
Mot("Dépannage", "Conseil", "Web", "Formation")
Mot("Président", "Vice-Président", "Responsable Administration", "Responsable
Mandats",
"Responsable
Relations
Extérieures","Responsable
Marketing",”employé”,”membre”,”membre honoraire”)
Texte
C. Relations
Personne(PersonneID, FormulePolitesse, Prénom, Nom, Adresse1, Adresse2, CodePostal, Commune,
Téléphone, Fax, Email, Notes, URL)
Membres(MemberID, PersonneID, Compétence, TypeMembre)
Contacts(ContactID, , TitrePersonne, Société, TypeContact, Provenance, DernierContact)
Mandats(MandatID, ContactID, CodeMandat, TypeMandat, MembreID, DateDébut, DateFin,
EtatMandat, Notes)
8
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
D. Algèbre relationnel
1. Questions
1) Rechercher le nom et prénom de tous les contacts privés.
2) Rechercher le nom et adresse des personnes que l'on a dépanné durant l'année 1996.
3) Rechercher le nom et prénom des personnes qui ont un n° de fax ou Email.
4) Rechercher le nom des sociétés pour qui ont a créé un site Web.
5) Rechercher le nom et le n° de téléphone des personnes habitant en ville de Genève.
6) Rechercher le nom et l'Email de tous les contacts qui proviennent des SEINF et qui ont une adresse
Email.
2. Equations algébriques:
1)(*TypeClient="Privé")(Contacts*Personnes)[Nom, Prénom]
2)((*DateDébut>=1.1.96)^(*DateFin<=31.1296)^(TypeMandat="Dépannage")((Mandats*
Contacts)*Personnes)[ Nom, Adresse1]
3)((*Email<>"")v(*Fax<>""))(Personnes)[Nom, Prénom, Adresse1]
4)((*EtatMandat="Fini")^(*TypeMandat="Web"))((Mandat*Contacts)*personnes)
[Société, Nom, Prénom]
5)(*Commune="Genève")(Membres*Personnes)[Nom, Téléphone]
6)((*Provenance="SEINF")^(*Email<>""))(Contacts*Personnes)[Nom, Email]
E. SQL:
1. Questions:
1) Combien de personnes nous ont été envoyées par les Services Informatiques?
2) Quels membres habitent dans la même commune que le client NomduClient?
3) Qui a une page web sur le serveur de l’université?
4) Quels membres ont travaillé pour le client NomduClient?
5) Combien de mandat ont été effectués pour la société NomdelaSociété?
6) Quels mandats ont été effectués en 1996 pour le client NomduClient?
2. Requètes
1) SELECT
Count(Personne.nom)
FROM
Personnes,
Contacts
WHERE
Contacts.Provenance=’SEINF’;
2) SELECT P1.Nom, P1.Nom FROM Personnes P1, Personnes
P2
WHERE
P1.commune=P2.commune AND P2.Nom=’NomduClient’;
3) SELECT Nom. Prénom FROM Personnes WHERE URL like ‘www.unige.ch%’;
4) SELECT P1.Nom, P1.Prénom From Personnes P1, Personnes P2, Mandat, Membre, Contact
WHERE P2.Nom=’NomDuClient’ AND P2.PersonneID=Contacts.PersonneID AND
Mandat.ContactsID=Contacts.ContactID AND Mandats.MembreID=Membres.MembreID AND
P1.PersonneID=Personnes.PersonnesID;
5) SELECT
Count(Mandats.MandatID)
FROM
Mandat,
Contacts
WHERE
Contacts.ContactsID=Mandats.ContactID AND Contacts.Société=’NomdelaSociété’;
6) SELECT
Code.Mandat
FROM
Mandat,
Personnes,
Contacts
WHERE
Personne.Nom=’NomduClient’ AND Personnes.PersonneID=Contacts.PersonneID AND
Mandats.ContactID=Contacts.ContactID AND Mandats.DateDébut>=to_date(‘1-jan-96’) AND
Mandats.DateFin<=to_date(‘31-dec-96’);
9
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
F. Listing des objets
Voici le listing de la déclaration des objets de la base en code Java.
import java.util.Date;
import java.util.String;
class Personne
{
int ID;
Formule FormulePolitesse;
String Nom;
String Prénom;
String Adresse;
int Code_Postal;
String Commune;
String téléphone;
String Fax;
String Email;
String URL;
String Notes;
}
class Membre extends Personne
{
MembreType Type_Membre;
String Compétence;
}
class Client extends Personne
{
String Société;
String Titre_Personne;
String Provenance;
}
class Mandat
{
int ID;
int ClientID;
int MembreID;
Mandat_Type Type_Mandat;
Date Date_Début;
Date Date_Fin;
EtatMandat Etat;
String Notes;
}
10
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
G. Constituant des Classes
11
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
H. Boites de dialogue
Les quatre boîtes de dialogue présentées seraient les fenêtre de base de l'application. Elles reflètent en
fait les opérations les plus utilisées de cette base : ajouter, modifier ou rechercher des informations.
Masque de saisie des requètes les plus courantes
La première boîte est assez typique, la recherche s'exécute sur le nom, le prénom ou le numéro d'une
instance. Les boutons radio servent à définir quelles personnes sont visées par la recherche, les
mandats étant recherché à l'aide d'une autre boîte de dialogue (non illustrée).
Masque de saisie des mandats
12
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
Masque de saisie des membres
Masque de saisie des clients
La boîte de dialogue "Membre" et "Client" montrent bien l'aspect objet de la base, elles sont très
semblable, le corps est le même: il s'agit des champs de leur super classe "Personne"; il y a juste les
13
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
champs spécifique aux deux tables qui changent. Les champs sont en général de simples champs texte,
sauf certains dont les valeurs sont prédéfinies (les champs éditables sont transformés en combo box).
On notera enfin l'ascenseur en bas qui permet de faire défiler les différentes instances de chaque table.
Une petite remarque par rapport au type "mot" utilisé sous oracle, ce type permet de faire une
recherche par valeur, oracle n'implémentant pas la recherche sur des chaîne de caractère. L'avantage de
coder cette base en Java, ou bien de l'implémenter sous Microsoft Access, est que l'on peut garder des
champs texte, le codage s'occupant de faire des recherches sur ces champs.
14
Junior Entreprise Inforrmatique
Modèle de Base de données
10 février 1997
Gregori Christopphe
Hamdi Amer
Tran-Ngoc Minh
Weber Nicolas
7. Conclusion
Notre démarche montre bien un des problèmes liés à la modélisation de la réalité: la dualité entre
spécialisation de la base de données (en créant de nombreusent tables spécifiques) et une approche
globale de cette modélisation (grouper les champs en tables générales).
A un moment donné, nous avons du choisir une ligne médiane entre ces deux approches. Pour notre
modèle, ce n'était pas la meilleure solution car la plus part des champs sont de même type.
L'approche que nous proposons à le mérite d'être simple et de bénéficier de tous les avantages liés au
language Java (portabilité, multi plat-forme, utilisation à travers internet). Cependant le grand défaut est
que la base de données est figée; toute modification de table requiert une modification du code source.
Notre but final est de pouvoir consulter et mettre à jour la base de données à travers une interface web.
De nombreux détails restent non réglés, comme par example le lien avec la base de données comptable
(faite par l'autre groupe) ou "l'internationalisation" de la base de donnée, notament pour le champ
FormulePolitesse qui n'est pas assez souple (pas de possibilité de s'adresser à un contact dans une
autre langue)
Nous espèrons pouvoir poursuivre notre projet le prochain semestre.
15