Le second problème du sujet de CAPES (épreuve 1, sujet ici) portait sur le système de déduction d’Armstrong. Celui-ci est basé sur la logique naturelle de Gentzen que nous allons découvrir à cette occasion.
1 Interrogation et manipulation de bases de données
1. Contraintes et requêtes en SQL
Corrigé effectué grâce à l’aide de Rafaël Lopez (IUT Orsay)
Pour tous les cas où la même personne note deux fois le même restaurant et donne une note plus élevée la seconde fois, retourner le pseudonyme de l’évaluateur et le nom du restaurant.
SELECT R.rID, nom, E.eID, pseudonyme
FROM Restaurant R
INNER JOIN Evaluation EV ON R.rID = EV.rID
INNER JOIN Evaluateur E ON EV.eID = E.eID
GROUP BY R.rID, nom, E.eID, pseudonyme
HAVING COUNT(*) = 2
HAVING COUNT(DISTINCT note) = 2
l’atomicité (informatique) est la propriété d’une transaction de la base de données qui se fait sans interruption (ou alors pas du tout) ;
la cohérence (informatique) est la propriété d’une transaction qui aboutit à un état valide, du moins si la base de données était déjà valide avant la transaction ;
la persistence ou durabilité (informatique) est la garantie qu’une fois effectuée, la transaction ne sera plus annulée par la suite.
Gerhard Gentzen fit la remarque que pour David Hilbert une démonstration est une liste de résultats intermédiaires. Par exemple une preuve typique (selon Hilbert vu par Gentzen) partirait d’un axiome dont on déduirait un lemme dont on déduirait une proposition dont on déduirait un théorème :
axiome ⇒ lemme ⇒ proposition ⇒ théorème
Bref, si on dessine la démonstration sous forme d’un graphe orienté (les arêtes représentées par les flèches ⇒ de l’implication), ce graphe est linéaire : c’est une liste.
Mais Gentzen a surtout fait la remarque qu’en général une démonstration n’est pas linéaire, il arrive souvent qu’une conclusion soit déduite de plusieurs prémisses (le graphe est en réalité un arbre. Ce qui a posé un problème typographique à Gentzen : comment dessiner un arbre (racine en bas puisque c’est le théorème, feuilles en haut, les axiomes ou plutôt les hypothèses, Gentzen n’utilisant pas d’axiomes) ?
Gentzen a adopté une notation avec des traits horizontaux (celle que l’on voit dans l’énoncé). C’est la notation utilisée dans CoqIde. Mais surtout, Gentzen a fondé sa logique naturelle sur des règles de déduction et aucun axiome : tout en règles de déduction ! Dans cet article on va dessiner les déductions comme des arbres orientés, comme ceci :
La déduction se lit du haut (les feuilles soit les hypothèses) vers le bas (la racine est la conclusion). Ou alors par chaînage arrière, auquel cas on se fixe des buts (les lemmes) et on y greffe leurs preuves au moment adéquat.
En 1970, E.F. Codd, qui travaillait pour IBM, a publié cette théorie algébrique des bases de données :
4 ans plus tard, W.W. Armstrong publie cette théorie :
Il y insiste surtout sur la notion de dépendance fonctionnelle (existence d’une fonction entre certains attributs). Il formalise la notion de dépendance fonctionnelle par les axiomes notés F1, F2, F3 et F4 dans la partie 4 de l’article ci-dessus.
Mais, influencés par Gentzen, les auteurs du sujet ont préféré remplacer les axiomes d’Armstrong, par trois règles de déduction (réflexivité pour F1, augmentation pour F4 et transitivité pour F2).
Voici les trois règles de déduction du système d’Armstrong :
La première (réflexivité, à gauche) dit que si Y est dans X, on peut construire (par projection) une dépendance fonctionnelle entre X et Y (l’identité).
La seconde (augmentation, au milieu) généralise la première : par restriction on peut étendre une dépendance au cas où on a rajouté W.
La troisième (transitivité, à droite) dit que la composition des fonctions permet de construire une dépendance fonctionnelle entre X et Z.
3. Une anomalie de mise à jour est ce qui se passe si un enregistrement est actualisé (après une requête de type UPDATE) mais qu’un autre enregistrement qui en dépend fonctionnellement, n’est pas actualisé.
Par exemple, si un critique a donné une note au Resto astronomique et qu’ensuite le webmestre constate, grâce à l’adresse du restaurant, qu’il s’agit en réalité du Resto gastronomique (le critique s’est trompé en entrant le nom du restaurant), il s’avère nécessaire de remplacer astronomique par gastronomique dans chacun des champs où apparaît ce mot. Si le remplacement n’est pas systématique, les notes données au Resto astronomique ne seront pas comptabilisées pour le Resto gastronomique.
4. Une clé est ensemble d’attributs dont dépendent fonctionnellement tous les autres ensembles d’attributs.
En effet, ses deux prémisses sont vérifiées par la relation suivante :
clé
X
Y
Z
1
a
A
x
2
b
A
x
3
c
B
y
X est une clé donc la dépendance fonctionnelle de Y par rapport à X est assurée, et chaque fois que Y==A on a Z==x donc Z dépend fonctionnellement de Y. Mais les enregistrements de clé primaire 1 et 2 vérifient Z==x sans avoir la même valeur de X : X ne dépend pas fonctionnellement de Z.
6. L’exemple de la question 5 produit une dépendance fonctionnelle (entre Z et X) non valide : l’ajout de la règle d’inférence de la question 5 est incorrect.
7. Le système d’inférence d’Armstrong est correct parce que chacune de ses règles est correcte :
Si Y⊆X, alors pour les tuplets t1 et t2 ayant la même projection sur X, a fortiori leurs projections sur Y sont égales : σRe est correcte.
On suppose que les tuplets t1 et t2 ont même projection sur W∪X. Alors
ils ont même projection sur W,
ils ont même projection sur X, d’où par hypothèse (la prémisse de σA) ils ont également même projection sur Y.
Ils ont donc même projection sur W∪Y : σA est correcte.
On suppose que les tuplets t1 et t2 ont la même projection sur X. Alors d’après la première prémisse de σT ils ont également la même projection sur Y, et d’après la seconde prémisse de σT ils ont donc également la même projection sur Z : σT est donc correcte également.
8. En notant A, B, C, D, E et F les attributs d’une relation R,
(a) Comme E⊆C∪E, la règle σRe (réflexivité) permet de conclure que C∪E→E.
(b) On suppose que A∪B→B∪C et que D→A (hypothèses). En utilisant le schéma d’axiomes C⊆B∪C on en déduit que B∪D→C
On utilise le fait que A∪A∪B=A∪B (réécriture) et le fait que F⊆E∪F. Les autres feuilles de cet arbre sont les hypothèses :
3 Fermeture transitive
La relation X→Y peut être représentée par un graphe orienté (potentiellement infini) et l’algorithme de l’énoncé construit sa fermeture transitive par un parcours du graphe en largeur.
On utilise un ensemble d’ensembles (A,B,C,D,E,F) :
S = {'A':'D', 'AB':'E', 'BF':'E', 'CD':'F', 'E':'C'}
def fermeture(X):
Cl = {x for x in X}
done = False
while not done:
done = True
for rule in S:
Z = set(S[rule])
if set(rule).issubset(Cl) and not Z.issubset(Cl):
Cl |= Z
done = False
return Cl
Les dépendances fonctionnelles sont dans un dictionnaire S (pour Σ) et l’algorithme renvoie l’ensemble des attributs qui sont dans la fermeture de X. Les réponses à la question 9 sont obtenues en appelant la fonction ci-dessus sur les chaînes F, BF et ABF.
9. Dans cette question on considère l’ensemble Σ={A→D,A∪B→E,B∪F→E,C∪D→F,E→C}
(a) La fermeture de F est F.
(b) La fermeture de B∪F est B∪C∪E∪F.
(c) La fermeture de A∪B∪F est A∪B∪C∪D∪E∪F.
Toute dépendance fonctionnelle peut être obtenue uniquement à partir de A∪B∪F : A∪B∪F est une clé de la relation R.
Le système est correct : si on pouvait produire dans le système (σRe,σP) une dépendance fonctionnelle non valide, la question 12 permettrait de construire une dépendance non valide dans le système d’Armstrong, or ce n’est pas possible d’après la question 7.
Le système est complet : Toute dépendance valide possède une preuve dans le système d’Armstrong, et la question 13 permet de transformer cette preuve en une preuve dans le système (σRe,σP) cqfd.
Commentaires
mercredi 10 mars 2021
à 09h45
- par Olivier Boutin
Pour la requête (e) de la question 1 du premier exercice, comment sait-on que la deuxième note est effectivement plus élevée que la première ?
mardi 9 mars 2021
à 14h13
- par Olivier Boutin
Attention, les réponses aux questions 6 et 7 ont été intégrées dans le contre-exemple de la question 5, dont l’affichage est optionnel. On les voit donc pas par défaut.
Les candidats doivent se pré-inscrire et télécharger le dossier de candidature du 23 mars au 23 avril 2015 sur le site de l’ESPE de la Réunion.
Le dossier de candidature complété et accompagné des pièces demandées, est à retourner par courrier ou sur place à l’ESPE, au plus tard le 24 avril 2015 à 12h00 (heure locale), le cachet de la Poste faisant foi.
Khalid Addi, Daniel Goeleven et Rachid Oujja publient chez Ellipses un livre intitulé Principes mathématiques pour biologistes, chimistes et bioingénieurs. Une approche pluridisciplinaire avec de nombreuses et riches applications. Ce livre sera utile aux étudiants qui préparent le CAPES de mathématiques et le CAPLP mathématiques-sciences physiques et chimiques, notamment pour illustrer leurs leçons d’oral.
Commentaires