P. 1
Sistem Basis Data

Sistem Basis Data

|Views: 2,296|Likes:
Published by Anonymous rZZOTAYrV
Sistem Basis Data
Sistem Basis Data

More info:

Published by: Anonymous rZZOTAYrV on Aug 15, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/08/2013

pdf

text

original

Sections

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 – didik@urindo.ac.id Refisi : 1

-

1

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.

Lemari arsip di sebuah ruang

Basis Data di sebuah hardisk

Gambar 1.1. Lemari Arsip dan Basis Data

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

2

Dosen

Matakuliah

Mahasisw
a

Nilai

HARD DISK

(Basia Data
NilaiMahasiswa)

Table
Matakuliah

Table
Mahasiswa

Table
Dosen

Table
Nilai

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.

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
dapat berupa : nim, nama_m, tpt_lhr_m, tgl_lhr_m, alm_m dan dan atribut lainnya yang

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

3

Database

Bahan Kuliah:
Sistem Basis Data

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 lainnya
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

Data value / Isi data :

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

4

Bahan Kuliah:
Sistem Basis 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
dapat melakukan manipulasi data didalam database, hal ini diatur sesuai dengan hak aksesnya
dari masing – masing user tersebut.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

5

Bahan Kuliah:
Sistem Basis Data

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 –
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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

6

Basis Data

Basis
Data X:
Table A
Table B
Table C
Table D
Table E
Dll

Database management
system (DBMS)

PC

PC

PC

Basis
Data Y:
Table J
Table K
Table L
Table M
Table N
Dll

Bahan Kuliah:
Sistem Basis Data

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 objek-
objeknya 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:

1).Programmer

Apl
ika
si

Adalah pemakai yang berinteraksi dengan basis data
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

Adalah pemakai yang berinteraksi dengan sistem tanpa

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

7

Bahan Kuliah:
Sistem Basis Data

(casual user)

menulis modul program. Mereka menyatakan query
(untuk akses data), dengan bahasa query yang telah
disediakan oleh suatu DBMS.

3).User Umum

(E
nd
Us
er)

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 – didik@urindo.ac.id Refisi : 1

-

8

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 – didik@urindo.ac.id Refisi : 1

-

9

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.

Operasi pembuatan basis data dan tabel merupakan operasi awal yang hanya
dilakukan sekali dan berlaku seterusnya. Sedangkan untuk operasi pengisian, perubahan,

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

10

Bahan Kuliah:
Sistem Basis Data

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.

C o n t o h

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.

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

11

Bahan Kuliah:
Sistem Basis Data

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
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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

12

Bahan Kuliah:
Sistem Basis Data

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.
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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

13

Bahan Kuliah:
Sistem Basis 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:

Gambar 2.1. Data value Dosen

2.Matakuliah

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

14

Bahan Kuliah:
Sistem Basis Data

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

Mengajar ={nid,thn_akademik,smt ,hari,jam_ke ,kdmk,waktu,kelas,kode_jur}
Dengan data value sebagai berikut:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

15

Bahan Kuliah:
Sistem Basis Data

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 – didik@urindo.ac.id Refisi : 1

-

16

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.
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 :

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

17

Bahan Kuliah:
Sistem Basis Data

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.

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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

18

Bahan Kuliah:
Sistem Basis Data

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 Bagian Perpustakaan Bagian Akademik

Gambar 2.7. Abstraksi 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 ?

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

19

View 1

View 2

View 3

Level Konseptual

Level Phisik

Bahan Kuliah:
Sistem Basis Data

6.Jelaskan operasi manipulasi apa saja yang dapat dilakukan berkenaan dengan pembentukan
basis data (database) ?.
7.Jelaskan pengertian level konseptual pada abstraksi 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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

20

Bahan Kuliah:
Sistem Basis Data

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)

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)

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

21

Bahan Kuliah:
Sistem Basis Data

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 – didik@urindo.ac.id Refisi : 1

-

22

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
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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

23

Bahan Kuliah:
Sistem Basis Data

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 MS-
SQL 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

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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

24

Bahan Kuliah:
Sistem Basis Data

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),
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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

25

Bahan Kuliah:
Sistem Basis 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.

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

26

Bahan Kuliah:
Sistem Basis Data

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

Adapun untuk struktur untuk table Matakuliah Jurusan dan Mengajar adalah sebagai

berikut:

2.Table matakuliah

3.Tabel jurusan

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

27

Bahan Kuliah:
Sistem Basis Data

4.Tabel mengajar

Untuk kolom Allow Nulls jika tidak ada tanda check list maka kolom (field) tersebut harus isi

datanya dan tidak boleh kosong.

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 – didik@urindo.ac.id Refisi : 1

-

28

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,

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

29

Bahan Kuliah:
Sistem Basis Data

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.

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 :

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

30

Bahan Kuliah:
Sistem Basis Data

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)
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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

31

Bahan Kuliah:
Sistem Basis Data

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.

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).

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

32

Bahan Kuliah:
Sistem Basis Data

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.

Contoh:

Relasi Proyek RelasiPegawai

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

33

No_proyek
Tgl_mulai
Tgl_selesai
Anggaran

NIK
Nama
Alamat

….

Bahan Kuliah:
Sistem Basis Data

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

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 RelasiPegawai

Relasi Proyek_pegawai

Keterangan : FK = Foreign Key (kunci tamu), PK = Primary Key (kunci utama)

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

34

NIK (FK ) / (PK)
No_proyek (FK) / (PK)
Jam Kerja

No_proyek (PK)
Tgl Mulai
Tgl Selesai
Anggaran

NIK (PK)
Nama
Alamat
….

NIK (FK) / (PK)
No Proyek (FK) / (PK)
Jam Kerja

Bahan Kuliah:
Sistem Basis Data

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:

Contoh Atribut Komposit:

Gambar 4.4. Atribut sederhana dan komposit

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

35

Bahan Kuliah:
Sistem Basis Data

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.

Atribut bernilai Tunggal Atribut bernilai Banyak (hobi)

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

36

Bahan Kuliah:
Sistem Basis Data

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
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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

37

Bahan Kuliah:
Sistem Basis Data

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 ?.
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 dari database
Penjadwalan_mengajar_dosen ?.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

38

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
(misal 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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

39

Bahan Kuliah:
Sistem Basis Data

1.

Anomali Peremajaan (Update)

2.

Anomalsi Penghapusan (Delete), dan

3.

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
beberapa matakuliah untuk semester dan tahun akademik tertentu. Masalahnya, bagaimanakah
menyimpan fakta bahwa ada suatu matakuliah baru yang tidak diambil oelh mahasiswa ?. Penyisipan
tidak bisa dilakukan karena tidak ada informasi mahasiswa yang mengambil matakuliah tersebut.
c. Anomali Penghapusan (Delete).

Anomali peremajaan terjadi apabila suatu baris (record) yang tidak terpakai dihapus,
dan sebagai akibatya ada data lainnya yang hilang.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

40

Bahan Kuliah:
Sistem Basis Data

Pada contoh relasi HRS tersebut terjadi anomali penghapusan, apabila data pada record
pertama 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

sebagai baerikut :

A B
Pengertian dari notasi tersebut adalah : A secara fungsional menentukan B, atau B secara

fungsional 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

Nim

Nama_mhs

Indeks_nilai

Algorithma

980001

Ali akbar

A

Alghorithma

980004

Indah S

B

Basis data

980001

Ali akbar

Basis data

980002

Budi H

Basis data

980004

Indah S

Pengembangan Diri

980001

Ali Akbar

B

Bahasa Inggris I

980002

Budi H

C

Gambar 5.2. Ketergantungan fungsional

Dari data diatas, Ketergantungan Fungsional yang dapat diajukan adalah :

1.Nim nama_mhs, Artinya adalah atribut Nama_mhs hanya tergantung pada atribut Nim.
Faktanya adalah setiap nilai nim yang sama, maka pasti nama_mhs – nya juga sama.

2.Nama_kul, Nim Indeks_nilai, Artinya adalah atribut Indeks_nilai tergantung pada atribut
Nama_kul dan Nim secara bersama – sama. KF mempunyai pengertian bahwa setiap indeks nilai
diperuntukkan pada mahasiswa tertentu untuk matakuliah tertentu yang diambilnya.

Contoh Non KF :

1.Nama_kul Nim, artinya adalah atribut Nim tidak tergantung pada Nama_kul. Buktinya bahwa
pada Row 1 dan row 2, dengan nilai Mata_kul sama tetapi nilai Nim – nya tidak sama.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

41

Row 1
Row 2
Row 3
Row 4
Row 5
Row 6
Row 7

RRRRR

Bahan Kuliah:
Sistem Basis Data

2.Nim Indeks_nilai, artinya adalah bahwa atribut Indeks_nilai tidak hanya tergantung pada
atribut Nim. Buktinya terlihat pada row 1 dan 6, dengan nilai Nim sama, tapi nilai Indeks_nilai –
nya berbeda.

5.3. Domain Atribut

Domain Atribut adalah merupakan suatu gugus nilai yang mungkin dimiliki oleh suatu atribut
pada suatu table / relasi dalam database. Berikut ini adalah contoh relasi rekening pada suatu
database perbankan.

No_Rekening

Status

Saldo

1

012.145.002

Checking

8.000.000,00

2

012.146.013

Saving

3.000.000,00

3

012.146.890

Saving

4.000.000,00

4

210.234.956

Checking

5.000.000,00

5

345.120.034

Checking

4.500.000,00

6

123.000.021

Saving

4.800.000,00

Gambar 5.3. Domain atribut

Pada relasi rekening diatas mempunyai pengertian sebagai berikut yang berhubungan dengan

domain :

Domain dari atribut Status adalah { Saving, Checking }, yang mempunyai arti adalah
nilai yang mungkin diberikan pada atribut status adalah hanya Saving dan Checking
Domain dari atribut Saldo, adalah semua bilangan nyata yang positif, domain atribut ini
merupakan gugus tak hingga.
Domain atribut No_Rekening adalah semua kode rekening yang meungkin dikeluarkan
oleh Bank tersebut.

5.4. Integritas Data

Informasi 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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

42

44444

Bahan Kuliah:
Sistem Basis Data

disimpan oleh DBMS. Konstrain integritas menjamin bahwa perubahan – perubahan yang dilakukan
orang yang diotorisasi tidak menghasilkan pelanggarakan konsistensi data.
Integritas data mengacu ke konsistensi dan akurasi data yang disimpan dalam basisdata.
Konstrain integritas dispesifikasikan dan dipaksakan pada waktu yang berbeda, yaitu:
1.Ketika DBA mendefinisikan skema basisdata (lewat DDL), DBA menspesifikasikan konstrain
integritas yang harus selalu dipenuhi basisdata.
2.Ketika aplikasi basisdata dijalankan, DBMS melakukan Pemeriksaan untuk mencegah
terjadinya pelanggaran dan mencegah perubahan – perubahan yang melanggar konstrain
integritas. Pada beberapa situasi, DBMS tidak melarang suatu aksi yang dapat menimbulkan
pelanggaran namun kemudian DBMS membuast tindakan – tindakan otomatis untuk
memenuhi konstrain integritas. Dengan demikian dijamin perubahan – perubahan pada
basisdata tidak menghasilkan baisdata yang melanggar konstrain integritas.

5.4.1. Jenis konstrain integritas

Integritas dapat dikelompokkan menjadi 2 (dua), yaitu integritas didalam relasi yaitu aturan
integritas 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
perusahaan yang disebut aturan integritas perusahaan atau aturan bisnis yang harus dipenuhi oleh
basisdata. Dengan demikian, dapat diringkaskan integritas data di model relasional, meliputi:
1.Aturan integritas domain.
2.Aturan integritas entitas.
3.Aturan integritas referensial.
4.Aturan integritas perusahaan (didefiniskan pemakai).
Hubungan antara domain, entitas dan referensial integritas dapat dilihat pada gambar berikut

ini:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

43

44444

Domain Integrity (column)

Entity Integrity (rows)

Referensial Integrity
(between tables

Bahan Kuliah:
Sistem Basis Data

Gambar 5.4. Hubungan antar konstrain integritas

a.Integritas domain
Domain adalah nilai – nilai yang dimungkinkin diasosiasikan dengan setiap atribut.
Kemungkinan 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
ke basisdata tapi juga memungkinkan kita melakukan pemeriksaan query untuk menjamin
perbandingan yang dibuat mempunyai arti.
b.Integritas entitas
Null merepresentasikan suatu nilai untuk atribut dimana pada saat itu nilainya belum
diketahui atau tidak diterapkan untuk tupel itu. Null adalah cara menanggapi ketidaklengkapan atau
kondisi kekecualian yang terjadi pada data. Null tidak sama dengan nilai 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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

44

Bahan Kuliah:
Sistem Basis Data

Create Table Dosen
(

nid char(10) Primary Key,
nama_d varchar(50) Not Null,
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.

c.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,

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

45

Bahan Kuliah:
Sistem Basis Data

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),
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)
)

d.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 – didik@urindo.ac.id Refisi : 1

-

46

Bahan Kuliah:
Sistem Basis Data

BAB 6
BENTUK – BENTUK NORMALISASI

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

47

Bahan Kuliah:
Sistem Basis Data

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.

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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

48

Tabel dengan atribut
bernilai jamak

Tabel bentuk
normal pertama

Tabel bentuk
normal kedua

Tabel bentuk
normal ketiga

Tabel bentuk
Normal boyce-codd

Tabel bentuk
Normal keempat

Tabel bentuk
Normal kelima

Menghilangkan
atribut bernilai jamak

Menghilangkan
ketergantungan
parsial

Menghilangkan
ketergantungan
transitif

Menghilangkan anomali
tersisa disebabkan
ketergantungan fungsional

Menghilangkan
ketergantungan nilai
jamak

Menghilangkan
anomali tersisa

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

Keahlian

Lama
(tahun)

107

Daffa

Analis Senior

Access
Oracle

6
1

109

Revan

Analis Yunior

Access
Clipper

2
2

112

Dilla

Pogrammer

Access
Clipper
Visual Basic

1
1
1

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

49

Bahan Kuliah:
Sistem Basis Data

Gambar 6.2. Relasi Pegawai

Keahlian menyatakan atribut yang berulang (misal, fika punya tiga keahlian, dan
Rian punya 2 keahlian).

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_mk1Kode_mk2Kode_mk3

9820001

Nia Dela

Didik

1234

1435

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

50

Bahan Kuliah:
Sistem Basis Data

9810004

Andik P

Primadina

1234

1435

1245

9810006

Rini

Tukino

1324

1545

1245

9820008

Basuki

Djuwadi

1324

1545

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_mkMatakuliah

SksPengasuh

1234

Sistem Basis Data

2

Didik Setiyadi,M.Kom.

1435

Alghoritma

4

Tukino,S.Kom,MM.Si

1545

Jaringan Komputer

2

Djuwadi,M.Kom.

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

51

Bahan Kuliah:
Sistem Basis Data

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

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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

52

Bahan Kuliah:
Sistem Basis Data

6.1.3.

Gambar 6.8. Relasi ambil_kuliah memenuhi 2NF

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

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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

53

Bahan Kuliah:
Sistem Basis Data

No Pesanan

No Urut

Kode Item

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

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

54

Bahan Kuliah:
Sistem Basis Data

Setiap seminar membutuhkan 2 instruktur.
Setiap siswa dibimbing oleh salah satu dari 2 instruktur seminar.
Setiap instruktur boleh hanya mengambil satu seminar saja.

Pada contoh ini, no_siswa dan seminar menunjukkan seorang instruktur.

No_siswa

Seminar

Instruktur

2201001
2201002
2201003
2201002
2201004

2281
2281
2291
2291
2291

Budi
Kardi
Joni
Rahmad
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
Kardi
Joni
Rahmad

2281
2281
2291
2291

Gambar 6.13. Relasi pengajar

No_siswa

Instruktur

2201001
2201002
2201003

Budi
Kardi
Joni

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

55

Bahan Kuliah:
Sistem Basis Data

2201002
2201004

Rahmad
Rahmad

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

Dosen

Isi

Pengenalan KomputerBudi

Sanjaya

Dasar Komputer
Pengenalan pengolahan kata
Pengenalan lembaran kerja

Matematika

Sugeng Paijo

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 KomputerBudi

Dasar Komputer

Pengenalan KomputerBudi

Pengenalan pengolahan kata

Pengenalan KomputerBudi

Pengenalan lembaran kerja

Pengenalan KomputerSanjaya

Dasar Komputer

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

56

Bahan Kuliah:
Sistem Basis Data

Pengenalan KomputerSanjaya

Pengenalan pengolahan kata

Pengenalan KomputerSanjaya

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

Pengenalan KomputerBudi
Pengenalan KomputerSanjaya

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

57

Bahan Kuliah:
Sistem Basis Data

Matematika

Sugeng Paijo

Matakuliah

Isi
Pengenalan KomputerDasar Komputer
Pengenalan KomputerPengenalan pengolahan kata
Pengenalan KomputerPengenalan 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 :
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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

58

Bahan Kuliah:
Sistem Basis Data

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

Distributor

Sumber Jaya

Nissan

Sumber Jaya

Toyota

Asterindo

Nissan

Distributor

Kendaraan

Nissan

Truk Nissan

Nissan

Sedan Nissan

Toyota

Toyota Kijang

Toyota

Truk Dyna

Dealer

Distributor

Kendaraan

Sumber Jaya

Nissan

Truk Nissan

Sumber Jaya

Nissan

Sedan Nissan

Sumber Jaya

Toyota

Toyota Kijang

Sumber Jaya

Toyota

Truk Dyna

Asterindo

Nissan

Truk Nissan

Asterindo

Nissan

Sedan Nissan

Dealer

Kendaraan

Sumber Jaya

Truk Nissan

Sumber Jaya

Sedan Nissan

Sumber Jaya

Toyota Kijang

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

59

Bahan Kuliah:
Sistem Basis Data

Sumber Jaya

Truk Dyna

Asterindo

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

Ruang

Tempat

Waktu

Jaringan Komputer

Merapi

Gedung Utara

Senin, 08.00 – 09.50

Basis Data

Rama

Gedung Selatan

Selasa, 07.00 – 08.45

Sistem Pakar

Sinta

Gedung Selatan

Rabu, 10.00 – 11.45

Sistem Operasi

Merapi

Gedung Utara

Selasa, 08.00 – 08.50

Gambar 6.15. Relasi kuliah

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

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) ?.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

60

Bahan Kuliah:
Sistem Basis Data

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

PT REVANDA JAYA
Jl. Bekasi Timur No. 2
Bekasi Timur

Kode Supplier : G01

Tanggal : 07/02/2001

Nama Supplier : Gobel Nustra

Nomor : 998

Kode

Nama Barang

Qty

Harga

Jumlah

A01

AC Split ½ PK

10

1.350.000

13.500.000

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

61

Bahan Kuliah:
Sistem Basis Data

A02

AC Split 1 PK

10

2.000.000

20.000.000

Total Faktur

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

Tanggal : 02/02/2001

Nama Supplier : Hitachi

Nomor : 779

Kode

Nama Barang

Qty

Harga

Jumlah

R01

Rice Chocker C3

10

150.000

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 :

No
Fac

Kode
Supp

Nama
Supp

Kode
Brg

Nama Barang

Tanggal

Jatuh
Tempo

Qt
y

Harga

Jumlah

Total

779
998

S02
G01

Hitachi
Gobel
Nustra

R02
A01
A02

Rice Chocker C3
AC Split ½ PK
AC Split 1 PK

02/02/01
07/02/01

09/03/01
09/03.01

10
10
10

150000
135000
2000000

1500000
13500000
20000000

1500000
33500000

Gambar 7.2. Relasi faktur unnormalisasi
Pada relasi diatas adalah dengan menuliskan semua data yang ada yang akan direkam,

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

62

Bahan Kuliah:
Sistem Basis Data

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 atribut-
atribut 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
Fac

Kode
Supp

Nama Supp

Kode
Brg

Nama Barang

Tanggal

Jatuh
Tempo

Qty

Harga

Jumlah

Total

779
998
998

S02
G01
G01

Hitachi
Gobel Nustra
Gobel Nustra

R02
A01
A02

Rice Chocker C3
AC Split ½ PK
AC Split 1 PK

02/02/01
07/02/01
07/02/01

09/03/01
09/03/01
09/03/01

10
10
10

150000
135000
2000000

1500000
13500000
20000000

1500000
33500000
33500000

Gambar 7.3. Relasi memenuhi 1 NF

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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

63

Bahan Kuliah:
Sistem Basis Data

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

Kode_Supplier

Nama _Supplier

S02
G01
G01

Hitachi
Gobel Nustra
Gobel Nustra

Relasi Barang

Kode_Barang

Nama_Barang

Harga

R02
A01
A02

Rice Chocker C3
AC Split ½ PK
AC Split 1 PK

150000
135000
2000000

Relasi Faktur

No_Faktur(Kode_Barang)(Kode _Supplier)

Tanggal

Jatuh_tempo

Qty

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

64

Bahan Kuliah:
Sistem Basis Data

779
998
998

R02
A01
A02

S02
G01
G01

02/02/01
07/02/01
07/02/01

09/03/01
09/03/01
09/03/01

10
10
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
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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

65

Bahan Kuliah:
Sistem Basis Data

Relasi Supplier

Relasi Barang

Kode_SupplierNama Supplier

Kode_Barang

Nama_Barang

Harga

G01

S02

Gobel Nustra
Hitachi

R01
A01
A02

Rice Cooker CC3
AC Split ½ PK
AC Split 1 PK

150.000
1.350.000
2.000.000

Relasi Faktur
No_FakturTanggal

Jatuh_Tempo

Kode_Supplier

779
998

02/02/2001
07/02/2001

09/03/2001
09/03/2001

S02
G01

Relasi Transaksi_Barang
No_Faktur

Kode_Barang

Qty

779
998
998

R01
A01
A02

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 }

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

66

Bahan Kuliah:
Sistem Basis Data

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 :

Keterangan : * = Primary Key, ** =Foreign Key

Gambar 7.6. ERD (Entity Relationship Diagram)

Pengertian Hubungan (Relation) antar pada gambar ERD (entity relationship diagram)

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

67

* No_faktur
Tanggal
Jatuh_tempo
** Kode_supplier

Barang

* Kode_barang
Nama_barang
Harga

Supplier

* Kode_supplier
nama_supplier

Memilik
i

Faktur

1

N

Terdiri
Dari

1

Transaksi
Barang

N

Digunaka
n

1

N

* No_faktur **
* Kode_barang **
Qty

Bahan Kuliah:
Sistem Basis Data

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 – didik@urindo.ac.id Refisi : 1

-

68

Bahan Kuliah:
Sistem Basis Data

Gambar 7.7. ERD dengan database MS-Access 2000

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 ?.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

69

Bahan Kuliah:
Sistem Basis Data

BAB 8
MODEL DATA DAN ENTITY-RELATIONSHIP MODEL

8.1. Model 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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

70

Bahan Kuliah:
Sistem Basis Data

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.
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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

71

Bahan Kuliah:
Sistem Basis Data

Name

Street

City

Number

Lowery

Maple

Queens

900

Shiver

Nort

Bronx

556

Shiver

Nort

Bronx

647

Hodges

Sidehill

Brooklyn

801

Hodges

Sidehill

Brooklyn

647

Account
Number

Balance

900

55

556

100000

647

1005366

801

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:

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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

72

90055

556100000

647105366

80110533

B5…London

B3…Glasgow

B4…Bristol

SL41Julie…Assistant9000

SL41Julie…Assistant9000

SL41Julie…Assistant9000

SL41Julie…Assistant9000

Bahan Kuliah:
Sistem Basis Data

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.
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,

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

73

Bahan Kuliah:
Sistem Basis Data

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.

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

74

Bahan Kuliah:
Sistem Basis Data

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

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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

75

Bahan Kuliah:
Sistem Basis Data

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.

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.

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

76

Pasien

Memak
ai

Obat

Pasien

Syarat

Pasien

Dilakuk
an

Tindakan

Dokter

Bahan Kuliah:
Sistem Basis Data

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 )
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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

77

Kustomer

R1

Rekening

1

1

Bahan Kuliah:
Sistem Basis Data

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.

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.

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

78

Kustomer

R1

Rekening

m

1

Kustomer

R1

Bank

n

m

Bahan Kuliah:
Sistem Basis Data

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

Simbol

Nama Simbul

1.

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

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 ) :

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

79

Bahan Kuliah:
Sistem Basis Data

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

80

Mahasiswa

Mempelajar
i

m

alama
t

nim

nama

telp

Tglhi
r

Nim

Kode

nilai

Matakuliah

Namamk

Kode

smeste
r

sks

n

Mengajar

m

Kode

NID

hari

Dosen

Namads

NID

telpon

alamat
d

1

waktu

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 :

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 }

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

81

Mahasiswa

Mempelaja
ri

Matakuliah

n

m

Mengajar

Dosen

1

m

Bahan Kuliah:
Sistem Basis Data

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 – didik@urindo.ac.id Refisi : 1

-

82

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
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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

83

Bahan Kuliah:
Sistem Basis Data

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
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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

84

Bahan Kuliah:
Sistem Basis Data

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

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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

85

Bahan Kuliah:
Sistem Basis Data

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:

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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

86

Bahan Kuliah:
Sistem Basis Data

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:

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 ( ∧ ) dan
OR ( ∨ ).

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

87

Bahan Kuliah:
Sistem Basis Data

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:

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)

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

88

Bahan Kuliah:
Sistem Basis Data

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:

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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

89

Bahan Kuliah:
Sistem Basis Data

π 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 :

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

90

Bahan Kuliah:
Sistem Basis Data

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 ( σ smt=1 ∧

Dosen.nid=Mengajar.nid ∧ Mengjar.kdmk=Matakuliah.kdmk(DosenxMatakuliahxMengajar)
)

atau:
σ (Mengajar.nid=Dosen.nid ∧ Mengajar.kdmk=Matakuliah.kdmk) ∧ smt=1 ((( π

nid,nama_d

(Dosen)

) X (π

nama_mk

(Matakuliah)

) 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’.
2.Aljabar relasional:

π nama_d,nama_mk,sks,hari,jam_ke,waktu ( σ sks>3 ∨ hari=’Jumat’ ∧

Mengajar.nid=Dosen.nid ∧ Mengajar.kdmk=Matakuliah.kdmk(MengajarxDosenxMatakuliah)
)

atau:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

91

Bahan Kuliah:
Sistem Basis Data

σ (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 ∧ smt=1 ∧ jam_ke=’1’ (( π kdmk,nama_mk,sks

(Matakuliah)

) X ( π hari,jam_ke,waktu (Mengajar)

))

3.Hasilnya adalah:

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 :

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

92

Bahan Kuliah:
Sistem Basis Data

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

S

A

B

A

B

D

A

D

A

C

F

H

T

G

H

G

H

R ∪ S adalah:

A

B

D

A

C

F

G

H

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:

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 :

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

93

Bahan Kuliah:
Sistem Basis Data

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)
)

3.Hasilnya adalah:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

94

Bahan Kuliah:
Sistem Basis Data

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)

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

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

95

Bahan Kuliah:
Sistem Basis Data

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 – didik@urindo.ac.id Refisi : 1

-

96

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:

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.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

97

Bahan Kuliah:
Sistem Basis Data

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

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:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

98

Bahan Kuliah:
Sistem Basis Data

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:

1.

Kita berkehandak mengekstrak tupel – tupel pada relasi Dosen yang
mempunyai atribut jkelamin adalah ‘Pria’ dan memiliki atribut gajipokok adalah lebih besar
dari 1000000.

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

99

Bahan Kuliah:
Sistem Basis Data

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.
Rumus kalkulus relasional tupel dibangun dari atom – atom, atom mempunyai salah satu

bentuk berikut:

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

100

Bahan Kuliah:
Sistem Basis Data

•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 ∧ Dosen.nid =
Mengajar.nid }

9.2.2. Kalkulus Relasional Domain

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

101

Bahan Kuliah:
Sistem Basis Data

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.
9.2.3. QBE (Query By Example)

FTI –Teknik Informatika URINDO :
Edisi 1 Tahun 2007 – didik@urindo.ac.id Refisi : 1

-

102

Bahan Kuliah:
Sistem Basis Data

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 – didik@urindo.ac.id Refisi : 1

-

103

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

BAB 10
SQL (Structured Query Language)

RDBMS adalah proram komputer yang dirancangan untuk pengelolaan data dengan
melakukan penyimpanan, pembaruan dan pengambilan data. SQL adalah bahasa khusus yang
digunakan untuk mengakses dan mengelola RDBMS. Bahasa SQL telah distandarkan, namun
demikian telah berkembang banyak varian dan bentuk sesuai dengan kebutuhan vendor RDBMS.
SQL adalah bahasa yang mulanya berorientasi pada basia data relasional. Bahasa ini
menghilangkan banyak pekerjaan yang perlu dilakukan pemrogram / pengembang berkaitan dengan
operasi – operasi terhadap data bgila dibanding denan menggunakan bahasa general purpose. SQL
adalah bahasa yang menggabungkan fitur – fitur bahasa query formal aljabar relasional dan bahasa
query formal kalkulus relasional. Meski SQL diacu sebagai bahasa query (yaitu bahasa untuk meminta
data) namun sesungguhnya SQL bukan hanya sekedar bahasa query terhadap basis data. SQL juga
berisi fasilitas untuk mendifinisikan struktur data, modifikasi struktur data, serta digunakan
menspesifikasikan constraint – constraint integritas dan keamanan data.

10.1. Sejarah SQL

SQL diawali publikasi makalah E.F. Codd (1970) mengenai model relasional :”A Relational
Model of Data for Large Shared Data Banks”. Pada tahun 1974, D.Chamberlin an R.F. Boyce
mengembangkan bahasa query untuk memanipulasi dan mengekstrak data dari basis data relasional,
dan definisi dengan “Structured English Query Language” yang disingkat sebagai SEQUEL, yang
dikemukakan dalam makalah berjudul “SEQUEL = A Structured English Query Language”. Kemudian
SEQUEL berevolusi menjadi versi revisi yaitu SEQUEL/2 pada tahun 1976. Orang mengejanya
dengan SQL dan menyebutkan dengan “si-quel” meski ejaan resminya adalah “s-q-l”.
Bahasa SQL mempunyai beberapa bagian yaitu:

1.Bahasa pendifinisian data (DDL-Data Definition Language) untuk pendifinisian skema
relasi, penghapusan relasi dan memodifikasi skema relasi.

2.Bahasa manipulasi data interaktif (DML-Data Manipulation Language), berisi bahasa
query berbasis aljabar relasional dan kalkulus relasional tupel, memasukkan tupel,
menghapus tupel dan melakukan modifikasi tupel.

3.Pendifinisian View untuk mendifiniskan View.
4.Kendali transaksi untuk menspesifikasikan permulaan dan akhir transaksi.

5.Embedded SQL dan dynamic SQL yang mendifiniskan cara kalimat SQL ditempelkan
dibahasa pemrograman umum seperti C, C++, Java, PL/1, Cobol, Pascal dan Fortran.

Sistem Basis Data – didiksetiyadi@yahoo.com

96

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

6.Integritas, bagian dari DDL untuk menspesifikasikan konstrain – konstrain integritas
dimana data disimpan yang harus dipenuhi basis data. Pembaruan yang melanggar
konstrain – kontrain integritas ditolak.
7.Otoriasi, bagian DDL uang menspesifikasikan hak – hak akses terhadap relasi dan
view.

Bahasa basis data harus memungkinkan pemakai melakukan hal – hal sebagai berikut:
1.mencipakan baisis data dan struktur – struktur relasi.

2.Melakukan manajemen data tingkat dasar seperti penyisipan (insertion), modifikasi
(modification) struktur dan data, serta penghapusan (deletion).

3.Membentuk query sederhana dan kompleks yang mentransformasi data di basis data
menjadi informasi.
4.melakukan tugas – tugas dengan seminimal mungkin memakai struktur dan sintaks
perintah relatif mudah dipelajari.
5.harus portabel, yaitu memenuhi suatu standard sehingga dapat menggunakan
struktur dan sintaks perintah beragamam DBMS lain.

10.2. Subdivisi SQL

SQL (Structured Query Language) dapat dikelompokkan menjadi 3 (tiga), yaitu DDL (Data
Definition Language), DML (Data Manipulation Language) dan DCL (Data Control Language).
a.DDL (Data Definition Language)
DDL disebut sebagai bahasa untuk pendefinisian skema (Schema Definition
Language) yag berisi perintah – perintah untuk menciptakan objek – objek basis data (table,
indeks, view dan lainnya).
b. DML (Data Manipulation Language)
DML adalah sekelompok perintah yang menentukan dan melakukan manipulasi nilai –
nilai didalam suatu table pada suatu waktu yang diinginkan.
c. DCL (Data Control Language)

DCL berisi fitur – fitur yang menentukan aksi yang dapat dilakukan pemakai terhadap
objek basis data seperti basisdata, tale, view dan lainnya. Pada ISO, DCL termasuk sebagai
bagian dari DDL, selain itu dapat ditambahkan bagian berikut:

•View definiton, SQL DDL untuk perintah mendifinisikan View.

•Transaction control, untuk menspesifikasikan awal an akhir transaksi dan

melakukan pengendalian transaksi.

Sistem Basis Data – didiksetiyadi@yahoo.com

97

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

•Embedded SQL dan dynamic SQL, mendifiniskan cara kalimat SQL dapat

ditempelkan dibahasa pemrograman umum seperti C, C++, Java, PL/1, Cobol,
Pascal, Fortran dan sebagainya.

•Integrity, perintah untuk menspesifikasikan konstrain – konstrain integritas

dimana data disimpan di basisdata yang harus dipenuhi DBMS. Pembaruan yang
melanggar konstrain – kontrain integritas ditolak.

10.3. SQL – DDL

DDL (Data Definition Language) memungkinkan kita membuat dan menghancurkan objek –
objek basis data (database/schema, domain, table, view, dan index). DBMS akan menggunakan
informasi deskripsi struktur basis data saat menterjemahkan kalimat DML menjadi perintah – perintah
ke manajer basis data. Informasi ini diperoleh dari data dictionary / directory. Setiap kalimat terdapat
kalimat DDL yang baru maka terdapat perubahan pada data dictionary / directory. System catalog
akan secara otomatis dibuat pada saat pembuatan basis data, serta kemudian diperbaharui begitu
terdapat eksekusi kalimat DDL.

DDL berbeda untuk dialek – dialek SQL yang berbeda, dibawah ini kita akan menggunakan
ISO SQL sebagai acuan. Kalimat DDL mendefiniskan struktur data dengan menciptakan dan
mengelola basis data dan objek – objek basis data seperti table dan store procedure. Kebanyakan
kalimat DDL mempunyai bentuk sebagai berikut

CREATE object_name

ALTER object_name

DROP object_name
Secara default, hanya anggota administrator yang dapat mengeksekusi kalimat DDL. Jika
pemakai – pemakai berbeda menciptakan objek-objeknya sendirin di basidata maka masing – masing
pemilik objek perlu memberikan wewenang yang cocok untuk masing – masing pemakai objek.
Keperluan pemberian wewenang ini menyebabkan halangan administratif sehingga kita seharusnya
menghindari pemakai – pemakai berbeda menciptakan objeknya sendiri.

10.3.1Identifier SQL

Identifier SQL digunakan untuk mengidentifikasi objek – objek di basis data seperti nama
table, view dan kolom. Karakter – karakter yang dapat digunakan harus terdapat pada himpunan
karakter (character set). Standard ISO menyediakan himpunan karakter default terdiri – dari karakter

Sistem Basis Data – didiksetiyadi@yahoo.com

98

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

huruf kapital (A .. Z), huruf kecil (a .. z) dan karakter garis bawah (_). Berikut ini adalah batasan –
bataan penamaan untuk identifier SQL, yaitu:

Identifier tidak boleh lebih panjang dari 148 karakter (kebanykaan dialek lebih

pendek).

Identifier harus dimulai dengan huruf.

Identifier tidak boleh berisi spasi.

10.3.2. Tipe data ISO SQL

Pada saat menciptkan tabel, kita harus mendifiniskan tipe data dari msing – masing kolom
(field) pada tabel tersebut. Tipe data menspesfikasikan tipe informasi (karakter, angka atau tanggal)
yang dapat ditangani kolom termasuk cara data tersebut disimpan.
a.

ISO SQL
Ada 6 (enam) tipe data dalam standard ISO, yaitu:

No

Tipe Data

Deklarasi

1.

Karakter

CHAR

VARCHAR

2.

Bit

BIT

BIT
VARYING

3.

Numerik eksak

NUMERICDECIMAL

INTEGER
SMALLINT

4.

Numerik riil

FLOAT

REAL

DOUBLE PRICISION

5.

Waktu tanggal

DATE

TIME

6.

interval

INTERVAL

Tabel 10.1. Tipe data ISO

b.

MS SQL Server
MS SQL Server mendukung beragam tipe – tipe data sistem. SQL Server juga
memungkinkan tipe data yang didefinisikan pemakai yang dibangun berdasarkan tipe – tipe
data yang disediakan sistem.

Pada persoalan DDL ini, meskipun hampir seluruh RDBMS mengaku memenuhi
standard misalnya ANSI SQL, maka perluasan yang dilakukan dari masing – masing RDBMS
itu menjadikan RDBMS – RDBMS tersebut menjadi tidak kompatible satu dengan lainnya.
Saran praktis alam melakukan pendefinisian basis data adalah sebaiknya kita
melakukan seluruh proses ini menggunakan tools otomatis seperti ER-WIN atau Power
Designer dari Powersoft Inc. dan sebagainya. Dengan menggunakan tools yang netral
terhadap vendor ini, kita dapat membangkitkan beraneka ragam sql script yang dapat

Sistem Basis Data – didiksetiyadi@yahoo.com

99

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

dieksekusi pada beraneka ragam RDBMS dengan hanya mendefinisikan taarget RDBMS
yang dikehendaki.

b.1. Didefiniskan Sistem

Pada MS SQL Server menyediakan berbagai tipe data yang berbeda, tipe – tipe data
tertentu mempunyai beberapa tipe dengan asosiasinya denan tipe – tipe data yang diberikan
SQL Server. Contohnya kita dapat menggunakan tipe data int, decimal atau float untuk
menyiman data numeric.

Tabel berikut memetakan tipe data yang umum ke tipe data yang didukung SQL
Server, tabel juga berisi sinonim tipe data untuk kompatibilitas ANSI.

Tipe data

Tipe data disediakan
sistem

Sinonim dengan ANSI

Jumlah byte

Binary

Binary[(n])
Varbinary[(n])

-
binary varying[(n])

1-8000

Character

Char[(n)]
Varchar[[n)]

Character[(n)]
char[acter]varying[(n)]

1-8000
(8000 characters)

Unicode
character

Nchar[(n)]
Nvarchar[(n)]

National char[acter][(n)]
National char[acter]varying[(n)]2-8000

(1-4000 characters)

Date and time

Datetime,
smalldatetime

-

8 (24 byte integers)
4 (22 byte integers)

Exact numeric

Decimal[(p[,s])]
numeric[(p[,s])]

dec

5-17

Approximate
numeric

Float[(n)]
Real

Double precision or
Float[(n)]

4-8
4

Global identifierUniqueidentifier

-

16

Integer

Int
smallint, tinyint

Integer
-

4
2,1

Monetary

Money, smallmoney

-

8,4

Special

Bit, cursor,sysname,
timestamp

-

1, 0-8

Text and imageText, image

-

0-2 GB

Unicode text

Ntext

National text

0-2 GB

Tabel 10.2. Tipe data SQL Server

b.2. Didefiniskan Pemakai

Tipe data yang didefiniskan pemakai (user-defined data type) berdasarkan tipe data
yang disediakan sistem. Kita dimungkinkan mendefiniskan sendiri tipe data untuk menjamin
konsistensi saat bekerja pada table – tabel atau basisdata – basisdata berbeda. Tipe data
didefinisikan pemakai tidak mengijikan pendifinisian struktur atau tipe data kompleks.
SQL server menyediakan stored procedure sebagai berikut:
1.sp_addtype, untuk menciptakan tipe data yag didefinisikan pemakai.
2.sp_droptype, untuk menghapus tipe data yag didefinisikan pemakai.
b.2.1. Penciptaan tipe data

Sistem Basis Data – didiksetiyadi@yahoo.com

100

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

Sintaksnya adalah:

Sp_addtype type, system_data_type [,’NULL,I,NOT NULL’]

Berikut ini adalah contoh 3 (tiga) tipe data yang didefiniskan oleh pemakai

melalu store procedure.

EXEC sp_addtype isbn,’smallint’,NOT NULL
EXEC sp_addtype zipcode,’char(10)’,NULL
EXEC sp_addtype alamat,’varchar(90)’,NULL

Terdapat beberapa petunjuk penciptaan tipe data oleh pemakai dan
menyeimbangkan ukuran penyimpanan:

1.

Jika panjang kolom beragam, gunakan salah
satu dari tipe data variable, misalkan kolom alamat kita gunakan varchar
bukan char(fixed) untuk menghemat penggunaan ruang penyimpanan.

2.

Tipe data integer, date dan time dan
monetary mendukung jangkauan berbeda berdasarkan ukuran
penyimpanan. Jika kita menggunakan tipe data tinyint untuk menyimpan
identifier dalam basisdata, maka kita akan bermasalah saat memutuskan
penyimpanan data angka 256.

3.

Tipe data numeric, ukuran dan level presisi
yang diperlukan membantu menentukan piihan, umumnya kita
menggunakan decimal.

4.

Jika penyimpanan lebih dari 8000 byte,
gunakan text atau image, jika kurang dari 8000 gunakan char , varchar,
atau binary.

b.2.2. Penghilangan tipe data

Untuk menghilangkan tipe data yang telah dibuat dengan prosedur
sebelumnya, unutk melakukan penghapusan, sintaksnya adalah:

Sp_droptype type

Berikut ini adalah contoh untuk melakukan drop untuk tipe data isbn yang

telah didefinisikan sebelumnya:

Sp_droptype isbn

10.3.3. Pendifinisian Basis Data

Sistem Basis Data – didiksetiyadi@yahoo.com

101

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

Dalam pendefinisan basis data ini meliputi pembuatan basis data, pembuatan table, indeks

dan aturan penamaan.

a.Pembuatan database

Proses pembuatan basis data sangat berbeda antara DBMS satu dengan lainnya.
Pada sistem multiuser, otoritas penciptaan basis data biasanya berada pada DBMS
(Database Adminstrator). Standard ISO tidak menspesifikasikan cara penciptaan basis data
dan masing – masing dialek SQL mempunyai pendekatan berbeda. Teknik yang digunakan
INGRES dan ORACLE atau SQL Server adalah sebagai berikut:

•INGRES menyediakan program utilitas khusus untuk meng CREATEDB, yaitu

DESTROYDB.

•ORACLE dan SQL SERVER menciptakan basis data sebagai bagian proses

instalasi. Untuk kebanyakan bagian, tabel – tabel pemakai ditempatkan pada bais
data tunggal, pembuatan database harus unik dalam suatu server database.
Menurut standard ISO, relasi – relasi dan objek – objek basis data lain berada disatu
lingkungan (environment). Tiap lingkungan berisi satu katalog atau lebih, dari masing –
masing katalog berisi satu himpunan skema (schema).
Skema adalah kumpulan objek basis data bernama yang saling berhubungan satu
dengan lain (satu basis data dapat dideskripsikan di satu skema atau skema yang lain). Objek
– objek dari skema bisa berupa table, view, domain, assertion, collation, translation, dan
character set. Semua objek di satu skema mempunyai pemilik yang sama dan berbagi
sejumlah default.

Berikut ini adalah sintaks untuk membuat database (baik di MS SQL Server ,MySQL

Server ataupun Oracle:

Create Database [Database_name]

Sebagai contoh, misalkan kita akan membuat database baru dengan menggunakan
MS SQL Server atau MYSQL dengan nama database NilaiMahasiswa pada bab 2, maka
perintahnya adalah:

Create Database NilaiMahasiswa

Sistem Basis Data – didiksetiyadi@yahoo.com

102

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

Untuk melakukan penghapusan database pada MS SQL Server atau MySQL,

sintaknya adalah:

Drop Database [Database_name]

Misalnya kita akan melakukan penghapusan pada database NilaiMahasiswa, maka

perintahnya adalah:

Drop Database NilaiMahasiswa

Sedangkan untuk melakukan perubahan nama database pada MS SQL Server,

sintaknya adalah:

Sp_RenameDB “[Database_lama], “[Database_baru]”

Misalnya kita akan melakukan perubahan nama database NilaiMahasiswa menjadi
NilaiMHS, maka perintahnya adalah:

Sp_RenameDB “NilaiMahasiswa”, “NilaiMHS”

b.Pembuatan table

Setelah dilakukan proses penciptaan database, kemudian kita dapat menciptakan
struktur table untuk relasi – relasi pada basis data terebut.

Sintaks SQL untuk melakukan pembuatan tabel baru didalam basis data :

Create Table table_name
{ column_name data_type [NULL | NOT NULL]}

dimana :
table_name adalah nama tabel yang akan dibuat.
Column_name adalah nama-nama atribut yang akan terdapat di dalam tabel_name.

Sistem Basis Data – didiksetiyadi@yahoo.com

103

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

Data_type adalah domain nilai masing-masing atribut tersebut yang di tentukan
berdasarkan tipe datanya.
NULL menspesifikasikan apakah kolom tersebut boleh kosong datanya.
NOT NULL menspesifikasikan kolom tersebut tidak boleh kosong (harus isi datanya)
dan biasanya untuk identifikasi primary key pada table bentukan.

Pada perintah Create Table, minimal kita harus mendefinisikan nama tabel, kolom-kolom dan
tipe datanya. Misalnya kita akan membuat tabel Mahasiswa pada database NilaiMahasiswa yang telah
kita buat sebelumnya, dengan struktur table sebagai berikut:

Catatan : struktur table SQL Server

Tabel 10.3. Struktur table Mahasiswa

Untuk membuat perintah SQl untuk membuat table Mahasiswa tersebut adalah sebagai

berikut:
1. Membuat table belum ada primary keynya.

Create Table Mahasiswa

(

nim char (9) not null,

nama_m varchar (35) not null,
tpt_lhr_m varchar(26),
tgl_lhr_m datetime,
j_kelamin varchar(10),
alm_m varchar(90),
kota_m varchar (20),
agama_m varchar(10),
telpon_m char (13),
kode_jur char (2)
)

Sistem Basis Data – didiksetiyadi@yahoo.com

104

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

Perintah diatas adalah membuat table baru dengan nama Mahasiswa, dimana pada saat
membuat table kita belum menentukan primary key pada table tersebut, untuk itu field nim harus
didefinisikan not null. Untuk membuat primary key setelah table terbentuk, akan tetapi belum dibuat
primary key nya maka perintahnya adalah sebagai berikut :

Alter Table Mahasiswa
Add Constraint PkMahasiswa Primary Key(nim)

Perintah diatas adalah membuat primary key pada table Mahasiswa, di8mana primary key
nya adalah nim, dengan nama constraintnya adalah PkMahasiswa. Untuk nama constraint ini tidak
harus PkMahasiswa, kita bisa mendefinisikan dengan PkMHS atau lainnya.

2. Membuat table langsung dibentuk primary keynya.

Kita juga bisa membentuk table Mahasiswa tersebut dengan langsung membentuk
primary keynya pada saat mengcreate table tersebut, perintahnya adalah:

Create Table Mahasiswa
(

nim char (9) Primary Key,

nama_m varchar (35) not null,
tpt_lhr_m varchar(26),
tgl_lhr_m datetime,
j_kelamin varchar(10),
alm_m varchar(90),
kota_m varchar (20),
agama_m varchar(10),
telpon_m char (13),
kode_jur char (2)
)

atau :

Create Table Mahasiswa

(
nim char (9),
nama_m varchar (35) not null,
tpt_lhr_m varchar(26),
tgl_lhr_m datetime,
j_kelamin varchar(10),
alm_m varchar(90),
kota_m varchar (20),
agama_m varchar(10),
telpon_m char (13),
kode_jur char (2),

Constraint PkMHS Primary Key (nim)

)

Sistem Basis Data – didiksetiyadi@yahoo.com

105

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

c.Merubah struktur table

Dengan perintah ALTER TABLE kita dapat melakukan menambah kolom (ADD) pada
table, menghapus kolom dan indeks (DROP).
1.

Menambah kolom
Misalkan kita akan menambahkan kolom pada table mahasiswa dengan
nama kolom email, varchar (30) null, maka perintahnya adalah:

ALTER TABLE Mahasiswa
Add email varchar(30)

2.

Merubah kolom
Misalkan kita akan merubah kolom email tipe datanya diganti menjadi
char(40) pada table mahasiswa, maka perintahnya adalah:

ALTER TABLE Mahasiswa
ALTER Column email Char(40)

3.

Menghapus kolom
Misalkan kita akan menghapus kolom email yang kita tambahkan pada
table mahasiswa, maka perintahnya adalah:

ALTER TABLE Mahasiswa
DROP Column email

d.Penghapusan table

Setelah dilakukan proses penciptaan table, kita dapat melakukan penghapusan table
baik dari sisi isi dan struktur tablenya. Terdapat DBMS yang melarang drop terhadap table
yang masih berisi data, dengan demikian kita harus melakukan proses 2 (dua) langkah, yaitu:

•Kita harus mengosongkon isi table dengan mengggunakan perintah

DELETE.

•Kita menghapus definisi table menggunakan perintah DROP TABLE.

Sintaks untuk melakukan penghapusan tble adalah sebagai berikut:

Sistem Basis Data – didiksetiyadi@yahoo.com

106

Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK – BANI SALEH BEKASI

Drop Table [table_name] [RESTRICT | CASCADE]

Klausa Restrict atau Cascade mengacu pada apa yang terjadi pada objek – objek basis data
lain yang bergantung pada table ini, misalkan VIEW. Restrict berarti akan tidak mengijinkan atau
membatalkan drop table, sementara Cascade, maka objek – objek basis data yang bergantung pada
table akan ikut terhapus juga. Restrict dan Cascade ini dapat saja tidak diimplementasikan oleh
Vendor DBMS.

Misalkan kita akan melakukan penghapusan data pada table Mahasiswa maka perintahnya

adalah:

Delete * From Mahasiswa

Atau :

Delete from Mahasiswa

Untuk melakukan penghapusan table Mahasiswa berserta strukturnya, maka perintahnya

adalah:

Drop Table Mahasiswa

e. Manipulasi terhadap definisi kolom
Penambahan (insert), penghapusan (drop), dan pengubahan (update) terhadap kolom
(field) pada table dengan menggunakan perintah ALTER TABLE.

ADD

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->