This repository contains a naïve C implementation of a Relational DBMS, as required by the project specifications.
The project is evaluated in terms of correctness (output results) and efficiency (response time and occupied memory) on public and private test cases; for this particular implementation, the final score is 29/30.
The project goal is to implement a mechanism to monitor relationships between entities, which may change over time. The mechanism has to monitor the following events:
- A new entity begins to be monitored
- A monitored entity stops to be monitored
- A new relationship is established between two monitored entities
- An existing relationship between two monitored entities ceases to exist
The relations might not be symmetrical.
When the system receives a specific command, the application returns, for each relationship, the entity "receiving" more relationships.
The application receives commands from an input file. The possible commands are the following:
- addent<id_ent>: adds an entity identified by id_ent to the monitored entities;
- delent<id_ent>: removes the entity identified by id_ent from the monitored entities
- addrel<id_orig><id_dest><id_rel>: adds a relationship, identified by id_rel, from the entity id_orig to the entityid_dest
- delrel<id_orig><id_dest><id_rel>: removes a relationship, identified by id_rel, from the entity id_orig to the entityid_dest
- report: prints, for each relationship, the entities having the most entering relationships
- end signals the end of the input file
More information about the commands and the parameters syntax can be found here