REMARQUES SUR LA
CONSULTATION DE CE DOCUMENT
PAR LES ETUDIANTS DES ANNEES SUIVANTES:
SUJET DE L'EXAMEN PARTIEL DU COURS SGDB
MSG 2 |
Amphi JOSSERAND |
25 janv. 2001 |
horaire : 14h30 - 17h30 |
Mr Collin |
Tous les documents sont autorisés
Première partie notée sur 10 points .
Les boutiques Carchan (*) commercialisent des aliments pour chiens et chats. Il existe une trentaine de points de vente dans la région Rhones-Alpes. Deux fois par semaine, chaque boutique passe commande par télécopie à une centrale d'achat qui assure l'approvisionnement des points de ventes. Cette centrale d'achat doit enregistrer les commandes des boutiques, assembler les lots de marchandises (sur palette), charger les camions et livrer. Un même camion pourra livrer plusieurs boutiques.
(*) Cette chaîne est imaginaire mais le système existe bien
La centrale d'achat veut s'équiper d'un système informatique qui devra permettre :
Travail à faire
Points de vente : Il y a une trentaine de points de vente. Donc il faut une table des points de vente.
PointsDeVente |
||
champ |
type |
commentaire |
#CptPointDeVente |
NuméroAuto |
Clé primaire |
LibPointDeVente |
Texte (50 car) |
Adresse nécessaire à la livraison |
Adr1 |
Texte (50 car) |
|
Adr2 |
Texte (50 car) |
|
CP |
Texte (5 car) |
|
Ville |
Texte (50 car) |
|
Téléphone |
Texte (10 car) |
|
Télécopie |
Texte (10 car) |
|
Articles : Les articles commandés par les points de vente sont choisis dans le catalogue de la centrale d'achat. Donc il faut une table des articles.
Articles |
||
champ |
type |
commentaire |
#CptArticle |
NuméroAuto |
Clé primaire |
LibArticle |
Texte (50 car) |
|
PU_FRF |
Monétaire |
Prix unitaire de l'article en francs |
PU_EUR |
Monétaire |
Prix unitaire de l'article en euros |
Commandes : Chaque point de vente doit pouvoir passer plusieurs commandes. Nous avons donc une table des commandes séparée de la table des points de vente (relation de un vers plusieurs). Par ailleurs cette table est dépendante de la table des points de vente. En effet, il ne doit pas exister de commande sans le numéro de la boutique qui a passé cette commande (intégrité référentielle).
Commandes |
||
champ |
type |
commentaire |
#CptCommande |
NuméroAuto |
Clé primaire |
CptPointDeVente# |
Entier long |
Clé externe table point de vente |
DateCommande |
Date/Heure |
|
(attention, il manque encore un champ à cette table - voir plus loin)
Contenu des commandes : Chaque commande contient un certain nombre de lignes d'articles commandés. Nous avons donc une table des lignes de commande séparée de la table des commandes (relation de un vers plusieurs). Par ailleurs cette table est dépendante de la table des commandes. En effet, il ne doit pas exister de ligne de commande sans le numéro de la commande (intégrité référentielle).
Par ailleurs, les articles sont choisis dans la table des articles. Nous avons alors le même type de relation avec cette table.
LignesDeCommandes |
||
champ |
type |
commentaire |
#CptLigCommande |
NuméroAuto |
Clé primaire |
CptCommande# |
Entier long |
Clé externe table Commandes |
CptArticle# |
Entier long |
Clé externe table Articles |
Quantité |
Entier long |
|
PU_EUR |
Monétaire |
recopiés de la table article (*) |
PU_EUR |
Monétaire |
(*) Le prix constaté au moment de la commande ne doit plus varier. C'est pour cela qu'il est enregistré dans la table des lignes de commande. Une variation ultérieure des prix dans la tables des articles n'affectera pas les prix enregistrés des commandes.
Ce système de tables permet d'enregistrer les commandes passées par les boutiques.
Tournées : Pour organiser les livraisons, il faut ajouter une table des tournées des camions. Chaque camion charge les articles destinés à un ou plusieurs points de vente.
Afin de simplifier la structure de la base, on supposera qu'aucun article commandé n'est en rupture de stock (sinon il faudrait créer une table de quantités réellement livrées par ligne de produit commandé pour calculer les reliquats).
Ceci permet de dire que chaque commande sera affectée à une tournée existante, et qu'une tournée "contiendra" plusieurs commandes (relation de un vers plusieurs).
Tournées |
||
champ |
type |
commentaire |
#CptTournée |
NuméroAuto |
Clé primaire |
DateTournée |
Date/Heure |
|
Modification de la table des commandes : Pour affecter une commande à une tournée, la table des commandes doit être modifiée pour recevoir le numéro de tournée :
Commandes |
||
champ |
type |
commentaire |
#CptCommande |
NuméroAuto |
Clé primaire |
CptPointDeVente# |
Entier long |
Clé externe table point de vente |
DateCommande |
Date/Heure |
|
CptTournée# |
Entier long |
Clé externe table Tournées |
Il faut des écrans de saisie pour les ajouts, modifications et suppressions de :
La solution d'indiquer la tournée directement sur la commande est une petite solution de facilité pour l'examen. Ce n'est pas la solution la plus ergonomique.
Il sera, naturellement intéressant de faire un formulaire de menu général permettant de se déplacer facilement dans l'application.
Le système actuel de transmission par télécopie présente certains problèmes :
Installer cette application sur internet permettra de résoudre ces deux problèmes en autorisant la consultation du catalogue et la saisie directe des commandes par les boutiques. En outre, il est alors possible de proposer des services supplémentaires aux boutiques :
Seconde partie notée sur 10 points (chaque question valant 2 points)
RECOMMANDATIONS :
C'est une requête d'ajout, de modification, de suppression d'enregistrement ou de création de table. Par exemple une requête qui modifie globalement les prix d'une table d'articles est une requête action.
Avec un formulaire. Cela permet à l'utilisateur de se déplacer facilement dans l'application. Par exemple dans l'application de la société Carchan, l'utilisateur pourra passer facilement de la saisie des tournées à l'affectation des commandes aux tournées.
La base de données doit être installée dans un répertoire partagé sur le serveur. Les applications sont installées sur les postes de travail. Ce système permet de ne pas encombrer le trafic du réseau local avec le chargement d'objets (formulaires, états, requêtes). Seules les données transitent sur le réseau.
Access permet de développer très rapidement une base de moyenne importance (1,2 Go théorique). La partie "application cliente" d'access permet de développer des applications couvrant les besoins des organisations.
Les bases "Oracle" ou "SQL serveur" permettent de stocker des volumes beaucoup plus importants et supporter un plus grand nombre d'utilisateurs. Ces bases ont un langage de programmation "coté serveur" (trigger et procédure stockée) qui permet de maintenir facilement des contrôles de cohérence intelligent, des calculs (niveau de stock, solde de compte, etc ...) directement sur le serveur sans intervention de poste client. En revanche, ces bases n'ont pas de possibilité de programmation "coté client" comme Access. Il faut donc obligatoirement ajouter un développement qui sera installé sur les postes de travail.