C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Inference Rule (IR):
The Functional dependency has 6 types of inference rule: 1. Reflexive Rule (IR1)In the reflexive rule, if Y is a subset of X, then X determines Y. If X ⊇ Y then X → Y Example: X = {a, b, c, d, e} Y = {a, b, c} 2. Augmentation Rule (IR2)The augmentation is also called as a partial dependency. In augmentation, if X determines Y, then XZ determines YZ for any Z. If X → Y then XZ → YZ Example: For R(ABCD), if A → B then AC → BC 3. Transitive Rule (IR3)In the transitive rule, if X determines Y and Y determine Z, then X must also determine Z. If X → Y and Y → Z then X → Z 4. Union Rule (IR4)Union rule says, if X determines Y and X determines Z, then X must also determine Y and Z. If X → Y and X → Z then X → YZ Proof:
1. X → Y (given)
2. X → Z (given) 3. X → XY (using IR2 on 1 by augmentation with X. Where XX = X) 4. XY → YZ (using IR2 on 2 by augmentation with Y) 5. X → YZ (using IR3 on 3 and 4) 5. Decomposition Rule (IR5)Decomposition rule is also known as project rule. It is the reverse of union rule. This Rule says, if X determines Y and Z, then X determines Y and X determines Z separately. If X → YZ then X → Y and X → Z Proof:
1. X → YZ (given)
2. YZ → Y (using IR1 Rule) 3. X → Y (using IR3 on 1 and 2) 6. Pseudo transitive Rule (IR6)In Pseudo transitive Rule, if X determines Y and YZ determines W, then XZ determines W. If X → Y and YZ → W then XZ → W Proof:
1. X → Y (given)
2. WY → Z (given) 3. WX → WY (using IR2 on 1 by augmenting with W) 4. WX → Z (using IR3 on 3 and 2)
Next TopicDBMS Normalization
|