• Aucun résultat trouvé

Solutions(Word)

N/A
N/A
Protected

Academic year: 2022

Partager "Solutions(Word)"

Copied!
1
0
0

Texte intégral

(1)

Exercices du chapitre 3

1) Produisez un schéma relationnel pour représenter votre bulletin de notes

2) Traduisez chacun des modèles conceptuels suivants sous forme d'un schéma relationnel. Représentez le schéma en UML utilisant les conventions données dans les notes de cours. Utilisez l'approche par délégation pour la traduction des généralisations.

a)

Programme {UNIQ UE: code Programme}

codeProgramme nomProgramme ty p eProgramme Personne

nom prénom adresse

téléphoneRésidence

Employ é

{UNIQ UE: codeMatricule}

codeMatricule télép honeBureau

Admission dateAdmission

0..1 directeur

0..1 Cadre

UnitéAdministrativ e1 {UNIQ UE: nomUnité}

nomUnité télép hone

0..1 0..1

* Soutien fonction

1

* faitPartie

Inscrip tion dateInscrip tion note

C harge p ourcentage

*

*

* Enseignant

*

*

Etudiant *

{UNIQ UE: codePermanent}

codePermanent

coursO ffert

Group e0..1 nbMaximumInscrits

*

*

*

*

1 numéro s ession

* 1..*

*

1..*

* Cours {UNIQ UE:sigle}

sigle titre nb C rédits

0..1

numéro s ession

1 1..*

1..*

* C hargéDeCours

*

*

estAccrédité

EtudiantC hargéDeCours

* EtudiantGradué sujetRecherche directeur

0..1 Professeur statut

* 0..1

{Complète, chev auchante}

{C omplète, disjointe}

{Le total des

p ourcentages pour un group e doit être 100}

{Le nomb re d'inscrip tion à un Group e doit être <= nbMaximumInscrits}

(2)

b)

Individu nom prénom téléphone

ClientCorporatif nomCorporation

1

0..1

représentant 1

0..1 Client

{UNIQUE: numéro}

numéro dateInscription Réservation

dateArrivée dateDépart dateRéservation

1

*

1

* Hôtel

{UNIQUE: nom}

nom téléphone

Chambre

capacité 1..* *

1..* *

numéro 1 0..1

1 numéro

0..1

nbPersonnes

ClientIndividuel

{Disjointe, complète}

(3)

c)

Ecran taille résolution

Micro-ordinateur typeCPU

tailleRAM capacitéDisque

0..1 1

0..1 1

Local

{UNIQUE: numéroLocal}

numéroLocal type

PriseRéseau typePrise dateInstallation

0..1

0..1

0..1

0..1

numéroPrise 1

0..1 1

numéroPrise 0..1

Equipement {UNIQUE: codeInventaire}

codeInventaire numéroFacture nomFabriquant modèle

Employé nom prénom

* 1

propriétaire

* 1

AppelService {UNIQUE:noRéférence}

date

noRéférence 1..*

* 1..*

* 1

* 1

*

note {Incomplète, disjointe}

Branchement dateBranchement

plaignant

(4)

3) Formulez en algèbre relationnelle les requêtes suivantes sur le schéma relationnel de la pépinière PleinDeFoin. Représentez aussi les requêtes sous forme d'arbre.

Commande

{Clé primaire : noCommande}

noCommande : INTEGER dateCommande : DATE noClient : INTEGER

<<Table>>

Client {Clé primaire : noClient}

noClient : INTEGER nomClient : VARCHAR noTéléphone : VARCHAR

<<Table>>

LigneCommande

{Clé primaire : noCommande, noArticle}

noCommande : INTEGER noArticle : INTEGER quantité : INTEGER

<<Table>>

Article {Clé primaire : noArticle}

noArticle : INTEGER description : VARCHAR prixUnitaire : DECIMAL quantitéEnStock : INTEGER

<<Table>>

Livraison

{Clé primaire : noLivraison}

noLivraison : INTEGER dateLivraison : DATE

<<Table>> DétailLivraison

{Clé primaire : noLivraison, noCommande, noArticle}

noLivraison : INTEGER noCommande : INTEGER noArticle : INTEGER quantitéLivrée : INTEGER

<<Table>>

a) Les Clients dont le noTéléphone = (999)999-9999

b) Le noCommande et la dateCommande des Commandes du Client

#10 dont le noCommande est supérieur à 5.

c) Les noArticle et description des Articles dont le prixUnitaire est entre $10 et $20.

d) Le noClient, noTéléphone du Client et noCommande pour les Commandes faites le 4/06/2000.

e) Les noArticles commandés au moins une fois par le Client #10

après le 01/06/2000.

(5)

f) Les noLivraisons correspondant aux Commandes faites par le Client #10.

g) Les noCommandes des Commandes qui ont été placées à la même date que la Commande #2.

h) Les noLivraison faites à la même date qu'une des Commandes correspondant à la Livraison.

i) La liste des noCommande avec les noLivraisons associées incluant les noCommandes sans livraison.

j) Les noClient, nomClient des Clients qui n'ont pas placé de Commande au mois de mars de l'année 2000.

k) Les noCommandes qui ne contiennent pas l'Article # 10.

l) Les noArticle qui apparaissent dans toutes les Commandes.

m) Les noArticles qui apparaissent dans toutes les Commandes du Client #10.

4) Exprimez les opérations de jointure, intersection et division à l'aide

des opérations de sélection, projection, produit cartésien, union,

différence et renommer.

(6)

Solutions aux exercices du chapitre 3

1) 2) a)

Programme {Clé primaire: codeProgramme}

codeProgramme nomProgramme typeProgramme nbCrédits Personne

{Clé primaire : idPersonne}

idPersonne nom prénom adresse téléphoneRésidence

<<Table>>

Employé {Clé primaire: codeMatricule}

codeMatricule téléphoneBureau idPersonne

<<Table>>

Admission

{Clé primaire : codePermanent, codeProgramme}

codePermanent codeProgramme dateAdmission

<<Table>>

Cadre {Clé primaire : codeMatricule}

codeMatricule

<<Table>>

UnitéAdministrative {Clé primaire : nomUnité}

nomUnité téléphone

<<Table>>

Soutien {Clé primaire : codeMatricule}

codeMatricule fonction nomUnité

<<Table>>

Inscription

{Clé primaire : codePermanent, sigle, numéro, session}

codePermanent sigle numéro session dateInscription note

<<Table>>

Charge

{Clé primaire : codeMatricule, sigle, numéro, session}

codeMatricule sigle numéro session pourcentage

<<Table>>

Enseignant {Clé primaire : codeMatricule}

codeMatricule

<<Table>>

Groupe

{Clé primaire : sigle, numéro, session}

sigle numéro session nbMaximumInscrits

Cours {Clé primaire :sigle}

sigle titre nbCrédits

<<Table>>

ChargéDeCours {Clé primaire : codeMatricule}

codeMatricule

<<Table>>

EtudiantChargéDeCours {Clé primaire : codePermanent}

codePermanent {Unique : codeMatricule}

codeMatricule

<<Table>>

EtudiantGradué {Clé primaire : codePermanent}

codePermanent sujetRecherche codeMatricule[0..1]

<<Table>>

Professeur {Clé primaire : codeMatricule}

codeMatricule statut

<<Table>>

{Le total des pourcentages pour un groupe doit être 100}

{Le nombre d'inscription à un Groupe doit être <= nbMaximumInscrits}

Directeur {Clé primaire : codeMatricule}

codeMatricule {UNIQUE : nomUnité}

nomUnité

<<Table>>

Etudiant {Clé primaire: codePermanent}

codePermanent idPersonne

<<Table>> ProgrammeCours

{Clé primaire : codeProgramme, sigle}

codeProgramme sigle

<<Table>> {Un programme doit contenir au moins un cours}

{Exclusives et une des trois est nécessaire}

Accréditation {Clé primaire : sigle, codeMatricule}

sigle codeMatricule

<<Table>>

Le choix de clé primaire pourrait être inversé...

{Exclusives et une des deux est nécessaire}

N.B. Cette solution privilégie les identifiants naturels (UNIQUE) comme candidats de clés primaires pour les tables et utilise l'approche par délégation pour traduire les relations de généralisation/spécialisation.

(7)

b)

ClientCorporatif {Clé primaire : numéro}

numéro nomCorporation {Unique : idIndividu}

idIndividu Individu {Clé primaire : idIndividu}

idIndividu nom prénom téléphone

<<RelationalTable>>

Client {Clé primaire : numéro}

numéro dateInscription

<<RelationalTable>>

Réservation {Clé primaire : idRéservation}

idRéservation dateArrivée dateDépart dateRéservation numéro

<<RelationalTable>>

Hôtel {Clé primaire : nom}

nom téléphone

<<RelationalTable>>

Chambre {Clé primaire : nom, numéro}

nom numéro capacité

<<RelationalTable>>

ChambreRéservation

{Clé primaire : nom, numéro, idRéservation}

nom numéro idRéservation nbPersonnes

ClientIndividuel {Clé primaire : numéro}

numéro

{Unique : idIndividu}

idIndividu

<<RelationalTable>>

{Au moins un tuple de Chambre

Réservation doit faire référence à un tuple de Réservation}

{Exclusives et une des deux est nécessaire}

(8)

c)

{Au moins un tuple de Explication doit faire référence à un tuple de AppelService }

Ecran

{Clé primaire : codeInventaire}

codeInventaire taille résolution codeInvMicro

<<RelationalTable>>

Micro-ordinateur {Clé primaire : codeInventaire}

codeInventaire typeCPU tailleRAM capacitéDisque

<<RelationalTable>>

Local

{Clé primaire: numéroLocal}

numéroLocal type

<<RelationalTable>>

PriseRéseau

{Clé primaire : numéroLocal, numéroPrise}

numéroLocal numéroPrise typePrise dateInstallation

<<RelationalTable>>

Equipement {Clé primaire: codeInventaire}

codeInventaire numéroFacture nomFabriquant modèle idEmployé

<<RelationalTable>>

Employé {Clé primaire : idEmployé}

idEmployé nom prénom

<<RelationalTable>>

AppelService {Clé primaire :noRéférence}

date noRéférence idEmployé

<<RelationalTable>>

Explication

{Clé primaire : codeInventaire, noRéférence}

codeInventaire noRéférence note

<<RelationalTable>>

Branchement

{Clé primaire : codeInventaire, numéroLocal, numéroPrise}

codeInventaire numéroLocal numéroPrise dateBranchement

<<RelationalTable>>

{Exclusives}

codeInvMicro

(9)

3) N.B. Pour chacun des exercices, il peut y avoir plusieurs solutions.

a) Les Clients dont le noTéléphone = (999)999-9999

noTéléphone = (999)999-9999

(Clients)

b) Le noCommande et la dateCommande des Commandes du Client

#10 dont le noCommande est supérieur à 5.

noClient, dateCommande

(

noClient = 10 ET noCommande > 5

(Commande))

c) Les noArticle et description des Articles dont le prixUnitaire est entre $10 et $20.

noArticle, description

(

prixUnitaire > 10 ET prixUnitaire < 20

(Article))

Bonus : trouvez d'autres formulations

d) Le noClient, noTéléphone du Client et noCommande pour les Commandes faites le 4/06/2000.

noClient, noTéléphone, noCommande

(

dateCommande = 4/06/2000

(Client  Commande)) ou

noClient, noTéléphone, noCommande

(Client  

dateCommande = 4/06/2000

(Commande))

e) Les noArticles commandés au moins une fois par le Client #10 après le 01/06/2000.

noArticle

(

noClient = 10 ET dateCommande > 01/06/2000

(Commande)  LigneCommande) f) Les noLivraisons correspondant aux Commandes faites par le

Client #10.

noLivraison

(

noClient = 10

(Commande)  DétailLivraison)

g) Les noCommandes des Commandes qui ont été placées à la même date que la Commande #2.

noCommande

(Commande  

Commande2(noCommande2, dateCommande, noClient2)

(

noCommande = 2

(Commande)))

h) Les noLivraison faites à la même date qu'une des Commandes

correspondant à la Livraison.

(10)

noLivraison

(

dateCommande = dateLivraion

(Commande  DétailLivraison 

Livraison)

i) La liste des noCommande avec les noLivraisons associées incluant les noCommandes sans livraison.

noCommande, noLivraison

(Commande =  DétailLivraison)

j) Les noClient, nomClient des Clients qui n'ont pas placé de Commande au mois de mars de l'année 2000.

noClient, nomClient

(Client - (Client  (

dateCommande  01/03/2000 ETdateCommande < 01/04/2000

(Commande))))

k) Les noCommandes qui ne contiennent pas l'Article # 10.

noCommande

(Commande) - (

noCommande

(

noArticle = 10

(LigneCommande))))

l) Les noArticle qui apparaissent dans toutes les Commandes.

noCommande, noArticle

(LigneCommande)  

noCommande

(Commande)

m) Les noArticles qui apparaissent dans toutes les Commandes du Client #10.

noCommande, noArticle

(LigneCommande  (

noClient = 10

(Commande)))  

noCommande

(

noClient = 10

(Commande))

(11)

4) Exprimez les opérations de jointure, intersection et division à l'aide des opérations de sélection, projection, produit cartésien, union, différence et renommage.

T

1



T

2

= 

(T

1

 T

2

) (N.B. Pour la jointure naturelle, il faut effectuer la sélection sur les colonnes communes, et ajouter une projection et un renommage)

T

1

 T

2

= T

1

- (T

1

- T

2

)

T

1

(X)  T

2

(Y) = 

X-Y

(T

1

) - ((

X-Y

(T

1

)  T

2

) - T

1

)

Références

Documents relatifs

SIGLE est accessible en ligne par le biais des serveurs Hosts STN International (Allemagne), SUNIST (France) et BLAISE (UK). Le CDROM est offert par SILVERPLATTER.

[r]

Week of June 29: delivery of elementary report cards and kindergarten follow-up books Friday July 3: Children's Day, last day

Les renseignements inscrits dans le formulaire seront utilisés pour l'administration relative à votre participation aux programmes Agri-stabilité et Agri-investissement,

[r]

1 Il s’agit de la politique département d’évaluation des apprentissages du département de Géographie- Histoire-Politique du collège Édouard Montpetit, car

La visite faite avec le groupe a été très riche car nous avons échangé nos impressions sur le vif.. Le groupe Français Langue Etrangère à visée professionnelle

La traduction française donnée par le rédacteur de l’article est « répartiteur de force de freinage électronique », qui reprend exactement le même ordre des mots que dans la