Objectif du TD/TP :
▪ Concevoir un schéma Entité/Association pour la gestion des employés d’une société et générer le
modèle relationnel correspondant,
▪ Créer un schéma utilisateur et les objets de ce schéma dans la base de données Oracle à partir du
schéma relationnel,
▪ Importer les données dans les tables de cette base de données à partir d’un fichier Excel.
▪ Interroger la base de données avec requêtes exprimées avec le langage SQL.
Enoncé
On souhaite disposer d’une base de données permettant la gestion des données relatives aux salaires des
employés d’une entreprise et les indemnités scolaires attribuées à leurs enfants. Chaque employé est affecté à
service connu par son nom et sa localité et est identifié par un numéro service. Un employé est connu par un numéro
unique, un nom, un sexe, une fonction, une date d’embauche, un salaire et une commission pour les employés
vendeur. Les valeurs possibles pour l’attribut fonction sont : agent, Vendeur, directeur, analyste et président. On
souhaite savoir pour chaque employé son supérieur hiérarchique. Pour chaque employé, on souhaite savoir
l’ensemble de ses enfants. Un enfant sera défini par un numéro unique, un prénom, un âge et un sexe. Un enfant
dont l’âge dépasse 24 ne peut percevoir d’indemnités scolaires. Une indemnité est caractérisée par un code
indemnité unique, un niveau et le montant de l’indemnité. Le niveau peut prendre l’une des valeurs suivantes :
Primaire, Collège, Lycée, Université et Préscolaire. Les codes indemnité sont choisis dans les valeurs A, B, C, D et S
respectivement pour Primaire, Collège, Lycée, Université et Préscolaire.
Travail à faire :
1. Conception de la base de données
1.1. En utilisant la démarche descendante, donner un modèle Entité Association pour ce cas
1.2. Utiliser PowerAMC pour réaliser et vérifier ce modèle
1.3. Transformer ce modèle, en un modèle logique relationnel puis en un mod-le physique pour Oracle.
On devra obtenir un modèle relationnel de la page suivante (généré pour SQL/Server)
Employe (NumE:smallint, Nom:varchar(20),
fonction:varchar(10), Chef:smallint, DateEmb:datetime,
Sal:decimal(7,2), Comm:decimal(7,2), NumS:smallint)
Pour mettre en place une numérotation automatique pour le champ NUJOUEUR de la table JOUEUR, on
peut définir les objets séquence et déclencheur suivants :
CREATE SEQUENCE SeqNuJoueur MINVALUE 1
INCREMENT BY 1 START WITH 1;