Professional Documents
Culture Documents
Group Assignment
Intake Code:
GF1131COM / GF1171COM
Submitted To:
Mr. Thangavel Saravanan
Submitted By:
Prasanga Wadanambi (CB003340)
Nilushi Silva (CB003423)
Eeshwaren Veerabahu (CB003120)
Date Assigned:
22nd August 2011
Date Due:
7th October 2011
GF1131COM / GF1171COM
Acknowledgment
It would be most appropriate first to have this opportunity to express our sincere thanks
for the people who guide and encourage throughout this project.
We sincerely thank our lecturer Mr. Thangavel Saravanan for all his support and passion
towards guiding us and providing assistance to clarify our doubts.
Next we sincerely thank our friends who had always been around to support us. Finally
would like to express or sincere gratitude for all people who gave their massive support
to make this project a success.
GF1131COM / GF1171COM
Table of Contents
Acknowledgment...............................................................................................................ii
List of Figures...................................................................................................................vi
1 Introduction.....................................................................................................................1
1.1 Project Scenario........................................................................................................1
1.2 Assumptions.............................................................................................................2
2 Conceptual Modeling......................................................................................................3
2.1 Entity Relationship Diagram....................................................................................3
2.1 Relational Mode.......................................................................................................4
3 Normalization..................................................................................................................6
3.1 First Normal Form (1NF).........................................................................................6
3.2 Second Normal Form (2NF)....................................................................................6
3.3 Third Normal Form (3NF).......................................................................................7
4 Database Administration Strategies................................................................................8
4.1 Backup and Recovery Strategies..............................................................................8
4.2 Security Strategies....................................................................................................9
5 Database Features and Implementation.........................................................................10
5.1 Constraints..............................................................................................................10
5.2 Views......................................................................................................................14
5.3 Triggers...................................................................................................................14
5.4 Stored Procedures...................................................................................................15
5.5 Functions................................................................................................................17
5.5.1 User Defined Functions...................................................................................17
5.5.2 System Functions............................................................................................18
5.6 Transaction.............................................................................................................19
3
GF1131COM / GF1171COM
6 Optimization Strategies.................................................................................................23
6.1 General Strategies..................................................................................................23
6.1.1 Containment of the result set of a query by only returning columns that are
necessary for the client rather than returning all the columns in a table..................23
6.1.2 Minimalize the usage of DISTINCT clause....................................................23
6.1.3 Include SET NOCOUNT ON statement in the Stored Procedures.................23
6.1.4 Usage of Cursors efficiently............................................................................24
6.1.5
Non-clustered Index...................................................................................25
GF1131COM / GF1171COM
GF1131COM / GF1171COM
List of Figures
GF1131COM / GF1171COM
1 Introduction
1.1 Project Scenario
The solution developed is for a Malaysian company which revolves around important IT
related functions. The objective of the solution is to assist with the functions relating to
an IT Helpdesk, which would handle problems that might occur related to Computer
Hardware and Software within the company, which might cause a threat that will
interrupt the flow of IT systems functionality.
The most important task of the IT Helpdesk solution is to log and track the queries that
are directed at the IT Helpdesk. This information collected via this task will then be used
to as a reference for analysts to identify the overall performance and the efficiency of
both the equipments as well as the IT staff. The system would also provide the analysts
with information, which would allow them to determine whether the Helpdesk
specialists have sufficient resources to provide solution for problems in a given time
frame. A solution look up should be implemented by the system that would store
solutions for common problems, this solution look up will be used by the Helpdesk
Specialist as the main source of reference for arriving at solutions for problem, if a
problem pertains that has no solution in the solution look up ,the system is expected to
transfer, problem that could not be answered by the Helpdesk Specialist to an IT
Specialist, who then will analyze and solve the problem, while providing the Helpdesk
Specialist with an updated solution look up.
GF1131COM / GF1171COM
1.2 Assumptions
Discussed below are the assumptions that were made on the proposed database solution.
Solution look up is only updated by the specialist one the problem had been
solved.
If a new solution is found to a peculiar problem, that problem type, sub problem
and problem that is under that sub problem is identified according to the
diagnosis of only the specialist assigned for the job.
Specialist are for a particular specialist defined as per the specialist reques .
GF1131COM / GF1171COM
2 Conceptual Modeling
2.1 Entity Relationship Diagram
GF1131COM / GF1171COM
The entities in the proposed ERD are Department, Employee, Caller, Specialist,
Operator, Specialist_Area, Software, Equipment, Call_Log, Problem, Solution,
Solution_Lookup, Problem_Type, Problem_ Assign, Reference_Problem. In the
proposed ERD, Employee entity is a generalized entity and Operator, Caller and
Specialist entities are derived and specialized entities of employee entity. And since each
employee belongs to one department there is 1-to-many relationship between Employee
entity and Department entity. There is 1-to-many relationship between Operator and
Call_Log entity, where one operator can create 1 or more call logs. And also there is a
many-to-many relationship between Specialist and Specialist_Area entities where one
specialist may belong to one or more specialist areas while one specialist area having
one or more specialists. Each unsolved problems in Problem entity have 1-to-1
relationship with Problem_Assign table while each problem problems in Problem entity
have 1-to-1 relationship with Equipment entity. Software and Equipment entities have
many-to-many relationship, since one software can be installed in many equipments
while one equipment may include one or more software in it.
GF1131COM / GF1171COM
11
GF1131COM / GF1171COM
3 Normalization
According to Coronel et. al (2010, p.175) normalization is a process of correcting the
table design, to minimize the data duplications and data redundancy which leads to
increase efficiency and flexibility of the data in a database.
It is in INF
Every non key attributes are fully functional dependent on the key
attributes (primary key).
(Stephens, 2008)
This ER design is already in first normal form (1NF) and all the non key attributes in
fully dependent on primary keys defined in each table. Therefore second normal form
(2NF) can be skipped.
Functional Dependencies
Functional dependencies of the tables are shown below;
FD1: Dept_id - > Dept_name
FD2:
Emp_id
>
Emp_name,
Emp_designation, Dept_id
FD3: Spe_area_id - >Spe_area
12
Status,
Emp_phone,
Emp_mobile,
GF1131COM / GF1171COM
13
GF1131COM / GF1171COM
Backup Type
Schedule
Partial Backup
Full Backup
Report Generation
Differential backup
Database backup
Reports
SQL Server Agent is the tool which we propose to schedule the backup strategy of this
system.
We have selected Full backup with Differential backup as our main strategy because,
backup.
It takes less time and space than "Always Full", but more than
"Full+Incremental
Restoring is simpler than differential backup. (OrionSoftLab, 1999-2011)
14
GF1131COM / GF1171COM
15
GF1131COM / GF1171COM
GF1131COM / GF1171COM
Following are some implementation of Foreign Key constraint which is applied in the
proposed database.
//Primary key of Department table is the Foreign key of Equipment table
CREATE TABLE Equipment(
Eqp_id varchar(50) PRIMARY KEY,
Dept_id int Not Null,
Eqp_type varchar(100) Not Null,
Eqp_made varchar(100),
Eqp_serial_number varchar(100) Not Null,
FOREIGN KEY(Dept_id) REFERENCES Department(Dept_id)
);
//Primary key of Employee table is the Foreign key of Specialist table
CREATE TABLE Specialist(
Spe_id int PRIMARY KEY IDENTITY,
Emp_id varchar(20) Not Null,
FOREIGN KEY(Emp_id) REFERENCES Employee(Emp_id)
);
17
GF1131COM / GF1171COM
DEFAULT constraint
DEFAULT constraint allows to populate an default value from the database when the
input source is null. Therefore the default value specified will be populated to all the
new insertions which a specific value is not specified.
(W3schools, 2011)
DEFAULT constraint is used in several places is the database. The tables which have
used DEFAULT constraint are shown as follow:
//By default when a login account is created password is set to 123 and later user will be able change as
needed.
CREATE TABLE Login(
User_name varchar(20) PRIMARY KEY,
Emp_id varchar(20) ,
User_type varchar(10) Not Null CHECK(User_type in('Specialist','Caller','Operator')),
Pwd varchar(30) DEFAULT '123',
FOREIGN KEY(Emp_id) REFERENCES Employee (Emp_id)
);
//For each for a specific problem by default at 1st call count is set to 0 and when a follow up call receives
from a problem ID which is created earlir the count will be incremented.
CREATE TABLE Call_Log_Problem(
Call_log_id varchar(30) ,
Prob_id varchar(50) ,
Count_occur int DEFAULT '0',
PRIMARY KEY (Call_log_id,Prob_id),
FOREIGN KEY(Prob_id)REFERENCES Problem(Prob_id)
);
CHECK constraint
CHECK constraint enforces limit the values which are inserted to a field in the database.
CHECK constraints offers validity of a value can be measured through a logical
expression.
The proposed database uses check constraints for validate mobile number filed, to
validate the status fields, to validate user types filed, to validate call type field and etc.
Following are some implementation of CHECK constraints which is applied in the
proposed database.
18
GF1131COM / GF1171COM
19
GF1131COM / GF1171COM
5.2 Views
A virtual table which consists with columns from one or more tables is known as a view.
It stored in the database though the query of the table consists in an object in the same
database and derives it data from one or more tables.
As an example, below view query list all the equipments along with the department
name it belongs to.
ALTER VIEW EQPDEPT AS SELECT Dept_name, Eqp_type, Eqp_made FROM
Department JOIN Equipment ON Department.Dept_id=Equipment.Dept_id
GROUP BY Dept_name, Eqp_type, Eqp_made
SELECT * FROM EQPDEPT
5.3 Triggers
According to mysqltutorial.org (2008), trigger is a statement or a set of SQL statements
which is stored to be activated or fired when an event associating with a database table
occurs. The trigger can be fired for any event which could be for an Insert, Update, or
Delete. According to msdn.microsoft (2011) trigger also can be referred as stored
procedure due to the procedural format of the code. But the main difference of a trigger
compared to a stored procedure is that trigger is activated implicitly when event
performed in the specified table and stored procedure is explicitly to perform an activity.
According to msdn.microsoft (2011) triggers are mainly useful when implementing
business rules etc.
Check Solution
This trigger is implement for solution table in the database. When a solution is
inserted to the Solution table the trigger will get fired and it will update the problem
status in Problem table as 'yes'.
20
GF1131COM / GF1171COM
Acknowledgment message
CREATE TRIGGER trig_I_Soft
ON Software FOR INSERT
AS
BEGIN
PRINT 'New Software details has been updated'
END
CREATE TRIGGER trig_I_Equipment
ON Equipment FOR INSERT
AS
BEGIN
PRINT 'New Equipment details has been updated'
END
21
GF1131COM / GF1171COM
IF(@callType='New')
BEGIN
INSERT INTO Problem VALUES (@probID
,@callerID,@eqID,@opeID,@probTypeID,@note,@level,@refStatus,@probStatus)
END
ELSE if (@callType='Reference')
BEGIN
SELECT @eqpNewID=Eqp_id from Problem where Prob_id=@refProbID
INSERT INTO Problem VALUES (@probID
,@callerID,@eqpNewID,@opeID,@probTypeID,@note,@level,@refStatus,@probStatus)
INSERT INTO Reference_Problem VALUES (@probID ,@refProbID)
END
INSERT INTO Call_Log_Problem (Call_log_id,Prob_id) VALUES(@logID,@probID)
PRINT 'New Prroblem created successfully !';
22
GF1131COM / GF1171COM
5.5 Functions
Functions are mostly used to run frequently used logics. According to msdn.microsoft
(2011) there are mainly two types of functions as built-in functions and as user defined
functions. System functions are sub part of built-in functions in SQL server. The
function. The functions which have implemented in the proposed database are
mentioned as follow:
5.5.1 User Defined Functions
User defined functions are defined by the user and in-order to create functions user need
to get granted appropriate permissions.
Selected function which has implemented in the proposed database are as follow:
//This function is used to returns the problem resolved date and time if the problem is
resolved.
CREATE FUNCTION dbo.function_Resolve(@probID varchar(30))RETURNS datetime
AS
BEGIN
DECLARE @time datetime
IF Exists (SELECT * FROM Problem WHERE Prob_status='Yes' AND Prob_id=@probID)
SELECT @time=Resolve_time FROM Solution WHERE Prob_id=@probID
ELSE
SET @time='-'
RETURN @time
END
//This function is used in-order calculate the average resolve time of a specific problem
CREATE FUNCTION dbo.function_Duration(@typeID AS varchar(100)) RETURNS float
AS
BEGIN
DECLARE @avgTime float
IF exists (SELECT Duration FROM Solution_Lookup WHERE Prob_type_id=@typeID)
SELECT @avgTime=AVG(Duration) FROM Solution_Lookup WHERE Prob_type_id=@typeID
ELSE
SELECT @avgTime=Default_duration FROM Problem_Type WHERE Prob_type_id=@typeID
RETURN @avgTime
END
23
GF1131COM / GF1171COM
Purpose
GetDate ()
Dateadd
Datepart
24
GF1131COM / GF1171COM
5.6 Transaction
In the system, transactions are used in most queries where it required a rollback process
to restore the database into previous state. It is required to overcome issues occur due to
execution of invalid queries.
As an example, adding an employee is a task which requires the data insertion for
multiple tables. When an employee registers with the system, the data also need to insert
into Employee, Login and Caller/Specialist/Operator. If the process fails within that
duration, the database needs to rollback to its previous state. Therefore transaction
required in order to overcome such scenarios.
Given below are examples of transactions which we used in this system.
Add new Employee
This query inserts a new employee into the employee table as well as creates a login in
the Login table and adds the employee into table according to the user type.
ALTER PROCEDURE proc_NewEmployee (@empName varchar(50),@depName varchar(100),
@empPhone nvarchar(20),@empMobile nvarchar(20),@empDesignation varchar(50),@userType
varchar(10))
AS
DECLARE @empID varchar(20)
DECLARE @temp int
DECLARE @depID int
BEGIN TRANSACTION
BEGIN TRY
SELECT @temp=Convert(int,substring(Max(Emp_id), 2,10)) FROM
Employee
SET @temp = @temp+ 1;
SET @empID = 'E' + Convert(varchar(20), @temp);
SELECT @depID=Dept_id FROM Department WHERE
Dept_name=@depName
INSERT INTO Employee VALUES
(@empID,@empName,'Yes',@empPhone,@empMobile,@empDesignation,@depID)
INSERT INTO Login (User_name,Emp_id,User_type)
VALUES(@empID,@empID,@userType)
IF (@userType='Caller')
INSERT INTO Caller (Emp_id) values(@empID)
ELSE IF (@userType='Specialist')
INSERT INTO Specialist (Emp_id) VALUES(@empID)
ELSE
25
GF1131COM / GF1171COM
26
GF1131COM / GF1171COM
EXEC proc_NewProblem
@logID,@callerID,@eqpID,@opeID,@probTypeID,@note,@level,@refStatus,@probStatus,@callType ,
@refID, @probID OUTPUT
END
ELSE IF (@callType='Follow-Up')
BEGIN
SELECT @count=MAX(Count_occur) from Call_Log_Problem
where Prob_id=@followProbID
SET @count = @count+ 1;
INSERT INTO Call_Log_Problem
VALUES(@logID,@followProbID,@count)
END
ELSE
BEGIN
SET @refStatus ='Yes'
SET @probStatus='No'
EXEC proc_NewProblem
@logID,@callerID,@eqpID,@opeID,@probTypeID,@note,@level,@refStatus,@probStatus,@callType ,
@refID, @probID OUTPUT
END
PRINT 'Call successfully created !'
COMMIT
END TRY
BEGIN CATCH
RAISERROR ('Error adding the data values.Please check your inputs', 16,1 );
ROLLBACK
END CATCH
query
inserts
set
of
data
into
solution
table
as
27
well
as
to
GF1131COM / GF1171COM
IF (@empType='Specialist')
BEGIN
SELECT @speID=Spe_id FROM Specialist where Emp_id=@empID_Updater
END
ELSE IF (@empType='Operator')
BEGIN
SELECT @opeID =Ope_id FROM Operator where
Emp_id=@empID_Updater
END
ELSE
BEGIN
PRINT 'Operator ID or Specialist ID Not Found !'
END
INSERT INTO Solution(Prob_id,Ope_id,Spe_id,Sol_note,Resolve_time)
VALUES (@probID,@opeID,@speID,@solNote,GETDATE())
SELECT @solID=Sol_id from Solution where Prob_id=@probID
INSERT INTO Solution_Lookup_Solution (Lookup_id,Sol_id) VALUES
(@lookupID,@solID)
END TRY
BEGIN CATCH
RAISERROR ('Error adding the data values.Please check your inputs', 16,1 );
ROLLBACK
END CATCH
28
GF1131COM / GF1171COM
6 Optimization Strategies
As the name suggests Optimization Strategies are advanced techniques for efficient
server or database management. It is important that efficient management of the
database or server is addressed since; adopting these management techniques to optimize
a database will greatly satisfy the ever evolving IT infrastructure and network traffic.
Hence the following part of this report will discuss the Optimization strategies that are
very important for database optimization as well as the optimization strategies that we
implemented in developing this database.
29
GF1131COM / GF1171COM
User Defined Functions (UDFs) encapsulate a number of T-SQL statements, which can
be used again. This allows for reduced network traffic and code reusability. The
proposed solution uses UDFs to encapsulate T-SQL that helps to filter the result set in a
custom way.
6.1.6 Call objects using its fully qualified name.
This Optimization technique makes a significant contribution to Database Optimization.
When called by its full name which has four identifiers (server name, database name,
owner name and object name) an object in the server can react faster, in a situation
where there are multiple databases and owners, because calling an object by its full
name eliminates any confusion. Since when developing this solution, there were not
many databases in the server, hence it was identified that this optimization technique
will not make a significant difference.
6.1.7 Use stored procedures instead of heavy-duty queries.
Using stored procedure allows for reduced network traffic, because by implementing
stored procedure in the proposed solution we believe that the user; now needs to only
relay the stored procedure he wants to execute along with the parameters for that given
stored procedure hence this strategy allows for users to avoid using, complicated and
heavy resource consuming queries.
o Security aspect of using stored procedure
Stored Procedures can also be used to apply security measures by means
of designating users with the permission to use certain stored procedures
30
GF1131COM / GF1171COM
that deal with restricted data. Even though we havent implemented this
feature being that we have a number of important stored procedures, it is
very important this was highlighted under this topic.
Non-clustered Index
Non - Clustered Index allows for ordering the records in a logical manner.
31
GF1131COM / GF1171COM
32
GF1131COM / GF1171COM
7.1 Strengths
The database solution provided, has been developed in such a manner that,
measures with regard to assuring the relationships between tables are generalized
as well as specialized to obtain consistent and redundant free data.
Data has been Normalized up to 3rd normal form to support the strength
discussed above as well as achieve a clear view of the business logic from the
perspective of the system.
Accuracy level is high with the information entered into the system, since
validity of information has been achieved via the use of strict constraints
implemented within tables.
User Friendliness has been give great importance in the system by means of
requiring very little effort from the users to invoke functions. This is done by
automating the invoking of the function by methods such as stored procedure,
Triggers and user defined functions.
Views and reports were used to allow the user to obtain information in an
organized manner.
33
GF1131COM / GF1171COM
7.2 Limitations
Problem types are not addressed In-depth; this could prove to reduce the
exclusivity of a problem.
Problem is solved by problem level rather than first come first serve basis, which
would be the ideal when considering a large IT company.
34
GF1131COM / GF1171COM
8 Queries
8.1 Query No.1
Create a query to show which users have called more than twice within a weeks time at
any time during the last year, along with the specialist name assigned for the job.
--Call_log_time
CREATE FUNCTION dbo.ufnweekyearcheck(@date datetime) RETURNS bit
AS
BEGIN
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
@handles bit
@vardate datetime
@weeknum datetime
@currentyear datetime
@lastyear datetime
35
GF1131COM / GF1171COM
SET @cnthandles = 1
ELSE
SET @cnthandles = 0
RETURN @cnthandles
END
36
GF1131COM / GF1171COM
--returns the problem resolved date and time if the problem is resolved
CREATE FUNCTION dbo.function_Resolve(@probID varchar(30))RETURNS datetime
AS
BEGIN
DECLARE @time datetime
IF Exists (SELECT * FROM Problem WHERE Prob_status='Yes' AND Prob_id=@probID)
SELECT @time=Resolve_time FROM Solution WHERE Prob_id=@probID
ELSE
SET @time='-'
RETURN @time
END
SELECT Call_Log.Call_log_id AS 'Call Log ID',Call_Log.Call_log_time AS 'Call Log Date and Time'
,Problem.Prob_id AS 'Problem ID',Problem.Prob_status as 'Problem
Status',dbo.function_Resolve( Problem.Prob_id) AS 'Problem Resolved Date and Time'
FROM Call_Log,Problem,Solution,Call_Log_Problem
WHERE Solution.Prob_id=Problem.Prob_id AND Call_Log.Call_log_id=Call_Log_Problem.Call_log_id
AND Call_Log_Problem.Prob_id=Problem.Prob_id AND
dbo.function_Time(Call_Log.Call_log_id,Call_Log.Call_log_time)='1' AND Call_Log.Call_type='New'
37
GF1131COM / GF1171COM
38
GF1131COM / GF1171COM
SET @handlecount = 0
RETURN @handlecount
END
SELECT Call_Log_Problem.Prob_id as 'Problem
ID',Call_Log_Problem.Call_log_id as 'Call Log ID',Employee.Emp_id as
'Specialist ID' ,Employee.Emp_name as 'Specialist Name'
,Call_Log_Problem.Count_occur as 'Occurance of the Call'
from Call_Log,
Call_Log_Problem,Problem,Problem_Assign,Specialist,Employee
where Call_Log_Problem.Call_log_id=Call_Log.Call_log_id AND
Call_Log_Problem.Prob_id=Problem.Prob_id
AND Problem.Prob_id=Problem_Assign.Prob_id AND
Problem_Assign.Spe_id=Specialist.Spe_id
AND Specialist.Emp_id=Employee.
Emp_id
AND
dbo.ufnTimePeriod()='1'
39
GF1131COM / GF1171COM
40
GF1131COM / GF1171COM
41
GF1131COM / GF1171COM
9 Validations
'Specialist','Caller' and 'Operator' are only User types that can have on Login
table
User_type varchar(10) Not Null CHECK(User_type in('Specialist','Caller','Operator')),
Call type of the call log table can only have type 'Follow-Up or 'New' or
'Reference'
Call_type varchar(15) CHECK(Call_type in('Follow-Up','New','Reference')),
Exception Handling
Ex: ALTER PROCEDURE proc_AssignProblem(@probID varchar(50),@empID_Specialist
varchar(30),@assignNote varchar(225))
AS
BEGIN TRY
DECLARE @speID int,@speName varchar(100)
SELECT @speID=Spe_id FROM Specialist WHERE Emp_id=@empID_Specialist
SELECT
@speName=Emp_name
FROM
Employee
WHERE
Emp_id=@empID_Specialist
INSERT
INTO
Problem_Assign
(@probID,@speID,GETDATE(),@assignNote)
PRINT 'Problem successfully assigned to Specialist '+ @speName
END TRY
42
VALUES
GF1131COM / GF1171COM
BEGIN CATCH
RAISERROR ('Error adding the data values.Please check your inputs', 16,1 );
END CATCH
43
GF1131COM / GF1171COM
10 Test Plan
Employee Registration
Table 1: Test plan for Employee Registration
Test Case
1
Expected Result
values
Employee
display
Actual Output
message Message
displayed
be Added
fields.
Inserting different data to Should
to
the
number
Inserting
designation type
Successfully register
message Message
displayed
Invalid data
message Message
displayed
employee
display
different Should
display
message Message
displayed
Invalid input.
Invalid input.
a Should display message Message displayed New
New
Employee
created Employee
created
successfully
successfully
Occurrence of any other Should display message Message displayed Error
error
Error
adding
the
data adding
the
data
inputs
44
GF1131COM / GF1171COM
Add a Problem
Table 2: Test plan for Add a Problem
Test Case
1
Expected Result
Actual Output
Error
adding
the
data adding
the
data
Switching
tables
inputs
inputs
by If it is a new call it should Allows the user to add
new.
Switching
tables
adding
details.
by Should
allow
follow-up or reference.
Leaving
empty
or Should display message Message displayed Error
inserting different value Error
to problem status field
Inserting
character
adding
the
data adding
the
data
adding
the
data adding
the
data
Successfully
problem
adds
inputs
inputs
a Should display message Message
New
Problem
successfully
45
created New
displayed
Prroblem
successfully
created
GF1131COM / GF1171COM
Add a Solution
Table 3: Test Plan for Add a Solution
Test Case
1
Expected Result
Actual Output
Inserting
adding
the
data adding
the
data
values
inputs
message Message displayed Enter
solution
New
Solution
added New
successfully
Solution
added
successfully
Test Case
1
Expected Result
that
are
Error
adding
the
data adding
the
data
Actual Output
inputs
Type table)
Inserting different data Should display message Message displayed Error
for Specialist id fields.
(Type
that
are
Error
adding
the
data adding
the
data
table).
Inserting character value Should
inputs
display
Problem Lookup
New
GF1131COM / GF1171COM
Problem
added successfully
47
Lookup New
Problem
Lookup
added successfully
GF1131COM / GF1171COM
11 Conclusion
This project takes consideration of database functionalities of an automated helpdesk
system. The system database and related features of the database has created with use of
Microsoft SQL Server 2005. The proposed database design has addressed all the key
areas which could be able to cause data duplications and efficiency problems.
In-order to maintain the consistency of proposed Help desk database, the Entity
Relationship Diagram (ERD) which creates at the initial stage was normalized. The
normalized table structure ensures the logical relationships are in correct. Therefore the
table structure is mainly developed based on the ER diagram. Considering possibilities
of user inputs, the fields in the table structure of the database are validated with use of
constraints. These constraints will make sure that no invalid data is been entered to any
table.
Optimization of a database is an essential factor when considering of databases. It is
more required when large dataset is available. Therefore in this project optimization
strategies of a database is considered and several strategies are implemented in-order to
increase the efficiency and performance of the query retrieval.
The other main features which are implemented in this project are transactions, triggers,
views and stored procedures. If these features applied according to their necessity, these
features may enhance the performance of the database transactions. In this project
considering all the necessity, the key features are implemented. And finally the proposed
database solution for Help desk system is tested in-order to ensure that all the required
requirements met.
48
GF1131COM / GF1171COM
12 Reference
October 2011]
Stephens, R. (2008). Beginning Database Design Solutions , [Online] USA:
John Wiley and Sons , Available from: http://books.google.lk/books?
id=qGgpYBighBcC&pg=PA137&dq=what+is+normalization&hl=en&ei=HsNTp2bE4qyrAeM5GeAQ&sa=X&oi=book_result&ct=result&resnum=2&ved=0CDQQ6AEwAQ#
v=onepage&q=what%20is%20normalization&f=false [Accessed: 5th October
2011]
49
TechTarget.
(2009-2011).
GF1131COM / GF1171COM
Stored
Procedure
[Online]
http://searchoracle.techtarget.com/definition/stored-procedure
Available
[Accessed:
from:
2nd
October 2011]
W3school (2011) Constraints [Online]. Available from:
http://www.w3schools.com/sql/sql_constraints.asp [Accessed: 5th October 2011]
50
GF1131COM / GF1171COM
13 Appendix
13.1 Workload Matrix
Task
Prasanga
Nilushi
Eshwaran
33.3%
33.3%
33.3%
33.3%
33.3%
33.3%
33.3%
33.3%
33.3%
40%
30%
30%
35%
30%
35%
30%
33.3%
40%
33.3%
30%
33.3%
30%
40%
30%
33.3%
33.3%
30%
35%
30%
35%
33.3%
33.3%
33.3%
33.3%
30%
35%
30%
35%
33.3%
33.3%
33.3%
33.3%
40%
30%
40%
30%
33.3%
33.3%
the
problem
requirements
Identify the main processes
Workload Matrix
Logical Design
Develop ERD
Finalize
Entities,
Relationships and attributes
Normalize the ERD
Finalize the database
Physical Design
Create
Tables
and
Relationships
Constraints
Queries
Triggers
Stored Procedures
Optimization Strategies
Transactions
Testing
Documentation
Signature
51