Konsep Dasar Basis Data Basis data merupakan kumpulan data yang saling berhubungan (relasi). Relasi biasanya ditunjukan dengan kunci dari tiap file yang ada. Dalam satu file terdapat record-record yang sejenis, sama besar, sama bentuk, yang merupakan satu kumpulan entitas yang seragam. Satu record terdiri dari field yang saling berhubungan menunjukan bahwa field tersebut dalam satu pengertian yang lengkap dan direkam dalam satu record. Dari pengertian diatas dapat disimpulkan bahwa basis data mempunyai beberapa kriteria penting, yaitu : 1. Bersifat data oriented dan bukan program oriented. 2. Dapat digunakan oleh beberapa program aplikasi tanpa perlu mengubah basis datanya. 3. Dapat dikembangkan dengan mudah, baik volume maupun strukturnya. 4. Dapat memenuhi kebutuhan sistem-sistem baru secara mudah 5. Dapat digunakan dengan cara-cara yang berbeda.
2. Atribut : Atribut biasa disebut juga data elemen, data field, atau data item yang digunakan untuk menerangkan suatu entitas dan mempunyai harga tertentu, misalnya atribut dari entitas pegawai diterangkan oleh, nama, umur, alamat, pekerjaan. 3. Data Value (Nilai Data) : Data Value adalah data aktual atau informasi yang disimpan pada tiap data, elemen, atau atribut. Atribut nama pegawai menunjukan tempat dimana informasi nama karyawan disimpan, nilai datanya misalnya adalah Anjang, Arif, Suryo, dan lain-lain yang merupakan isi data nama pegawai tersebut. 4. File/Tabel : Kumpulan record sejenis yang mempunyai panjang elemen yang sama, atribut yang sama, namun berbeda nilai datanya. 5. Record/Tuple : Kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi.
Persyaratan Basis Data Prinsip utama basis data adalah pengaturan data dengan tujuan utama fleksibelitas dan kecepatan dalam pengambilan data kembali. Adapun Tujuan basis data diantaranya adalah sebagai berikut : 1. Efisiensi meliputi speed, space dan accurancy. 2. Menangani data dalam jumlah besar. 3. Kebersamaan pemakaian (Sharebility). 4. Meniadakan duplikasi dan inkonsistensi data. Sistem basis data merupakan perpaduan antara basis data dan sistem manajemen basis data (SMBD). Komponen-komponen sistem basis data meliputi : 1. Perangkat Keras (Hardware) sebagai pendukung operasi pengolahan data. 2. Sistem Operasi (Operating System) atau perangkat lunak untuk mengelola basis data. 3. Basis data (Database) sebagai inti dari sistem basis data. 4. Sistem Manajemen Basis Data (SMBD). 5. Pemakai (User). 6. Aplikasi lain. Perangkat untuk menjaga abstraksi data dikenal dengan sebutan data model. Data model merupakan kumpulan konsep yang dapat digunakan untuk menggambar struktur data. Struktur basis data meliputi tipe data, relationship, dan beberapa syarat yang harus dipenuhi basis data. Ada beberapa definisi yang umum digunakan dalam basis data, yaitu : 1. Entitas : Entitas adalah orang, tempat, kejadian atau konsep yang informasinya direkam. Pada bidang Administrasi Siswa misalnya, siswa, buku, pembayaran. Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
Ada beberapa ketentuan yang harus diperhatikan pada pembuatan file basis data agar dapat memenuhi kriteria sebagai suatu basis data, yaitu : 1. Redudansi dan inkonsistensi data : Penyimpanan data yang sama dibeberapa tempat disebut redundansi, hal ini menyebabkan pemborosan dan menimbulkan inkonsistensi data (data tidak konsisten) karena bila terjadi perubahan terhadap data maka data harus dirubah dibeberapa tempat, hal ini tentunya tidak efisien. 2. Pengaksesan data : Data dalam basis data harus siap diakses oleh siapa saja yang membutuhkan dan mempunyai hak untuk mengaksesnya. Oleh karena itu perlu dibuat suatu program pengelolaan atau suatu aplikasi untuk mengakses data yang dikenal sebagai DBMS. 3. Data terisolasi untuk standarisasi : Jika data tersebar dalam beberapa file dalam bentuk format yang tidak sama, maka akan menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data, oleh karena itu data dalam satu database harus dibuat satu format sehingga mudah dibuat program aplikasinya 4. Masalah keamanan (security) : Tidak setiap pemakai sistem basis data diperbolehkan untuk mengakses semua data, misalnya data mengenai gaji pegawai hanya boleh dibuka oleh bagian keuangan dan personalia, sedang bagian gudang tidak diperkenankan untuk membukanya. Keamanan dapat diatur dan disesuaikan baik ditingkat basis data atau aplikasinya. 5. Masalah integritas (Integrity) : Basis data berisi file yang saling berhubungan, masalah utama adalah bagaimana kaitan antar file tersebut terjadi meski diketahui bahwa file A terkait dengan file B, namun secara teknis ada field yang mengaitkan kedua file tersebut oleh karena itu field kunci tidak dapat diabaikan dalam merancang suatu basis data.
1
6. Multiple user : Salah satu alasan basis data dibangun adalah karena nantinya data tersebut digunakan oleh banyak orang, baik dalam waktu berbeda maupun bersamaan sehingga kebutuhan akan basis data handal yang mendukung banyak pemakai perlu dipertimbangkan. 7. Data independence (kebebasan data) : Pada aplikasi yang dibuat dengan bahasa pemrograman seperti BASIC misalnya, apabila program telah selesai dibuat dan ternyata terjadi perubahan terhadap struktur file maka program tersebut harus diubah, ini artinya program tersebut tidak bebas terhadap database yang ada. Berlainan dengan paket DBMS apapun yang terjadi pada struktur file, setiap kali hendak melihat data cukup dengan utility LIST. Ini artinya perintah DBMS bebas terhadap database karena apapun perubahan terhadap database, semua perintah akan stabil tanpa ada yang perlu diubah. Data independence dapat dibagi menjadi dua bagian, yaitu : Phisycal Data Independence : Kebolehan untuk mengubah pola fisik database tanpa mengakibatkan suatu aplikasi program ditulis kembali. Modifikasi pada level fisik biasanya hanya pada saat meningkatkan daya guna. Logical Data Independence : Kebolehan mengubah pola konseptual tanpa mengakibatkan suatu aplikasi program ditulis kembali. Modifikasi pada level konseptual teristimewa saat struktur logika database berubah, ditambahkan atau dikurangi.
disebut Data Directory/Dictionery. Contoh perintah DDL misalnya, Create Table, Create Index, Alter, Drop. 2. Data Manipulation Language (DML) : DML merupakan satu paket DBMS yang memperbolehkan pemakai untuk mengakses atau memanipulasi data sebagaimana yang telah diorganisasikan sebelumnya dalam model data yang tepat, dengan DML dapat dilakukan : Mengambil informasi yang tersimpan dalam basis data. Menyisipkan informasi baru dalam basis data. Menghapus informasi dari tabel. Terdapat dua tipe DML yaitu prosedural dan non prosedural. Prosedural DML membutuhkan pemakai untuk mensfesifikasikan data apa yang dibutuhkan dan bagaimana cara mendapatkannya, sedang non prosedural DML membutuhkan pemakai untuk mensfesifikasikan data apa yang dibutuhkan tanpa tahu bagaimana cara mendapatkannya. Contoh paket bahasa prosedural adalah dBase III, FoxBase, sedangkan non prosedural adalah SQL (Structured Query Language) atau Query By Example (QBE)
Database Management System (DBMS) Suatu Database Management System (DBMS) berisi satu koleksi data dan satu set program untuk mengkases data tersebut, jadi DBMS terdiri dari database dan set program untuk menambah data, manghapus data, mengambil dan membaca data. Set program pengelola merupakan suatu paket program yang dibuat agar memudahkan dan mengefisienkan pemasukan atau perekam informasi dan pengambilan atau pembacaan informasi kedalam basis data. Jadi lingkungan SMBD terdiri dari : 1. Komponen perangkat lunak yang membentuk sistem manajemen basis data 2. Perangkat lunak sistem yang berinteraksi dengan sistem manajemen basis data 3. Utilitas, baik loading dan backup, reorganisasi file, report generation, maupun performance monitoring. Paket bahasa dalam DBMS dibagi menjadi beberapa definisi, yaitu : 1. Data Definition Language (DDL) : DDL merupakan satu paket bahasa DBMS yang berguna untuk melakukan spesifikasi terhadap skema basis data. Hasil kompilasi dari DDL adalah satu set tabel yang disimpan dalam file khusus yang
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
2
Instalasi SQL Server 2000 Berikut cara instalasi SQL Server 2000 Personal Edition di Windows XP Pro. Cara instalasinya: Masukkan CD master SQL Server 2000, tunggu beberapa saat hingga muncul layar berikut
Pilihlah Create a new instance of SQL Server, or install Client Tools lalu klik [Next]
(jika layar tersebut tidak muncul, buka folder Setup lalu dobel klik file setupsql.exe) Pada layar diatas pilih SQL Server 2000 Components lalu pada layar dibawah pilih Install Database Server. Isilah Name dan Company lalu klik [Next] dan klik [Yes]
Klik [Next] lalu pilih Local Computer dan klik [Next] Isikan Serial Number lalu klik [Next]
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
3
Pilih Use the same account for each service. Auto start SQL Server Service dan pilih opsi Use the Local System account lalu klik [Next].
Pilih Server and Client Tools lalu klik [Next]. Pada layar selanjutnya pilih opsi Default lalu klik [Next].
Untuk mode Autentikasi, sebaiknya dipilih Windows Autentication yang lebih menjamin keamanan karena terintegrasi dengan windows. Biasanya SQL Server di internet/Web Hosting menggunakan Mixed Mode, sehingga setiap user/pelanggan dapat membuat login di SQL Server tanpa harus memiliki login di sistem windows.
Selanjutnya proses instalasi akan mengcopy file ke komputer. Setelah proses selesai maka anda sudah siap bekerja dengan SQL server.
Pilih Typical (instalasi dengan paket standar) lalu klik [Next].
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
4
Konfiurasi Security
Security pada SQL Server merupakan sesuatu yang kompleks. Pada tulisan ini akan dijelaskan dasar-dasar security pada SQL Server. Terdapat 2 mode security dalam SQL Server, yaitu Windows Mode (Integrated) dan SQL Mode (Standard). Buka property server Enterprise Manager dan masuk ke tab Security.
SQL Server and Windows, merupakan seting default saat instalasi. Dengan konfigurasi ini maka akses koneksi ke SQL server dapat dilakukan menggunakan account Windows atau dengan account login SQL Server (tidak berhubungan dengan account Windows). Konfigurasi jenis ini sangat umum digunakan pada database yang diakses secara terbuka oleh umum, misalnya pada berbagai jasa web hosting di internet. Policy web hosting biasanya tidak mengijinkan pelanggannya untuk memiliki account Windows sehingga untuk akses ke SQL Server disediakan SQL Server login yang dibuat di dalam database dan tidak berhubungan dengan account Windows.
Windows Only, sistem ini lebih aman dibandingkan dengan option pertama. Login untuk akses ke SQL Server menggunakan account user di Windows. Dengan demikian policy account dapat diatur sepenuhnya di Windows antara lain menyangkut perubahan password, lockout, dan pembatasan waktu akses. Apabila databse digunakan di lingkungan intranet atau internal, maka konfigurasi jenis ini lebih baik digunakan.
Maka terlihat ada 2 mode security sebagai berikut:
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
5
Interface SQL Server Ada 3 interface utama saat kita bekerja dengan SQL Server : 1. Enterprise Manager Merupakan interface utama yang paling sering digunakan oleh Administrator Database. Bagian ini mengandung sebagian besar fungsi-fungsi pokok dalam mengatur database.
2. Query Analyser Tool ini merupakan interface utama dalam melakukan pemrograman di SQL Server. Bahasa yang digunakan adalah Transact SQL (T-SQL). Anda dapat membuat perintah untuk mengambil data, sortir, manipulasi data serta melakukan perhitungan tertentu terhadap sekumpulan data dalam database. Script yang telah dibuat dapat disimpan sebagai View ataupun Stored Procedure, sesuai dengan kebutuhan dalam pembuatan aplikasi.
3. Service Manager
Didalam folder Database ditampilkan berbagai database yang ada. Database master, model, msdb, dan tempdb merupakan default system database yang diperlukan agar SQL Server dapat berfungsi dengan baik. Keempat database ini tidak boleh dihapus ataupun dimodifikasi tanpa pengetahuan yang mencukupi tentang sistem SQL Server. Sedangkan Northwind dan pubs adalah database sampel yang dapat digunakan untuk berlatih perintah SQL maupun administrator job. Di dalam folder Security terdapat tool Login yang berisi daftar user di dalam database. Di bagian ini semua manajement yang menyangkut user account dilakukan.
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
Digunakan untuk mengatur service yang ada di SQL Server, apakah akan dijalankan atau dimatikan. Sebuah service juga dapat disetup agar berjalan otomatis sebagai Windows service, atau dijalankan secara manual. Ada 3 service standar dalam setiap instalasi default SQL Server: Distributed Transaction Coordinator SQL Server SQL Server Agent
6
Type Data Pada Sql Server 1. Kategori Binary meyimpan deretan bit. Data berisi bilangan hexadecimal, misalnya bilangan 243 adalah bilangan hexadecimal F3. kategori ini mempunyai beberapa tipe data dasar : Binary, data biner yang mempunyai panjang tetap dengan ukuran maksimum 8,000 bytes. Varbinary, data biner dengan panjang data bervariasi, panjang maksimum 8,000 bytes. Image, data biner dengan panjang data bervariasi, panjang maksimum 2^31 - 1 (2,147,483,647) bytes. 2. Kategori Character, yang berisi karakter-karakter alfanumerik dan symbol Char, data harus mempunyai panjang tetap dengan ukuran maksimum 8,000 karakter (sekitar 8KB) Contoh : KdDosen char(5), KodeMK char(6), NIP char(9). Tipe data Char sangat tepat untuk pengkodean, serta Alfa Numerik (data campuran antara Karakter dan Angka seperti A1005, BK2001 dsb) yang sifatnya tetap. Varchar, panjang data bervariasi dengan maksimum 8,000 karakter (sekitar 8KB) Contoh : NamaMHS varchar(25), NamaDosen varchar(25), Alamat varchar(30), Keterangan varchar(50), NamaMK varchar(40. Text, data berupa karakter Ascii, dengan maksimum 2^31-1 (2,147,483,647) karakter. Tipe data ini tepat untuk digunakan untuk menyimpan keterangan yang banyak dan atau file teks. 3. Kategori Date dan Time berisi kombinasi data tanggal dan waktu. Tidak ada tipe data yang hanya menyimpan tanggal atau waktu saja. Datetime, data tanggal dari 1 January 1753 sampai 31 December 9999, dengan ukuran 8 Byte Smalldatetime, data tanggal dari 1 January 1900 sampai 6 Juni 2079 dengan ukuran 4 Byte Tipe data ini cocok untuk menyimpan tanggal lahir, tanggal transaksi (jual beli), tanggal pendaftaran, serta tanggal lain yang berada dalam jangkauan 1 January 1900 sampai 6 Juni 2079. 4. Kategori Floating Point digunakan untuk numerik atau angka dengan nilai pecahan Float, dari -1.79E+308 sampai 1.79E+308 dengan ukuran 8 Byte Tipe data ini tepat untuk penyimpanan informasi scientific (ilmiah). Real, dari -3.40E+38 sampai 3.40E+38 dengan ukuran 4 Byte
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
Contoh IP, kecil. Dsb
IPK , Diskon, indeks saham , prosentase - prosentase yang
5. Kategori Integer adalah bilangan bulat negative dan positif Bigint, bilangan dengan jangkauan -2^63 (-9223372036854775808) sampai 2^36-1 (9223372036854775807) dengan ukuran 8 Byte Int, bilangan bulat dari -2.147.483.648 sampai 2.147.483.647, ukuran 4 Byte Smallint, bilangan bulat dari -32.768 sampai 32.767, ukuran 2 Byte Tinyint, bilagan bulat dari 0 sampai 255 dengan ukuran 1 Byte Contoh : jumlah anak, jumlah saudara, kapasitas kelas, SKS dari suatu MK, jumlah SKS yang telah ditempuh. Agama (agama hanya ada 5 sehingga dapat dikodekan sebagai 1:islam 2:kristen 3:protestan 4 :hindu 5:budha) status kawin (1:Kawin 2:Belum Kawin 3:Janda 4:Duda) dsb. Catatan : Semua pilihan yang ada dalam Combo Box atau ListBox pada pemrograman Visual seperti Delphi , VB, C++ Builder, Java , HTML dsb menggunakan tipe data ini. Hal ini karena tidak dimungkinkannya pilihan yang lebih besar dari 255. 6. Kategori Monetary menyatakan jumlah uang dalam bentuk negative atau positif Money, jangkauan -922.337.203.685.477,5808 sampai 22.337.203.685.477,5807 ukuran 8 Byte Contoh : Jumlah uang yang harus dibayar saat Perwalian, UTS dan UAS Smallmoney, jangkauan -214.748,3648 sampai 214.748,3647 ukuran 4 byte Contoh harga beli dan harga jual barang (yang tidak lebih dari Rp. 214 ribu), Uang Pendaftaran Praktikum, KKN /SKL, dsb. 7. Kategori Special berisi data khusus yang tidak dapat dimasukkan ke dalam kategori lain Uniqueidentifier, bilangan hexadecimal dengan ukuran 16 byte yang menyatakan globally identifier (GUID). GUID dipakai jika sebuah baris harus berbeda (unik) dari baris lain SQL_variant, berisi semua data yang disupport oleh SQL Server kecuali text, ntext, timestamp, image, dan sql_variant 8. Kategori Unicode memperbolehkan sebuah kolom berisi karakter Unicode Standard. Karakter Unicode berukuran dua kali lipat dari karaker bukan Unicode. Nchar, data harus mempunyai panjang tetap dengan maksimum 4000 karakter Unicode Nvarchar, data bervariasi sampai 4000 karakter Unicode Ntext, data dapat melampaui 4000 karakter Unicode
7
Membuat Database Cara membuat sebuah database: 1. Buka Enterprise Manager lalu expand Microsoft SQL Server > SQL Server Groups 2. Lanjutkan dengan membuka server LOCAL, atau sesuai nama komputer Anda, lalu buka folder Database. Klik kanan folder tersebut dan pilih New Database.
4. Lanjutkan dengan membuka tab Data Files, di bagian ini terdapat beberapa option yang dapat dijelaskan sebagai berikut: File Name dan Location, untuk memberi nama file dan meletakkan file database tersebut di suatu lokasi folder yang diinginkan. File growth, mengatur penambahan ukuran file database. Dapat ditetapkan dengan persentase tertentu atau berdasarkan jumlah megabytes tertentu. Maximum file size, ukuran file dapat dibatasi pada tingkat tertentu atau unlimited.
3. Isikan nama database yang akan dibuat, misalnya: PENJUALAN.
5. Pada tab Transaction Log terdapat option yang sama dengan tab Data Files. Apabila membuat database di SQL Server maka akan terdiri minimum 2 file yaitu: Data File, adalah file untuk menyimpan data. Transaction Log, adalah file yang menyimpan histori transaksi dan semua kejadian di database tersebut. 6. Setelah proses pengisian option selesai, klik OK dan database baru akan terlihat di Enterprise Manager. Membuat database bisa juga dilakukan dengan menggunakan perintah DDL yaitu yaitu perintah CREATE DATABASE melalui layar Query Analyser. Tetapi penggunaan perintah ini penyimpanan database yang dibuat pada folder default yaitu ”C:\Program Files\Microsoft SQL Server\MSSQL\Data”. Contoh : CREATE DATABASE PENJUALAN
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
8
Membuat Tabel Sebuah database terdiri dari satu atau banyak tabel untuk menyimpan data. Untuk membuat tabel klik kanan pada nama database tersebut lalu pilih New > Table.
Ulangi langkah seperti di atas untuk membuat tabel berikut ini : 1. Nama Tabel Buku
2. Nama Tabel Pinjam
Kemudian isi nama-nama kolom/field untuk tabel tersebut. Berikut contoh pengisian untuk tabel dengan nama Pegawai yang berisi 8 field, lengkap dengan tipe datanya masing-masing.
Membuat Tabel bisa juga dilakukan dengan menggunakan perintah DDL yaitu perintah CREATE TABLE melalui layar Query Analyser. Yang harus diperhatikan adalah database yang mau dibuat tabelnya harus sudah ditentukan/dipilih terlebih dahulu. Contoh : CREATE
Dapat dilihat bahwa setiap field memiliki tipe data dan ukurannya masing-masing. Penting untuk diperhatikan bahwa sebuah field harus menggunakan tipe data dan ukuran secara tepat, sesuai dengan kebutuhannya. Apalagi tipe data dan ukurannya terlalu besar, maka database akan cepat membengkak dan memakan memori lebih banyak dari yang dibutuhkan. Selain itu juga perlu ditetapkan field mana yang harus diisi dan mana yang tidak. Pada contoh tersebut field IDPegawai, NmPegawai, Satus dan Alamat harus diisi dengan mengisi setup Allow Null = False (dikosongkan). Artinya field tersebut tidak diperbolehkan kosong. Menyimpan tabel dapat dilakukan sebagai berikut : Tekan icon lambang disket ( ) yang ada di sudut kiri atas layar monitor Isikan nama tabelnya (Pegawai) lalu teka OK Atau Tekan ( ) yang ada di sudut kanan atas layar monitor Isikan nama tabelnya (Pegawai) lalu teka OK
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
TABLE
Pegawai (IDPegawai char(9), NmPegawai varchar(30) NOT NULL, GolRuang varchar(5), Jabatan varchar(50), CHECK (Kelamin=’LakiLaki’ OR Kelamin=’Perempuan’), CHECK (Status=’Pengurus’ OR Status=’Anggota’), Alamat varchar(70), NoTelp varchar(12) Primary Key (IDPegawai))
CREATE TABLE Buku (KdBuku char(5), Judul varchar(70) NOT NULL, Pengarang varchar(40), Penerbit varchar(50), ThTerbit char(4) Primary Key KdBuku) CREATE TABLE Pinjam (IDPegawai char(9), KDBuku char(5), TglPinjam datetime, TglKembali datetime Primary Key (IDPegawai,KDBuku,TGLPinjam)) Keterangan : PRIMARY KEY (PK) Adalah kolom kunci yang benar-benar menjamin tidak ada baris yang kembar/sama pada kolom tersebut
9
FOREIGN KEY Adalah kolom yang mengacu pada primary key pada tabel lain. Dengan adanya foreign key ini maka, kesalahan dalam singkronisasi data antara tabel induk/master dengan tabel anak akan dapat dihindari. CHECK Adalah batasan range/jangkauan nilai, yang diperkenankan pada suatu kolom. Nilai yang berada diluar range/jangkauan akan ditolak. Sebagai contoh pada tabel Pegawai Kelamin selain ”Laki-Laki” dan ”Perempuan” akan ditolak. NULL dan NOT NULL NULL berarti harus diisi (boleh tidak ditulis karenan secara default adalah NULL), Sedangkan NOT NULL datanya harus diisi. Sebagai contoh pada tabel Buku Judul harus disisi sedangkan pengarang, penerbit dan thterbit boleh tidak diisi.
sebagai berikut :
Klik kanan pada icon Diagran kemudian pilih New Database Diagram
Lalu pilih Next seperti gambar Kemudian klik pada tabel yang mau dibuat relasinya dan tekan Add sehingga sehingga tabel tersebut menjadi anggota diagram.
Kemudian tekan Next dan tekan Finish
Memperbaiki Tabel Memperbaiki tabel dapat dilakukan dengan cara: Klik kanan pada nama tabel yang mau diperbaiki Pilik Design Table Lakukan perbaikan yang diinginkan kemudian simpan kembali
Menghapus Tabel Yang harus diperhatikan pada saat menghapus tabel adalah sbb : Menghapus table berarti menghapus semua data yang terdapat pada table tersebut, namun masih dapat dikembalikan lagi dengan perintah restore Jika table mengandung konstraint foreign key, maka konstrain tersebut harus dihapus terlebih dahulu Menghapus tabel dapat dilakukan dengan cara: Klik kanan pada nama tabel yang mau diperbaiki Pilik Delete Kemudian pilih Drop All
Relationship Antar Tabel Dalam sebuah database terdapat hubungan antar tabel yang menjelaskan keterkaitan satu tabel dengan tabel lainnya. Relationship ini sangat penting untuk menjaga integritas dan konsistensi data antar tabel. Misalnya jangan sampai terjadi muncul data tentang peminjaman Buku di tabel Pinjam, padahal nama bukunya belum dientri di tabel Buku. Selain itu relationship juga mempermudah membaca desain sebuah database karena terlihat dengan jelas hubungan antar tabelnya. Untuk membuat relationship antar tabel dapat dilakukan dengan langkah-langkah Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
Untuk menetapkan relationship dapat dilakukan dengan cara : Klik field KdBuku di tabel Buku dan mendragnya ke field KdBuku di tabel Pinjam Klik field IDPegawai di tabel Pegawai dan mendragnya ke field IDPegawai di tabel Pegawai. Maka muncul dialog propertis relationship sebagai berikut: Pada dialog tersebut terdapat beberapa opton sebagai berikut:
Check existing data on creation, konsistensi data akan langsung dicek pada saat pembuatan relationship.
Enforce relationship on replication, pada saat replikasi antar database maka pengcopyan data dilakukan dengan mempertimbangkan hubungan antar tabel (tidak dibahas dalam tulisan ini)
10
Enforces relationship for INSERTs and UPDATEs, merupakan bagian yang sangat penting dalam relationship antar tabel. Bagian ini mengecek hubungan tabel setiap terjadi perubahan dan penambahan data di tabel master. o
Cascade Update Related Fields, setiap ada perubahan di tabel master (Pelanggan) maka field PelangganID di tabel Order juga ikut berubah.
o
Cascade Delete Related Records, apabila data pelanggan di tabel master (Pelanggan) dihapus, maka semua data yang terkait dengan PelangganID terkait di tabel Order juga dihapus.
Setelah semua setup selesai, klik OK maka diagram tersebut selesai dibuat. Anda dapat menambah tabel terkait ke dalam diagram tersebut sesuai dengan kebutuhan. Selain itu juga dapat dibuat beberapa diagram dalam satu databse untuk mempermudah menganalisis desain database. Hal ini biasanya dilakukan apabila jumlah tabelnya sudah sangat banyak.
Anda perlu memberikan nama kepada diagram tersebut dan menyimpannya. Klik toolbar Save untuk menyimpan diagram.
Data Manipulation Language (DML) Setelah database dan tabel dalam database tersebut dibuat, diperlukan pengisian, pencarian, pengubahan serta penghapusan data pada tabel. DML meliputi ke empat hal berikut ini. SELECT : pencarian data INSERT INTO : pengisian data UPDATE : pengubahan data DELETE : penghapusan data Berikut ini adalah istilah – istilah digunakan pada DML beserta tujuannya. SELECT * FROM INSERT INTO VALUES UPDATE SET DELETE WHERE AS ORDER BY GROUP BY HAVING
: : : : : : : : : : : : :
lihat, tampilkan, pilihlah semua data pada smua kolom (hanya pada SELECT !) dari tabel , pada tabel Masukkanlah data kedalam tabel dengan isi, yang isinya adalah Ubahlah data pada tabel Dengan mengganti data Hapuslah data Hanya yang Dengan Alias, dengan nama lain Diurutkan berdasarkan kolom Kelompokkan berdasarkan kolom Yang kelompok datanya……
Contoh : SELECT KdBuku, Judul, Pengarang FROM Buku SQL tersebut dapat dibaca : Pilihlah atau tampilkan data pada kolom KdBuku, Judul, Pengarang Pada tabel Buku SELECT
* FROM Pegawai
SQL tersebut dapat dibaca : Pilihlah atau tampilkan data pada SEMUA KOLOM Pada tabel Pegawai INSERT INTO Buku (KdBuku, Judul, Pengarang,Penerbit,ThTerbit) VALUES (’06001’,’Basis Data’,’Fathansyah’,’Elexmedia’,’2005’) SQL tersebut dapat dibaca : Masukkanlah data kedalam tabel BukuN pada kolom KdBuku, Judul, Pengarang, Penerbit,ThTerbit yang isinya adalah ’06001’, ’Basis Data’, ’Fathansyah’, ’Elexmedia’, ’2005’. Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
11
Menambah Data Pada Tabel ( INSERT INTO ) Menambah data pada table dilakukan melalui perintah Insert Into, Syntax : Cara 1 : INSERT INTO nama_tabel (nama_kolom1 [, nama_kolom2......, nama_kolomN]) values (isi_kolom1 [,isi_kolom2........, isi_kolomN] ) Cara 2 : INSERT INTO nama_tabel values (isi_kolom1 [,isi_kolom2........, isi_kolomN] ) ----- memasukkan data, dengan cara 1 : INSERT INTO Buku (KDBuku, judul,Pengarang,Penerbit,ThTerbit) VALUES ('04002','MSSQL Server 2000','Herdrawan','Elex Media','2001') Keterangan : Data bertipe char , varchar, datetime, dan smalldatetime harus berada diantara petik tunggal. Data money, smallmoney, tinyint, smallint, int, bigint, harus tidak berada diantara petik tunggal.
Atau melalui perintah SELECT (pada Query analizer)
Data yang dimasukkan, dapat dilihat melalui Enterprise Manager, sbb: Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
12
---- mengisi kembali tabel Mata Kuliah, dengan data sbb : INSERT INTO Buku (KDBuku, judul,Pengarang,Penerbit,ThTerbit) VALUES ('04003','Analisis Sistem', 'Ardiansyah', 'Gramedia', '2000') INSERT INTO Buku (KDBuku,Pengarang,judul,ThTerbit, Penerbit) VALUES ('04004', 'Romi','Visual Basic', '2000', 'Elex Media') Pada data terakhir , Pengarang, ThTerbit dimasukkan dengan urutan yang berbeda dari sebelumnya . Hal ini dibenarkan , karena :
Menampilkan / Memilih Data Pada Tabel ( SELECT ) Untuk membaca data tabel, diperlukan perintah SELECT. Pernyataan SELECT berisi lima komponen utama, yaitu :
Kolom-kolom yang diinginkan Table yang diinginkan Kondisi yang harus dipenuhi oleh table Pengelompokan hasil Urutan hasil
Syntax penulisan perintah SELECT, sbb :
INSERT INTO Buku (KDBuku,Pengarang,judul,ThTerbit, Penerbit)
SELECT * | nama_kolom1 [, nama_kolom2 . . . ,nama_kolomN] FROM nama_table [WHERE kondisi_pencarian] [GROUP BY daftar_pengelompokan] [HAVING kondisi_pengelompokan] [ORDER BY daftar_urutan [ASC | DESC] ]
VALUES ('04004', 'Romi','Visual Basic', '2000', 'Elex Media')
-----memasukkan data dengan cara 2 : Insert into Buku Values ('04005','Perancangan 'Wardoyo', 'Elex Media', '2000')
Sistem',
Pada cara kedua, meskipun nama kolom tidak diisi, tetapi nilai/data dapat langsung diberikan.
Tanda * (bintang) hanya terdapat pada perintah SELECT, tanda ini menyatakan semua kolom yang ada pada tabel tersebut. Tanda [ dan ] menyatakan statement didalamnya bersifat optional/pilihan, yakni dapat ditulis ataupun tidak.
Cara kedua ini lebih cepat, tapi dengan beberapa konsekuensi :
Contoh :
1. Semua kolom harus diisi secara lengkap Apabila tabel Buku terdiri dari 5 Kolom, maka kelima kolom tersebut harus diisi. 2. Urutan pengisian isi data harus tepat.
---- menampilkan SEMUA KOLOM pada table Buku SELECT * FROM Buku ---- menampilkan KOLOM KDBUKU, JUDUL, PENGARANG pada table Buku SELECT KDBUKU, JUDUL, PENGARANG FROM BUKU
Tugas : Masukkan data : Buku sebanyak 5 data, Pegawai sebanyak 5 data Pinjam sebanyak 5 data
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
---- contoh perintah select yang lain SELECT PENGARANG, KDBUKU, JUDUL, PENERBIT, THTERBIT
FROM BUKU
13
PERINTAH AS Sehinnga dengan adanya perintah AS pada NAMA_TABEL maka perintah AS digunakan sebagai pengganti nama kolom / nama tabel, statemen ini diperlukan untuk keperluan SQL yang lebih kompleks
SELECT Pegawai.IDPegawai, Pegawai.NmPegawai, Pegawai.GolRuang, Pegawai.Jabatan FROM Pegawai
Contoh AS untuk mengganti nama kolom :
Dapat diubah menjadi :
SELECT IDPegawai AS NIP, NmPegawai AS Nama_Pegawai, GolRuang, Jabatan FROM Pegawai
SELECT Peg.IDPegawai, Peg.NmPegawai, Peg.GolRuang, Peg.Jabatan FROM Pegawai As Peg SELECT Peg.IDPegawai As NIP, Peg.NmPegawai As Nama_Pegawai, Peg.GolRuang, Peg.Jabatan FROM Pegawai As Peg
Contoh AS untuk mengganti nama tabel : SELECT IDPegawai, NmPegawai, GolRuang, Jabatan FROM Pegawai As Peg Apabila dibandingkan dengan AS untuk mengganti nama kolom, pengaruh AS pada penggantian nama tabel ini seakan-akan tidak berpengaruh. Namun sesungguhnya perintah SQL : SELECT IDPegawai, NmPegawai, GolRuang, Jabatan FROM Pegawai berasal dari SELECT Pegawai.IDPegawai, Pegawai.NmPegawai, Pegawai.GolRuang, Pegawai.Jabatan FROM Pegawai Namun untuk lebih menghemat penulisan NAMA TABEL beserta . (titik) pada setiap kolom yang akan dipilih dapat tidak diikutsertakan. Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
14
Pencarian / Pemilihan Data ( WHERE )
Operator Pembanding
Pencarian / Pemilihan data masih berada dalam kelompok SELECT
Digunakan untuk membandingkan/mengetest apakah 2 ekspresi tersebut sama / tidak. Operator ini dapat digunakan oleh semua tipe data kecuali text, ntext, or image
Apabila Perintah SELECT digunakan tanpa adanya Pemilihan, maka yang ditampilkan adalah seluruh data. Apabila perintah SELECT digunakan dengan Pemilihan data berdasarkan kondisi tertentu, misalnya ‘tampilkan data dosen yang kode_dosen nya adalah 46008’, maka yang dipilih/ditampilkan hanya data yang memenuhi kriteria tersebut. Apabila tidak ada data yang memenuhi kriteria, maka tidak ada yang ditampilkan.
Operator
Sebelum menuju pemilihan data, harus dipahami dahulu penggunaan operator pembanding, Aritmatika dan Logika Operator Aritmatika Operator aritmatika dapat dipakai pada tipe-tipe data: int, smallint, tinyint, numeric, decimal, float, real, money dan smallmoney. Table berikut menginformasikan operator numeric dan tipe data yang dapat memakainya. Tipe Data Decimal Float Int Money Numeric Real Smallint Smallmoney Tinyint
Catatan : % :
+
-
/
*
%
modulus (sisa pembagian cth: 10 % 2 = 0 , 5 %3 = 2)
=
Sama dengan
>
Lebih besar
<
Lebih kecil
>=
Lebih besar sama dengan
<=
Lebih kecil sama dengan
<>
Tidak sama dengan
!=
Tidak sama dengan (bukan standar SQL-92 )
!<
Tidak lebih kecil (bukan standar SQL-92 )
!>
Tidak lebih besar (bukan standar SQL-92 )
Operator Logika Operator logika digunakan untuk mengetes kebenaran dari beberapa kondisi. Seperti halnya operator pembanding, Operator logika mengembalikan tipe data Boolean yang berisi TRUE or FALSE. (BENAR atau Salah) Operator AND
PENJELASAN BENAR jika 2 kondisi yang dibandingakan adalah BENAR.
BETWEEN BENAR jika operand berada didalam Range (jangkauan) IN
BENAR jika operand sama dengan salah saru dari daftar expresi yang diinginkan
LIKE
BENAR jika operand mempunyai pattern yang sama/ diinginkan.
NOT
BENAR jika Salah , Salah Jika BENAR
OR
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
Arti
BENAR jika salah satu expresi bernilai BENAR.
15
Contoh penggunaan operator pembanding, aritmatik dan logika dalam pemilihan data.
Operator aritmatik : -- ditampilkan semua data peminjaman Buku SELECT IDPegawai,KDBuku,TglPinjam,TglKembali FROM Pinjam
Operator Pembanding -- ditampilkan semuanya SELECT * FROM BUKU -- ditampilkan hanya Buku yang Penerbitnya ”Elex Media” SELECT * FROM Buku WHERE Penerbit = 'ELEX MEDIA' -- ditampilkan hanya Buku yang Penerbitnya tidak sama dengan ”Elex Media” SELECT * FROM Buku WHERE Penerbit <> 'ELEX MEDIA' -- ditampilkan hanya Buku yang Tahun Terbitnya Lebih besar dari 2002 SELECT * FROM Buku WHERE ThTerbit > '2002'
-- ditampilkan semua data Jumlah hari peminjaman Buku SELECT IDPegawai,KDBuku,DAY(TglKembali) - DAY(TglPinjam) AS Jumlah_Hari FROM Pinjam -- ditampilkan data yang Jumlah hari peminjaman Buku di atas 5 hari SELECT IDPegawai,KDBuku,DAY(TglKembali) - DAY(TglPinjam) AS Jumlah_Hari FROM Pinjam Where DAY(TglKembali) DAY(TglPinjam) > 5 -- ditampilkan data yang Jumlah hari peminjaman Buku ditambah 5 SELECT IDPegawai,KDBuku,DAY(TglKembali) - DAY(TglPinjam) AS Jumlah_Hari, DAY(TglKembali) - DAY(TglPinjam) + 5 AS Jumlah_Hari_Tambah_Lima FROM Pinjam
-- ditampilkan hanya Buku yang Tahun Terbitnya 2002 ke bawah SELECT * FROM Buku WHERE ThTerbit <= '2002' -- ditampilkan hanya Pegawai yang Jabatannya “Staf” SELECT * FROM Pegawai WHERE Jabatan = 'staf' Apabila data bertipe char, varchar, datetime, smalldatatime maka harus berada diantara tanda petik tunggal
Operator Logika 1. Operator Logika AND dan OR
SELECT * FROM Buku ThTerbit = '2000'
Fungsi Yang Menangani Tanggal Day() : Digunakan untuk mendapatkan hari (numeric) dari suatu tanggal. Contoh : Tgl = ’23-08-2007’
Menampilkan data buku yang diterbitkan oleh “Gramedia” dan Tahun terbitnya adalah 2000
Day (Tgl) = 23
WHERE
Penerbit
=
'Gramedia'
AND
Menampilkan data buku yang diterbitkan oleh “Elex Media” Atau Tahun terbitnya adalah 2003 SELECT * FROM Buku WHERE Penerbit = 'Elex Media' OR ThTerbit = '2003'
Month() : Digunakan untuk mendapatkan bulan (numeric) dari suatu tanggal Contoh : Month(Tgl)
=
Year() : Digunakan untuk mendapatkan tahun (numeric) dari suatu tanggal Contoh : Year(Tgl)
=
Tampilkan data Pegawai yang golruang III/b dan jabtan “Staf”
08 SELECT * FROM Pegawai WHERE (GolRuang = 'III/b') AND (Jabatan = 'staf')
2007
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
16
Tampilkan data peminjaman buku yang belum dikembalikan SELECT * FROM Pinjam WHERE TglKembali ='' OR TglKembali IS NULL
Bisa diartikan ‘Pilihlah / tampilkan semua kolom IDPegawai, NmPegawai, GolRuang, Jabatan dari Tabel Pegawai hanya yang NmPegawai dimulai dengan ‘Drs’ selanjutnya TERSERAH
Tampilkan data pegawai yang GolRuangnya IV/a, III/a dan III/c SELECT * FROM Pegawai WHERE GolRuang GolRuang = 'III/d' OR GolRuang = 'III/c'
=
'IV/a'
Contoh : SELECT IDPegawai, NmPegawai, GolRuang, Jabatan FROM Pegawai WHERE NmPegawai LIKE 'DRS%'
OR Hasilnya
2. Operator logika IN Secara prinsip SAMA Dengan OR, hanya saja ia lebih ringkas Tetapi ia HANYA BERLAKU UNTUK SATU KOLOM SAJA Contoh : Tampilkan data pegawai yang GolRuangnya IV/a, III/a dan III/c SELECT * FROM Pegawai WHERE GolRuang GolRuang = 'III/d' OR GolRuang = 'III/c' Bandingkan dengan :
=
'IV/a'
OR
SELECT IDPegawai, NmPegawai, GolRuang, Jabatan FROM Pegawai WHERE NmPegawai LIKE '%M.Kom' Bisa diartikan ‘Pilihlah / tampilkan semua IDPegawai, NmPegawai, GolRuang, Jabatan dari Tabel Pegawai hanya yang NmPegawai dimulai oleh ‘TERSERAH’, ‘APAPUN BOLEH’ pokoknya diakhiri oleh ‘M.Kom’ Hasilnya
SELECT * FROM Pegawai WHERE GolRuang IN ('IV/a','III/d', 'III/c') Tetapi bagaimana dengan sql, berikut apakah bisa dijadikan operator in
SELECT * FROM Buku WHERE Penerbit LIKE '%medi%'
SELECT * FROM Pegawai WHERE Jabatan ='staf' OR Kelamin = 'laki-laki'
Bisa diartikan ‘Pilihlah / tampilkan semua data dari Tabel Buku hanya Penerbit pokoknya ada ‘medi’ dimulai oleh ‘TERSERAH’, ‘APAPUN BOLEH’ diakhiri oleh ‘TERSERAH’, ‘APAPUN BOLEH’
Tidak bisa secara langsung , karena operator IN hanya berlaku untuk satu kolom saja. Tapi bila melalui sql berikut ini bagaimana ?
Hasilnya
SELECT * FROM Pegawai WHERE Jabatan ='staf' OR Kelamin IN ('laki-laki')
3. Operator logika LIKE Operator ini bisa diarikan sebagai ‘MENGANDUNG KATA’ Operator ini biasa menggunakan ‘%’ yang berarti ‘APAPUN’ atau ‘TERSERAH’
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
17
4. Operator logika BETWEEN
Pengurutan Data ( ORDER BY )
Operator ini bisa diartikan sebagai DIANTARA , atau <= x >= Operator ini bisa dipakai untuk semua tipe data
Bisa dibayangkan apabila data yang ada tidak ditampilkan secara berurutan, sangat membingungkan. SQL Menyediakan cara untuk mengurutkan. Urutan ini hanya dilakukan pada saat menampilkan data saja, namun secara fisik data tidak pernah diurutkan, data selalu disimpan apa adanya
Contoh Huruf ‘A’,’B’ berada diantara huruf ‘A’,’B’,’C’,D’,E’ Huruf ‘E’ berada diantara huruf ‘A’,’B’,’C’,D’,E’ Huruf ‘F’ tidak diantara huruf ‘A’,’B’,’C’,D’,E’ Angka 1, 2,3,4 berada diantara 1,2,3,4,5,6,7 Angka 1,6,7 berada diantara 1,2,3,4,5,6,7 Angka 8 tidak berada diantara 1,2,3,4,5,6,7 Tanggal 10-jan-2004 berada diantara 10 agustus 2000 dan 31 desember 2004 Tanggal 31-desember-2004 berada diantara 10 agustus 2000 dan 31 desember 2004 ….Dst.
Contoh :
Menampilkan data Data Buku dengan diurutkan berdasarkan ThTerbit secara Ascending (default) SELECT * FROM
Buku ORDER BY ThTerbit
Hasilnya
Contoh : SELECT * FROM Buku '2004'
WHERE
ThTerbit BETWEEN '2002' AND
Hasilnya adalah :
Menampilkan data Data Buku dengan diurutkan berdasarkan ThTerbit secara Descending SELECT * FROM
SELECT IDPegawai, NmPegawai, GolRuang, Jabatan, Kelamin FROM Pegawai WHERE GolRuang BETWEEN 'III/d' AND 'IV/c'
Buku ORDER BY ThTerbit DESC
Hasilnya
Hasilnya adalah :
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
18
Statement Order By dapat dipersingkat, dari nama kolom menjadi urutan kol tersebut pada perintah select
Contoh : SELECT KdBuku, Judul, Pengarang,Penerbit FROM Buku ORDER BY KdBuku
Kolom “kdBuku+IdPegawai+TglPinjam” merupakan primary key pada tabel “Pinjam” Kolom "IDPegawai" dalam tabel "Pinjam" digunakan untuk menunjuk seseorang pada tabel "Pegawai" tanpa menuliskan namanya. Kolom "KdBuku" dalam tabel "Pinjam" digunakan untuk menunjuk sebuah Buku tertentu pada tabel "Buku" tanpa menuliskan namanya.
Diketahui data pada tabel Pinjam adalah sebagai berikut : Dapat disingkat menjadi : SELECT KdBuku, Judul, Pengarang,Penerbit FROM Buku ORDER BY 1 Demikian juga halnya dengan SELECT * FROM Buku ORDER BY Judul Dapat disingkat menjadi : SELECT * FROM Buku ORDER BY 2
Join dan Key
Dari data yang ditampilkan di atas kita tidak tahu siapa nama pegawai yang telah melakukan peminjaman. Jadi untuk melakukan maksud tersebut bisa dilakukan dengan perintah : SELECT Pin.IDPegawai,Peg.NmPegawai,Peg.Jabatan,KdBuku, TglPinjam, TglKembali FROM Pinjam Pin, Pegawai Peg WHERE Pin.IdPegawai=Peg.IDPegawai Hasilnya
Sesekali kita menginginkan melakukan manipulasi data dari dua atau lebih tabel untuk melengkapi hasil yang diinginkan. Kita dapat menggunakan join. Tabel dalam database dapat memiliki hubungan satu dengan yang lain. Primary Key merupakan kolom tabel dengan nilai unik (tidak ada satupun yang nilainya sama), dapat digunakan sebagai alat untuk menandai sebuah record data. Dengan primary key kita dapat melakukan sambungan data satu dengan yang lain, lintas tabel, tanpa harus mengulang semua data dalam setiap tabel. Perubahan dalam satu tabel dapat mempengaruhi tabel yang lain. Dalam tabel "Buku" , kolom "KdBuku" adalah primary key, berarti tidak ada dua KdBuku yang memiliki nomor yang sama. Ia digunakan untuk pengenal seorang pegawai, walaupun beberapa baris di kolom lain memiliki data yang sama.
Dari data yang ditampilkan kita tidak tahu Buku apa yang dipinjam oleh pegawai tersebut. Untuk maksud tersebut kita bisa lakukan perintah : SELECT Pin.IDPegawai,Peg.NmPegawai,Peg.Jabatan,Pin.KdBuku, B.Judul, B.Pengarang,TglPinjam, TglKembali FROM Pinjam Pin, Pegawai Peg, Buku B WHERE Pin.IdPegawai=Peg.IDPegawai and Pin.KdBuku=B.Kdbuku Hasilnya
Lihatlah pada contoh tabel berikut : Kolom "KdBuku" merupakan primary key tabel "Buku" Kolom "IDPegawai " merupakan primary key tabel "Pegawai"
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
19
Menggunakan Join
Hasilnya:
Untuk maksud seperti di atas bisa juga dilakukan perintah dengan menggunakan keyword JOIN, seperti ini: Perintah pertama: SELECT Pin.IDPegawai, Peg.NmPegawai, Peg.Jabatan, Pin.KDBuku, Pin.TglPinjam, Pin.TglKembali FROM Pinjam Pin INNER JOIN Pegawai Peg ON Pin.IDPegawai = Peg.IDPegawai Perintah kedua: SELECT Pin.IDPegawai, Peg.NmPegawai, Peg.Jabatan, Pin.KDBuku, B.Judul, B.Pengarang, Pin.TglPinjam, Pin.TglKembali FROM Pinjam Pin INNER JOIN Pegawai Peg ON Pin.IDPegawai = Peg.IDPegawai INNER JOIN Buku B ON Pin.KDBuku = B.KdBuku Hasil dari kedua perintah tersebut adalah sama dengan hasil dari perintah yang sebelumnya dilakukan di atas. INNER JOIN menghasilkan semua baris dari kedua atau lebih tabel jika memenuhi syarat. Untuk menghasilkan tampilan seluruh data yang ada di tabel pertama walaupun tidak ada datanya di tabel kedua digunakan LEFT JOIN. Ini berguna untuk memperoleh laporan mana yang tidak melakukan peminjaman dan siapa yang melakukan peminjaman (serta pesan apa). Contoh : SELECT Peg.IDPegawai, Peg.NmPegawai, Pin.KDBuku, B.Judul, Pin.TglPinjam, Pin.TglKembali FROM Pegawai Peg LEFT JOIN Pinjam Pin ON Peg.IDPegawai = Pin.IDPegawai LEFT JOIN Buku B ON Pin.KDBuku = B.KdBuku
-- Tampilkan data pegawai dan data buku yang dipinjam pada bulan Agustus tahun 2006 SELECT Pin.IDPegawai, Peg.NmPegawai, Peg.Jabatan, Pin.KDBuku, B.Judul, B.Pengarang, Pin.TglPinjam, Pin.TglKembali FROM Pinjam Pin , Pegawai Peg, Buku B WHERE Pin.IDPegawai = Peg.IDPegawai And Pin.KDBuku = B.KdBuku And (MONTH(Pin.TglPinjam) = 8) AND (YEAR(Pin.TglPinjam) = 2006) Hasilnya
-- Tampilkan data pegawai dan data Buku yang dipinjam pada tahun 2007 SELECT Pin.IDPegawai, Peg.NmPegawai, Peg.Jabatan, Pin.KDBuku, B.Judul, B.Pengarang, Pin.TglPinjam, Pin.TglKembali FROM Pinjam Pin INNER JOIN Pegawai Peg ON Pin.IDPegawai = Peg.IDPegawai INNER JOIN Buku B ON Pin.KDBuku = B.KdBuku WHERE (YEAR(Pin.TglPinjam) = 2007) Hasilnya
Untuk menghasilkan tampilan seluruh data yang ada di tabel kedua walaupun tidak ada datanya di tabel pertama digunakan RIGHT JOIN. Contoh : SELECT Pin.IDPegawai, Peg.NmPegawai, Pin.KDBuku, B.Judul, Pin.TglPinjam, Pin.TglKembali FROM Pegawai Peg RIGHT JOIN Pinjam Pin ON Peg.IDPegawai = Pin.IDPegawai RIGHT JOIN Buku B ON Pin.KDBuku = B.KdBuku
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
20
Hasilnya
DISTINCT Distinct berarti benar-benar berbeda. Distinct digunakan pada perintah SELECT untuk memilih data pada kolom yang benar-benar berbeda. Contoh : Isi Tabel Peminjaman adalah sebagai berikut :
Ditampilkan data buku yang pernah dilakukan peminjaman SELECT P.KDBuku, B.Judul, B.Pengarang, B.Penerbit FROM Pinjam P INNER JOIN Buku B ON P.KDBuku = B.KdBuku Hasilnya
Untuk mengetahui Judul dan Pengarang buku-buku yang pernah dilakukan peminjaman dapat dilakukan perintah : SELECT DISTINCT Pin.KDBuku, B.Judul, B.Pengarang FROM Pinjam Pin,Buku B WHEERE Pin.KDBuku = B.KdBuku Hasilnya :
Data tersebut akan dikelompokkan berdasarkan data buku : SELECT P.KDBuku, B.Judul, B.Pengarang, B.Penerbit FROM Pinjam P INNER JOIN Buku B ON P.KDBuku = B.KdBuku GROUP BY P.KDBuku, B.Judul, B.Pengarang, B.Penerbit Hasilnya
Terlihat hanya empat data yang ditampilkan karena data yang sama hanya ditampilkan sekali saja.
Pengelompokan Data ( GROUP BY ) Terkadang data yang kita buat perlu dikelompok-kelompokan berdasarkan kriteria tertentu.
Sepintas hasil yang ditampilkan dari perintah Group BY sama seperti penggunaan perintah DISTINCT, namun akan berbeda apabila perintah Group By digunakan bersamaan dengan fungsi AGREGAT.
Contoh :
Ditampilkan data kolom KdBuku dari tabel Pinjam dan dikelompokkan berdasarkan KdBuku SELECT KDBuku FROM Pinjam GROUP BY KDBuku
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
21
Fungsi Agregat Agregat adalah fungsi untuk mengelompokkan data, untuk suatu maksud tertentu. Fungsi ini terdiri dari 5 hal, sbb : MAX (nama_kolom) : untuk mengetahui nilai maksimal kolom tersebut. MIN (nama_kolom) : untuk mengetahui nilai manimal kolom tersebut. AVG (nama_kolom) : untuk mengetahui nilai rata-rata kolom tersebut. SUM (nama_kolom) : untuk mengetahui nilai total kolom tersebut. COUNT(*) atau COUNT(nama_kolom) : untuk mengetahui jumlah baris yang dihasilkan.
SELECT MIN(TglPinjam) AS TlgPinjam_Terendah FROM Pinjam Hasilnya
Menampilkan data Jumlah pegawai menurut golruang SELECT GolRuang, COUNT(*) AS Jumlah FROM Pegawai GROUP BY GolRuang Hasilnya
Contoh :
Ditampilkan Tanggal peminjaman Buku Terendah
Tampilkan data tahun penerbitan buku yang tertinggi SELECT MAX(ThTerbit) AS Tahun_Terbit
FROM Buku
Hasilnya
Ditampilkan tahun peminjaman Buku Tertinggi SELECT MAX(YEAR(TglPinjam)) AS Tahun_Pinjam_Tertinggi FROM Pinjam Hasilnya
Menampilkan data Jumlah pegawai menurut golruang dan Kelamin SELECT GolRuang, COUNT(*) AS Jumlah, Kelamin FROM Pegawai GROUP BY GolRuang, Kelamin ORDER BY Golruang DESC Hasilnya
Tampilkan data tahun penerbitan buku yang terendah SELECT MIN(ThTerbit) AS Tahun_Terbit
FROM Buku
Hasilnya
Ditampilkan Tanggal peminjaman Buku (hari dalam numeric) Terendah SELECT MIN(DAY(TglPinjam)) AS TlgPinjam_Terendah FROM Pinjam Hasilnya
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
22
Menampilkan data peminjaman Buku yang direkap menurut judul Buku
SELECT Pin.KDBuku, B.Judul, B.Pengarang, B.Penerbit, COUNT(*) AS Berapa_Kali_Pinjam FROM Pinjam Pin INNER JOIN Buku B ON Pin.KDBuku = B.KdBuku GROUP BY Pin.KDBuku, B.Judul, B.Pengarang, B.Penerbit
SELECT MONTH(TglPinjam) AS Bulan, YEAR(TglPinjam) AS Tahun,COUNT(*) as Jumlah_Data, SUM(DAY(TglPinjam)) AS Hari, SUM(DAY(TglPinjam) + 10) AS Hari_Tambah_10 FROM Pinjam GROUP BY MONTH(TglPinjam), YEAR(TglPinjam)
Hasilnya
Menampilkan data peminjaman buku yang direkap menurut judul buku dan tahun pinjam SELECT Pin.KDBuku, B.Judul, B.Pengarang, B.Penerbit, YEAR(Pin.TglPinjam) AS Tahun, COUNT(*) AS Berapa_Kali FROM Pinjam Pin INNER JOIN Buku B ON Pin.KDBuku = B.KdBuku GROUP BY Pin.KDBuku, B.Judul, B.Pengarang, B.Penerbit, YEAR(Pin.TglPinjam)
Pada data di atas akan direkap jumlah hari menurut bulan
Hasilnya
Dari data di atas akan ditampilkan rata-rata hari perbulan SELECT MONTH(TglPinjam) AS Bulan, YEAR(TglPinjam) AS Tahun, COUNT(*) AS Jumlah_Data, AVG(DAY(TglPinjam)) AS Hari, AVG(DAY(TglPinjam) + 10) AS Hari_Tambah_10 FROM Pinjam GROUP BY MONTH(TglPinjam), YEAR(TglPinjam) Hasilnya
Hasilnya
Ditampilkan data peminjaman kolom hari berisi hari (dalam muneric) dan kolom Hari_Tambah_10 berisi kolom hari + 10 SELECT IDPegawai,KDBuku,TglPinjam, DAY(TglPinjam) AS Hari, DAY(TglPinjam) + 10 AS Hari_Tambah_10 FROM Pinjam Hasilnya
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
23
HAVING
Mengubah Data ( UPDATE )
Having digunakan untuk menyaring data dari Kelompok yang sudah dihasilkan oleh perintah GROUP BY
Syntax :
Ingat !! Perintah Having hanya bisa di berikan SETELAH perintah GROUP BY Contoh :
Data peminjaman buku yang direkap berdasarkan judul Buku seperti di atas akan ditampilkan yang jumlah pinjamnya 2 kali keatas SELECT Pin.KDBuku, B.Judul, B.Pengarang, B.Penerbit, COUNT(*) AS Berapa_Kali_Pinjam FROM Pinjam Pin INNER JOIN Buku B ON Pin.KDBuku = B.KdBuku GROUP BY Pin.KDBuku, B.Judul, B.Pengarang, B.Penerbit HAVING COUNT(*) >= 2
UPDATE nama_tabel SET nama_kolom1 = ekspresi1 [, nama_kolom2 = ekspresi2 , ……. , nama_kolomN = ekspresiN] [WHERE KONDISI] Statement WHERE digunakan untuk mengubah sebagian data saja, apabila semua data hendak diubah, maka statement WHERE tidak diperlukan. Contoh : ----- Data Buku sebelum terjadi perubahan SELECT * FROM Buku
Hasilnya
Data peminjaman buku yang direkap berdasarkan tahun seperti di atas akan ditampilkan yang penerbitnya “Elex Media” saja
4
SELECT Pin.KDBuku, B.Judul, B.Pengarang, B.Penerbit, YEAR(Pin.TglPinjam) AS Tahun, COUNT(*) AS Berapa_Kali FROM Pinjam Pin INNER JOIN Buku B ON Pin.KDBuku = B.KdBuku GROUP BY Pin.KDBuku, B.Judul, B.Pengarang, B.Penerbit, YEAR(Pin.TglPinjam) HAVING (B.Penerbit = 'Elex Media')
------ Mengubah nama pengarang menjadi Romi Mardian hanya untuk Pengarang yang nama Pengarang = Ro
Hasilnya
SELECT
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
UPDATE Buku SET Pengarang='Romi Mardian' WHERE Pengarang='Romi' * FROM Buku
24
---- Mengubah Judul Buku dan TahunTerbit hanya untuk Buku yang kodenya 04001 UPDATE Buku SET Judul ='Pengantar Basis Data', ThTerbit = '2002' WHERE KdBuku = '04001' Hasilnya :
Membackup database Backup database sangatlah penting dilakukan sebagai antisipasi terhadap kemungkinan rusaknya database kita. SQL Server 2000 memiliki beberapa mekanisme backup yaitu dengan Backup Database, Detach Database ataupun dengan cara Generate SQL Script dan Export Data. Backup Database Pembuatan backup dengan fasilitas Backup Database dilakukan SQL Server dengan cara mengkompresi database beserta object dan record didalamnya menjadi satu buah file backup. Teknik kompresi yang digunakan adalah teknik SQL Server sendiri, jadi jangan harap file kompresi tersebut bisa Anda buka dengan Winzip maupun Winrar Berikut langkahnya: Klik kanan pada nama database (Pustaka) dan pilih menu All Tasks > Backup Database
Menghapus Data ( DELETE ) DELETE digunakan untuk menghapus data yang tidak diperlukan. Adapun yang dihapus adalah DATA/ISI dari kolom tersebut, bukan Kolomnya. Namun hati-hati dalam penggunaannya karena data yang sudah dihapus tidak bisa dikembalikan lagi. Syntax : DELETE FROM nama_tabel [WHERE kondisi]
Pada window backup, klik [ Add ]
Statement WHERE digunakan untuk menghapus sebagian data saja, apabila semua data hendak dihapus, maka statement WHERE tidak diperlukan. Contoh :
Menghapus Data Buku dengan Kode ‘05002’ DELETE From Buku Where KdBuku=’05002’
Menghapus Semua data Buku DELETE FROM BUKU
Menghapus Data Buku Penerbitnya ‘Elex Media’ atau yang Tahun Terbitnya ‘2000’ DELETE FROM BUKU where Penerbit='Elex Media' OR ThTerbit='2000'
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
25
Klik ikon [...] tentukan lokasi penyimpanan dan pada isian File Name. Isilah nama file backup pada field File Name, misalnya akademik.bak (ekstensi bebas). Anda juga bisa memilih lokasi yang lain. Klik [OK] 2x. Pilih opsi Overwrite existing media lalu klik [OK] untuk memulai proses backup. Setelah selesai akan muncul pemberitahuan The backup operation has been completed successfully. Detach Database Yang dimaksud dengan Detach Database adalah melepas ikatan sebuah database dari system SQL Server. Sebelumnya perlu dijelaskan tentang “ikatan” ini. Dalam system SQL Server, kernel (inti) SQL Server selalu memiliki catatan tentang objectobject yang dimilikinya, salah satunya adalah database. Informasi ini disimpan dalam object-object system. Dengan demikian, sebuah database selalu terikat dengan informasi kernel tersebut, sehingga kita tidak bisa sembarangan menghapus file database (mdf nya) apalagi mengkopi file mdf ke folder C:\Program Files\Microsoft SQL Server\MSSQL\data (jangan harap nama database tersebut akan muncul di folder SQL Server). Nah, mulai SQL Server 2000, diperkenalkan menu Detach Database yang dapat digunakan untuk melepaskan ikatan tersebut secara aman. Berikut langkahnya: Klik kanan pada nama database (Pustaka) dan pilih menu All Tasks > Detach Database
Perhatikan sekarang database akademik telah menghilang dari struktur folder SQL Server. Selanjutnya, Anda bisa mengkopi file akademik_Data.mdf ke tempat lain sebagai file backup. Generate SQL Script dan Export Data Mekanisme backup terakhir ini sedikit lebih rumit. Pada Generate SQL Script, SQL Server akan membuatkan perintah-perintah SQL pembentuk database dan tabletable. Hasilnya dapat disimpan ke file. Sehingga dengan bermodalkan file tersebut Anda dapat membangun kembali struktur database dan object-objectnya secara utuh seperti sedia kala. Tetapi tanpa record-recordnya. Nah untuk recordnya bisa dilakukan dengan cara Export Data. Dengan demikian kedua-duanya sebaiknya Anda kerjakan. Berikut langkah Generate SQL Script : Klik kanan nama database (Pustaka) dan pilih menu All Tasks > Generate SQL Scripts
Klik [OK] untuk memulai proses Detach hingga muncul pemberitahuan Detaching database has completed successfully. Pada window yang muncul klik dulu [Show All]
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
26
Lanjutkan dengan proses Export Data : Klik kanan database Akademik dan pilih menu All Tasks > Export Data. Klik [Next] pada window yang muncul Pilih opsi Script All Objects. Klik tab Options. Beri check pada opsi berikut:
Klik [OK] kemudian isilah nama filenya missal pustaka.sql. Klik [Save] untuk memulai proses. Tunggu hingga muncul message Scripting was completed successfully.
Pada window selanjutnya, isilah Data Source dengan Microsoft OLE DB Provider for SQL Server, dan pada field Database pastikan database pustaka sudah terpilih.Klik [Next]
File akademik.sql bisa dibuka dengan editor teks seperti notepad.
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
27
Di window selanjutnya kita harus menentukan format file hasil exportnya. SQL Server 2000 bisa mengeksport ke berbagai format file. Sebaiknya pilihlah format file excel. Pilihlah Microsoft Excel 97-2000 pada field Destination. Pada isian File name ketikkan lokasi dan nama file excelnya. Nama file tersebut boleh file baru atau file lama, tapi sebaiknya gunakan file baru agar hasil export tidak tumpuk dengan yang lama (file xls yang lama hapus saja). Sebagai contoh isilah E:\Adm BPDE\Bimtek\Pustaka.xls pada File name nya. Klik [Next]
Klik [Select All] lalu klik [Next]. Pilih Run immediately (export akan langsung dikerjakan). Klik [Next] lalu [Finish]. Tunggu hingga muncul message Successfully copied… dst
Merestore database
Pilih opsi Copy table(s) and view(s) from the source database. Artinya semua table dan view akan diexport (tentang view penjelasnnya menyusul). Klik [Next]
Restore merupakan kebalikan dari proses backup. Yaitu mengembalikan struktur basis data beserta record-recordnya yang dibaca dari file backup. Seperti halnya proses backup, SQL Server 2000 memiliki 3 mekanisme restore, yaitu melalui menu Restore, Execute SQL Script dan Import Data serta dengan menu Attach. Sebelum merestore database akademik, hapus dulu database tersebut dengan mengklik kanan pada database akademik lalu pilih Delete (jangan lupa membackupnya dulu) Menu Restore Database Klik kanan pada folder Database, pilih menu All Tasks > Restore Database.
Klik pada nama database backupnya dan kemudian tekan [OK]. Tunggu hingga muncul message Retore of database ‘PUSTAKA’ completed successfully.
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
28
Membuat User SQL Server Untuk membuat user di SQL Server, buka folder Security dan klik kanan pada Login lalu pilih New Login.
Pada dialog property SQL Server Authentication, artinya anda membuat user di SQL Server yang terpisah dari account windows. Masukkan nama user misalnya poedin, lalu pilih default database yaitu PUSTAKA. Artinya user tersebut diberi hak akses ke database PUSTAKA. Selain itu juga dimasukkan pasword untuk user tersebut.
Setelah pembuatan user selesai maka jika anda membuka database PUSTAKA dan masuk ke icon user akan terlihat bahwa user poedin telah menjadi anggota di database PUSTAKA.
Kemudian buka tab Database Access, dan tetapkan poedin sebagai database owner untuk PUSTAKA. Karena user ini ditetapkan sebagai owner maka memiliki hak penuh untuk merubah, membuat dan menghapus obyek di dalam database PUSTAKA.
Panduan Ringkas Belajar SQL Server 2000, Oleh Team Bimbingan Teknis Bidang PSI dan Teknologi Telematika Dishubkomintel Aceh
29