TABEL VIRTUAL (VIEW) SYAIFUL HUDA, S.Kom
Tabel Virtual View adalah obyek dalam database yang berisi kumpulan kolom-kolom yang dihasilkan perintah select View adalah obyek yang menyimpan hasil query View sering dinamakan ‘Tabel Virtual’ karena sebenarnya view tidak memiliki data View diambil dari tabel-tabel aktual yang disertakan dalam perintah SELECT
GAMBAR TABEL VIRTUAL Tabel T1 A B C Tabel T2 E F G H Tabel T3 I J VIEW V A F G J
VIEW View V adalah obyek yang merupakan hasil query ( perintah select ) dari tiga buah tabel T1,T2 dan T3. Dengan cara tersebut dapat dilakukan perintah Query hanya dari View V, bukan dari tabel-tabel terkait SELECT * FROM V;
MANFAAT VIEW Akses data lebih mudah : Digunakan untuk menampilkan rangkuman suatu perhitungan tertentu Menampilkan beberapa kolom dan baris saja tergantung kondisi yang di definisikan Menampilkan data yang berasal dari dua tabel atau lebih View dapat digunakan untuk menampilkan data yang berbeda untuk masing-masing user, sehingga masing-masing user dapat melihat data sesuai dengan hak aksesnnya.
MEMBUAT VIEW Sintak View : CREATE VIEW <nama view> AS <perintah SELECT>; Contoh : CREATE VIEW v_kotapropinsi AS SELECT a.kode_kota, a.nama_kota, b.nama_propinsi FROM ms_kota a, ms_propinsi b WHERE a.kode_propinsi=b.kode_propinsi
PENJELAS Perintah tersebut mendifinisikan view di dalam database dengan nama v_kotapropinsi dengan berisi perintah SELECT yang melibatkan dua tabel yaitu tabel ms_kota dan ms_propinsi Kolom relasi tabel tersebut adalah KODE_PROPINSI
SELEKSI VIEW Sintak : SELECT * FROM v_kotapropinsi
KOLOM DALAM VIEW Seperti tabel, view juga memiliki kolom Untuk melihat kolom pada View digunakan perintah DESCRIBE atau DESC di ikuti nama view Sintak : DESCRIBE v_kotapropinsi;
MENGUBAH VIEW Perintah ALTER digunakan untuk mengubah definisi suatu tabel yang sudah ada sebelumnya Perintah ALTER akan membuah definisi view yang lama dan menimpa dengan yang baru Sintah : ALTER VIEW <nama_view> AS <perintah SELECT yang baru>; Contoh : ALTER VIEW v_kotapropinsi AS SELECT a.kode_kota, a.nama_kota, a.kode_propinsi, b.nama_propinsi FROM ms_kota a, ms_propinsi b WHERE a.kode_propinsi=b.kode_propinsi
HASIL PERUBAHAN VIEW SELECT * FROM v_kotapropinsi
HAPUS VIEW Sintak : DROP VIEW [IF EXIST] <nama view> [, <nama view>, ..] ; IF EXIST bersifat opsional dan berfungsi untuk mencegah terjadinya kesalahan pada saat perintah di eksekusi. Contoh : DROP VIEW IF EXISTS v_kotapropinsi, v_transaksi; Perintah diatas akan menghapus dua view tersebut (dengan catatan view sudah didefinisikan sebelumnya dalam database)
HAPUS VIEW Sintak : DROP VIEW v_kotapropinsi Perintah diatas tidak menggunakan IF EXISTS karena benar-benar yakin bahwa View yang akan dihapus benar-benar sudah ada di database
VIEW MODIFIKASI View dapat dimodifikasi jika kolom-kolom dalam view mengacu langsung ke kolom yang terdapat pada tabel, bukan hasil perhitungan CREATE VIEW v_jumlahkotapropinsi AS SELECT b.nama_propinsi,COUNT(a.nama_kota)as jumlahkota FROM ms_kota a, ms_propinsi b WHERE a.kode_propinsi=b.kode_propinsi GROUP BY b.nama_propinsi
VIEW TIDAK DAPAT DI MODIFIKASI SELECT * FROM v_jumlahkotaprpinsi View diatas tidak dapat dimodifikasi karena data yang ditampilkan adalah hasil proses perhitungan ( fungsi Agregate COUNT )
VIEW TIDAK DAPAT DIMODIFIKASI
VIEW DAPAT DIMODIFIKASI Sintak : SELECT * FROM v_kotapropinsi
MODIFIKASI VIEW Sintak : UPDATE v_kotapropinsi SET nama_kota = 'Banda Aceh1' WHERE nama_kota = 'Banda Aceh'
HASIL MODIFIKASI VIEW
BATASAN VIEW Tidak dapat membuat View yang sifatnya temporari Tidak dapat mengasosiasikan trigger dengan view Tabel yang diakses oleh view harus ada didalam database Jika nama tabel diubah maka view tidak dapat digunakan lagi (kesalahan pada saat eksekusi) Perintah SELECT yang didefinisikan didalam VIEW tidak boleh berisi konstruksi : Subquery didalam klausa FROM Mengacu ke tabel temporari