Professional Documents
Culture Documents
SQL Server
Modul 4
S. Halim
2007
4.1
Sebelum memulai topik ini, Anda dianggap telah menguasai dasardasar pemrograman SQL, mengenal dengan baik perintah-perintah baik DDL maupun DML. Karena pada modul ini kita hanya akan membahas tentang
mengakses data dari ser er. Sedangkan Ser er merupakan obyek berupa aplikasi yang menyediakan layanan terhadap data yang ada untuk klien-klien. Layanan yang disediakan dapat berupa analisa, pencarian dan pembaharuan data.
4.1.2
Instalasi SQL Server )ada topik ini kita akan menggunakan Microsoft SQL Ser er !""". ,nstalasi SQL Ser er dibedakan men'adi dua yaitu ,nstalasi Ser er dan ,nstalasi -lient.
4.1.2.1 Instalasi Server )roses instalasi ser er dapat dilakukan secara local atau remote. .. ,nstalasi secara local a. )roses instalasi dimulai dengan memilih SQL Ser er
!""" -omponents.
b. Kemudian pilihlah ,nstall Database Ser er. c. Anda akan melihat kotak diaLog SQL Ser er !"""
,nstallation
melan'utkan.
1i+ard.
(ekan
tombol
2e3t
untuk
e. Klik -reate A 2e4 ,nstance 5f SQL Ser er dan tekan tombol 2e3t. f. Masukkan nama dan perusahaan pada 4indo4 6ser
Ser er
Ser er
And
-lient
(ools
pada
4indo4
berikutnya.
'.
Anda kemudian akan melihat diaLog ,nstance 2ame. 8ika Anda ingin mengubah nama instance SQL Ser er, hilangkan tanda centang pada pilihan Default dan masukkan nama yang anda inginkan. (ekan 2e3t.
l.
dengan account 1indo4s dan account SQL Ser er. 8ika Anda memilih
Mi3ed
Mode,
maka
'angan
lupa
n. ,kuti sa'a petun'uk setup berikutnya. Lama instalasi tergantung pada kecepatan sistem Anda. !. ,nstalasi secara remote a. Lakukan langkah a, b, c pada instalasi local. b. )ada diaLog -omputer 2ame pilih #emote -omputer dan ketikkan nama komputer pada sistem remote. (ekan 2e3t untuk melan'utkan. c. Lakukan langkah e, f, g, h pada instalasi local.
e. Masukkan nama user, pass4ord dan domain untuk komputer dimana Anda ingin melakukan instalasi. )astikan
account
yang
Anda
gunakan
memiliki
ke4enangan untuk melakukan instalasi aplikasi pada komputer yang bersangkutan. Masukkan pula (arget
9iles>Microsoft
SQL Ser er. (ekan 2e3t untuk melan'utkan. f. )ilihlah Ser er And -lient (ools pada diaLog ,nstallation
Definition.
g. Langkah selan'utnya sama dengan langkah instalasi dari
local.
h. Ketika proses instalasi SQL Ser er berhasil melakukan koneksi ke komputer remote, maka proses instalasi akan berlangsung seperti instalasi local.
)roses instalasi client sama mudahnya dengan instalasi ser er. a. Lakukan langkah a s@d h pada instalasi ser er dari local. b. )ilih -lient (ools 5nly pada diaLog ,nstallation Definition dan tekan 2e3t untuk melan'utkan. c. Anda kemudian akan men'umpai diaLog
Select
-onnecti ity,
%ooks
5nline,
dan
De elopment
(ools
merupakan pilihan default dari SQL Ser er. d. (ekan tombol 2e3t pada diaLog Start -opying 9iles dan proses instalasi akan berlangsung hingga selesai.
4.2
%asis data $Database& merupakan sekumpulan obyek berupa tabel dan obyek lainnya yang berfungsi menangani data-data di dalam tabel-tabel pada basis data tersebut.
4.2.1
Komponen Basis Data SQL Server %asis data SQL Ser er disusun oleh beberapa komponen antara lain sebagai berikutA
.. )hysical Database
Merupakan kumpulan 9ile-9ile fisik yang membentuk sebuah basis data. )hysical database memiliki ! atau lebih physical operating
a. Master
%asis data ini terdiri dari tabel-tabel sistem yang mencatat keseimbangan sistem SQL Ser er secara keseluruhan. Misalnya ketika kita membuat basis data baru pada ser er, maka proses itu akan dimasukkan ke dalam tabel sysDatabase pada basis data Master. %asis data ini sangat kritikal untuk sistem dan tidak boleh dihapus
b. Model
%asis data ini menyediakan bentuk dasar dari sebuah basis data yang dapat diduplikasi. Dengan kata lain basis data ini berperan sebagai template bagi setiap basis data baru yang kita buat. c. Msdb %asis data ini digunakan SQL Ser er untuk menyimpan instruksi-instruksi sistem yang dihasilkan oleh proses SQL Agent, misalnya pen'ad4alan proses backup pada basis data, pencatatan history, dan sebagainya. %ila basis data ini dihapus maka proses pen'ad4alan, history, SQL Agent akan hilang dari SQL Ser er. d. (empdb
%asis data ini digunakan sebagai tempat penyimpanan sementara ketika Ser er beker'a. %asis data ini dibuat dari a4al setiap kali SQL Ser er di'alankan. Ketika kita melakukan
e. 6ser Database
Merupakan basis data yang dibuat oleh pengguna. )ada SQL
:. Log 9iles Setiap basis data memiliki 9ile Log untuk mencatat seluruh informasi yang ada sebelum informasi tersebut ditulis ke dalam
.. (abel !. ,ndeks
Selain obyek, SQL Ser er 'uga memiliki tipe datanya sendiri. (ipe data ini digunakan untuk mendefinisikan ukuran-ukuran data di dalam tabel atau ariabel dalam pemrograman SQL. SQL ser er 'uga memiliki tipe data yang disebut 26LL. (ipe data ini hanya digunakan ketika Anda tidak ingin mendefinisikan suatu nilai pada suatu data.
Tipe Data
Penjelasan ,nteger $bilangan bulat& E-byte. Data biner dengan ukuran n bytes, dimana n
!uran E bytes
bigint
binaryF$n&G
bernilai dari . s@d E""". Digunakan 'ika entri data pada kolom diperkirakan memiliki ukuran yang sama atau berdekatan.
n H 0 bytes
. byte untuk (ipe data integer yang hanya dapat bernilai ., ", kolom E-bit, !
bit
atau 26LL. Kolom dengan tipe data ini tidak dapat bytes untuk memiliki indeks. kolom I-.= bit, dst...
charF$n&G
Data non-6nicode dengan 'umlah n karakter, dimana n bernilai dari . s@d E""".
n bytes
cursor
datetime
Data tanggal dan 4aktu dari . 8anuari .D7: s@d :. Desember IIII, dengan akurasi :.:: mili-detik %ilangan dengan skala dan presisi yang ditentukan. $tipe data numeric bersinonim dengan decimal.& )resisi $p& menentukan 'umlah digit yang dapat
E bytes
disimpan, baik kiri maupun kanan koma. Skala $s& menentukan 'umlah digit maksimum yang dapat ditampung di belakang koma. Skala harus lebih kecil atau sama dengan presisi. )resisi minimum adalah . dan maksimum !E kecuali SQL Ser er di'alankan dengan parameter -p, 'ika demikian, presisi dapat mencapai :E digit. Data numerik dari -..DI* H:"E s@d ..DI* H:"E. 2ilai n berkisar antara . sampai 7:. Digunakan untuk data biner dengan ukuran lebih dari E""" bytes, maksimum !K:. - . bytes. Data ,nteger $bilangan bulat& dari -!K:. $!,.0D,0E:,=0E& s@d !K:. - . $!,.0D,0E:,=0D& Data dengan nilai uang dari -!K=: $-
floatF$n&G
image
integer or int
0 bytes
money
I!!,::D,!":,=E7,0DD.7E"E& s@d !K=: - . $I!!,::D,!":,=E7,0DD.7E"D& Data karakter 6nicode dengan 'umlah n karakter, dimana n bernilai antara . s@d 0""". Karakter
E bytes
ncharF$n&G
6nicode menggunakan ! bytes untuk setiap character dan mendukung semua karakter internasional.
.= bytes untuk pointer dan ! bytes L 'umlah karakter ! bytes L 'umlah karakter
nte3t
'umlah karakter maksimum !K:" - . $.,"D:,D0.,E!:&. Data karakter 6nicode dengan ukuran ber ariasi
n archar
real
Data numerik dengan ukuran dari :.0"*H:E s@d :.0"*H:E. %ersinonim dengan float$!0&. Data tanggal dan 4aktu dari . 8anuari .I"" s@d = 8uni !"DI, dengan tingkat akurasi . menit. Data ,nteger dari -!K.7 $-:!,D=E& s@d !K.7 - . $:!,D=D& Data dengan nilai uang dari -!.0,D0E.:=0E s@d !.0,D0E.:=0D. Mengi+inkan nilai dari tipe data yang berbeda. (ipe data khusus, system-supplied, atau SQL
0 bytes
smalldatetime
0 bytes
smallint
! bytes
smallmoney
sMlN ariant
sysname
yang artinya mampu menampung .!E karakter 6nicode $atau !7= bytes&. /unakan sysname untuk mengacu pada kolom yang menyimpan nama obyek. Deklarasi meliputi daftar kolom dan tipe data.
!7= bytes
table
Dapat digunakan untuk mendefinisikan ariabel lokal atau untuk mengembalikan nilai dari userdefined function.
te3t
Digunakan untuk data karakter non-6nicode yang ukurannya lebih dari E""" byte. Maksimum
.= bytes
timestamp
setiap kali suatu baris data dimasukkan atau diperbaharui. Setiap tabel hanya boleh memiliki . kolom dengan tipe timestamp.
E bytes
tinyint uniMue-identifier
Data ,nteger dari " s@d !77. Menyimpan nilai biner .=-byte yang merupakan globally uniMue identifier $/6,D& Data biner dengan ukuran ber ariasi, dimana n
arbinary
bernilai antara . s@d E""". /unakan arbinary 'ika aktual yang ukuran data di dalam kolom diperkirakan akan cukup ber ariasi. Data karakter non-6nicode dengan ukuran n karakter, dimana n bernilai antara . s@d E""". dimasukkan H 0 bytes )an'ang data aktual yang dimasukkan
archarF$n&G
4."
(ransact-SQL adalah bahasa pemrograman SQL yang digunakan oleh Microsoft SQL Ser er untuk mengirim perintah $berinteraksi& antara klien dan
ser er. Sama seperti bahasa SQL lainnya, (ransact-SQL $(-SQL& terdiri dari
DDL $Data Definition Language& dan DML $Data Manipulation Language&.
)erintah-perintah DDL dan DML pada (-SQL kurang lebih sama dengan bahasa SQL lainnya.
4.".1
'!spresi
merupakan
kombinasi
dari
simbol-simbol
dan
O constant P scalarNfunction P F alias. G column P localN ariable P $ e3pression & P $ scalarNsubQuery & P O unaryNoperator Q e3pression P e3pression O binaryNoperator Q e3pression P rankingN4indo4edNfunction P aggregateN4indo4edNfunction Q
constant
spesifik. constant dapat berupa satu atau lebih karakter alfanumerik $a-+, A-R, "-I& atau simbol $S&, $T&, $U&, dsb. 6nit sintaks (ransact-SQL yang menyediakan fungsi
scalarNfunction
khusus dan mengembalikan nilai tunggal. Misalnya fungsi S6M, /*(DA(*, atau -AS(.
F alias. G
Alias atau nama korelasi yang ditentukan pada tabel dengan key4ord AS dalam klausa 9#5M. 2ama kolom. 2ama ariabel yang dibuat oleh pengguna. Semua ekspresi yang alid. Diberi tanda kurung
$ e3pression &
$ scalarNsubQuery &
Sub Query yang mengembalikan . nilai. -ontohA S*L*-( -ount$,D& 9#5M (ableData
5perator yang hanya memiliki . operan numerikA O unaryNoperator Q H angka positif. - angka negatif V operator . komplemen
5perator unary hanya bisa diaplikasikan pada ekpresi yang menge aluasi tipe data yang tergolong dalam data numerik. 5perator yang menentukan bagaimana dua ekspresi digabungkan untuk menghasilkan satu nilai. binaryNoperator dapat men'adi operator O binaryNoperator Q aritmatika, operator assignment $W&, operator bit4ise, operator perbandingan, operator Logikal, operator penggabungan string$H&, atau operator unary.
rankingN4indo4edNfunction 9ungsi rangking (ransact-SQL. aggregateN4indo4edNfunction 9ungsi agregat (ransact-SQL dengan klausa 5C*#.
)aria*el adalah suatu referensi atas lokasi memori yang menyimpan data. %ila Anda beker'a pada data yang berubah-ubah dan ingin menempatkan data tersebut pada lokasi memori yang sama maka Anda harus mendefinisikan ariabel. Cariabel meru'uk pada
lokasi dimana data anda tersebut disimpan. Cariabel pada aplikasi SQL manapun secara umum dikelompokkan ke dalam ! bagian yaituA
TT9*(-JNS(A(6S Cariabel ini bernilai " bila pernyataan 9*(-J berhasil mengambil data. Cariabel ini diinisialisasi setelah pernyataan 9*(-J dieksekusi dan umumnya digunakan untuk menghentikan perulangan 1J,L* pada cursor. Cariabel TT9*(-JNS(A(6S 'uga dapat bernilai X!, bila baris data yang ingin diambil telah dihapus setelah cursor dibuat. 2ilai ini hanya berlaku untuk cursor keyset-dri en $scroll&. TT-6#S5#N#51S, TT#51-562( Cariabel TT-6#S5#N#51S mengembalikan 'umlah baris data dalam cursor yang terbaru. Sedangkan ariabel TT#51-562(
Keterangan 8umlah Login 8umlah total 4aktu ser er -)6 dalam detik 8umlah 4aktu -)6 yang sedang tidak beker'a 8umlah 4aktu ,nput@5utput ,D %ahasa yang sedang aktif 2ama %ahasa yang sedang aktif Maksimum koneksi dalam 4aktu yang sama (ingkat ketelitian nilai desimal atau numerik 8umlah nest le el yang sedang aktif 2ama ser er lokal ,D Ser er yang sedang proses 8umlah kesalahan selama SQL ber'alan 8umlah pembacaan pada Disk 8umlah penulisan pada Disk (otal transaksi yang dilakukan acti e user
b. 6ser-Defined Cariable
8ika ariabel global adalah ariabel yang dibuat oleh sistem, maka ariabel ini adalah ariabel yang didefinisikan sendiri oleh user. Dalam (-SQL, caranya adalahA D*-LA#* TnamaN ariabel tipeN ariabel
-ontohA D*-LA#* TintA ,2( D*-LA#* TintZ ,2(, TintY ,2(, TR -JA#$7&
4.".2
,ungsi%-ungsi
9ungsi dalam (ransact-SQL dikelompokkan men'adi beberapa bagian. %erikut adalah beberapa kelompok fungsi yang sering digunakanA a. 9ungsi String 9ungsi-fungsi terkait manipulasi string adalah sebagai berikutA AS-,,$karakter&, untuk mendapatkan nilai dari karakter -har$nilai&, kebalikan dari fungsi AS-,, -har,nde3$pola, ekspresi&, mengembalikan posisi dari hasil pertama dari pencarian argumen pertama dalam argumen kedua. 8ika Anda mengenal Cisual %asic, maka fungsi ini sama dengan ,ntStr$&. Left$string,n&, mengembalikan string dari kiri se'auh n karakter #ight$string,n&, mengembalikan string dari kanan se'auh n karakter Len$string&, mengembalikan pan'ang string DataLength$ ariabel&, mengembalikan pan'ang dari yang dideklarasikan ariabel
Lo4er$string&, mengubah string men'adi huruf kecil 6pper$string&, mengubah string men'adi huruf kapital Ltrim$string&, menghilangkan spasi di bagian kiri string #trim$string&, menghilangkan spasi di bagian kanan string Space$n&, menambah spasi se'umlah n
S(#$float,n,dec&, mengubah ekspresi float men'adi string sesuai dengan pan'ang karakter n dan dec untuk menentukan 'umlah angka di belakang koma. MisalnyaA )#,2( S(#$:..0.7I, 0, !& Jasilnya :..0
#eplace$string.,string!,string:&,
untuk
mengganti
setiap
kesamaan string. di dalam string! dengan string:. #eplicate$karakter,n&, untuk mengembalikan string baru
dengan mengulang karakter sebanyak n-kali. #e erse$string&, membalikkan urutan karakter dari string Substring$string,m,n&, mengembalikan string yang diambil dari m sepan'ang n. Sama dengan fungsi Mid$& dalam Cisual %asic 2char$nilai&, mengembalikan karakter 6nicode dari nilai S(699$string.,m,n,string!&, mengganti bagian dari string. mulai dari m sepan'ang n dengan string!. -ontohA D*-LA#* Ts -JA#$:"& S*( Ts W [C% )rogramming\ S*( Ts W S(699$Ts,.,!,\SQL\& )#,2( Ts
b. 9ungsi Kon ersi 9ungsi-fungsi terkait kon ersi data adalah sebagai berikutA
-on ert$tipedata, ar,style&, untuk mengkon ersi tipe data dari ar men'adi tipe data yang didefinisikan. Sedangkan argumen style untuk menentukan format tanggal ketika mengkon ersi tipe data Date(ime dan SmallDate.
-ast$ ariabel AS tipedata&, untuk mengkon ersi ariabel atau nilai ke dalam tipe data yang ditentukan.
c.
9ungsi (anggal dan 1aktu 9ungsi-fungsi terkait dengan penanggalan dan 4aktu adalah sebagai berikutA /etDate$&, mengembalikan tanggal dan 4aktu saat ini dari mesin yang men'alankan SQL Ser er DateAdd$inter al,num,datetme&, menambah nilai argumen datetime dengan inter al yang diberikan. 2ilai inter al yang dapat digunakan ditun'ukkan dalam tabel berikutA
Interval year Muarter month dayofyear day 4eek 4eekday hour minute second millisecond
/ange .D7:XIIII .X0 .X.! .X:== .X:. .X7: .XD "X!: "X7I "X7I "XIII
DateDiff$inter al,datetime.,datetime!&, untuk me-ngembalikan selisih antara datetime. dan datetime! dalam inter al yang diberikan.
Date)art$inter al,datetime&,
mengembalikan
integer
yang
me4akili bagian dari datetime. Date2ame$inter al,datetime&, bagian datetime. -ontohA Date2ame$month, ;:.@"7@!""D<& Jasilnya adalah May Day$&, Month$&, Year$&, mengembalikan hari, bulan dan tahun. mengembalikan nama dari
mengembalikan hari nilai dengan pembulatan yang ditentukan. 9loor$numericNe3pression&, mengembalikan nilai integer
terbesar yang kurang dari atau sama dengan nilai yang diberikan. -eiling$numericNe3pression&, mengembalikan nilai integer
terkecil yang lebih besar dari atau sama dengan nilai yang diberikan. SQ#($floatNe3pression&, mengembalikan akar dari nilai yang diberikan. )o4er$numericNe3pression, y&, mengembalikan nilai pangkat sesuai dengan faktor pangkat y yang diberikan.
mengembalikan ekspresi pertama yang tidak null dalam daftar argumen yang diberikan. Misalnya Anda ingin mengetahui kolom yang isinya 2ull, maka Anda dapat melakukan dengan cara berikutA S*L*-( nip, -5AL*S-*$alamat, nama& 9#5M )ega4ai
,s2ull$kolom,nilai&, 8ika argumen pertama tidak null maka yang dikembalikan adalah nilai dari argumen pertamanya. %ila null maka nilai dari argumen kedua yang dikembalikan. MisalnyaA. S*L*-( namaNbarang, ,S26LL$harga, "."& 9#5M %arang
2ull,f$ekspresi.,ekspresi!&, 'ika kedua argumen bernilai sama maka yang dikembalikan adalah null. 8ika berbeda maka argumen pertama yang dikembalikan.
4."."
Statement Statement
merupakan pernyataan-pernyataan yang dapat
Atau, ,9 kondisi %*/,2 Omultiple StatementsQ *2D *LS* %*/,2 Omultiple StatementsQ *2D
!. -AS* 9ungsi pernyataan -AS* sama dengan ,9. %erikut adalah sintaks penggunaannya dalam (-SQLA -AS* ekspresiNinput 1J*2 ekspresiN. (J*2 ekspresiNoutputN. ...
pernyataan 1J,L*. )erulangan sering digunakan terutama ketika ingin mengambil data dari cursor. 8ika pernytaan yang akan di'alankan hanya sebaris maka %*/,2@*2D tidak diperlukan sama halnya dengan pernyataan ,9. Sintaks dalam (-SQL adalah
1J,L* kondisi
Query
ini
digunakan
untuk
mengambil
atau
mengekstrak data-data dari tabel-tabel di dalam database. %erikut adalah sintaksnya dalam (-SQLA S*L*-( F ALL P D,S(,2-( G F(5) ekspresi F)*#-*2(G G ] selectNlist ^ F ,2(5 ne4Ntable G F 9#5M O ]tabel^ Q F ,...n G G F 1J*#* ]kondisi^ G F /#56) %Y F ALL G ekspresi F ,...n G F JAC,2/ ] kondisi ^ G F 5#D*# %Y orderNe3pression F AS- P D*S- G G
-ontohA Menampilkan semua data dari tabel produk secara berurut. S*L*-( L 9#5M )roduk 5#D*# %Y 2ama AS-
Menampilkan nama kota dari tabel karya4an dimana tidak boleh ada nama kota yang berulang. S*L*-( D,S(,2-( Kota 9#5M Karya4an
Menampilkan data produk dengan kode bera4alan ;%K< ke dalam tabel sementara bernama tabelNprod. S*L*-( L ,2(5 UtabelNprod 9#5M )roduk 1J*#* Kode L,K* ;%KB<
Menampilkan harga rata-rata produk diatas 7""" dengan pengelompokan berdasarkan kode produk dan memiliki nama dia4ali dengan huruf ;%<. S*L*-( Kode, AC/$Jarga& AS ;Jarga #ata-#ata< 9#5M )roduk 1J*#* JA#/A ^ 7""" /#56) %Y Kode JAC,2/ 2ama L,K* ;%B<
!. Query ,2S*#(
-ontohA
,2S*#( ,2(5 )roduk $Kode, 2ama, Jarga& CAL6*S $;A"".!, _)aragon_, !7"""& &`
:. Query 6)DA(*
6)DA(* ]nama tabel^ F (5) $ ekspresi & F )*#-*2( G G S*( O kolom W O ekspresi P D*9A6L( P 26LL Q Q F 9#5MO ]tabel^ Q F ,...n G G F 1J*#* O ]kondisi^ Q G
-ontohA
0. Query D*L*(*
D*L*(* F (5) $ ekspresi & F )*#-*2( G G F 9#5MO ]tabel^ Q F ,...n G G F 1J*#* O ]kondisi^ Q G
-ontohA Japus semua data produk yang harganya di atas !7"""" D*L*(* 9#5M )roduk 1J*#* Jarga ^ !7""""
4.".4
,ungsi #gregat
9ungsi-fungsi agregat biasanya digunakan didalam pernyataanpernyataan Query. 9ungsi ini antara lain sebagai berikutA .. Ma3$& Digunakan untuk mencari nilai yang terbesar. -ontohA
0. -ount$& Digunakan untuk menghitung 'umlah baris data dalam tabel. -ontohA
4.".2
nion (an 3oin nion berguna untuk menggabungkan kolom yang memiliki tipe
data yang sama dan berasal dari dua tabel yang berbeda. Sintaks
-ontohA
(abelN. dan (abelN! memiliki struktur seperti di ba4ah iniA (abelN. ,D KolomZ ,nt char$:& (abelN! ,D KolomY ,nt char$:&
,2S*#( ,2(5 (abelN. CAL6*S $;A%-<& ,2S*#( ,2(5 (abelN. CAL6*S $;D*9<& ,2S*#( ,2(5 (abelN! CAL6*S $;D*9<& ,2S*#( ,2(5 (abelN! CAL6*S $;ZYR<&
8ika Anda menambahkan ALL setelah 62,52 maka hasilnya adalah KolomZ A%D*9 D*9 ZYR $0 ro4$s& affected&
Data yang muncul hanyalah data dari kode yang sama antara Kode)rod di tabel )roduk dan tabel Sales.
!. 5uter 8oin
5uter 8oin dibedakan lagi men'adi ! 'enis, yakniA a. Left 5uter 8oin
Menggabungkan tabel dimana tabel kiri yang men'adi patokan.
S*L*-( F]nama tabel^G.field F,..nG 9#5M ]nama tabel.^ L*9( F56(*#G 85,2 ]nama tabel!^ 52 F]nama tabel.^G.field W F]nama tabel!^G.field
-ontohA
(abelN. Kode "". ""! 2ama Sammy Jelen Alamat )emuda 2o. ."" Keluarga 2o. :I"
(abelN! Kode ""! ""! Materi SQL Ser er 1eb )rogramming 2ilai I" IE
S*L*-( t..Kode, 2ama, Materi, 2ilai 9#5M (abelN. t. L*9( 56(*# 85,2 (abelN! t! 52 t..Kode W t!.Kode
Jasil Kode "". ""! ""! 2ama Sammy Jelen Jelen Materi 26LL SQL Ser er 1eb )rogramming 2ilai 26LL I" IE
b. #ight 5uter 8oin. Menggabungkan tabel dimana tabel kanan yang men'adi patokan.
S*L*-( F]nama tabel^G.field F,..nG 9#5M ]nama tabel.^ #,/J( F56(*#G 85,2 ]nama tabel!^ 52 F]nama tabel.^G.field W F]nama tabel!^G.field
-ontohA S*L*-( t..Kode, 2ama, Materi, 2ilai 9#5M (abelN. t. #,/J( 56(*# 85,2 (abelN! t! 52 t..Kode W t!.Kode
Jasil Kode ""! ""! 2ama Jelen Jelen Materi SQL Ser er 1eb )rogramming 2ilai I" IE
:. 9ull 8oin
Menggabungkan kolom-kolom dari beberapa tabel. Sintaknya yaituA
-ontohA
S*L*-( 2ama, Alamat, Materi 9#5M (abelN. 96LL 85,2 (abelN! 52 (abelN..Kode W (abelN!.Kode
Jasil 2ama Sammy Jelen Jelen Alamat )emuda 2o. ."" Keluarga 2o. :I" Keluarga 2o. :I" Materi 26LL SQL Ser er 1eb )rogramming
0. -ross 8oin
Menggabungkan kolom-kolom dari beberapa tabel secara silang. Sintaknya yaituA
S*L*-( F]nama tabel^G.field F,..nG 9#5M ]nama tabel.^ -#5SS 85,2 ]nama tabel!^ 52 F]nama tabel.^G.field W F]nama tabel!^G.field
-ontohA S*L*-( 2ama, Alamat, Materi 9#5M (abelN. -#5SS 85,2 (abelN! 52 (abelN..Kode W (abelN!.Kode
Jasil 2ama Sammy Jelen Sammy Jelen Alamat )emuda 2o. ."" Keluarga 2o. :I" )emuda 2o. ."" Keluarga 2o. :I" Materi SQL Ser er SQL Ser er 1eb )rogramming 1eb )rogramming
4.4
4.4.1
Anda dapat membuat sebuah database dengan menggunakan DDL dari (ransact-SQL. Sama seperti perintah DDL dari bahasa SQL lainya, (-SQL 'uga menggunakan perintah-perintah -#*A(*
%erikut adalah sintaks (-SQL untuk membuat DatabaseA -#*A(* DA(A%AS* databaseNname F 52 F )#,MA#Y G F ]9ilespec^ F ,...n G
F , ]9ilegroup^ F ,...n G G F L5/ 52 O ]9ilespec^ F ,...n G Q G G F -5LLA(* collationNname G F 1,(J ]e3ternalNaccessNoption^ G G F`G
-ontohA
6ntuk membuat basis data dengan cara yang lebih mudah Anda dapat menggunakan SQL *nterprise Manager yang menyediakan antar muka grafis. Dengan
*nterprise
Manager,
Anda
tidak
perlu
mengetikkan kode-kode DDL secara manual seperti diatas. Anda cukup memilih dan menentukan karakteristik basis data Anda.
%erikut
adalah
langkah-langkah
membuat
basis
data
dengan
*nterprise Manager.
.. %uka *nterprise Manager. )ada panel kiri, )ilih item SQL Ser er /roup yang mencakup nama ser er dimana Anda ingin membuat basis data Anda. )ilih item Databases di dalam Ser er tersebut, klik kanan dan pilihlah 2e4 Database.
!. )ada dialog Database )roperties yang muncul, pada tab /eneral, masukkan nama basis data yang ingin Anda buat pada isian 2ame. Lihat gambar 0.E.
:. Klik tab Data 9iles. Seperti ditun'ukkan dalam gambar 0.I, *nterprise Manager secara otomatis membuat 9ile data primer, dengan nama dia4ali nama basis data dan dengan )#,MA#Y sebagai grup 9ile. Anda dapat mengubah nama, lokasi, dan ukuran dari 9ile primer, tetapi tidak dapat mengubah grup 9ile. Ketikan nama 9ile, lokasi dan ukuran serta grup 9ile untuk setiap 9ile data yang Anda buat. )ada setiap 9ile data kecuali 9ile data primer, Anda dapat mengetikkan grup 9ile Anda sendiri. Misalnya kita membuat 9ile data sekunder MyD%NData! di dalam grup 9ile
MyN9/.
0. Setelah selesai, maka basis data Anda akan muncul pada daftar basis data di dalam SQL Ser er *nterprise Manager.
Lalu apakah langkah selan'utnyaa (entu proses pembuatan basis data belum selesai. Seperti yang kita ketahui, basis data merupakan kumpulan data-data yang diorganisasi sedemikian rupa ke dalam bentuk tabel-tabel. 8adi, setelah basis data selesai dibuat maka yang perlu kita lakukan adalah membuat dan menambah tabel-tabel ke dalam basis data bersangkutan.
6ntuk membuat tabel, Anda 'uga tentu bisa melakukannya dengan perintah DML, -#*A(* (A%L*.
-#*A(* (A%L* ]nama tabel^ $ ]nama field^ ]tipe data^ F$pan'ang karakter&G F,..nG F -52S(#A,2( constraintNname G O O )#,MA#Y K*Y P 62,Q6* Q F -L6S(*#*D P 252-L6S(*#*D G F 52 O partitionNschemeNname $ partitionNcolumnNname & P 9ilegroup P bdefaultb Q G P F 95#*,/2 K*Y G #*9*#*2-*S F schemaNname . G referencedNtableNname F $ refNcolumn & G F 52 D*L*(* O 25 A-(,52 P -AS-AD* P S*( 26LL P S*( D*9A6L( Q G F 52 6)DA(* O 25 A-(,52 P -AS-AD* P S*( 26LL P S*( D*9A6L( Q G F 25( 95# #*)L,-A(,52 G P -J*-K F 25( 95# #*)L,-A(,52 G $ LogicalNe3pression & Q& F`G
-ontohA
-#*A(* (A%L* )roductN,nfo $ )roductN,D SMALL,2(, )roductN2ame -JA#$!"&, Description -JA#$:"&, )rice SMALLM52*Y, %randN,D SMALL,2( & /5
8ika menggunakan SQL *nterprise Manager, maka caranya hampir sama dengan cara membuat basis data. )ertama, buka basis data baru Anda kemudian klik kanan pada item [(ables\ dan pilih [2e4 (able\ dan dialog 2e4 (able akan terbuka $gambar 0.."&.
Definisikan isi tabel anda dengan mengisi nama kolom, menentukan tipe data dan ukurannya. %agian [Allo4
2ulls\
harus
menentukan apakah kolom boleh berisi nilai null $tidak ada data& atau harus mengandung suatu nilai atau sebaliknya. Anda
melakukannya baris demi baris. )ada bagian ba4ah, Anda bisa mengatur karakteristik kolom Anda misalnya nilai default, dan sebagainya. Lihat gambar 0....
Anda 'uga dapat menentukan constraints dan indeks lain pada tabel dengan mengklik kanan kolom apa sa'a dan memilih
8ika tabel yang Anda buat berhasil maka nama tabel tersebut akan ditambah ke dalam daftar [(ables\ pada *nterprise Manager.
4.4.2
SQL Ser er menyediakan Query Analy+er pada Anda untuk membuat dan men'alankan pernyataan-pernyataan atau script (-SQL sekaligus menampilkan hasilnya. 6ntuk men'alankan Query Analy+er, ikuti langkah berikut iniA
.. 8alankan Query Analy+er dengan salah satu metode berikutA a. Ketik isMl4 pada command prompt. b. %uka *nterprise Manager dan pilih SQL Query Analy+er dari menu (ools. c. Dari menu Start 4indo4, pilih menu )rograms, pilih Microsoft SQL Ser er, dan kemudian pilih Query Analy+er
DiaLog -onnect to SQL Ser er akan terbuka bila Anda belum terhubung ke Ser er.
!. )ilih nama ser er dari drop-do4n list. Ketikkan Login Anda. Dan klk 5K, maka 4indo4 Query Analy+er akan terbuka seperti ditun'ukkan oleh gambar 0..0 berikut.
:. Ketikkan perintah, pernyataan, script (-SQL atau stored-procedure pada 4indo4 ini. 0. 6ntuk men'alankannya, klik icon panah pada toolbar atau cukup tekan kombinasi tombol -trlH*.
4.2
)rosedur memberikan konsistensi dan lingkungan yang aman 'uga dapat memastikan seluruh operasi tercatat dengan benar. )engguna tidak memiliki akses secara langsung kedalam tabel-tabel di dalam basis data tetapi dapat men'alankan prosedur-prosedur yang telah didefinisikan sebelumnya. Stored procedure meningkatkan kiner'a dan efisiensi karena tidak membutuhkan pengiriman banyak informasi antara klien dan ser er. )rosedur 'uga dapat dieksekusi dari aplikasi lain diluar aplikasi SQL sehingga sifatnya re-usable $dapat digunakan kembali&.
Sintaks untuk membuat stored procedure pada (-SQL adalah sebagai berikutA -#*A(* O )#5- P )#5-*D6#* Q FschemaNname.G procedureNname F ` number G F O Tparameter F typeNschemaNname. G dataNtype Q AS O ]sMlNStatement^ F`GF ...n G P ]methodNspecifier^ Q F`G
Atau, cukup dengan memanggil nama prosedurnya sa'a. 6ntuk mengubah stored procedure digunakan sintaksA AL(*# )#5-*D6#* namaNprosedur AS OStatementsQ
-ontohA 6S* )erusahaan` /5 ,9 *Z,S(S $S*L*-( name 9#5M sysob'ects 1J*#* name W ;-ariKarya4an<& D#5) )#5-*D6#* -ariKarya4an /5 -#*A(* )#5-*D6#* -ariKarya4an Tnama archar$!7& W _DB_, AS S*L*-( 2ama, 8abatan, Departemen 9#5M Karya4an 1J*#* 2ama L,K* Tnama /5
*Z*-6(* -ariKarya4an
6S* 2orth4ind /5
,9 *Z,S(S $S*L*-( name 9#5M sysob'ects 1J*#* name W bLateShipmentsb& D#5) )#5-*D6#* LateShipments /5
-#*A(* )#5-*D6#* LateShipments Tshipper2ame char$0"& AS S*L*-( #eMuiredDate, ShippedDate, Shippers.-ompany2ame 9#5M 5rders, Shippers 1J*#* ShippedDate ^ #eMuiredDate A2D 5rders.ShipCia W Shippers.Shipper,D A2D Shippers.-ompany2ame W Tshipper2ame /5
4.2.2 Trigger (rigger adalah kode-kode logik yang didefinisikan agar dapat
dieksekusi apabila ter'adi suatu proses yang mengubah kondisi record dalam tabel baik oleh pernyataan ,2S*#(, 6)DA(* maupun D*L*(*.
-#*A(* (#,//*# F schemaNname . GtriggerNname 52 O table P ie4 Q F 1,(J ]dmlNtriggerNoption^ F ,...n G G O 95# P A9(*# P ,2S(*AD 59 Q O F ,2S*#( G F , G F 6)DA(* G F , G F D*L*(* G Q F 1,(J A))*2D G F 25( 95# #*)L,-A(,52 G AS O sMlNStatement specifier F ` G ^ Q F ` G F ...n G P *Z(*#2AL 2AM* ]method
-#*A(* (#,//*# triggerNname 52 O ALL S*#C*# P DA(A%AS* Q F 1,(J ]ddlNtriggerNoption^ F ,...n G G O 95# P A9(*# Q O e entNtype P e entNgroup Q F ,...n G AS O sMlNStatement specifier ^ F ` G Q F ` G F ...n G P *Z(*#2AL 2AM* ] method
6S* )erusahaan ,9 *Z,S(S $S*L*-( name 9#5M sysob'ects 1J*#* name W _pegNinsupd_ A2D type W _(#_& D#5) (#,//*# peg Ninsupd /5 -#*A(* (#,//*# pegNinsupd 52 )ega4ai 95# ,2S*#(, 6)DA(* AS D*-LA#* TtkNmin (,2Y,2(, TtkNmaks (,2Y,2(, TtkNpeg (,2Y,2(, TkdNpek SMALL,2( S*L*-( TtkNmin W tkNmin, TtkNmaks W tkNmaks, TtkNpeg W i.tkNpek, TkdNpek W i.kdNpek 9#5M )ega4ai p ,22*# 85,2 inserted i 52 p.nip W i.nip 85,2 )eker'aan k 52 k.kdNpek W i.kdNpek ,9 25( $TtkNpeg %*(1**2 TtkNmin A2D TtkNmaks& %*/,2
#A,S*##5# $_(ingkat )ega4ai untuk Kode )eker'aanABd harus bernilai antara Bd dan Bd._, .=, ., TkdNpek, TtkNmin, TtkNmaks& #5LL%A-K (#A2SA-(,52 *2D
(rigger. 8enis trigger ini memungkinkan kita untuk mendefinisikan trigger pada sebuah ie4. 2amun, tidak diperbolehkan pada pada
ie4 yang menyertakan -J*-K 5)(,52. )ada ,nstead of trigger, D*L*(* tidak diperbolehkan pada tabel yang memiliki relasi dengan 'enis 52 D*L*(* -AS-AD*. Demikian halnya 'uga dengan perintah 6)DA(* tidak dii+inkan pada tabel yang berhubungan dengan relasi 52 6)DA(* -AS-AD*.
Misalnya kita ingin melakukan ,2S*#( data pada sebuah tabel. (entu sa'a kita tidak bisa memasukkan dua data dengan primary key yang sama. %ila ternyata nilai yang kita masukkan sebagai )K telah ada, maka akan muncul peringatan kesalahan. 6ntuk menghindari hal ini, kita dapat menggunakan ,nstead of (rigger untuk memproses data tersebutA
-#*A(* (A%L* tabel(es $ idNtes ,2( 25( 26LL )#,MA#Y K*Y, ketNtes CA#-JA#$!"& 25( 26LL & /5
-#*A(* (#,//*# trigNtes 52 tabel(es ,2S(*AD 59 ,2S*#( AS ,9 TT#51-562( W " #*(6#2 6)DA(* t X- 'ika id sudah ada S*( ketNtes W i. ketNtes 9#5M inserted i 85,2 tabel(es t 52 t.idNtabel W i.idNtabel
,2S*#( tabel(es S*L*-( idNtabel, ketNtes 9#5M inserted i 1J*#* 25( *Z,S(S $ S*L*-( L 9#5M tabel(es t 1J*#* t.idNtabel W i.idNtabel & /5
4.4
Kunci kiner'a yang baik adalah melakukan konfigurasi SQL Ser er dengan tepat dan melakukan pemeliharaan secara rutin. )ada topik ini kita membahas bagaimana mengelola sistem keamanan pada SQL Ser er, Konsep SQL Ser er Agent dan mempela'ari Data (ransformation Ser ice.
4.4.1
Masalah keamanan data adalah hal yang tidak terpisahkan dari proses pengelolaan dan administrasi database. Keamanan data memiliki beberapa dasar, antara lainA .. Setiap orang dengan . Login ,D dan . )ass4ord !. Masa berlaku pass4ord :. )an'ang pass4ord 0. 8umlah percobaan untuk Login 7. (empat penyimpanan user dan pass4ord
)ada SQL Ser er !""" $Cersi diatas SQL Ser er D."& seperti yang di'elaskan sebelumnya pada topik instalasi, memiliki ! pilihan keamanan, yaituA .. !. 1indo4s Authentication $2( ,ntegrated Security& Mi3ed Mode $/abungan 2( dan SQL Ser er Security&
8enis ini merupakan 'enis keamanan pada SQL Ser er yang menggunakan account dan group yang sudah ada pada domain 2( dimana SQL Ser er berada. Dalam hal ini adalah 1indo4s misalnya.
-ara memberikan akses kepada pengguna 2( adalah dengan menggunakan Sintaknya yaituA perintah
stored-procedure
spNgrantlogin.
*nterprise Manager.
%ila Anda menggunakan (-SQL, maka Anda dapat menggunakan stored-procedure spNaddlogin untuk menambah atau membuat
DimanaA - TLoginname - Tpass4ord - Tdefdb A me4akili nama Login A me4akili pass4ord A me4akili default basis data untuk pengguna tersebut - Tdeflanguage A berupa bahasa default bagi pengguna ini - Tsid A identifier sistem untuk SQL Ser er. S,D akan dibuat secara otomatis bila tak diisi. - Tencryptopt A menentukan apakah Login dan pass4ord itu di-encrypt atau tidak.
6ntuk membuat Login ,D menggunakan *nterprise Manager, pilihlah folder security lalu klik kanan pada icon Logins dan pilih 2e4 Login.
DiaLog SQL Ser er login )roperties akan terbuka. Masukkan nama Login ,D yang Anda inginkan, kemudian pilihlah SQL Ser er
Anda kemudian bisa menentukan Ser er #ole untuk pengguna ini pada tab Ser er #oles, atau basis data apa sa'a yang bisa diakses oleh pengguna ini pada tab Database Access.
6ntuk lebih 'elas baca sub topik Ser er dan Database #oles.
Jak akses pengguna merupakan salah satu poin penting dalam basis data. Disini kita menentukan hak bagi setiap pengguna untuk melakukan sesuatu dalam SQL Ser er. Jak akses pengguna dikelompokkan men'adi : 'enis yaituA .. Jak untuk Login !. Jak untuk mengakses basis data tertentu :. Jak untuk men'alankan akti itas tertentu dalam suatu obyek pada basis data tertentu.
Jal yang perlu dilakukan agar seorang pengguna memiliki akses ke sebuah basis data adalah dengan memberi pengguna tersebut hak akses ke basis data tersebut. Anda dapat melakukannya dengan stored-procedure spNgrantdbaccess menggunakan (SQLA
Atau anda dapat menggunakan *nterprise Manager. -aranya klik kanan pada icon 6sers dan pilih 2e4 Database 6ser.
Selain hak penuh ke dalam basis data, adakalanya seorang pengguna hanya dii+inkan untuk mengakses obyek-obyek
tertentu $tabel, ie4 atau stored-procedure& di dalam basis data. Jak akses untuk obyek tertentu dibagi men'adi = kategori, yaituA - S*L*-( - ,2S*#( - 6)DA(* - D*L*(* - #*9*#*2-*S A Jak untuk melihat data A Jak untuk menambah data A Jak untuk memperbaharui data A Jak untuk menghapus data A Jak untuk menambah data pada tabel yang
)ernyataan (-SQL untuk memberikan hak akses pada obyek tertentu adalah /#A2(. Sintaksnya adalahA
Sebaliknya pernyataan (-SQL untuk mencegah pengguna untuk mengakses obyek tertentu adalah D*2Y. Sintaksnya adalahA
D*2Y O ALL F )#,C,L*/*S G Q P permission F $ column F ,...n G & G F ,...n G F 52 F class AA G securable G (5 principal F ,...n G F -AS-AD*G F AS principal G
SQL
Ser er
'uga
pernyataan telah
(-SQL
untuk dengan
membatalkan
semua
diberikan
Yaitu dengan
#*C5K* F /#A2( 5)(,52 95# G O F ALL F )#,C,L*/*S G G P permission F $ column F ,...n G & G F ,...n G Q F 52 F class AA G securable G O (5 P 9#5M Q principal F ,...n G F -AS-AD*G F AS principal G
.. Ser er #oles
Merupakan kumpulan hak akses yang berhubungan dengan administrasi Ser er. SQL Ser er memiliki role ser er sebagai berikut $lihat gambar 0..=b&A - SysAdmin, memiliki kemampuan untuk men'alankan akti itas apapun dalam ser er tersebut. - Ser erAdmin, dapat mengatur konfigurasi ser er dan mematikan ser er. - SetupAdmin, hanya memiliki hak untuk mengatur
prosedur startup. - SecurityAdmin, menangani administrasi Login untuk pengguna. - )rocessAdmin, menangani proses yang ber'alan dalam SQL Ser er. - D%-reator, hanya memiliki hak untuk membuat dan mengubah basis data. - DiskAdmin, menangani 9ile-9ile pada disk. - %ulkAdmin, memiliki kemampuan untuk men'alankan pernyataan %6LK insert.
!. Database #oles
Merupakan kumpulan hak akses yang berhubungan dengan basis data. Masing-masing basis data memiliki role sendiri sehingga lingkup role basis data hanya berada pada satu
basis data sa'a. SQL Ser er memiliki role basis data sebagai berikut $lihat gambar 0..=c& A - dbNo4ner, memiliki hak untuk melakukan apa sa'a pada basis data tersebut. - dbNaccessadmin, seperti SecurityAdmin pada Ser er
menghapus obyek dalam basis data. - dbNsecurityadmin, menangani Login pengguna yang sudah ada pada basis data tersebut. - dbNbackupoperator, dapat men'alankan proses backup. - dbNdenydatareader, tidak dapat men'alankan pernyataan S*L*-(. - dbNdenydata4riter, tidak dapat men'alankan pernyataan ,2S*#(, 6)DA(*, dan D*L*(*.
4.4.2
SQL Server #gent SQL Ser er Agent memiliki kemampuan untuk men'alankan beberapa
tugas secara periodik pada basis data dengan menotifikasi Database
!. Klik kanan pada SQL Ser er Agent di panel kiri atau klik kanan pada icon SQL Ser er Agent di panel kanan. )ada popup menu, Anda dapat men'alankan atau menghentikan layanan SQL Ser er
Agent` melihat catatan kesalahan` membuat 'ob, alert, atau operator` atau melihat properti.
:. )ilih )roperties dan dialog SQL Ser er Agent )roperties akan ditampilkan seperti terlihat pada gambar 0..I berikut.
0. Disini, Anda dapat mengkonfigurasi beberapa opsi untuk layanan SQL Ser er Agent melalui tab-tab yang adaA /eneral, Ad anced,
4.4."
Selain menyediakan kemampuan untuk transfer data, D(S 'uga mampu melakukan proses transformasi data yang berarti mengubah data pada saat transfer data berlangsung dengan beberapa aturan
Logical.
4.4.".1 DTS Pa$!age '(itor
D(S )ackage *ditor adalah sebuah alat bantu yang berguna untuk membuat paket D(S yang didalamnya terdapat prosesproses transfer maupun transformasi data.
(ransformation Ser ice di *nterprise Manager, lalu pilih 2e4 )ackage dan 4indo4 D(S )ackage *ditor akan ditampilkan. Ada
beberapa komponen yang dapat digunakan dalam D(S )ackage
!. (ask
Merupakan komponen pada package editor berupa unit-unit peker'aan yang akan dilakukan oleh D(S. %eberapa task yang umum digunakan adalahA - 9(), mendo4nload@mengupload data melalui
9ile
(ransfer )rotocol. - (ransform Data, melakukan proses transformasi data pada saat transfer data berlangsung. - *3ecute SQL, men'alankan pernyataan (-SQL. - *3ecute )ackage, men'alankan paket D(S yang sudah ada. - (ransfer Database, mentransfer basis data.
diba4ah ini. 1. )ada *nterprise Manager, pilih nama ser er dimana Anda ingin memasukkan data hasil impor. Lalu dari menu (ools, )ilih 1i+ards. Klik D(S ,mport 1i+ard pada dialog select dan tekan tombol 5K. Anda 'uga dapat melakukannya dengan mengklik kanan nama ser er, pilih All (asks, lalu klik ,mport
Data.
!. Klik 2e3t untuk menampilkan layar -hoose A Data Source seperti pada gambar 0.!.. )ilihlah sumber data dari drop-do4n list. Anda dapat memilih sumber data berikutA
-
(e3t 9ile
d%ase Microsoft Access
Microsoft Data Link Microsoft *3cel Microsoft Cisual 9o3)ro 5ther 5D%- data source 5ther 5L* D% data source )arado3
)ilihan ini bergantung pada dri er 5D%- yang terdapat pada komputer Anda.
:. )ilih 2e3t untuk menampilkan layar Select 9ile 9ormat, Layar ini hanya muncul 'ika Anda memilih sumber data (e3t 9ile. Ada beberapa pilihan format yang dapat Anda gunakan antara lain sebagai berikutA
-
0. )ilih format 9ile Delimited, O-#QOL9Q untuk pemisah, dan tanpa Qualifier teks. Klik tombol 2e3t.
7. )ilihlah salah satu delimiter yang Anda inginkan dan tekan tombol 2e3t. Anda akan mendapatkan layar -hoose A
=. (ekan tombol 2e3t dan pada layar berikutnya pilih tabel dimana data akan di-load. D. Anda 'uga bisa melakukan transformasi data dari layar ini. Klik tombol (ransform untuk membuka dialog -olumn
melihat dan mengubah pernyataan SQL yang Anda gunakan untuk membuat tabel baru.
E. Klik
tab
(ransformations
untuk
melihat
pilihan-pilihan
transformasi, seperti gambar 0.!D. )ada tab ini, Anda dapat memilih untuk meng-copy secara langsung ke kolom atau mentransformasi informasi.
/ambar 0.!= Dialog -olumn Mappings And (ransformations X (ab -olumn Mappings
)ackage.
Sebuah
kotak
pesan
akan
muncul
menginformasikan pada Anda bah4a proses copy telah selesai atau ter'adi kesalahan.
Data.
!. Klik 2e3t untuk menampilkan layar -hoose A Data Source $lihat gambar 0.:.&. :. Klik 2e3t untuk menampilkan layar -hoose A Destination. $lihat gambar 0.:!&.
)ackage.
Sebuah
kotak
pesan
akan
muncul
menginformasikan pada Anda bah4a proses copy telah selesai atau ter'adi kesalahan.
4.:
Microsoft telah mengimplementasikan ZML ke dalam SQL Ser er !""" dan menyediakan alat bantu konfigurasi sederhana yang memungkinkan pengguna untuk mendapatkan akses ke basis data dengan Query melalui url dari J((). Misalnya kita dapat membuat sebuah direktori irtual untuk SQL ZML pada 4eb ser er kita dengan nama (estSQLZML. Anggap kita punya akses $memiliki otorisasi&, maka kita dapat melakukan Query pada basis data kita dari bro4ser menggunakan Query url sederhana seperti A
httpA@@localhost@(estSQLZMLaSQLWselectHLHfromHproductsHforH3mlHauto
8ika di'alankan, maka hasilnya akan dikembalikan dalam bentuk recordset 3ml dan ditampilkan di bro4ser.
SQL Ser er !""" memiliki : metode untuk membentuk data kita. Antara lain sebagai berikutA .. <-or 9ml auto<A Mengembalikan elemen ZML yang bersarang,
berdasarkan tabel yang diberikan pada bagian [9#5M\ dari Query, dan kolom-kolom yang diberikan pada bagian bS*L*-(b. !. <-or 9ml ra0<A Mengembalikan elemen ZML dengan prefiks bro4b $contohA b]ro4 t)roduct c^b&. (iap kolom dalam tabel direpresentasikan sebagai sebuah atribut dan kolom yang bernilai 26LL tidak diikutsertakan. :. <-or 9ml e9pli$it<A Mode ini merupakan metode yang paling rumit. Dengan Metode ini, Anda dii+inkan untuk meng-Query sumber data dimana nama dan nilai dari ZML yang dikembalikan ditentukan sebelum batch Query di'alankan.
Lang!a= 1> Mem*uat Ta*el %uatlah basis data baru dengan nama ;my)roducts<. Lalu buatlah tabel seperti gambar 0.:E. $-atatanA cat,d, product,d dan desc,d adalah kolom identity yang sifatnya auto-increment& Sebelum memulai, kita akan terlebih dahulu mengisi tabelXtabel tersebut, misalnya : entri untuk tabel -ategories, D entri untuk )roducts dan D entri untuk Descriptions. -- *ntry U. ,2S*#( ,2(5 -A(*/5#,*S$cat2ame& CAL6*S $_AS)_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 )#5D6-(S$product-at, product2ame& CAL6*S $Tint,d, _Learning AS) in !0 hours ersion ._& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 D*S-#,)(,52S$desc)rod,d, desc(e3t& CAL6*S $Tint,d, _Learning AS) is a book designed to help readers familiar 4ith J(ML to start to learn the basic fundamentals of AS)._&
-- *ntry U! S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 )#5D6-(S$product-at, product2ame& CAL6*S $Tint,d, _AS) and SQL !"""A (he po4er to de elop_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 D*S-#,)(,52S$desc)rod,d, desc(e3t& CAL6*S $Tint,d, _,f you__re familiar 4ith AS) and are looking to manipulate a database through script, then this is the book for you._&
-- *ntry U: S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 )#5D6-(S$product-at, product2ame& CAL6*S $Tint,d, _%eginners guide to e-ommerce 4ith AS) and ZML_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 D*S-#,)(,52S$desc)rod,d, desc(e3t& CAL6*S $Tint,d, _e-ommerce is dynamic, fun, fle3ible and profitable. Learn ho4 to create a4ard 4inning 4ebsites using AS) and ZML in 'ust ! 4eeks._&
-- *ntry U0 ,2S*#( ,2(5 -A(*/5#,*S$cat2ame& CAL6*S $_C%.2*(_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 )#5D6-(S$product-at, product2ame& CAL6*S $Tint,d, _*3ploring C%.2*( %eta !_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 D*S-#,)(,52S$desc)rod,d, desc(e3t& CAL6*S $Tint,d, _1ith the recent release of C%.2*( %eta !, there are alot of changes, mainly those in ol ing AD5.2*(. -hanges are understand the .2*( frame4ork_& ital and 4ill help you to better
-- *ntry U7 S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 )#5D6-(S$product-at, product2ame& CAL6*S $Tint,d, _-reating scalable 4eb ser ices using C%.2*(_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 D*S-#,)(,52S$desc)rod,d, desc(e3t& CAL6*S $Tint,d,
_1eb ser ices are the ne4 4ay to communicate cross ser er. Learning from Mike 8ohnson, you__ll be creating 4eb ser ices in no timeS_&
-- *ntry U= ,2S*#( ,2(5 -A(*/5#,*S$cat2ame& CAL6*S $_-U.2*(_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 )#5D6-(S$product-at, product2ame& CAL6*S $Tint,d, _Migrating from -HH to -U_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 D*S-#,)(,52S$desc)rod,d, desc(e3t& CAL6*S $Tint,d, _-HH is a po4erful 55) language. -U is a po4erful 4eb based 55) language. Migration to -U for the 4eb doesn__t ha e to be difficult. ,n this book 8ohn e3plains ho4, in 'ust :" days._&
-- *ntry UD S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 )#5D6-(S$product-at, product2ame& CAL6*S $Tint,d, _6sing -U and AD5.2*(_& S*L*-( Tint,d W TTidentity ,2S*#( ,2(5 D*S-#,)(,52S$desc)rod,d, desc(e3t& CAL6*S $Tint,d, _Databases dri e dynamic content. 6sing -U and AD5.2*(, you too can de elop fast, and tightly integrated database 4ebsites in 'ust hours._&
Lang!a= 2> Mem*uat store( pro$e(ure 6ntuk mengambil data dalam format ZML, kita akan mengkompresi batch
Query
kita
ke
dalam
stored-procedure
tunggal
sehingga
kita
bisa
6S* my)roducts /5 -#*A(* )#5- spN/et*3plicitZML AS S*L*-( . AS (ag, 26LL AS )arent, c.cat2ame as F-ategoryS.S-at2ameG, 26LL as F)roductS!S)rod2ameG, 26LL as F)roductS!SDescriptionG 9#5M categories c 62,52 ALL S*L*-( ! AS (ag, . AS )arent, c.cat2ame, p.product2ame, d.desc(e3t 9#5M categories c, products p, descriptions d 1J*#* c.cat,d W p.product-at A2D p.product,d W d.desc)rod,d 5#D*# %Y F-ategoryS.S-at2ameG, F)roductS!S)rod2ameG 95# ZML *Z)L,-,(
Lang!a= "> Menampil!an 6asil 6ntuk menampilkan hasil dari stored-procedure diatas pada bro4ser, kita akan menulis script ASP script yang akan men'alankan stored procedure tersebut, mengisi datanya ke dalam obyek MSZML DomDocument, dan kemudian mentransformasi hasilnya menggunakan XSL stylesheet. %uatlah 9ile AS) dengan nama prodtest.asp. Masukkan kode berikutA ]S-- M*(ADA(A (ypeWb(ypeLibb 9ileWbcA>program 9iles>common
9iles>system>ado>msado.7.dllb --^
]B dim ob'Stream dim ob'-onn dim ob'-omm dim ob'ZML set ob'Stream W Ser er.-reate5b'ect$bAD5D%.Streamb&
set ob'-onn W Ser er.-reate5b'ect$bAD5D%.-onnectionb& set ob'-omm W Ser er.-reate5b'ect$bAD5D%.-ommandb& set ob'ZML W Ser er.-reate5b'ect$bMSZML!.D5MDocumentb& ob'-onn.5pen b)ro iderWSQL5L*D%` Data SourceW$local&` ,nitial -ataLogWmy)roducts` 6,dWsa` )4dWb ob'-omm.Acti e-onnection W ob'-onn ob'-omm.-ommand(ype W ad-mdStored)roc ob'-omm.-ommand(e3t W bspN/et*3plicitZMLb ob'Stream.5pen ob'-omm.)roperties$b5utput Streamb&.Calue W ob'Stream ob'-omm.*3ecute ,, ad*3ecuteStream ob'Stream.)osition W " ob'ZML.LoadZML$b]a3ml ersionW_.."_a^]a3ml-stylesheet typeW_te3t@3sl_ hrefW_prodtest.3sl_a^]MyN)roducts^b d
ob'Stream.#ead(e3t d b]@MyN)roducts^b& if ob'ZML.parse*rror.error-ode ]^ " then #esponse.1rite b*rror loading ZMLA b d ob'ZML.parse*rror.reason #esponse.*nd end if #esponse.-ontent(ype W bte3t@3mlb #esponse.1rite ob'ZML.3ml B^
8adi, kita menggunakan perintah AD5 dan obyek Stream untuk men'alankan
]a3ml ersionWb.."b a^ ]3slAstylesheet 3mlnsA3slWbhttpA@@444.4:.org@(#@1D-3slb^ ]3slAtemplate matchWb@b^ ]html^ ]head^ ]title^ Sample )roducts ]@title^ ]@head^ ]body^ ]h.^%ooks in -ataLog]@h.^ ]table borderWb"b cellspacingWb!b cellpaddingWb:b^ ]3slAfor-each selectWbMyN)roducts@-ategoryb^ ]tr^ ]td 4idthWb.""Bb bgcolorWbU-"99-"b^ ]3slA alue-of selectWbT-at2ameb@^ ]@td^ ]@tr^ ]3slAfor-each selectWb)roductb^ ]tr^ ]td 4idthWb.""Bb bgcolorWbU*I*I*Ib^ ]p styleWbmargin-leftA:"b^]3slA alue-of selectWbT)rod2ameb@^]@p^ ]@td^ ]@tr^ ]@3slAfor-each^ ]@3slAfor-each^ ]@table^ ]@body^ ]@html^ ]@3slAtemplate^ ]@3slAstylesheet^
/ambar 0.:I Jasil *ksekusi prodtest.asp di %ro4ser Sebelum memulai Anda terlebih dahulu harus mengkonfigurasi direktori
7. )ilih tab Security. Disini Anda bisa memilih Login tunggal untuk semua pengguna direktori ini, mengi+inkan Anda menggunakan 1indo4s ,ntegrated Authentication untuk mengakses SQL dengan account 4indo4s mereka, atau menggunakan %asic -lear, yang mengi+inkan pengguna untuk menggunakan account 1indo4s mereka tetapi informasi Login tidak dienkripsi.
=. )ilih tab Data Source. Disini Anda memberitahu ,,S basis data mana yang dihubungkan ke direktori irtual. Masukkan nama Ser er Anda dan pilih basis data Anda. D. )ilih tab Settings. Disini Anda menentukan batasan Query yang dapat diproses menggunakan ZML. Query melalui 6#L tidak direkomendasikan karena dapat digunakan untuk mengirim Query apapun ke dalam basis data, yang dapat menimbulkan pelanggaran keamanan $Security %reach&.
E. )ilih tab Cirtual 2ames. Disini Anda mengasosiasikan skema Zpath atau template dengan direktori irtual untuk mambuat akses data lebih mudah bagi pengguna.
I. )ada tab Ad anced tab, lea e the defaults. Settings ini digunakan untuk membuat perubahan terhadapa bagaimana ,,S memproses Query.
D#,T#/ P ST#K#
Microsoft. SQL Ser er !""" %ooks 5nline Microsoft. SQL Ser er !""" Kno4ledge %ase Q!7DD.= MSD2 (raining. %uilding ZML-*nabled Applications using Microsoft SQL