Untuk mempermudah dalam pengambilan query tertentu merupakan fungsi dari

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

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;

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:

//ranafatinhexi.blogspot.com/2013/03/view-pada-oracle.html

//irpantips4u.blogspot.com/2012/10/pengertian-funsi-dan-penggunaan-view.html

//risnotes.com/2012/01/view/

Posted on by Andri Indrawan

Sebagaimana pebahasan pada view sebelumnnya, salah satu yang dapat mempermudah kita dalam pengambilan data berdasarkan query tertentu selain menggunakan view ialah memberikan indeks pada record dalam tabel. Selain pencarian, indeks juga berguna untuk melakukan pengurutan data.

Hal yang paling utama dalam mengakses data adalah kecepatan. Semakin cepat data diambil semakin cepat data diproses sehingga semakin cepat urusan diselesaikan. Untuk mempercepat pembacaan data dalam tabel maka sebaiknya dibuatkan sebuah indeks.

Indeks

Untuk pencarian data pada tabel dari sebuah basisdata setidaknya memiliki dua metoda pencarian. Metoda pertama, menggunakan Metoda Akses Bertahap/ Sequential Access Method yang mengharuskan SQL memeriksa satu persatu record berdasarkan primary key sebagai pembading data uniknya. Metoda pencarian ini tidak efisien, namun satu-satu cara default SQL dalam melakukan pencarian data/ record.

Cara kedua dengan menggunakan Metoda Akses Langsung/ Direct Access Method yang dimana diimplementasikan dengan memberikan indeks pada record dalam database. Melalui metoda ini SQL digunakan layaknya sturuktur pohon dalam penyimpanan dan mendapatkan kembali indeks dari sebuah data/record. Pointer pada sekolompok data disimpan diatas pohon, kelompok ini disebut juga dengan istilah nodes/ titik. Masing-masing titik berisi pointer ke titik lainnya.

Untuk membuat indeks pada sebuah tabel gunakan sintaks berikut:

CREATE INDEX namaindex ON namatabel[kolom_yang _mau_diindex1, kolom_yang_mau_diindex2, …];

Sedangkan untuk menghapus suatu indeks gunakan sintaks berikut:

Menyambung pembahasan VIEW kemarin, maka tidak ada salahnya dalam membuat contoh kita menggunakan data dari tabel perusahaan, rekening, dan akun_bank yang telah kita buat bersama sebelumnya.

Sebagai contoh, dibuat indeks untuk mempercepat pencarian data rekening terurut berdasarkan id_akun, maka berikan perintah:

Kadangkalanya pada suatu kolom/ atribut, suatu tabel memiliki dua atau lebih data yang sama, misal untuk tabel rekening dimana id_akun terdapat data yang duplikat. Untuk lebih mengefisienka ruang, maka pembuatan indeks pun dapat diset untuk unique. Sintaksnya sebagai berikut:

CREATE UNIQUE INDEX namaindex ON namatabel[kolom_yang _mau_diindex1, kolom_yang_mau_diindex2, …];

Contoh :

CREATE UNIQUE INDEX rek_idx_unique ON rekening[id_akun, id_perusahaan]

Untuk mendeletenya sama dengan mendelete indeks biasa diatas, yaitu:

DROP INDEX rek_idx_unique;

Filed under: Pemograman dan Database | Tagged: Pemograman dan Database, Pemograman dan Database; Data Base |

Video yang berhubungan

Bài mới nhất

Chủ Đề