Sie sind auf Seite 1von 16

Examen mai 2004 Question 1. Modlisation Nous sommes sur le centre de production dun constructeur automobile.

Deux chanes effectuent le montage. Les vhicules sont ensuite transports chez les distributeurs par un service livraison/logistique. Les employs sont rpartis dans des btiments parfois loignes les uns des autres. On veut grer, laide dune base de donnes relationnelle, laccs aux diffrents parkings. On dfinit, pour chaque parking, les btiments qui sont accessibles partir de ce parking. Lattribution des places de parking se fera en fonction du lieu daffectation de lemploy. Lattribution dpend galement de la marque du vhicule : certains parkings sont interdits aux vhicules de marques concurrentes.

Les employs peuvent obtenir des autorisations exceptionnelles de parking, par exemple sils participent une runion dans un autre btiment que leur btiment habituel. On ne souhaite pas grer le calendrier des runions avec les salles correspondantes. La pertinence dune demande exceptionnelle reste donc en dehors du systme informatis. Pour suivre la bonne affectation des autorisations exceptionnelles, on enregistre lutilisation relle de la place attribue.

On suppose que : chaque btiment est proche dau moins un parking, pour toute marque, il y a au moins un parking accessible, un employ nest bas un moment donn que dans un seul btiment, un seul propritaire du vhicule est dclar, un employ ne peut pas dclarer plusieurs vhicules, le systme propose une ou plusieurs affectations, sappuyant sur les rgles en vigueur, toute affectation doit tre confirme manuellement.

a) Proposez une modlisation conceptuelle entit-association de cette base en prcisant vos hypothses complmentaires ventuelles.
VEHICULE 1,1 1,1 possde 1,1 1,N EMPLOYE matricule Nom Prnom 1,1 affect Accorde Accorde 1,1 1,1 1,N MARQUE codmarq intitul appartient Nimmat 1,1

AUTORISATION HABITUELLE
Numro Datdb datfin 1,1 dans BATIMENT Numro nom 1,N PARKING 1,N Numro Nom capacit

AUTORISATION EXCEPTIONNELLE
Numro Datautor Utilis (0/N) 1,1 dans 1,N 1,N

1,N

1,N Est interdit

1,N Est proche de

Hypothses complmentaires : -chaque vhicule a une et une seule autorisation habituelle de parking - un parking peut tre proche de plusieurs btiments b) En expliquant la mthode utilise, traduisez ce schma en un ensemble de tables relationnelles. Prcisez les contraintes dintgrit associes chaque table. EMPLOYE(matricule nom prnom nbtiment numroautorhabit nimmat codmarq) BATIMENT(numbtiment nombtiment) PARKING (numroparking nomparking capacit) MARQUE (codmarq intitul) AUTORHABIT(nautorhabit datdb nparking) AUTOREXCEPT(nautorexcept datautor nimmat nparking) INTERDICTION (nparking codmarq) PROXIMITE (nparking nbtiment)

Contraintes dintgrit -unicit : colonnes ou groupes de colonnes soulignes dans chaque table - intgrit rfrentielle : les cls trangres sont en italiques ex : EMPLOYE.nIMMAT inclus dans VEHICULE.nIMMAT -domaine : utilise appartient {oui,non} -Contrainte dinclusion (card min = 1) PARKING.nparking inclus dans PROXIMITE.nparking -contrainte smantique : pour toute marque, il existe un parking autorisant la marque

c) On dcide de dcentraliser la gestion de la base sur deux sites : la gestion des employs et des autorisations habituelles sera assure par la Direction des Ressources Humaines, la gestion des autorisations exceptionnelles et leur suivi seront assurs par la Direction des Moyens Gnraux. Proposer et justifier une bonne dcomposition de cette base de donnes sur ces deux sites. Pour ce faire vous pourrez utiliser la dcomposition horizontale et/ou verticale ainsi que la rplication (duplication). Pour chaque fragment obtenu, on donnera sa dfinition sous la forme dun calcul de lalgbre relationnelle partir du schma relationnel obtenu prcdemment. Inversement, on indiquera comment se calcule chaque relation de la base partir des fragments.

Rpartition des donnes Table EMPLOYE pour la DRH Table AUTOREXCEPT et BATIMENT pour les moyens gnraux Les autres tables doivent tre dupliques

Question 2. Normalisation relationnelle Dans la thorie de la normalisation relationnelle, on prconise lobtention dun schma relationnel en 3me forme normale qui prserve les dpendances fonctionnelles et qui soit sans perte. Expliquez ce que signifient ces deux notions (prservation des dpendances fonctionnelles et dcomposition sans perte). Pour chacune, donnez un contre-exemple. Prservation des DF : pour chaque DF non dductible par transitivit, il existe une table contenant les parties gauche et droite de la DF Dcomposition sans perte : en recomposant les tables (par jointure), on obtient toutes les donnes initiales et rien que les donnes initiales

Exemples Les tables (A B) et (A C) ne prservent pas la DF B -> C mais elle est sans perte La dcomposition de VINS(Buveur Cru Producteur) Pierre Chablis Claude Pierre Chablis Nicolas Pierre Volnay Nicolas Paul Chablis Nicolas En ses deux projections (Buveur Cru) et (Buveur Producteur) Prserve les DF (il ny en a pas) mais nest pas sans perte

Question 3. Manipulation avance de base de donnes relationnelles Soit la base relationnelle suivante relative la gestion simplifie des tapes du Tour de France cycliste 2003 : EQUIPE(CodeEquipe, NomEquipe, DirecteurSportif) COUREUR(NumroCoureur, NomCoureur, CodeEquipe*, CodePays*) PAYS(CodePays, NomPays) TYPE_ETAPE(CodeType, LibellType) ETAPE(NumroEtape, DateEtape, VilleDp, VilleArr, NbKm, CodeType*) PARTICIPER(NumroCoureur*, NumroEtape*, TempsRalis) ATTRIBUER_BONIFICATION(NumroEtape*, km, Rang, NbSecondes, NumroCoureur*) Remarque : les cls primaires sont soulignes et les cls trangres sont marques par *

Exprimer en SQL la question suivante : a) Donner la ville de dpart et la ville darrive de ltape la plus longue. SELECT Villedep, VilleArr FROM ETAPE WHERE Nbkm = (SELECT max(Nbkm) FROM ETAPE); Que calculent les requtes ci-dessous ?

b) SELECT NomCoureur FROM COUREUR WHERE NumroCoureur NOT IN (SELECT NumroCoureur FROM ATTRIBUER_BONIFICATION) ; Liste des coureurs nayant eu aucune bonification

c) SELECT NomCoureur WHERE NOT EXISTS (SELECT * FROM ETAPE WHERE NOT EXISTS (SELECT * FROM PARTICIPER WHERE NumroEtape=ETAPE.NumroEtape AND NumroCoureur=COUREUR.NumroCoureur)) ;

Liste des coureurs ayant particip toutes les tapes

Ecrire les arbres algbriques des requtes ci-dessous :


numrecette

d) Quel est le nom de lquipe laquelle appartient Zinedine Zidane ? Recette IngrdientsRecette
nomingrdient =boeuf

Ingrdients

e)

Quel est le nom des quipes dont au moins un des coureurs

a obtenu une bonification ltape 15 et a, de plus, ralis un temps infrieur 300 minutes cette mme tape ?

Question 4. Administration de bases de donnes

1) Comment savoir sous Unix si une base de donnes tpcnam est dmarre ou pas ?

2) Le DBA veut obtenir des informations sur toutes les tables qui commencent par EMP (EMP, EMP2, EMPLOYE, EMPLOYES... select * from dba_tables where table_name='EMP%'; Qu'en pensez-vous ?

3) Vous supprimez toutes les lignes de la table avion : delete from avion; Vous demandez un autre utilisateur de vrifier le contenu de la table pour savoir si votre ordre a bien march ; or les lignes sont encore prsentes ! Pourquoi ?
4) Expliquer la fonction de chaque type de segment prvu au sein des tablespaces ORACLE.