Controle de connaissance
Lundi 8 décembre 1997
Durée 1h30. Documents autorisés.
A. Normalisation
Préambule:
Vous savez tous désormais ce qu'est une opération de jointure
relationnelle. Si on remplace les attributs de jointures
alphanumériques par des attributs spatiaux (type complexe représentant
par exemple une suite de points, de lignes, etc) et l'opérateur (=, >,
<, etc) par un opérateur spatial (inclusion, intersection, adjacence,
etc), on parle alors de jointure spatiale.
Cette opération de jointure spatiale est une opération assez critique,
dans la mesure où elle fait intervenir des données volumineuse et des
opérateurs assez complexes.
Nous développons à l'école une plateforme d'évaluation de
performance des jointures spatiales.
Pour ce faire, Nous définissons des types de données spatiales (DT:
datatype), qui correspondent à (i) un certain espace (un rectangle
défini par longueur et sa largeur), (ii) un certain nombre d'objets
spatiaux et (iii) une distribution statistique. Ces types peuvent être
instanciés autant de fois qu'on le souhaite, on obtient alors alors
autant de jeux de données spatiaux identifiés par un nom de fichier
(DSfile: Data Sample file) et correspondant chacun à un type DT.
De la même manière, nous définissons des modèles de tests (TM), chaque
modèle de test est la spécification d'une jointure spatiale sur deux
types de données spatiales, avec un opérateur spatial particulier.
À l'instanciation de ces modèles de tests sur les "data samples"
correspond un nombre de solution (solnb). Les instances de ces modèles
de tests peuvent être exécutées autant de fois qu'on le souhaite à un
temps donné et sur une machine donnée (time, host), avec un algorithme
donné (algo) et permettent de recenser le nombre de lectures,
écritures (read, write) réalisées.
Sujet:
Nous proposons la relation universelle suivante pour stocker dans une
base de données l'ensemble des résultats de notre plateforme.
Universelle (TMid, DTid1, longueur1, largeur1, nb1,
distri1, DSfile1, DTid2, longueur2, largeur2, nb2, distri2, DSfile2,
op, algo, host, time, solnb, read, write)
- Donnez une couverture minimale des DFs et proposez une clé pour
cette relation.
- Proposez une décomposition en 3FN. Cette décomposition est elle
en BCNF ?
- Y a-t-il redondance quand à l'information sur les types de
données spatiales ? Comment expliquez vous cette redondance ?
proposez un moyen intuitif de la supprimer.
B. Requêtes SQL
On dispose du schema relationnel :
- Assurance (numassurance, numassuré)
- Véhicule (numassurance, numvehicule, numconducteur,
typeassurance, bonus)
- Personne (numpersonne, nom, prénom, adresse)
sur lequel on veut poser les requêtes suivantes:
- Quelles sont les voitures assurées par Monsieur Dupont ? (SQL
et algèbre relationnelle )
- Y a-t-il des assurés qui ont plusieurs contrats d'assurance ?
Vous donnerez deux expressions de cette requête en SQL, une qui
utilise des fonctions agrégats, l'autre pas.
- Quels sont les assurés qui ne sont pas conducteur principal d'un
vehicule qu'ils assurent ?
- Quels sont les assurés qui sont conducteur principal d'un des
vehicules qu'ils assurent ?
- Trouvez les assurés qui sont conducteur principal de tous les
véhicules qu'ils assurent.
- Quels sont les assurés dont tous les véhicules ont un bonus
supérieur à 0.5 ?
- Créez la vue numassurance, numvehicule, numcond, typeassurance,
bonus) des véhicules qui sont assurés plusieurs fois sous des numéros
d'assurances différents.
Est il possible de mettre cette vue à jour ? La réponse à cette
question dépend-elle de la façon dont la vue a été définie ?
- Parmi les véhicules assurés plusieurs fois, quels sont ceux qui
sont toujours assurés par la même personne.
C. Questions générales
- Est il exact de dire qu'un schema relationnel est une instance du
modèle relationnel ?
- En vous inspirant du vocabulaire relationnel, indiquez si le
langage HTML est un schéma ou un modèle ?