Translate


Breaking News

Tokoh wayang

games

Senin, 22 November 2010

CREATING OTHER SCHEMA OBJECTS MANAGING OBJECTS WITH DATA DICTIONARY VIEWS

A. PEMBAHASAN UNGUIDED

1. create or replace view view_5260_1 as select m.first_name manager, e.last_name pegawai, j.job_title "Bekerja di bagian", e.salary gaji, case when to_char(e.hire_date, 'YYYY') < manager_id =" m.employee_id" job_id =" j.job_id">

Query ini digunakan untuk membuat complex view dengan nama view_5260_1 yang yang diperoleh dari mengambil data pada tabel pegawai dan pekerjaan dengan menggabungkan atau melakukan join pada tabel pegawai dengan dirinya sendiri dan tabel pegawai dengan tabel pekerjaan. Yang diambil meliputi first_name yang diberi nama manager, last_name yang diberi nama pegawai, job_title yang diberi nama “Bekerja di bagian”, salary yang diberi nama gaji, dan THR dengan ketentuan apabila tahun dari hire_date <>iperoleh dengan rumus (salary+(salary*0,15)). Sedangkan jika hire_date lebih dari 1994 maka angka yang ada di kolom THR akan sesuai dengan gaji. Kemudiaan data yang ditampilkan harus mengandung huruf ‘e’ ketiga pada first_name dan diurutkan berdasarkan manager_id.

2. create view view_5260_2 as select first_name, last_name, salary, department_name from employees join departments using(department_id) where salary in (select min(salary) from employees join departments using(department_id));

Query ini digunakan untuk membuat complex view dengan nama view_5260_2. Data yang ditampilkan first_name, last_name, salary, department_name. Data yang ditampilkan diperoleh dari tabel employees yang digabungkan dengan tabel departments dengan penghubung department_id dimana salary merupakan gaji terendah dari tabel employees yang digabungkan dengan tabel departments dengan penghubung department_id.

3. create table Mhs_5260(NIM number(4) constraint mhs_nim_pk primary key, nama varchar2(25)); create sequence nim_seq increment by 10 start with 6000 maxvalue 6500 nocache nocycle; insert into Mhs_5260 values (nim_seq.nextval, 'Helga'); insert into Mhs_5260 values (nim_seq.nextval, 'Febri'); insert into Mhs_5260 values (nim_seq.nextval, 'Jose');

Query ini digunakan untuk membuat tabel dengan nama Mhs_5260 atribut NIM dengan tipe number dengan maksimum empat karakter yang menjadi primary key, atribut nama dengan tipe varchar2 dengan maksimum 25 karakter. Setelah itu dibuatt sequence dimana akan bertambah 10 setiap sequence-nya dimulai dari 6000 dan berakhir pada 6500 serta dilakukan nochace dan nocycle. Kemudian perlu dilakukan insert data pada tabel Mhs_5260 dimana data yang pertama berisi nilai awal pada NIM dan “Helga” pada kolom nama. Kemudian dilakukan insert data lagi yang berisi nilai awal+10 (6010) pada NIM dan “Jose” pada kolom nama. Kemudian dilakukan insert data yang berisi nilai awal+10+10 (6020) pada NIM dan “Febri” pada kolom nama.

4. select user_stats, column_name, data_type from user_tab_columns where table_name = upper('employees');

Query ini digunakan untuk menampilkan user_stats, column_name, data_type dari tabel user_tab_columns dengan dimana table_name = employees dengan employees diset dengan huruf besar semua.

5. create or replace view view_5260_5 as select department_name, min(salary) "SMALL", max(salary) "BIG" from employees join departments using (department_id) group by department_name with read only;

Query ini digunakan untuk membuat complex view dengan nama view_5260_5 yang berisi department_name, min salary yang diberi nama “SMALL”, max salary dengan nama “BIG”. Data yang ditampilkan diperoleh dari tabel employees yang digabungkan dengan tabel departments dengan penghubung department_id dikelompokkan berdasarkan department_name dan data hanya bisa dilihat saja tanpa pemanipulasian.

6. insert into view_5260_5(department_name, small, big)values('Bisnis', 3000, 10000);

Query ini digunakan untuk menambahkan data kedalam tabel view_5260_5, tetapi saat dilakukan compile akan muncul eror. Hal ini karena complex view view_5260_5 hanya dapat dilihat tanpa bisa dimanipulasi (read only).

7. create synonym THR_5260 for view_5260_1; create synonym bigsmall_5260 for view_5260_2; create synonym smallest_5260 for view_5260_5; select * from thr_5260; select * from bigsmall_5260; select * from smallest_5260;

Query ini digunakan untuk membuat sinonim untuk view_5260_1 menjadi THR_5260, kemudian membuat sinonim view_5260_2 menjadi bigsmall_5260, kemudian membuat sinonim view_5260_5 menjadi smallest_5260. Dan data akan ditampilkan dengan mengacu pada sinonimnya yaitu THR_5260, bigsmall_5260, dan smallest_5260.

B. PEMBAHASAN TUGAS

1. create or replace view genap as select first_name||' '||last_name||' works at : '||street_address||' -> '||department_name "EVEN employee ID" from employees e join departments d on e.department_id = d.department_id join locations l on d.location_id = l.location_id where mod(employee_id,2)=0;

Query ini digunakan untuk membuat complex view dengan nama genap yang berisi first_name yang digabungkan, last_name, dan kata “works at :”, street_address, dengan kata “->”, department_name yang diberi nama “EVEN employee ID”. Data diperoleh dari tabel employees digabungkan dengan tabel departments dengan penghubung department_id, kemudian dilakukan penggabunguan lagi dengan tabel locations dengan penghubung location_id dengan ketentuan bahwa employee_id%2=0.

2. create or replace view genap as select first_name||'_'||substr(last_name,1,4)||' works at : '||city||', '||street_address||' -> '||department_name "EVEN EMPLOYEE ID" from employees e join departments d on e.department_id = d.department_id join locations l on d.location_id = l.location_id where mod(employee_id,2)=0;

Query ini digunakan untuk mengubah complex view dengan nama genap yang berisi first_name digabungkan dengan tanda ‘_’ kemudian digabungkan dengan last_name yang diambil empat huruf depan saja serta digabungkan dengan kata “works at :”, dilanjutkan dengan street_address digabung dengan “->”, department_name dengan nama “EVEN employee ID”. Data ditampilkan dari tabel employees digabungkan dengan tabel departments dengan penghubung department_id, kemudian dilakukan peggabungan dengan tabel locations dengan penghubung location_id, dengan ketentuan bahwa employee_id%2=0.

3. create index emp_first_name_idx on employees(first_name); create index emp_last_name_idx on employees(last_name); create index emp_email_idx on employees(email);

Query ini digunakan untuk membuat index pada first_name dari tabel employees dengan nama emp_first_name_idx. Membuat index untuk last_name dari tabel employees dengan nama emp_last_name_idx. Dan membuat index untuk email pada tabel employees dengan nama emp_email_idx.

Tidak ada komentar:

Designed By Blogger Templates