1 / 12

CS4221 Project

P04. CS4221 Project . Implement Bernstein’s algorithm. He Jingxiao ( A0087637N ) LeNhat Minh ( A0074403N ) Wang Zihao ( A0073222U ) Wu Shitong ( A0070050B ). Why do we need a CASE tool ?. Fast way to extract relations schema based on given functional dependencies.

auryon
Download Presentation

CS4221 Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. P04 CS4221 Project Implement Bernstein’s algorithm He Jingxiao ( A0087637N) LeNhat Minh ( A0074403N ) Wang Zihao ( A0073222U ) Wu Shitong ( A0070050B )

  2. Why do we need a CASE tool ? • Fast way to extract relations schema based on given functional dependencies. • Display the results of each decompose step.

  3. Web Application Tool

  4. Front-end • GUI & API • Server : http://54.251.192.210/index.php/bernstein/ • Language : PHP, JavaScript, html

  5. Input • Users input functional dependencies.

  6. Back-end • Perform normalization and synthesizing to 3rd normal form following Bernstein's algorithm: • Step 1: Eliminate extraneous attributes. • Step 2: Finding covering. • Step 3: Partition. • Step 4: Merge equivalent keys. • Step 5: Eliminate transitive dependencies • Step 6: Construct relations. • Language used : Java

  7. Back-end ( Enhancements in Bernstein’s algorithm) • Shortcoming 1: Bernstein’s algorithm does not guarantee reconstructibility (or losslessness). Output of example 3:

  8. High level logic to add new relation with key and loss attributes • 1. Find all the attributes from the previous relations • 2. Compare the attributes from last step with the original full attributes to retrieve the loss attributes • 3. Create a new Relation with any key and loss attributes

  9. Back-end ( Enhancements in Bernstein’s algorithm) • Shortcoming 2: Bernstein's algorithm does not always find all the keys

  10. High level logic to find all the keys • Find all the attributes • Get every combination of attributes • Check if the closure of the combination is all the attributes • Retain only keys

  11. Result Results are then fed back to the frond end

  12. THANK YOU

More Related