Entity Relationship diagrams(ER-diagrams) are typically used in computing to organize data within databases and information systems. These graphical representations of entities and their relationships to each other are particularly useful during the conceptual-design and review phases of databases.
Often drag and drop software as to other programming languages are tedious to use, resulting in complex learning processes and time consumption. ERMaker is a high-level programing language developed as an alternative for drawing ER-diagrams.
ERmaker will allow the user to draw, through a console, the following major components of an ER-diagram:
Sample Code:
>> many Professor can teach many course
>> many Student take many Course
>> a university has many Student
>> a University Offers many Course
>> a University employs many Professor
>> Student composed of ID, Name, Phone
>> University composed of Name, Address
>> Professor composed of ID, Name
>> Course composed of Name, Subject, Section
The libraries that comprise the application are PLY and Graphviz . PLY contains the Yacc and the Lex modules that are used as the base for the implementation of the parser and lexer. Then, the Graphviz library was used to render the graphs by using raw dot language to describe them.
Our custom modules include ERLex, ERModel and ERGraph. The ERLex module contains the main code of the application, which implements the different elements of the language in the lexer using Lex and the grammatical elements using Yacc. The ERModel module contains the definition and implementation of the graph object used to store the model for the ER. It consists of methods to instantiate a graph and add, edit, and traverse through the nodes and edges, where nodes represent entities and edges represent relations.The ERGraph module contains the elements needed for the construction of the raw dot structure, required to draw the graph in graphviz.
ER Maker team is comprised of Luis Padro and Lumaris Rios. This project was developed as part of the Programming Language course (ICOM4036) directed by Dr. Wilson Rivera.