oracle helpdesk database shema

23
Veri Modelleme ve Iliskisel Veritabanlari Dersi Proje Dökümanı Bahceşehir Üniversitesi BEŞİKTAŞ ALPER TUNGA Veritabanı ve İlişkisel Veritabanları YZM5507 Murat Gülci Bu projede bir Helpdesk database’i tasarlandı ve oluşturuldu. Kullanıcıların takibi, problemlerin ve problemin geçmişinin takibi, envanter takibi ve Bilgi işlem çalışanlarının yeteneklerinin takibi yapılabilmesi sağlandı.Hazırlanan bütün sorgular, karşılaşılabilinecek gerçek senaryolar düşünülerek hazırlandı.

Upload: murat-guelci

Post on 25-Jun-2015

246 views

Category:

Technology


10 download

DESCRIPTION

Oracle ile helpdesk database hazırlamıştım zamanında. size de faydası olur diye yüklüyorum.

TRANSCRIPT

Page 1: Oracle helpdesk database shema

Veri Modelleme ve Iliskisel Veritabanlari Dersi

Proje Dökümanı

B a h c e ş e h i r Ü n i v e r s i t e s i

B E Ş İ K T A Ş

A L P E R T U N G A

V e r i t a b a n ı v e İ l i ş k i s e l

V e r i t a b a n l a r ı

Y Z M 5 5 0 7

Murat Gülci

Bu projede bir Helpdesk database’i tasarlandı ve

oluşturuldu. Kullanıcıların takibi, problemlerin ve problemin

geçmişinin takibi, envanter takibi ve Bilgi işlem

çalışanlarının yeteneklerinin takibi yapılabilmesi

sağlandı.Hazırlanan bütün sorgular, karşılaşılabilinecek

gerçek senaryolar düşünülerek hazırlandı.

Page 2: Oracle helpdesk database shema

1. Database E-R şeması

Page 3: Oracle helpdesk database shema

2. Database oluşturma

Query Result

CREATE TABLE "REF_EQUIPMENT_TYPES"

( "EQUIPMENT_TYPE_CODE" NUMBER(5,0),

"EQUIPMENT_TYPE_DESCRIPTION" VARCHAR2(50),

PRIMARY KEY ("EQUIPMENT_TYPE_CODE") ENABLE

) ;

Query Result

CREATE TABLE "REF_SKILL_CODES"

( "SKILL_CODE" NUMBER(5,0),

"SKILL_DESCRIPTION" VARCHAR2(50),

PRIMARY KEY ("SKILL_CODE") ENABLE

) ;

Query Result

CREATE TABLE "STAFF_SKILLS"

( "STAFF_ID" NUMBER(5,0),

"SKILL_CODE" NUMBER(5,0),

"DATE_SKILL_OBTAINED" DATE,

PRIMARY KEY ("STAFF_ID") ENABLE

) ;

Query Result

CREATE TABLE "EQUIPMENT"

( "EQUIPMENT_ID" NUMBER,

"EQUIPMENT_TYPE_CODE" NUMBER,

"DATA_EQUIPMENT_ACQUIRED" DATE,

"DATE_EQUIPMENT_DISPOSED" DATE,

"EQUIPMENT_CODE" NUMBER(10,0),

"EQUIPMENT_NAME" CHAR(20),

"EQUIPMENT_DESCRIPTION" VARCHAR2(50),

"MANUFACTURER_NAME" CHAR(20),

CONSTRAINT "EQUIPMENT_PK" PRIMARY KEY

("EQUIPMENT_ID") ENABLE

)

Page 4: Oracle helpdesk database shema

Query Result

CREATE TABLE "SUPPORT_STAFF"

( "STAFF_ID" NUMBER(5,0),

"DATE_JOINED" DATE,

"DATE_LEFT" DATE,

"STAFF_NAME" CHAR(40),

"STAFF_PHONE" NUMBER(10,0),

"STAFF_EMAIL" CHAR(50),

"STAFF_LOCATION" CHAR(10),

PRIMARY KEY ("STAFF_ID") ENABLE

) ;

Query Result

CREATE TABLE "REF_USER_TYPES"

( "USER_TYPE_CODE" NUMBER(10,0),

"USER_TYPE_DESCRIPTION" VARCHAR2(50),

PRIMARY KEY ("USER_TYPE_CODE") ENABLE

) ;

Query Result

CREATE TABLE "REF_PRIORITY_LEVELS"

( "PROBLEM_LEVEL_CODE" NUMBER(3,0),

"PRIORITY_LEVEL_DESCRIPTION" VARCHAR2(10),

PRIMARY KEY ("PROBLEM_LEVEL_CODE") ENABLE

) ;

Query Result

CREATE TABLE "REF_PROBLEM_STATUS_CODE"

( "PROBLEM_STATUS_CODE" NUMBER(3,0),

"PROBLEM_STATUS_DESCRIPTION" VARCHAR2(10),

PRIMARY KEY ("PROBLEM_STATUS_CODE") ENABLE

) ;

Query Result

CREATE TABLE "USERS"

( "USER_ID" NUMBER(5,0),

"USER_TYPE_CODE" NUMBER(10,0),

"USER_FIRST_NAME" CHAR(20),

"USER_LAST_NAME" CHAR(20),

"USER_PHONE" NUMBER(10,0),

"USER_EMAIL" CHAR(50),

"ADDRESS" VARCHAR2(100),

CONSTRAINT "USERS_PK" PRIMARY KEY ("USER_ID")

ENABLE

);

Query Result

Page 5: Oracle helpdesk database shema

CREATE TABLE "PROBLEMS"

( "PROBLEM_ID" NUMBER(10,0) NOT NULL ENABLE,

"EQUIPMENT_ID" NUMBER(10,0) NOT NULL ENABLE,

"USER_ID" NUMBER(5,0) NOT NULL ENABLE,

"PROBLEM_REPORTED_DATETIME" DATE NOT NULL

ENABLE,

"PROBLEM_DESCRIPTION" VARCHAR2(500) NOT NULL

ENABLE,

CONSTRAINT "PROBLEMS_PK" PRIMARY KEY

("PROBLEM_ID") ENABLE

);

Query Result

CREATE TABLE "PROBLEM_HISTORY"

( "PROBLEM_HISTORY_ID" NUMBER(10,0) NOT NULL

ENABLE,

"PRIORITY_LEVEL_CODE" NUMBER(3,0) NOT NULL

ENABLE,

"PROBLEM_ID" NUMBER(10,0) NOT NULL ENABLE,

"PROBLEM_STATUS_CODE" NUMBER(3,0) NOT NULL

ENABLE,

"ASSIGNED_STAFF_ID" NUMBER(5,0) NOT NULL

ENABLE,

"FIX_DATETIME" DATE NOT NULL ENABLE,

"PROBLEM_HISTORY_DESCRIPTION" VARCHAR2(500)

NOT NULL ENABLE,

CONSTRAINT "PROBLEM_HISTORY_PK" PRIMARY KEY

("PROBLEM_HISTORY_ID") ENABLE

);

Query Result

CREATE TABLE "RESOLUTIONS"

( "RESOLUTION_ID" NUMBER(10,0) NOT NULL ENABLE,

"PROBLEM_HISTORY_ID" NUMBER(10,0),

"RESOLUTION_DESCRIPTION" VARCHAR2(500),

CONSTRAINT "RESOLUTIONS_PK" PRIMARY KEY

("RESOLUTION_ID") ENABLE

) ;

Page 6: Oracle helpdesk database shema

3. Table’lara kısıt ekleme

Query Result

ALTER TABLE "STAFF_SKILLS" ADD CONSTRAINT

"STAFF_SKILLS_CON" FOREIGN KEY ("SKILL_CODE")

REFERENCES "REF_SKILL_CODES" ("SKILL_CODE") ENABLE;

Query Result

ALTER TABLE "EQUIPMENT" ADD CONSTRAINT

"EQUIPMENT_CON" FOREIGN KEY ("EQUIPMENT_TYPE_CODE")

REFERENCES "REF_EQUIPMENT_TYPES"

("EQUIPMENT_TYPE_CODE") ENABLE;

Query Result

ALTER TABLE "PROBLEMS" ADD CONSTRAINT "PROBLEMS_CON"

FOREIGN KEY ("USER_ID")

REFERENCES "USERS" ("USER_ID") ENABLE;ALTER

TABLE "PROBLEMS" ADD CONSTRAINT "PROBLEMS_FK" FOREIGN

KEY ("EQUIPMENT_ID")

REFERENCES "EQUIPMENT" ("EQUIPMENT_ID")

ENABLE;

Query Result

ALTER TABLE "PROBLEM_HISTORY" ADD CONSTRAINT

"PROBLEM_HISTORY_FK" FOREIGN KEY

("PRIORITY_LEVEL_CODE")

REFERENCES "REF_PRIORITY_LEVELS"

("PROBLEM_LEVEL_CODE") ENABLE;ALTER TABLE

"PROBLEM_HISTORY" ADD CONSTRAINT "PROBLEM_HISTORY_FK2"

FOREIGN KEY ("PROBLEM_ID")

REFERENCES "PROBLEMS" ("PROBLEM_ID")

ENABLE;ALTER TABLE "PROBLEM_HISTORY" ADD CONSTRAINT

"PROBLEM_HISTORY_FK3" FOREIGN KEY

("PROBLEM_STATUS_CODE")

REFERENCES "REF_PROBLEM_STATUS_CODE"

("PROBLEM_STATUS_CODE") ENABLE;ALTER TABLE

"PROBLEM_HISTORY" ADD CONSTRAINT "PROBLEM_HISTORY_FK4"

FOREIGN KEY ("ASSIGNED_STAFF_ID")

REFERENCES "SUPPORT_STAFF" ("STAFF_ID")

ENABLE;

Page 7: Oracle helpdesk database shema

Query Result

ALTER TABLE "RESOLUTIONS" ADD CONSTRAINT

"RESOLUTIONS_FK" FOREIGN KEY ("PROBLEM_HISTORY_ID")

REFERENCES "PROBLEM_HISTORY"

("PROBLEM_HISTORY_ID") ENABLE;

Query Result

ALTER TABLE "USERS" ADD CONSTRAINT "USERS_FK" FOREIGN

KEY ("USER_TYPE_CODE")

REFERENCES "REF_USER_TYPES"

("USER_TYPE_CODE") ENABLE;

Page 8: Oracle helpdesk database shema

4. Select Sorgular

a. En Sorunlu ürünler

Query

Select

REF_EQUIPMENT_TYPES.EQUIPMENT_TYPE_DESCRIPTION,

EQUIPMENT.EQUIPMENT_TYPE_CODE,

EQUIPMENT.EQUIPMENT_NAME,

EQUIPMENT.EQUIPMENT_DESCRIPTION,

PROBLEMS.EQUIPMENT_ID As EQUIPMENT_ID1,

Count(PROBLEMS.EQUIPMENT_ID) as "Problem Sayısı"

From

EQUIPMENT Inner Join

REF_EQUIPMENT_TYPES On EQUIPMENT.EQUIPMENT_TYPE_CODE =

REF_EQUIPMENT_TYPES.EQUIPMENT_TYPE_CODE Inner Join

PROBLEMS On PROBLEMS.EQUIPMENT_ID = EQUIPMENT.EQUIPMENT_ID

Where

PROBLEMS.EQUIPMENT_ID = EQUIPMENT.EQUIPMENT_ID

Group By

REF_EQUIPMENT_TYPES.EQUIPMENT_TYPE_DESCRIPTION, EQUIPMENT.EQUIPMENT_TYPE_CODE,

EQUIPMENT.EQUIPMENT_NAME, EQUIPMENT.EQUIPMENT_DESCRIPTION,

PROBLEMS.EQUIPMENT_ID

Order By

Count(PROBLEMS.EQUIPMENT_ID) Desc

Query 2:

select EQUIPMENT_ID, count(EQUIPMENT_ID)

from problems

group by EQUIPMENT_ID

having count(EQUIPMENT_ID)>1

order by count(EQUIPMENT_ID) desc

Result

Result 2

Page 9: Oracle helpdesk database shema

b. En çok sorun çözen IT elemanları

Query Select

SUPPORT_STAFF.STAFF_ID,

SUPPORT_STAFF.STAFF_NAME,

SUPPORT_STAFF.STAFF_EMAIL,

REF_SKILL_CODES.SKILL_DESCRIPTION,

Count(PROBLEM_HISTORY.ASSIGNED_STAFF_ID) as "Sorun Sayısı"

From

PROBLEM_HISTORY Inner Join

SUPPORT_STAFF On PROBLEM_HISTORY.ASSIGNED_STAFF_ID = SUPPORT_STAFF.STAFF_ID

Inner Join

STAFF_SKILLS On STAFF_SKILLS.STAFF_ID = SUPPORT_STAFF.STAFF_ID Inner Join

REF_SKILL_CODES On STAFF_SKILLS.SKILL_CODE = REF_SKILL_CODES.SKILL_CODE

Group By

SUPPORT_STAFF.STAFF_ID, SUPPORT_STAFF.STAFF_NAME, SUPPORT_STAFF.STAFF_EMAIL,

REF_SKILL_CODES.SKILL_DESCRIPTION

Order By

Count(PROBLEM_HISTORY.ASSIGNED_STAFF_ID) Desc

Result

c. En sorunlu Kullanıcılar

Query Select

USERS.USER_ID,

USERS.USER_FIRST_NAME,

USERS.USER_LAST_NAME,

USERS.USER_EMAIL,

REF_USER_TYPES.USER_TYPE_DESCRIPTION,

Count(PROBLEMS.USER_ID) As Problem_Count

From

PROBLEMS Inner Join

USERS On PROBLEMS.USER_ID = USERS.USER_ID Inner Join

REF_USER_TYPES On USERS.USER_TYPE_CODE = REF_USER_TYPES.USER_TYPE_CODE

Group By

USERS.USER_ID, USERS.USER_FIRST_NAME, USERS.USER_LAST_NAME, USERS.USER_EMAIL,

REF_USER_TYPES.USER_TYPE_DESCRIPTION

Order By

Count(PROBLEMS.USER_ID) Desc

Result

Page 10: Oracle helpdesk database shema

d. Açık Çağrılar Listesi

Query Select

PROBLEM_HISTORY.PROBLEM_HISTORY_ID,

REF_PRIORITY_LEVELS.PRIORITY_LEVEL_DESCRIPTION,

SUPPORT_STAFF.STAFF_NAME,

PROBLEMS.PROBLEM_DESCRIPTION,

PROBLEM_HISTORY.PROBLEM_HISTORY_DESCRIPTION,

REF_PROBLEM_STATUS_CODE.PROBLEM_STATUS_DESCRIPTION

From

PROBLEM_HISTORY Inner Join

REF_PROBLEM_STATUS_CODE On PROBLEM_HISTORY.PROBLEM_STATUS_CODE =

REF_PROBLEM_STATUS_CODE.PROBLEM_STATUS_CODE Inner Join

SUPPORT_STAFF On PROBLEM_HISTORY.ASSIGNED_STAFF_ID = SUPPORT_STAFF.STAFF_ID

Inner Join

REF_PRIORITY_LEVELS On PROBLEM_HISTORY.PRIORITY_LEVEL_CODE =

REF_PRIORITY_LEVELS.PROBLEM_LEVEL_CODE Inner Join

PROBLEMS On PROBLEM_HISTORY.PROBLEM_ID = PROBLEMS.PROBLEM_ID

Where

PROBLEM_HISTORY.PROBLEM_STATUS_CODE = 803

Result

e. SLA süresinde çözülmeyen işler

Query Select

PROBLEMS.PROBLEM_ID,

PROBLEMS.PROBLEM_REPORTED_DATETIME,

PROBLEM_HISTORY.FIX_DATETIME,

USERS.USER_FIRST_NAME,

USERS.USER_LAST_NAME,

PROBLEMS.PROBLEM_DESCRIPTION,

REF_PRIORITY_LEVELS.PRIORITY_LEVEL_DESCRIPTION

From

PROBLEMS Inner Join

PROBLEM_HISTORY On PROBLEM_HISTORY.PROBLEM_ID = PROBLEMS.PROBLEM_ID Inner Join

REF_PRIORITY_LEVELS On PROBLEM_HISTORY.PRIORITY_LEVEL_CODE =

REF_PRIORITY_LEVELS.PROBLEM_LEVEL_CODE Inner Join

USERS On PROBLEMS.USER_ID = USERS.USER_ID

Where

PROBLEM_HISTORY.FIX_DATETIME > PROBLEMS.PROBLEM_REPORTED_DATETIME

Result

Page 11: Oracle helpdesk database shema

f. 40000000007 no’lu problemin geçmiş detayı

Query Select

PROBLEMS.PROBLEM_ID,

PROBLEMS.PROBLEM_DESCRIPTION,

REF_PRIORITY_LEVELS.PRIORITY_LEVEL_DESCRIPTION,

REF_PROBLEM_STATUS_CODE.PROBLEM_STATUS_DESCRIPTION,

PROBLEM_HISTORY.FIX_DATETIME,

SUPPORT_STAFF.STAFF_NAME,

PROBLEM_HISTORY.PROBLEM_HISTORY_DESCRIPTION

From

PROBLEMS Inner Join

PROBLEM_HISTORY On PROBLEM_HISTORY.PROBLEM_ID = PROBLEMS.PROBLEM_ID Inner Join

REF_PROBLEM_STATUS_CODE On PROBLEM_HISTORY.PROBLEM_STATUS_CODE =

REF_PROBLEM_STATUS_CODE.PROBLEM_STATUS_CODE Inner Join

REF_PRIORITY_LEVELS On PROBLEM_HISTORY.PRIORITY_LEVEL_CODE =

REF_PRIORITY_LEVELS.PROBLEM_LEVEL_CODE Inner Join

SUPPORT_STAFF On PROBLEM_HISTORY.ASSIGNED_STAFF_ID = SUPPORT_STAFF.STAFF_ID

Where

PROBLEMS.PROBLEM_ID = 4000000007

Result

g. Ahmet Kullanıcısının Çağrılarının detayları

Query Select

USERS.USER_FIRST_NAME,

USERS.USER_LAST_NAME,

PROBLEMS.PROBLEM_DESCRIPTION,

PROBLEM_HISTORY.FIX_DATETIME,

PROBLEM_HISTORY.PROBLEM_HISTORY_DESCRIPTION,

REF_PRIORITY_LEVELS.PRIORITY_LEVEL_DESCRIPTION

From

USERS Inner Join

PROBLEMS On PROBLEMS.USER_ID = USERS.USER_ID Inner Join

PROBLEM_HISTORY On PROBLEM_HISTORY.PROBLEM_ID = PROBLEMS.PROBLEM_ID Inner Join

REF_PRIORITY_LEVELS On PROBLEM_HISTORY.PRIORITY_LEVEL_CODE =

REF_PRIORITY_LEVELS.PROBLEM_LEVEL_CODE

Where

USERS.USER_FIRST_NAME = 'Ahmet'

Query_2 select

PROBLEM_ID, PROBLEM_DESCRIPTION

from

problems p, users u

where

p.user_id = u.user_id and u.user_first_name like 'Ahme%'

Result

Result2

Page 12: Oracle helpdesk database shema

h. Geçen Seneki çağrıların toplamı

Query

Select

Count(Distinct PROBLEM_HISTORY.PROBLEM_ID) as "2011 Çağrı Adedi"

From

PROBLEMS Inner Join

PROBLEM_HISTORY On PROBLEM_HISTORY.PROBLEM_ID = PROBLEMS.PROBLEM_ID

Where

Extract(Year From PROBLEM_HISTORY.FIX_DATETIME) = 2011

Result

i. Atanmamış çağrılar

Query Select

EQUIPMENT.EQUIPMENT_NAME,

USERS.USER_FIRST_NAME,

USERS.USER_LAST_NAME,

PROBLEMS.PROBLEM_REPORTED_DATETIME,

PROBLEMS.PROBLEM_DESCRIPTION

From

PROBLEMS Inner Join

EQUIPMENT On PROBLEMS.EQUIPMENT_ID = EQUIPMENT.EQUIPMENT_ID Inner Join

USERS On PROBLEMS.USER_ID = USERS.USER_ID

Where

PROBLEMS.PROBLEM_ID Not In (Select Distinct

(PROBLEM_HISTORY.PROBLEM_ID)

From

PROBLEM_HISTORY)

Result

Page 13: Oracle helpdesk database shema

j. Kapatılan Çağrılar

Query

Select

PROBLEMS.PROBLEM_ID,

USERS.USER_FIRST_NAME,

USERS.USER_LAST_NAME,

EQUIPMENT.EQUIPMENT_NAME,

REF_EQUIPMENT_TYPES.EQUIPMENT_TYPE_DESCRIPTION,

PROBLEM_HISTORY.PROBLEM_HISTORY_DESCRIPTION

From

PROBLEMS Inner Join

PROBLEM_HISTORY On PROBLEM_HISTORY.PROBLEM_ID = PROBLEMS.PROBLEM_ID Inner Join

USERS On PROBLEMS.USER_ID = USERS.USER_ID Inner Join

EQUIPMENT On PROBLEMS.EQUIPMENT_ID = EQUIPMENT.EQUIPMENT_ID Inner Join

REF_EQUIPMENT_TYPES On EQUIPMENT.EQUIPMENT_TYPE_CODE =

REF_EQUIPMENT_TYPES.EQUIPMENT_TYPE_CODE

Where

PROBLEM_HISTORY.PROBLEM_STATUS_CODE = 804

Result

k. Zor seviyesindeki çağrıların detay durumu

Query Select

PROBLEMS.PROBLEM_ID,

USERS.USER_FIRST_NAME,

USERS.USER_LAST_NAME,

PROBLEMS.PROBLEM_DESCRIPTION,

PROBLEM_HISTORY.PROBLEM_HISTORY_DESCRIPTION,

SUPPORT_STAFF.STAFF_NAME

From

PROBLEM_HISTORY Inner Join

PROBLEMS On PROBLEM_HISTORY.PROBLEM_ID = PROBLEMS.PROBLEM_ID Inner Join

USERS On PROBLEMS.USER_ID = USERS.USER_ID Inner Join

SUPPORT_STAFF On PROBLEM_HISTORY.ASSIGNED_STAFF_ID = SUPPORT_STAFF.STAFF_ID

Where

PROBLEM_HISTORY.PRIORITY_LEVEL_CODE = 703

Result

Page 14: Oracle helpdesk database shema

l. Problem çözümü girilmiş problemlerin listesi

Query Select Distinct

PROBLEM_HISTORY.PROBLEM_ID

From

PROBLEM_HISTORY

Order By

PROBLEM_HISTORY.PROBLEM_ID

Result

Page 15: Oracle helpdesk database shema

5. Update sorguları

a. Açık çağrıların kapatılması

Query

update problem_history

set problem_status_code =

(select problem_status_code

from ref_problem_status_code

where problem_status_description='kapandı')

where

problem_status_code in

(select p.problem_status_code

from problem_history p, ref_problem_status_code s

where problem_status_description='açık' and

s.problem_status_code=p.problem_status_code)

Result

Page 16: Oracle helpdesk database shema

b. Çözüm girilen çağrıların kapatılması

Query update problem_history

set problem_status_code =

(select problem_status_code

from ref_problem_status_code

where problem_status_description='kapandı')

where

problem_status_code in

(select h.problem_status_code

from problem_history h, resolutions r

where r.problem_history_id=h.problem_history_id)

Result

c. Support Elemanına skill ekleme ve tarihi güncelleme

Query INSERT INTO ref_skill_codes VALUES (3006,'Senior Programmer');

update staff_skills

set (skill_code, date_skill_obtained) =

(select skill_code, to_date(sysdate, 'dd/mm/yyyy' )

from ref_skill_codes

where skill_description='Senior Programmer' )

where

skill_code =

(select st.skill_code

from staff_skills st, support_staff su

where st.staff_id=su.staff_id and su.staff_name='Murat');

Result

Page 17: Oracle helpdesk database shema

d. User’ın type’ı değişmesi(müdür olması)

Query INSERT INTO ref_user_types VALUES (6000000006,'Muhasebe Müdürü')

update users

set USER_TYPE_CODE =

( select user_type_code from ref_user_types where

USER_TYPE_DESCRIPTION = 'Muhasebe Müdürü')

where

USER_TYPE_CODE =

(select USER_TYPE_CODE

from users

where user_id='30003' and user_first_name='Eyüp')

Result

1 row(s) updated. 0.00 seconds

select u.user_first_name, ru.USER_TYPE_DESCRIPTION

from users u, ref_user_types ru

where u.user_id='30003' and u.user_type_code=ru.user_type_code;

e. Prblem açıklaması değiştirilmesi

Query update problems

set PROBLEM_DESCRIPTION = 'Yazıcıya yazdırırken yazdırılamadı şeklinde

hata veriyor. dün çalışıyordu,sorun yoktu'

where

problem_id = '4000000001'

Result

1 row(s) updated. 0.02 seconds

select problem_id, PROBLEM_DESCRIPTION from problems where problem_id='4000000001'

Page 18: Oracle helpdesk database shema

f. equipment_code(seri no) değiştirilmesi

Query update EQUIPMENT

set EQUIPMENT_CODE = '2000000006'

where

EQUIPMENT_CODE = '2000000005' and EQUIPMENT_ID = '1000000005'

Result

1 row(s) updated. 0.03 seconds

select EQUIPMENT_ID, EQUIPMENT_CODE from EQUIPMENT where EQUIPMENT_ID =

'1000000005'

g. Support elemanlarına yeni sorun atanması

Query select p.problem_id from problems p where p.problem_id not in (select problem_id from problem_history)

INSERT INTO problem_history VALUES

(5000000011,701,

(select p.problem_id from problems p where p.problem_id not in

(select problem_id from problem_history)),

802,1002, TO_DATE ('06/06/2011', 'dd/mm/yyyy'),'xc')

Result

1 row(s) inserted. 0.06 seconds

select p.problem_id from problems p where p.problem_id not in (select problem_id

from problem_history)

no data found

Page 19: Oracle helpdesk database shema

h. equipment silinmesi

Query

ALTER TABLE "PROBLEMS" disable CONSTRAINT "PROBLEMS_FK"

Table altered. 0.03 seconds

delete

from equipment

where EQUIPMENT_ID='1000000002'

Result

1 row(s) deleted. 0.01 seconds

i. user silinmesi

Query

ALTER TABLE "PROBLEMS" disable CONSTRAINT "PROBLEMS_CON"

Table altered. 0.08 seconds

delete

from users

where user_first_name='Ayşe' and user_last_name='Cebeci' and

user_id='30005'

Result

1 row(s) deleted. 0.01 seconds

j. Problem History Kaydı silinmesi

Query delete

from problem_history

where PROBLEM_HISTORY_ID= '5000000006'

Result

1 row(s) deleted. 0.01 seconds

Page 20: Oracle helpdesk database shema

k. Support Stuff silinmesi

Query delete

from support_staff

where staff_id='1001' and staff_name = 'Mustafa'

Result

1 row(s) deleted. 0.01 seconds

l. Sorun İstatistikleri

Query select

min(count(p.ASSIGNED_STAFF_ID)) as "En az Sorunla İlgilenen",

max(count(p.ASSIGNED_STAFF_ID)) as "En Fazla Sorunla İlgilenen",

round(avg(count(p.ASSIGNED_STAFF_ID)),1) as "Ortama Sorunla İlgilenen"

from problem_history p

group by p.ASSIGNED_STAFF_ID

Result

Page 21: Oracle helpdesk database shema

m. Case kullanmak

Query select

problem_history_id, PROBLEM_HISTORY_DESCRIPTION,

case

when ASSIGNED_STAFF_ID= '1001' then 'Mustafa ilgileniyor'

when ASSIGNED_STAFF_ID= '1002' then 'Dinçer ilgileniyor'

when ASSIGNED_STAFF_ID= '1003' then 'Şükrü ilgileniyor'

else 'Başkası ilgileniyor'

end as Kim_ilgileniyor

from problem_history

Result

Page 22: Oracle helpdesk database shema

6. Extra Sorgular

a. Genel Bakış view oluşturma

Query

CREATE OR REPLACE VIEW genel_bakis

AS

Select

PROBLEM_HISTORY.PROBLEM_ID,

PROBLEM_HISTORY.PROBLEM_HISTORY_ID,

REF_PRIORITY_LEVELS.PRIORITY_LEVEL_DESCRIPTION,

REF_PROBLEM_STATUS_CODE.PROBLEM_STATUS_DESCRIPTION,

SUPPORT_STAFF.STAFF_NAME, PROBLEM_HISTORY.FIX_DATETIME,

PROBLEM_HISTORY.PROBLEM_HISTORY_DESCRIPTION,

EQUIPMENT.EQUIPMENT_NAME,

USERS.USER_FIRST_NAME || ' ' || USERS.USER_LAST_NAME as Kullanıcı From

PROBLEM_HISTORY Inner Join

REF_PROBLEM_STATUS_CODE On PROBLEM_HISTORY.PROBLEM_STATUS_CODE =

REF_PROBLEM_STATUS_CODE.PROBLEM_STATUS_CODE Inner Join

REF_PRIORITY_LEVELS On PROBLEM_HISTORY.PRIORITY_LEVEL_CODE =

REF_PRIORITY_LEVELS.PROBLEM_LEVEL_CODE Inner Join

SUPPORT_STAFF On PROBLEM_HISTORY.ASSIGNED_STAFF_ID = SUPPORT_STAFF.STAFF_ID

Inner Join

PROBLEMS On PROBLEM_HISTORY.PROBLEM_ID = PROBLEMS.PROBLEM_ID Inner Join

EQUIPMENT On PROBLEMS.EQUIPMENT_ID = EQUIPMENT.EQUIPMENT_ID Inner Join

USERS On PROBLEMS.USER_ID = USERS.USER_ID Group By

PROBLEM_HISTORY.PROBLEM_ID, PROBLEM_HISTORY.PROBLEM_HISTORY_ID,

REF_PRIORITY_LEVELS.PRIORITY_LEVEL_DESCRIPTION,

REF_PROBLEM_STATUS_CODE.PROBLEM_STATUS_DESCRIPTION, SUPPORT_STAFF.STAFF_NAME,

PROBLEM_HISTORY.FIX_DATETIME, PROBLEM_HISTORY.PROBLEM_HISTORY_DESCRIPTION,

EQUIPMENT.EQUIPMENT_NAME, USERS.USER_FIRST_NAME, USERS.USER_LAST_NAME Order By

PROBLEM_HISTORY.PROBLEM_ID

Result

Page 23: Oracle helpdesk database shema

b. Index Oluşturma

Query

CREATE INDEX problem__id_index ON problem_history(problem_id);

Result

Index created.

c. Sequence Oluşturma

Query

CREATE SEQUENCE EQUIPMENT_ID INCREMENT BY 1

Result Sequence created.

d. Select ile yedek almak

Query

select * into problems_backup from problems

Result

7. Sonuçlar

Görev Beklenen Yapılan

table oluşturma 6-7 tablo 13 tablo

Select sorgusu 10 12

Update/delete sorgusu 10 10

İndex oluşturma 0 1

View oluşturma 0 1

Sequence oluşturma 0 1