final document - group assignment

66
Group Assignment Helpdesk Case Study Acknowledgement First we would like to thank Dr. Damith Mudugamuwa for the guidance given to us for this subject. As a group all of us worked very hard and many of our colleagues also assisted us when doing the development of the system, and special thank you goes out to all of them. Next we would like to thank APIIT administration, library and computer lab staff who has helped us in many different ways to complete this assignment. CM30067-M Enterprise Database System Page 1 of 66

Upload: nuwan-bandara

Post on 12-Nov-2014

108 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Acknowledgement

First we would like to thank Dr. Damith Mudugamuwa for the guidance given to us for

this subject.

As a group all of us worked very hard and many of our colleagues also assisted us when

doing the development of the system, and special thank you goes out to all of them.

Next we would like to thank APIIT administration, library and computer lab staff who

has helped us in many different ways to complete this assignment.

CM30067-M Enterprise Database System Page 1 of 51

Page 2: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Table of Content

Acknowledgement...............................................................................................................1

Table of Figures...................................................................................................................2

1.0 Introduction....................................................................................................................2

2.0 Scenario.........................................................................................................................3

3.0 Analysis.........................................................................................................................4

4.0 Design............................................................................................................................4

4.1 Entity Relationship Diagram.....................................................................................4

4.2 Normalisation............................................................................................................8

4.3 Table Structures.......................................................................................................10

4.4 SQL Statements.......................................................................................................11

5.0 Implementation............................................................................................................11

5.1 System Development Details...................................................................................11

5.2 System requirements................................................................................................11

5.3 Deployment..............................................................................................................11

6.0 Proposed System Features...........................................................................................12

7.0 Testing.........................................................................................................................32

7.1 System Functional Testing......................................................................................32

7.2 Front-end Testing.....................................................................................................32

7. 3 Database Testing.....................................................................................................32

8.0 Reports.........................................................................................................................33

9.0 Conclusion...................................................................................................................40

10.0 Work Load Matrix.....................................................................................................41

References..........................................................................................................................42

Appendix A........................................................................................................................43

Table of Figures

Figure 1: Entity Relationships Diagram with M:N relationships…………………………6

Figure 2: Entity Relationships Diagram with resolved M:N relationship………………...7

CM30067-M Enterprise Database System Page 2 of 51

Page 3: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

1.0 Introduction

The purpose of this assignment is to create a computer system to log and track the all

helpdesk queries. The system development of the group was based on this requirement.

The developed system is readily capable of managing all queries as required by the

company, provide security to the data by allowing only authorized users to access the

system and is also able to generate 5 important reports which are listed below, for the

purpose of assisting the analysis of the helpdesk operations.

1. All previous issues of a particular type to see if the same issue has occurred

before and if so how it was solved

2. All previous issues with the same caller to identify if there were other related

issues that may give some clue as to how the current issue can be solved

3. Each Engineers workload

4. All outstanding/unsolved issues within a issue type

5. All outstanding/unsolved issues currently assigned to a specialist

The development of the system comprised of many important stages as listed below

1. Analysing the case study

2. Identifying important entities and preparation of the ER diagram

3. Preparation of the Relational schema and Normalization

4. Preparation of DDLs

5. Data insertion

6. System Interface design

7. Coding

8. Testing

The report submitted contains the outputs of many of the stages listed above. Based on

the above scenario we decided to develop a web based system as in our opinion the most

suitable. We refer to the system as “Issue Manager”

Note: All “Problems” mentioned in the case study is referred to as “Issue” in the system.

CM30067-M Enterprise Database System Page 3 of 51

Page 4: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

2.0 Scenario

It is a Malaysian company with a large IT function who is trying to set up an IT Helpdesk

to hardware and software issues concerning its IT system. A computer system is needed

to log and track all helpdesk queries, which will help analysis to determine how the

equipment is performing overall. Whenever anyone within the company has a problem

they can contact the helpdesk. One of the helpdesk operators will deal with the enquiry

him or herself if possible, and if not will be passed on to a one of a number of specialists

who specialises in different areas. All information regarded to the above process is

recorded in the system. Following sections outline the steps which were followed in

eventually designing an overall system which records all IT issues.

3.0 Analysis

System analysis was mainly carried out based on the details given in the case study.

Apart from that other relevant facts and assumptions made based on the general

experiences and points came out in the team discussions.

Assumptions

- Due to time restrictions did not implement interfaces to assign employee issue

specialisation. Therefore we assume that administrator will assign it through

the table EMPLOYEE_ISSUE_TYPE

- Does not keep the history of particular issue’s responsibility transfer from one

engineer to the other but by adding comments this purpose can be

accomplished.

- All H/W has a serial number pasted on them for easy reference to the caller.

- When an Issue is solved a comment is always added by the specialist or

operator which will record the issue solved date and time

- Issues are always closed by the assigned person.

- Problems will be referred to as Issues and Problem Areas as Issue Types

CM30067-M Enterprise Database System Page 4 of 51

Page 5: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

4.0 Design

4.1 Entity Relationship Diagram

Figure 1: Entity Relationships Diagram with M: N relationships

Figure 2: Entity Relationships Diagram with resolved M: N relationship

CM30067-M Enterprise Database System Page 5 of 51

Page 6: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

CM30067-M Enterprise Database System Page 6 of 51

Page 7: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

CM30067-M Enterprise Database System Page 7 of 51

Page 8: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

4.2 Normalisation

UN-NORMALIZED SCHEMA

EMPLOYEE (EMPLOYEE_ID, JOB_TITLE, FIRST_NAME, LAST_NAME, DEPARTMENT_ID, DEVISION)

DEPARTMENT (DEPARTMENT_ID, NAME, DESCRIPTION) HARDWARE (HARDWARE_ID, SERIAL_NO, DESCRIPTION, PART1, PART2, PART3)SOFTWARE (SOFTWARE_ID, NAME, DESCRIPTION, VERSION, SERIAL_NO,

LICENSED)ISSUE (ISSUE_ID, ISSUE_TYPE_ID, ISSUE_SUMMARY, DESCRIPTION,

DATE_OF_CALL, TIME_OF_CALL, OPERATOR_ID, CALLER_ID, SOFTWARE_ID_HARDWARE_ID, SEVERITY, RESPONSE_DATE, STATUS, ASSIGNED_TO, COMMENT1, COMMENT2, COMMENT3)

ISSUE_TYPE (ISSUE_TYPE_ID, ISSUE_TYPE, DESCRIPTION)EMPLOYEE_ISSUE_TYPE (EMPLOYEE_ID, ISSUE_TYPE_ID)SOLUTION (SOLUTION_ID, SUMMARY, STEPS)USER (EMPLOYEE_ID, USER_NAME, PASSWORD)

FIRST NORMAL FORM – No Repeating Groups

EMPLOYEE (EMPLOYEE_ID, JOB_TITLE, FIRST_NAME, LAST_NAME, DEPARTMENT_ID, DEVISION)

DEPARTMENT (DEPARTMENT_ID, NAME, DESCRIPTION) SOFTWARE (SOFTWARE_ID, NAME, DESCRIPTION, VERSION, SERIAL_NO,

LICENSED)ISSUE_TYPE (ISSUE_TYPE_ID, ISSUE_TYPE, DESCRIPTION)EMPLOYEE_ISSUE_TYPE (EMPLOYEE_ID, ISSUE_TYPE_ID)SOLUTION (SOLUTION_ID, SUMMARY, STEPS)USER (EMPLOYEE_ID, USER_NAME, PASSWORD)

HARDWARE (HARDWARE_ID, SERIAL_NO, DESCRIPTION, PART)ISSUE (ISSUE_ID, ISSUE_TYPE_ID, ISSUE_SUMMARY, DESCRIPTION,

DATE_OF_CALL, TIME_OF_CALL, OPERATOR_ID, CALLER_ID, PRODUCT_ID, SEVERITY, RESPONSE _DATE, STATUS, ASSIGNED_TO, COMMENT)

SECOND NORMAL FORM – Eliminating Redundant Data

EMPLOYEE (EMPLOYEE_ID, JOB_TITLE, FIRST_NAME, LAST_NAME, DEPARTMENT_ID, DEVISION)

DEPARTMENT (DEPARTMENT_ID, NAME, DESCRIPTION) SOFTWARE (SOFTWARE_ID, NAME, DESCRIPTION, VERSION, SERIAL_NO,

LICENSED)ISSUE_TYPE (ISSUE_TYPE_ID, ISSUE_TYPE, DESCRIPTION)EMPLOYEE_ISSUE_TYPE (EMPLOYEE_ID, ISSUE_TYPE_ID)

CM30067-M Enterprise Database System Page 8 of 51

Page 9: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

SOLUTION (SOLUTION_ID, SUMMARY, STEPS)USER (EMPLOYEE_ID, USER_NAME, PASSWORD)

HARDWARE (HARDWARE_ID, SERIAL_NO, DESCRIPTION, PART_ID)HARDWARE_PART (HARDWARE_ID, PART_ID, SERIAL_NO, DESCRIPTION)ISSUE (ISSUE_ID, ISSUE_TYPE_ID, ISSUE_SUMMARY, DESCRIPTION,

DATE_OF_CALL, TIME_OF_CALL, OPERATOR_ID, CALLER_ID, PRODUCT_ID, SEVERITY, RESPONSE_DATE, STATUS, ASSIGNED_TO¸ COMMENT_ID)

ISSUE_COMMENT (ISSUE_ID, COMMENT_ID, COMMENT, DATE, COMMENTED_BY)

THIRD NORMAL FORM – Eliminate Data Not Dependent On Key

EMPLOYEE (EMPLOYEE_ID, JOB_TITLE, FIRST_NAME, LAST_NAME, DEPARTMENT_ID, DEVISION)

DEPARTMENT (DEPARTMENT_ID, NAME, DESCRIPTION) SOFTWARE (SOFTWARE_ID, NAME, DESCRIPTION, VERSION, SERIAL_NO,

LICENSED)ISSUE_TYPE (ISSUE_TYPE_ID, ISSUE_TYPE, DESCRIPTION)EMPLOYEE_ISSUE_TYPE (EMPLOYEE_ID, ISSUE_TYPE_ID)SOLUTION (SOLUTION_ID, SUMMARY, STEPS)USER (EMPLOYEE_ID, USER_NAME, PASSWORD)

HARDWARE (HARDWARE_ID, SERIAL_NO, DESCRIPTION, PART_ID)HARDWARE_PART (HARDWARE_ID, PART_ID, SERIAL_NO, DESCRIPTION)ISSUE_COMMENT (ISSUE_ID, COMMENT_ID, COMMENT, DATE, COMMENTED_BY)ISSUE (ISSUE_ID, ISSUE_TYPE_ID, ISSUE_SUMMARY, DESCRIPTION,

DATE_OF_CALL, TIME_OF_CALL, OPERATOR_ID, CALLER_ID, PRODUCT_ID, SEVERITY, STATUS, COMMENT_ID)

ISSUE_TASK (ISSUE_TYPE_ID, RESPONSE_DATE, ASSIGNED_TO, ASSIGNED_BY)

CM30067-M Enterprise Database System Page 9 of 51

Page 10: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

4.3 Table Structures

CM30067-M Enterprise Database System Page 10 of 51

Page 11: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

4.4 SQL Statements

SQL statements of all Table creations, Views, Functions, Primary and Foreign Key creations are

included in Appendix A.

5.0 Implementation

5.1 System Development Details

Environment Windows Programming Technology ASP.NET, C#DBMS SQL Server 2000

5.2 System requirements IIS Web Server is required to deploy and run the Web Based System

.NET Framework Components are required in the Server where IIS Web Server

runs.

SQL Server 2000 DBMS

5.3 Deployment Deploy the IssueManager system in IIS

Attach the IssueManager database

If the deployment is successful system can be accessed through

http://<servername>:<port>/IssueManager/Login.aspx

Note: - ApplicationMessage file under ..\IssueManager\App_GlobalResources directory

following tag consists of database connection string. Please change the server, uid and

pwd accordingly.

<data name="CONNECTION_STRING" xml:space="preserve"> <value>server=.;database=IssueManager;uid=sa; pwd =sasql</value> <comment>connectionString</comment> </data>

CM30067-M Enterprise Database System Page 11 of 51

Page 12: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

6.0 Proposed System Features

Below is a guideline on how to Record and Edit Issues to show the progress

Login Page – Enter User Name and Password of the person login and click on “Login” Ex: - User Name: Vindya Password: password123

If successfully logged in Issue Summary Page will be displayed

CM30067-M Enterprise Database System Page 12 of 51

Page 13: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

To Create an Issue Click on “Create Issue” and the following page will be displayed

Enter all relevant information as shown below and click on the “Assign” button

CM30067-M Enterprise Database System Page 13 of 51

Page 14: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

All Engineers that are available are shown for the operator to select the relevant engineer to assign the issue to

Skills which each engineer specialise in can be viewed by clicking on the “Select” link for each specialist under “Show Skills”

CM30067-M Enterprise Database System Page 14 of 51

Page 15: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

CM30067-M Enterprise Database System Page 15 of 51

Page 16: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Select the appropriate Engineer and Click on “Save”

CM30067-M Enterprise Database System Page 16 of 51

Page 17: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Once the issue is recorded successfully it will return to the Issue Summary page where you can view the issue just recorded. In the issue summary table it will record the Issue ID, Issue Summary, Reported Date and Time, Caller Name (Reported By), Specialist Name (Assigned To), Operator Name (Recorded By), Severity and Status (Created, In Progress, Close)

Once the specialist logins to the system he/she can select the relevant issues assigned to them. To update the progress of the issue click on “Select” under “Edit”

CM30067-M Enterprise Database System Page 17 of 51

Page 18: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

When a specialist needs to update a particular issue with the progress made the create issue screen will be displayed again for editing

Specialist can change the status of the issue to “In Progress” and add a comment with the progress done and save the record as then it can be used in follow up calls to give the progress to the caller

CM30067-M Enterprise Database System Page 18 of 51

Page 19: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Once the comment is successfully added it will return to the Issue Summary page and the relevant issue can be selected again to view the comment just added. It will record the Name of the person who added the comment. (Login user name of the specialist)

CM30067-M Enterprise Database System Page 19 of 51

Page 20: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Follow up calls can also be accommodated in the same way. Commented by person will be the operator in this case

When an issue can be solved by the operator itself the flow of events will be as follows. When the issue is created the status can be straight away changed to “Close”

CM30067-M Enterprise Database System Page 20 of 51

Page 21: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Once the status is changed to “Close” the “Assign” button will automatically change to “Save” and the issue can be saved

Once the issue is saved successfully the below shown screen will be displayed

CM30067-M Enterprise Database System Page 21 of 51

Page 22: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Issue Summary page will be as below. Status of relevant issue is shown as closed

CM30067-M Enterprise Database System Page 22 of 51

Page 23: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Data Entering Forms

Entering Data to the Issue Type table. Click on “Add” Enter the relevant data and click on “Save”

CM30067-M Enterprise Database System Page 23 of 51

Page 24: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Entering Data to the Solutions table. Click on “Add” and enter the relevant data and then click on “Save”

CM30067-M Enterprise Database System Page 24 of 51

Page 25: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Enterting Data to the Hardware table. Click on “Add” Enter the relevant data and click on “Save”

CM30067-M Enterprise Database System Page 25 of 51

Page 26: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Entering Data to the Software table. Click on “Add” Enter the relevant data and click on “Save”

CM30067-M Enterprise Database System Page 26 of 51

Page 27: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Entering data to the Employee table. Click on “Add” Enter relevant data and click on “Save”

CM30067-M Enterprise Database System Page 27 of 51

Page 28: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Editing Data in the Solutions table. Select the appropriate Solution to Edit

CM30067-M Enterprise Database System Page 28 of 51

Page 29: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Click on the “Edit” Button and make the necessary changes

Once the changes are done click on the “Save” button

CM30067-M Enterprise Database System Page 29 of 51

Page 30: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Deleting a particular record in the Solutions table. Select the record to be deleted and click on “Delete”

Click on “Confirm Delete” if the record is to be deleted from the Database.

CM30067-M Enterprise Database System Page 30 of 51

Page 31: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Once the record is successfully deleted below shown screen will be displayed

Due to time constraints the Edit, Delete and Reset functions were implemented

only in the Solutions data entry form. Similar implementation needs to be applied

in other master data setup forms.

CM30067-M Enterprise Database System Page 31 of 51

Page 32: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

7.0 Testing

7.1 System Functional Testing

During the development module testing and system integration testing was done in the

developer level.

7.2 Front-end Testing

Application Testing was done to identify if error messages were displayed when

validations such as below were violated. In the Create Issue page Issue Summary,

Description, Issue reported time, Issue reported date, Software or Hardware serial number

cannot be blank else it will not allow for an issue to be assigned to an engineer. In the

Assign Issue to Engineer page an engineer has to be selected if not it will not allow for

the record to be saves successfully.

7. 3 Database Testing

Database Design testing was done to determine if Referential Integrity was enforced and

to ensure that any violations to it was not allowed. Testing done is as follows.

1. A record in the Issue Type table cannot be deleted when there is a referencing

record in the Issue table.

2. A record in the department table cannot be deleted when there are referencing

records in the Employee table

3. A record in the Software table cannot be deleted when there are referencing

records in the Issue table

4. A record in the Hardware table cannot be deleted when there are referencing

records in the Issue table

5. A record from the Employee table cannot be deleted when there are referencing

records in the Issue table under Operator_ID, Caller_ID and Assigned_To fields

6. A record in the Solution table cannot be deleted when there are referencing

records in the Issue table

CM30067-M Enterprise Database System Page 32 of 51

Page 33: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Testing was also done to ensure that no Primary Key violation was done by not entering a

Primary Key or by trying to duplicate an already existing record.

8.0 Reports

03 reports were developed to assist in the analysis of the Helpdesk operations

All previous issues of a particular type to see if the same issue has occurred before and if so how it was solved

Click on the link Issues and Solutions

Select the relevant Issue Type for which the report is required

CM30067-M Enterprise Database System Page 33 of 51

Page 34: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

As a result the following report will be displayed

All previous issues with the same caller to identify if there were other related issues that may give some clue as to how the current issue can be solved

Click on the link “Issues By Caller”

CM30067-M Enterprise Database System Page 34 of 51

Page 35: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Select the name of the caller

Report displayed will be as follows

CM30067-M Enterprise Database System Page 35 of 51

Page 36: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Each Engineers workload

Click on the link “Engineers Workload”

CM30067-M Enterprise Database System Page 36 of 51

Page 37: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

The following report will be displayed with the number of issues assigned to each specialist

Following 02 reports were also developed to display upon request

All outstanding/unsolved problems within a problem area/issue type

Click on the link “By Issue Type”

CM30067-M Enterprise Database System Page 37 of 51

Page 38: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

In the following page displayed select the relevant problem area which require analysis

As a result below report will be displayed in another window

CM30067-M Enterprise Database System Page 38 of 51

Page 39: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

All outstanding/unsolved problems currently assigned to a specialist

Click on the link “By Specialist”

Select the relevant specialist from the drop down list

CM30067-M Enterprise Database System Page 39 of 51

Page 40: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

As a result the below report will be displayed in a new window

CM30067-M Enterprise Database System Page 40 of 51

Page 41: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

9.0 Conclusion

After analysing the case study we were able to design and develop a SQL server database

to cater to the proposed solutions. At the end we designed and implemented a proper and

efficient database by following proper database design techniques such as Entity

Relationship Diagrams and Normalization.

To allow users to interact with the developed database, web based interfaces were crated

using ASP .NET and C#. This helps the users to easily enter, update, delete and retrieve

data from and into the database. Data integrity, consistency and redundancy were handled

by the DBMS properly since it was designed and implemented properly.

Further more this application can be improved in many ways in terms of features,

functionality and analysis/management reports. The current application developed is not

sufficient to utilise the full potential of the designed database scheme.

CM30067-M Enterprise Database System Page 41 of 51

Page 42: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

10.0 Work Load Matrix

ID Task Resource

1 Case Study Analysis Vindya, Leshani, Iroshini

  System Design  

2 System Design Vindya, Leshani

3 Front-end Design Vindya, Leshani, Iroshini

  Database Design  

4 Identify Entity, Attributes, Relationships Vindya, Leshani, Iroshini

5 Draw ER Diagram Leshani

6 Write Database Scheme Leshani, Vindya

7 Normalization Leshani, Vindya

  Database Development  

8 Create Table, View, Functions Vindya

9 Create Constraints Vindya

  System Development  

10 Front-end Development Leshani

11 Backend Development Leshani

  System Testing  

12 Front-end Testing Leshani, Vindya

13 Functional Testing Leshani, Vindya

  Documentation  

14 Documentation Vindya, Leshani, Iroshini

I hereby agree that the above mentioned workload matrix is correct

........................................... ........................................... ............................................ Leshani De Silva Vindya Withana Iroshini Amarapathy

CM30067-M Enterprise Database System Page 42 of 51

Page 43: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Bibliography

1. Korth and Silberschatz et. al., Database Systems Concepts, 2006, Osbourne McGraw Hill, ISBN: 007124476

2. Date, C. J., An Introduction to Database Systems, 2006, Pearson Education Asia

3. Database Normalisation Techniques. [Online] Available at: http://support.microsoft.com/kb/100139

[Accessed on: 25th February 2008]

4. Tutorial on Entity-Relationship Diagrams, February 2, 2007. [Online]Available at: http://www.ugrad.cs.ubc.ca/~cs304/2006W2/tutorials/er/answer.pdf [Accessed on: 25th February 2008]

5. Class and Entity-Relationship Diagrams. [Online]Available at:

http://www.cdf.toronto.edu/~csc340h/summer/tutorials/TutorialClassERD.pdf [Accessed on: 25th February 2008]

6. Microsoft - MSDN [Online]Available at: http://msdn2.microsoft.com/en-us/default.aspx [Accessed on: 01st March 2008]

7. ASP.NET [Online]Available at: http://www.asp.net/ [Accessed on: 01st March 2008]

CM30067-M Enterprise Database System Page 43 of 51

Page 44: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

Appendix A

All DDL statements of Tables, View and Functions creation and all Primary and Foreign Key creations are shown below

1. Tables

CREATE TABLE [dbo].[DEPARTMENT] ([DEPARTMENT_ID] [int] IDENTITY (1, 1) NOT NULL,[NAME] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[DESCRIPTION] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[EMPLOYEE] ([EMPLOYEE_ID] [int] IDENTITY (1, 1) NOT NULL ,[FIRST_NAME] [varchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[LAST_NAME] [varchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[JOB_TITLE] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[DEPARTMENT_ID] [int] NOT NULL,[DEVISION] [varchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[EMPLOYEE_ISSUE_TYPE] ([EMPLOYEE_ID] [int] NOT NULL,[ISSUE_TYPE_ID] [int] NOT NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[HARDWARE] ([HARDWARE_ID] [int] IDENTITY (1, 1) NOT NULL,[SERIAL_NO] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[NAME] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[HARDWARE_PART] ([PART_ID] [int] IDENTITY (1, 1) NOT NULL,[PART_NAME] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[SERIAL_NO] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[HARDWARE_ID] [int] NOT NULL ) ON [PRIMARY]

CM30067-M Enterprise Database System Page 44 of 51

Page 45: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

CREATE TABLE [dbo].[ISSUE] ([ISSUE_ID] [int] IDENTITY (1, 1) NOT NULL,[ISSUE_TYPE_ID] [int] NOT NULL,[ISSUE_SUMMARY] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[DESCRIPTION] [varchar] (250) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[DATE_OF_CALL] [datetime] NOT NULL,[TIME_OF_CALL] [datetime] NOT NULL,[OPERATOR_ID] [int] NOT NUL ,[CALLER_ID] [int] NOT NULL,[ASSIGNED_TO] [int] NOT NULL,[SEVERITY] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[STATUS] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[SOFTWARE_ID] [int] NOT NULL,[HARDWARE_ID] [int] NOT NULL,[COMMENT_ID] [int] NOT NULL,[SOLUTION_ID] [int] NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[ISSUE_COMMENT] ([ISSUE_ID] [int] NOT NULL,[COMMENT_ID] [int] IDENTITY (1, 1) NOT NULL,[COMMENT] [varchar] (150) COLLATE SQL_Latin1_General_CP1_CI_ASNOT NULL,[COMMENT_DATE] [datetime] NOT NULL,[COMMENTED_BY] [int] NOT NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[ISSUE_TASK] ([ISSUE_TYPE_ID] [int] NOT NULL,[RESPONSE_DATE] [datetime] NOT NULL,[ASSIGNED_TO] [int] NOT NULL,[ASSIGNED_BY] [int] NOT NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[ISSUE_TYPE]([ISSUE_TYPE_ID] [int] IDENTITY (1, 1) NOT NULL,[ISSUE_TYPE] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[DESCRIPTION] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]

CM30067-M Enterprise Database System Page 45 of 51

Page 46: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

CREATE TABLE [dbo].[SOFTWARE] ([SOFTWARE_ID] [int] IDENTITY (1, 1) NOT NULL,[NAME] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[DESCRIPTION] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[VERSION] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[SERIAL_NO] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_ASNOT NULL,[LICENSED] [bit] NOT NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[SOLUTION] ([SOLUTION_ID] [int] IDENTITY (1, 1) NOT NULL,[SUMMARY] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[STEPS] [varchar] (250) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]

CREATE TABLE [dbo].[USER] ([EMPLOYEE_ID] [int] NOT NULL,[USER_NAME] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[PASSWORD] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]

2. Primary Keys

ALTER TABLE [dbo].[EMPLOYEE_ISSUE_TYPE] WITH NOCHECK ADD CONSTRAINT [PK_EMPLOYEE_ISSUE_TYPE] PRIMARY KEY CLUSTERED ([EMPLOYEE_ID], [ISSUE_TYPE_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[DEPARTMENT] WITH NOCHECK ADD CONSTRAINT [PK_DEPARTMENT] PRIMARY KEY CLUSTERED ([DEPARTMENT_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[EMPLOYEE] WITH NOCHECK ADD CONSTRAINT [PK_EMPLOYEE] PRIMARY KEY CLUSTERED ([EMPLOYEE_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[HARDWARE] WITH NOCHECK ADD CONSTRAINT [PK_HARDWARE] PRIMARY KEY CLUSTERED ([HARDWARE_ID]) ON [PRIMARY]

CM30067-M Enterprise Database System Page 46 of 51

Page 47: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

ALTER TABLE [dbo].[HARDWARE_PART] WITH NOCHECK ADD CONSTRAINT [PK_HARDWARE_PART] PRIMARY KEY CLUSTERED ([PART_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[ISSUE] WITH NOCHECK ADD CONSTRAINT [PK_ISSUE] PRIMARY KEY CLUSTERED ([ISSUE_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[ISSUE_COMMENT] WITH NOCHECK ADD CONSTRAINT [PK_ISSUE_COMMENT] PRIMARY KEY CLUSTERED ([COMMENT_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[ISSUE_TASK] WITH NOCHECK ADD CONSTRAINT [PK_ISSUE_TASK] PRIMARY KEY CLUSTERED ([ISSUE_TYPE_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[ISSUE_TYPE] WITH NOCHECK ADD CONSTRAINT [PK_ISSUE_TYPE] PRIMARY KEY CLUSTERED ([ISSUE_TYPE_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[SOFTWARE] WITH NOCHECK ADD CONSTRAINT [PK_SOFTWARE] PRIMARY KEY CLUSTERED ([SOFTWARE_ID]) ON [PRIMARY]

ALTER TABLE [dbo].[SOLUTION] WITH NOCHECK ADD CONSTRAINT [PK_SOLUTION] PRIMARY KEY CLUSTERED ([SOLUTION_ID]) ON [PRIMARY]

3.0 Foreign Keys

ALTER TABLE [dbo].[EMPLOYEE] ADD CONSTRAINT [FK_EMPLOYEE_DEPARTMENT] FOREIGN KEY ([DEPARTMENT_ID]) REFERENCES [dbo].[DEPARTMENT] ([DEPARTMENT_ID])

ALTER TABLE [dbo].[EMPLOYEE_ISSUE_TYPE] ADD CONSTRAINT [FK_EMPLOYEE_ISSUE_TYPE_EMPLOYEE] FOREIGN KEY ([EMPLOYEE_ID]) REFERENCES [dbo].[EMPLOYEE] ([EMPLOYEE_ID]),CONSTRAINT [FK_EMPLOYEE_ISSUE_TYPE_ISSUE_TYPE] FOREIGN KEY ([ISSUE_TYPE_ID]) REFERENCES [dbo].[ISSUE_TYPE] ([ISSUE_TYPE_ID])

ALTER TABLE [dbo].[HARDWARE_PART] ADD CONSTRAINT [FK_HARDWARE_PART_HARDWARE] FOREIGN KEY ([HARDWARE_ID]) REFERENCES [dbo].[HARDWARE] ([HARDWARE_ID])

CM30067-M Enterprise Database System Page 47 of 51

Page 48: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

ALTER TABLE [dbo].[ISSUE] ADD CONSTRAINT [FK_ISSUE_EMPLOYEE_CALLER] FOREIGN KEY ([CALLER_ID]) REFERENCES [dbo].[EMPLOYEE] ([EMPLOYEE_ID]),CONSTRAINT [FK_ISSUE_EMPLOYEE_OPERATOR] FOREIGN KEY ([OPERATOR_ID]) REFERENCES [dbo].[EMPLOYEE] ([EMPLOYEE_ID]),CONSTRAINT [FK_ISSUE_HARDWARE] FOREIGN KEY ([HARDWARE_ID]) REFERENCES [dbo].[HARDWARE] ([HARDWARE_ID]),CONSTRAINT [FK_ISSUE_ISSUE_COMMENT] FOREIGN KEY ([COMMENT_ID]) REFERENCES [dbo].[ISSUE_COMMENT] ([COMMENT_ID]),CONSTRAINT [FK_ISSUE_ISSUE_TYPE] FOREIGN KEY ([ISSUE_TYPE_ID]) REFERENCES [dbo].[ISSUE_TYPE] ([ISSUE_TYPE_ID]),CONSTRAINT [FK_ISSUE_SOFTWARE] FOREIGN KEY ([SOFTWARE_ID]) REFERENCES [dbo].[SOFTWARE] ([SOFTWARE_ID]),CONSTRAINT [FK_ISSUE_SOLUTION] FOREIGN KEY ([SOLUTION_ID]) REFERENCES [dbo].[SOLUTION] ([SOLUTION_ID])

ALTER TABLE [dbo].[ISSUE] nocheck constraint [FK_ISSUE_ISSUE_COMMENT]

ALTER TABLE [dbo].[USER] ADD CONSTRAINT [FK_USER_EMPLOYEE] FOREIGN KEY ([EMPLOYEE_ID]) REFERENCES [dbo].[EMPLOYEE] ([EMPLOYEE_ID])

4. Views

CREATE VIEW dbo.VIEW_EMPLOYEE_SPECIALIZATIONAS SELECT E.EMPLOYEE_ID, EIT.ISSUE_TYPE_ID, IT.ISSUE_TYPE, IT.DESCRIPTION FROM dbo.EMPLOYEE E INNER JOIN dbo.EMPLOYEE_ISSUE_TYPE EIT ON E.EMPLOYEE_ID = EIT.EMPLOYEE_ID INNER JOIN dbo.ISSUE_TYPE IT ON EIT.ISSUE_TYPE_ID = IT.ISSUE_TYPE_ID

CM30067-M Enterprise Database System Page 48 of 51

Page 49: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

CREATE VIEW dbo.VIEW_ENGINEER_WORK_LOADAS SELECT dbo.EMPLOYEE.EMPLOYEE_ID, dbo.EMPLOYEE.FIRST_NAME, dbo.EMPLOYEE.LAST_NAME, dbo.EMPLOYEE.JOB_TITLE, COUNT (dbo.ISSUE.ASSIGNED_TO) AS NO_OF_ISSUES_ASSIGNEDFROM dbo.EMPLOYEE LEFT OUTER JOIN dbo.ISSUE ON dbo.EMPLOYEE.EMPLOYEE_ID = dbo.ISSUE.ASSIGNED_TOGROUP BY dbo.ISSUE.ASSIGNED_TO, dbo.EMPLOYEE.EMPLOYEE_ID, dbo.EMPLOYEE.FIRST_NAME, dbo.EMPLOYEE.LAST_NAME, dbo.EMPLOYEE.JOB_TITLE

CREATE VIEW dbo.VIEW_ISSUE_SUMMARYAS SELECT ISSUE_ID, ISSUE_SUMMARY, DATE_OF_CALL, dbo.FN_GET_EMPLOYEE_NAME_BY_ID (CALLER_ID) AS CALLER_NAME, dbo.FN_GET_EMPLOYEE_NAME_BY_ID (ASSIGNED_TO) AS ASSIGNED_TO,dbo.FN_GET_EMPLOYEE_NAME_BY_ID(OPERATOR_ID) AS OPERATOR_ID, SEVERITY, STATUSFROM dbo.ISSUE ICREATE VIEW dbo.VIEW_OUTSTANDING_ISSUESAS SELECT ISSUE_ID, ISSUE_TYPE_ID, dbo.FN_GET_ISSUE_TYPE_BY_ID (ISSUE_TYPE_ID) AS ISSUE_TYPE, ISSUE_SUMMARY, DESCRIPTION, DATE_OF_CALL, TIME_OF_CALL, dbo.FN_GET_EMPLOYEE_NAME_BY_ID(CALLER_ID) AS CALLER_NAME, dbo.FN_GET_EMPLOYEE_NAME_BY_ID(ASSIGNED_TO) AS ASSIGNED_TO, dbo.FN_GET_EMPLOYEE_NAME_BY_ID(OPERATOR_ID) AS OPERATOR_ID, SEVERITY, STATUS, dbo.FN_GET_SERIAL_NO_BY_ID(SOFTWARE_ID,HARDWARE_ID) AS SERIAL_NOFROM dbo.ISSUE IWHERE (STATUS <> 'Close')

CREATE VIEW dbo.VIEW_SOLUTIONS_BY_ISSUE_TYPE

CM30067-M Enterprise Database System Page 49 of 51

Page 50: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

AS SELECT ISSUE_ID, ISSUE_TYPE_ID, dbo.FN_GET_ISSUE_TYPE_BY_ID(ISSUE_TYPE_ID) AS ISSUE_TYPE, ISSUE_SUMMARY, DESCRIPTION, DATE_OF_CALL, TIME_OF_CALL, dbo.FN_GET_EMPLOYEE_NAME_BY_ID(CALLER_ID) AS CALLER_NAME, dbo.FN_GET_EMPLOYEE_NAME_BY_ID(ASSIGNED_TO) AS ASSIGNED_TO, dbo.FN_GET_EMPLOYEE_NAME_BY_ID(OPERATOR_ID) AS OPERATOR_ID, dbo.FN_GET_SOLUTION_STEPS_BY_ID(SOLUTION_ID) AS SOLUTION_STEPS, STATUS, dbo.FN_GET_SERIAL_NO_BY_ID(SOFTWARE_ID, HARDWARE_ID) AS SERIAL_NOFROM dbo.ISSUE I

3.0 Functions

CREATE FUNCTION FN_GET_EMPLOYEE_NAME_BY_ID(@EmployeeId int) RETURNS Varchar(40) AS BEGIN

DECLARE @EMPLOYEE_ID Varchar(20)SET @EMPLOYEE_ID = (SELECT FIRST_NAME FROM EMPLOYEE WHERE EMPLOYEE_ID = @EmployeeId)RETURN @EMPLOYEE_ID

END

CREATE FUNCTION FN_GET_ISSUE_TYPE_BY_ID(@IssueTypeId int) RETURNS Varchar(40) AS BEGIN

DECLARE @ISSUE_TYPE Varchar(20)SET @ISSUE_TYPE = (SELECT ISSUE_TYPE FROM ISSUE_TYPE WHERE ISSUE_TYPE_ID = @IssueTypeId)RETURN @ISSUE_TYPE

END

CREATE FUNCTION FN_GET_SERIAL_NO_BY_ID(@SW_ID int, @HW_ID int) RETURNS Varchar(40) AS BEGIN

DECLARE @SERIAL_NO_SW Varchar(20)DECLARE @SERIAL_NO_HW Varchar(20)DECLARE @SERIAL_NO Varchar(20)SET @SERIAL_NO_SW = (SELECT SERIAL_NO FROM SOFTWARE WHERE SOFTWARE_ID = @SW_ID)SET @SERIAL_NO_HW = (SELECT SERIAL_NO FROM HARDWARE WHERE HARDWARE_ID = @HW_ID)IF @SERIAL_NO_SW <> 'N/A'

SET @SERIAL_NO = @SERIAL_NO_SW

CM30067-M Enterprise Database System Page 50 of 51

Page 51: Final Document - Group Assignment

Group Assignment Helpdesk Case Study

IF @SERIAL_NO_HW <> 'N/A'SET @SERIAL_NO = @SERIAL_NO_HW

RETURN @SERIAL_NOEND

CREATE FUNCTION FN_GET_SOLUTION_STEPS_BY_ID(@Solution_ID int) RETURNS Varchar(200) AS BEGIN

DECLARE @STEPS Varchar(200)SET @STEPS = (SELECT STEPS FROM SOLUTION WHERE SOLUTION_ID = @Solution_ID)RETURN @STEPS

END

CM30067-M Enterprise Database System Page 51 of 51