Rabu, 19 November 2008

tugas SQL new

1 create view View_Buku(Kd,Jdl,Pgr,Pnb,Hrg,Jml)
as
select Kode, Judul, Pengarang, Penerbit, Harga, Jumlah
from buku

2 Select Kd [KODE BUKU], Jdl [JUDUL BUKU], Pgr [PENGARANG], Pnb [PENERBIT], Hrg [HARGA BELI], Jml [JUMLAH BUKU]
from View_Buku

3 Insert into View_Buku
Values('44444','Membelah Pusaran Air','Susianah','Biru Langit',25000,12)

4 Update View_Buku
set Hrg = Hrg + ((Hrg * 100)/1000
where Kd = '44444'

5 Create View Insert-Jual
as select * from Jual

Insert into Insert_Jual
values('0000001','03/14/2005','44444',40000,1)

6 Create View V_Lihat_Jaul
as
Select Tgl_Jual, Judul, Hrg_Jual, Jml_Jual,(Hrg_jual * Jml_Jual) [TOTAL HARGA]
from Buku B inner join Jual J
on B.Kode = J.Kd_Buku
where Tgl_Jual = '03/14/2005'

7 Create View V_Total_Beli
as
Select Kd_Dis, count (*) [Jumlah Data],
sum (Hrg_Beli * Jml_Beli) [Total Pembelian]

8 Create View View_Jual
as
Select * from Jual
go
insert into View_Jual
values('0000002','03/25/2005','22222',47500,1)
insert into View_Jual
values('0000003','03/27/2005','22222',47500,5)
insert into View_Jual
values('0000004','03/27/2005','22222',47500,3)

9 Create View View_Rata_Jual
as
Select *
from Jual
where Jml_Jual >= (select avg (Jml_Jual)
from Jual Where Kd_Buku = '22222')

Selasa, 18 November 2008

Tugas SQL

PEMAKAIAN VIEW


View merupakan tabel virtual yang keberadaannya tidak ada di dalam database dimana isinya didefinisikan oleh sebuah query


Beberapa operasi yang dapat dilakukan pada view antara lain Select, Insert, Update dan Delete


Pemakaian view yang ber-index dapat meningkatkan kecepatan kecepatan view yang kompleks. View seperti ini sering dipakai pada Data Warehouse dan sistem pendukung keputusan (Decision Support System).


Manfaat Pemakaian View

Banyak manfaat yang didapatkan dari pemakainan perintah view, antara lain:

  1. Menyederhanakan manipulasi data

  2. Memfokuskan data tertentu

  3. Menyesuaikan data dengan kebutuhan user

  4. Mengirim dan menerima data

  5. Mengkombinasikan data yang terpartisi


Tipe-tipe View

Beberapa tipe view yang dapat anda buat berdasarkan kebutuhan, antara lain:

  1. kumpulan kolom

  2. kumpilan baris

  3. gabungan dari beberapa tabel

  4. informasi Anggregate


Membuat View melalui Query Analyzer

Bentuk penulisan perintah query dalam membuat suatu view sebagai berikut :


Create View nama_view [(kolom1, kolom2, . . .) ]

As

Perintah_query


Buat suatu view dengan nama VIEW_DATA_BARANG yang bertujuan untuk menampilkan data-data dari tabel BARANG yang meliputi field Kode, Nama dan Jumlah


Create View VIEW_DATA_BRG(Vkode, Vnama, VJumlah)

As

Select Kode, Nama, Jumlah

From BARANG





Mengubah View melalui Query Analyzer

Bentuk penulisan perintah query untuk mengubah suatu view sebagai berikut :


Alter View nama_view [(kolom1, kolom2, . . .) ]

As

Perintah_query


Mengubah view yang bernama VIEW_DATA_BARANG dengan menambahkan syarat yaitu data barang yang ditampilkan hanya yang mempunyai kode barang “EL123”


Alter View VIEW_DATA_BRG(VKode, VNama, VJumlah)

As

Select Kode, Nama, Jumlah

From BARANG

Where Kode = ‘EL123’


Menghapus View melalui Query Analyzer

Bentuk penulisan perintah query untuk menghapus suatu view sebagai berikut :


DROP VIEW { view } [ ,...n ]


Menghapus tiga view yang pernah dibuat masing-masing VIEW_1, VIEW_2 dan VIEW_3 secara bersama-sama

Drop View VIEW_1, VIEW_2, VIEW_3


Mengakses Data Dengan View


Perubahan-perubahan yang dapat dilakukan antara lain pada perintah

Select, Insert, Update dan Delete

Untuk perintah Select, data yang diambil atau ditampilkan dapat berasal dari satu tabel maupun banyak tabel. Sedang untuk perintah Insert, Update dan Delete modifikasinya hanya mempengaruhi satu tabel dasar yang diacu oleh view

Terdapat beberapa syarat yang harus dipenuhi untuk mengubah data melalui view, antara lain :

  • Sebuah view minimal berisi sebuah tabel pada kata kunci From

  • Kata kunci Select tidak menggunakan field yang diambil dari field lain atau hasil suatu perhitungan

  • Kata kunci Select tidak menggunakan fungsi Aggregate atau kata kunci GROUP BY, DISTINCT, UNION atau TOP. Fungsi Aggregate dapat digunakan pada subquery yang didefinisikan pada kata kunci From yang menyatakan nilai-nilai yang dihasilkan fungsi Aggregate tidak diubah





Membuat sebuah view dengan nama V_JOIN_BELI yang bertujuan menampilkan data tanggal pembelian, nama supplier, nama barang, harga pembelian dan jumlah pembelian dari tabel barang, pembelian dan supplier khusus untuk barang yang jumlah pembeliannya antara 8 sampai 23


Alter view V_JOIN_ BELI

As

Select tgl_beli, nama_supplier, nama, hrg_beli, jml_beli

From (barang B inner join pembelian P on B.kode = P.kd_barang)

Inner join supplier S on P.kd_sup = S. kode_sup

Where P.jml_beli between 8 and 23



PEMAKAIAN INDEX


Index merupakan salah satu komponen database yang dibuat berdasarkan kolom dalam tabel dan dipakai untuk meningkatkan kecepatan pencarian data

Dengan menggunakan index, data tidak perlu dicari dari awal hingga akhir, melainkan menggunakan menggunakan algoritma pencarian yang paling efisien sehingga waktu proses menjadi sangat cepat

Beberapa hal yang dapat dijadikan landasan untuk membuat index, antara lain :

  • Kolom atau field pada tabel yang sering dicari

  • Pembentukan Primary Key dan Foreign Key

  • Kolom atau field yang sering digunakan oleh perintah Join

  • Kolom atau field yang diakses secara abjad (tersusun)

  • Kolom atau field yang sering dicari berdasarkan urutan (range)

  • Kolom atau field yang sering menjadi predikat pada pemakaian kata kunci Where

Beberapa hal yang disarankan untuk tidak menggunakan Index, antara lain :


  • Hasil dari proses query melebihi 20% jumlah data (record)

      • Kolom atau field yang mempunyai nilai valid paling sedikit (misalnya field jenis kelamin, hanya berisi “L” atau “P”)

    • Ukuran kolom terlalu panjang


MACAM-MACAM INDEX

  • Index Key

Kekuatan utama dari index key adalah kolom atau field. Kolom merupakan obyek utama yang dapat digunakan untuk membangkitkan index

Terdapat dua jenis index key yang dapat dibuat di SQL Server yaitu :


    • Simple Index

Simple index merupakan index yang dibentuk hanya dengan satu kolom saja dalam suatu tabel.

    • Composite Index

index merupakan index yang dibentuk oleh lebih dari satu kolom atau field.

  • Unique Index

Unique index merupakan index yang hanya berisi satu baris data dari masing-masing index key.

  • Ununique Index

Bentuk dari ununique index hampir sama dengan unique index, hanya pada non-unique index nilai yang ada pada kolom atau field sebagai pembentuk index boleh sama.


MEMBUAT INDEX MELALUI QUERY ANALYZER

Secara umum bentuk penulisan index dengan menggunakan utilitas Query Analyzer, sebagai berikut :


CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX nama_index
ON {table|view } (column [ASC|DESC] [,...n ])
[WITH <> [ ,...n]]
[ON filegroup]

<> :: =
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB }


Membuat suatu index dengan nama I_SUP pada tabel SUPPLIER dengan field kunci Kode_Sup. Index yang dibuat adalah index unik dan nonclustered


Create Index I_SUP

ON SUPPLIER(Kode_Sup)


OPTION INDEX


Option index adalah nilai-nilai yang diikutkan pada saat pembuatan suatu index. Nilai-nilai ini sifatnya tidak mutlak untuk digunakan sehingga penggunaannya pada kasus-kasus tertentu.


  • Option PAD_INDEX
    Option PAD_INDEX digunakan untuk menspesifikasikan space untuk membuka pada masing-masing page (node) dalam intermediate level index. PAD INDEX akan bermanfaat jika FILLFACTOR juga dispesifikasikan.


Membuat index dengan nama I_PAD pada tabel SUPPLIER dengan field kunci Kode_Sup


Create UNIQUE Index I_PAD

ON SUPPLIER(Kode_Sup)

With PAD_INDEX


  • Option FILLFACTOR
    Option FILLFACTOR digunakan untuk menspesifikasikan prosentasi yang menggambarkan bagaimana SQL Server seharusnya membuat level halaman untuk masing-masing index.


Membuat sebuah index dengan nama I_FILL pada tabel SUPPLIER dengan field kunci Nama_Sup dan fillfactor 70%.


Create Index I_FILL

ON SUPPLIER(Nama_Sup)

With FILLFACTOR = 70


  • Option DROP_EXISTING
    Option DROP_EXISTING digunakan untuk menspesifikasikan peletakan ulang clustered atau nonclustered index dengan menghapus dan membangunnya kembali.


Membuat index dengan nama I_IGNORE (index I_IGNORE sudah pernah dibuat dengan field kunci Kode_Sup) pada tabel SUPPLIER akan diganti berdasarkan field kunci Nama_Sup.


Create UNIQUE Index I_IGNORE

ON SUPPLIER(Nama_Sup)

With DROP_EXISTING


MENGHAPUS INDEX

Bentuk penulisan perintah query untuk menghapus suatu index sebagai berikut :


DROP INDEX 'table.index | view.index' [ ,...n ]