Presentation is loading. Please wait.

Presentation is loading. Please wait.

Relational Database Schema Designer: CASE tool

Similar presentations


Presentation on theme: "Relational Database Schema Designer: CASE tool"— Presentation transcript:

1 Relational Database Schema Designer: CASE tool
Teaching Aid for Bernstein’s Algorithm 02 April 2015 CS4221 project presentation - by Group 03 Liu Wei Ran Lu Nan Wu Long Zhao Yue

2 Agenda Objective Bernstein’s Algorithm and its shortcomings
Implementation New Features Future work Demo

3 Objective Implementation of enhanced Bernstein’s Algorithm
Teaching aid with interactive user interface

4 Bernstein’s Algorithm
Bernstein’s Algorithm was invented by Bernstein Philip in 1976 The algorithm consists of 6 steps Produce 3NF with the fewest number of relations

5 Bernstein’s Algorithm
Given a relational schema R and a set of functional dependencies F Step 1: Eliminate extraneous attributes from the left side of each FD in F to produce G. Step 2: Find a non-redundant covering of G. Step 3: Partition G into groups such that all FDs have identical left side in each group. Step 4: Merge equivalent keys if left sides have the bijection relation to create J. Step 5: Eliminate transitive dependencies. Step 6: Construct relation consisting of all the attributes appearing in each group.

6 Shortcomings It does not guarantee losslessness.
It does not find all the keys. It does not remove all the superfluous attributes. Relations produced depends on the non-redundant covering found. BCNF schema may contain superfluous attributes.

7 Implementation Step 1 [find_minimal_cover] : Step one and two, eliminate extraneous attributes and find covering. INPUT : <__G>, the set of functional dependencies RETURN : <__H>, the minimum cover of the input functional dependencies

8 Implementation Step 2 [partition] : Step three, partition the minimum cover <__H> into groups that has identical left sides INPUT : <__H>, the minimum cover RETURN : <__partitioned_fds_list>, all the groups of partitioned functional dependency list

9 Implementation Step 3 [merge_keys] : Step four, merge equivalent keys.
INPUT : <__partitioned_fds_list> and <__H> RETURN : <__merged_fds_list>, all merged groups of functional dependency list

10 Implementation Step 4 [eliminate_transitive_fds] : Step five, find and remove transitive dependencies for the input. INPUT : <__merged_fds_list> RETURN : <__final_fds_list>, the finalized group of functional dependency list

11 Implementation Step 5 [contruct_relations] : Step six, construct relational schema for each groups. INPUT : <__final_fds_list> RETURN : <__relations>, all the relational schemas

12 New Features Losslessness Checker Superfluous Attribute Checker
Candidate Key Finder

13 Losslessness Checker AB -> CD, A -> CD Schema A C B D

14 Candidate Key Finder AD -> B, B -> C, C -> D, AB -> E, AC -> F Left Middle Right [‘A’] [‘B’, ‘C’, ‘D’] [‘E’, ‘F’] ‘A’, ‘AB’, ‘AC’, ‘AD’, ‘ABC’, ‘ABD’, ‘ACD’

15 Superfluous Attribute Checker
[superfluous_attribute_detection_algorithm] : Check whether a given attribute is a superfluous in a relational schema. INPUT : <relations> : The input relational schemas <G> : The original functional dependency list <test_relation> : A relation that is in the input relational schemas <relations> <test_attribute> : The attribute that need to be tested for <test_relation> RETURN : True if the <test_attribute> is superfluous in <test_relation>, False if it is not

16 Future work UI improvement
Solve shortcoming 4 by using superfluous attribute checker to check every attributes in all possible covers found, to get the best relations results.

17 Demo

18 Q&A Presentation by Zhao Yue Wu Long Liu Wei Ran Lu Nan

19 Thank You! Presentation by Zhao Yue Wu Long Liu Wei Ran Lu Nan


Download ppt "Relational Database Schema Designer: CASE tool"

Similar presentations


Ads by Google