Minggu, 16 November 2014

VIEW PADA ORACLE

VIEW PADA ORACLE

Pengertian

View adalah salah satu object database, yang secara logika merepresentasikan sub himpunan dari data yang berasal dari satu atau lebih table.
View merupakan hasil perintah SELECT yang berupa tabel virtual yang dapat membungkus query tertentu. View berfungsi untuk mempermudah dalam pengambilan query tertentu. Dengan view kita dapat menerapkan pembatasan pada pengaksesan guna pengamanan keamanan data seperti di bawah ini:
  • Kolom/Field pada tabel tertentu.
  • Baris/Record pada tabel tertentu.
  • Field dan Record pada tabel tertentu.
  • Turunan dari view lain.
  • Record menggunakan operasi join.
  • Data statistik dari tabel.


Kegunaan dari view adalah :

  • Membatasi akses database
  • Membuat query kompleks secara mudah
  • Mengijinkan independensi data
  • Untuk menampilkan view (pandangan) data yang berbeda dari data yang sama.

Membuat View

Syntax :
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
[(alias[, alias]…)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint_name]]
[WITH READ ONLY [CONSTRAINT constraint]_name];
contoh query :
CREATE VIEW view_emp
AS SELECT employee_id, last_name, salary
FROM employees
WHERE department_id = 80;
untuk menampilkan view yang kita buat:
SELECT * FROM nama_view
Query diatas akan membuat sebuah view yang bernama view_emp yang menampilkan data dari tabel employees yang bekerja pada department_id = 80.
View dengan alias :
CREATE VIEW view_emp2
AS SELECT employee_id ID_NUMBER, last_name NAME,
salary*12 ANN_SALARY
FROM employees
WHERE department_id = 50;
Query diatas juga dapat ditulis seperti ini:
CREATE VIEW view_emp2(ID_NUMBER, NAME, ANN_SALARY)
AS SELECT employee_id ID_NUMBER, last_name NAME,
salary*12 ANN_SALARY
FROM employees
WHERE department_id = 50;
Memodifikasi VIEW dengan CREATE OR REPLACE :

CREATE OR REPLACE VIEW view_emp2(ID_NUMBER, NAME, ANN_SALARY)
AS SELECT employee_id ID_NUMBER, last_name NAME,
salary*12 ANN_SALARY
FROM employees
WHERE department_id = 50;
Dengan menggunakan CREATE OR REPLACE, bila sudah ada view dengan nama yang sama dengan view yang akan kita buat, maka view terdahulu tersebut akan ditimpa dengan view yang baru.
nb : Dengan query-query diatas, jika kita melakukan perubahan pada view_emp atau view_emp2, maka tabel employees juga akan ikut berubah sesuai dengan perubahan yang terjadi pada view_emp. begitu juga sebaliknya jika kita melakukan perbuahan pada tabel employees. Hal ini dapat dicegah dengan menggunakan WITH CHECK OPTION dan READ ONLY

Membuat VIEW yang Kompleks

maksud dari view yang kompleks adalah kita menambahkan fungsi-fungsi lain dalam subquery seperti JOINGROUP FUNCTIONSET OPERATOR dll.
contoh :
CREATE OR REPLACE VIEW dept_Sal(name, MinSal, MaxSal, avgSal)
AS
SELECT
 d.department_name, MIN(e.salary),
MAX(e.salary),AVG(e.salary)
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
GROUP BY d.department_name
Aturan dalam VIEW :

Kita tidak bisa menggunakan operasi DML melalui VIEW jika didalam VIEW tersebut terdapat :
  1. GROUP FUNCTION
  2. GROUP BY
  3. DISTINCT
  4. ROWNUM
  5. Kolomnya didefinisikan dengan ekspresi(salary + 2)
  6. NOT NULL kolom pada base table(tabel yang disebutkan setelah kata AS ) yang tidak dipilih oleh view
With Check Option

dengan klausa WITH CHECK OPTION, kita dapat membatasi perubahan yang diakibatkan oleh penggunaan operasi DML. sehinga jika adanya perubahan pada view, tidak mempengaruhi pada base tabelnya
contoh :
CREATE OR REPLACE VIEW view_emp2
AS
SELECT *FROM employees
WHERE department_id = 20
WITH CHECK OPTION CONSTRAINT viewEmp2_ck ;
Dengan query diatas kita tidak dapat merubah department_id yang sudah ditentukan pada VIEW view_emp2 tetapi masih dapat melakukan perubahan terhadap data lain dan juga jika kita melakukan operasi DML pada VIEW view_emp2, data pada tabel EMPLOYEES tidak akan berubah
Read Only

Dengan READ ONLY kita tidak dapat melakukan operasi DML terhadap VIEW yang kita buat, sehingga view tersebut hanya dapat dilihat atau dibaca
CREATE OR REPLACE VIEW view_emp2
AS
SELECT *FROM employees
WHERE department_id = 20
READ ONLY;

Menampilkan View

Untuk menampilkan atau memanggil view yang sudah kita buat sebelumnya, kita dapat menggunakan perintah select dengan format seperti dibawah ini :
SELECT * FROM V_PELANGGAN

Merubah View

Untuk merubah view kita dapat menggunakan perintah alter view dengan format seperti dibawah ini :
ALTER VIEW view_name[(column_list)] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION]
Contoh :
ALTER VIEW V_SISWA AS SELECT * FROM SISWA WHERE ALAMAT ='JAKARTA'

Menghapus View

DROP VIEW nama_view



sumber :
http://risnotes.com/2012/01/view/
http://irpantips4u.blogspot.com/2012/10/pengertian-funsi-dan-penggunaan-view.html
http://ranafatinhexi.blogspot.com/2013/03/view-pada-oracle.html

0 komentar:

Posting Komentar