Gestion d'une base de données des compétitions
sportives
Une compétition sportive consiste en un ensemble d'épreuves,
certaines par équipe, d'autres individuelles. Dans tous les cas,
chaque individu fait partie d'une équipe (par exemple, les jeux
olympiques). Chaque sportif est logé par les organisateurs de la
compétition.
Le travail demandé est divisé en 2 parties :
-
conception d'une base de données permettant la gestion des compétitions
sportives,
-
écriture d'une application client/serveur en JAVA offrant une interface
graphique pour la manipulation de cette base.
Fonctionnalités de l'application de gestion de la Base de Données
L'application est organisée selon quatre fonctionalités qui
correspondent aux besoins des différents services impliqués
dans la gestion des compétitions. Chaque utilisateur du système
est rattaché à un service, est identifié par un nom
d'utilisateur et possède un mot de passe. Lorsqu'un utiliseur se
connecte à la base de données via l'application il n'a accès
qu'aux fonctionnalités associées à son service.
Quatre fonctionnalités sont proposées par l'application
(libre à vous d'en rajouter) :
Enregistrements, qui permet l'enregistrement
des sportifs et des équipes de chaque délégation
Compétitions Individuelles, qui permet
l'inscription de sportifs à des compétitions individuelles
Compétitions par équipes,
qui permet l'inscription de sportifs à des compétitions par
équipe
Administrateur, qui permet de gérer
les usagers de l'application et de définir les fonctionnalités
auxquelles ils auront accès. Un utilisateur avec les droits administrateur
a accès aux trois autres fonctionnalités : Enregistrements,
Compétitions Individuelles et Compétitions par équipes.
Les opérations proposées pour chacune de ces quatres fonctionnalités
sont décrites de manière succinte dans ce qui suit.
Service Enregistrement
-
Création/modification/suppression d'un enregistrement de un ou de
plusieurs sportifs d'une délégation. Pour chaque sportif,
saisie/modification des informations associées.
-
Répartition manuelle (Création/modification/suppression)
des sportifs dans les logements (cette répartition pourrait être
assistée par l'application, mais ne vous engagez pas sur sur cette
piste qui pourrait être coûteuse !!)
-
Constitution des équipes (Création/modification/suppression).
Service Compétitions Individuelles
Création/suppression de l'inscription d'un sportif à une
épreuve individuelle.
Pour la création d'une inscription, il s'agit d'associer un sportif
à une épreuve.
-
Choix du numéro de sportif (recherche par numéro, par nom,
par délégation). L'application affiche les nom, prénom
et délégation du sportif choisi.
-
Choix du numéro de l'épreuve (recherche par numéro,
par nom). L'application affiche le nom et la discipline de l'épreuve
choisie.
Service Compétitions par Equipe
-
Idem que précédemment, mais pour une équipe
au lieu d'un sportif.
Service Administrateur
-
L'ensemble de toutes les fonctions précédentes.
-
Création/modification/suppression d'un usager de l'application et
association à l'un des services (Enregistrements, Compétitions
Individuelles, Compétitions par équipes, Administrateur)
Travail à réaliser :
L'application sera développée en Java, en utilisant JDBC
et le SGBD Oracle. Ce projet étant commun à deux cours,
il vous est demandé deux rapports distincts.
Sous-projet Bases de Données
La démarche pour concevoir votre schéma de relations doit
être rigoureuse :
-
construire un schéma conceptuel Entité-Association,
-
transformer ce schéma en schéma relationnel contenant
des relations en 3FN,
-
préciser et implanter les contraintes d'intégrité,
-
définir les transactions. Nous rappelons que l'application
doit toujours veiller à maintenir la cohérence de la base
de données.
Le projet se termine par une démonstration de l'application développée
et la remise d'un rapport qui :
-
présente votre modélisation,
-
montre le schéma de base de données créé, en
expliquant comment il a été obtenu à partir du schéma
Entité/Association et en précise les contraintes implantées,
-
indique les transactions mises en oeuvre.
-
indique les index utilisés
Préparer votre démonstration en incluant des jeux de test
significatifs.
Sous-projet Programmation Orientée-Objets
Nous vous demandons de développer une application client/serveur
en trois parties comprenant notamment :
-
un serveur d'application JAVA possédant les fonctionnalités
nécessaires pour gérer le sous-projet bases de données,
-
une connexion entre ce serveur et la base utilisant l'API JDBC,
-
des interfaces clients permettant la connexion au serveur d'application,
et donc à la gestion de la base de données.
-
les connexions entre les clients et le serveur utilisent l'API RMI.
Deux fonctionnalités importantes doivent être implémentées
:
-
l'observabilité distante, afin qu'un client soit averti des modifications
faites par un autre client (seulement si ces modifications le concernent)
-
la notion de transaction si elle est nécessaire pour effectuer certaines
modifications.
Le rapport contiendra obligatoirement les points suivants :
-
structure générale de l'application (la page contenant la
hiérarchie des classes produite par javadoc sera incluse).
-
les fonctionnalités implémentées et celles non implémentées.
-
les interfaces seront fournis
-
pour les modèles "observation distante" et "transaction"
-
choix technique retenu et justifications (nous vous conseillons d'utiliser
au maximun les fonctionnalités d'Oracle (transactions, commit, rollback
et points de reprise)),
-
à propos des packages et des exceptions, vous devez :
-
soit les utiliser dans votre application,
-
soit dire très précisément comment les intégrer
dans votre application. Justifier l'emploi d'un ou de plusieurs packages,
de même pour les exceptions.
Barême indicatif (sur 20 points)
-
rapport ne dépassant pas 10 pages (15 points)
-
forme (français, organisation générale du document)
: 4 points
-
architecture générale de l'application : 2 points
-
observation distante : 3 points
-
transaction : 2 points
-
packages et exceptions : 4 points
-
démonstration de l'application en 10 minutes (5 points)
-
qualité de l'interface (aspects pratiques) : 2 points
-
fonctionnement : 3 points
Contraintes administratives
-
Le travail est a réaliser en binôme ou en trinôme.
-
Les rapports doivent être remis au secrétariat au plus
tard le vendredi 20 décembre 2002 à 14 heures.