• Aucun résultat trouvé

Modèle relationnel – Objet

N/A
N/A
Protected

Academic year: 2022

Partager "Modèle relationnel – Objet"

Copied!
4
0
0

Texte intégral

(1)

G. Salzano / Ph Chochois

Modèle relationnel – Objet

Dans ce TD, nous allons nous appuyer sur le cas fonctionnel explicité grâce au diagramme ci-dessous :

* 0..1

* 1..1

0..1

0..*

Projet -

- -

nom dateDebut dateFin

: String : date : date

Mission -

- -

code intitule nbJours

: String : String : int

Intervenant -

- - - -

mat nom prenom tarifApplique qualification

: int : String : String : float : String Qualification -

- qualif tarif

: String : float

Un projet est constitué de missions. Une mission est affectée à un intervenant qui possède une qualification.

Le tarif appliqué pour un intervenant peut être différent du tarif standard lié à une qualification.

Pour les besoins de l’exercice, la qualification a été placée également au niveau de l’intervenant.

Important : Sauvegardez vos scripts dans des fichiers texte ! Types et table en mode ligne.

Dans cet exercice , nous allons gérer des « intervenants » sur un projet. Chaque intervenant possède une qualification.

Voici la liste des qualifications :

Qualification Tarif journalier en euros (HT)

Développeur 500

Analyste 700

Chef de projet 900

Consultant 1000

Directeur commercial 1300

a) création d'un type, qualif_type, pour décrire les qualifications (2 attributs). Noter que qualif_type est de type tuple, et que chacune de ses composantes est de type atomique.

b) création d'une table des qualifications (Create table <nomtable> of <typename> ) et insertion des valeurs (cf tableau ci-dessus) de 2 manières différentes.

c) Consultez la description du type, la description de la table et visualisez le contenu de la table.

d) Affichez les différentes qualifications triées par ordre alphabétique puis calculez le tarif moyen d’une journée d’un intervenant.

e) Augmentez les tarifs de 2,5% puis vérifiez que la table a bien été mise à jour.

Table en mode colonne.

a) Supprimer votre table et créez la de nouveau mais en mode ligne puis insérez les valeurs

b) Consultez la nouvelle description de la table et visualisez le contenu de la table puis affichez la qualification la moins rémunératrice et la plus rémunératrice..

c) Augmentez les tarifs des analystes de 10%.

(2)

Table avec une colonne non atomique.

Nous allons maintennat créer une table des intervenants. Un intervenant est caractérisé par un numéro de matricule, un nom, un prénom et une qualification. Le tarif horaire d’un intervenant peut être différent du tarif horaire standard appliquée à sa qualification.

Mat Nom Prenom Qualification Tarif journalier

en euros (HT)

2516 Dupont Pierre Développeur 550

7655 Henri Jacques Consultant 990.90

7687 Triolet Esla Consultant 1029.00

a) Créer la table des intervenant en utilisant le type « qualif_type » créé précédemment et en définissant le matricule comme clé primaire.

b) Insérer les valeurs dans la table des intervenants.

c) Décrire la table « intervenant » et afficher son contenu.Insérer les valeurs dans la table des intervenants.

d) Afficherle nom et le tarif de tous les intervenants.

e) Afficher tous les consultants (matricule, nom) puis afficher tous les consultants dont le tarif est supérieur à celui d’un consultant « standard » en affichant l’écart de tarif.

f) Que se passe t-il si la table « qualif » est supprimée ? Que deviennent les qualifications des 3 intervenants que nous avons créés ?

(3)

Les références.

Nous allons maintenant créer une table des missions. La mission est confiée à un intervenant. Nous n’allons pas répéter toutes les caractéristiques d’un intervenant au niveau de la mission.

Depuis Oracle 8, on a deux notions :

- Les références logiques, implantées à l'aide des attributs de type clé étrangère, foreign key, de la même façon, quel qu'il soit le type de la table (relationnel pur ou relationnel-objet).

- Les pointeurs, mis en œuvre par des attributs de type ref

Une mission sera caractérisée par un code (clé primaire), un intitulé, un nombre de jours prévu et l’intervenant sur la mission..

Code Intitulé Nb jours Ref sur

Intervenant Varalpain033 Etude technique du

passage de PEL en CEL

54 Intervenant 7655

Armoni002 Prise de contact avec le Directeur

2 Intervenant 1000

a) Créer un type « Intervenant_type » puis un type « mission_type » et créer ensuite une table des missions en mode ligne. Vous devez avoir une référence sur les intervenants.

b) Créer la table des missions en créant une référence sur les intervenants concernés.

c) Ajouter l’intervenant 1000 qui se nomme Philippe Michelin, qui est Directeur avec un tarif associé de 3000 euros la journée.

d) Essayez d’afficher la référence de l’objet « Intervenant 1000 ». Expliquez le message obtenu ! e) Sauvegardez vos intervenants dans une table temporaire « temp_intervenant » puis supprimer la table

« intervenant »

f) Créez de nouveau la table « intervenant » mais, cette fois-ci en mode ligne puis réalimentez là grâce à votre sauvegarde.

g) Essayez d’afficher la référence de l’objet « Intervenant 1000 ».

h) Insérez la mission en ayant une référence sur l’intervenant 1000.

i) Affichez la description puis le contenu de la table « mission ».

j) Affichez le code et le coût de la mission (coût=nb de jours * tarif).

k) Augmentez le nombre de jours de la mission.

l) Réduisez le tarif de Michelin à 2800 euros et affichez de nouveau le code et le coût de la mission.

m) Supprimez l’intervenant Michelin puis visualisez la mission et son coût.

(4)

Tables imbriquées.

Nous allons maintenant créer une table des projets. Un projet peut être constitué de plusieurs missions.

Dans l’exercice, nous allons créé un projet qui aura les caractéristiques suivantes :

nom Date début Date fin

CA1 12/12/2009 13/07/2011

Ce projet sera constitué de 2 missions :

Code Intitulé Nb jours Ref sur

Intervenant

SFG Spécifications

générales

30 Intervenant 7655

SFD Spécifications

détaillées

60 Intervenant 2516

Nous allons utiliser les tables imbriquées pour que le projet puisse « pointer » sur ses différentes missions.

a) Créer un type « missions_type » qui sera une table de missions (type « mission_type) Le type « missions_type » est au pluriel car il permet de mémoriser plusieurs missions.

Le type « mission_type » est au singulier car il permet de mémoriser une mission.

b) Créer la table “projet” qui aura pour clé primaire le nom du projet et un attribute “lesMissions” qui sera du type “missions_type”.

« lesMissions » sera le nom du champ dans la table « projet »

« missionsTable » sera le nom de la table imbriquée.

c) En une seule requête, insérer le projet avec ses 2 missions

d) Affichez une description de la table “projet » puis les caractéristiques du projet

e) Affichez les différentes missions du projet. Il faut pour cela accéder à la table imbriquée.

f) Affichez les différentes missions du projet avec les noms d’intervenant et leur qualification g) Affichez le projet et ses différentes missionst avec les noms d’intervenant et leur qualification.

Les colonnes à afficher sont : a. Nom du projet b. Date de fin c. Code de la mission

d. Nombre de jours de la mission e. Nom de l’intervenant

f. Qualification de l’intervenant

Références

Documents relatifs

Par exemple, création d’une table ‘pays’, avec 2 colonnes dont une obligatoire, contrainte de clef primaire (colonne identifiant chaque ligne de manière unique) pour

Quel qu'en soit le domaine, la création d’entre- prises est un formidable moyen d’épanouisse- ment personnel et ce ne sont pas les créateurs d’Anagalis (voir page 4) qui ont fait

 Pour afficher le plat du jour dans vos menus verticaux, rendez-vous dans Configuration &gt; Menus, cliquez sur Ajouter un widget &gt; Restaurant puis activez le widget &#34;Plat

[r]

Une fois la variable y isolée, c’est plus facile de faire une table des valeurs.. De plus, le symbole de l’inégalité nous dira rapidement où se situe la

Après avoir saisi votre code d’accès et votre mot de passe, vous êtes dirigé sur la page d’accueil de l’extranet. Cette page reprend vos informations personnelles et vous permet

A ce moment-là une liste de choix est accessible pour choisir l’un des domaines prédéfinis (Texte, Mémo, Numérique, Date/heure, Monétaire, NuméroAuto,

Personnalisez votre boutique en téléchargeant votre logo et une image de fond Choisissez la durée de votre boutique : Laissez le champ vide si vous souhaitez que la boutique