Project scenario

You have been tasked to design a database system that manages customers, projects, employees, user groups and roles for an IT company. given an ER model and based on that, you have to create a relational model and make various plans and decisions regarding the database system. These plans need to be documented and presented to the company owners, who have to accept them, before your team can start building the database system.

Consider the following when making your desicisions:


ER model

 


Your task

Create a document that describes the following:

  1. Relational model or database schema based on the ER model
  2. Integrity rules
    1. Define ON UPDATE and ON DELETE rules for Project, Customer, User group, and Employee
  3. Partitioning
    1. Define at least two different ways to partition the data. Justify your decisions.
  4. Access rights for users
    1. Define access rights using PostgreSQL syntax using the following knowledge:
      Each user group has access to the project they work on
  5. Management of values
    1. Define default values 
    2. Define check constraints
    3. Define how to manage NULL values 
  6. Triggers and a trigger graph
    1. Create at least three different (and useful) triggers using PostgreSQL syntax.
    2. Draw a trigger graph
  7. Security issues and measures
    1. Come up with at least three different security issues and have a counter measure for each.
  8. Backup and recovery, database disaster plan
    1. Define the backup method and schedule. Justify your decisions.
    2. Come up with at least three realistic disasters and one extremely unlikely disaster.
    3. Define the recovery method from the disasters.

Usage of images and graphs is recommended. The report should be 5-10 pages long.