New Project LTD
New Project LTD
Developed by
Page 1 of 20
NEW PROJECT LTD
Batch Code :
Page 2 of 20
NIIT
CERTIFICATE
This is to certify that this report, “Titled New Project Ltd.”, Embodies the original work
done by Sanooj Remegius in partial fulfillment of his/her course requirement at NIIT.
Page 3 of 20
ACKNOWLEDGEMENT
Page 4 of 20
SYSTEM ANALYSIS
System Summary: New Project Ltd. Is a company that provides staff on contract
for various project assignments it has a system of time cards. The cards are issued
to its employees. The time card enables New Project to prepare the final billing
that needs to be submitted to the clients for release of payment in lieu of work.
Page 5 of 20
ENTITIES
Number of entities: 6
Names of entities:
1. Client
2. Project
3. Employee
4. Time card
6. Invoice
Page 6 of 20
ATTRIBUTES
Attributes:
Entity Attributes
1. Client Client Code
Company Name
Address
Country
Contact Person
Phone
2. Project Project Code
Client Code
Employee Code
Project Name
Project Description
Estimate Bill
Start Date
End Date
3. Employee Employee Code
Employee Name
Address
Country
Work Phone
Billing Rate
4. Time Card Time Card ID
Employee ID
Date Issued
Date Worked
Project ID
Work Description
Billable Hours
Work Code
5. Time Card Expense File Time Card Expense ID
Time Card ID
Expense Date
Expense Amount
Expense Description
Project ID
Expense Code ID
Expense Code
Page 7 of 20
6. Invoice Payment Code
Payment Mode ID
Payment Mode Name
Corresponding Project Code
Expense Amount
Payment Amount
Payment Date
Card Number
Card Holders Name
Expiry Date of Card
Page 8 of 20
E/R DIAGRAM
Expiry Date of
Payment Card
Code
Card Card
Project Project Code
Number Holders
Invoice Description Project
Name Name
Payment
Amount Employee Start Date
Payment Expense Code
Date Amount
Client End Date
Receives Code
Project
Client
Code Estimate Bill
Designed
Company
Name
Billing Rate
Client Communicates Work Phone
Address
Done By
Country Contact Phone
Employee
Person Employee Code
Daily Fills
Employee
Country Address
Time Card Name
Employee ID
ID
Expense
Will Have Project ID
Code
Date
Issued Expense
Time Card Expense Code ID
Time Card
Date Payment Time Card Expense
Worked ID Expense
Date
Project ID Description
Number of Tables: 7
EMPLOYEE [Entity]
EMPLOYEE Payment Code
TIME CARD
TIME DETAILS
CARD [Entity]
DETAILS TIME CARD
TIME EXPENSE
CARD [Entity]
EXPENSE INVOICE [Entity]
Payment Mode ID
Employee Code
Time Card ID Time Card Expense ID Payment Mode Name
Employee Name
Employee ID Time Card ID Corresponding Project Code
Address
Date Issued Expense Date Expense Amount
Country
Date Worked Expense Amount Payment Amount
Work Phone
Project ID Expense Description Payment Date
Billing Rate
Work Description Project ID Card Number
Page 10 of 20
Billable Hours Expense Code ID Card Holders Name
Page 11 of 20
TABLES AFTER 1 NF
The Tables are already in 1 NF. The table structures are shown here.
Employee Name
Address
Country
Work Phone
Billing Rate
Page 12 of 20
TIME CARD DETAILS TIME CARD EXPENSE INVOICE
TIME CARD DETAILS TIME CARD EXPENSE INVOICE
Page 13 of 20
TABLES AFTER 2 NF
The tables are already in 2 NF as the attributes in each table depend on the primary key. The
table structures are shown here.
Employee Name
Address
Country
Work Phone
Billing Rate
Page 14 of 20
TIME CARD DETAILS TIME CARD EXPENSE INVOICE
TIME CARD DETAILS TIME CARD EXPENSE INVOICE
Page 15 of 20
TABLES AFTER 3 NF
In the Time Card Expenses table the Expense Code depends on Expense Code ID not on Time
Card Expense ID. Therefore, for the tables to be in 3 NF, we need to create another table,
Expenses.
Also in the Invoice table, the attribute Payment Mode Name depends on Payment Mode ID and
not on Payment Code. Therefore, we need to create a separate table Payment Modes.
In addition, the attributes Card Holders Name and Expiry Date of Card depend on Card Number
not Payment Code. Therefore we need to create another table Credit Cards.
End Date
Page 16 of 20
EMPLOYEE TIME
TIME CARD
CARD DETAILS TIME CARD EXPENSE
EMPLOYEE DETAILS TIME CARD EXPENSE
INVOICE
Payment ModeProject
Corresponding ID Code Credit Card Number
Payment Date
Card Number
Page 17 of 20
TABLES AFTER DENORMALIZATION
When we place the information about credit card in a separate table, the query performance
during the generation of payment receipt will get affected due to creation of joins in every
payment receipt. Therefore, for optimum performance, we denormalize and place the credit
card information back into the Invoice table. The updated table structures are shown here.
The primary and Foreign keys (whenever applicable) for each table are listed with their
respective table names:
CLIENT
o Primary Key: Client Code
PROJECT
o Primary Key: Project Code
o Foreign Keys: Client Code, Employee Code
PROJECT DETAILS
o Primary Key: Project Details ID
o Foreign Keys: Project Code, Client Code
EMPLOYEE
o Primary Key: Employee Code
TIME CARD DETAILS
o Primary Key: Time Card ID
o Foreign Keys: Employee ID, Project ID
TIME CARD EXPENSES
o Primary Key: Time Card Expense ID
INVOICE
o Primary Key: Payment Code
o Foreign Keys: Payment Mode ID, Project Code, Expense Amount
EXPENSES
o Primary Key: Expense Code ID
o Foreign Keys: Project ID, Expense Amount
PAYMENT MODES
o Primary Key: Payment Mode ID
Page 19 of 20
INVOICE
CLIENT PAYMENT MODES
PROJECT DETAILS Payment Code
Client Code Payment Mode ID
Project Details ID Payment Mode ID
Company Name Payment Mode Name
Project Code Corresponding Project Code
Address
Project Code
Date Worked
Client Code
Project ID
Page 20 of 20