Bonjour,
Voici un extrait de mon cours assez compliqué à comprendre malgré tous mes efforts de trouver une explication.
Table cuisinier
Numero | nom | prenom | numeq |
12 | DUPONT | Jean | 1 |
34 | DUPOND | Jeanne | 2 |
17 | DUBOIS | Robert | 1 |
22 | DUBALAI | Aline | 1 |
26 | DUGENOU | Jean | 2 |
11 | Durand | Aline | 2 |
38 | DURACUIRE | Robert | 2 |
9 | DURALUMIN | Roberte | 1 |
13 | DURDUR | Jean | 2 |
20 | DURALEX | Jean | 1 |
Pour effectuer la fragmentation horizontale on se base sur les critères de recherche, c'est-à-dire les conditions exprimées dans les "WHERE" des ordres SQL.On a C1 = A∧B, C2 = C, C3 = D∧A où ∧désigne le "ET LOGIQUE" et A, B, C, D représentent les prédicats suivants :
A : prenom = 'Jean'
B : nom LIKE '%R%'
C : numeq = '1'
D : numeq = '2
Les opérations logiques ET LOGIQUE ( ∧) et OU LOGIQUE (∨) sont définies par les tables de vérité suivantes :
X | y | X ^ y |
∅ | ∅ | ∅ |
∅ | 1 | ∅ |
1 | ∅ | ∅ |
1 | 1 | 1 |
X | y | x V y |
∅ | ∅ | ∅ |
∅ | 1 | 1 |
1 | ∅ | 1 |
1 | 1 | 1 |
où ∅signifie "Faux" (ou vide de sens) et 1"Vrai".
On a évidemment C∧D = ∅car on ne peut avoir simultanément numeq = '1' et numeq= '2' et aussi , <—C∧D = D, C∧<—D = C où <—C et <—D désignent les contraires de C et D.
À partir des conditions Ci, on peut construire l'ensemble des conjonctions CCj de conditions C = { ∧Ci* pour i = 1,n et Ci* = Ci ou <—Ci}
Concrètement :CC = {C1∧C2∧C3, <—C1∧C2∧C3, C1∧<—C2∧C3, C1∧C2∧<—C3, <—C1∧<—C2∧C3, C1∧<—C2∧<—C3, <—C1∧C2∧<—C3, <—C1∧<—C2∧<—C3}
On laisse au lecteur le soin de vérifier que:
(C1∧C2∧C3)∨(<—C1∧C2∧C)∨(C1∧<—C2∧C3)∨(C1∧C2∧<—C3)∨(<—C1∧<—C2∧C3)∨(C1∧<—C2∧<-C3)∨(<—C1∧C2∧<—C3)∨(<—C1∧<—C2∧<—C3) = "vrai"
Évaluons chacun des termes :
C1∧C2∧C3 = A∧B∧C∧D∧A = A∧B∧∅∧A = ∅
¬C1∧C2∧C3 = ¬(A∧B)∧C∧D∧A = ¬(A∧B)∧∅∧A = ∅
C1∧¬C2∧C3 = A∧B∧¬C∧D∧A = A∧B∧D∧A = A∧B∧D
C1∧C2∧¬C3 = A∧B∧C∧<—(D∧A) = A∧B∧C∧(¬D∨¬A) = (A∧B∧C∧¬D)∨(A∧B∧C∧¬A) = (A∧B∧C)∨∅= A∧B∧C
¬C1∧¬C2∧C3 = ¬(A∧B)∧¬C∧D∧A = ¬(A∧B)∧D∧A = (¬A∨¬B)∧D∧A = (¬A∧D∧A)∨(¬B∧D∧A) = ∅∨(A∧¬B∧D) = A∧¬B∧D
C1∧¬C2∧¬C3 = A∧B∧¬C∧(¬D∨¬A) = (A∧B∧¬C∧¬D)∨(A∧B∧¬C∧¬A) = (A∧B∧¬C∧¬D)∨∅= A∧B∧¬C∧¬D
C1∧C2∧¬C3 = A∧B∧C∧¬(D∧A) = A∧B∧C∧(¬D∨¬A) = (A∧B∧C∧¬D)∨(A∧B∧C∧¬A) = (A∧B∧C)∨∅= A∧B∧C
¬C1∧¬C2∧C3 = ¬(A∧B)∧¬C∧D∧A = ¬(A∧B)∧D∧A = (¬A∨¬B)∧D∧A = (¬A∧D∧A)∨(¬B∧D∧A) = ∅∨(A∧¬B∧D) = A∧¬B∧D
C1∧¬C2∧¬C3 = A∧B∧¬C∧(¬D∨¬A) = (A∧B∧¬C∧¬D)∨(A∧B∧¬C∧¬A) = (A∧B∧¬C∧¬D)∨∅= A∧B∧¬C∧¬D
¬C1∧C2∧¬C3 = (¬A∨¬B)∧C∧(¬D∨¬A) = (¬A∨¬B)∧[(C∧¬D)∨(C∧¬A)] = (¬A∨¬B)∧[C∨(C∧¬A)] = (¬A∨¬B)∧C
¬C∧¬C2∧¬C3 = (¬A∨¬B)∧¬C∧(¬D∨¬A) = (¬A∨¬B)∧[(¬C∧¬D)∨(¬C∧¬A)] = [(¬A∨¬B)∧(¬C∧¬D)]∨[(¬A∨¬B)∧(¬C∧¬A)] = [(¬
A∧¬C∧¬D)∨(¬B∧¬C∧¬D)]∨[(¬A∧¬C∧¬A)∨(¬B∧¬C∧¬A)] = (¬A∧¬C)∨(¬B∧¬C∧¬D)∨(¬A∧¬C)∨(¬B∧¬C∧¬A) = (¬A∧¬C)∨(¬B∧¬C∧¬D)∨(¬B∧¬C∧¬A) = (¬A∧¬C)∨(¬A∧¬C∧¬B)∨(¬B∧¬C∧¬D) = (¬A∧¬C)∨(¬B∧¬C∧¬D)
o∧nous avons utilisé la distributivité de chacune des lois ∧et ∨par rapport à l'autre, les lois deMorgan :
et aussi :X∨(X∧Y) = X (à vérifier avec les tables de vérité)
Comme vous pouvez le voir mon cours qui traite le sujet est assez complexe.
J'ai beau le tourner dans tous les sens, je n'arrive à trouver une méthode pour comprendre cela.
Merci pour votre aide.