Alan Counting, Edward Quals and Peter Rofit are in partnership in an accounting practice, CQR. The practice specialises in taxation, auditing and financial advice for small to medium sized clients. They started the practice in 2005 and it has grown to now employ 25 people. These employees include other accountants and office staff. Alan, Edward and Peter believe the practice is headed for a period of significant growth and have come to you to help them redevelop their Client Billing (CB) system so that it copes better with their workflows and supports future growth opportunities.
At the moment, when a client turns up for a scheduled appointment or when an accountant visits a client, the client's information is referenced using the client’s name. If it is the first contact between the practice and client, the client is asked to complete their details (i.e. name, address, contact name, contact number, ABN, TFN, structure, sector, service) on a client information form. Some of this information is optional based on the type of client and area they operate in. For example, some clients are simply salary and wage earners looking for assistance to complete tax returns and would not have an ABN, whilst others are companies requiring advice and assistance with the many different aspects of operating their business. Once the relevant information is obtained for a new client, a unique client number is allocated to the client.
The client is the legal entity being dealt with by the practice and clients are created based on their business structure type. A client record can only have one structure type. Examples include sole trader, individual, private company, partnership and trust. If for example, two individuals operate a business as a private company, and they want their company’s tax return completed as well as their own, a client record would be created for that private company and separate client records would be set up to deal with the affairs of each of the individuals. There are circumstances though where a legal entity sits within another but this is not obvious e.g. where the practice performs superannuation duties and compiles returns for a self-managed superannuation fund for an individual. In these circumstances, there are two client records - the individual and the superannuation fund.
Sectors are the broad categories that allow grouping of clients for reporting purposes. Examples include retail, construction, financial services, hospitality and manufacturing. Occasionally new sector categories are created and the practice would like to record these with their code and description in a CRICOS Provider No. 00103D ITECH1006/5006 Database Management Systems - Assignment 1 Specification Sem3 2014 (201427) Vn. 2 Page 2 of 7 separate table. They would also like to be able to record that a client may operate in none, one or more sectors. Services are the broad categories that the practice offers. Examples include auditing, taxation, financial planning, corporate advice and superannuation administration. The practice would like to be able to record that a client must use at least one service but may use a number of services.
The practice has a separate Human Resources (HR) system recording all employee details but for the purposes of billing, they record specific billing details about an employee within the CB system. This information is recorded based on the unique employee number assigned in the HR system. Within the CB system, all employees including Alan, Edward and Peter are given an employment domain, employee type, a charging/billing rate (see below) and an audit supervisor identifier. An employee may have multiple employment domains e.g. taxation, auditing, superannuation but only has one employee type e.g. accountant, administrator. The audit supervisor status refers to whether or not another employee is responsible for supervising and signing off on the audit of a client i.e. only the supervisor highest in the hierarchy is able to sign-off. Further details are recorded for each employee based on qualifications. An employee may have many qualifications and they may be specific to the particular employee type e.g. employees cannot have a public practice certificate unless they are an accountant. These qualifications should be chosen from a set rather than being separately keyed for each employee but they have had problems in their current system with ensuring the integrity of this data.
All contact with the client - appointments at the client or at the practice's offices, letters, emails, phone calls to and from the client, auditing and stocktaking at the client - is billable to the client. All work conducted on behalf of the client - completing tax, superannuation or BAS returns, preparing Profit and Loss and Balance Sheet statements for the various legal entities used by a client/s, reviewing legislation or communicating with statutory authorities on behalf of the client - is also billable to the client. All staff bill/charge in spans of 15 minutes. That is, they record the amount of time they work on a particular client by entering a starting date and time for the work they do, as well as a category of work (these are from a reference set common to many accounting practices and occasionally have new references added) and must charge a minimum time of 15 minutes and charge in multiples of this amount. When they have finished their particular activity, they key in an ending time. They always end any opened charges on the same day. An employee can work for and bill against none, one or many clients. Two or more employees could work together on a job and in such a case separate billing records would be created for each employee.
All employees as well as Alan, Edward and Peter have a charging rate which is the rate at which each individual is billed to the client. The charging rate is an hourly figure. The charging rates are reviewed yearly by Alan, Edward and Peter. Their review is based on consideration of:
(a) the experience and salary of employees;
(b) the overheads of the practice (some costs are not directly attributable to the client but are incurred as part of the running of the practice); and
(c) their hoped for profit and distributions to themselves as partners. Alan, Edward and Peter generally follow a process of determining the hourly charge/bill rate per employee based on the employee's salary and then multiply by the same factor for all to arrive at the final charge rate for the employee. You are not expected to provide the algorithm for this process but as noted below they would like to record the rate and time period for which it applies.
As well as charging employee time, the practice also on-charges for services or costs that are directly incurred on behalf of the client e.g. lodgement fees, penalties or fines.
At the end of each month the practice runs its monthly account run. The outstanding balance from the previous month for a client is obtained (stored previously), any payments or credits received are itemised, any work or on-costs performed for the client are also itemised and an outstanding balance for the client is calculated (stored) and included on the account. In some cases, summaries of accounts are also produced and an amalgamated account sent to an individual responsible for payment of a number of different billing clients. All these processes are handled by a separate, existing Accounts Payable (AP) system. You do not need to do anything in this assignment with respect to the monthly account run and this description is provided as background.
As part of their intended improvements, Alan, Edward and Peter would like their system to handle the following situations:
(a) For new and existing clients, the sector they operate in is recorded literally against each client rather than allowing for predefined categories to be used and therefore allow multiple categories to be assigned to the client. Alan, Edward and Peter believe if they could correctly record these categories they could identify growth areas with individual clients and within sectors themselves;
(b) Alan, Edward and Peter believe there is similar scope to offer add-on services to clients but the data recorded against the client is literal and does not align with the categorisation of services provided by the practice. Generally what is recorded is the 'service' the client originally contacted the practice to perform and because of this the practice may be unclear or missing out on offering other services the client would benefit from;
(c) Up to now the practice has not been able to keep historical employee charging rates - when the new rates are keyed in, the historical records are lost - as that information is not kept to that detail in the AP system. Alan, Edward and Peter would like this to change so that it is possible to record the rate per employee against a time period for which the rate applies. They would like this functionality to be in the CB system;
(d) The practice would like some idea of how clients 'fit together'. That is they would like to be able to understand how many clients they have that are related in some way but are separated by legal structures. This will assist them with understanding if they have missed out on any service opportunities with existing clients. For example they would like to be able to run a report that groups the three clients mentioned earlier – the private company and the two individuals. In such a case the two individual client records would ‘point’/‘link’ to the private company client record and the private company client record would link to no others. In each client record therefore there should be a relationship link attribute that allows this linking.
So now give those questions answers as according to all the current asspects:
(1) E-R diagram: adherence to our standard, assumptions made, inclusion of correct primary and foreign keys, appropriate entities, relationships, and attributes.
(2) Relational data structures: correct and meaningful translation of your E-R diagram.
(3) Normalisation: appropriate interpretation of each normal form, arguments for leaving the schema in the normal form you consider optimal.
(4) Conversion of E-R diagram to relational schema: schema is a correct translation of the E-R submitted with appropriate tables, columns, and primary keys
(1) E-R diagram
(2) Relational DataStructures
(A) It contains the different structures provided by CQR to the clients
(B) It contains the different sectors provided by CQR to group the clents
(C) It contains the different services provided by CQR to the clients
(D) ParentClientID is just to have link for individuals who are part of any private client.
primaryKey(ClientID, Sector, Service)
foreignKey(Structure) referenced by CQRStructureTypes(Structure)
foreignKey(Service) referenced by CQRStructureTypes(Service)
foreignKey(Sector) referenced by CQRStructureTypes(Sector)
(E) It contains information about different domains CQR supports
(F) It contains information about different employee types CQR supports
(G) It contains emploees information
foreignKey(EmploymentDomain) references to CQREmploymentDomains(EmploymentDomain);
foreignKey(EmpType) references to CQREmpTypes(EmpType);
(H) It contins the employee hour rates history
foreignKey(EmpID) references to CQREmployeesInfo(EmpID)
(I) It contains the work categories those can be done to client
(J) It contians the Client billing information
primaryKey(ClientID, EmpID, WorkCategory)
foreignKey(ClientID) references to CQRClientsInfo(ClientID)
foreignKey(EmpID) references to CQREmployeesInfo(EmpID)
(3) Normalisation of relations which identifies
(A) Many clients can be mapped to same strucure type
CQRClientsInfo ----many-one------> CQRStructureTypes
(B) same clients can be mapped many sectors and many clients mapped to many secotrs
CQRClientsInfo ----many-many------> CQRSecotrsTypes
(C) Same clients can be mapped many services and many clients mapped to many services
CQRClientsInfo ----many-many------> CQRServiceTypes
(D) Same employees mapped to many domains and many employees mapped to many domains
CQREmployeesInfo ----many-many------> CQREmploymentDomains
(E) Many employees mapped to one employee type
CQREmployeesInfo ----one-many------> CQREmpTypes
(F) One client mapped to many works and many clients mapped one work.
CQRClientBilling ----many-many------> CQRWorkCategories
(G) CQRClientsInfo is not in 1NF as address field is not atomic
CQRClientsInfo key (ClientID, Sector, Service), rest of the columns depending on ClientID which is part of the key. It is not in 2NF.
CQREmployeesInfo key (EmpID, EmploymentDomain), rest of the columns depending on EmpID which is part of the key. It is not in 2NF.
CQRClientBilling key (ClientID, EmpID, WorkCategory), rest of the columns depending on ClientID which is part of the key, it is not in 2NF.
Rest all other relations maintained in 3NF.
(4) Relational schema corrected to 3NF:
CQRClientsInfo(ClientID, Name, StreetName, City, Country, ContactNumber,
ABN, TFN, Structure, ParentClientID,
foreignKey(Structure) referenced by CQRStructureTypes(Structure));
foreignKey(Sector) referenced by CQRSectorsTypes(Sector));
foreignKey(Service) referenced by CQRServicessTypes(Service));
CQREmployeeHourRatesHostory(EmpID, StartDate, EndDate, BillingRate,
foreignKey(EmpID) references to CQREmployeesInfo(EmpID));
CQRClientBilling(ClientID, StartTime, EndTime,
foreignKey(WorkCategory) references to CQRWorkCategories(WorkCategory));
foreignKey(EmpID) references to CQREmployeesInfo(EmpID));