Upload
ardha
View
215
Download
26
Tags:
Embed Size (px)
DESCRIPTION
Ohayooo
Citation preview
MODUL BASIS DATA LANJUT
(DENGAN SQL SERVER)
BY MR.KHOLILContact :Web : www.mrkholil.comYm : mrkholilEmail : [email protected] , [email protected] : mr_kholilFacebook : http://facebook.com/mrkholilSkype : mrkholil
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 1
Praktikum 1MEMBANGUN DATABASE DAN MENGATUR KEAMANANNYA
Tujuan :1 Praktikan mampu untuk membuat database dengan tiga (3) metode
yang akan diujicobakan pada praktikum I ini.2 Praktikan mampu untuk mengatur keamanan database-nya.
1 Definisi database & Database Management System (DBMS)Database adalah kumpulan fakta-fakta sebagai representasi dari dunia nyata yang
berhubungan dan mempunyai arti tertentu.
Database managemen system adalah sebuah program komputer yangmemungkinkan pengguna untuk membuat dan memelihara database sehinggapengguna dapat memasukkan, mengubah, menghapus, memanipulasi, danmemperoleh kembali data tersebut dengan mudah. Sebagai contoh DBMS yang seringkita gunakan adalah Ms. Access, Ms. SQL Server, dan lain-lain.
2 Pembuatan DatabaseSQL Server menyediakan tiga method untuk membuat database, yaitu :
create database wizard, SQL Server Enterprise Manager, dan perintah T-SQL (Query)yang dapat disimpan dalam file dan dijalankan sebagaimana sebuah script.
Ms. SQL Server mengimplementasikan database dengan menyimpan 2struktur, yaitu :
DataDisimpan dengan file extensi *.mdf. File ini berkembang denganpenyimpanan table dan objek database lainnya.
LOGDisimpan dalam file dengan extensi *.ldf. file ini berisi catatan transaksi, yaitu :mencatat modifikasi table (update), mencatat data baru (insert), mencatatpenghapusan data (delete).
Database dapat mempunyai penyimpanan sekunder sebagai backup dalam file extensi*.ldf.
3 Manajemen User dan Akses PrivilegesSuatu database yang kompleks dapat diakses oleh banyak user dengan
batasan-batasan tertentu. Antara user yang satu dengan user yang lainnya dapatmempunyai tingkatan yang berbeda.
Salah satu alasan mengapa perlu adanya beberapa user dengan tingkat hak aksesyang berbeda-beda adalah untuk keamanan data. Data-data yang penting dan sifatnyarahasia kadang tidak boleh diakses oleh user secara umum, hanya user tertentu sajayang boleh mengaksesnya. Dengan adanya manajemen user yang baik maka datatersebut dapat dijamin.
Beberapa ijin ajses yang dapat diberikan oleh suatu user pada user yang lain terlihat
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 2
pada tabel berikut :
Ijin Akses Deskripsi
Select Ijin akses untuk membaca data.
Delete Ijin akses untuk menghapus data.
Insert Ijin akses untuk menulis atau memasukkan data baru.
Update Ijin akses untuk memodifikasi data.
Execute Ijin akses untuk mengeksekusi atau menjalankan prosedurtersimpan (stored procedure)
References Ijin akses untuk menciptakan tabel yang merferensikanpada tabel yang lain.
ALL Semua ijin akses yang telah disebutkan diatas, yaitu select,delete, update, insert, execute, fan references.
Dan daftar statemen ijin akses untuk membuat objek database yang baru terlihatpada daftar tabel berikut :
Statemen Deskripsi
Create Database Statemen untuk memberikan ijin akses pada user untukmembuat database.
Create Default Statemen untuk memberikan ijin akses pada user untukmembuat default database.
Create Function Statemen untuk memberikan ijin akses pada user untukmembuat fungsi.
CreateProcedure
Statemen untuk memberikan ijin akses pada user untukmembuat prosedur.
Create Rule Statemen untuk memberikan ijin akses pada user untukmembuat rule.
Create Table Statemen untuk memberikan ijin akses pada user untukmembuat tabel.
Create View Statemen untuk memberikan ijin akses pada user untukmembuat view.
BackupDatabase
Statemen untuk memberikan ijin akses pada user untukmelakukan backup database.
Backup Log Statemen untuk memberikan ijin akses pada user untukmelakukan backup log database.
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 3
Langkah-langkah praktikum :
1. Pembuatan DatabasePastikan SQL Server dalam keadaan running dengan cara melihat pada servicemanager.
Membangun database menggunakan Create Database Wizard1. Buka SQL Server Enterprise Manager, dan pilih server mana yang ingin
Anda gunakan untuk membuat database. Untuk memilih server, mulaidengan meng-klik folder Ms. SQL Server. Klik folder SQL Server Group,dan kemudian klik nama server (local)(Windows NT) yang akan Andagunakan. Dari menu tools, pilih Wizard.
2. Klik database, lalu klik ganda Create Database Wizard untuk mulaimembuat database, atau klik Create Database Wizard, kemudian klikOK untuk melanjutkan.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 3
Langkah-langkah praktikum :
1. Pembuatan DatabasePastikan SQL Server dalam keadaan running dengan cara melihat pada servicemanager.
Membangun database menggunakan Create Database Wizard1. Buka SQL Server Enterprise Manager, dan pilih server mana yang ingin
Anda gunakan untuk membuat database. Untuk memilih server, mulaidengan meng-klik folder Ms. SQL Server. Klik folder SQL Server Group,dan kemudian klik nama server (local)(Windows NT) yang akan Andagunakan. Dari menu tools, pilih Wizard.
2. Klik database, lalu klik ganda Create Database Wizard untuk mulaimembuat database, atau klik Create Database Wizard, kemudian klikOK untuk melanjutkan.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 3
Langkah-langkah praktikum :
1. Pembuatan DatabasePastikan SQL Server dalam keadaan running dengan cara melihat pada servicemanager.
Membangun database menggunakan Create Database Wizard1. Buka SQL Server Enterprise Manager, dan pilih server mana yang ingin
Anda gunakan untuk membuat database. Untuk memilih server, mulaidengan meng-klik folder Ms. SQL Server. Klik folder SQL Server Group,dan kemudian klik nama server (local)(Windows NT) yang akan Andagunakan. Dari menu tools, pilih Wizard.
2. Klik database, lalu klik ganda Create Database Wizard untuk mulaimembuat database, atau klik Create Database Wizard, kemudian klikOK untuk melanjutkan.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 4
3. Klik next untuk melanjutkan ke tampilan nama database danspesifikasi lokasi. Ketikkan nama database yang ingin Anda buat danpath lokasi dimana Anda ingin menyimpan data file dan log file. Lokasitersebut harus berisi valid drive dan folder yang telah ada pada localsystem Anda. Jika Anda klik tombol browse […] disebelah kanan duakotak teks, Anda dapat mencari dan memilih foldernya. Setelah Andamemberi nama database dan lokasi ke path, klik next untukmelanjutkan.
4. Tampilan Name The Database File muncul. Pada kotak dialog ini Andadapat mengetikkan nama dan initial size untuk masing- masing filedatabase. Primary file database secara otomatis dibuat dan diberi namadalam awalan. Anda dapat menyetujui nama itu atau mengetikkanyang berbeda. Primary data file berektensi*.mdf. Jika Anda telah memikirkan seberapa besar file databaseitu, ketik nilai untuk initial size sekarang. Bila sebaliknya,tinggalkan default size. Anda dapat memodifikasinyadikemudian hari menggunakan enterprise manager ataucommand ALTER DATABASE. Beberapa file yang Anda buat padasaat pertama, atau primary file, akan menjadi secondary file dan secaraotomatis aan diberi ektensi *.ndf. semua file yang dibuat ini akanditempatkan pada primary filegroup. Tidak ada option user-definedfilegroup pada Create Database Wizard.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 5
5. Tampilan Define The Database File Growth akan muncul. Secara umum,Anda harus memilih fasilitas Automatic file growth bila membutuhkanoverhead. Bila sebaliknya, maka Anda perlu mengatur ukurandatabase secara manual sesuai kebutuhan. Anda dapat
menspesifikasikan bagaimana database Andaseharusnya bertambah : Apakah menggunakan ukuran MB ataumenggunakan ukuran persen dari ukuran sekarang. Klik next untukmelanjutkan.
6. Tampilan Name The Transaction Log Files muncul. Tampilan ininampak sama dengan tampilan Name The Database Files, tapi yang iniuntuk log file. Klik next untuk melanjutkan.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 6
7. Tampilan Define The Transaction Log File Growth tampil.Tampilan ini terlihat sama dengan Define The Database FileGrowth, tetapi ini untuk mendifinisikan option growth untuk log file.Klik next untuk melanjutkan.
8. Tampilan Completing The Create Database Wizard muncul. Lihat ulanginformasi yang telah Anda spesifikasikan untuk database yang baruAnda buat. Jika Anda setuju, klik Finish untuk mengakhiripembuatan database. Bila sebaliknya, klik Back dan lakukan perubahanlagi seperlunya.
9. Kotak dialog Create Database Wizard Message muncul untukmemberi informasi kepada Anda bahwa database Anda telah dibuatdengan sukses. Klik OK untuk menutup kotak dialog ini.
10. Kotak Message yang lain muncul, menanyakan apakah Andaakan membuat maintenance plan untuk database Anda yangbaru. Pembuatan maintenance plan direkomendasikan untukmemastikan bahwa performance database Anda bagus, memback upsecara tetap pada saat system failure, dan melakukan pengecekanpada saat tidak konsisten.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 7
Membangun database menggunakan Enterprise Manager1. Buka Enterprise manager. Pada jendela sebelah kiri, klik SQL
Server group yang berisi nama dari server yang Anda inginkan untukmembangun database, dan kemudian klik server itu. Klik kanan folderdatabase dan pilih new database
2. Window Database Properties terbuka, dengan tab General aktif.Ketikkan nama database dalam kotak Name.
3. Klik tab Data Files. Enterprise manager secara otomatis akanmembuat primary data filedengan nama database Anda seperti awalandan dengan PRIMARY sebagai file group. Anda dapat mengubahnama, lokasi, dan ukuran primary file, tetapi Anda tidak dapat
mengubah filegroup untuk primary data file.Ketikkan nama (logical name), lokasi (physical name), ukuran dan filegroup untuk masing-masing data file yang Anda buat. Untuk data fileselain dari primary file, Anda dapat mengetikkan user- definedfilegroup, dan filegroup akan dibuat untuk Anda.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 7
Membangun database menggunakan Enterprise Manager1. Buka Enterprise manager. Pada jendela sebelah kiri, klik SQL
Server group yang berisi nama dari server yang Anda inginkan untukmembangun database, dan kemudian klik server itu. Klik kanan folderdatabase dan pilih new database
2. Window Database Properties terbuka, dengan tab General aktif.Ketikkan nama database dalam kotak Name.
3. Klik tab Data Files. Enterprise manager secara otomatis akanmembuat primary data filedengan nama database Anda seperti awalandan dengan PRIMARY sebagai file group. Anda dapat mengubahnama, lokasi, dan ukuran primary file, tetapi Anda tidak dapat
mengubah filegroup untuk primary data file.Ketikkan nama (logical name), lokasi (physical name), ukuran dan filegroup untuk masing-masing data file yang Anda buat. Untuk data fileselain dari primary file, Anda dapat mengetikkan user- definedfilegroup, dan filegroup akan dibuat untuk Anda.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 7
Membangun database menggunakan Enterprise Manager1. Buka Enterprise manager. Pada jendela sebelah kiri, klik SQL
Server group yang berisi nama dari server yang Anda inginkan untukmembangun database, dan kemudian klik server itu. Klik kanan folderdatabase dan pilih new database
2. Window Database Properties terbuka, dengan tab General aktif.Ketikkan nama database dalam kotak Name.
3. Klik tab Data Files. Enterprise manager secara otomatis akanmembuat primary data filedengan nama database Anda seperti awalandan dengan PRIMARY sebagai file group. Anda dapat mengubahnama, lokasi, dan ukuran primary file, tetapi Anda tidak dapat
mengubah filegroup untuk primary data file.Ketikkan nama (logical name), lokasi (physical name), ukuran dan filegroup untuk masing-masing data file yang Anda buat. Untuk data fileselain dari primary file, Anda dapat mengetikkan user- definedfilegroup, dan filegroup akan dibuat untuk Anda.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 8
Lokasi untuk masing-masing file ada pada default folder pada driveyang diinstall SQL Server. Anda dapat mengubah setting denganmengetikkan path baru atau dengan menggunakan browse.
4. Dalam file properties pada bagian bawah, Anda dapat memilih optionAutomatic-grow file pada per-file basis. Pilih nama dari file yang inginAnda set pilihan pertumbuhannya. Anda kemudian dapatmenspesifikasikanpertumbuhan file itu dalam megabytes (denganmemilih in megabytes) atau percetage (dengan memilih By percent) darifree space yang ada dalam file. Anda juga dapat menspesifikasikanukuran maksimum file dengan meng-klik Restrict File Growth danmemasukkan ukuran yang mendekati dalam megabytes, atau Andadapat meniggalkan file size tanpa restrict dengan memilihunrestricted file growth. Anda dapat mengatur option tersebut padamasing-masing file. Anda juga dapat meninggalkan defaults danmengesetnya di kemudian hari menggunakan window EnterpriseManager Database Properties. Jika Anda ingin menghapus file daridaftar, pilih nama dari file dan tekan tombol Delete.
5. Setelah selesai mengkonfigurasi semua data file, klik tabTransaction Log dalam window Database Properties untukkonfigurasi file transaction log. Log file dikonfigurasi dengan cara yangsama dengan data files, kecuali bahwa Anda tidak dapat memilihfilegroup untuk log files karena tidak termasuk pada beberapafilegroup. Ketikkan nama file(logical name), lokasi (physical name),dan initial size untuk log files atau file. Pilih option Atomatic-growthuntuk log files seperti yang dijelaskan pada langkah 4.
Membangun database menggunakan command T-SQL (QueryAnalyzer)
Untuk membuat sebuah database dengan T-SQL, diperlukan syntaxsebagai berikut :
Tanpa parameter nilai-nilai optional
CREATE DATABASE MyData
Dengan menggunakan parameter lengkap (dicontohkan pembuatandatabase dengan nama MyData yang berisi data file (MyData_root), satusecondary data file (My_Data1), yang sisanya dalam primary filegroupsecara default, dan satu transaction log file (Log_Data1) )
CREATE DATABASE MyData
ON
(NAME = MyData_root, ------Primary data file
FILENAME = ‘C:\Program Files\Microsoft SQL
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 8
Lokasi untuk masing-masing file ada pada default folder pada driveyang diinstall SQL Server. Anda dapat mengubah setting denganmengetikkan path baru atau dengan menggunakan browse.
4. Dalam file properties pada bagian bawah, Anda dapat memilih optionAutomatic-grow file pada per-file basis. Pilih nama dari file yang inginAnda set pilihan pertumbuhannya. Anda kemudian dapatmenspesifikasikanpertumbuhan file itu dalam megabytes (denganmemilih in megabytes) atau percetage (dengan memilih By percent) darifree space yang ada dalam file. Anda juga dapat menspesifikasikanukuran maksimum file dengan meng-klik Restrict File Growth danmemasukkan ukuran yang mendekati dalam megabytes, atau Andadapat meniggalkan file size tanpa restrict dengan memilihunrestricted file growth. Anda dapat mengatur option tersebut padamasing-masing file. Anda juga dapat meninggalkan defaults danmengesetnya di kemudian hari menggunakan window EnterpriseManager Database Properties. Jika Anda ingin menghapus file daridaftar, pilih nama dari file dan tekan tombol Delete.
5. Setelah selesai mengkonfigurasi semua data file, klik tabTransaction Log dalam window Database Properties untukkonfigurasi file transaction log. Log file dikonfigurasi dengan cara yangsama dengan data files, kecuali bahwa Anda tidak dapat memilihfilegroup untuk log files karena tidak termasuk pada beberapafilegroup. Ketikkan nama file(logical name), lokasi (physical name),dan initial size untuk log files atau file. Pilih option Atomatic-growthuntuk log files seperti yang dijelaskan pada langkah 4.
Membangun database menggunakan command T-SQL (QueryAnalyzer)
Untuk membuat sebuah database dengan T-SQL, diperlukan syntaxsebagai berikut :
Tanpa parameter nilai-nilai optional
CREATE DATABASE MyData
Dengan menggunakan parameter lengkap (dicontohkan pembuatandatabase dengan nama MyData yang berisi data file (MyData_root), satusecondary data file (My_Data1), yang sisanya dalam primary filegroupsecara default, dan satu transaction log file (Log_Data1) )
CREATE DATABASE MyData
ON
(NAME = MyData_root, ------Primary data file
FILENAME = ‘C:\Program Files\Microsoft SQL
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 8
Lokasi untuk masing-masing file ada pada default folder pada driveyang diinstall SQL Server. Anda dapat mengubah setting denganmengetikkan path baru atau dengan menggunakan browse.
4. Dalam file properties pada bagian bawah, Anda dapat memilih optionAutomatic-grow file pada per-file basis. Pilih nama dari file yang inginAnda set pilihan pertumbuhannya. Anda kemudian dapatmenspesifikasikanpertumbuhan file itu dalam megabytes (denganmemilih in megabytes) atau percetage (dengan memilih By percent) darifree space yang ada dalam file. Anda juga dapat menspesifikasikanukuran maksimum file dengan meng-klik Restrict File Growth danmemasukkan ukuran yang mendekati dalam megabytes, atau Andadapat meniggalkan file size tanpa restrict dengan memilihunrestricted file growth. Anda dapat mengatur option tersebut padamasing-masing file. Anda juga dapat meninggalkan defaults danmengesetnya di kemudian hari menggunakan window EnterpriseManager Database Properties. Jika Anda ingin menghapus file daridaftar, pilih nama dari file dan tekan tombol Delete.
5. Setelah selesai mengkonfigurasi semua data file, klik tabTransaction Log dalam window Database Properties untukkonfigurasi file transaction log. Log file dikonfigurasi dengan cara yangsama dengan data files, kecuali bahwa Anda tidak dapat memilihfilegroup untuk log files karena tidak termasuk pada beberapafilegroup. Ketikkan nama file(logical name), lokasi (physical name),dan initial size untuk log files atau file. Pilih option Atomatic-growthuntuk log files seperti yang dijelaskan pada langkah 4.
Membangun database menggunakan command T-SQL (QueryAnalyzer)
Untuk membuat sebuah database dengan T-SQL, diperlukan syntaxsebagai berikut :
Tanpa parameter nilai-nilai optional
CREATE DATABASE MyData
Dengan menggunakan parameter lengkap (dicontohkan pembuatandatabase dengan nama MyData yang berisi data file (MyData_root), satusecondary data file (My_Data1), yang sisanya dalam primary filegroupsecara default, dan satu transaction log file (Log_Data1) )
CREATE DATABASE MyData
ON
(NAME = MyData_root, ------Primary data file
FILENAME = ‘C:\Program Files\Microsoft SQL
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 9
Server\MSSQL\Data\mydataroot.mdf’,
SIZE=8MB, MAXSIZE=9MB,
FILEGROWTH=100KB),
(NAME = MyData1, ------Secondary data file
FILENAME = ‘C:\Program Files\Microsoft SQL
Server\MSSQL\Data\mydata1.ndf’,
SIZE=1000MB,
MAXSIZE=1500MB,
FILEGROWTH=100MB) LOG ON
Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan denganinstruksi :
DROP DATABASE MyData
2. Manajemen User dan Akses PrivilegesMembuat User BaruDi dalam SQL server yang berjalan di mesin windows NT atau Windows
2000 Family, user yang dapat ditambahkan ke dalam SQL server merupakan usersistem operasi. Di antara beberapa user dari sistem operasi tersebut, tidak semuanyamenjadi user pada SQL Server. User sistem operasi yang belum menjadi userdatabase server, ketika ingin menjadi user pada database server, perlu didaftarterlebih dahulu.
Sebelum melangkah membuat user baru pada database server, Anda akandiperkenalkan dulu dengan bagaimana menambahkan user baru pada sistemoperasi Windows 2000. ikuti langkah-langkah berikut:
1. Buka control panel melalui menu start di bagian kiri taskbar, kemudian pilihsetting dan pilih Control Panel. Windows Panel akan muncul.
2. Klik ganda pada ikon Users and Passwords sehingga muncul kotak dialoguser and Passwords.
3. Pada kotak dialog tersebut, klik tombol Add … sehingga muncul kotakdialog Add New User. Isilah kotak edit pada field Username dengan‘tamu’, fullname dengan ‘semua tamu’ dan description dengan ‘loginuntuk semua tamu’. Setelah selesai mengisi field-field tersebut, klik next untukmelanjutkan.
4. Kotak dialog permintaan password akan muncul. Pada kotak dialog ini adafield yang harus diisi, yaitu Password dan Confirm Password.Kedua field tersebut harus diisi dengan value yang sama. Sebagai contoh dalampembahasan ini gunakan password ‘test’. Jika sudah, klik Next untukmelanjutkan.
5. Tampilan berikutnya adalah level akses dari user yang dibuat. Dalam hal ini adatiga pilihan, yaitu Standard user, Restricted user, dan Other. Standard user
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 9
Server\MSSQL\Data\mydataroot.mdf’,
SIZE=8MB, MAXSIZE=9MB,
FILEGROWTH=100KB),
(NAME = MyData1, ------Secondary data file
FILENAME = ‘C:\Program Files\Microsoft SQL
Server\MSSQL\Data\mydata1.ndf’,
SIZE=1000MB,
MAXSIZE=1500MB,
FILEGROWTH=100MB) LOG ON
Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan denganinstruksi :
DROP DATABASE MyData
2. Manajemen User dan Akses PrivilegesMembuat User BaruDi dalam SQL server yang berjalan di mesin windows NT atau Windows
2000 Family, user yang dapat ditambahkan ke dalam SQL server merupakan usersistem operasi. Di antara beberapa user dari sistem operasi tersebut, tidak semuanyamenjadi user pada SQL Server. User sistem operasi yang belum menjadi userdatabase server, ketika ingin menjadi user pada database server, perlu didaftarterlebih dahulu.
Sebelum melangkah membuat user baru pada database server, Anda akandiperkenalkan dulu dengan bagaimana menambahkan user baru pada sistemoperasi Windows 2000. ikuti langkah-langkah berikut:
1. Buka control panel melalui menu start di bagian kiri taskbar, kemudian pilihsetting dan pilih Control Panel. Windows Panel akan muncul.
2. Klik ganda pada ikon Users and Passwords sehingga muncul kotak dialoguser and Passwords.
3. Pada kotak dialog tersebut, klik tombol Add … sehingga muncul kotakdialog Add New User. Isilah kotak edit pada field Username dengan‘tamu’, fullname dengan ‘semua tamu’ dan description dengan ‘loginuntuk semua tamu’. Setelah selesai mengisi field-field tersebut, klik next untukmelanjutkan.
4. Kotak dialog permintaan password akan muncul. Pada kotak dialog ini adafield yang harus diisi, yaitu Password dan Confirm Password.Kedua field tersebut harus diisi dengan value yang sama. Sebagai contoh dalampembahasan ini gunakan password ‘test’. Jika sudah, klik Next untukmelanjutkan.
5. Tampilan berikutnya adalah level akses dari user yang dibuat. Dalam hal ini adatiga pilihan, yaitu Standard user, Restricted user, dan Other. Standard user
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 9
Server\MSSQL\Data\mydataroot.mdf’,
SIZE=8MB, MAXSIZE=9MB,
FILEGROWTH=100KB),
(NAME = MyData1, ------Secondary data file
FILENAME = ‘C:\Program Files\Microsoft SQL
Server\MSSQL\Data\mydata1.ndf’,
SIZE=1000MB,
MAXSIZE=1500MB,
FILEGROWTH=100MB) LOG ON
Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan denganinstruksi :
DROP DATABASE MyData
2. Manajemen User dan Akses PrivilegesMembuat User BaruDi dalam SQL server yang berjalan di mesin windows NT atau Windows
2000 Family, user yang dapat ditambahkan ke dalam SQL server merupakan usersistem operasi. Di antara beberapa user dari sistem operasi tersebut, tidak semuanyamenjadi user pada SQL Server. User sistem operasi yang belum menjadi userdatabase server, ketika ingin menjadi user pada database server, perlu didaftarterlebih dahulu.
Sebelum melangkah membuat user baru pada database server, Anda akandiperkenalkan dulu dengan bagaimana menambahkan user baru pada sistemoperasi Windows 2000. ikuti langkah-langkah berikut:
1. Buka control panel melalui menu start di bagian kiri taskbar, kemudian pilihsetting dan pilih Control Panel. Windows Panel akan muncul.
2. Klik ganda pada ikon Users and Passwords sehingga muncul kotak dialoguser and Passwords.
3. Pada kotak dialog tersebut, klik tombol Add … sehingga muncul kotakdialog Add New User. Isilah kotak edit pada field Username dengan‘tamu’, fullname dengan ‘semua tamu’ dan description dengan ‘loginuntuk semua tamu’. Setelah selesai mengisi field-field tersebut, klik next untukmelanjutkan.
4. Kotak dialog permintaan password akan muncul. Pada kotak dialog ini adafield yang harus diisi, yaitu Password dan Confirm Password.Kedua field tersebut harus diisi dengan value yang sama. Sebagai contoh dalampembahasan ini gunakan password ‘test’. Jika sudah, klik Next untukmelanjutkan.
5. Tampilan berikutnya adalah level akses dari user yang dibuat. Dalam hal ini adatiga pilihan, yaitu Standard user, Restricted user, dan Other. Standard user
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 10
berarti user dapat memodifikasi setting komputer dan menginstall programtetapi tidak dapat membaca file milik user lain bila tanpa ijin. Restric userberarti user dapat menjalankan komputer dan menyimpan dokumen tetapiuser tidak dapat menginstall program dan mengubah sistem setting. Pilihanyang ketiga adalah Other. Dengan pilihan ini user dapat menjadiadministrator, ORA DBA, atau yang lainnya. Pilih Standard user kemudianklik Finish.
6. Anda telah selesai membuat user baru untuk sistem operasi. Dalamwindows User and Passwords terlihat ada satu user baru dengan nama tamu.
7. Klik OK untuk mengakhirinya.Setelah selesai membuat user untuk sistem operasi Windows,selanjutnya Anda dapat membuat user untuk database server. Langkah untukmembuat user untuk database server. Langkah untuk membuat user baru padaSQL server adalah sebagai berikut :
1. Pada aplikasi Interprese Manager, kembangkan folder databases.2. Setelah muncul semua database, kembangkan folder database
MyData.3. Klik kanan objek user, kemudian klik New Database User.4. Setelah kotak dialog Database User Properties muncul, klik tombol
drop down list dari field Login name. Pada list tersebutakan muncul beberapa user yang ada. Anda dapat memilih user tamu.Field User name akan otomatis terisi sendiri.
5. Pada bagian database Role membersip, anda akan masuk padaPublic. Artinnya Anda sebagai pengguna user umum dimana userini tidak mempunyai hak istimewa seperti melakukanadministrasi terhadap database server, dan lain sebagainya.
6. Jika sudah selesai, Anda klik tombol OK. Terlihat pada WindowEnterprise Manager, objek user akan bertambah satu user, yaituuser tamu.
Melakukan LoginUntuk menjalankan Ms. SQL Server, user yang digunakan secara
otomatis menggunakan user yang sedang menggunakan sistem operasinya, jikaSQL Server disetting berdasar Windows Authentication. Jika anda sedang login padasistem operasi dengan menggunakan administrator maka ketika anda membukaaplikasi Enterprise Manager dari SQL Server secara otomatis akan melakukan loginsebagai administrator.
Jika anda ingin melakukan login dengan user lain, anda dapatmelakukan langkah-langkah berikut:
1. Pada window Enterprise Manager, klik objek database server.2. Klik tombol New Login pada toolbar sehingga muncul kotak dialog SQL Server
Login Properties.3. Pada Field Name, Anda dapat mengisi dengan nama user yang akan
melakukan login.4. Pada bagian Authentication Anda dapat memilih apakah secara
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 10
berarti user dapat memodifikasi setting komputer dan menginstall programtetapi tidak dapat membaca file milik user lain bila tanpa ijin. Restric userberarti user dapat menjalankan komputer dan menyimpan dokumen tetapiuser tidak dapat menginstall program dan mengubah sistem setting. Pilihanyang ketiga adalah Other. Dengan pilihan ini user dapat menjadiadministrator, ORA DBA, atau yang lainnya. Pilih Standard user kemudianklik Finish.
6. Anda telah selesai membuat user baru untuk sistem operasi. Dalamwindows User and Passwords terlihat ada satu user baru dengan nama tamu.
7. Klik OK untuk mengakhirinya.Setelah selesai membuat user untuk sistem operasi Windows,selanjutnya Anda dapat membuat user untuk database server. Langkah untukmembuat user untuk database server. Langkah untuk membuat user baru padaSQL server adalah sebagai berikut :
1. Pada aplikasi Interprese Manager, kembangkan folder databases.2. Setelah muncul semua database, kembangkan folder database
MyData.3. Klik kanan objek user, kemudian klik New Database User.4. Setelah kotak dialog Database User Properties muncul, klik tombol
drop down list dari field Login name. Pada list tersebutakan muncul beberapa user yang ada. Anda dapat memilih user tamu.Field User name akan otomatis terisi sendiri.
5. Pada bagian database Role membersip, anda akan masuk padaPublic. Artinnya Anda sebagai pengguna user umum dimana userini tidak mempunyai hak istimewa seperti melakukanadministrasi terhadap database server, dan lain sebagainya.
6. Jika sudah selesai, Anda klik tombol OK. Terlihat pada WindowEnterprise Manager, objek user akan bertambah satu user, yaituuser tamu.
Melakukan LoginUntuk menjalankan Ms. SQL Server, user yang digunakan secara
otomatis menggunakan user yang sedang menggunakan sistem operasinya, jikaSQL Server disetting berdasar Windows Authentication. Jika anda sedang login padasistem operasi dengan menggunakan administrator maka ketika anda membukaaplikasi Enterprise Manager dari SQL Server secara otomatis akan melakukan loginsebagai administrator.
Jika anda ingin melakukan login dengan user lain, anda dapatmelakukan langkah-langkah berikut:
1. Pada window Enterprise Manager, klik objek database server.2. Klik tombol New Login pada toolbar sehingga muncul kotak dialog SQL Server
Login Properties.3. Pada Field Name, Anda dapat mengisi dengan nama user yang akan
melakukan login.4. Pada bagian Authentication Anda dapat memilih apakah secara
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 10
berarti user dapat memodifikasi setting komputer dan menginstall programtetapi tidak dapat membaca file milik user lain bila tanpa ijin. Restric userberarti user dapat menjalankan komputer dan menyimpan dokumen tetapiuser tidak dapat menginstall program dan mengubah sistem setting. Pilihanyang ketiga adalah Other. Dengan pilihan ini user dapat menjadiadministrator, ORA DBA, atau yang lainnya. Pilih Standard user kemudianklik Finish.
6. Anda telah selesai membuat user baru untuk sistem operasi. Dalamwindows User and Passwords terlihat ada satu user baru dengan nama tamu.
7. Klik OK untuk mengakhirinya.Setelah selesai membuat user untuk sistem operasi Windows,selanjutnya Anda dapat membuat user untuk database server. Langkah untukmembuat user untuk database server. Langkah untuk membuat user baru padaSQL server adalah sebagai berikut :
1. Pada aplikasi Interprese Manager, kembangkan folder databases.2. Setelah muncul semua database, kembangkan folder database
MyData.3. Klik kanan objek user, kemudian klik New Database User.4. Setelah kotak dialog Database User Properties muncul, klik tombol
drop down list dari field Login name. Pada list tersebutakan muncul beberapa user yang ada. Anda dapat memilih user tamu.Field User name akan otomatis terisi sendiri.
5. Pada bagian database Role membersip, anda akan masuk padaPublic. Artinnya Anda sebagai pengguna user umum dimana userini tidak mempunyai hak istimewa seperti melakukanadministrasi terhadap database server, dan lain sebagainya.
6. Jika sudah selesai, Anda klik tombol OK. Terlihat pada WindowEnterprise Manager, objek user akan bertambah satu user, yaituuser tamu.
Melakukan LoginUntuk menjalankan Ms. SQL Server, user yang digunakan secara
otomatis menggunakan user yang sedang menggunakan sistem operasinya, jikaSQL Server disetting berdasar Windows Authentication. Jika anda sedang login padasistem operasi dengan menggunakan administrator maka ketika anda membukaaplikasi Enterprise Manager dari SQL Server secara otomatis akan melakukan loginsebagai administrator.
Jika anda ingin melakukan login dengan user lain, anda dapatmelakukan langkah-langkah berikut:
1. Pada window Enterprise Manager, klik objek database server.2. Klik tombol New Login pada toolbar sehingga muncul kotak dialog SQL Server
Login Properties.3. Pada Field Name, Anda dapat mengisi dengan nama user yang akan
melakukan login.4. Pada bagian Authentication Anda dapat memilih apakah secara
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 11
Windows Authentication atau SQL Server Authentication. Jika Andamemilih Windows Authentication, pada bagian field Name anda dapatmelakukan klik tombol bertanda .. untuk memilih usernya. Jika andamemilih SQL Server Autehntication Anda masukkan nama user dengan cara
mengetikkannya. Field Password akan aktif. Anda dapatmengetikkan password dari user yang akan login. Pada bagian database andadapat memilih pada database mana user tersebut aktif. Pada bagian ini Andadapat mencoba memasukkan untuk user tamu. Jika sudah selesai, kliktombol OK.
5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini munculkarena ketika Anda membuat user baru pada SQL Server, Anda belummemasukkan password. Klik OK pada kotak dialog tersebut.
Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda akanmenemukan beberapa pesan yang memberitahukannya bahwa user tersebutbelum dapat mengakses database karena belum ada ijin akses terhadap data-datanya. Hal ini disebabkan karena user tamu belum diberi ijin untuk mengaksesdata pada database tersebut.
Memberikan Ijin AksesSeorang user yang telah membuat suatu objek database dapat
memberikan ijin akses kepada user yang lain. Statemen dalam T-SQL yang dapatdigunakan untuk memberikan ijin akses adalah dengan statemenGRANT. Sintaks dari statemen GRANT secara lengkap adalah sebagai berikut:
Statement permissions:
GRANT { ALL | statement [,…n] }
To user_account {,…n}
Keterangan :
- GRANT adalah statamen untuk menspesifikasikan pemberian ijin akses.- ALL adalah menspesifikasikan bahwa semua ijin akses diberikan.- Statement adalah berisi statement ijin akses apa saja yang diberikan.
Statemen ini merupakan statemen ijin akses yang telah disebutkan padapembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan dengantanda koma.
- TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses tersebutdiberikan.
- User_account adalah nama user yang diber ijin akses.
Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin aksesakan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda dapatmenyebutkan langsung statemen ijin akses tersebut.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 11
Windows Authentication atau SQL Server Authentication. Jika Andamemilih Windows Authentication, pada bagian field Name anda dapatmelakukan klik tombol bertanda .. untuk memilih usernya. Jika andamemilih SQL Server Autehntication Anda masukkan nama user dengan cara
mengetikkannya. Field Password akan aktif. Anda dapatmengetikkan password dari user yang akan login. Pada bagian database andadapat memilih pada database mana user tersebut aktif. Pada bagian ini Andadapat mencoba memasukkan untuk user tamu. Jika sudah selesai, kliktombol OK.
5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini munculkarena ketika Anda membuat user baru pada SQL Server, Anda belummemasukkan password. Klik OK pada kotak dialog tersebut.
Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda akanmenemukan beberapa pesan yang memberitahukannya bahwa user tersebutbelum dapat mengakses database karena belum ada ijin akses terhadap data-datanya. Hal ini disebabkan karena user tamu belum diberi ijin untuk mengaksesdata pada database tersebut.
Memberikan Ijin AksesSeorang user yang telah membuat suatu objek database dapat
memberikan ijin akses kepada user yang lain. Statemen dalam T-SQL yang dapatdigunakan untuk memberikan ijin akses adalah dengan statemenGRANT. Sintaks dari statemen GRANT secara lengkap adalah sebagai berikut:
Statement permissions:
GRANT { ALL | statement [,…n] }
To user_account {,…n}
Keterangan :
- GRANT adalah statamen untuk menspesifikasikan pemberian ijin akses.- ALL adalah menspesifikasikan bahwa semua ijin akses diberikan.- Statement adalah berisi statement ijin akses apa saja yang diberikan.
Statemen ini merupakan statemen ijin akses yang telah disebutkan padapembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan dengantanda koma.
- TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses tersebutdiberikan.
- User_account adalah nama user yang diber ijin akses.
Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin aksesakan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda dapatmenyebutkan langsung statemen ijin akses tersebut.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 11
Windows Authentication atau SQL Server Authentication. Jika Andamemilih Windows Authentication, pada bagian field Name anda dapatmelakukan klik tombol bertanda .. untuk memilih usernya. Jika andamemilih SQL Server Autehntication Anda masukkan nama user dengan cara
mengetikkannya. Field Password akan aktif. Anda dapatmengetikkan password dari user yang akan login. Pada bagian database andadapat memilih pada database mana user tersebut aktif. Pada bagian ini Andadapat mencoba memasukkan untuk user tamu. Jika sudah selesai, kliktombol OK.
5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini munculkarena ketika Anda membuat user baru pada SQL Server, Anda belummemasukkan password. Klik OK pada kotak dialog tersebut.
Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda akanmenemukan beberapa pesan yang memberitahukannya bahwa user tersebutbelum dapat mengakses database karena belum ada ijin akses terhadap data-datanya. Hal ini disebabkan karena user tamu belum diberi ijin untuk mengaksesdata pada database tersebut.
Memberikan Ijin AksesSeorang user yang telah membuat suatu objek database dapat
memberikan ijin akses kepada user yang lain. Statemen dalam T-SQL yang dapatdigunakan untuk memberikan ijin akses adalah dengan statemenGRANT. Sintaks dari statemen GRANT secara lengkap adalah sebagai berikut:
Statement permissions:
GRANT { ALL | statement [,…n] }
To user_account {,…n}
Keterangan :
- GRANT adalah statamen untuk menspesifikasikan pemberian ijin akses.- ALL adalah menspesifikasikan bahwa semua ijin akses diberikan.- Statement adalah berisi statement ijin akses apa saja yang diberikan.
Statemen ini merupakan statemen ijin akses yang telah disebutkan padapembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan dengantanda koma.
- TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses tersebutdiberikan.
- User_account adalah nama user yang diber ijin akses.
Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin aksesakan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda dapatmenyebutkan langsung statemen ijin akses tersebut.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FAKULTAS ILMU KOMPUTER UNWIDHA KLATEN (1-2011-2012) Page 12
Object permissions :GRANT
{ ALL [ PRIVILEGEs] | permission [ ,…n]}
{View}
[ ( column [ ,…n] ) ] ON { table |
] ) ]
}
Keterangan :
| ON { table | view } [ ( column [ ,…n
| ON {stored_procedure | extended_procedure
| ON { }
- Privileges adalah keyword opsional yang dapat Anda sertakan pada SQL-92
- Permission adalah ijin akses yang diberikan. Daftar ijin akses telahdijelaskan pada bagian sebelumnya. Jika ijin akses yang diberikan lebihdari satu maka dipisahkan dengan tanda koma. Ijin akses ini disertaidengan nama-nama objek database yang diberikan. Objek databasetersebut dapat berupa tabel, view, stored procedure, extendedprocedure, dan lain-lain.
- Column adalah nama-nama kolom yang diijinkan untuk diatas sesuaidengan ijin akses yang diberikan pada daftar ijin akses tersebut.
- Table adalah nama-nama tabel yang diijinkan untuk diakses.- View adalah nama-nama view yang diijinkan untuk diakses.- Stored procedure adalah nama-nama stored procedure yang diijinkan
untuk dieksekusi (dijalankan).- Extended procedure adalah nama-nama eksetended prosedur yang
diijinkan untuk dijalankan.- User defined function adalah nama-nama user defined function (fungsi)
yang diijinkan untuk dieksekusi.- WITH GRANT OPTION adalah untuk menspesifikasikan bahwa user
yang diberi ijin akses tersebut dapat memberikan ijin aksesnya kepadauser yang lain.
- AS{group | Role } menspesifikasikan optional nama dari user accountdalam database pada group atau role untuk mengeksekusi statemenGRANT. Pembahasan mengenai Role akan disampaikan pada bagianselanjutnya.
Untuk memahami bagaimana penggunaan sintaks di atas, anda akanmencoba beberapa contoh penggunaan dari statemen GRANT. Langkahpertama menjalankan SQL Query Analyser dan melakukan koneksi dengan
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 13
user sa. Setelah berhasil melakukan koneksi dan menjalankan SQL QueryAnalyser, selanjutnya anda lakukan koneksi dengan user tamu melalui menuFile kemudian pilih Connect. Setelah anda melakukan koneksi dengan dua usertersebut, pada window SQL Query Analyser akan terdapat dua buah windowSQL Editor,. Satu buah window untuk user sa dan satu buah lainnya untuk usertamu.
Setelah kedua window SQl Editor tersebut muncul, Anda dapatmelakukan eksekusi pernyataan T-SQL untuk masing-masing user. Anda dapatmengecek apakah user tamu yang baru saja anda gunakan untuk berhubungandengan database sudah dapat mengakses data pada database MyData ataubelum dengan mengeksekusi statemen T-SQL berikut :
USE MyData
GO
SELECT * FROM {nama_tabel}
Ketika anda mengeksekusi pernyataan di atas, SQL Server akanmenampilkan pesan error. Hal ini terjadi karena user tamu tidak mempunyaiijin akses terhadap tabel mata kuliah. Masukkan statemen berikut pada windowSQL Editor user sa untuk memberikan ijin akses pada user tamu.
USE MyData
GO
GRANT SELECT ON {nama_tabel} TO tamu
Setelah Anda mengeksekusi pernyataan diatas, kemudian anda mencobamengeksekusi statemen SELECT untuk user tamu seperti statemen sebelumnya,maka SQL server akan mengumpulkan hasilnya.Contoh diatas adalah contoh pemberian ijin akses dengan satu ijin akses. Andadapat memberikan beberapa ijin akses sekaligus seperti yang telah disampaikansebelumnya dengan menuliskannya dengan dipisahkan tanda koma. Statamenberikut adalah statemen untuk memberikan ijin akses SELECT dan UPDATEuntuk tabel dosen.
USE MyData
GO
GRANT SELECT,UPDATE ON {nama_tabel} TO tamu
Setelah mengeksekusi statemen dicatat, user tamu akan mempunyai ijin aksesuntuk melihat dan memodifikasi data pada tabel dosen. Untuk mencoba hasileksekusi dari statemen di atas, Anda dapat melakukan retrieving data denganstatemen SELECT berikut:
USE MyData
GOSELECT * FROM {nama_tabel}
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 14
Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebutdengan menggunakan user tamu.
Contoh-contoh diatas adalah contoh penggunaan statetemen GRANT untukmemberikan ijin akses. Selaint itu, anda juga dapat memberikan ijin aksesstatemen, Contoh pemberian ijin akses statemen adalah pada pernyataan T-SQLberikut :
Use MyData
GO
GRANT CREATE TABLE TO tamu
Dengan mengeksekusi pernyataan T-SQL di atas maka user tamu akanmempunyai ijin untuk membuat tabel pada database MyData. Melalui windowSQL editor user tamu Anda dapat menjalankan statemen berikut untukmembuat table sample kemudian mengisi tabel tersebut dengan beberapa kata.
USE MyData
GO
CREATE TABLE contoh( no int, nama varchar(10))
Setelah menjalankan statemen diatas, Anda dapat memasukkan data denganmenggunakan statemen insert. Eksekusi statemen berikut untuk memasukkandata.
USE MyData
GO
INSERT INTO contoh VALUES (1, ‘Contoh 1’)
INSERT INTO contoh VALUES (2, ‘Contoh 2’)
Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapatmengecek hasilnya dengan menjalankan statemen SELECT.
Mencabut Ijin AksesIjin akses yang telah diberikan oleh seseorang uses kepada user yang lain
dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja usertersebut ingin mencabutnya maka dengan statemen REVOKE ijin aksestersebut dapat dicabut tanpa harus konfirmasi dengan user yang bersangkutan.Statemen REVOKE menggunakan sintaks yang sama dengan statemen GRANT.Perbedaannya adalah kalau pada statemen GRANT menggunakan keyword TOsedanggkan pada statemen REVOKE menggunakan keyword FROM.
Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabelmata kulliah untuk user tamu. Statemen berikut adalah statemen untukmencabut ijin akses tersebut.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 14
Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebutdengan menggunakan user tamu.
Contoh-contoh diatas adalah contoh penggunaan statetemen GRANT untukmemberikan ijin akses. Selaint itu, anda juga dapat memberikan ijin aksesstatemen, Contoh pemberian ijin akses statemen adalah pada pernyataan T-SQLberikut :
Use MyData
GO
GRANT CREATE TABLE TO tamu
Dengan mengeksekusi pernyataan T-SQL di atas maka user tamu akanmempunyai ijin untuk membuat tabel pada database MyData. Melalui windowSQL editor user tamu Anda dapat menjalankan statemen berikut untukmembuat table sample kemudian mengisi tabel tersebut dengan beberapa kata.
USE MyData
GO
CREATE TABLE contoh( no int, nama varchar(10))
Setelah menjalankan statemen diatas, Anda dapat memasukkan data denganmenggunakan statemen insert. Eksekusi statemen berikut untuk memasukkandata.
USE MyData
GO
INSERT INTO contoh VALUES (1, ‘Contoh 1’)
INSERT INTO contoh VALUES (2, ‘Contoh 2’)
Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapatmengecek hasilnya dengan menjalankan statemen SELECT.
Mencabut Ijin AksesIjin akses yang telah diberikan oleh seseorang uses kepada user yang lain
dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja usertersebut ingin mencabutnya maka dengan statemen REVOKE ijin aksestersebut dapat dicabut tanpa harus konfirmasi dengan user yang bersangkutan.Statemen REVOKE menggunakan sintaks yang sama dengan statemen GRANT.Perbedaannya adalah kalau pada statemen GRANT menggunakan keyword TOsedanggkan pada statemen REVOKE menggunakan keyword FROM.
Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabelmata kulliah untuk user tamu. Statemen berikut adalah statemen untukmencabut ijin akses tersebut.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 14
Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebutdengan menggunakan user tamu.
Contoh-contoh diatas adalah contoh penggunaan statetemen GRANT untukmemberikan ijin akses. Selaint itu, anda juga dapat memberikan ijin aksesstatemen, Contoh pemberian ijin akses statemen adalah pada pernyataan T-SQLberikut :
Use MyData
GO
GRANT CREATE TABLE TO tamu
Dengan mengeksekusi pernyataan T-SQL di atas maka user tamu akanmempunyai ijin untuk membuat tabel pada database MyData. Melalui windowSQL editor user tamu Anda dapat menjalankan statemen berikut untukmembuat table sample kemudian mengisi tabel tersebut dengan beberapa kata.
USE MyData
GO
CREATE TABLE contoh( no int, nama varchar(10))
Setelah menjalankan statemen diatas, Anda dapat memasukkan data denganmenggunakan statemen insert. Eksekusi statemen berikut untuk memasukkandata.
USE MyData
GO
INSERT INTO contoh VALUES (1, ‘Contoh 1’)
INSERT INTO contoh VALUES (2, ‘Contoh 2’)
Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapatmengecek hasilnya dengan menjalankan statemen SELECT.
Mencabut Ijin AksesIjin akses yang telah diberikan oleh seseorang uses kepada user yang lain
dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja usertersebut ingin mencabutnya maka dengan statemen REVOKE ijin aksestersebut dapat dicabut tanpa harus konfirmasi dengan user yang bersangkutan.Statemen REVOKE menggunakan sintaks yang sama dengan statemen GRANT.Perbedaannya adalah kalau pada statemen GRANT menggunakan keyword TOsedanggkan pada statemen REVOKE menggunakan keyword FROM.
Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabelmata kulliah untuk user tamu. Statemen berikut adalah statemen untukmencabut ijin akses tersebut.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 15
USE MyData
GO
REVOKE SELECT ON {nama_tabel} FROM tamu
Setelah ini anda mengeksekusi statemen di atas, maka ijin akses SELECT padatabel mata kuliah untuk user tamu telah dicabut. Untuk membuktikannya andadapat menjalankan statemen SELECT pada table mata kuliah menggunakanuser tamu. SQL server akan menampilkan pesan error seperti pada gambarberikut :
Dengan cara yang sama anda dapat menggunakan statemen REVOKE untukmencabut ijin akses statemen. Contoh berikut adalah contoh bagaimanamencabut ijin akses statemen CREATE TABLE dari user tamu.
USE MyData
GO
REVOKE CREATE TABLE FROM tamu
Setelah statemen dia atas dieksekusi, user tamu tidak bisa lagi membuat tabelpada database MyData. Jika ini dilakukan maka SQL Server akan menampilkanpesan error yang sama.
Tugas Praktikum IDari query Analyzer buat script untuk membangun sebuah database yangbernama created.sql dengan ketentuan sebagai berikut :
Nama database : ILKOM_XXXNama Primary data : ILKOM_XXX_DATAUkuran awal = 20 MbUkuran maksimal = 50 MbUkuran perkembangan file = 2 MbNama log : ILKOM_XXX_LOG dengan nilai – nilai parameter samadengan diatas.
Catatan : ( X = tiga digit terakhir nim )
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 16
Praktikum 2TABEL
Tujuan :
1. Praktikan memahami struktur pembuatan tabel.2. Praktikan mampu membuat tabel.3. Praktikan dapat memasukkan data ke dalam tabel.
Landasan Materi :1. Data Definition Language (DDL)
Tabel dalam database adalah komponen utama yang membentuk database
itu sendiri. Baris(row) dan kolom (column) mengindikasikan data (record).Cara
untuk mengatur dan memanipulasi data pada database dilakukan dengan
bantuan instruksi SQL seperti SELECT, INSERT, UPDATE, DELETE. Instruksi
untuk membuat, mengubah, dan menghapus table dilakukan melalui DDL
yaitu dengan CREATE TABLE, ALTER TABLE, DROP TABLE
Pada contoh dibawah ini adalah sebuah table Mahasiswa STIKI Klaten
dengan bentuk sebagai berikut :
tabel : MahasiswaNIM Nama Jenis kelamin Alamat Kota Propinsi Telpon
Setiap kolom mempunyai nilai yang terkait dengan tipe data tertentu.
Himpunan yang berupa nilai kolom yang valid atau dapat diterima (acceptable)
disebut sebagai DOMAIN.
Nilai kolom diluar domain tersebut dianggap sebagai pelangggaran atas
integritas data. Usaha untuk mengelompokkkan nilai dalam himpunan yang
berlaku disebut dengan CONSTRAINT atau batasan nilai.
2. Tipe Data
Adapun tipe yang banyak digunakan pada Ms.SQL Server adalah :
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 17
char(n) : Mendefinisikan string sepanjang n karakter. Bila n tidak
didefinisikan maka panjang karakter adalah 1.
varchar(n) : Mendefinisikan string sepanjang variabel n.
binnary(n) : Untuk menyimpan bit pattern seperti heksadecimal. Contoh :
0x0fa9008e
datetime : Mendefinisikan tanggal, menyimpan tahun, bulan, hari, jam, menit,
detik dan seperseribu detik (milliseconds). Nilai tanggal sampai
dengan 31 desember 9999.
text : Menyimpan teks sampai dengan 2 GB. Text disebut juga dengan
binary large objects (BLOBs)
image : Mendefinisikan binary data untuk menyimpan image seperti GIF,
JPG, TIFF, dll.
money : Bilangan pecahan dengan 4 angka dibelakang koma. Digunakan
untuk perhitungan moneter.
smallint : Sama dengan int, membutuhkan 50% memory yang ditempati int.
int : Mendefinisikan integer, bilangan bulat yang menampung angka
sebanyak 4 byte.
float(n) : Mendefinisikan angka pecahan (floating point). Nilai n adalah
jumlah angka yang dapat ditampung . sysname
real(n) : sama dengan float namun menempati memory 50% dari float.
smalldatetime : sama dengan datetime hanya dengan presisi lebih kecil dimana satuan
waktu terkecil adalah menit dan nilai tanggal sampai dengan 6 juni
2079.
numeric(n,p) : Mendefinisikan angka pecahan baik fixed desimal ataupun floating
point. Nilai n adalah jumlah bytes total dan p adalah presisi angka
dibelakang koma. Numeric analog dengan DECIMAL(n,p).
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 18
3. Unicode Charakter StringUnicode adalah karakter international yang menampung 16 bit per karakter.
Unicode digunakan oleh bahasa non latin, misalnya Jepang, Jerman, Thai, dll.
nchar : Unicode karakter maksimum 4.000 karakter.
nvarchar : Unicode karakter dengan data variable maksimum 4.000 karakter. Sysname adalahcontoh tipe data yang
didefinisikan sebagai synonym dari nvarchar(128) dan digunakan untuk referensi kenama object database.ntext : Unicode texts dengan panjang dua pangkat tigapuluh
(1.073.741.823)karakter.
Untuk dapat melihat semua tipe data yang ada dalam Ms.SQL Server adalah
dengan menggunakan perintah stored procedure sp_datatype_info.
4. Mendefinisikan tipe data baru
Tipe data dapat dibangun dari tipe data yang sudah ada.
Syntax secara umum untuk membuat tipe data baru :
USE nama_database
SP_ADDTYPE nama_tipe_data_baru,tipe_data_SQL
Syntax secara umum untuk menghapus tipe data baru :
USE nama_database
SP_DROPTYPE nama_tipe_data_baru
Kunci kata NONULL atau NULL dapat ditambahkan dalam mendefinisikan
tipe data.
Contoh :SP_ADDTYPE alamat,'varchar(9)',nonull
Alur komunikasi data antara user dengan database menggunakan SQL
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 19
Dalam membuat sebuah tabel dan kolom ada beberapa aturan :
1. Nama tabel dan kolom mempunyai panjang karakter 1-30 dan karakter
pertama harus huruf, karakter berikutnya boleh gabungan huruf, garis
bawah dan angka dan tidak diperbolehkan mengandung spasi.
2. Tidak mengandung Reserved word yang ada pada SQL (contoh:select, where,
create, dll).
3. Dalam satu user tidak boleh mempunyai nama tabel yang sama, tetapi
dalam tabel yang berbeda boleh memiliki nama kolom yang sama.
4. Tidak bersifat case sensitive.
Perintah perintah yang berhubungan dengan tabel :
INSTRUKSI
CREATE TABLE :
KETERANGAN
Membuat tabel
SP_COLUMN : Memeriksa struktur suatu tabel
ALTER TABLE : Mengubah struktur tabel
DROP TABLE : Menghapus tabel SELECT :
Memilih query tabel
INSERT : Menyisipkan baris data ke tabel
UPDATE : Mengubah data pada tabel
DELETE : Menghapus data pada suatu table
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 20
5. Membuat Tabel
Syntax:
CREATE TABLE nama_tabel(nama_filed1 tipedata batasan, nama_filed2 tipedatabatasan,……..)
Batasan (constraint) = Yang mengikat atribut apakah sebagai primary Key, Fpreign
Key, Unique, Not Null, dll.
6. Melihat Struktur Tabel
Syntax:
sp_columns Nama tabel;
7. Memodifikasi dan menambah Field pada Tabel
Untuk memodifikasi sebuah field pada tabel , syntax:
ALTER TABLE Nama_tabel ALTER COLUMN Nama_Field tipe_data(panjang)constraint
Untuk menambah sebuah field pada tabel , syntax:
ALTER TABLE Nama_tabel ADD Nama_Field_baru tipe_data(panjang) constraint
8. Menghapus Tabel
Syntax:
DROP TABLE Nama_tabel;
9. INTEGRITAS DATA
Integritas data adalah konsistensi dan kebenaran data yang disimpan. Antara
kehidupan nyata dan nilai dari data harus dilindungi oleh system, agar mempunyai
arti yang sesuai.
Integritas data tetap dijaga melalui beberapa cara, antara lain :- Validasi field secara individual
- Verifikasi satu field melalui field yang lainnya
- Validasi data dari satu table ke table yang lainnya.
- Verifikasi bahwa transaksi berjalan secara sukses dari awal hingga akhir
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 21
Beberapa jenis integritas data9.1 Integritas Entitas
Dalam tabel setiap baris harus mempunyai identitas yang unik yang disebut
dengan primary key. Hubungan antara primary key dan foreign key menyatakan
apakah sebuah baris table dapat diubah atau di hapus.
Batasan :
- PRIMARY KEY
- UNIQUE KEY
- UNIQUE INDEX
- IDENTITY
9.2 Integritas DomainMenyatakan bahwa nilai data sesuai dengan kenyataannya. System dalam hal ini
melakukan CHECK sesuai dengan aturan (rule)yang berlaku.
Batasan dan implementasi :- DEFAULT- CHECK- FOREIGN KEY- Tipe data, default, rules
9.3 Integritas Referensial
Menyatakan relasi antar table bahwa hubungan foreign key dengan primary key.
Sebuah foreign key tidak dapat dimasukkan kedalam sebuah table bila primary key
tidak atau belum ada.
Batasan dan implementasi :- CHECK- FOREIGN KEY- TRIGGERS DAN STORE PROCEDURE
9.4 Integritas melalui aturan yang didefinisikan sendiri
Sesuai dengan aturan logika dan bisnis yang ada maka pemakai dapat
menetapkan batasan dan aturan dari data yang disimpan.
Batasan dan implementasi :- Batasan melalui table dan kolom pada saat pembuatan table.- FOREIGN KEY- TRIGGERS DAN STORE PROCEDURE
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 22
Sekarang akan dibahas constraint yang ada dalam Ms.SQL Server beserta contoh
penggunaannya.
10. PRIMARY KEY
Primary Key disebut sebagai constraint untuk menjaga integritas data, yaitu sebuah
primary key tidak boleh mempunyai duplikat dan otomatis tidak boleh kosong.
Secara
umum syntax untuk membuat sebuah primary key adalah:
CREATE TABLE Nama_Tabel (Nama_Field Tipedata CONSTRAINT
pk_Namatabel PRIMARY KEY, … )
Atau jika primary key terdiri atas banyak kolom (multiple column), maka constraint
dapat dibuat sebagai berikut:
CREATE TABLE NamaTabel(NamaField1 TipeData1, NamaField2
TipeData2, NamaField3 TipeData3, NamaField4 TipeData4, NamaField5
TipeData5, NamaField6 TipeData6, NamaField7 TipeData7, CONSTRAINT
pk_NamaTabel PRIMARY KEY (NamaField3, NamaField2, NamaField7) )
11. NOT NULL
Jika sebuat kolom pada tabel tidak boleh kosong maka constraint NOT NULL harus
diberikan.
12. UNIQUE
UNIQUE digunakan untuk menjamin bahwa nilai kolom adalah tunggal tidak
mempunyai duplikat. Primary key dan unique keduanya adalah kunci kata
yang mempunyai arti sama. Ms.SQL Server mengijinkan field dengan constraint
unique untuk mempunyai nilai NULL. Bila satu kolom mempunyai nilai NULL, maka
nilai NULL tidak boleh muncul lagi. Primary key sebaliknya tidak boleh kosong
karena primary key secara implicit adalah NOT NULL.
13. CHECK
CHECK digunakan untuk menjamin bahwa nilai kolom dalah dalam ruang
nilai tertentu. Misalnya nilai mata kuliah dibatasi tidak boleh melebihi nilai 100.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 23
Operator logika seperti AND, OR, dan NOT dapat disertakan dalam
pembuatan batasan ini.
14. FOREIGN KEY
FOREIGN KEY adalah kolom pada sebuah tabel yang menunjukkan bahwa
kolom tersebut adalah primary key pada tabel lain.
Pada sekenario di atas, record (TKK-04,98111761) pada tabel ambil_kuliah tidak
dapat dihapus karena referensi dari TKK-04 (filed kode_mata_kuliah ditabel
mata_kuliah),
98111761( field nim di tabelmahasiswa) masih ada.Penulisan constraint foreignkey adalah :
CONSTRAINT fk_nama_constraint FOREIGN KEY field REFERENCES
nama_tabel(field)
Foreign key harus menunjuk ke primary key atau unique pada tabel lain.
15. DEFAULTNilai default sebuah kolom dapat disuplai oleh system, jika pemakai tidak
memberikan nilai pada field tersebut. DEFAULT tidak berlaku untuk kolom
dengan tipe data timestamp atau field yang mempunyai property IDENTITY.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 24
16. IDENTITY
IDENTITY merupakan property sebuah field, yaitu system menciptakan nomor urut
secara otomatis pada setiap memasukkan record baru.
Penggunaan:
NamaKolom Tipe IDENTITY(No_awal, incremen)
CREATE TABLE pendaftar( no_daftar int IDENTITY(100,2), nama char(20))
Pada awalnya no_daftar adalah 100. Untuk setiap record baru berikutnya, no_daftar
akan bernilai 102, 104, 106, dan seterusnya.
17. Drop Constraint
DROP digunakan untuk menghapus constraint yang ada.
Contoh:
ALTER TABLE nama_tabel DROP fk_nama_constraint
18. Mengisi data pada Tabel
Syntax:
INSERT INTO Nama_tabel (Nama_Field1, Nama_Field2,
Nama_Field3)VALUES (data1, data2,data3);
19. Meng-copy data dari Tabel lain
Suatu kolom pada sebuah tabel dapat diisi dengan data yang sama dengan kolom
tabel lain dengan syarat type data dan panjang field kedua table tersebut
sama. Syntax:
INSERT INTO Nama_tabel_tujuan (Field1, Field2, Field3) SELECT
field_sumber1, field_sumber2, field_sumber3) FROM Nama_tabel_sumber;
Jika 2 buah tabel mempunyai struktur yang sama maka syntax di atas dapat
dipersingkat menjadi :
INSERT INTO Tabel_tujuan SELECT *FROM Tabel_asal ;
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 25
LANGKAH-LANGKAH PRAKTIKUM:
1. Buat tabel berikut melalui QUERY ANALYZER, lengkap dengan constraint:Mahasiswa_XXX(Nim, nama, jk, alamat, kota, propinsi, telpon)Nim char 10Nama varchar 30Jk char 1Alamat varchar 46Kota char 22Propinsi char 25Telpon varchar 15
Perhatikan:- Nim merupakan primary key- Nama, Alamat tidak boleh kosong- Kota bila tidak disisi maka akan otomatis diisi dengan ‘KLATEN ‘- Jk mempunyai nilai ‘L’ atau ‘P’
2. Buat tabel Mata_kuliah_XXXMata_Kuliah (kode_mata_kuliah, Nama_kuliah, Sks)kode_mata_kuliah char 8Nama_kuliah varchar 16Sks intPerhatikan:- Kode_mata_kuliah merupakan primary key- Nama_kuliah dan Sks tidak boleh kosong
3. Buat tabel ambil_kuliah_XXXAmbil_Kuliah (kode_mata_kuliah, Nim, Nilai_Uts, Nilai_Uts,Grade)
kode_mata_kuliah char 8Nim char 10Nilai_Uts intNilai_Uas int
Grade Char 1
Perhatikan:- Kode_mata_kuliah merupakan Foreign key yang mengacu pada tabel
Mata_Kuliah_XXX (field kode_ mata_kuliah).- Nim merupakan Foreign key yang mengacu pada tabel Mahasiswa_XXX(field
Nim).- Nilai_Uts, Nilai_Uas tidak boleh melebihi 100
4. Modifikasi field Telpon pada tabel Mahasiswa_XXX sehingga type-nya
menjadi char.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 26
5. Isi satu record pada Data mahasiswa yang telah dibuat. Perintah SQL nya
adalah :
INSERT INTO Mahasiswa_XXX (Nim,Nama,Jk,Alamat,Kota,Propinsi,Telpon)
VALUES (‘0571100138’,’moenawar kholil’,’L’,’Jl. Klaten-Yogya
Gondang’,’Klaten’,Jateng’,’08112635143’)
5. Tambahkan data di bawah ini:NIM NAMA JK
ALAMATKOTA PROPINSI TELFON
0571100139
Agnes
Monica
P Jl. Karya Timur
280
Jakarta DKI
Jakarta
0216452444
0571100140
M.Yoesni
L Jl. Sunan Giri
V/16
Gresik Jatim 031772739
0571100141
Antoni
Stevens
L Jl. Melati XI/234 Klaten Jateng 0811226633
6. Tampilkan data dari tabel Mahasiswa_XXX
Perintah SQL:
SELECT * FROM Mahasiswa_XXX;
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
FASILKOM UNWIDHA KLATEN (1-2011-2012) Page 27
Praktikum 3MEMANIPULASI DATA
Tujuan :
1. Praktikan mampu untuk memanipulasi data dan mampu mencari data(Retrieval)
Landasan Materi :
1. Mengupdate data pada Tabel
Syntax:UPDATE Nama_tabel SET Field1=Data1,Field2=Data2,Field3=Data3 WHERE
kondisi1,kondisi2
Contoh :Merubah data mahasiswa dengan NIM ‘0571100141’ pada Mahasiswa_XXXdengan data baru
UPDATE Mahasiswa_XXX SET Alamat=’Jl. Candi IIIB
No.111’,kota=’Klaten’,Telpon=’0341567448’ WHERE nim=’98111761’
Pemanfaatan operasi aritmatika untuk merubah data. Misalnya Sebuah
perusahaaan akan menaikkan gaji pegawainya sampai 20 %.
UPDATE Data_Gaji SET gaji=gaji*1.2
2. Menghapus data pada Tabel
Syntax:
DELETE FROM Nama_tabel WHERE kondisi1
Dalam menghapus dan update bisa dilakukan untuk menghapus banyak
baris atau menghapus semua isi dari tabel tergantung dari kondisi yang
diberikan.
Contoh :Hapus Isi semua record pada Data mahasiswa yang telah dibuat dimana
Mahasiswa dengan alamat yang tidak diisi<nilai=default> akan dihapus.
Perintah SQL nya adalah :
DELETE FROM Mahasiswa_XXX WHERE Alamat=’Gresik’
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 28
3. Mencari Data / Retrieval (SELECT)
Select adalah instruksi yang paling banyak digunakan dalam SQL.SELECT
memilih spesifik kolom dari satu atau beberapa tabel.Secara umum bentuk SELECT adalah:
SELECT Kolom1, kolom2, … FROM NamaTabel WHERE predikat
Bila kunci kata “WHERE” tidak diberikan, maka yang diseleksi adalah
seluruh record dalam tabel. Predikat menyatakan kualifikasi dari record
yang ditemukan, bila memenuhi syarat, maka record tersebut akan dipilih.
Select * adalah karakter khusus (wild character) yang menyatakan bahwakolom
yang dipilih adalah seluruh kolom yang ada pada tabel tersebut.
SELECT * FROM mata_kuliah_XXX
mempunyai arti sama dengan:
SELECT Kode_mata_kuliah, Nama_Kuliah, Sks FROM Mata_Kuliah_XXX
Contoh berikut menampilkan Nama_kuliah dan Sks:SELECT Nama_kuliah, Sks FROM Mata_kuliah_XXX
4. Predikat dengan WHERE
Dengan menggunakan WHERE, maka seleksi dilakukan tidak pada
seluruh record, melainkan hanya pada record yang memenuhi syarat.
Bentuk klausa WHERE adalah:
WHERE Kolom <operator> <nilai>
Beberapa operator yang berlaku yaitu:
= sama dengan<> tidak sama dengan< lebih kecil<= lebih kecil atau sama> lebih besar>= lebih besar atau samaContoh :Tampilkan data kuliah yang jumlah sks nya dibawah 3
SELECT * FROM Mata_kuliah WHERE sks < 3
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 29
5. AND, OR, dan NOT
Untuk menggabungkan lebih dari satu kondisi, diperlukan logical ANDdan
OR. Sedangkan untuk negasi, diperlukan NOT Contoh tampilkan Mahasiswalaki laki yang berasal dari Klaten
SELECT Nama, Alamat, Kota FROM Mahasiswa_XXX WHEREkota=‘Klaten’ AND jk=‘L’
Prioritas AND lebih kuat dari OR, sehingga kondisi OR harusdipisahkan dalam kurung sebelum AND.
6. BETWEEN dan NOT BETWEENBETWEEN menyederhanakan pencarian “antara” (range) seperti berikut:
Cari Nama_kuliah yang mempunyai sks antara 1 sampai 3. DenganmenggunakanBETWEEN maka bentuk query adalah :
SELECT Kolom1, Kolom2 FROM tabel WHERE kolom BETWEEN nilai1 AND
nilai2
Contoh :Cari Nama_kuliah yang jumlah Sks nya tidak diantara 1 sampai 3 jam
SELECT * FROM kursus WHERE JumlahJam NOT BETWEEN 30
AND 40
7. LIKE & NOT LIKE
Umumnya LIKE digunakan untuk permintaan yang mencari suatu
teks berdasarkan prefix (kata depan), sufix (kata akhir) atau kata tengah.
SELECT Kolom1, Kolom2, .. .. FROM NamaTabel WHERE Kolom LIKE nilai
Contoh :Cari Mahasiswa yang bertempat tinggal di kota“Klaten”
SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kotaLIKE ‘Klaten’
Cari Mahasiswa yang tempat tinggalnya dimulai dengan‘B’
SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kotaLIKE ‘G%’
Perhatikan bahwa tanda % menyerupai “wild character” yang bisa di variasidalam menggunakannya. tanda % adalah terdiri dari 0,1 atau beberapakarakter, maka tanda _ (under score/garis bawah) merepresentasikan persissatu karakter.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 30
NOT LIKE digunakan sebagai negasi misalnya dengan pertanyaanContoh :Cari Mahasiswa yang alamat rumahnya tidak dimulai dengan“Jl.”
SELECT nama, alamat, kota FROM Mahasiswa_XXX WHEREalamat NOT LIKE ‘%Jl%’
8. IN & NOT IN
IN digunakan untuk mencari nilai dalam satu kelompok nilai (daftar/list).
Nilai dalam daftar terdiri atas satu atau lebih.SELECT Kolom1,Kolom2,… FROM namatabel WHERE Kolom IN
Contoh :Cari perserta yang bertempat tinggal di kota “Klaten” dan “Jakarta”
SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kotaIN ('Klaten','Jakarta')
Bila di negatifkan pertanyaan tersebut, maka hasilnya adalah :
SELECT nama, alamat, kota FROM peserta WHERE kota NOT IN('Klaten','Jakarta')
9. IS NULL & IS NOT NULL
NULL adalah nilai yang belum diisi. NULL tidak identik denganspasi(blank).
10. Tampilan Tersusun (Sortir)
Tampilan dari hasil SELECT dapat di susun (sort) menurut satu atau
beberapa kolom.
SELECT Kolom1,Kolom2,… FROM namatabel WHERE predikat ORDER BY
Kolom
Bila kunci kata where tidak diberikan, maka seluruh record dalam tabelakan ditampilkan.Contoh : Tampilkan seluruh mahasiswa menurut abjad
SELECT * FROM Mahasiswa_XXX ORDER BY inisialSusunan dapat diatur dari A ke Z (ASCending)atau dari Z ke A(DESCending). Defaultnya adalah ASC.Untuk menyususn secara terbalik adalah :
SELECT * FROM Mahasiswa_XXX ORDER BY inisial DESC
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 31
11. DISTINCT
DISTINCT menghilangkan nilai ganda, sehinggga membuatnyamenjadi tunggal. Hal ini dilakukan dengan mengeliminasi nilai yang sama.Contoh : Berasal dari kota mana saja mahasiswa yang ada ?
SELECT kota FROM mahasiswa_XXXuntuk menghilangkan duplikasi pada tampilan, maka digunakan kuncikata DISTINCT
SELECT DISTINCT kota FROM mahasiswa_XXX
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
Langkah-langkah praktikum :
Agar anda dapat lebih memahami tentang manipulasi data ikutilah
langkah - langkah berikut ini :
a) Aktifkan Tools Query Analyzer
b) Update semua data mahasiswa yang beralamat di klaten sehingga
alamatnya berubah menjadi ’Jl.Raya tidar 100 klaten’ dan nomor
telfonnya menjadi ‘0341567448’
c) Isikan data berikut pada tabel Mata_Kuliah_XXX yang telah anda
buat pada praktikum II
KODE_mata_kuliah NAMA_KULIAH SKS
TKD1113 Fisika Dasar 3
TKD1111 Manajemen Umum 2
TKD1224 Matematika Diskrit 3
TKK1248 Praktikum Visual Basic 1
TKK1247 Tugas Akhir 6
TKK1249 Sistem Berkas 4
d. Update kolom SKS, sehingga jumlah SKS menjadi 2 kalinya
d) isi data pada tabel ambil_kuliah :
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 32
Kode_mata
_kuliah
Nim Nila
i_Ut
s
Nilai_
Uas
Gr
ad
eTKD1113 0571100138 60 60 C
TKD1111 0571100139 75 80 B
TKD1224 0571100138 89 98 A
TKK1249 0571100140 57 61 C
TKK1248 0571100141 40 55 D
e) Lihat daftar mahasiswa wanita yang berasal bukan dari Klatenf) Cari nama mahasiswa yang namanya dimuali dengan huruf ‘D’,
huruf kedua tidak di ketahui, huruf ketiga adalah ‘D’ dan hurufselanjutnya tidak diketahuai
g) Cari nama mahasiswa yang namanya dimulai dengan huruf ‘F’, hurufkedua tidak di ketahui, huruf kelima adalah ‘i’ dan hurufselanjutnya tidak diketahuai
h) Tampilkan seluruh Mahasiswa yang tidak lulusi) Tampilkan mahasiswa yang punya nilai ‘A’ dan bertempat tinggal diluar
Klaten atau Jakarta (gunakan IN)j) Susun daftar Mahasiswa menurut abjad, namun dibuat berdasarkan
alamat kota merekak) Tampilkan nama kota tersusun dari secara descending dari paramahasiswal) Tampilkan nilai mahasiswa dari yang paling besar ke yang
paling kecil,hilangkan duplikasi tampilan (untuk nim yang sama).
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 33
Praktikum 4FUNGSI DALAM SQL
Tujuan :
1. Praktikan mampu untuk memahami dan menguasai fungsi-fungsi SQL
Landasan Materi
1. Aritmatik
Penghitungan aritmatika dapat dilakukan dengan menggunakan * / + - seperti
umumnya
2. Kelompok Nilai
Fungsi AVG, Max, MIN, SUM, COUNT adalah fungsi yang memproses tabel
dengan kualifikasi tertentu.
3. AVG
Mencari rata-rata
SELECT AVG(field_numerik) from nama_tabel
Nilai perbandingan adalah hasil dari query baru (yang disebut sebagai
“subquery”).Contoh :
SELECT * FROM Ambil_kuliah_XXX WHERE nilai_uas>(select
AVG (nilai_uas) from ambil_kuliah_XXX)
4. MAX
Mencari maksimum
SELECT MAX(nilai_uas) FROM ambil_kuliah_XXX
5. MIN
Mencari minimum
SELECT MIN(nilai_uas) FROM ambil_kuliah_XXX
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 34
6. COUNT
Menghitung record dengan kualilfikasi tertentu. COUNT(*) menyatakan hitung seluruh
record yang berlaku.
SELECT COUNT(*) FROM mahasiswa_XXX
7. SUM
Menjumlah nilai dari kolom tertentu
SELECT SUM(nilai_uas) FROM ambil_kuliah_XXX
8. GROUP BY
Group By Menyeleksi himpunan yangdihitung berdasarkan fungsi spesifik seperti
AVG, COUNT atau lainya.
SELECT nim,COUNT(*) FROM ambil_kuliah GROUP BY nim
9. GROUP BY … HAVING
HAVING berlaku untuk kelompok query Group By dan berfungsi seperti WHERE. Hanya
group yang mempunyai kriteria tersebut yang akan diproses(pada where yang diproses
adalah setiap record dalam tabel). Berikut adalah daftar mahasiswa
yang mempunyai nilai uas rata-rata diatas 80 :
SELECT nim,AVG(nilai_uas) FROM ambil_kuliah GROUP BY nim HAVING
AVG(nilai_uas)>80
10. JOIN
Join adalah teknik yang digunakan untuk mengakses lebih dari satu tabel dan
menggabungkan hasilnya. Perhatikan tabel sesi di bawah ini
SELECT nim, mahasiswa_XXX.nama, grade FROM ambil_kuliah_XXX,
mahasiswa_XXX WHERE ambil_kuliah_XXX.nim=mahasiswa_XXX.nim
11. Menggunakan Alias
Alias digunakan untuk menyederhanakan tulisan, agar tidak terlalu panjang.
SELECT nim, mahasiswa_xxx.nama, grade FROM ambil_kuliah_XXX,
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 35
mahasiswa_XXX WHERE ambil_kuliah_XXX.nim=mahasiswa_XXX.nim
Penulisan dapat disederhanakan menjadi :SELECT nim,M.nama,grade,FROM ambil_kuliah_XXX A,mahasiswa_XXX M
WHERE A.nnim=M.nim
Join biasa dilakukan pada 2 buah tabel atau lebih.
Langkah selanjutnya :
Ikuti langkah-langkah praktikum.
Langkah-langkah praktikum :
Agar anda dapat lebih memahami tentang manipulasi data ikutilah langkah -
langkah berikut ini :
a) aktifkan Tools Query Analyzer
b) Buat tabel asisten_XXX dengan ketentuan :
Asisten_XXX(kd_ass,Nim)Kd_ass char 10
Nim char 10Kd_ass merupakan primary key
Nim merupakan foreign key yang mengacu pada tabel mahasiswa_XXX
c) Buat tabel praktikum_XXX dengan ketentuan :
praktikum_XXX(kd_prak, nama_praktikum,ruang)kd_prak char 10Nama_praktikum Varchar 30Ruang varchar 46
Kd_prak merupakan primary key
d) Buat tabel honor_XXX dengan ketentuan :
honor_XXX(kd_ass, jumlah_jam,honor)kd_ass char 10jumlah_jam inthonor float
kd_ass merupakan foreign key yang mengacu pada tabel asisten_XXX (field kd_ass)
e) Isi data asisten_XXX :
Kd_ass NIM
S10054 0571100138
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 36
S78678 90571100140
S45389 0571100138
f) Isi data praktikum_XXX :
Kd_prak Nama_praktikum Ruang
P10054 Pascal Lan A dan Lan B
P22094 Turbo C++ Unix
P90877 Ms.Sql Server2000 Database
P78678 Cobol Lan A dan Lan B
P45389 Rpg As400
S43535 Html HTML
S56743 Operation Research Unix
g) Isi data honor_XXX :
Kd_ass Jumlah_jam Honor
S10054 12 96000
S78678 6 48000
S45389 8 64000
h) Tambahkan 10% honor untuk mereka yang mempunyai honor dibawah rata-rata
i) Cari asisten yang honornya antar 50.000 sampai dengan 100.000 j)tampilkan asisten yang honornya lebih kecil dari rata-rata.
k) Tampilkan daftar honor asisten dan kurangi dengan pajak penghasilan 15%l) Tampilkan data asisten secara lengkap (nim,nama,alamat)yang honornya
paling kecilm) Berapa banyak asisten yang honornya diatas rata-rata
n) Hitung jumlah honor asisten yang honornya diatas rata-rata
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 37
Praktikum 5
VIEW DAN INDEXTujuan :
1 Praktikan mampu memahami view dan index.Landasan Materi :1. View
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 nim, 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
a. Menghapus VIEW
VIEW dapat dihapus dengan menggunakan DROP VIEW seperti berikut:
DROP VIEW v1
b. VIEW Dari Beberapa Tabel
VIEW dapat diciptakan dari beberapa tabel, misalnya sebuah join sederhana sepertiberikut:VIEW V4 terdiri atas kolom yang dihasilkan melalui SELECT, yaitumahasiswa_XXX, Asisten_XXX, dan honor_XXXCREATE VIEW v4 AS SELECT A.nim, M.nama FROM asisten_XXX
A,Mahasiswa_XXX M WHERE A.nim=M.nim
c. Mengubah VIEW
Untuk dapat langsung mengubah VIEW, gunakan ALTER sama dengan syntaxalter pada tabel.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 38
d. Updating dan insert data Melalui VIEW
Updating dapat dilakukan ke dalam VIEW dengan memberikan nilai seperti padainserting dan updating tabel. Namun perlu diperhatikan “NOT NULL” optioandan CONSTRAINT lainnya, sebelum memasukkan nilai ke dalam VIEW.
CREATE VIEW v6 (name, address, city) AS SELECT nama, alamat, kota FROMmahasiswa_XXX WHERE kota=’JAKARTA’INSERT INTO v6 values (‘Dandi Romo’, 9, ‘BANDUNG’)
Perhatikan bahwa walaupun dalam WHERE dibatasi kota=’JAKARTA’, namunSQL tidak dapat menolak nilai kota yang bukan ‘JAKARTA’Agar konsistensi dapat dijaga, maka pada saat VIEW dibuat, pada akhir instruksiharus ditambahkan “WITH CHECK OPTION”
Contoh :ALTER VIEW v6(name, address, city) AS SELECT nama, alamat, kota FROMmahasiswa_XXX WHERE kota=’JAKARTA’ WITH CHECK OPTION
INSERT INTO v6 values (‘Galih Galinggis’,10, ‘BANDUNG’)Akan muncul error : ERROR
at line 2:ORA-01402: view WITH CHECK OPTION where-clause violation
e. Batasan Manipulasi Melalui VIEW
Melalui VIEW dapat dilakukan INSERT, UPDATE, dan DELETE denganbeberapa limitasi yaitu:
Tidak dapat memasukkan record baru jika mengabaikan nilai NOT NULLpada basis tabel dari VIEW tersebut.
Tidak dapat melakukan INSERT atau UPDATE jika salah satu kolom dalamVIEW merupakan hasil kalkulasi atau hasil dari nilai balik fungsi.
Tidak dapat melakukan INSERT, UPDATE, atau DELETE jika dalamVIEW terdapat GROUP BY atau DISTINCT.
2. INDEXa. Penggunaan Index
Dalam konteks SQL-Server, index adalah sebuah obyek database yang dibuatberdasarkan kolom dalam tabel.Index mempercepat pencarian data. Dengan menggunakan index ,data tidak perludicari dari awal hingga akhir, melainkan menggunakan algoritma pencarian yangefisien, sehingga waktu proses menjadi semakin cepat. Tanpa index, prosespemanggilan table scan terjadi, yang berarti query processor harus melalui masing-
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 39
masing record dalam tabel secara indvidual untuk menemukan record yang sesuaidengan kriteria yang dipilih. Proses ini sama dengan mengalokasikan informasispesifik di dalam buku. Anda dapat menggunakan daftar isi atau index untukmenemukan topik tertentu secara mudah. Tanpa itu semua, Anda harusmembuka dan mencari melalui semua halaman sampai Anda menemukan yangAnda cari.Index mempunyai Overhead selain tempat memory yang lebih besar, jugareorganisasi data karena operasi insert dan delete menjadi lebih kompleks.Dengan demikian index tidak boleh digunakan secara sembarang, melainkandengan perencanaan dan performance tuning yang baik.
b. Memilih kolom untuk indexIndex dipilih berdasarkan selektifitas dari query yaitu beberapa sereing recorddiakses melalui select, update atau delete. Selektifitas dipengaruhi oleh criteriapencarian, yaitu bagaimana memenuhi criteria tersebut dengan mengakses atributapa saja.Hal-hal yang dapat dijadikan landasan untuk membuat index adalah :
o Kolom yang sangat sering dicario Primary key dan Foreign keyo Kolom yang diakses secara abjado Kolom yang diakses dan sering digunakan dengan joino Kolom yang sering dicari berdasarkan urutan (range)o Kolom yang sering menjadi predikat pada kunci kata “Where”
Hal-hal yang menyarankan untuk tidak menggunakan index adalah :o Hasil query melebihi 20% jumlah recordo Kolom yang mempunyai nilai valid sedikit (misalnya jenis kelamin)o Panjang kolom yang besar.
Untuk melihat index yang sudah ada gunakan stored procedure sp_helpindexnamatabel dan sp_spaceused untuk mengetahui pemakaian disk.
c. Clustered IndexDengan Clustered index secara fisik record disusun sesuai dengan susunan index.Dengan demikian hanya ada satu clustered index yang boleh didefinisikan dalamsatu tabel. Primary key adalah kandidat baik untuk menjadi clustered index (indexsecara implicit diciptakan melalui constraint primary key). Dalam menciptakanindex, maka secara default otomatis yang dipilih adalah non clustered index. Caramembuat index adalah:
DROP INDEX CI_NoPegCREATE CLUSTERED INDEX CI_NoPeg ON Pegawai (NoPeg)
DROP dijalankan untuk memastikan bahwa index tersebut belum ada.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 40
d. Non Clustered IndexDalam non clustered index secara fisik susunan record tidak berpengaruh. Nonclustered index menyimpan pointer yang menunjuk ke baris atau record dari tabel.Dalam sebuah tabel dapat dibuat banyak non clustered index, sejauh index tersebutdibutuhkan. Dalan syntax create index pilih NONCLUSTERED adalah default.Cara membuatnya adalah:
DROP INDEX NI_NamaCREATE NONCLUSTERED INDEX NI_Nama ON Pegawai (Nama)
Atau:CREATE INDEX NI_Nama ON Pegawai (Nama)
e. Unique IndexSecara otomatis unique index diciptakan melalui constraint primary key danunique. 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)
Langkah-langkah praktikum :a. Aktifkan Tools Query Analyzerb. Buat sebuah VIEW yang terdiri dari kd_ass dan nama asisten yang
mempunyai honor diatas rata-rata (join tabel mahasiswa_XXX dan Honor_XXX)c. Buat sebuah view yang akan menampilkan isi data Nim, Nama, Alamat, dan
nomor telpon dari mahasiswa_XXX dimana hanya mahasiswa yangmempunyai nama‘Agnes Monica’dan nomor telfonya = 031772739 saja.
d. Isi data pada data mahasiswa_XXX melalui view yang dibuat dengan data :
NIM NAMA JKALAMAT
KOTA PROPINSI TELFON
98111724 Wendy
Setiawan
L Jl.hartako
no.1
Makassar Sulsel 0411869174
98111720 Indra
Rahmanto
L Jl.Merak
timur No. 99
Blora
Cepu Jatim 023772739
e. Buat view dari tabel honor_XXX dan Lakukan update data honor denganmemberikan THR pada setiap assiten dengan jumlah 23 % dari honor yang
diterima.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 41
f. Buat view dari tabel honor_XXX dan Lakukan update data honor denganmemberikan bonus bagi yang mengajar lebih dari 10 jam sebasar 5 % daritotal honor yang diterima.
g. Buat view dari tabel praktikum_XXX dan Lakukan update data ruangan menjadiUNIX bila kd_prak memiliki angka ganjil di setiap akhir kode. Gunakan fungsi IN
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 42
Praktikum 6
TRIGGERTujuan :
1 Praktikan mampu memahami trigger.2 Praktikan mampu membuat trigger.
Landasan Materi :1. Database Trigger
Trigger adalah blok program transact-SQL yang diassosiasikan dengan tabel dandisimpan dalam database. Trigger dieksekusi bila terjadi suatu database “event”.Database event adalah insert, update dan delete.Trigger akan beraksi bila terjadi misalnya :
- sebuah baris baru (record) dimasukkan ketabel- peremajaan record- penghapusan record
Karena itu sebuah trigger terdiri atas :- uraian, kapan trigger dilepaskan (fired)- tabel yang diassosiasikan dengan trigger tersebut- program transact-sql yang dijalankan oleh trigger tersebut
Manfaat Trigger Meluruskan aturan-aturan yang harus berlaku Menjaga nilai sebelum dimasukkan ke dalam database Keamanan Sistem Membuat historical record (riwayat perubahan) Dan lain-lainDeklarasi Trigger :
CREATE TRIGGER namatriggerON namatabel for insert,update,delete
ASDECLARE ………….. <deklarasi variable>
Tergantung dari event yang dipilih :FOR INSERT
Trigger aktif pada saat record baruFOR UPDATE
Trigger aktif pada saat record diubahFOR DELETE
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 43
Trigger aktif pada saat record dihapusUntuk melihat efek trigger, berikut adalah contoh sebuah tabel sederhana. Triggermytrigger akan dilepaskan, setiap kali tabel tersebut diisi dengan record baru.
CREATE TRIGGER mytrigger ON mahasiswa_XXX FOR INSERTAS PRINT 'Record baru :' +CONVERT(char(30),getdate(),103 +’ By
Big_bugsBSD 2002’)
Trigger yang bernama mytrigger dibuat dan setiap sesudah record baru diisi ke tabel,maka program trigger akan aktif.
Test trigger yang baru dibuat :INSERT INTO mahasiswa_XXX (nim,nama,jk,alamat,kota,propinsi)values(‘00111362’,’Anang Fatoni','L','Jl.Sepanjang 80 GDL,'Klaten',’Jateng’)
Hasil :Record baru :08/08/2002 By Big_bugsBSD 2002 (1 row(s) affected)
Di dalam trigger secara implicit dapat diakses “koleksi” record yang dimasukkan(“inserted”), maupun kumpulan record yang dihapus (“deleted”)Record tersebut masuk ke dalam tabel virtual yang bernama “inserted” dan “deleted”.Pada kasus “INSERT” hanya ada tabel virtual “inserted”, sedangkan pada“DELETE” hanya terdapat tabel virtual “deleted”.Untuk “UPDATE” muncul 2 buah tabel virtual, record yang lama masuk ke tabel“deleted”, sedangkan record yang baru masuk ke tabel virtual “inserted”
CREATE TRIGGER mytrigger ON mahasiswa_XXX FOR INSERT ASPRINT 'Record baru :' +CONVERT(char(30),getdate(),103) SELECTNo_peserta,nama,jk,alamat,kota FROM inserted
Test Trigger:INSERT INTO peserta (nim,nama,jk,alamat,kota) values (00123513,'AhmadAan','L','Jl.Sepanjang 80','Klaten')
Hasil:Record baru :06/05/2002No_peserta Nama JK Alamat Kota---------------- ---------------- --- -------------------------- -------------13 Ahmad Aan L Jl. Sepanjang 80 GL Klaten(1 row(s) affected)
Demikian juga pada saat terjadi proses pengupdate-an dan penghapusan databisa memanggil koleksi record yang dihasilkan.
2. Menghapus Trigger
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 44
Menghapus trigger dilakukan dengan instruksiDROP TRIGGER NamaTrigger
Contoh:DROP TRIGGER trupd1
LANGKAH_LANGKAH PRAKTIKUM:a. Aktifkan Tools Query Analyzerb. Buat sebuah tabel prak_jln_XXX dengan ketentuan :
id_dtr : char 5peserta : intmax : intid_dtr merupakan primary keymax merupakan jumlah maksimum praktikan dalam satu sesi
c. Buat sebuah tabel daftar_praktikum_XXX dengan ketentuan :no_daftar : intnim : char 10kd_prak : char 10id_dtr : char 5No_daftar merupakan primary key dan otomatis isinya dimulai dengan 1
(gunakan identity)Nim mereferensi ke tabel Mahasiswa_XXX (field nim)Kd_Prak merupakan referensi ke tabel praktikum_XXX (field kd_prak)Id_dtr foreignkey ke tabel prak_jln_XXX (field id_dtr)
d. Isi data pada 2 buah tabel yang telah dibuat minimal 3 data secara variasi.e. Dengan menggunakan 2 tabel yang sudah dibuat, buatlah trigger yang setiap
kali jika ada pendaftar baru maka jumlah peserta pada tabel prak_jln_XXXakan ditambahkan 1. Sebaliknya jika ada pendaftar yang dihapus maka jumlahpeserta akan dikurangi 1. Perhatikan bahwa awalnya kolom jumlah peserta padatabel sesi adalah kosong, yang berarti NULL, bukan 0. Oleh karena itu untukmengubah nilai NULL, diperlukan fungsi ISNULL (namavariable,0) sebagaiberikut:
UPDATE sesi SET jumlahpeserta = ISNULL (jumlahpeserta,0) +1f. Dengan menggunakan 2 tabel yang sudah dibuat, rubahlah trigger yang telah
dibuat pada langkah ‘e’ dimana setiap kali jika ada pendaftar baru maka jumlahmaksimal peserta pada tabel prak_jln_XXX akan dikurangi 1. Sebaliknya jika adapendaftar yang dihapus maka jumlah peserta akan ditambah 1.
g. Buat sebuah trigger yang mencatat riwayat honor asisten (historical), yakni setiapkali ada perubahan honor asisten, maka perubahan itu akan dicatat di tabel khususyang bernama h_asisten_XXX
Struktur tabel h_asisten_XXX
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 45
Kd_ass char 10honor floattgl_update datetime
h. Lakukan testing terhadap trigger yang telah dibuat dengan memperhatikan carakerja trigger tersebut.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 46
Praktikum 7
TRANSACT-SQLTujuan :
1. Praktikan mampu untuk mengerti dan memahami Transact-SQL
Landasan Materi :1. Transact-SQL
TRANSACT-SQL adalah bahasa pemrograman yang dikembangkan dari SQL.Seperti diketahui SQL adalah bahasa non procedural, artinya alur program tidakseperti bahasa pemrograman bisa, melainkan melalui “request” dan “response”.
Melalui perintah SQL seseorang melakukan query atau transaksi, yang kemudianakan menerima jawaban dari Database Server berupa hasil atau ResultSet.
Query dan transaksi dilakukan di bagian Client,sedangkan pemrosesan dilakukanpada Server.
Transact-SQL mengembangkan kemampuan SQL, sehingga Transact-SQL dapatmelengkapi SQL dengan instruksi logic (procedural logic), yaitu program aplikasi.
Hasil proses SQL-Server (ResultSet) dapat diolah lebih lanjut dengan menggunakanlogic pemrograman procedural seperti Fungsi, Procedure, Loop, Case, If Then Else,dan lainnya.2. Kerangka Transact-SQL
TRANSACT-SQL dimulai dengan deklarasi variable dan disusul dengan blokprogram.Variable harus dideklarasikan sebelum digunakan. Nama variable selalu dimulaidengan karakter @. Variable dapat diberikan nilai melalui instruksi SELECT.
DECLARE/* deklarasi variable */@v1 int,@nama varchar(30)
Keterangan :SELECT digunakan juga untuk eksekusi aritmatika atau lainnya. Misalnya :
SELECT @v1 = @v1 - 100Variable dapat digunakan untuk mengambil nilai dari sebuah query: Contoh
:DECLARE @nama char(30)SELECT @nama = nama
FROM mahasiswa_XXX WHERE nim=’98111761’ PRINT@nama
Hasil:
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 47
Aan IsnainiPRINT adalah fungsi yang menampilkan teks dan variable pada console (layar).
Contoh:PRINT “Nama yang ditemukan adalah :”PRINT @namaPRINT “Nama yang ditemukan adalah :”+@nama
3. Menjalankan Program Transact-SQLDeklarasi Variable
Tipe dari variable yang dapat dideklarasikan adalah bagian dari Ms. SQL yaituchar, varchar, datetima, int, money, dan lainnya.
Contoh deklarasi Variable:
DECLARE@honor int,@total int,@nama varchar(30),@instansi char(10),@tgl_hari_ini datetime,@tgl_nanti datetimeSELECT @honor=300000SELECT @nama=’HUGO LOMBARDI’ SELECT@tgl_hari_ini=getdate() SELECT@instansi=’ECOMODA’ SELECT@tgl_nanti=@tgl_hari_ini PRINT ( ‘Honor andaadalah’)PRINT ( @honor )PRINT ( @nama ) PRINT (@instansi ) PRINT (@tgl_hari_ini ) PRINT (@tgl_nanti )
Hasil:Honor anda adalah300000HUGO LOMBARDIECOMODAMAY 5 2002 10:18AM MAY 52002 10:18AM
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 48
4. Variable GlobalVariable global adalan variable yang disiapkan oleh SQL-Server untuk memberikan
informasi kepada Client. Variable global bersifat read-only.
Nama variable global diawali dengan @@.@@error adalah bilangan bulat yang menyatakan nomor error. Jika variable
tersebut tidak sama dengan 0, maka system memberikan indikasi bahwaterjadi error dan identitas error dinyatakan dalam angka.
@@cursor_rows adalah nilai balik dari cursor yang terakhir kali diolah.@@fetch_status adalah nilai balik dari “fetch” pada cursor. Nilai 0 adalah OK.@@identity memberikan nilai otomatis setiap kali INSERT dilakukan. Nilai ini adalah
identitas dari record tersebut.@@nestlevel adalah nesting level dari stored procedures atau triggers@@rowcount memberikan nilai balik berupa jumlah baris (rows) yang
terpengaruh oleh instruksi terakhir. Setelah instruksi IF atauWHILE, maka @@rowcount dihapus menjadi 0.
@@spid adalah Server Process Id5. IF
IF digunakan dalam mengendalikan alur program berdasarkan kondisi.
IF kondisiInstruksi
IF kondisiInstruksi1
ELSE Instruksi2IF kondisiBEGIN
Contoh:DECLARE @honor int,
@rata_rata intSELECT @honor=100000SELECT @rata_rata=200000IF @honor > @rata_rata
PRINT “Honor diatas rata-rata” ELSEPRINT “Honor dibawah rata-rata”
Hasil:Honor dibawah rata-rata
Bila diaplikasikan pada tabel asisten_XXX, maka nilai honor dapat diambil dariasisten:
DECLARE @honor int,@rata_rata int,
@asisten char(8) SELECT
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 49
@asisten=’98111761’SELECT @honor=honor FROM asisten_XXX WHERE nim=@asistenSELECT @rata_rata=200000IF @honor > @rata_rata
PRINT “Honor diatas rata-rata” ELSEPRINT “Honor dibawah rata-rata”
penggunaan blok IF BEGIN END dapat dilakukan bila instruksi dalam IF lebih dari satuinstruksi..
6. WHILEWHILE digunakan dalam mengeksekusi satu blok program berulang-ulangsampaikondisi pada WHILE menjadi false.
WHILE kondisiBEGIN…
…Contoh:
DECLARE @I intSELECT @i=5WHILE @i > 0BEGIN
PRINT “ i = “+str( @i)SELECT @i = @i - 1
END
Perhatikan bahwa fungsi str() diperlukan untuk mengkonversi bilangan integermenjadi string (teks).
7. CONTINUE dan BREAKCONTINUE dan BREAK berkaitan dengan WHILE. CONTINUE melanjutkanalur program pada pemeriksaan kondisi WHILE, sedangkan BREAK mengakibatkanalur program keluar dari WHILE.
WHILE kondisi1BEGIN
……
IF kondisi2CONTINUE
… ENDWHILE kondisi1
BEGIN…
IF kondisi2
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 50
8. RETURN
RETURN akan menghentikan program dari eksekusi. RETURN dapat digunakandalam memproses error.
IF @@error <> 0BEGIN
PRINT “Error…”RETURN
9. CASECASE menyederhanakan IF yang berlapis dengan tujuan agar program dapatdimengerti/dibaca lebih mudah.
IF kondisi1ELSE IF kondisi2ELSE IF kondisi3ELSE Dapat
diganti:CASE
WHEN kondisi1 THEN WHENkondisi1 THEN WHEN kondisi1THEN
ELSEContoh:
DECLARE @t char(1),@hasil varchar(255)
SELECT @t=’B’ SELECT@hasil=CASE
WHEN @t=’A’ THEN‘Karakter A’ WHEN @t=’B’
THEN‘Karakter B’ ELSE‘Tidak diketahui’
ENDPRINT “Hasil adalah “+@hasil
Hasil:Hasil adalah : Karakter B
Perhatikan bahwa CASE diatas digunakan untuk mengambil nilai variable:SELECT @hasil=CASE
Berikut adalah variasi dari CASE:
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 51
DECLARE @t char(1),@hasil varchar(255)
SELECT @t=’X’ SELECT@hasil=CASE @t
WHEN ’A’ THEN‘Karakter A’ WHEN
’B’ THEN‘Karakter B’
ELSE‘Tidak diketahui’ ENDPRINT “Hasil adalah +@hasil
Contoh pada SQL-Query:DECLARE @jk char,
@nama varchar(16),@teks varchar(255)
SELECT @jk=jk, @nama=nama FROM mahasiswa_XXX WHEREnim=’98111724’SELECT @teks= CASE@jk
WHEN ’L’ THEN ‘Laki-laki’ WHEN ’P’THEN ‘Perempuan’ ELSE ‘?’
ENDPRINT @nama + “ adalah “ + @teks
Hasil:Wendy Setiawan adalah Laki-laki
Langkah-langkah praktikum :
a. Buat sebuah T-SQL untuk menghitung Nilai rata-rata langsung dari tabelasisten_XXX. Buat keterangan bahwasannya assieten tersebut memiliki honordiatas rata-rata atau dibawah rata-rata.
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 52
PRAKTIKUM 8STORED PROCEDURE
Tujuan :
1. Praktikan mampu untuk memahami stored procedure.
Landasan Materi :1. PROSEDUR
Prosedur adalah program yang dapat dipanggil/dielsekusi oleh program lainnya,atau dieksekusi dari SQL-Prompt seperti ISQL.
Prosedur yang paling sering digunakan adalah stored procedure yang berawalansp, dan extended stored procedure (xp), program yang dikompilasi sebagai EXE atauDLL (Dynamic Link Library).
Membuat Prosedur
CREATE PROCEDURE NamaProsedur ASDeklarasi_variable…
…
CREATE PROCEDURE dapat disingkat dengan CREATE PROC. Berikut adalahcontoh sebuah prosedur yang menampilkan honor instruktur:
CREATE PROCEDURE pr_honor ASSELECT kd_ass, honor FROM honor_xxx
RETURNMenjalankan prosedur tersebut dengan EXEC atau langsung nama prosedure
EXEC pr_honor
Untuk mengkoreksi sebuah prosedur, maka kunci kata ALTER harus digunakan.ALTER PROCEDURE pr_honor ASSELECT kd_ass, honor,jumlah_jam FROM honor_xxx
Untuk menghapus prosedur gunakan DROPDROP PROCEDURE NamaProsedur
Untuk secara otomatis mengubah prosedur tanpa ALTER, dapat dibuat scriptsebagai berikut:
USE ilkom_xxx
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 53
IF EXIST (SELECT name FROM sysobjects WHERE name = ‘pr_honor’ ANDtype = ‘P’) DROP PROCEDURE pr_honor go
CREATE PROCEDURE pr_honor AS SELECT kd_ass, honor,jumlah_jamFROM honor_xxx go
2. ParameterProsedur dapat mempunyai parameter berupa variable yang disuplai olehprogram yang memanggilnya.
CREATE PROC NamaProsedur (@p1 int, @p2 char(16), …) ASDeklarasi_variable
…
Pada saat eksekusi, parameter diberikan sebagai berikut:EXEC namaprocedure 210,’teks’,…
Contoh:Tampilkan honor untuk asisten tertentu yang diberikan berdasarkan kode asisten
ALTER PROCEDURE pr_honor (@ini char(6))AS selectjumlah_jam,honor from honor_xxx where kd_ass=@ini
Cara mengeksekusi :EXEC pr_honor ‘S56743’
Hasil :Jumlah_jam honor
------------------- -----------
42 330000
3. Nilai DefaultBila pada saat eksekusi procedure tidak diberikan parameter, maka nilaiparameter tersebut menjadi kosong (null). Untuk menghindari niali null, makapemberian nilai pada parameter dapat menggunakan nilai default.
ALTER PROCEDURE pr_honor (@ini char(6)=’S56743’)AS selectjumlah_jam,honor from honor_xxx where kd_ass=@iniRETURN
EXEC pr_honor ‘S90877’ Hasil :Jumlah_jam honor------------------- -----------
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 54
34 200000EXEC pr_honor
Hasil :Jumlah_jam honor------------------- -----------
42 330000Berikut adalah contoh program yang menedeteksi parameter, bila kosong makapesan error akan ditampilkan.
ALTER PROCEDURE pr_honor (@ini char(6)=null)ASif @ini=null begin
declare @pesan char(6) select@pesan='kosong' print @pesan
returnend
select jumlah_jam,honor from honor_xxx where kd_ass=@iniRETURN
4. Parameter OutputNilai parameter bisa diolah pada program procedure dan untuk kemudianparameter tersebut dapat diubah dan diberikan nilainya pada program yangmemanggilnya.
CREATE Proc m@p1 int, @p2 int, @h int OUTPUTas select @h=@p1*@p2
Eksekusi :EXEC m 10,20,@hsl OUTPUTprint 'hasil = ' +str(@hsl)
Pada contoh ada 3 parameter, yaitu p1 dan p2 sebagai input parameter dan hsebagai output parameter.Pada saat eksekusi p1 adalah 10, p2 adalah 20 dan hsl merupakan hasil perkalian.Berikut adalah program pr_honor1 yang memberikan nilai balik berupaparameter output @dana@dana akan dibaca oleh program yang memenggilnya dan mencetak hasilnya kelayar.
create proc pr_honor1 @ini char(6)=null,@dana int output asif @ini=null
beginprint 'parameter kosong' return
endselect @dana = honor from honor_xxx where kd_ass=@ini return
MODUL PRAKTIKUM BASIS DATA LANJUT (SQL)
By.Mr.Kholil (1-2011-2012) Page 55
Eksekusi :DECLARE @h intEXEC pr_honor1 ' S56743',@h OUTPUTprint 'honor = ' +str(@h)
Langkah-langkah praktikum :
a. Buat sebuah Store Procedure untuk menghitung Nilai rata-rata langsung daritabel asisten_XXX. Buat keterangan bahwasannya assisten tersebut memilikihonor diatas rata-rata atau dibawah rata-rata.
b. Buat sebuah Store Procedure untuk menghitung Nilai rata-rata tiap praktikandalam satu kelas praktikum. (Buat tabel baru untuk menampung nilai-nilaipraktikum. Samakan dengan kartu praktikum anda). Buat keteranganbahwasannya praktikan tersebut memiliki nilai diatas rata-rata atau dibawahrata-rata.