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)
Une clé possible est (TMid, DSfile1, DSfile2, algo, host, time)
Une autre clé possible si on ajoute la DF (*) est (DSfile1, DSfile2, op, algo, host, time)
Elle est en 3FN par construction. Elle est également en BCNF car, quelle que soit la relation, il n'y a pas de DF qui ne parte d'un ensemble d'attributs ne formant pas une clé.
On peut remplacer DT1, DT2 par la relation DT et idem pour DS1, DS2.
On a alors des dépendances d'inclusion entre TM.DTid1-2 et DT.DTid, TI.DSfile1-2 et DS.DSfile.
.
select numvehicule from Assurance A, Vehicule V, Personne P
where
A.numassurance=V.numassurance and
A.numassure=P.numpersonne and
nom='Dupont';
Vous donnerez deux expressions de cette requête en SQL, une qui utilise des fonctions agrégats, l'autre pas.
select numassure from Assurance A
group by numassuré having
count(numassurance) >1;
select A1.numassure from Assurance A1, Assurance A2
where
A1.numassure=A2.numassure and
A1.numassurance <> A2.numassurance;
La question est ambigüe. On ne sait pas si on recherche les assurés qui ne sont conducteur principal d'aucun véhicule qu'ils assurent ou si on recherche qui ne sont pas conducteur principal d'au moins un véhicule qu'ils assurent.
Aucun véhicule
select numassure from Assurance
numassure not in (select
numassuré from Assurance A, Vehicule V
where
A.numassurance=V.numassurance and
A.numassure=V.numcond);
Au moins un véhicule
select numassuré from Assurance A, Vehicule V
where
A.numassurance=V.numassurance and
A.numassure<>V.numcond;
select numassuré from Assurance A, Vehicule V
where
A.numassurance=V.numassurance and
A.numassure=V.numcond;
select numassure from Assurance
numassure not in (select
numassuré from Assurance A, Vehicule V
where
A.numassurance=V.numassurance and
A.numassure <> V.numcond);
select numassure from Assurance
numassure not in (select numassuré from Assurance A, Vehicule V
where A.numassurance=V.numassurance and
V.bonus < 0.5);
create view AV as
select numassurance, numvehicule, numcond, typeassurance, bonus
from Vehicule
where numvehicule in (select numvehicule from Vehicule
group by numvehicule having count(numassurance)>1);
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 ?
Telle que définie, on peut mettre la vue a jour. Si oin l'avait defini par une simple cjointure declarative, cela aurait ete impossible.
select numvehicule
from Assurance A, AV
where A.numassurance=AV.numassurance
group by numvehicule
having count(distinct numassure) =1;
oui. les tables raltionnelles sont une instance d'un sceh'ma relationnel, lui-même instance du modèle relationnel
Par rapport au lien d'instanciation, HTML est une instance de SGML. Les instances de HTML sont des données. En comparant avec le modèle relationnel, on peut donc dire que SGML est le modèle de données et HTML est un schéma de données.
En revanche, si on s'attache à la rigueur de la structure de données, on peut difficilemetn défendre l'idée que HTML est un schéma. En effet, les documents HTML n'ont aucune structure rigide et peuvent tous avoir leur propre structure, différente de celle d'un autre. HTML n'impose rien en ce sens. C'est pourquoi on dit parfois en parlant de bases de données documentaires de bases de données sans schéma.