Home about IT Motivation Course Sales Project About Me

Friday, April 09, 2010

penggunaan View di SQL Server

View mirip dengan tabel, namun SQL Server tidak menyimpan data di dalamnya melainkan
definisi (query) suatu tabel. Untuk mudahnya, view adalah (seperti) "virtual tabel".

mengapa perlu memakai view, berikut beberapa alasannya:
- untuk membagi beban resource yang terpakai saat aplikasi di jalankan. Karena view dijalan/dieksekusi di sisi server. Maka resource di PC clients akan lebih hemat.
- untuk mempermudah dalam menampilkan data. Kadang struktur database yang kita buat
agak mempersulit kita dalam proses query untuk ditampilkan di report. Contoh report untuk crosstab/pivot tabel (pivot baru ada di SQL Server 2008).
- untuk mempermudah maintain aplikasi, apabila ada proses query yang sama dan berulang
maka akan lebih simple dalam proses pembuatan aplikasi.
- untuk mengimplementasikan security. User tidak bisa melihat colom colom tabel sebenarnya.
- kekurangannya: View tidak bisa menerima parameter sebagaimana Stored Procedured (SP).

View sangat membantu kita untuk merefleksikan field-field yang tidak ada di satu table tetapi ada di table lain, untuk itu kita bisa gunakan view ini dengan cara membuat relasi (join) antar tabletable tersebut. Tetapi yang perlu diperhatikan dalam pembuatan view ini adalah tentunya
keterkaitan antara table-table yang dipakai dalam view ini, semakin banyak relasi tentuanya akan semakin berat si SQL dalam melakukan suatu proses query dalam view tersebut, karena SQL akan melakukan proses loading semua data yang ada dalam table ke dalam view, baru kemudian SQL akan memfilternya, kalau kita lakukan query berdasarkan kriteria tertentu pada view tersebut.

contoh;
misal ingin membuat repot bentuk crosstab/ pivot tabel dengan crystall report 7 dan database SQL server2000. Pivot ada di SQL server 2008.

bila di SQL query analyzer, script berikut akan menjadi pivot:
SELECT OrderID,CustomerID,
(CASE ShipVia WHEN '1' THEN Freight ELSE 0 END) AS Q1,
(CASE ShipVia WHEN '2' THEN Freight ELSE 0 END) AS Q2,
(CASE ShipVia WHEN '3' THEN Freight ELSE 0 END) AS Q3
FROM orders

tapi bila ditampilkan ke crystal report 7 akan susah (kecuali versi 10 keatas) didesain.
sehingga memerlukan view untuk membuat virtual tabel yang nantinya mudah di design memakai crystal report 7.

berikut membuat viewnya:

create view order_view as
SELECT OrderID,CustomerID,
(CASE ShipVia WHEN '1' THEN Freight ELSE 0 END) AS Q1,
(CASE ShipVia WHEN '2' THEN Freight ELSE 0 END) AS Q2,
(CASE ShipVia WHEN '3' THEN Freight ELSE 0 END) AS Q3
FROM orders

No comments: