• Tidak ada hasil yang ditemukan

Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi kolom yang yang dipilih pada tabel mahasiswa_xxx.

N/A
N/A
Protected

Academic year: 2021

Membagikan "Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi kolom yang yang dipilih pada tabel mahasiswa_xxx."

Copied!
5
0
0

Teks penuh

(1)

Praktikum

5

VIEW DAN INDEX

Tujuan :

Praktikan mampu memahami view dan index.

Alat dan Bahan :

1. Buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server

2000, khususnya mengenai view dan index.

2. Modul praktikum.

Landasan Teori : 1. View

a. View dari satu tabel

Sebuah VIEW adalah tabel yang dibangun dari satu atau beberapa tabel yang sudah ada. Secara fisik VIEW tidak membuat penyimpanan data seperti tabel, melainkan hanya menyimpan referansi/pointer ke record pada tabel-tabel yang berkaitan. VIEW disebut juga sebagai “Virtual Table”.

Secara umum aturan membuat VIEW adalah:

CREATE VIEW NamaView (Kolom1, Kolom2) AS

SELECT Kolom1, Kolom2 FROM NamaTabel WHERE predikat

Sebagai contoh adalah sebuah VIEW yang terbentuk dari satu tabel:

CREATE VIEW v1 AS

SELECT npm, Nama FROM mahasiswa_XXX

Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi kolom yang yang dipilih pada tabel mahasiswa_XXX.

Menjalankan view diatas :

SELECT * FROM v1

b. View Dari Beberapa Tabel

VIEW dapat diciptakan dari beberapa tabel, misalnya sebuah join sederhana seperti berikut: VIEW V4 terdiri atas kolom yang dihasilkan melalui SELECT atas tabel mahasiswa_XXX dan asisten_XXX.

(2)

CREATE VIEW v4 AS SELECT A.npm, M.nama

FROM asisten_XXX A,mahasiswa_XXX M WHERE A.npm=M.npm

c. Menghapus View

VIEW dapat dihapus dengan menggunakan DROP VIEW seperti berikut:

DROP VIEW v1

d. Mengubah View

Untuk dapat langsung mengubah VIEW, gunakan ALTER sama dengan syntax alter pada tabel.

e. Updating dan insert data Melalui View

Updating dapat dilakukan ke dalam VIEW dengan memberikan nilai seperti pada inserting dan updating tabel. Namun harus memperhatikan “NOT NULL” option dan CONSTRAINT lainnya, sebelum memasukkan nilai ke dalam VIEW.

CREATE VIEW v6 (npm, nama, alamat, kota) AS

SELECT npm, nama, alamat, kota FROM mahasiswa_XXX WHERE kota=’JAKARTA’

INSERT INTO v6 VALUES (’03113331’, ‘Maya Kusuma’, ’Jl. Manunggal’,

‘Tuban’)

Perhatikan bahwa walaupun dalam WHERE dibatasi kota=’JAKARTA’, namun SQL tidak dapat menolak nilai kota yang bukan ‘JAKARTA’

Agar konsistensi dapat dijaga, maka pada saat VIEW dibuat, pada akhir instruksi harus ditambahkan “WITH CHECK OPTION”

Contoh :

ALTER VIEW v6(npm, nama, alamat, kota) AS

SELECT npm, nama, alamat, kota FROM mahasiswa_XXX WHERE kota=’JAKARTA’ WITH CHECK OPTION

INSERT INTO v6 VALUES (’02113316’, ‘Puspasari’, ’Jl. Kalimosodo

9’, ‘Malang’)

Akan muncul error : ERROR at line 2:

ORA-01402: view WITH CHECK OPTION where-clause violation

2. Batasan Manipulasi Melalui VIEW

Melalui VIEW dapat dilakukan INSERT, UPDATE, dan DELETE dengan beberapa limitasi yaitu:

a. Tidak dapat memasukkan record baru jika mengabaikan nilai NOT NULL pada basis tabel

(3)

b. Tidak dapat melakukan INSERT atau UPDATE jika salah satu kolom dalam VIEW merupakan

hasil kalkulasi atau hasil dari nilai balik fungsi.

c. Tidak dapat melakukan INSERT, UPDATE, atau DELETE jika dalam VIEW terdapat GROUP BY

atau DISTINCT.

3. INDEX

a. Penggunaan Index

Dalam konteks SQL-Server, index adalah sebuah obyek database yang dibuat berdasarkan kolom dalam tabel. Index mempercepat pencarian data. Dengan menggunakan index ,data tidak perlu dicari dari awal hingga akhir, melainkan menggunakan algoritma pencarian yang efisien, sehingga waktu proses menjadi semakin cepat. Tanpa index, proses pemanggilan table scan terjadi, yang berarti query processor harus melalui masing-masing record dalam tabel secara indvidual untuk menemukan record yang sesuai dengan kriteria yang dipilih. Proses ini sama dengan mengalokasikan informasi spesifik di dalam buku. Anda dapat menggunakan daftar isi atau index untuk menemukan topik tertentu secara mudah. Tanpa itu semua, Anda harus membuka dan mencari melalui semua halaman sampai Anda menemukan yang Anda cari. Index mempunyai Overhead selain tempat memory yang lebih besar, juga reorganisasi data karena operasi insert dan delete menjadi lebih kompleks.

Dengan demikian index tidak boleh digunakan secara sembarang, melainkan dengan perencanaan dan performance tuning yang baik.

b. Memilih kolom untuk index

Index dipilih berdasarkan selektifitas dari query yaitu seberapa sering data-data pada suatu record diakses melalui select, update atau delete.

Selektifitas dipengaruhi oleh kriteria pencarian, yaitu bagaimana memenuhi kriteria tersebut dengan mengakses atribut apa saja.

Hal-hal yang dapat dijadikan landasan untuk membuat index adalah :

• Kolom yang sangat sering dicari

• Primary key dan Foreign key

• Kolom yang diakses secara abjad

• Kolom yang diakses dan sering digunakan dengan join

• Kolom yang sering dicari berdasarkan urutan (range)

• Kolom yang sering menjadi predikat pada kunci kata “Where”

Hal-hal yang menyarankan untuk tidak menggunakan index adalah :

• Hasil query melebihi 20% jumlah record

• Kolom yang mempunyai nilai valid sedikit (misalnya jenis kelamin)

• Panjang kolom yang besar.

Untuk melihat index yang sudah ada gunakan stored procedure sp_helpindex namatabel dan

sp_spaceused untuk mengetahui pemakaian disk. c. Clustered Index

Dengan Clustered index secara fisik record disusun sesuai dengan susunan index. Dengan demikian hanya ada satu clustered index yang boleh didefinisikan dalam satu tabel. Primary key adalah kandidat baik untuk menjadi clustered index (index secara implicit diciptakan melalui constraint primary key). Dalam menciptakan index, maka secara default otomatis yang dipilih adalah non clustered index.

(4)

Cara membuat index adalah:

DROP INDEX CI_NoPeg

CREATE CLUSTERED INDEX CI_NoPeg ON Pegawai (NoPeg)

DROP dijalankan untuk memastikan bahwa index tersebut belum ada.

d. Non Clustered Index

Dalam non clustered index secara fisik susunan record tidak berpengaruh. Non clustered index menyimpan pointer yang menunjuk ke baris atau record dari tabel.

Dalam sebuah tabel dapat dibuat banyak non clustered index, sejauh index tersebut dibutuhkan. Dalan syntax create index pilih NONCLUSTERED adalah default.

Cara membuatnya adalah:

DROP INDEX NI_Nama

CREATE NONCLUSTERED INDEX NI_Nama ON Pegawai (Nama)

Atau:

CREATE INDEX NI_Nama ON Pegawai (Nama)

e. Unique Index

Secara otomatis unique index diciptakan melalui constraint primary key dan unique. Sistem akan memeriksa setiap saat record baru diciptakan atau di-update.

Membuat unique index secara manual adalah:

CREATE UNIQUE INDEX UI_KTP ON Pegawai (KTP)

Tugas Pendahuluan Praktikum

1. Apa yang dimaksud dengan view ? Sebutkan keuntungan dari view !

2. Apa yang dimaksud dengan index ? Sebutkan keuntungan dari index !

3. Bagaimana hubungan sifat index dengan primary key ?

4. Apa yang dimaksud dengan clustering ? Sebutkan keuntungan dari clustering!

5. Sebutkan batasan manipulasi melalui view !

Percobaan :

Sebelum memulai, aktifkan Tools Query Analyzer

Percobaan 1 : Buat sebuah VIEW yang terdiri dari nama asisten dan honor yang mempunyai

honor diatas rata-rata (join tabel mahasiswa_XXX dan asisten_XXX)

Percobaan 2 : Buat sebuah view yang akan menampilkan isi data npm, nama, alamat, dan

nomor telpon dari mahasiswa_XXX untuk mahasiswa yang mempunyai nama ‘Bambang’ dan nomor telfonnya mengandung ’081803’ saja.

(5)

Percobaan 3 : Isi data pada data mahasiswa_XXX melalui view yang dibuat dengan data :

NPM : 02311815

Nama : Erich Irmanto

Jenis Kelamin : Laki-Laki

Alamat : Jl. KS. Tubun Banjarmasin Kalsel

Telp : 08122553201

NPM : 03113406

Nama : Nyoman Sutrisna

Jenis Kelamin : Laki-Laki

Alamat : Poharin B20 Malang Jatim

Telp : 0354333456

NPM : 02311832

Nama : Dyah Ayu Puspita Sarie

Jenis Kelamin : Perempuan

Alamat : Jl. Danau Tondano Dalam 42 Malang Jatim

Telp : 0354232323

Percobaan 4 : Buat view dari tabel asisten_XXX dan lakukan update data honor dengan

memberikan THR pada setiap asisten dengan jumlah 23 % dari honor yang diterima.

Percobaan 5 : Buat view dari tabel asisten_XXX dan lakukan update data honor dengan

memberikan bonus bagi yang mengajar lebih dari 7 jam sebasar 5 % dari total honor yang diterima.

Percobaan 6 : Buat view dari tabel mahasiswa_XXX dan lakukan update data propinsi

menjadi Jabar bila npm memiliki angka ganjil di setiap akhir npm. Gunakan fungsi IN

Referensi

Dokumen terkait

1) Pembelajaran Aktif yaitu pembelajaran yang lebih berpusat pada peserta didik (student centered) dari pada berpusat pada guru (teacher centered). Fingsi dan peran guru lebih

Setelah penerapan INSW, customs clearance jalur hijau cenderung lebih cepat dan volume impor serta bea masuk cenderung meningkat.. Custom clearance impor jalur hijau lebih cepat

Hasil pendaftaran SE2016 menunjukkan bahwa distribusi tenaga kerja menurut kategori lapangan usaha, sejalan dengan jumlah usaha/perusahaan yaitu didominasi oleh lapangan

Ada lima jenis karakter mainan action figures yang menjadi tokoh protagonis yaitu Aquaman, Wonder Women, Captain America, Winter Soldier, dan Black Panther sebagai Tim

Kerangka fikir juga merupakan sebuah konsep yang akan memberikan penjelasan terhadap pendekatan teori yang digunakan untuk membahas pesan sosial yang terdapat dalam film Aisyah

Berdasarkan hasil pengolahan dan analisis data, maka dapat ditarik beberapa kesimpulan sebagai berikut, Pada proses procurement yang berjalan selama ini ditemukan

 Melakukan pelayanan yang prima kepada semua nasabah yang datang ke loket PT Bank Tabungan Negara (Persero) Cabang Bandar Lampung maupun melalui telepon..  Melakukan

Melihat kedua definisi di atas, dapat diambil kesimpulan bahwa proses produksi merupakan kegiatan untuk menciptakan atau menambah kegunaan suatu barang atau jasa