© Éditions Eyrolles
143
chapitre n° 4
Interrogation des données
La figure suivante illustre l’opérateur de division dans sa plus simple expression (je ne parle
pas du contenu des tables, bien sûr…). Le schéma fait plus apparaître le deuxième aspect révélateur énoncé ci-avant, à savoir comparer un ensemble (la table T1) avec un ensemble de référence (la table T2).
Définition
La division de la table T1[a1,...,an,b1,...,bn] par la table T2[b1,...,bn] (la structure de T2 est
incluse dans la structure de T1) donne la table T3[a1,...,an] qui contient les enregistrements ti
vérifiant ti ∈ T3 (de structure [a1,...,an]), tj ∈ T2 (tj de structure [b1,...,bn]) et ti,tj ∈ T1 (ti,tj de
structure [a1,...,an,b1,...,bn]).
Classification
Considérons l’exemple suivant pour décrire la requête à construire. Il s’agit de répondre à la
question : « Quels sont les avions affrétés par toutes les compagnies françaises ? ». L’ensemble de référence (A) est constitué des codes des compagnies françaises. L’ensemble à comparer (B) est formé des codes des compagnies pour chaque avion.
Deux cas sont à envisager suivant la manière de comparer les deux ensembles :
q
Division inexacte (le reste n’est pas nul) : un ensemble est seulement inclus dans un autre
(A ∈ B). La question à programmer serait : « Quels sont les avions affrétés par toutes les
compagnies françaises ? », sans préciser si les avions ne doivent pas être aussi affrétés par
des compagnies étrangères. L’avion ('A3', 'Mercure') répondrait à cette question, que la
dernière ligne de la table Affretements soit présente ou pas.
q
Division exacte (le reste est nul) : les deux ensembles sont égaux (B=A). La question à
programmer serait : « Quels sont les avions affrétés exactement (ou uniquement) par
toutes les compagnies françaises ? ». L’avion ('A3', 'Mercure') répondrait à cette question
si la dernière ligne de la table Affretements était inexistante. Les lignes concernées
dans les deux tables sont grisées.
Figure 4-21 Division
T1
Jospin
Juppé
Juppé
Baudis
Baudis
Baudis
Chirac
Chirac
Chirac
T2
Quotient
Chirac
Quels sont les enregistrements de T1 qui sont
associés à « tous les » enregistrements de T2 ?
Réponse : Chirac
Quotient=(T1–Reste)/T2
(ici Reste n’est pas nul)
143
chapitre n° 4
Interrogation des données
La figure suivante illustre l’opérateur de division dans sa plus simple expression (je ne parle
pas du contenu des tables, bien sûr…). Le schéma fait plus apparaître le deuxième aspect révélateur énoncé ci-avant, à savoir comparer un ensemble (la table T1) avec un ensemble de référence (la table T2).
Définition
La division de la table T1[a1,...,an,b1,...,bn] par la table T2[b1,...,bn] (la structure de T2 est
incluse dans la structure de T1) donne la table T3[a1,...,an] qui contient les enregistrements ti
vérifiant ti ∈ T3 (de structure [a1,...,an]), tj ∈ T2 (tj de structure [b1,...,bn]) et ti,tj ∈ T1 (ti,tj de
structure [a1,...,an,b1,...,bn]).
Classification
Considérons l’exemple suivant pour décrire la requête à construire. Il s’agit de répondre à la
question : « Quels sont les avions affrétés par toutes les compagnies françaises ? ». L’ensemble de référence (A) est constitué des codes des compagnies françaises. L’ensemble à comparer (B) est formé des codes des compagnies pour chaque avion.
Deux cas sont à envisager suivant la manière de comparer les deux ensembles :
q
Division inexacte (le reste n’est pas nul) : un ensemble est seulement inclus dans un autre
(A ∈ B). La question à programmer serait : « Quels sont les avions affrétés par toutes les
compagnies françaises ? », sans préciser si les avions ne doivent pas être aussi affrétés par
des compagnies étrangères. L’avion ('A3', 'Mercure') répondrait à cette question, que la
dernière ligne de la table Affretements soit présente ou pas.
q
Division exacte (le reste est nul) : les deux ensembles sont égaux (B=A). La question à
programmer serait : « Quels sont les avions affrétés exactement (ou uniquement) par
toutes les compagnies françaises ? ». L’avion ('A3', 'Mercure') répondrait à cette question
si la dernière ligne de la table Affretements était inexistante. Les lignes concernées
dans les deux tables sont grisées.
Figure 4-21 Division
T1
Jospin
Juppé
Juppé
Baudis
Baudis
Baudis
Chirac
Chirac
Chirac
T2
Quotient
Chirac
Quels sont les enregistrements de T1 qui sont
associés à « tous les » enregistrements de T2 ?
Réponse : Chirac
Quotient=(T1–Reste)/T2
(ici Reste n’est pas nul)
