| 3 | | **More details soon ...** |
| | 3 | **Task information** |
| | 4 | |
| | 5 | a) **Initial de-normalized relation and functional dependencies** |
| | 6 | |
| | 7 | The process starts from a single unified de-normalized relation that includes all attributes from the ER model (as if all data resides in a single table). It is important that there are no duplicate attribute names. |
| | 8 | |
| | 9 | Then you need to determine the initial set of functional dependencies that are valid in the unified relation and need to be valid after the decomposition. It is best to start from a shorter list - the canonical cover of the set of initial functional dependencies. |
| | 10 | |
| | 11 | Once again, you should consider all attributes from the entire model together, and not separately by entities and/or relations. So from the global set of attributes, define a global set of functional dependencies that are valid always and everywhere. |
| | 12 | |
| | 13 | b) **Candidate keys and primary key selection** |
| | 14 | |
| | 15 | Based on the functional dependencies, you need to formally identify all candidate keys and select the primary key for the de-normalized relation. |
| | 16 | |
| | 17 | Then you need to check in which NF is the de-normalized relation, before starting the process of decomposition. |
| | 18 | |
| | 19 | c) **Step-by-step decomposition to highest possible normal form** |
| | 20 | |
| | 21 | Starting from the set of functional dependencies and attributes, and without looking at (and ignoring) your previous design (from Phase 1 and 2 of the Project), carry out a step-by-step decomposition procedure to the highest possible normal form. |
| | 22 | |
| | 23 | The decomposition should be done step by step from 1NF, 2NF, 3NF, BCNF, with a brief but formal explanation of the steps taken, that includes info on: |
| | 24 | |
| | 25 | * which specific relation is analyzed in that step |
| | 26 | * what are the functional dependencies that apply to that relation, which are the candidate keys and the primary key of that relation |
| | 27 | * establish in which normal form is the relation |
| | 28 | * which dependencies cause issues with the first subsequent higher normal form in that relation, which one will be first to consider as a starting point for decomposition in two relations |
| | 29 | * what relations are obtained after the decomposition |
| | 30 | * what dependencies are valid in the new relations |
| | 31 | * what are the keys in the new relations |
| | 32 | * checking whether the decomposition preserves all functional dependencies from the original relation |
| | 33 | * checking whether the decomposition has loss-less join properties |
| | 34 | |
| | 35 | Continue this process in step-wise manner until all relations are in a highest possible normal form while still preserving functional dependencies and preserving loss-less join properties. |
| | 36 | |
| | 37 | d) Final result and discussion |
| | 38 | |
| | 39 | Present the final normalized relational design with appropriate naming of the discovered relations. |
| | 40 | |
| | 41 | Discuss the differences between this relation design and the design from Phase 2 of the Project and on which will be used for the following Project phases. |
| | 42 | |
| | 43 | Restructure your database objects accordingly to the new design, update your Phase 2 Documentation. |
| | 44 | |
| | 45 | ----- |
| | 46 | |
| | 47 | **Documentation** |