GithubHelp home page GithubHelp logo

pehaikal / relational-databases-modeling Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 165 KB

A RDB model is a type of data model that determines the logical structure of a DB. ACID refers to four essential properties: Atomicity, Consistency, Isolation, and Durability. These features are the key differences between relational databases and non-relational databases.

License: Creative Commons Zero v1.0 Universal

course-project database-management education postgresql-database sql

relational-databases-modeling's Introduction

Project: Relational Databases - Modeling

This project is a part of the relational Databases evaluation at EPITA - School of Engineering and Computer Science.

Goal

This project is to find an appropriate CDM and PDM (Conceptual and Physical Data Model) to a “real world” problem, regarding data management. The main goal of this project is to find a model to represent the EPITA International Programs Database.

Pitch

The EPITA International Programs manage to welcome a lot of students, thanks to a powerful database (which you will have to remodel). The system is managed by admins, which operate the data through a web interface, they need to provide credentials to authenticate and access the application. Those credentials are stored in the database.

Before the students arrive at EPITA, they are seen as candidates by the system. A candidate provides minimal personal information, say, contact information. When the candidate pays its inscription, he/she is seen as “recruited” in the system. When the payment is complete, the candidate is promoted to a student.

To run the programs, the pedagogical admins are defining a curriculum for each program, allowing to define courses, with an associated duration. There are 5 programs (AIs, DSA, SE, ISM, CS), each of them will have its list of courses, even if courses can be in common across several programs. Each year, there are 2 intakes, with the same programs, but a different set of students assigned to them.

For each course, the admins need teachers. Teachers can be recruited internally in the school or among a list of referenced independent teachers. To operate the teachers’ payments, admins need to have contact information about teachers + their bank account reference. Every time a teacher is referenced, an email account is created and assigned to the new teacher. The email address is unique and not modifiable once created.

Each group is assigned a list of sessions (lectures), defined by the course they are covering, the teacher present (several teachers could cover the same course, but a teacher cannot give several sessions at the same time), the room (can be occupied by only one session at a time), the start datetime and the end datetime. The same session can be attended by several groups at the same time.

There can be different kind of sessions:

  • Regular on-campus lectures
  • Online lectures
  • Practical work (they are taking place in labs)
  • Exams

For each session, attendance is recorded, to list present and missing persons. On the attendance module, the teacher is seeing all the students, independently of their initial population.

For each course, it is possible to find at least 1 to several exams, an exam is qualified by its type (as of now, one of: quiz, practical work, project, oral presentation) and a weight for final evaluation calculation. Each exam can be given individually or in groups. Each exam will result in a grade, recorded in the system. The admins can see all the grades and attendance for one student through a “student report” page.

Deliverables

For this first part, you must provide 2 files:

  • An ER diagram (preferably crow foot notation) in png format with a good resolution.

  • An sql file containing your CREATE orders using the PostgreSQL syntax.

Bonus

  • Provide a third file containing INSERT statements to provide data for all the tables you have created.

  • Provide a fourth file containing SELECT statements providing the necessary information for the admins (read the text carefully).

relational-databases-modeling's People

Contributors

pehaikal avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.