By : Hanung Nindito Prasetyo
Program Studi Teknik Komputer Jurusan Teknologi Informasi Politeknik Telkom 2012 HanungNP/Basis Data/Politel/2012
DBMS merupakan perantara bagi pemakai dengan basis data dalam disk. Cara berinteraksi / berkomunikasi antara pemakai dengan basis data tersebut diatur dalam bahasa khusus yang ditetapkan oleh pihak pembuat DBMS. Bahasa tersebut dapat disebut sebagai bahasa basis data yang terdiri atas sejumlah perintah (command) yang dapat dituliskan / diberikan user untuk kemudian diproses oleh DBMS untuk melakukan suatu aksi tertentu. Contoh : SQL, dBase, dsb. HanungNP/Basis Data/Politel/2012
Sebuah Bahasa basis data biasanya dapat dipilah ke dalam 2 kelompok, yaitu : 1. Data Definition Language (DDL) 2. Data Manipulation Language (DML)
HanungNP/Basis Data/Politel/2012
DDL
adalah bahasa basis data yang digunakan untuk menggambarkan desain basis data secara keseluruhan. Dengan DDL kita dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel, dsb. Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut Kamus Data (Data Dictionary). HanungNP/Basis Data/Politel/2012
DML berisi kumpulan perintah yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa : 1. Penyisipan / Penambahan data baru ke suatu basis data. 2. Penghapusan data dari suatu basis data. 3. Pengubahan data di suatu basis data. HanungNP/Basis Data/Politel/2012
HanungNP/Basis Data/Politel/2012
Hasil kompilasi dari perintah DDL adalah satu set dari tabel yang disimpan dalam file khusus disebut data dictionary/directory. Satu set directory adalah satu file yang berisi meta data yaitu “data mengenai data” file ini dikonsultasikan sebelum data sebenarnya dibaca atau dimodifikasikan dalam satu sistem database. Statement yang terdapat dalam DDL : - CREATE DATABASE TABLE INDEX VIEW - DROP DATABASE TABLE INDEX VIEW - ALTER TABLE
HanungNP/Basis Data/Politel/2012
Data Definition menggunakan SQL : Tabel Dokter (Kode_Dok menunjukkan primary key dari tabel dokter)
Kode_Dok D001 D003 D004 D015
Nama_Dok Alfian Joni Kuniawan Esti Yuliana Sri Ningsih
Tabel Pasien (Kode_Pas menunjukkan primary key dari tabel pasien)
Kode_Pas P051 P063 P004 P015 P125 P023
Nama_Pas Jekel Elfis L Linda Yati P Helmi L Depi Haryanto L Yanti Octavia P DeviHanungNP/Basis Marlina Data/Politel/2012 P
Alamat Sungai Penuh Tanjung Tanah Semurup Sebukar Sungai Penuh Sungai Penuh
Tabel Berobat
Kode_Pas P051 P063 P004 P015 P051 P063 P015 P015
Kode_Dok D004 D015 D001 D003 D004 D015 D004 D004
Tgl_Berobat 12-05-2005 10-04-2005 10-04-2005 12-05-2005 15-05-2005 15-05-2005 16-05-2005 22-05-2005
Nama_sakit
Create Database → membuat database Bentuk Umum : Create Database (nama_database); HanungNP/Basis Data/Politel/2012
Contoh : Buat file database dengan nama puskesmas → Create Database puskesmas
utk menggunakan database gunakan perintah >> use namadatabase
Create Table → membuat tabel
Bentuk Umum :
Create Table nama_tabel (nama_kolom1, tipe_data, lebar_data,….); Keterangan : nama_tabel → nama yang diberikan di tabel baru. Nama tabel maksimal terdiri dari 8 karakter. Tidak boleh memakai spasi, terdiri dari huruf. nama_kolom → nama yang diberikan untuk kolom baru, maksimal terdiri dari 10 karakter. Tidak boleh memakai spasi, terdiri dari huruf, angka dan lain-lain. type_data → jenis data yang nilainya dimasukkan dalam kolom yang telah ditentukan. lebar_data → nomor spasi karakter untuk mengikuti data yang dimasukkan dalam kolom yang telah ditentukan.
HanungNP/Basis Data/Politel/2012
Contoh : - Buat tabel Dokter → Create Table Dokter (Kode_Dok int(4) notnull, nama_dok varchar(25) notnull); -
Buat tabel Berobat → Create Table Berobat (Kode_Pas int(4) notnull, Kode_Dok int(4) notnull, tgl_berobat date(8) notnull, nama_sakit varchar(25) notnull);
HanungNP/Basis Data/Politel/2012
• untuk melihat tabel yg sudah dibuat, perintah;
>> show tables;
• utk melihat struktur tabel
>> describe namatabel
HanungNP/Basis Data/Politel/2012
HanungNP/Basis Data/Politel/2012
NmDepan
Inisial
NmBlk
Nama Gaji
nama
JenisKel
(1,1) Pegawai
(0,1
mengepalai
(1,N
)
(1,1)
lokasi 8
Departemen
JmlPegawai
TglMulai
,N )
(0 ,N
)
(1
( 0 ,N
(0,1)
)
NoKTP
bekerja untuk
nomor
(0,N)
Alamat
mengatur
(1 ,N )
menanggung
Proyek
(1,1)
LamaJam
(1,1)
) bekerja pada
memimpin
Nomor Tanggungan
Nama
Hubungan JenisKel TglLahir
HanungNP/Basis Data/Politel/2012
Nama
Lokasi
indeks
dalam database dapat diumpamakan seperti indeks dalam sebuah buku yang tebal, sehingga item tertentu dapat ditemukan dengan cepat. Sebuah indeks dalam basis data berfungsi untuk mempercepat pencarian data berdasarkan kolom tertentu.
HanungNP/Basis Data/Politel/2012
Sebuah
perintah : SELECT * FROM pegawai WHERE nip =‘198308282008122002’;
jika
nip tidak dijadikan indeks, maka pencarian data akan dilakukan pada seluruh tabel, dapat dianalogikan seperti mencari sesuatu dalam sebuah buku dan buku tersebut tidak dilengkapi dengan indeks. Tetapi jika terdapat indeks yang berkaitan dengan nip maka akan ditemukan lebih cepat. HanungNP/Basis Data/Politel/2012
Dengan
penambahan indeks pada suatu data akan menambah kecepatan pengaksesan data tersebut, tanpa harus mengubah urutan fisik datanya dan juga dapat mempercepat proses pencarian data berdasarkan nilai field tertentu.
HanungNP/Basis Data/Politel/2012
Tabel
1.1 adalah tabel ad yang tak berindeks sehingga jika dicari nilai-nilai tertentu pada kolom company, maka nilai-nilai yang ada di masing-masing baris harus diperiksa. Ini lah yang disebut full-tabel scan.
HanungNP/Basis Data/Politel/2012
HanungNP/Basis Data/Politel/2012
Tabel
1.2 merupakan tabel yg sama tapi dengan tambahab indeks. Indeks berisi sebuah masukan untuk masing-masing baris dalam tabel ad, akan tetapi nilai nom_company pada indeks telah terurut.
HanungNP/Basis Data/Politel/2012
HanungNP/Basis Data/Politel/2012
Create Index → membuat index.
Bentuk Umum :
Create (unique) Index nama_index on nama_tabel (nama_kolom);
Keterangan : unique → pilihan perincian yang dapat digunakan untuk menguatkan nilai data di dalam kolom nama index menjadi unik. nama_index → nama index yang baru. nama_tabel → nama tabel yang berisi kolom index akan dibuat. nama_kolom → nama dari kolom tempat index akan dibuat. Yang terdiri dari Asc untuk pilihan index naik dan Desc untuk pilihan index menurun.
Contoh : - Buat index data pasien berdasarkan kode_pas dengan nama pasien2 → Create index pasien2 on pasien (kode_pas); - Buat index data berobat berdasarkan kode_dok dengan nama obat2 → Create index obat2 on berobat (kode_dok); HanungNP/Basis Data/Politel/2012
View
adalah tabel virtual yang isinya didefinisikan oleh query database.View bukanlah sebuah tabel fisik, tetapi sekumpulan instruksi yang menghasilkan sekumpulan data.
HanungNP/Basis Data/Politel/2012
View
hanya bisa dibuat di dalam database yang sedang digunakan. View bisa menggunakan data dari view lain. Kita tidak bisa membuat indeks untuk view. Jika ada lebih dari satu kolom view yang memiliki nama yang sama, kolom tersebut harus diberi alias. Kolom didalam view sama dengan kolom ditabel asal.
HanungNP/Basis Data/Politel/2012
Create View → untuk membuat tabel view. Create view lebih bersifat manipulasi data daripada pernyataan definisi data.
Bentuk Umum : Create View nama_view [(nama_kolom1,…)] As Select statement [with check option]; Keterangan : nama_view → harus dimulai dari huruf, bilangan atau garis bawah. Maksimal terdiri dari 9 karakter. with check option → merupakan klausa optimal yang menyebabkan semua perubahan dan penyisipan ke view akan diperiksa untuk mengetahui apakah semua itu memenuhi definisi view.
HanungNP/Basis Data/Politel/2012
Contoh : - Buat view dengan nama pasienview yang berisi semua
data pasien.
→ Create view pasienview As select * from pasien;
- Buat view dengan nama berobatview yang berisi
kode_pas, kode_dok dan tgl_berobat.
→ Create view berobatview (kode_pas, kode_dok, tgl_berobat) As select kode_pas, kode_dok, tgl_berobat from berobat ;
Drop (database, table, index, view) →
digunakan untuk menghapus database, tabel, index, dan view.
Bentuk Umum : Drop Database nama_database ; → untuk menghapus database Drop Table nama_tabel ; → untuk menghapus tabel Drop Index nama_index ; → untuk menghapus tabel index Drop View nama_view ; → untuk menghapus view HanungNP/Basis Data/Politel/2012
Contoh : Hapus database pasien → Drop database pasien ; Hapus tabel berobat → Drop table berobat ; Hapus tabel index dokter → Drop index dokter ; Hapus tabel view pasien → Drop view pasien ;
Alter Table → digunakan untuk menambah satu atau lebih kolom di tabel yang baru dibuat. Bentuk Umum : Alter Table nama_tabel
ADD (nama_kolom, jenis_kolom) → untuk menambah kolom MODIFY (nama_kolom, jenis_kolom) → untuk mengubah kolom DROP (nama_kolom, jenis_kolom) → untuk menghapus kolom
HanungNP/Basis Data/Politel/2012
Contoh : 1. Tambahkan kolom alamat (Alt) dengan panjang 25 karakter pada tabel Dokter → Alter table dokter add (alt char(25)) ; 2. Ubah panjang kolom nama dokter (nama_dok) menjadi 15 karakter → Alter table dokter modify (nama_dok char(15)) ; 3. Hapus kolom tanggal berobat (tgl_berobat) dari tabel berobat → Alter table berobat drop (tgl_berobat char(8)) ;
HanungNP/Basis Data/Politel/2012