1 Bahan Kuliah: Sistem Basis Data
BAB 1 PENGERTIAN SISTEM MANAJEMEN BASIS DATA 1.1. Basis Data Basis data atau database, berasal dari kata basis dan data, adapun pengertian dari kedua pengertian tersebut adalah sebagai berikut : Basis
:
dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul.
Data
:
representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya.
Dari kedua pengertian tersebut, maka dapat ditarik kesimpulan bahwa pengertian dari Basis Data adalah Kumpulan file / table yang saling berelasi (berhubungan) yang disimpan dalam media penyimpanan eletronik. Dapat dikatakan pengertian lain dari basis data adalah
koleksi terpadu dari data yang saling berkaitan yang dirancang untuk
memenuhi kebutuhan informasi suatu enterprise (dunia usaha). Dari pengertian tersebut dapat diambil kesimpulan pada masing – masing table / file didalam database berfungsi untuk menampung / menyimpan data – data, dimana masing – masing data yang ada pada table / file tersebut saling berhubungan dengan satu sama lainnya. Tujuan dari dibentuknya basis data pada suatu perusahaan pada dasarnya adalah kemudahan dan kecepatan dalam pengambilan kembali data.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
2 Bahan Kuliah: Sistem Basis Data
Untuk lebih jelasnya dapat dilihat pada gambar 1.1, terlihat bahwa pada gambar diatas itu bukan basis data melainkan lemari arsip, dimana pada setiap rak dalam lemari tersebut dapat menyimpan dokumen – dokumen manual yang terdiri dari lembaran – lembaran kertas. Masalah yang dihadapi pada lemari arsip adalah kelambatan dalam menelusuri data – data yang ada pada lemari arsip tersebut, misalkan kita ingin mencari arsip untuk pegawai tertentu dihasilkan dengan lambat dikarenakan petugas harus mencari lembaran – lembaran yang ada pada dokumen tersebut dan ini sangat menyita waktu. Sedangkan kalau kita bicara basis data, maka seluruh data – data disimpan dalam basis data pada masing – masing table / file sesuai dengan fungsinya, sehingga kita dengan mudah dapat melakukan penelusuran data yang diinginkan hal ini akan mengakibatkan pada kecepatan atas informasi yang disajikan.
Matakuliah
Mahasiswa
Dosen Nilai
Lemari arsip di sebuah ruang
Table Matakuliah
Table Dosen
Table Mahasiswa
Table Nilai
HARD DISK (Basia Data NilaiMahasiswa)
Basis Data di sebuah hardisk Gambar 1.1. Lemari Arsip dan Basis Data
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
3 Bahan Kuliah: Sistem Basis Data
Didalam suatu media penyimpanan (hard disk misalnya), kita dapat menempatkan lebih dari 1 (satu) basis data dan tidak semua bentuk penyimpanan data secara elektronik dikatakan basis data, karena kita bisa menyimpan dokumen berisi data dalam file teks (dengan program pengolahan kata), spread sheet, dan lainnya. Yang ditonjolkan dalam basis data adalah pengaturan / pemilahan / pengelompokan / pengorganisasian data yang akan disimpan sesuai dengan fungsi / jenisnya. Hal tersebut bisa berbentuk sejumlah file / table terpisah atau dalam bentuk pendefinisian kolom / field data dalam setiap file / table tersebut. 1.2. Hirarki Data Hirarki data dalam dikelompokkan menjadi 3 (tiga) buah yaitu file, record dan elemen data, untuk lebih jelaskan dapat dilihat pada gambar 1.2. berikut ini.
Database
File / Berkas / Table
Rekaman / Record / Baris
………….
Elemen Data / Field / Atribut ……
………….
…….. ……..
Gambar 1.2. Hirarki Data Pengertian dari gambar tersebut diatas adalah sebagai berikut : 1). Elemen Data / Field / Atribut adalah satuan data terkecil yang tidak dapat dipecah lagi menjadi unit lain yang bermakna. Pada data Mahasiswa, field / atribut datanya
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
4 Bahan Kuliah: Sistem Basis Data
dapat berupa : nim, nama_m, tpt_lhr_m, tgl_lhr_m, alm_m dan dan atribut lainnya yang menyangkut mahasiswa tersebut. Istilah lain elemen data adalah medan / field, kolom, item, dan atribut. Istilah yang umum dipakai adalah field, atribut atau kolom. 2). Rekaman / Record / Baris adalah gabungan sejumlah elemen data yang saling terkait. Contohnya adalah nim, nama_m, tpt_lhr_m, tgl_lhr_m, alm_m an atribut láinnya dari seorang Mahasiswa dapat dihimpun dalam sebuah record / baris. 3). Berkas / File / Table adalah kumpulan record sejenis yang mempunyai panjang atribut / field sama, namun berbeda isi datanya. Dalam basis data relasional, berkas mewakili komponen yang disebut Table atau Relasi. Sedangkan pengertian Data value (nilai atau isi data) adalah data aktual atau informasi yang disimpan pada setiap field / atribut. Field nama_m menunjukkan tempat dimana informasi nama mahasiswa disimpan, sedangkan isi datanya adalah Mulyani, Ahmad Sofyan dan lain sebagainya. Berikut ini dapat diberikan illustrasi dari pengertian ketiga pengertian file, field, record dan data value (isi data ). Mahasiswa nama table / file
Record / baris Atribut / field : nim,nama_m,tpt_lhr_m,tgl_lhr_m,j_kelamin,alm_m,kota_m,aama_m dan kode_jur
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
5 Bahan Kuliah: Sistem Basis Data
Data value / Isi data : Pada record pertama : 01031417 adalah isi data untuk kolom nim, Mulyanti untuk kolom nama_m dan seterusnya Gambar 1.3. Contoh file, field, record dan data value Pada contoh diatas yang merupakan table / file adalah Mahasiswa, yang merupakan field adalah nim,nama_m,tpt_lhr_m,tgl_lhr_m,j_kelamin,alm_m,kota_m,aama_m dan kode_jur, sedangkan untuk isi data pada record pertama adalah 01031417 (nim), Mulyanti (nama_m) dan seterusnya. Pada tabel mahasiswa tersebut misalkan jumlah mahasiswanya adalah 2000 untuk berbagai jurusan, maka jumlah recordnya adalah 2000 juga dan kita dapat melakukan manipulasi data pada tabel tersebut yaitu insert, update dan delete. 1.3. Sistem Basis Data Sistem basis data dapat diartikan sebagai kumpulan file / table yang saling berhubungan (dalam sebuah basis data di sebuah sistem komputer), dan sekumpulan program (DBMS / Database Management System) yang memungkinkan beberapa user (pemakai), dan / atau program lain untuk mengakses dan memanipulasi file (table) tersebut. Komponen – komponen utama dari sebuah sistem basis data adalah sebagai berikut : 1). Perangkat keras (hardware) 2). Sistem operasi (operating system) 3). Basis data (database) 4). Sistem (aplikasi/perangkat lunak) pengelola basis data (DBMS) 5). Pemakai (user) 6). Aplikasi (perangkat lunak) lain (bersifat optional) Pada gambar 1.3. sistem basis data dapat dilihat bahwa basis data pada intinya adalah disimpan pada media penyimpanan elektronik (hardisk), sedangkan database adalah terdiri dari beberapa file / table yang saling berelasi (berhubungan). Basis data tersebut dikelola oleh DBMS (database management system) dan database tersebut dapat dimanfaatkan oleh beberapa user (pemakai) yang dapat melakukan manipulasi pada database. Tidak semua user FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
6 Bahan Kuliah: Sistem Basis Data
dapat melakukan manipulasi data didalam database, hal ini diatur sesuai dengan hak aksesnya dari masing – masing user tersebut.
Basis Data PC
Basis Data X: Table A Table B Table C Table D Table E Dll
Basis Data Y: Table J Table K Table L Table M Table N Dll
PC
PC
Database management system (DBMS)
Gambar 1.4. Sistem Basis Data 1.3.1. Perangkat Keras Perangkat keras yang biasanya terdapat dalam sistem basis data adalah sebagai berikut: 1). Komputer (satu untuk yang stand-alone atau lebih dari satu untuk sistem jaringan). 1). Memori sekunder yang on-line (harddisk). 3). Memori sekunder yang off-line (tape) untuk keperluan backup data. 4). Media / perangkat komunikasi (untuk sistem jaringan). 1.3.2. Sistem Operasi Merupakan program yang mengaktifkan / memfungsikan sistem komputer, mengendalikan seluruh sumber daya dalam komputer dan melakukan operasi –
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
7 Bahan Kuliah: Sistem Basis Data
operasi dasar dalam komputer (operasi input/output), pengelolaan file, dan lain sebagainya. Program pengelola basis data (DBMS) akan aktif (running) jika sistem operasi yang dikehendakinya (sesuai) telah aktif. Contoh daripada sistem operasi pada sistem komputer adalah MS-DOS, MS Windows (3.11,95,98 dan lainnya) untuk yang stand alone dan MS Windows (2000 Server, UNIX, LINUX, Novel_Netware dan lain sebagainya) utuk yang jaringan. 1.3.3. Basis Data Sebuah sistem basis data dapat memiliki beberapa basis data. Setiap basis data dapat memiliki sejumlah objek basis data (seperti file/table, store procedure, indeks, dan lainya). Disamping berisi / menyimpan data, setiap basis data juga mengandung / menyimpan definisi struktur (baik untuk basis data maupun objekobjeknya secara detail). 1.3.4. Sistem pengelola basis data (DBMS) Pengelolaan basis data secara fisik tidak ditangani langsung oleh user (pemakai), tetapi ditangani oleh sebuah perangkat lunak (sistem) yang khusus / spesifik. Perangkat inilah disebut DBMS, yang akan menentukan bagaimana data diorganisasi, disimpan, diubah, dan diambil kembali. Perangkat tersebut juga menerapkan mekanisme pengamanan data (security), pemakaian data secara bersama (sharing data), pemaksaan keakuratan / konsistensi data, dan sebagainya. Perangakat lunak yang termasuk DBMS adalah MS-Access, Foxpro, Dbase-IV, Foxbase, Clipper, dan lainnya untuk kelas sederhana, dan Oracle, Informix, Sybase, MS-SQL Server, dan lainnya untuk kelas kompleks / berat. 1.3.5. Pemakai (Users) Ada beberapa jenis / tipe pemakai pada sistem basis data, berdasarkan cara mereka berinteraksi pada basis data, diantaranya adalah:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
8 Bahan Kuliah: Sistem Basis Data
1). Programmer
Adalah pemakai yang berinteraksi dengan basis data
Aplikasi
melalui DML (data manipulation language), yang disertakan dalam program yang ditulis dalam bahasa pemrograman induk (seperti pascal, cobol, clipper, foxpro, dan lainnya).
2). User Mahir (casual user)
Adalah pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query (untuk akses data), dengan bahasa query yang telah disediakan oleh suatu DBMS.
3). User Umum (End User)
Adalah pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen, yang telah ditulis / disediakan sebelumnya.
4). User Khusus (Specialized User)
Adalah pemakai yang menulis aplikasi basis data non konvensional untuk keperluan khusus, seperti untuk aplikasi AI, Sistem Pakar, Pengolahan Citra, dan lainnyal, yang bisa saja mengakses basis data dengan / tanpa DBMS.
Untuk sebuah sistem basis data yang stand-alone, maka pada suatu saat hanya ada satu pemakai, sedangkan untuk jaringan pada suatu saat ada banyak pemakai yang dapat berhubungan (menggunakan) basis data yang sama. Pilihan untuk stand-alone atau jaringan (multiuser) tergantung pada (ditentukan oleh) kebutuhan pemakai, perangkat keras yang tersedia, sistem operasi yang digunakan, serta DBMS yang dipilih. 1.3.6. Aplikasi (perangkat lunak) lain Aplikasi lain ini bersifat optional, ada tidaknya tergantung pada kebutuhan kita. DBMS yang kita gunakan lebih berperan dalam pengorganisasian data dalam basis data, sementara bagi pemakai basis data (khususnya yang menjadi end user) dapat disediakan program khusus untuk melakukan pengisian, pengubahan dan pengambilan data.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
9 Bahan Kuliah: Sistem Basis Data
1.4. Sistem Manajemen Basis Data (DBMS) DBMS adalah koleksi terpadu dari program-program (sistem perangkat lunak) yang digunakan untuk mendefinisikan, menciptakan, mengakses dan merawat database (basis data). Tujuannya adalah menyediakan lingkungan yang mudah dan aman untuk penggunaan dan perawatan database. Contoh daripada DBMS adalah Ms-Access, MS Sql Server dan Oracle. Pertanyaan Soal 1.
Jelaskan pengertian daripada basis data (database) ?
2.
Berikan penjelasan mengenai perbedaaan antara lemari arsip dengan database didalam suatu perusahaan ?.
3.
Jelaskan pengertian daripada file, record, field dan data value dan berikan masing – masing contohnya ?.
4.
Jelaskan pengertian daripada sistem basis data, apa saja komponen utama dari sistem basis data ?.
5.
Jelaskan pengertian sistem operasi dan berikan contoh beberapa sistem operasi yang saudara ketahui ?.
6.
Jelaskan pengertian daripada DBMS, dan berikan contohnya untuk kelas DBMS yang sederhana maupun yang kompleks ?.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
10 Bahan Kuliah: Sistem Basis Data
BAB 2 OPERASI DASARI BASIS DATA
2.1. Operasi Dasar Didalam sebuah disk (hard disk), basis data dapat diciptakan dan dapat pula ditiadakan. Dalam sebuah disk kita dapat menempatkan beberapa (lebih dari satu) basis data (Misalnya basis data nilaiMahasiswa, kepegawaian, keuangan, penjualan, pepustakaan dan lainnya). Sementara dalam sebuah basis data kita dapat menempatkan satu atau lebih file / table. Misalkan dalam basis data penjualan terdiri dari table barang, faktur, pelanggan dan transaksi barang. Operasi-operasi dasar yang dapat kita lakukan berkenaan dengan basis data adalah sebagai berikut: 1). Pembuatan basis data baru (create database), identik dengan pembuatan lemari arsip yang baru. 2). Penghapusan basis data (drop database), identik dengan perusakan lemari arsip, sekaligus beserta isinya jika ada. 3). Pembuatan table baru ke suatu basis data (create table), yang identik dengan penambahan map arsip baru ke sebuah lemari arsip yang telah ada. 4). Penghapusan table dari suatu basis data (drop table), identik dengan perusakan map arsip lama yang ada di sebuah lemari arsip. 5). Penambahan / pengisian data baru di sebuah basis data (insert), identik dengan penambahan lembaran arsip ke sebuah map arsip. 6). Pengambilan data dari sebuah table (retrieve / search), identik dengan pencarian lembaran arsip dalam sebuah map arsip. 7). Pengubahan data dalam sebuah table (update), identik dengan perbaikan isi lembaran arsip yang ada di sebuah map arsip. 8). Penghapusan data dari sebuah table (delete), identik dengan penghapusan sebuah lembaran arsip yang ada di sebuah map arsip.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
11 Bahan Kuliah: Sistem Basis Data
Operasi pembuatan basis data dan tabel merupakan operasi awal yang hanya dilakukan sekali dan berlaku seterusnya. Sedangkan untuk operasi pengisian, perubahan, penghapusan dan pencarian data merupakan operasi rutin yang berlaku berulang-ulang. 2.2. Kegunaan Database Penyusunan satu basis data digunakan untuk mengatasi masalah – masalah pada penyusunan data, antara lain: 1).
Redundansi dan inkonsistensi data
2).
Kesulitan pengaksesan data
3).
Isolasi data untuk standarisasi
4).
Multiple user (banyak pemakai)
5.
Masalah keamanan (security)
6.
Masalah integrasi (kesatuan)
7.
Masalah data independence (kebebasan data)
2.2.1. Redundansi dan inkonsistensi data Jika table dan program aplikasi diciptakan oleh programmer yang berbeda dengan waktu yang berselang cukup panjang, maka ada beberapa bagian data mengalami penggandaan pada table yang berbeda pada suatu database. Contoh Nama, alamat, dan telpon dari mahasiswa di sebuah Perguruan Tinggi tercatat pada table Anggota (pada database Perpustakaan), KRS dan juga pada Keuangan. Apabila kita berbicara sistem yang berbasis jaringan maka 1(satu) table mahasiswa bisa dimanfaatkan oleh beberapa sub database yang menginginkannya. Penyimpanan dibeberapa tempat untuk data yang sama ini disebut sebagai redundansi dan mengakibatkan pemborosan ruang penyimpanan dan juga biaya untuk akses lebih tinggi.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
12 Bahan Kuliah: Sistem Basis Data
Penyimpanan data yang sama berulang-ulang di beberapa tempat dalam database dapat mengakibatkan juga inkonsistensi (tidak konsisten). Hal ini terjadi, bila suatu ketika mahasiswa tersebut pindah alamat berubah, maka seluruh table yang memuat data tersebut harus diubah / update. Bila salah satu saja yang diupdate, maka menjadi tidak konsisten. 2.2.2. Kesulitan dalam pengaksesan data Pada suatu saat dibutuhkan untuk mencetak data siapa saja mahasiswa yang berada di kota „Bekasi Timur‟, padahal belum tersedia program yang telah ditulis untuk mengeluarkan data tersebut. Maka kesulitan akan timbul, dan penyelesaian ke arah itu adalah DBMS yang mampu mengambil data secara langsung dengan bahasa yang familiar dan mudah digunakan (user frindly). 2.2.3. Isolasi data untuk standarisasi Jika data tersebar dalam beberapa file / table dalam bentuk format yang tidak sama, maka ini akan menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data. Maka haruslah data dalam satu basis data dibuat satu format, sehingga mudah dibuat program aplikasinya. 2.2.4. Multiple User (Banyak Pemakai) Dalam rangka mempercepat semua daya guna sistem dan mendapat responsi waktu yang cepat, beberapa sistem mengijinkan banyak pemakai untuk meng “update “ data secara simultan. Salah satu alasan mengapa basis data dibangun karena nantinya data tersebut digunakan oleh banyak orang dalam waktu yang sama atau berbeda, diakses oleh program yang sama tapi berbeda orang dan waktu. Semua itu memungkinkan terjadi, karena data yang diolah tidaklah tergantung dan menyatu dalam program tapi ia terlepas dalam satu kelompok data. 2.2.5. Masalah keamanan (security) Tidak semua pemakai sistem basis data diperbolehkan untuk mengakses semua data. Misalkan data mengenai gaji seorang karyawa hanya boleh dibuka oleh bagian keuangan dan personalia, tidak diperkenankan bagian gudang membaca dan
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
13 Bahan Kuliah: Sistem Basis Data
mengubahnya. 2.2.6. Masalah integritas (kesatuan) Basis data berisi file / table yang saling terkait, masalah utama adalah bagaimana kaitan antar table itu terjadi. Meskipun kita mengetahui table A berkaitan dengan table B, namun secara teknis ada field / atribut kunci yang mengaitkan / merelasikan table tersebut. 2.2.7. Masalah data independence (kebebasan data) Paket bahasa yang diciptakan oleh DBMS, perubahan pada struktur file / table, setiap kali kita hendak melihat data cukup dengan utility list, menambah data dengan Append
(misal untuk DBMS Clipper atau Foxpro), merubah struktur table
dengan Design Table, melakukan penelurusan data dengan query (misal untuk Access, Sql Server, MySql atau Oracle). Ini berarti perintah-perintah dalam paket DBMS bebas terhadap basis data. Apapun perubahan dalam basis data semua perintah akan mengalami kestabilan tanpa mengalami perubahan. 2.3. Keuntungan Sistem Basis Data Keuntungan-keuntungan yang dapat diperoleh dari penerapan sistem basis data pada suatu perusahaan adalah sebagai berikut: 1). Mengurangi redudansi data Data yang sama pada beberapa aplikasi cukup disimpan sekali saja. 2). Integritas Data Dimana data terismpan secara akurat karena tidak adanya redudansi data. 3). Menghindari inkonsisten data Sebagai akibat tidak adanya data yang redundansi data, sehingga tidak terjadi inkonsisten data, karena data yang akan diupdate cukup dilakukan sekaligus saja. 4). Penggunaan data bersama Data yang sama dapat diakses atau dimanfaatkan oleh beberapa user pada saat yang bersamaan.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
14 Bahan Kuliah: Sistem Basis Data
5). Standarisasi data Akibat tidak adanya redundansi, inkonsisten, dan integritas data, maka akan terciptanya adanya standarisasi data. 6). Jaminan Keamanan Data (Security Data) Data yang tersimpan hanya dapat diakses oleh yang mempunyai otoritas terhadap data tersebut. 7). Menyeimbangkan kebutuhan data Data ditentukan prioritas suatu operasi, misalkan antara update dengan retrieve data.
2.4. Kerugian Sistem Basis Data Kerugian - kerugian yang ada dengan diterapkannya
basis data pada suatu
perusahaan adalah sebagai berikut: 1). Diperlukan harware (perangkat keras tambahan) : CPU yang lebih kuat, terminal yang lebih banyak, alat komunikasi. 2). Biaya Performance yang lebih besar : listrik, personil yang lebih tinggi klasifikasinya, biaya telekomunikasi antar lokasi. 3). Rawannya keberhasilan operasi : gangguan listrik, dan komunikasi. 4). Sistem kelihatan lebih kompleks : banyaknya aspek yang harus diperhatikan. 2..5. Contoh Database Berikut ini ini adalah contoh dari database Penjadwalan_mengajar_dosen pada STMIK „Revanda Jaya‟ Bekasi, dimana pada database tersebut terdiri dari file / table Dosen, Matakuliah, Jurusan dan Mengajar. 1.
Dosen Dosen ={nid,nama_d,tempat_lhr,tgl_lahir,jkelamin,alamat,kota,kodepos,gajipokok} Dengan data value sebagai berikut:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
15 Bahan Kuliah: Sistem Basis Data
Gambar 2.1. Data value Dosen 2. Matakuliah Matakuliah ={kdmk,nama_mk,sks,semester} Dengan data value sebagai berikut:
Gambar 2.2. Data value Matakuliah 3. Jurusan Jurusan ={kode_jur,nama_jur,sjenjang,nama_kajur} Dengan data value sebagai berikut:
Gambar 2.3. Data value Jurusan 4. Mengajar FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
16 Bahan Kuliah: Sistem Basis Data
Mengajar ={nid,thn_akademik,smt,hari,jam_ke,kdmk,waktu,kelas,kode_jur} Dengan data value sebagai berikut:
Gambar 2.4. Data value Mengajar Implementasi relasi (hubungan antar table) yang ada pada database tersebut dapat dilihat pada gambar berikut ini (Dengan database MS-SQL Server 2000 dan MS-Access):
Gambar 2.5. Diagram database Penjadwalan_mengajar_doseen dengan SQL-Server 2000
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
17 Bahan Kuliah: Sistem Basis Data
Gambar 2.6. Relationship database Penjadwalan_mengajar_doseen dengan MS-Access Pada gambar tersebut diatas terlihat bahwa pada table mengajar, berelasi kepada table dosen, matakuliah dan jurusan, dikarenakan pada table mengajar tersebut membutuhkan data – data yang ada pada ketiga tabel tersebut, artinya: Seorang dosen bisa mengajar lebih dari satu matakuliah pada semester yang sama. Satu matakuliah bisa diajar (diampu) oleh banyak dosen dan jurusan. Operasi manipulasi yang dapat dilakukan pada database tersebut adalah sebagai berikut: 1). Insert
: Kita dapat melakukan pemasukan data – data baru pada file / table dosen, matakuliah, jurusan dan mengajar.
2). Delete
: Kita dapat melakukan penghapusan data yang telah ada pada file / table dosen, matakuliah, jurusan dan mengajar untuk data – data yang tidak diperlukan lagi.
3). Update
: Kita dapat melakukan perubahan data – data alamat dan kota seorang dosen pada file / table dosen dikarenakan dosen tersebut pindah alamat, dan kita dapat melakukan perubahan untuk data yang lainnya pada database tersebut.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
18 Bahan Kuliah: Sistem Basis Data
4). Retrieve
: Kita dapat menampilkan Informasi mengenai dosen menurut jenis kelamin, kota alamat dan lainnya, informasi mengenai transaksi mengajar dosen, informasi jurusan, informasi mengenai matakuliah berdasarkan sks nya dan informasi lainnya.
2.6. Abstraksi Data Kegunaan utama sistem basis data adalah agar pemakai (user) mampu menyusun suatu pandangan abstaksi dari data. Pemakai atau user dapat dikelompokkan menjadi tiga tingkatan abstaksi saat memandang suatu basis data, yaitu : 1). Level Phisik. 2). Level Konseptual. 3). Level Padangan Pemakai ( View ) 2.6.1. Level Phisik Level abstraksi paling rendah, menggambarkan bagaimana (how) data disimpan dalam kondisi sebenarnya. Level ini tentu paling kompleks, struktur data level terendah digambarkan pada level ini. Level ini digunakan oleh programmer, yang digunakan untuk melakukan pemrograman dengan mengunakan database dan DBMS tertentu sesuai dengan kebutuhan daripada end-user. 2.6.2. Level Konseptual Level abstraksi data level lebih tinggi yang menggambarkan data apa (what) yang disimpan dalam basis data, dan hubungan relasi yang terjadi antar data. Level ini menggambarkan keseluruhan basis data. Pemakai tidak memperdulikan kerumitan dalam struktur level phisik lagi, penggambaran cukup dengan memakai kotak, garis dan keterangan secukupnya. Level ini digunakan oleh database administrator, yang memutuskan informasi apa yang akan dipelihara dalam satu database.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
19 Bahan Kuliah: Sistem Basis Data
2.6.3. Level Pandangan Pemakai (View Level) Level abstraksi tertinggi yang mengambarkan hanya satu bagian dari keseluruhan database. Bila pada level konseptual data merupakan suatu kumpulan besar dan kompleks, pada level ini hanya sebagian saja yang dilihat dan dipakai. Hal ini disebabkan beberapa pemakai database tidak membutuhkan semua isi database. Level ini sangat dekat dengan pemakai (user), dan setiap user kemungkinan hanya membutuhkan sebagian dari database. Ada beberapa kelompok user dengan pandangan berbeda butuh data dalam database, jadi pada level ini yang memakai adalah pemakai akhir atau end-user. Misalkan pemakai akhir pada bagian keuangan hanya memakai data untuk file / table pembayaran, mahasiswa dan karyawan, tetapi tidak membutuhkan file / table buku dan nilai. Demi kemudahan interaksi antara pemakai dengan sistem, maka view level ini didefinisikan. Jadi ada beberapa pandangan disusun untuk mengakses satu sistem database yang sama. Hubungan antar level tersebut dapat dilihat pada gambar 2.7 berikut ini : Bagian Keuangan View 1
Bagian Perpustakaan Bagian Akademik View 2
View 3
Level Konseptual
Level Phisik
Gambar 2.7. Abstraksi Data
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
20 Bahan Kuliah: Sistem Basis Data
Pertanyaan Soal 1. Sebutkan dan jelaskan operasi – operasi dasar yang berkenaan dengan basis data (database) ?. 2. Jelaskan dan berikan contoh masalah redundancy dalam suatu basis data (database) ?. 3. Jelaskan keuntungan – keuntungan apa saja dengan diterapkannya basis data (database) pada suatu perusahaan ?. 4. Jelaskan kerugian - kerugian apa saja dengan diterapkannya basis data (database) pada suatu perusahaan ?. 5. Berikan contoh suatu database, kelompokkan mana sebagai file / table, dan field / atributnya ? 6. Jelaskan operasi manipulasi apa saja yang dapat dilakukan berkenaan dengan pembentukan basis data (database) ?. 7. Jelaskan pengertian level konseptual pada abstraksi data ?.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
21 Bahan Kuliah: Sistem Basis Data
BAB 3 BAHASA BASIS DATA (DATABASE LANGUAGE)
DBMS merupakan perantara bagi pemakai dengan basis data dalam Disk. Cara berkomunkasi / berinteraksi antara pemakai dengan basis data diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa ini disebut sebagai bahasa basis data yang meliputi sejumlah perintah (statement) yang diformulasikan dan dapat diberikan user dan dikenali / diproses DBMS untuk melakukan suatu aksi / pekerjaan tertentu. 3.1. Deskripsi Bahasa Basisdata Bahasa basis data umumnya dapat ditempelkan (embbeded) ke bahasa pemrogarman lain, misalkan ditempelkan kedalam bahasa Java,C/C++, Pascal, Basic, Fortran, Ada dan lainnya. Bahasa tempat ditempelkannya instruksi bahasa basisdata disebut sebagai inang (host language). Pada program bahasa inag yang ditempeli kode-kode bahasa basisdata mka saat source program dikompilasi maka source program terlebih dahulu dilewatkan ke pre-kompilator (pre-compiler) yang menterjemahkan instruksi bahasa basisdata menjadi instruksi asli bahasa pemrograman inang. Setelah itu, kode-kode yang telah dalam bahasa inang dikompilaasi menggunakan kompilator bahasa inang sehingga menghasilkan kode biner yang mengaitkan (link) instruksi – instruksi bahasa basisdata ke pustaka (library) yang berfungsi menghubung DBMS. Hasil – hasil instruksi bahasa basisdata segera ditangkap program bahasa inang dan diolah sesuai keperluan aplikasi. Selain itu vendor DBMS juga selalu menyertakan fasilitas inteaktif memberi perintah ke DBMS secara langsung. Cara ini umumnya dipergunakan administrator untuk menjalankan tugasnya mengolah seluruh basisdata organisasi. 3.2. Komponen Bahasa Basisdata Berdasarkan fungsinya, bahasa basis data dapat dipilah ke dalam 3 (tiga) bentuk yaitu : 1.
Data Definition Language (DDL)
2.
Data Manipulation Language (DML)
3.
Data Control Language (DCL)
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
22 Bahan Kuliah: Sistem Basis Data
DDL berfungsi menspesifikasikan skema atau struktur basisdata, hasil pernyataan DDL adalah himpunan definisi data yang disimpan secara khusus pada data dictionary (data directory). DML berisi sekumpulan operasi manipulasi data pada basisdata, DML biasa disebut bahasa query yaitu bahasa untuk meminta informasi dari basisdata karena komponen paling kompleks di DML adalah operaasi query. Sebenarnya DML tidak hanya berisi operasi utnuk query, namun juga meliputi operasi penghapusan, pembaruan dan penyisipan. DCL merupakan sub bahasa untuk mengendalikan struktur internal basisdata, DCL untuk menyesuaikan sistem agar supaya lebih efisian dan DCL sangat bergantung pada vendor. 3.2.1.
Data Definition Language (DDL) Struktur / skema basis data yang menggambarkan / mewakili desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yaitu DDL. Dengan bahasa ini kita dapat membuat tabel (create table) baru, indeks, mengubah table, menentukan struktur penyimpanan table, dan lainnya. Hasil dari kompilasi perintah DDL, adalah kumpulan table yang disimpan dalam file khusus yang disebut kamus data (data dictionary). Kamus data merupakan suatu metadata (superdata), yaitu data yang mendiskripsikan data sesungguhnya. Contoh perintah DDL dengan Foxpro adalah create matakuliah, modify report, modify structure, dan lainnya, sedangkan perintah DDL dengan MS-SQl Server 2000, contohnya adalah create new database Penjadwalan_mengajar_dosen dan contoh lainnya adalah new table dosen dengan struktur sebagai berikut:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
23 Bahan Kuliah: Sistem Basis Data
Gambar 3.1. Create database dengan MS-SQL Server 2000
Gambar 3.2. Create table mahasiswa dengan MS-SQL Server 2000 3.2.2. Data Manipulation Language (DML) Bentuk bahasa basis data untuk melakukan menipulasi dan pengambilan data pada suatu basis data. Manipulasi data pada dabase dapat berupa : 1). Penyisipan / penambahan data pada file / table dalam suatu basis data. 2). Penghapusan data pada file / table dalam suatu basis data. 3). Pengubahan data pada file / table dalam suatu basis data. 4). Penelusuran data pada file / table dalam suatu basis data. Pada level phisik kita harus mendefinisikan alghoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi yang dipentingkan
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
24 Bahan Kuliah: Sistem Basis Data
bukan efisien akses, tapi juga efisiensi interaksi pemakai dengan sistem. DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 (dua) jenis DML adalah sebagai berikuit : 1). Prosedural, yang mensyaratkan pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya. 2). Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya. Contoh paket bahasa prosedural DML : dBase, FoxBase,
sedang untuk
Nonprosedural DML : SQL (Structure Query Language), QBE (Query By Example). Query Adalah pernyataan yang diajukan untuk mengambil informasi di dalam suatu basis data. Query merupakan bagian dari DML yang untuk pengambilan informasi disebut Query Language. Berikut ini adalah contoh penggunakan perintah query dengan menggunakan database MSSQL Server 2000, dapat dilihat pada gambar 3.3. berikut ini : Perintah Query (SQL)
Hasil Query
Gambar 3.3. Perintah Query dengan MS-SQL Server 2000
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
25 Bahan Kuliah: Sistem Basis Data
3.3.
Pengguna Database Basis data yang telah diciptakan yang terdiri dari beberapa table yang saling berkaitan, tentunya harus dimanfaatkan oleh para pengguna. Di dalam suatu basis data terdapat beberapa pengguna, antara lain adalah: 1). Database Manager Satu database manager adalah satu modul program yang menyediakan interface antara penyimpanan data low-level dalam database dengan satu aplikasi program dan query yang diajukan ke sistem. Tugas dan tanggungjawab database manager: a. Interaksi dengan manager file b. Integritas c. Keamanan d. Bakcup dan recovery 2). Database Administrator Orang yang mempunyai kekuasaan sebagai pusat pengontrolan terhadap seluruh sistem baik data maupun program yang mengakses data disebut sebagai database administrator. Fungsi database administrator: a. Mendefinisikan pola struktur database. b. Mendefinisikan struktur penyimpanan dan metode akses. c. Mampu memodifikasi pola dan organisasi phisik. d. Memberikan kekuasaan pada user untuk mengakses data. e. Menspesifikasikan keharusan integritas data. 3). Database User Ada 4 macam pemakai database yang berbeda keperluan dan cara aksesnya, yaitu : 1. Programmer Aplikasi, 2. Casual User (user mahir), 3. User Umum (end user),
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
26 Bahan Kuliah: Sistem Basis Data
dan 4. User khusus (specialized user).
3.4.
Basis Data Relasional Pada model relasional, basis data akan “disebar” (dipilah-pilah) kedalam berbagai tabel 2 dimensi. Setiap tabel terdiri atas lajur mendatar yang disebut dengan baris data (row / record), dan lajur vertical yang biasa disebut dengan kolom (columm / field). Di setiap pertemuan baris data dan kolom itulah item-item data (satuan data terkecil) ditempatkan. Ilustrasi Model Data Relasional Sebelum penerapan basis data dilakukan, lebih dahulu kita harus mengetahui contoh data yang akan digunakan. Contoh data ini harus dianalisis untuk mengetahui karakteristik mengenai masing-masing tabel data. Pengetahuan karakteristik dijadikan dasar untuk penetapan struktur dari masing-masing tabel. Didalam penerapan basis data, penetapan struktur table dilakukan sebelum penyimpanan data. Berikut contoh data yang akan digunakan (data yang ada tidak menggambarkan kenyataan yang sesungguhnya ). 1. Data dosen, dengan isi data sebagai berikut:
Karakreristik data : Memiliki 9 buah kolom data. Kolom pertama berisi data angka tetapi tidak menunjukkan suatu jumlah (disebut alfa numerik) dengan lebar (banyaknya karakter) tetap, 5 karakter / dijit. FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
27 Bahan Kuliah: Sistem Basis Data
Kolom kedua berisi data karakter / string dengan lebar maksimum 30 karakter. Kolom ketiga berisi data karakter / string dengan lebar maksimum 10 karakter. Kolom keempat berisi data penanggalan / date. Kolom kelima berisi data karakter / string dengan lebar maksimum 6 karakter. Kolom keenam berisi data karakter / string dengan lebar maksimum 50 karakter. Kolom ketujuh berisi data karakter / string dengan lebar maksimum 20 karakter. Kolom kedelapan berisi data karakter / string dengan lebar maksimum 5 karakter. Kolom kesembilan berisi data numeric dengan lebar maksimum 8 karakter. Contoh diatas adalah karakteristik data untuk data dosen, data ini diambilkan dari contoh database pada sub bab 2.5 (contah database). Atas dasar karakteristik data tersebut selanjutnya kita bisa membentuk database physical (dengan catatan table – table yang telah terbentuk telah dilakukan normalisasi data) dengan menggunanan MS-Access, SQL Server, MYSql, Oracle atau tool database lainnya. Berangkat dari mendefinisikan karakteristik tersebut di atas, maka kita dapat menetapkan struktur dari masing-masing table. Secara minimal yang harus ditentukan dalam struktur table adalah : 1). Nama kolom (field / atribut). 2). Tipe data (data type) 3). Lebar (banyaknya karakter / dijit maksimum yang dapat ditampung. 4). Pendefinisian kolom (apakah null atau not null) Berangkat dari karakteristik yang dapat kita simpulkan dari fakta yang ada dari masing-masing
data,
struktur
dari
table
dosen
pada
basis
data
Penjadwalan_mengajar_dosen, yang dapat ditentukan adalah sebagai berikut (struktur dengan MS-SQL Server): 1. Table dosen
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
28 Bahan Kuliah: Sistem Basis Data
Adapun untuk struktur untuk table Matakuliah Jurusan dan Mengajar adalah sebagai berikut: 2. Table matakuliah
3. Tabel jurusan
4. Tabel mengajar
Untuk kolom Allow Nulls jika tidak ada tanda check list maka kolom (field) tersebut harus isi datanya dan tidak boleh kosong.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
29 Bahan Kuliah: Sistem Basis Data
Untuk tanda key adalah kolom (field) tersebut adalah sebagai primary key pada table yang terbentuk. Pendefinisan untuk tipe data dan lebar field harus disesuaikan dengan data sesungguhnya, lebar tidak boleh kurang tapinhindari lebar yang berlebihan.
Pertanyaan Soal 1. Jelaskan dan berikan contoh pengertian dari DDL (data definition language) ?. 2. Jelaskan pengertian dari DML (data manipulation language), manipulasi apa saja yang dapat kita lakukan berkenaan dengan basis data (database) ?. 3. Jelaskan pengertian daripada Query ?. 4. Jelaskan pengertian database administrator, fungsi apa saja yang harus dilakukan oleh database administrator ?. 5. Berikan penjelasan tentang karakteristik data untuk table matakuliah, jurusan dan mengajar ?.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
30 Bahan Kuliah: Sistem Basis Data
BAB 4 NORMALISASI DATA
Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data. Dalam merancang basis data, kita dapat melakukannya dengan : 1.
Menerapkan normalisasi pada struktur table yang telah diketahui.
2.
Langsung membuat model ER (Entity Relationship)
Proses Normalisasi, merupakan proses pengelompokan data elemen menjadi table-table yang menunjukkan entity dan relasinya. Pada proses normalisasi selalu diuji pada beberapa kondisi, apakah ada kesulitan pada saat menambah / insert, menghapus / delete, mengubah / update, dan membaca / retrieve pada suatu Database. Bila ada kesulitan pada pengujian tersebut, maka relasi tersebut dipecahkan menjadi beberapa table lagi, sehingga diperoleh database yang optimal. 4.1. Atribut Table Normalisasi lebih difokuskan pada tinjauan komprehensif terhadap setiap kelompok data (table) secara individual. Lebih jauh tinjauan tersebut dititikberatkan pada data di masing – masing kolom pembentuk tabel. Kita menggunakan istilah baru, yaitu atribut yang sebenarnya identik dengan pemakaian istilah kolom data atau field. Sebagai contoh : o
Table Dosen, memiliki 9 buah field / atribut, yaitu : nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos, dan gajipokok.
o
Table Matakuliah, memiliki 4 buah atribut, yaitu : kdmk, nama_mk, sks dan semester. FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected]
-
Refisi : 1
31 Bahan Kuliah: Sistem Basis Data
o
Table Jurusan, memiliki 4 buah atribut, yaitu : kode_jur, nama_jur, jenjang, dan nama_kajur.
o
Table Mengajar, memiliki 9 buah atribut, yaitu : nid, thn_akademik, smt, hari, jam_ke, kdmk, waktu, kelas, dan kode_jur.
Dari 4 table di atas, masing-masing table memiliki field / atribut sebagai key, dan lainnya sebagai atribut deskriptif. Ada pula atribut yang tergolong atribut sederhana atau komposit dan lainnya. 4.1.1. Key dan Atribut Deskriptif Key, adalah satu atau gabungan beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Artinya adalah apabila suatu field / atribut dijadikan key, maka tidak boleh ada dua atau lebih baris data dengan nilai yang sama untuk field / atribut tersebut. Sehubungan dengan pernyataan tersebut, maka kita dapat membedakan 3 (tiga) macam key yang dapat diterapkan pada suatu tabel : 1.
Superkey.
2.
Candidate-Key.
3.
Key Primer (Primary-Key).
4.
Kunci tamu (Foreign Key)
a. Superkey Superkey adalah merupakan satu atau lebih field / atribut (kumpulan atribut) yang dapat membedakan setiap baris data dalam sebuah table secara unik. Bisa terjadi, ada lebih dari 1 kumpulan atribut yang bersifat seperti itu pada sebuah table. Pada tabel Dosen yang memiliki 4 buah field / atribut tersebut, yang dapat menjadi superkey adalah : o
(nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos, gajipokok)
o
(nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos)
o
(nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota,)
o
(nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat,)
o
(nid, nama_d, tempat_lhr, tgl_lahir, jkelamin,)
o
(nid, nama_d, tempat_lhr, tgl_lahir) FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected]
-
Refisi : 1
32 Bahan Kuliah: Sistem Basis Data
o
(nid, nama_d, tempat_lhr)
o
(nid, nama_d,)
o
(nid)
o
(nama_d)
b. Candidate-Key Candidate_key adalah merupakan kumpulan field / atribut minimal yang dapat membedakan setiap baris data dalam sebuah table secara unik.Sebuah Candidate-key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain. Jadi sebuah Candidate-key pasti superkey, tapi belum tentu sebaliknya. Pada table Dosen tersebut diatas, yang dapat menjadi Candidate-key adalah : (nid). (nama_d), jika kita bisa menjamin tidak ada nilai yang sama untuk atribut ini. Pada sebuah table dimungkinkan ada lebih dari satu Candidate-key, seperti contoh diatas. Salah satu dari Candidate–key ini (jika memang lebih dari satu) dapat dijadikan sebagai Key Primer (Primary key). c. Primarye-Key Primary_key adalah candidate-key yang dipilih untuk mengidentifikasi tupel secara unik pada suatu relasi. Kunci utama dapat terbentuk dari satu atribut atau lebih. Pemilihan Key Primer dari sejumlah Candidate-key pada suatu table didasari pada ketiga hal berikut ini: 1.
Key tersebut lebih sering (natural) untuk dijadikan acuan.
2.
Key tersebut lebih ringkas.
3.
Jaminan keunikan Key tersebut lebih baik.
Dengan pertimbangan tersebut, kedua Candidate-key pada table dosen, yaitu nid dan nama_d, yang lebih cocok sebagai Key Primer adalah (nid). Hal ini dikarenakan bahwa jaminan keunikan daripada nid (nomor induk dosen) akan terjamin karena karena setiap nid pada suatu perguruan tinggi pastinya tidak akan sama nilainya, sedangkan kenapa tidak memilih nama_d, karena nama_d kemungkinan ada yang sama nilainya. FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
33 Bahan Kuliah: Sistem Basis Data
c. Foreign-Key Kunci tamu adalah
satu atribut (satu set atribut) yang melengkapi satu relationship
(hubungan) yang menunjukkan ke induknya. Kunci tamu ditempatkan pada relasi anak dan sama dengan kunci primer induk direlasikan. Hubungan antara relasi induk dengan anak adalah satu lawan banyak (one to many relationship).
Gambar 4.1. Relasi one to many Kunci tamu dari table / relasi mengajar adalah : nid, kdmk dan kode_jur karena dalam table ini membutuhkan data – data yang ada dalam table dosen, matakuliah dan jurusan Kunci primer untuk table / relasi mengajar adalah nid,thn_akademik,smt,hari,jam_kei, karena unik dan mewakili entity. Dalam hal hubungan 2 buah relasi yang mempunyai relation banyak ke banyak (many to many), maka terdapat 2 buah kunci tamu pada relasi konektornya.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
34 Bahan Kuliah: Sistem Basis Data
Contoh: Relasi Proyek
RelasiPegawai
No_proyek Tgl_mulai Tgl_selesai Anggaran
NIK Nama Alamat ….
Gambar 4.2. Relasi many to many Hubungan relasi proyek dengan pegawai adalah many to many, dengan pengertian bahwa satu pegawai mengerjakan lebih dari 1 proyek dan 1 proyek dikerjakan oleh beberapa pegawai. Untuk menunjukkan hubungan tersebut, maka dipakai relasi konektor yang berisi kunci tamu dari kedua relasi (proyek dan pegawai). Sehingga relasi konektor proyek_pegawai berisi atribut : Relasi Proyek_pegawai NIK (FK ) / (PK) No_proyek (FK) / (PK) Jam Kerja Pada relasi proyek_pegawai tersebut atribut nik dan no_proyek merupakan kunci tamu (FK) dan keudnya juga menjadi primay key, dan keduanya merupakan kunci primer (primary key) pada relasi induknya. Sehingga hasilnya menjadi sebagai berikut : Relasi Proyek No_proyek (PK) Tgl Mulai Tgl Selesai Anggaran
RelasiPegawai NIK (PK) Nama Alamat ….
Relasi Proyek_pegawai NIK (FK) / (PK) No Proyek (FK) / (PK) Jam Kerja
Keterangan : FK = Foreign Key (kunci tamu), PK = Primary Key (kunci utama)
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
35 Bahan Kuliah: Sistem Basis Data
Gambar 4.3. Dekomposisi many to many d. Atribut Deskriptif Atribut diskriptif adalah atribut – atribut yang tidak menjadi atau merupakan anggota dari Key Primer pada suatu table didalam database. Pada table dosen diatas, yang menjadi atribut diskriptif adalah nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos, gajipokok. 4.1.2. Atribut Sederhana dan Atribut Komposit Atribut sederhana adalah merupakan atribut atomik yang tidak dapat dipilah lagi menjadi lainnya, sedangkan atribut komposit adalah merupakan atribut yang masih dapat diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki makna. Sebagai contoh pada table dosen tersebut diatas: Nama_d, tempat_lhr merupakan contoh atribut sederhana, karena tidak dapat diuaraikan lagi menjadi atribut lainnya. Alamat seorang dosen adalah merupakan contoh atribut komposit, karena dapat diuraikan menjadi beberapa sub atribut seperti : alamat_jln, kelurahan,kecamatan rt,rw,no_rumah, yang masing – masing memiliki makna tersendiri. Contoh Atribut sederhana:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
36 Bahan Kuliah: Sistem Basis Data
Contoh Atribut Komposit:
Gambar 4.4. Atribut sederhana dan komposit Pada
atribut
alamat,
dipecah
menjadi
6
(enam)
atribut
(alamat_jln,
kelurahan,kecataman,rt,rw,no_rumah), bertujuan jika kelak ada rencana / kebutuhan untuk melakukan pengolahan data terhadap sub-sub atribut tersebut. Misalkan untuk mencari dosen yang tinggal di kelurahan atau kecamatan tertentu siapa saja, atau ingin mecari dosenj yang tinggal di kota tertentu (Bekasi misalnya) siapa saja dapat dihasilkan dengan mudah dengan memanfaatkan fasilitas SQL (query). 4.1.3. Atribut Bernilai Tunggal dan Atribut Bernilai Banyak Atribut bernilai tunggal ditujukan pada atribut – atribut yang memiliki paling banyak satu nilai untuk setiap baris data. Pada table dosen, atribut (nid, nama_d, tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos, gajipokok) merupakan atribut bernilai tunggal, karena atribut-atribut tersebut hanya dapat berisi satu nilai. Jika ada seorang dosen yang memiliki 2 tempat tinggal, maka hanya salah satu saja yang boleh dimasukkan ke atribut alamat. Atribut bernilai banyak ditujukan pada atribut-atribut yang dapat kita isi dengan lebih dari satu nilai, tetapi jenisnya sama. Pada table dosen, kita dapat menambahkan atribut hobbi. Seorang dosen ada yang mempunyai 1 hobi, banyak hobi, bahkan ada yang tidak punya hobi.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
37 Bahan Kuliah: Sistem Basis Data
Atribut bernilai Tunggal
Atribut bernilai Banyak (hobi)
Gambar 4.5. Atribut bernilai tunggal dan banyak 4.1.4. Atribut Harus Bernilai (Mandatory Attribute ) dan Nilai Null Mandatory Attribute adalah merupakan sejumlah atribut yang ada pada suatu table yang harus berisi data dan tidak boleh kosong. Sedangkan Non Mandatory Attribute adalah sejumlah atribut yang ada pada suatu table yang boleh tidak diisi datanya / boleh kosong. Nilai Null digunakan untuk mengisi atribut – atribut yang nilainya memang belum siap / tidak ada. Misalkan pada table dosen kita tambahkan 1 (satu) record, seperti tampak pada gambar berikut:
Gambar 4.6. Atribut harus bernilai dan nilai null Atribut nid dan nama_d adalah atribut mandatory dan nilainya tidak boleh kosong (not null), hal ini juga berhubungan pada saat kita mendesain table pada database, pada saat table dosen tersebut di create maka pendefinisian atribut tersebut harus not null/ dan biasanya yang menjadi primary key pada suatu table pasti nilainya not null. Untuk atribut yang berisi null adalah karena data yang ada maasih meragukan atau belum ada sama sekali, jadi pada saat kita meng create table untuk atribut tersebut harus didefinisikan
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
38 Bahan Kuliah: Sistem Basis Data
null, kalau kita mendefinisikan not null, walaupun datanya belum ada atau meragukan maka kita harus mengisi datanya. Pada contoh diatas yang menjadikan mandatory atribut adalah nid dan nama_d,karena pada saat petugas melakukan input (pemasukan data) nid pasti ada nama_d, karena nim akan terbentuk kalau nama_d (nama dosen) nya ada, tidak mungkin ada nim sedangkan nama_d nya tidak ada dan pada atribut ini nilainya harus ada tidak boleh kosong (null) jadi harus isi datanya. Sedangkan untuk atribut non mandatory adalah tempat_lhr,tgl_lahir,jkelamin,alamat dan lainnya, karena pada atribut tersebut nilainya boleh kosong dikarenakan datanya belum siap atau masih meragukan. 4.1.5. Atribut Turunan (Derived Attribute) Atribut turunan adalah atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut atau table lain yang berhubungan. Penambahan atribut tahun_masuk pada table dosen merupakan contoh atribut turunan.
Gambar 4.7. Atribut turunan Atribut tahun_masuk pada contoh diatas dapat ditiadakan, karena atribut tersebut dapat diperoleh dari atribut nid, yaitu 2 digit pertama yang menyatakan tahun masuk dosen, jadi tidak perlu dibuat untuk atribut tersebut. Pertanyaan Soal 1. Jelaskan pengertian daripada Key dan atribut deskriptif ?. 2. Jelaskan dan berikan contoh pengertian dari superkey, candidate key, primary key dan foreign key ?. 3. Jelaskan dan berikan contoh pengertian daripada atribut sederhana dan komposit ?.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
39 Bahan Kuliah: Sistem Basis Data
4. Jelaskan dan berikan contoh pengertian daripada atribut bernilai tunggal dan bernilai banyak ?. 5. Jelaskan dan berikan contoh pengertian daripada atribut turunan ?. 6. Berikan penjelasan, mana yang merupakan superkey, candidate key, primary key dan foreign key
dari
table
(relasi)
Matakuliah,
Jurusan
dan
Mengajar
Penjadwalan_mengajar_dosen ?.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
dari
database
40 Bahan Kuliah: Sistem Basis Data
BAB 5 ANOMALI DAN INTEGRITAS DATA PADA MODEL RELASIONAL 5.1. Anomali Anomali adalah proses pada basisdata yang memberikan efek samping yang tidak diharapkan menyebabkan ketidak-konsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus). Anomali pada basis data dapat dibedakan menjadi 3 (tiga ), yaitu beikut ini: Anomali Peremajaan (Update) Anomalsi Penghapusan (Delete), dan Anomali Penyisipan (Insert). Berikut ini adalah contoh relasi KRS (Kartu Rencana Studi) mahasiswa pada suatu perguruan tinggi. Dalam relasi ini terdapat 8 (delapan) atribut, yaitu nim,nama_m,kdmk,nama_mk,sks,smt,tahun dan status_ambil, dengan data – data yang ada sebagai berikut:
Gambar 5.1. Relasi KRS a. Anomali Peremajaan (Update). Anomali peremajaan terjadi apabila ada perubahan pada sejumlah data yang mubazir pada suatu table tetapi tidak seluruhnya diubah. Pada contoh relasi KRS tersebut, terjadi anomali peremajaan, seandainya nama matakuliah „Pengantar Teknologi Informasi‟ berubah menjadi „Sistem Teknologi Informasi‟, dan perubahan hanya dilakukan pada record 1pertama, dan record kedua dan empat tidak dilakukan perubahan, maka hal ini menyebabkan adanya ketidakkonsistenan. b. Anomali Penyisipan (Insert). Anomali peremajaan terjadi apabila pada saat penambahan hendak dilakukan, ternyata ada elemen data yang masih kosong, dan elemen data tersebut justru menjadi kunci. Pada contoh relasi KRS tersebut terjadi anomali peremajaan, seorang mahasiswa mengambil FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
41 Bahan Kuliah: Sistem Basis Data
beberapa Row 1 matakuliah untuk semester dan tahun akademik tertentu. Masalahnya, bagaimanakah Row 2 fakta bahwa ada suatu matakuliah baru yang tidak diambil oelh mahasiswa ?. Penyisipan menyimpan Row 3 tidak Rowbisa 4 dilakukan karena tidak ada informasi mahasiswa yang mengambil matakuliah tersebut. Row c. 5Anomali Penghapusan (Delete). Row 6 Anomali peremajaan terjadi apabila suatu baris (record) yang tidak terpakai dihapus, Row 7 akibatya ada data lainnya yang hilang. Pada contoh relasi HRS tersebut terjadi anomali penghapusan, apabila data pada record dihapus, maka seluruh data yang ada pada record tersebut akan terhapus juga, padahal data tersebut masih diperlukan. 5.2. Ketergantungan Fungsional Diberikan suatu tabel, misal T dengan 2 atribut A dan B, kita dapat menyatakan notasi baerikut : AB B Pengertian dari notasi tersebut adalah : A secara fungsional menentukan B, atau B secara tergantung pada A. Diberikan 2 row r1 dan r2 dalam tabel T dimana A B. Jika r1(A)=r2(A}, maka r1(B)=r2(B}. Contoh KF : Nama_kul S S
Gambar 5.2. Ketergantungan fungsional Dari data diatas, Ketergantungan Fungsional yang dapat diajukan adalah :
0. Nim nama_mhs, Artinya adalah atribut Nama_mhs hanya tergantung pada atribut Nim. adalah setiap nilai nim yang sama, maka pasti nama_mhs – nya juga sama. 0. Nama_kul, Nim Indeks_nilai, Artinya adalah atribut Indeks_nilai tergantung pada atribut dan Nim secara bersama – sama. KF mempunyai pengertian bahwa setiap indeks nilai pada mahasiswa tertentu untuk matakuliah tertentu yang diambilnya. Contoh Non KF :
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
42 Bahan Kuliah: Sistem Basis Data
0. Nama_kul Nim, artinya adalah atribut Nim tidak tergantung pada Nama_kul. Buktinya bahwa Row 1 dan row 2, dengan nilai Mata_kul sama tetapi nilai Nim – nya tidak sama. 0. Nim Indeks_nilai, artinya adalah bahwa atribut Indeks_nilai tidak hanya tergantung pada Nim. Buktinya terlihat pada row 1 dan 6, dengan nilai Nim sama, tapi nilai Indeks_nilai – nya 5.3. Domain Atribut Domain Atribut adalah merupakan suatu gugus nilai yang mungkin dimiliki oleh suatu atribut suatu table / relasi dalam database. Berikut ini adalah contoh relasi rekening pada suatu database perbankan.
00 ng Pada relasi rekening diatas mempunyai pengertian sebagai berikut yang berhubungan dengan : Domain dari atribut Status adalah { Saving, Checking }, yang mempunyai arti adalah mungkin diberikan pada atribut status adalah hanya Saving dan Checking Domain dari atribut Saldo, adalah semua bilangan nyata yang positif, domain atribut ini gugus tak hingga. Domain atribut No_Rekening adalah semua kode rekening yang meungkin dikeluarkan tersebut. 5.4. Integritas Data Informasi yang disimpan pada basisdata hanya bagus jika DBMS membantu mencegah si yang disimpan pada basisdata hanya bagus jika DBMS membantu mencegah pemasukan informasi yang tidak benar. Konstrain integritas adalah syarat yang dispesifikasikan pada skema basisdata dan mebatasi data yang dapat disimpan dalam basisdata. Jika basisdata memenuhi semua konstrain integritas yang dispesifikasikan
pada skema basisdata maka basis data adalah legal. DBMS
memaksakan konstrain integritas sehingga hanya mengijinkan basisdata legal yang akan disimpan oleh DBMS. Konstrain integritas menjamin bahwa perubahan – perubahan yang dilakukan orang yang diotorisasi tidak menghasilkan pelanggarakan konsistensi data. FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
43 Bahan Kuliah: Sistem Basis Data
Integritas data mengacu ke konsistensi dan akurasi data yang disimpan dalam basisdata. Domain Integrity (column)
as data
mengacu ke konsistensi dan akurasi data yang disimpan dalam basisdata. Konstrain
integritas dispesifikasikan dan dipaksakan pada waktu yang berbeda, yaitu: 0. Ketika DBA mendefinisikan skema basisdata Entity (lewat DDL),(rows) DBA menspesifikasikan konstrain Integrity yang harus selalu dipenuhi basisdata. 0. Ketika
aplikasi basisdata dijalankan, DBMS melakukan Pemeriksaan untuk mencegah
pelanggaran dan mencegah perubahan – perubahan yang melanggar konstrain integritas. Referensial beberapa situasi, DBMS tidak melarang suatu aksi Integrity yang dapat menimbulkan pelanggaran (between tables
kemudian DBMS membuast tindakan – tindakan otomatis untuk
memenuhi konstrain
Dengan demikian dijamin perubahan – perubahan pada basisdata tidak menghasilkan melanggar konstrain integritas. 5.4.1. Jenis konstrain integritas Integritas dapat dikelompokkan menjadi 2 (dua), yaitu integritas didalam relasi yaitu aturan entitas dan aturan integritas domain dan integritas dengan luar relasi yaitu aturan integritas referensial. Selain itu terdapat aturan integritas untuk memenuhi aturan – aturan yang berlaku di disebut aturan integritas perusahaan atau aturan bisnis yang harus dipenuhi oleh basisdata. Dengan demikian, dapat diringkaskan integritas data di model relasional, meliputi: 0. Aturan integritas domain. 0. Aturan integritas entitas. 0. Aturan integritas referensial. 0. Aturan integritas perusahaan (didefiniskan pemakai). Hubungan antara domain, entitas dan referensial integritas dapat dilihat pada gambar berikut
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
44 Bahan Kuliah: Sistem Basis Data
Gambar 5.4. Hubungan antar konstrain integritas b. Integritas domain Domain adalah nilai – nilai yang dimungkinkin diasosiasikan dengan setiap atribut. beberapa atribut mempuyai domain yang sama, misalnya atribut nama_pelanggan, nama_pekerja dapat mempunyaim domain yang sama. Namun tidak jelas apakah nama_pekerja dan nama_kota seharusnya mempunyai doamin yang sama. Pada level implementasi, baik nama_pekerja dan nama_kota adalah string karakter. Namun kita tidak bisa membuat query “tampilkan nama pekerja yang namanya sama dengan nama kota” sebagai query yang mempunyai arti. Dengan demikian, jika kita memandang basisdata pada level konseptual buka level fisik, maka nama_pekerja dan nama_kota adalah mempunyai domain yang berbeda. Konstrain domain tidak hanya memungkinkan kita menguji nilai-nilai yang dimasukkan tapi juga memungkinkan kita melakukan pemeriksaan query untuk menjamin perbandingan dibuat mempunyai arti. b. Integritas entitas Null merepresentasikan suatu nilai untuk atribut dimana pada saat tidak diterapkan untuk tupel itu.
itu nilainya belum
Null adalah cara menanggapi ketidaklengkapan atau kondisi
kekecualian yang terjadi pada data. Null tidak sama dengan nilai numerik nol (0) atai string teks spasi. ai numerik nol (0) atai string teks spasi. Null dapat menyebabkan masalah pada implementasi, kesulitan akan muncul karena pada model relasional berdasarkan kalkulus predikat order pertama yaitu logika bernilai dua atau logika boole-yaitu nilai yang diperbolehkan hanyalah true atau false. Kita dapat menciptakan kalimat Create Table yang mencegah kolom yang bernilai Null dengan menggunakan konstrain Not Null, konstrain ini berlaku untuk kolom. Jika kita menempatkan Not Null segera setelah tipe data dari kolom maka peletakan nilai Null di kolom akanj ditolak. Bila tidak dinyatakan, SQL mengasumsikan Null diijinkan kecuali bila dispesifikasikan sebagai bagian dari kunci utama dengan Primary Key. Create Table Dosen ( nid char(10) Primary Key, nama_d varchar(50) Not Null, FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
45 Bahan Kuliah: Sistem Basis Data
tempat_lhr varchar(25), tgl_lahir datetime, jkelamin varchar(10), alamat varchar(90), kota varchar(30), kodepos char(5), gajipokok numeric(9) ) nama_d tidak boleh diisi dengan Null, sedangkan tempat_lhr, tgl_lahir, jkelamin, alamat, kota, kodepos, gajipokok boleh diisi dengan nilai Null pada kalimat insert ataupun update. Sementara nid dengan sendirinya adalah not null karena sebagai bagia dari kode primer yang didefinisikan dengan primary key. a. Integritas referensial Integritas pengacuan adalah jika foreign key terdapat di relasi maka nilai foreign key harus cocok pada nilai candidate key suatu tupel di relasi asal (home relation) atau nilai foreign key seluruhnya Null. Kita sering berkehendak menjamin nilai yang muncul di satu relasi untuk suatu himpunan atribut tertentu juga muncul sebagai himpunan atribut tertentu pada relasi lain. Cretae Table Mangajar ( nid char(10) not null, thn_akademik char(4) not null, smt int not null, hari varchar(10) not null, jam_ke char(1) not null, kdmk char(9), waktu char(10), kelas char(5), kode_jur char(2), Constraint PkAjar Primary Key(nid,thn_akademik,smt,hari,jam_ke), FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
46 Bahan Kuliah: Sistem Basis Data
Constraint Fkmatakuliah Foreign Key(kdmk) References Matakuliah(kdmk), Constraint Fkdosen Foreign Key(nid) References Dosen(nid), Constraint Fkjurusan Foreign Key(kode_jur) References Jurusan(kode_jur) ) b. Integritas enterprise Integritas keperusahaan adalah aturan – aturan tambahan yang dispesifikan pemakai atau administrator basisdata. Pemakai menspesifikasikan konstrain tambahan yang harus dipenuhi data. Konstrain tipe, domain, kunci dan referensial bersifat struktural, membatasi struktur ata. Aturan perusahaan tidak berkaitan erat dengan struktur. Konstrain perusahaan ini disebut konstrain semantiks karena diturunkan dari domain aplikasi tertentu yang dimodelkan basidata. Contoh : jika telah dibatasi jumlah staf di satu kantor cabang berjumlah 20 orang, maka administrator harus dapat menspesifikasikan ketentuan itu dan DBMS mampu memaksakan konstrain ketentuan ini. Anggota staf baru tidak dapat dimasukkan ke relasi staf jika jumlah staf saat itu telah mencapai 20. Pertanyaan Soal 1. Jelaskan pengertian daripada anomali dan sebutkan 3 (tiga) anomali dalam suatu database (basis data) ?. 2. Jelaskan dan berikan contoh terjadinya anomali peremajaan (update), penyisipan (insert) dan penghapusan (delete) ?. 3. Berikan contoh terjadinya ketergantungan fungsional pada suatu database ?. 4. Berikan penjelasan entitas integritas, domain integritas dan referensial integritas serta berikan contohnya ?.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
47 Bahan Kuliah: Sistem Basis Data
BAB 6 BENTUK – BENTUK NORMALISASI
Ketika merancang basisdata menggunakan model relasional, kita sering menemui beberapa alternatif dalam pendefinisian himpunan skema relasi. Beberapa pilihan lebih nyaman dibanding pilihan – pilihan lain untuk beragam alasan. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal. Bentuk Normal adalah suatu aturan yang dikenakan pada relasi-relasi dalam basis data dan harus dipenuhi oleh relasi tersebut pada level-level normalisasi. Suatu relasi dikatakan dalam bentuk normal tertentu jika memenuhi kondisi-kondisi tertentu.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
48 Bahan Kuliah: Sistem Basis Data
6.1. Bentuk Normalisasi Bentuk – bentuk Normalisi yang ada dalam mendesain basis data adalah sebagai berikut : 1). Bentuk normal pertama (1NF) 2). Benatuk normal kedua (2NF) 3). Bentuk normal ketiga (3NF) 4). Bentuk normal Boyce-Codd (BCNF) 5). Bentuk normal keempat (4 NF) 6). Bentuk normal kelima (5NF) Bentuk normal pertama (1NF) s/d normal ketiga (3NF), merupakan bentuk normal yang umum dipakai. Artinya adalah pada kebanyakan relasi, bila ketiga bentuk normal tersebut telah dipenuhi, maka persoalan anomali tidak akan muncul lagi didalam kita melakukan perancangan database. Kriteria dalam proses normalisasi adalah kebergantungan fungsional, kebergantungan banyak nilai dan kebergantungan join. Ketiga tipe kebergantungan tersebut digunakan untuk menilai relasi – relasi yang dihasilkan dari konversi diagram ER menjadi kumpulan relasi – relasi. Proses normalisasi membentuk relasi – relasi bentuk normal menggunakan dekomposisi yang memecah relasi menjadi relasi – relasi berbentuk normal lebih tinggi. Berikut ini adalah gambar untuk langkah – langkah melakukan normalisasi data, seperti tampak berikut ini: Tabel dengan atribut bernilai jamak Menghilangkan atribut bernilai jamak
Tabel bentuk normal pertama
Tabel bentuk normal kedua
Tabel bentuk ketiga URINDO : FTI –Tekniknormal Informatika Edisi 1 Tahun 2007 –
[email protected] -
Menghilangkan ketergantungan parsial Menghilangkan ketergantungan transitif
Refisi : 1 Menghilangkan anomali tersisa disebabkan ketergantungan fungsional
Tabel bentuk Normal boyce-codd Menghilangkan
49 Bahan Kuliah: Sistem Basis Data
Gambar 6.1. Langkah – langkah Normalisasi 6.1.1. Bentuk Normal Pertama (1 NF) Bentuk normal pertama dikenakan pada tabel yang belum ternormalisasi (masih memiliki atribut yang berulang).
Berikut ini adalah contoh data – data yang belum ternormalisasi NIP
Nama
Jabatan
107
Daffa
Analis Senior
109
Revan
112
Dilla
Keahlian
Access Oracle Analis Yunior Access Clipper Pogrammer Access Clipper Visual Basic Gambar 6.2. Relasi Pegawai
Lama (tahun) 6 1 2 2 1 1 1
Keahlian menyatakan atribut yang berulang (misal, fika punya tiga keahlian, dan Rian punya 2 keahlian).
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
50 Bahan Kuliah: Sistem Basis Data
a. Definisi Bentuk Normal Pertama (1NF) Suatu relasi dikatakan bentuk normal pertama, jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris. Tiap field hanya satu pengertian, bukan merupakan kumpulan kata yang mempunyai arti mendua, hanya satu arti saja dan juga bukanlah pecahan kata – kata sehingga artinya lain. Tidak ada set atribut yang berulang-ulang atau atribut bernilai ganda. Pada data tabel sebelumnya, contoh data belum ternormalisasi sehingga dapat diubah ke dalam bentuk normal pertama dengan cara membuat setiap baris berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu nilai. b. Contoh Normal Pertama (1NF) Berikut ini adalah contoh data pada relasi pegawai yang telah memenuhi bentuk normal pertama NIP
Nama
Jabatan
Keahlian
Lama
107
Daffa
Analis Senior
Access
6
107
Daffa
Analis Senior
Oracle
1
109
Revan
Analis Yunior
Access
2
109
Revan
Analis Yunior
Clipper
2
112
Dilla
Pogrammer
Access
1
112
Dilla
Pogrammer
Clipper
1
112
Dilla
Pogrammer
Visual Basic
1
Gambar 6.3. Relasi pegawai memenuhi 1NF Berikut ini adalah contoh data pada relasi mahasiswa yang belum memenuhi bentuk normal pertama. NIM
Nama
Dosen Wali
Kode_mk1
Kode_mk2
9820001
Nia Dela
Didik
1234
1435
9810004
Andik P
Primadina
1234
1435
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
Kode_mk3 1245
51 Bahan Kuliah: Sistem Basis Data
9810006
Rini
Tukino
1324
1545
9820008
Basuki
Djuwadi
1324
1545
1245
Gambar 6.4. Relasi Mahasiswa belum 1NF Relasi mahasiswa yang mempunyai NIM, nama dan Dosen Wali mengikuti 3 mata kuliah, tabel tersebut belum memenuhi normal pertama karena ada perulangan Kode_mk 3 kali padahal hal tersebut bisa dijadikan 1 atribut saja. Jadi bentuk normal pertama dari data di atas adalah : NIM
Nama
Dosen Wali
Kode_mk
9820001
Nia Dela
Didik
1234
9820001
Nia Dela
Didik
1435
9810004
Andik P
Primadina
1234
9810004
Andik P
Primadina
1435
9810004
Andik P
Primadina
1245
9810006
Rini
Tukino
1324
9810006
Rini
Tukino
1545
9810006
Rini
Tukino
1245
9810006
Rini
Tukino
1324
9820008
Basuki
Djuwadi
1324
9820008
Basuki
Djuwadi
1545
Gambar 6.5. Relasi Mahasiswa memenuhi 1NF Berikut ini adalah contoh data pada relasi matakuliah yang telah memenuhi bentuk normal pertama. Kode_mk
Matakuliah
1234
Sistem Basis Data
2
Didik Setiyadi,M.Kom.
1435
Alghoritma
4
Tukino,S.Kom,MM.Si
1545
Jaringan Komputer
2
Djuwadi,M.Kom.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Sks
Pengasuh
Refisi : 1
52 Bahan Kuliah: Sistem Basis Data
1245
Bahasa Inggris I
2
Dra. Siti Azizah
Gambar 6.6. Relasi matakuliah memenuhi 1 NF Relasi matakuliah tersebut merupakan bentuk 1 NF, karena tidak ada atribut yang bernilai ganda, dan tiap atribut satu pengertian yang bernilai tunggal. 6.1.2. Bentuk Normal Kedua (2 NF) Definisi Bentuk Normal Kedua (2 NF) adalah : 1).
Memenuhi bentuk 1 NF (normal pertama).
2).
Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama / primary key. Sehingga untuk membentuk normal kedua tiap tabel / file haruslah
ditentukan kunci-kunci atributnya. Kunci atribut haruslah unik dan dapat mewakili atribut lain yang menjadi anggotanya. Pada contoh tabel Mahasiswa yang memenuhi normal pertama (1 NF), terlihat bahwa NIM merupakan Primery Key (PK). NIM Nama, Dosen Wali. Artinya adalah bahwa atribut Nama dan Dosen Wali bergantung pada NIM. Tetapi NIM Kode_mk. Artinya adalah bahqa atribut Kode_mk tidak tergantung pada NIM. Untuk memenuhi normal kedua, maka pada relasi mahasiswa tersebut dipecah menjadi 2 relasi sebagai berikut: NIM
Nama
Dosen Wali
9820001
Nia Dela
Didik
9810004
Andik P
Primadina
9810006
Rini
Tukino
9820008
Basuki
Djuwadi
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
53 Bahan Kuliah: Sistem Basis Data
Gambar 6.7. Relasi mahasiswa memenuhi 2NF NIM
Kode_mk
9820001
1234
9820001
1435
9810004
1234
9810004
1435
9810004
1245
9810006
1324
9810006
1545
9810006
1245
9810006
1324
9820008
1324
9820008
1545 Gambar 6.8. Relasi ambil_kuliah memenuhi 2NF
6.1.3.
Bentuk Normal Ketiga (3 NF) Definisi Bentuk Normal Ketiga (3 NF) adalah: 1).
Memenuhi bentuk 2 NF (normal kedua).
2).
Atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci utama / primary key.
Berikut Contoh relasi yang memenuhi bentuk 2 NF, tetapi tidak memenuhi bentuk 3 NF. No Pesanan
No Urut
Kode Item
Nama Item
50001
0001
P1
Pensil
50001
0002
P2
Buku Tulis
50001
0003
P3
Penggaris
50001
0004
P4
Penghapus
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
54 Bahan Kuliah: Sistem Basis Data
50002
0001
P3
Penggaris
50002
0002
P5
Bulpen
50002
0003
P6
Spidol
50003
0001
P1
Pensil
50003
0002
P2
Buku Tulis
Gambar 6.9. Relasi pesanan_barang belum memenuhi 3NF Atribut No Pesanan dan No Urut merupakan kunci primer, baik kode item dan nama item mempunyai dependensi fungsional terhadap kunci primer tersebut. Pada relasi di atas, setiap kode item sama, maka nilai nama item juga sama, sehingga menunjukkan adanya dependensi dua atribut tersebut, tapi manakah yang menentukan, apakah kode item bergantung pada nama item, atau sebaliknya? Jadi nama item memiliki dependensi fungsional terhadap Kode item. Pada relasi ini menunjukkan bahwa nama item tidak memiliki dependensi secara langsung terhadap kunci primer (No pesanan dan No Urut). Dengan kata lain Nama Item memiliki dependensi transitif terhadap kunci primer. Sehingga untuk memenuhi bentuk 3 NF, maka relasi di atas didekomposisi menjadi dua buah relasi sebagai berikut: No Pesanan
No Urut
50001
0001
P1
50001
0002
P2
50001
0003
P3
50001
0004
P4
50002
0001
P3
50002
0002
P5
50002
0003
P6
50003
0001
P1
50003
0002
P2
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Kode Item
Refisi : 1
55 Bahan Kuliah: Sistem Basis Data
Gambar 6.10. Relasi pesanan_barang memenuhi 3NF Kode Item
Nama Item
P1
Pensil
P2
Buku Tulis
P3
Penggaris
P4
Penghapus
P5
Bulpen
P6
Spidol Gambar 6.11. Relasi barang memenuhi 3NF
6.1.4. Bentuk Normal Boyce-Codd (BCNF) Definisi Bentuk BCNF adalah : 1). Memenuhi bentuk 3 NF (normal ketiga). 2). Semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). Setiap atribut harus bergantung fungsi pada atribut superkey. BCNF merupakan bentuk normal sebagai perbaikan terhadap 3 NF. Suatu relasi yang memenuhi BCNF selalu memenuhi 3 NF, tetapi tidak untuk sebaliknya. Suatu relasi yang memenuhi 3 NF belum tentu memenuhi BCNF. Karena bentuk 3 NF masih memungkinkan terjadi anomali. Pada contoh berikut ini terdapat tabel SEMINAR, kunci primer adalah no_siswa + seminar, dengan pengertian bahwa : Siswa dapat mengambil satu atau dua seminar. Setiap seminar membutuhkan 2 instruktur. Setiap siswa dibimbing oleh salah satu dari 2 instruktur seminar. Setiap instruktur boleh hanya mengambil satu seminar saja.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
56 Bahan Kuliah: Sistem Basis Data
Pada contoh ini, no_siswa dan seminar menunjukkan seorang instruktur. No_siswa
Seminar
Instruktur
2201001
2281
Budi
2201002
2281
Kardi
2201003
2291
Joni
2201002
2291
Rahmad
2201004
2291
Rahmad
Gambar 6.12. Relasi seminar Bentuk tabel SEMINAR adalah memenuhi bentuk normal ketiga (3 NF), tetapi tidak BCNF karena nomor seminar masih bergantung fungsi pada instruktur, jika setiap instruktur dapat mengajar hanya pada satu seminar. Seminar bergantung fungsi pada satu atribute bukan superkey seperti yang disyaratkan oleh BCNF. Maka relasi SEMINAR harus didekomposisi menjadi dua relasi, yaitu relasi pengajar dan seminar_instruktur, seperti berikut ini : Instruktur
Seminar
Budi
2281
Kardi
2281
Joni
2291
Rahmad
2291
Gambar 6.13. Relasi pengajar No_siswa 2201001 2201002 2201003 2201002 2201004
Instruktur Budi Kardi Joni Rahmad Rahmad
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
57 Bahan Kuliah: Sistem Basis Data
Gambar 6.14. Relasi seminar_instruktur 6.1.5. Bentuk normal keempat ( 4 NF ) Suatu relasi dikatakan dalam bentuk normal keempat dengan ketentuan sebagai berikut ini :
Bila dan hanya bila telah berada dalam bentuk BCNF dan tidak ada multivalued dependency nontrivial.
Multivalued dependency (MVD) dipakai dalam bentuk normal keempat ( 4 NF ).
Dependensi ini dipakai untuk menyatakan hubungan satu ke bantak (one to many).
Contoh : Matakuliah Pengenalan Komputer
Dosen Budi Sanjaya
Matematika
Sugeng Paijo
Isi Dasar Komputer Pengenalan pengolahan kata Pengenalan lembaran kerja Differensial Integral
Relasi tersebut menggambarkan mengenai dosen yang mengajar matakuliah tertentu dengan isi matakuliah yang bersangkutan. Contoh dua dosen yang mengajar pengenalan komputer, yaitu Budi dan Sanjaya. Adapun isi matakuliah Pengenalan Komputer adalah Dasar Komputer, Pengenalan Pengolahan Kata dan Pengenalan Lembaran Kerja. Relasi berikut ini memperlihatkan relasi yang telah dinormalisasikan berdasarkan relasi sebelumnya. Matakuliah
Dosen
Isi
Pengenalan Komputer
Budi
Dasar Komputer
Pengenalan Komputer
Budi
Pengenalan pengolahan kata
Pengenalan Komputer
Budi
Pengenalan lembaran kerja
Pengenalan Komputer
Sanjaya
Dasar Komputer
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
58 Bahan Kuliah: Sistem Basis Data
Pengenalan Komputer
Sanjaya
Pengenalan pengolahan kata
Pengenalan Komputer
Sanjaya
Pengenalan lembaran kerja
Matematika
Sugeng Paijo
Differensial
Matematika
Sugeng Paijo
Integral
Relasi tersebut memenuhi bentuk BCNF karena primary key nya adalah gabungan dari matakuliah, dosen dan isi. Masalah tersebut dapat dipecahkan melalui dekompoisi, hal ini disebabkan karena terdapat kenyataan bahwa antara Dosen dengan Isi tidak ada ketergantungan. Solusi masalah tersebut diajukan oleh R. Fagin melalui konsep dependensi nilai banyak. Secara umum dependensi nilai banyak muncul pada relasi yang paling tidak memiliki tiga atribut dan dua diantaranya bernilai banyak, dan nilai – nilainya tergantung hanya pada atribut ketiga. Pada suatu relasi R dengan atribut A, B, C, atribut B dikatakan bersifat multidependen terhadap A jika :
Sekumpulan nilai B yang diberikan pada pasangan ( A, C) hanya tergantung pada nilai A, dan, tidak tergantung pada nilai C.
Hubungan diatas dinyatakan dengan : A , dibaca “ A menentukan banyak nilai B” atau “B multidependen
terhadap
A” Teorema Faqin yang berkaitan dengan multivalued dependency adalah :
Bila R ( A, B, C ) merupakan suatu relasi, dengan A, B, C adalah atribut – atribut relasi tersebut, maka proyeksi dari R berupa ( A, B ) dan ( A, C ) jika R memenuhi MVD A B | C
Perlu diketahui bahwa bila terdapat : A B, A C, maka keduanya dapat ditulis menjadi : A B | C Berdasarkan teorema Faqin diatas, maka relasi tersebut diatas dapat didekomposisi
menjadi dua relasi sebagai berikut : Matakuliah
Dosen
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
59 Bahan Kuliah: Sistem Basis Data
Pengenalan Komputer
Budi
Pengenalan Komputer
Sanjaya
Matematika
Sugeng Paijo
Matakuliah
Isi
Pengenalan Komputer
Dasar Komputer
Pengenalan Komputer
Pengenalan pengolahan kata
Pengenalan Komputer
Pengenalan lembaran kerja
Matematika
Differensial
Matematika
Integral
6.1.5. Bentuk normal kelima ( 5 NF ) Dependensi gabungan mendasari bentuk normal kelima. Suatu relasi R ( X,W,Z) memenuhi dependensi gabungan jika gabungan dari proyeksi A, B, C dengan A, B, C merupakan sub himpunan dari atribut – atribut R. Dependensi gabungan sesuai dengan definisi diatas dinyatakan dengan notasi : * (A, B, C ) dengan A = XY, B = YZ, C = ZX Sebagai contoh terdapat hubungan dealer yang mengageni suatu perusahaan distributor kendaraan. Dalam hal ini distributor memiliki sejumlah produk kendaraan. Dealer
Distributor
Kendaraan
Sumber Jaya
Nissan
Truk Nissan
Sumber Jaya
Toyota
Toyota Kijang
Sumber Jaya
Toyota
Truk Dyna
Asterindo
Nissan
Sedan Nissan
Relasi tersebut memenuhi dependensi gabungan : *(Dealer Distributor, Distributor Kendaraan, Dealet Kendaraan) Sehingga relasi tersebut dapat didekomposisi menjadi tiga buah relasi yaitu : FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
60 Bahan Kuliah: Sistem Basis Data
Deal_Dist (Dealer_Distributor).
Dist_Kend (Distributor_Kendaraan).
Deal_Kend (Dealer_Kendaraan).
Gabungan ketiga relasi tersebut akan membentuk relasi DDK dan gabungan kedua proyeksi diatas bisa jadi menghasilkan relasi antara yang salah, namum ketiganya akan menghasilkan relasi sesuai aslinya. Bentuk normal Kelima ( 5 NF ) yang terkadang disebut PJ/NF ( Projection Join / Normal Form ), menggunakan acuan dependensi gabungan. Suatu relasi berada dalam 5 NF jika dan hanya jika setiap dependensi gabungan dalam R tersirat oleh kunci kandidat relasi R.
Dealer Sumber Jaya Sumber Jaya Asterindo
Distributor Nissan Toyota Nissan Distributor Nissan Nissan Toyota Toyota
Dealer Sumber Jaya Sumber Jaya Sumber Jaya
Distributor Nissan Nissan Toyota
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Kendaraan Truk Nissan Sedan Nissan Toyota Kijang Truk Dyna Kendaraan Truk Nissan Sedan Nissan Toyota Kijang
Refisi : 1
61 Bahan Kuliah: Sistem Basis Data
Sumber Jaya Asterindo Asterindo
Toyota Nissan Nissan
Dealer Sumber Jaya Sumber Jaya Sumber Jaya Sumber Jaya Asterindo
Truk Dyna Truk Nissan Sedan Nissan
Kendaraan Truk Nissan Sedan Nissan Toyota Kijang Truk Dyna Sedan Nissan
6.2. Dependensi Transitif Definisi bentuk dependensi transitif adalah sebagai berikut : Atribut Z mempunyai dependensi transitif terhadap X, bila : 1). Y memiliki Dependensi fungsional terhadap X. 2). Z memiliki dependensi fungsional terhadap Y. Sehingga : X Y Z Berikut ini adalah contoh tabel relasi yang menunjukkan terjjadinya dependensi transitif pada tabel relasi kuliah berikut ini : Kuliah Jaringan Komputer Basis Data Sistem Pakar Sistem Operasi
Ruang Tempat Merapi Gedung Utara Rama Gedung Selatan Sinta Gedung Selatan Merapi Gedung Utara Gambar 6.15. Relasi kuliah
Waktu Senin, 08.00 – 09.50 Selasa, 07.00 – 08.45 Rabu, 10.00 – 11.45 Selasa, 08.00 – 08.50
Pada tabel tersebut diatas menunjukkan bahwa : Kuliah { Ruang, Waktu } Ruang Tempat Terlihat bahwa Kuliah Ruang Tempat Dengan demikian Tempat mempunyai dependensi transitif terhadap Kuliah.
Pertanyaan Soal
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
62 Bahan Kuliah: Sistem Basis Data
1. Jelaskan pengertian bentuk normalisasi, dan sebutkan bentuk – bentuk normalisasi yang saudara ketahui ?. 2. Jelaskan dan berikan contoh bentuk normal pertama (1 NF) ?. 3. Jelaskan dan berikan contoh bentuk normal kedua (2 NF) ?. 4. Jelaskan dan berikan contoh bentuk normal ketiga (3 NF) ?. 5. Jelaskan dan berikan contoh bentuk normal BNCF ?. 6. Jelaskan dan berikan contoh bentuk normal keempat (4 NF) dan normal kelima (5 NF) ?. 7. Jelaskan dan berikan contoh pengertian dari ketergantungan fungsional dan ketergantungan transitif ?.
BAB 7 PENERAPAN BENTUK NORMALISASI Pada proses perancangan database dapat dimulai dari dokumen dasar yang dipakai dalam sistem sesuai dengan lingkup sistem yang akan dibuat rancangan databasenya. Berikut ini adalah contoh dokumen mengenai faktur pembelian barang pada PT. Revanda Jaya..
FAKTUR PEMBELIAN BARANG FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
63 Bahan Kuliah: Sistem Basis Data
PT REVANDA JAYA Jl. Bekasi Timur No. 2 Bekasi Timur Kode Supplier : G01 Nama Supplier : Gobel Nustra Kode A01 A02
Tanggal : Nomor :
Nama Barang AC Split ½ PK AC Split 1 PK
Qty 10 10
Harga 1.350.000 2.000.000 Total Faktur
07/02/2001 998 Jumlah 13.500.000 20.000.000 33.500.000
Jatuh Tempo Faktur : 09/03/2001 FAKTUR PEMBELIAN BARANG PT REVANDA JAYA Jl. Bekasi Timur No. 2 Bekasi Timur Kode Supplier : S02 Nama Supplier : Hitachi Kode R01
Tanggal : Nomor :
Nama Barang Rice Chocker C3
Qty 10
02/02/2001 779
Harga 150.000
Jumlah 1.500.000
Total Faktur
1.500.000
Jatuh Tempo Faktur : 09/03/2001
Gambar 7.1. Faktur pembelian barang
Sehubungan dengan dokumen dasar tersebut, tahapan yang harus dilakukan untuk melakukan normalisasi data adalah sebagai berikut: 1. Bentuk Unnormalisasi Langkah pertama dalam melakukan normalisasi data adalah dengan membentuk contoh data tersebut didtas dengan membentuk unnormalisasi data, dengan cara mencantumkan semua atribut data yang ada apa adanya seperti terlihat berikut ini :
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
64 Bahan Kuliah: Sistem Basis Data
No
Kode
Nama
Kode
Nama Barang
Tanggal
Jatuh
Qt
Tempo
y
Harga
Jumlah
Total
Fac
Supp
Supp
Brg
779
S02
Hitachi
R02
Rice Chocker C3
02/02/01
09/03/01
10
150000
1500000
1500000
998
G01
Gobel
A01
AC Split ½ PK
07/02/01
09/03.01
10
135000
13500000
33500000
Nustra
A02
AC Split 1 PK
10
2000000
20000000
Gambar 7.2. Relasi faktur unnormalisasi Pada relasi diatas adalah dengan menuliskan semua data yang ada yang akan direkam, data yang double tidak perlu ditulis. Terlihat baris / record yang tidak lengkap. Sulit dibayangkan bagaimana bentuk baris yang harus dibentuk untuk merekam data itu. 2.. Bentuk Normal Pertama (1 NF) Bentuklah menjadi bentuk normal pertama dengan memisah-misahkan data pada atributatribut yang tepat dan bernilai atomik, juga seluruh record / baris harus lengkap adanya. Bentuk relasi adalah flat file. Dengan normal pertama kita dapat membuat satu tabel yang terdiri dari 11 Atribut yaitu (No_Faktur, Kode_Supplier, Nama_Supplier, Kode_Barang, Nama_Barang, Tanggal, Jatuh_Tempo, Qty, Harga, Jumlah, Total ). Sehingga hasil daripada pembentukan normal pertama (1 NF) adalah sebagai berikut ini :
No
Kode
Nama Supp
Kode
Nama Barang
Tanggal
Fac
Supp
779
S02
Hitachi
R02
Rice Chocker C3
02/02/01
09/03/01
10
150000
1500000
1500000
998
G01
Gobel Nustra
A01
AC Split ½ PK
07/02/01
09/03/01
10
135000
13500000
33500000
998
G01
Gobel Nustra
A02
AC Split 1 PK
07/02/01
09/03/01
10
2000000
20000000
33500000
Brg
Jatuh
Qty
Harga
Total
Tempo
Gambar 7.3. Relasi memenuhi 1 NF
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Jumlah
Refisi : 1
65 Bahan Kuliah: Sistem Basis Data
Pada normal pertama tersebut masih terjadi banyak kelemahan, terutama pada proses ANOMALI insert, update dan delete berikut ini: a). Inserting / Penyisipan Kita tidak dapat memasukkan kode dan nama supplier saja tanpa adanya transaksi pembelian, sehingga supplier baru bisa dimasukkan kalau ada transaksi pembelian. b). Deleting / Penghapusan Bila satu record / baris di atas dihapus, misal nomor faktur 779, maka berakibat pada penghapusan data supplier S02 (Hitachi) padahal data tersebut masih diperlukan. c).
Updating / Pengubahan Kode dan nama supplier terlihat ditulis berkali-kali, bila nama supplier berubah, maka di setiap baris yang ada harus dirubah, bila tidak menjadi tidak konsisten. Atribut jumlah (merupakan atribut turunan) seharusnya tidak perlu, karena setiap harga
dikali kuantitas akan menghasilkan jumlah, sehingga hasilnya akan menjadi lebih konsisten. 3. Bentuk Normal Kedua (2 NF) Bentuk normal kedua dengan melakukan dekomposisi relasi diatas menjadi beberapa relasi dan mencari kunci primer dari tiap-tiap relasi tersebut dan atribut kunci haruslah unik. Melihat permasalahan faktur di atas, maka dapat diambil beberapa kunci kandidat : ( No_Faktur, Kode_Supplier, dan Kode_Barang ). Kunci kandidat tersebut nantinya bisa menjadi kunci primer pada relasi hasil dekomposisi. Dengan melihat normal pertama, kita dapat mendekomposisi menjadi tiga relasi berserta kunci primer yang ada yaitu : relasi Supplier (Kode_Supplier), relasi Barang (Kode_Barang), dan Relasi Faktur (No_Faktur). Dengan melihat ketergantungan fungsional atribut-atribut lain terhadap atribut kunci, maka didapatkan 3 (tiga) relasi sebagai berikut : Relasi Supplier
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
66 Bahan Kuliah: Sistem Basis Data
Kode_Supplier
Nama _Supplier
S02
Hitachi
G01
Gobel Nustra
G01
Gobel Nustra
Relasi Barang Kode_Barang
Nama_Barang
Harga
R02
Rice Chocker C3
150000
A01
AC Split ½ PK
135000
A02
AC Split 1 PK
2000000
Relasi Faktur No_Faktur
(Kode_Barang)
(Kode _Supplier)
779
R02
S02
998
A01
998
A02
Tanggal
Jatuh_tempo
Qty
02/02/01
09/03/01
10
G01
07/02/01
09/03/01
10
G01
07/02/01
09/03/01
10
Gambar 7.4. Relasi memenuhi 2 NF Kamus Data dari masing-masing relasi tersebut diatas adalah sebagai berikut: Supllier = { Kode_Supplier, Nama_Supplier } Barang = { Kode_Barang, Nama_Barang, Harga } Faktur = { No Faktur, Kode Barang Kode_Supplier, Tanggal, Jatuh_Tempo, Qty } Dengan pemecahan relasi di atas, maka untuk pengujian bentuk normal kesatu (1 NF) yaitu insert, update, dan delete akan terjawab. Kode dan nama supplier baru dapat masuk kapanpun tanpa adanya transaksi pada tabel faktur. Demikian pula untuk proses update dan delete untuk tabel Supplier dan Barang. Pada bentuk normal kedua tersebut masih terjadi permasalahan yaitu pada relasi Faktur, yaitu : 1). Atribut Quantitas pada relasi Faktur, tidak tergantung pada kunci utama, atribut tersebut bergantung fungsi pada Kode Barang + no_faktur, hal ini dinamakan ketergatungan transitif FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
67 Bahan Kuliah: Sistem Basis Data
dan haruslah dipilah menjadi dua relasi. 2). Masih terdapat pengulangan, yaitu setiap kali satu faktur yang terdiri dari 5 macam barang maka 5 kali juga dituliskan no_faktur, tanggal, dan jatuh_tempo. Hal ini harus dipisahkan bila terjadi penggandaan tulisan berulang-ulang. 4. Bentuk Normal Ketiga (3 NF) Bentuk normal ketiga mempunyai syarat, setiap relasi tidak mempunyai atribut yang bergantung transitif, harus bergantung penuh pada kunci utama dan harus memenuhi bentuk normal kedua (2 NF). Untuk emmenuhi bentuk normal ketiga (3 NF), maka pada relasi faktur harus didekomposisi (dipecah) lagi menjadi dua relasi yaitu relasi faktur dan relasi transaksi barang, sehingga hasilnya adalah sebagai berikut ini:
Relasi Supplier Kode_Supplier G01 S02
Relasi Barang Nama Supplier Gobel Nustra Hitachi
Kode_Barang R01 A01 A02
Nama_Barang Rice Cooker CC3 AC Split ½ PK AC Split 1 PK
Harga 150.000 1.350.000 2.000.000
Relasi Faktur No_Faktur
Tanggal
Jatuh_Tempo
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Kode_Supplier
Refisi : 1
68 Bahan Kuliah: Sistem Basis Data
779
02/02/2001
09/03/2001
S02
998
07/02/2001
09/03/2001
G01
Relasi Transaksi_Barang No_Faktur 779 998 998
Kode_Barang R01 A01 A02
Qty 10 10 10
Gambar 7.5. Relasi memenuhi 3 NF Kamus Data dari masing-masing relasi tersebut diatas adalah sebagai berikut: Supllier = { Kode_Supplier, Nama_Supplier } Barang = { Kode_Barang, Nama_Barang, Harga } Faktur = { No Faktur, Kode_Supplier, Tanggal, Jatuh_Tempo } Transaksi_Barang = { No Faktur, Kode Barang Qty } Primary key pada relasi Supplier adalah Kode_Supplier, Primary key pada relasi Barang adalah Kode_Barang, Primary key pada relasi Faktur adalah No_Faktur dan Foreign key nya adalah Kode_Supplier, Primary key pada relasi Transaksi_Barang adalah No_Faktur, Kode_Barang dan keduanya juga menjadi Foreign key. 5. ERD (Entity Relationship Diagram) Gambaran hubungan antar entitas / relasi yang terbentuk, adalah seperti terlihat pada gambar berikut ini :
Supplier
1
Memiliki
* Kode_supplier nama_supplier
Barang
1
Faktur
1
FTI –Teknik Informatika URINDO : Edisi 1 Tahun* 2007 –
[email protected] Kode_barang
-
N
Nama_barang Harga
* No_faktur Tanggal Jatuh_tempo ** Kode_supplier Refisi : 1 Terdiri Dari
N
69 Bahan Kuliah: Sistem Basis Data
Keterangan : * = Primary Key, ** =Foreign Key Gambar 7.6. ERD (Entity Relationship Diagram) Pengertian Hubungan (Relation) antar pada gambar ERD (entity relationship diagram) pada gambar di atas adalah sebagai berikut: a). Supplier ke Faktur relasinya adalah one to many, artinya adalah satu supplier mempunyai banyak faktur, faktur punya relasi terhadap supplier. b). Faktur ke Transaksi_Barang relasinya adalah one to many, artinya adalah satu faktur mempunyai beberapa transaksi barang (satu faktur terdiri dari satu atau lebih transaksi barang). c). Barang ke Transaksi_Barang relasinya adalah one to many, artinya adalah satu barang bisa terjadi beberapa kali transaksi pembelian barang.
Implementasi ERD (entity relationship diagram) physical pada contoh diatas, bisa dituangkan kedalam database MS-Access aatau SQL Server, seperti terlihat pada gambar beikut ini:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
70 Bahan Kuliah: Sistem Basis Data
Gambar 7.7. ERD dengan database MS-Access 2000
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
71 Bahan Kuliah: Sistem Basis Data
Gambar 7.8. ERD dengan database SQL Server 2000 Pertanyaan Soal 1. Carilah dokumen dasar seperti dalam contoh faktur diatas, setelah saudara temukan, kemudian lakukan langkah – langkah normalisasi data ?. 2. Setelah model ERD terbentuk, buatlah ERD physical tersebut dengan menggunakan database MS-Access atau SQL Server ?.
BAB 8 MODEL DATA DAN ENTITY-RELATIONSHIP MODEL
8.1. Model Data
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
72 Bahan Kuliah: Sistem Basis Data
Model data adalah sekumpulan konsep yang terintegrasi untuk mendiskripsikan data, hubungan antar data dan batasan – batasannya dalam suatu organisasi. Model data merepresentasikan suatu organisasi. Model data harus menyediakan konsep dasar dan notasi yang memungkinkan perancang basis data dan pemakai utuk dapat mengkomunikasikan pemahamannya mengenai organisasi data. 8.1.1. Komponen model data. Komponen model data dapat dikategorikan menjadi 3 (tiga) bagian yang meliputi:
Bagian struktural, memuat sekumpulan aturan untuk melakukan konstruksi basis data ( database).
Bagian manipulasi, melakukan definisi tipe operasi yang diijinkan pada data, termasuk operasi yang digunakan untuk melakukan perubahan (update), atau membaca data (retrieve) dari basis data dan untuk melakukan perubahan struktur basis data.
Sekumpulan aturan mengenai integritas, yang akan menjaga keakuratan dari data dalam basis data (database).
8.1.2. Kelompok Model Data Terdapat 3 (tiga) kelompok model data, yaitu model data berbasis objek, model data berbasis record dan model data fisikal. a. Model data berbasis objek. Pada model ini menjelaskan data pada tingkat konsepsi dan view. Pada model ini terdapat beberapa macam model, yaitu :
ER model (Entity relationship Model).
OO model (Objek Oriented Model).
Binary Model.
Model data semantik.
Model data infologikal, dan
Model data fungsional.
b. Model data berbasis record.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
73 Bahan Kuliah: Sistem Basis Data
Pada model ini menjelaskan data pada tingkat konsepsi dan view, memakai seluruh struktur lojik basis data dan menyediakan uraian tingkat tinggi dari implementasi. Terdiri dari sejumlah fixed format record dengan berbagai tipe. Pada model ini teradapat 3 (tiga) macam tipe,yaitu :
Model data relational.
Model data nerwork, dan
Model data hirarki.
b.1. Model relational. Pada model ini menggambarkan data dan relationship diantara data oleh suatu koleksi tabel, contoh nya: Customer Name Lowery Shiver Shiver Hodges Hodges
Street Maple Nort Nort Sidehill Sidehill
Account Number 900 556 647 801
City Queens Bronx Bronx Brooklyn Brooklyn
Number 900 556 647 801 647
Balance 55 100000 1005366 10533 Gambar 8.1. Model Relational
b.2. Model network (jaringan) Pada model ini menggambarkan koleksi record – record dan relationship diantara data ditunjukkan oleh link (penghubung) yang dapat dipandang sebagai pointer (penunjuk), contoh nya:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
900
55
556
100000 Refisi : 1
647
105366
801
10533
74 Bahan Kuliah: Sistem Basis Data
Lowery
Maple
Shiver
Nort
Hodges
Sidehill Gambar 8.2. Model Network
b.3. Model hirarki Pada model ini sama seperti pada model network dalam hal data dan relationship diantara data digambarkan oleh record dan link. Perbedaannya adalah record disusun sebagai “collection of tree” dengan sembarang grafik. contoh nya:
B5
…
London
B3
…
Glasgow
B4
…
Bristol
SL41 Julie … Assistant 9000 SL41 Julie … Assistant 9000 SL41 Julie … Assistant 9000 SL41 Julie … Assistant 9000
Gambar 8.3. Model Hirarki 8.1.3. Database Instance & Schema Database instance adalah data yang berada dalam basis data pada suatu saat tertentu. Database schema merupakan rancangan (deskripsi) keseluruhan database. Skema dispesifikasikan selama proses desain basis data yang tidak diharapkan untuk selalu berubah, tetapi data aktual yang berada dalam basis data bisa selalu berubah (misalkan dengan adanya penambahan data (insert), penghapusan data (delete) dan lain sebagainya. Skema kadang disebut juga sebagai intension dari database, sedangkan instance disebut dengan extention atau state dari dabase.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
75 Bahan Kuliah: Sistem Basis Data
Konsep database schema berhubungan dengan definisi type (bentuk) dalam bahasa pemrograman, sedangkan konsep database instance berhubungan dengan definisi variable dalam bahasa pemrograman. Sistem basis data mempunyain banyak schema berdasarkan tingkat abstraksi yaitu:
Physical schema tingkat terendah.
Conceptual schema tingkat menengah.
Eksternal schema (subschema) tingkat tertinggi.
Sistem basis data sangat mendukung semua tingkat pada ketiga schema tersebut. Pada schema conseptual menggambarkan semua item data dan relationship diantara item – item data serta batasan – batasan integritasnya, hanya terdapat satu conceptual schema didalam suatu database. Skema internal merupakan gambaran lengkap dari model internal, maliputi definisi dari stored record, metode representasi, data field dan indeks serta skema hashing jika ada, hanya terdapat satu schema dalam suatu databse. 8.1.4. Mapping. DBMS (database management system) bertanggung jawab didalam pemetaan diantara tiga tipe skema tersebut dan DBMS menguji skema untuk konsistensi yang berarti harus menguji bahwa setiap skema eksternal diturunkan dari skema konseptual, dan harus menggunakan informasi didalam skema konseptual untuk memetakan antara masing – masing skema eksternal dan skema internal. Skema konseptual berhubungan dengan skema internal yang melalui conceptual / internal mapping. Hal ini memungkinkan DBMS untuk menemukan aktual record atau kombinasi record dalam penyimpanan fisik yang merupakan sebuah logical record dalam skema konseptual, bersama dengan batasan – batasan yang harus dijaga dalam operasi untuk logical record tersebut. Dimungkinkan juga perbedaan – perbedaan dalam nama entitas, nama atribut, urutan atribut, tipe data dan lain sebagainya. Setiap skema eksternal berhubungan dengan skema konseptual melalui eksternal / konseptual mapping. Hal ini memungkinkan DBMS memetakan nama – nama dalam pandangan pemakai kedalam bagian yang relevan dalam skema konseptual. FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
76 Bahan Kuliah: Sistem Basis Data
8.2. Entity Relationship Model Model data entity relationship (E-R) adalah berdasarkan pada persepsi dari dunia nyata yang terdiri dari sekumpulan objek – objek dasar yang desebut entity, dan relationship antara objek – objek tersebut. Pembentuk Model E-R (Entity Relationship) pada dasarnya terdiri dari 2 komponen, yaitu : Entiti (Entity) / entitas dan Relasi (Relation) atau hubungan. 8.2.1. Entiti Merupakan suatu objek yang dapat diidentifikasi secara unik dalam lingkungan pemakai, suatu yang penting bagi pemakai dalam konteks sistem yang akan dibuat. Sekelompok entiti yang sejenis dan berada dalam lingkup yang sama membentuk sebuah Himpunan Entiti. Contoh Himpunan Entiti Mahasiswa
atribut entiti
NIM
Nama
Alamat
Tgl Lahir
980001
Ali Akbar
Jl. Merdeka No.10, Jakarta 40121
02-01-1979
980002
Budi Haryanto
Jl. Gajah Mada No.2, Jakarta 45123
06-10-1978
980003
Rini Susanti
Jl. Adil No.123, Bogor 43123
27-07-1977
Himpunan Entiti Mahasiswa Gambar 8.4. Himpunan entiti mahasiswa 8.2.2. Atribut Merupakan elemen bagian dari entiti yang berfungsi menjelaskan karakter entiti. Contoh dalam Entiti Mahasiswa ada atribut : Nim, Nama, Alamat, Telpon dan Tgl Lahir. Dimana Nim merupakan PK (Primery Keys) dan Nama, Alamat, Telpon dan Tgl Lahir merupakan atribut Deskriptif. 8.2.3. Relasi / Hubungan
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
77 Bahan Kuliah: Sistem Basis Data
Relasi menunjukkan adanya hubungan di antara sejumlah entiti yang berada dalam sejumlah himpunan entiti yang berbeda. Misalkan himpunan entiti Mahasiswa berhubungan dengan himpunan entiti Matakuliah. Himpunan Relasi : kumpulan semua relasi diantara entiti – entiti yang terdapat pada himpunan entiti – himpunan entiti tersebut. Istilah Himpunan relasi jarang digunakan, dan lebih sering disingkat dengan Relasi saja. 8.2.4. Varian Relasi Relasi berfungsi menghubungkan antar entiti. Entiti yang berelasi tidak hanya terdiri dari dua relasi saja. Tetapi entiti bisa berelasi dengan dirinya sendiri atau berelasi lebih dari 2 entiti. Relasi ini dapat dikelompokkan menurut varian sebagai berikut :
Relasi Unary Relasi yang terjadi dari sebuah himpunan entiti ke himpunan entiti yang sama. Sering
disebut sebagai Relasi Tunggal. Misalkan relasi yang terjadi pada Pasien dan Syarat. Relasi ini menunjukkan adanya persyaratan menjadi pasien rawat inap. Misalkan pasien hanya boleh mengikuti rawat inap bila telah terdaftar menjadi pasien rawat jalan.
Pasien
Syarat
Gambar 8.5. Relasi Unary
Relasi Binary Relasi yang terjadi dari dua himpunan entiti. Relasi ini kerap terjadi dan paling banyak
digunakan. Contoh relasi biner adalah relasi antara Pasien dengan Obat.
Pasien
Memakai
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Obat
Refisi : 1
78 Bahan Kuliah: Sistem Basis Data
Gambar 8.6. Relasi Biner
Relasi Treenary Relasi yang terjadi dari hubungan3 (tiga) buah entiti.
Contoh relasi ini adalah
hubungan antara Pasien, Tindakan dan Dokter.
Dilakukan
Pasien
Tindakan
Dokter
Gambar 8.7. Relasi Treenary
Relasi N-nary Relasi yang menghubungkan lebih dari 3 (tiga) buah entiti, dimasukkan dalam relasi
multi entiti. Bentuk relasi semacam ini sedapat mungkin dihindari karena akan mengaburkan derajat relasi yang ada dan juga akan menyebabkan desain databasenya semakin kompleks.
8.2.5. Kardinalitas Relasi Biner Model relasi entiti didasarkan pada persepsi dunia nyata yang terdiri dari himpunan obyek dasar yang disebut entiti dan relasi antar entiti. Entiti dapat diartikan suatu obyek yang dapat diidentifikasi secara unik, obyek dapat berupa orang, benda, peristiwa dan lainnya. Entiti dikarakteriasi dan direpresentasikan dengan suatu gugus atribut. Contoh atribut dari Mahasiswa adalah : Nim, Nama, Alamat, Telpon, Tgl Lahir dan lainnya. Sekelompok entiti yang mempunyai karakteristik entiti yang sama disebut Himpunan Entiti. Contoh himpunan entiti adalah, himpunan entiti Kustomer, himpunan entiti Rekening, himpunan entiti Bank, dan lainnya. Dari beberapa himpunan tadi mungkin terjadi relasi, misalkan relasi Kustomer dengan Rekening ( Kustomer mempunyai rekening )
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
79 Bahan Kuliah: Sistem Basis Data
Khusus Relasi Biner, relasi antar anggota dari dua himpunan entiti yang terlibat dapat bersifat :
Relasi 1-1 ( one to one relationship )
Setiap entiti dari suatu himpunan entiti tertentu diasosiasikan atau direlasikan dengan tepat satu entiti dari himpunan yang lain.
Kustomer
1
R1
1
Rekening
R1 = Mempunyai Gambar 8.8. Relasi 1 - 1
Relasi 1 – m ( one to many relationship )
Setiap entiti dari suatu himpunan entiti direlasikan dengan satu atau lebih entiti anggota himpunan yang lain. Sebaliknya satu entiti himpunan yang lain direlasikan tepat dengan satu entiti anggota himpunan pasangannya. Kustomer
1
R1
m
Rekening
R1 = Mempunyai Gambar 8.9. Relasi 1 – m
Relasi m - n ( many to many relationship )
Setiap entiti dari suatu himpunan entiti direlasikan dengan satu atau lebih entiti dari himpunan yang lain dan berlaku pula sebaliknya.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
80 Bahan Kuliah: Sistem Basis Data
Kustomer
m
R1
n
Bank
R1 = Pinjam Gambar 8.10. Relasi m – n Sifat ketiga relasi tersebut disebut sebagai kardinalitas relasi biner. Alat bantu yang banyak dipakai dalam mendiskripsikan pola hubungan (relasi) antar entiti adalah Entity Relationship Diagram atau Diagram Relasi Entiti atau lebih sering disingkat dengan ERD. 8.2. 6. Entity Relationship Diagram ( ERD ) ERD berisi komponen - komponen himpunan entiti dan himpunan relasi yang masing masing dilengkapi dengan atribut – atribut yang merepresentasikan seluruh fakta dari “ dunia nyata “. Nomor 1.
Simbol
Nama Simbul ENTITI Digunakan untuk menggambarkan obyek yang dapat diidentifikasi dalam lingkungan pemakai.
2.
ATRIBUT Untuk menggambarkan elemen – elemen dari suatu entiti, yang menggambarkan karakter entiti.
3.
HUBUNGAN Menggambarkan relasi ( hubungan ) antar entiti
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
81 Bahan Kuliah: Sistem Basis Data
4.
GARIS Digunakan untuk menghubungkan entiti dengan entiti, atau entiti dengan atribut.
Gambar 8.11. Notasi – notasi dalam ERD Berikut ini dalah contoh penerapan model ER yang dapat ditaungkan kedalam Diagram – ER ( ERD ) :
telp
nama
alamat
nim
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected]
Tglhir Refisi : 1
Mahasiswa
-
Nim
m
nilai
82 Bahan Kuliah: Sistem Basis Data
Gambar 8.12. Contoh ERD Hubungan (relasi) antar tabel yang terjadi pada ERD tersebut diatas adalah sebagai berikut :
Relasi Dosen dengan Matakuliah adalah one to many, dengan pengertian bahwa seorang dosen bisa mengajarkan satu atau lebih matakuliah.
Relasi Mahasiswa dengan Matakuliah adalah many to many, dengan pengertian bahwa seorang mahasiswa bisa mempelajari satu atau lebih matakuliah, demikian juga untuk sebaliknya, bahwa satu matakuliah bisa dipelajari oleh satu atau lebih mahasiswa.
Diagram – ER (ERD / entity relationship diagram) tersebut diatas dapat dituangkan kedalam kamus data berikut ini :
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
83 Bahan Kuliah: Sistem Basis Data
m
Mahasiswa
n
Mempelajari
Matakuliah m
Dosen
1
Mengajar
Kamus Data :
Mahasiswa
= { Nim, nama, alamat, telp, tglhir }
Matakuliah
= { Kode, namamk, sks, smester }
Dosen
= { NID, namads, alamatd, telpon }
Mempelajari
= { Nim, Kode, nilai }
Mengajar
= { NID, Kode, hari, waktu } Gambar 8.13. Contoh ERD dengan kamus data
Primary key untuk masing – masing entiti tersebut diatas adalah sebagai berikut :
Entiti mahasiswa = nim, karena pasti unik, tidak mungkin nim : mhs0001 misalkan dipakai oleh lebih dari 2 orang mahasiswa.
Entiti matakuliah = kode, karena pasti unik, tidak mungkin kode matakuliah : mk001 misalkan dipakai oleh lebih dari 2 matakuliah.
Entiti dosen = nid, karena pasti unik, tidak mungkin nid : ds0001 misalkan dipakai oleh lebih dari 2 orang dosen.
Entiti mempelajari = nim dan kode ( dimana kedua atribut tersebut adalah sebagai foreign key jadi dua atribut tersebut bisa dijadikan primary key pada entiti mempelajari, karena tidak ada satu atribut yang menyatakan unik pada entiti tersebut.
Entiti mengajar = nid dan kode ( dimana kedua atribut tersebut adalah sebagai foreign key jadi dua atribut tersebut bisa dijadikan primary key pada entiti mengajar, karena tidak ada satu atribut yang menyatakan unik pada entiti tersebut. Berikut ini adalah implementasi pembentukan ERD (entity relationship diagram)
tersebut dengan menggunakan software ERWIN (Entity relationship for windows) Erx.3.0
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
84 Bahan Kuliah: Sistem Basis Data
Gambar 8.14. Contoh ERD dengan ERWIN ERX.3.0 Pertanyaan Soal 1. Jelaskan dan berikan contoh model data network dan hirarki ?. 2. Jelaskan pengertian entiti, atribut dan relasi dan berikan contohnya ?. 3. Jelaskan dan berikan contoh relasi unary dan binary ?. 4. Jelaskan dan berikan contoh kardinalitas relasi biner untuk one to one, one to many dan many to many ?. 5. Jelaskan dan gambarkan simbol – simbol yang digunakan didalam ERD, dan berikan contoh ERD dalam suatu database ( minimal 3 entitas / tabel / file ) ?. BAB 9 ALJABAR RELASIONAL DAN KALKULUS RELASIONAL
Bahasa query formal basis data relasional adalah bahasa untuk meminta informasi dari basis data. Sebelum basis data relasional, query terhadap basis data merupakan tugas yang sangat sukar. Pemogram harus berususan dengan skema fisik internal dari basis data. Bahasa query relasional misalkan SQL (sructured query language) berbeda dengan bahasa pemrograman konvensional. Di SQL, kita menspesifikasikan properti – properti informasi yang hendak
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
85 Bahan Kuliah: Sistem Basis Data
diambil tapi tidak mencantumkan rincian algoritma pengambilan. SQL adalah deklaratif, yaitu pada query dideklarasikan informasi yang merupakan jawaban yang dikehendaki bukan cara komputasi. Query kompleks yag diperlukan pada kebanyakan aplikasi nyata memerlukan pengetahuan mendalam mengenai bahasa da semantiknya. Bahasa query relasional formal merupakan bahasa antara yang digunakan basis data, yaitu SQL dikonversi menjadi bahasa rlasional formal sehingga dapa diterapkan sekumpulan informasi untuk memperoleh query paling efisien. Terdapat dua jenis bahasa query relasional formal yang utama, yaitu: 1. Aljabar relasional. 2. Kalkulus relasional. 9.1. Aljabar relasional Relational Algebra (aljabar relasional) merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data. Terdapat lima operasi dasar dalam aljabar relasional, yaitu: 1. Selection (
)
2. Projection (
)
3. Cartesian – product ( X, juga disebut sebagai cross product ) 4. Union (
)
5. Set – difference ( - ) 6. Rename ( ) Operasi – operasi turunan dari operasi – operasi dasar tersebut adalah: 1. Set intersection ( 2. Theta join ( 3. Natural-join ( 4. Outer-join (
)
) ) )
5. Division ( ) Semua operasi tersebut menghasilkan relasi baru. Bahasa disebut aljabar relasional karena bahasa berdasar sejumlah operator yang beroperasi pada relasi – relasi (tabel – tabel). Masing – masing operator beroperasi pada satu relasi atau lebih atau menghasilkan relasi – relasi lain sebagai FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
86 Bahan Kuliah: Sistem Basis Data
hasil. Query adalah sekedar ekspresi yang melibatkan operator – operator itu. Hasil ekspresi adalah relasi yaitu jawaban terhadap query. SQL adalah bahasa yang deklaratif yang berarti tidak menspesifikasikan algoritma yang digunakan untuk pengolahan query. Ekspresi relasional dapat dipandang sebagai spesifikasi algoritma (meskipun dalam level lebih tinggi dibanding algoritma untuk bahasa pemrograman konvensional). Pemrogram menggunakan query SQL, DBMS menggunakan aljabar relasional sebagai bahasa antara dalam spesifikasi algoritma query. Langkah – langkah dalam DBMS untuk pengolahan query adalah: 1. DBMS melakukan parsing terhadap string dari query SQL dan menerjemahkannya menjadi ekspresi aljabar relasional yang dapat menuntun kedalam algoritma sederhana yang tidak efisien. 2. Setelah itu, bagian query optimizer mengkonversi ekspresi aljabar relasional ini menjadi ekspresi lain yang ekvivalen nemun lebih efisien untuk dieksekusi. 3. Berdasarkan ekpresi aljabar relasional yang telah dioptimasi, query optimizer mempesiapkan rencana eksekusi query (query execution plan) yang kemudian ditransformasikan menjadi kode yang dapat dieksekusi pembangkit kode di DBMS. 4. Karena ekspresi aljabar mempunyai semantik matematika yang presisi maka sistem dapat memferifikasi ekvivalensi ekspresi yang dioptimasi yang dihasilkan dari manipulasi ekpresi asal. Semantiks ini juga memungkinkan pembandingan rencana – rencana evaluasi query yang berbeda. Aljabar relasional merupakan kunci pemahaman kerja internal DBMS relasional, pemahaman aljabar relasional merupakan hal yang esensi dlam merancang query SQL yang diolah secara efisien. Aljabar relasional banyak digunakan
pada optimasi query dan
pengolahan query tersebar. Aljabar relasional mendefinisikan sekumpulan operator dan rumus untuk memanipulasi himpunan data. 9.1.1. Operasi aljabar relasional Untuk mengimplementasikan kedalam operasi aljabar relasional, berikut ini diberikan relasi – relasi dari database Penjadwalan_mengajar_dosen pada STMIK „Revanda Jaya‟ Bekasi. Relasi – relasi tersebut meliputi: 5. Dosen FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
87 Bahan Kuliah: Sistem Basis Data
Dosen ={nid,nama_d,tempat_lhr,tgl_lahir,jkelamin,alamat,kota,kodepos,gpokok} Primary key relasi Dosen adalah nid, karena tidak ada seorang dosen yang nid (nomor induk dosen) sama dengan dosen yang lainnya. Dengan data value sebagai berikut:
6. Matakuliah Matakuliah ={kdmk,nama_mk,sks,semester} Primary key relasi Matakuliah adalah kdmk, karena tidak ada kode suatu matakuliah yang kdmk (kode matakuliah) sama dengan matakuliah yang lainnya. Dengan data value sebagai berikut:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
88 Bahan Kuliah: Sistem Basis Data
7. Jurusan Jurusan ={kode_jur,nama_jur,sjenjang,nama_kajur} Primary key relasi Jurusan adalah kode_jur, karena tidak ada kode_jur (kode jurusan) yang sama dengan jurusan yang lainnya. Dengan data value sebagai berikut:
8. Mengajar Mengajar ={nid,thn_akademik,smt,hari,jam_ke,kdmk,waktu,kelas,kode_jur} Primary key relasi Matakuliah adalah nid,thn_akademik,smt,hari,jam_ke, kondisi : Bila primary key nid,thn_akademik, maka tidak bisa karena seorang dosen pada tahun akademik yang sama bisa mengajar lebih dari satu matakuliah. Bila primary key nid,thn_akademik,smt, maka tidak bisa karena seorang dosen pada tahun akademik dan semester yang sama bisa mengajar lebih dari satu matakuliah. Bila primary key nid,thn_akademik,smt,hari, maka tidak bisa karena seorang dosen pada tahun akademik, semester dan hari yang sama bisa mengajar lebih dari satu matakuliah. Sehingga
primary
key
pada
relasi
mengajar
adalah
nid,thn_akademik,smt,hari,jam_ke, maka unik dan dijadikan primary key pada relasi tersebut. Dengan data value sebagai berikut:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
89 Bahan Kuliah: Sistem Basis Data
9.1.2. Operasi Selection (
)
Selection / Select ( ), adalah operasi untuk menyeleksi tupel – tupel yang memenuhi suatu predikat, kita dapat menggunakan operator perbandingan (<,>,>=,<=,=,#) pada predikat. Beberapa predikat dapat dikombinasikan menjadi predikat manjemuk menggunakan penghubung AND ( OR (
). Contoh operasi Select: a. Contoh 1 1. Query : Tampilkan daftar dosen yang tempat lahirnya di „Bekasi‟. 2. Aljabar relasional: tempat_lhr=‟Bekasi‟ (Dosen) 3. Hasilnya adalah:
b. Contoh 2 1. Query : Tampilkan daftar dosen yang tempat lahirnya di „Jakarta‟ atau „Bogor‟ 2. Aljabar relasional: tempat_lhr=‟Jakarta‟
tempat_lhr=‟Bogor‟ (Dosen)
3. Hasilnya adalah:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
) dan
90 Bahan Kuliah: Sistem Basis Data
c. Contoh 3 1. Query : Tampilkan daftar dosen yang tempat lahirnya di „Bogor‟ dan jenis kelaminnya „Pria‟ 2. Aljabar relasional: tempat_lhr=‟Bogor‟
jkelamin=‟Pria‟ (Dosen)
3. Hasilnya adalah:
9.1.3. Operasi Projection (
)
Projection / Project (
), adalah operasi untuk memperoleh kolom – kolom tertentu. Operasi
project adalah operasi unary yang mengirim relasi argumen dengan kolom – kolom tertentu. Karena relasi adalah himpunan, maka baris – baris duplikasi dihilangkan. Sintaks yang digunakan dalam operasi proyeksi ini adalah sebagai berikut : colum1,…,column ( tabel) Contoh operasi Project: a. Contoh 1 1. Query : Tampilkan nid,nama_d,alamat,kota dari relasi Dosen 2. Aljabar relasional: nid,nama_d,alamat,kota(Dosen) 3. Hasilnya adalah:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
91 Bahan Kuliah: Sistem Basis Data
b. Contoh 2 1. Query : Tampilkan nid,nama_d,alamat,kota,gajipokok dari relasi Dosen, dimana gaji pokoknya lebih besar dari Rp.1200000 2. Aljabar relasional: nid,nama_d,alamat,kota,gajipokok( gajipokok>1200000 (Dosen)) 3. Hasilnya adalah:
c. Contoh 3 4. Query : Tampilkan nid,nama_d,alamat,kota,gajipokok dari relasi Dosen, dimana kota alamatnya „Cibitung‟ dan gaji pokoknya lebih besar dari Rp.1000000 5. Aljabar relasional: nid,nama_d,alamat,kota,gajipokok( kota=‟Cibitung‟
gajipokok>1000000 (Dosen))
6. Hasilnya adalah:
9.1.4. Operasi Cartesian-product ( X ) Cartesian-product ( X ), adalah operasi untuk menghasilkan table hasil perkalian kartesian. Sintaks yang digunakan dalam operasi proyeksi ini adalah sebagai berikut : FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
92 Bahan Kuliah: Sistem Basis Data
R X S = {(x,y) | x R dan y S} Operasi cartesian-product memungkinkan kita mengkombinasikan informasi beberapa relasi, operasi ini adalah operasi biner. Sebagaimana telah dinyatakan bahwa relasi adalah subset hasil cartesian-product dan himpunan domain relasi – relasi tersebut. Kita harus memilih atribut – atribut untuk relasi yang dihasilkan dari cartesian-product. Contoh operasi Cartesian-product: a. Contoh 1 1. Query : Tampilkan nid,nama_d (dari relasi Dosen), nama_mk (dari relasi Matakuliah), thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasi Mengajar) dimana semester mengajar adalah pada semester „1‟. 2. Aljabar relasional: nid,nama_d,nama_mk, thn_akademik,smt,hari,jam_ke,waktu,kelas ( Dosen.nid=Mengajar.nid
smt=1
Mengjar.kdmk=Matakuliah.kdmk(DosenxMatakuliahxMengajar))
atau: (Mengajar.nid=Dosen.nid nid,nama_d
(Dosen))
Mengajar.kdmk=Matakuliah.kdmk) X
(
nama_mk
(Matakuliah))
smt=1 ((( X
(
thn_akademik,smt,hari,jam_ke,waktu,kelas (Mengajar))))) 3. Hasilnya adalah:
b. Contoh 2 1. Query : Tampilkan nama_d (dari relasi Dosen), nama_mk,sks (dari relasi Matakuliah), hari,jam_ke,waktu (dari relasi Mengajar) dimana sks matakuliah >3 atau hari mengajar = „Jumat‟.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
93 Bahan Kuliah: Sistem Basis Data
2. Aljabar relasional: nama_d,nama_mk,sks,hari,jam_ke,waktu Mengajar.nid=Dosen.nid
(
sks>3
hari=‟Jumat‟
Mengajar.kdmk=Matakuliah.kdmk(MengajarxDosenxMatakuliah))
atau: (Mengajar.nid=Dosen.nid (((
Mengajar.kdmk=Matakuliah.kdmk)
(sks>3
hari=‟Jumat‟
nama_d (Dosen)) X ( nama_mk,sks (Matakuliah)) X ( hari,jam_ke,waktu (Mengajar)))))
3. Hasilnya adalah:
b. Contoh 3 1. Query : Tampilkan kdmk,nama_mk,sks (dari relasi Matakuliah), smt,hari,jam_ke,waktu (dari relasi Mengajar) dimana semester (smt) yang diajar dosen pada semester „1‟ dan jam_ke „1‟ 2. Aljabar relasional: kdmk,nama_mk,sks,smt,hari,jam_ke,waktu
(
smt=1
jam_ke=‟1‟
Mengajar.kdmk=Matakuliah.kdmk(MengajarxMatakuliah)) atau: Mengajar.kdmk=Matakuliah.kdmk (Matakuliah))
X(
smt=1
jam_ke=‟1‟ ((
kdmk,nama_mk,sks
hari,jam_ke,waktu (Mengajar)))
3. Hasilnya adalah:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
94 Bahan Kuliah: Sistem Basis Data
9.1.5. Operasi Union ( Union (
)
), adalah operasi untuk menghasilkan gabungan table degan syarat kedua table
memiliki atribut yangsama, yaitu domain atribut ke-i masing – masing table harus sama. Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut : R
S = {x | x R atau X S}
Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang sama sehingga jumlah komponennya sama. R A D C G
S B A F H
A D H G R A D C G H
B A T H
S adalah: B A F H T
Contoh operasi Union: a. Contoh 1 1. Query : Tampilkan nid (dari relasi Dosen) Union dari nid (dari relasi Mengajar) . 2. Aljabar relasional: nid (Dosen)
nid (Mengajar)
3. Hasilnya adalah:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
95 Bahan Kuliah: Sistem Basis Data
9.1.6. Set-difference ( --- ) Set-difference ( -- ), adalah operasi untuk mendapatkan table pada suatu relasi, tapi tidak ada pada relasi yang lainnya. Sintaks yang digunakan dalam operasi union ini adalah sebagai berikut : R – S = { x | x R dan X
S}
Operasi ini dapat dilaksanakan apabila R dan S mempunyai atribut yang tidak sama yang akan ditampilkan, artinya adalah atribut R yang tidak ada di S akan ditampilkan, sedangkan atribut yang sama tidak ditampilkan. a. Contoh 1 1. Query : Tampilkan nid (dari relasi Dosen) Set-difference dari nid (dari relasi Mengajar). 2. Aljabar relasional: nid (Dosen) -- nid (Mengajar) 3. Hasilnya adalah: 9.1.7. Rename ( ) Rename (
), adalah operasi untuk menyalin table lama kedalam table yang baru. Sintaks
yang digunakan dalam operasi union ini adalah sebagai berikut : [nama_table] (table_lama) a. Contoh 1 1. Query : Salinlah table baru dengan nama DosenNew dari table Dosen, dimana jenis kelaminnya adalah „Pria‟. 2. Aljabar relasional: DosenNew (
jkelamin=‟Pria‟) (Dosen))
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
96 Bahan Kuliah: Sistem Basis Data
3. Hasilnya adalah:
Untuk operasi rename ini hasil dari perintah tersebut adalah membentuk table baru dengan nama DosenNew beserta datanya dimana jenis kelaminnya adalah „Pria‟ 9.1.8. Set-intersection (
)
Set-intersection / Intersection (
) termasuk kedalam operator tambahan, karena operator ini
dapat diderivikasi dari operator dasar seperti berikut: A
B = A - ( A – B ), atau A
B=B-(B–A)
Operasi ini merupakan operasi binary, yang digunakan untuk membentuk sebuah relasi baru dengan tuple yang berasal dari kedua relasi yang dihubungkan, misalkan: R1
R2
X
Y
X
Y
A
C
D
F
B
F
A
C
H
I
R1
R2 adalah:
A
B
A
C
a. Contoh 1 1. Query : Tampilkan nid (dari relasi Dosen) Set-intersection dari nid (dari relasi Mengajar). 2. Aljabar relasional: nid (Dosen)
nid (Mengajar)
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
97 Bahan Kuliah: Sistem Basis Data
3. Hasilnya adalah: 9.1.9. Theta-join (
) / Equi-join (
Theta-join (
)
) dan equi-join adalah operasi untuk menggabungkan operasi selection dan
cartesian-product dengan suatu kriteria a. Contoh 1 1. Query : Tampilkan seluruh data yang ada pada relasi Matakuliah dan relasi Mengajar 2. Aljabar relasional: Matakuliah
Mengajar.kdmk=Matakuliah.kdmk
Mengajar
3. Hasilnya adalah:
9.1.10. Natural-join ( Natural-join (
) ) sama seperti operasi equi-join adalah operasi untuk menggabungkan
operasi selection dan cartesian-product dengan suatu kriteria pada kolom yang sama. a. Contoh 1 1. Query : Tampilkan seluruh data yang ada pada relasi Matakuliah dan relasi Mengajar 2. Aljabar relasional: Matakuliah
Mengajar.kdmk=Matakuliah.kdmk
Mengajar
3. Hasilnya adalah:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
98 Bahan Kuliah: Sistem Basis Data
9.1.11. Outer-join (
)
Outer-join adalah operasi untuk menggabungkan operasi selection dan cartesian-product dengan suatu kriteria pada kolom yang sama. a. Contoh 1 1. Query
:
Tampilkan
nid_nama_d
(dari
relasi
Dosen)
dan
thn_akademik,smt,hari,jam_ke,waktu (dari relasi Mengajar) dengan outer join, artinya adalah pada kolom nid,nama_d pada relasi Dosen akan ditampilkan walaupun dosen tersebut tidak melakukan transaksi mengajar. 2. Aljabar relasional:
nid,nama_d (Dosen)
thn_akademik,smt,hari,jam_ke,waktu (Mengajar)
3. Hasilnya adalah:
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
99 Bahan Kuliah: Sistem Basis Data
9.1.12 Devision ( ) Devision (
) adalah operasi yang banyak digunakan dlam query yang mencakup frase
“setiap” atau “untuk semua”, operasi ini juga merupakan pembagian atas tuple – tuple dari dua relasi. a. Contoh 1 1. Query : Tampilkan nid,hari, waktu (dari relasi Mengajar) dan nid (dari relasi Dosen) dimana dosen yang jenis kelaminnya „Pria‟ dan lakukan devision pada kedua relasi tersebut. 2. Aljabar relasional: nid,hari,waktu (Mengajar)) (
nid ( jkelamin=‟Pria‟ (Dosen)))
4. Hasilnya adalah:
nid,hari,waktu (Mengajar)
nid ( gajipokok>1300000 (Dosen))
Hasil akhir adalah:
9.2. Kalkulus relasional
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
100 Bahan Kuliah: Sistem Basis Data
Pemakai mendiskripsikan informasi yang dikehendaki tanpa memberikan prosedur (deret operasi) spesifik untuk memperoleh informasi. Pada model relasional, bahasa formal non prosedural adalah bahasa kalkulus (predikat( relasional yaitu diekspresikan dengan menspesifikasikan predikat terhadap tuple atau domain yang harus dipenuhi. Kalkulus relasional dibagi menjadi 2 (dua) yaitu: 1. Kalkulus relasional tupel (tuple relational calculus). 2. Kalkulus relasional domain (domain relational calculus). 9.2.1. Kalkulus Relasional Tupel Kalkulus relasional tupel mendiskripsikan informasi tanpa perlu memberikan prosedur / cara spesifik untuk memperoleh informasi tersebut. Konsep dasar kalkulus relasional tupel adalah konsep variable tupel. Variable ini merepresentasikan
tupel – tupel pada relasi dan digunakan untuk
mengekstrak data dari relasi. Komponen - komponen lain rumus kalkulus tupel adalah kualifikasi data dengan membatasi nilai – nilai dari atribut – atribut yang dispesifikasikan. Query pada kalkulus relasional tupel dapat diekspresikan dengan: { t | P(t) } yaitu himpunan semua tupel t sehingga predikat P bernilai True untuk t, notasi t[A] untuk menunjukkan nilai tuple t pada atribut A. dan menggunakan t r untuk menunjukkan nilai tupel t di relasi r. predikat P adalah berupa rumus, beberapa variable tupel dapat muncul di rumus. Variable tupel dikatakan variable bebas kecuali dikuantifikasi
atau .
Maka: r
R
s
S (r[a]=S[a])
t adalah variable bebas, variable tupel s dikatakan sebagai variable terikat. Berikut ini contoh kalkulus relasional tupel yang diterapkan pada SQL: SELECT Dosen.nid,Dosen.nama_d,Dosen.gajipokok FROM Dosen WHERE Dosen.jkelamin=‟Pria‟ AND Dosen.gajipokok>1000000 Pada query diatas sebenarnya menyatakan dua hal yaitu: FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
101 Bahan Kuliah: Sistem Basis Data
1. Kita berkehandak mengekstrak tupel – tupel pada relasi Dosen yang mempunyai atribut jkelamin adalah „Pria‟ dan memiliki atribut gajipokok adalah lebih besar dari 1000000. 2. Dari
tupel – tupel ini, kita berkehendak menampilkan atribut tertentu yaitu
nid,nama_d,gajipokok. Dengan demikian atribut Dosen.nid,Dosen.nama_d,Dosen.gajipokok adalah variable – variable tupel. Bentuk umum dari kalkulus relasional tupel adalah: TupleVariable1 operator [TupleVariable2 | constant] Dimana : TupleVariablen adalah variable tupel dimana i=1 sampai n variable tupel. Operator adalah +,>,<,>=,<=,<> Constant adalah sembarang nilai numerik atau string. Konstrain yag berlaku adalah variable – variable tupel dan konstanta harus mempunyai domain yang sama antara bagian kiri operator dan bagian kanan operator. Rumus dapat dikoneksikan operator boolean AND, OR, dan NOT sehingga bentuk umumnya adalah: TupleVariable1 operator [TupleVariable2 | constant3] AND TupleVariable4 operator [TupleVariable5 | constant6] AND . . OR TupleVariablem operator [TupleVariablen | constantp] Bentukan tersebut digunakan SQL pada klausa SELECT serta WHERE. Dengan demikian dapat disimpulkan bahwa SQL juga dikembangkan berbasis pada kalkulus relasional tupel.
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
102 Bahan Kuliah: Sistem Basis Data
Rumus kalkulus relasional tupel dibangun dari atom – atom, atom mempunyai salah satu bentuk berikut: s
R, dimana s adalah variable tupel dan R adalah relasi, kita tidak mengijinkan
operasi . S[x] u[y], dimana s dan u adalah variable tupel, x adalah atribut yang didefinisikan di s, y adalah atribut didefinisikan di u.
adalah operator perbandingan (<, <=,=, >=, ).
Kita perlu atribut x dan y yang mempunyai domain – domain yang anggotanya dapat dibandingkan dengan . s[x]
c, dimana s adalah variable tupel , x adalah atribut yang didefinisikan di s.
adalah operator pembanding dan c adalah konstanta dari domain atribut x. Rumus dapat dibangun menggunakan aturan – aturan berikut: atom adalah rumus. Jika P1 adalah rumus, maka P1 dan (P1) Jika P1 ddddan P2 adalah rumus, maka P1
P2, P1
P2, dan P1
P2.
Jika P1(x) adalah rumus di x, dimana x adalah vaariable tupel x, maka r
R
s
S (rr[a]=s[a])
Contoh :
Cari semua nid,nama_d,gajipokok dari semua dari semua dosen yang gaji pokoknya > 1000000: { D.nid \ D.nama_d \ D.gajipokok>1000000 } dimana D
Dosen.
Cari semua nid,nama_d dari semua dosen yang mengajar pada ttahun akademik 2004 dan semester 1: { D.nid \ D.nama_d \ M.thn_akademik=2004
semester=1
Mengajar.nid }
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
Dosen.nid =
103 Bahan Kuliah: Sistem Basis Data
9.2.2. Kalkulus Relasional Domain Kalkulus relasional domain menggunakan variable – variable pada nilai - nilai domain atribut, bukan nilai – nilai untuk sebuah tupel. Ekspresi pada kalkulus relasional domain berbentuk: { < X1, X2, …, Xn > | P (X1, X2, …, Xn)} Dimana : X1, X2, …,Xn menyatakan variable – variable domain. P menyatakan rumus – rumus yang disusun dari atom – atom sebagaimana pada kalkulus relasional tupel. Atom pada kalkulus relasional domain adalah salah satu dari: < X1, X2, …, Xn >
r, dimana r adalah relasi dengan n atribut dan X1, X2, …, Xn adalah
variable – variable domain atau konstanta – konstanta domain. x
y, dimana x dan y adalah variable domain,
adalah operasi pembandingan (<, <=,=,
>=, ). Variable x dan y harus merupakan domain – domain yang dapat dibandingkan dengan . x
c, dimana x dalah variable domain.
adalah operator pembandingan (<, <=,=, >=,
) dan c adalah konstanta.
Contoh :
Cari nip,nama_d,gajipokok daridosen, dimana jenis kelaminnya adalah Pria dan gaji pokoknya lebih besar 1200000 { nip |
nam_d |
gajipokok
(Dosen(nid,nama_d,gajipokok) AND jkelamin=‟Pria‟ AND gajipokok > 1200000) }
Berdasarkan acuan model relasional, ada 2 bahasa query komersial yang tersedia,yaitu SQL dan QBE. FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1
104 Bahan Kuliah: Sistem Basis Data
9.2.3. QBE (Query By Example) QBE masing-masing mewakili bahasa query prosedural dan non-prosedural. SQL dibangun dengan basis aljabar relasional yang dijelaskan bab sebelumnya. SQL memberikan bahasa query tingkat tinggi ( a high level query language ) dengan struktur sederhana dengan kosakata dan gramatika yang sederhana pula, seperti berikut : Select
A1, A2, …, An
From
T1, T2 ,…, Tn
Where
P
Dimana : A1,A2,…,An : himpunan dari semua atribut yang hendak ditampilkan. T1,T2,…,Tn : himpunan dari semua tabel yang terlibat (diperlukan) dalam query. P
: predikat / kriteria yg diinginkan tentang informasi yg dicari.
Struktur dasar SQL tersebut equvalen dengan operasi pada aljabar relasional berikut: A1,A2,…An ( P(T1 X …X Tn)) Beberapa operator SQL yang berkorespondensi dengan operator aljabar relasional : Aljabar Relasional
SQL AND OR or
FTI –Teknik Informatika URINDO : Edisi 1 Tahun 2007 –
[email protected] -
Refisi : 1