11 Juni 2012

DATABASE RELATION

Universitas Indraprasta PGRI


Fakultas FTMIPA
Teknik Informatika
Dosen: Nahot Frastian ,Skom
.............................................................................................................................................................................................
 DATABASE RELATION 

I.                    Pendahuluan
Yang dimaksud dengan database relational atau normalisasi adalah suatu proses untuk merelasikan field dari tabel lainnya, dimana dalam salah satu tabel terdapat field yang bersifat primary key atau foreign key. Normalisasi ditemukan pada tahun 1970 oleh E.F.Codd (seorang penelitian IBM) sebagai ketidakpuasannya dengan metode penyimpanan data saat itu. Lewat bukunya yang berjudul “A relational model of data for large shared databanks” maka tercetus database relational.

        Pada dasarnya model relational digunakan untuk mengatasi kesulitan dalam pengelolaan dan pengaksesan data. Alasan yang melandasi mengapa dibutuhkan relasi tabel, yaitu karena terdapatnya anomaly-anomali (error atau inkonsistensi data) yang harus dihindari, agar keutuhan data dan kepastian data terjamin. Anomali-anomali itu meliputi anomaly update, insert, dan delete.

        Untuk memahami konsep relasi, perhatikan daftar mahasiswa dan matakuliah berikut ini:
Nomor
Nim
Kode-mtk
Sks
1
99130012
101
2
2
99145021
105
4
3
99276521
103
4
4
99130012
102
2
5
98254123
103
4
6
99145021
104
2
7
99671204
106
4
8
99130012
105
4
9
99276521
102
2
10
99145021
103
4
11
98254123
101
2


1.       Anomali Inset
Kesalahan yang terjadi di saatproses penyisipan record baru.
Contoh:
Jika Kampus akan mengadakan matakuliah baru dengan kode matakuliah 107, maka proses penyisipan untuk kode matakuliah 107 tidak dapat dilakukan sampai ada mahasiswa yang mengambil matakuliah tersebut.

2.       Anomali Delete
Kesalahan yang terjadi disaat proses penghapusan record atau tuple.
Contoh:
Mahasiswa yang memiliki Nim 99671204 memutuskan untuk membatalkan mengambil matakuliah 106, maka dengan demikian jika di delete record tersebut, akan berakibat hilangnya informasi tentang kode matakuliah 106.

3.       Anomali Update
Anomali atau kesalahan yang terjadi pada saat proses suatu record.
Contoh:
Jika anda perhatikan pada tabel kuliahan, terdapat banyak kode matakuliah yang diambil oleh mahasiswa dengan NIM ang berbeda, Misalnya dilakukan perubahan SKS untuk kode matakuliah 103, maka akan dilakukan proses update beberapa kali sesuai dengan banyaknya jummlah yang mengambil kode matakuliah tersebut.

                Dari anomaly-anomali yang terjadi diatas maka daftar mahasiswa dan matakuliah bukan termaksud Well-Structure relation (Sebuah relasi dengan jumlah kerangkapan datanya sedikit).
Dengan demikian daftar mahasiswa & matakuliah harus dilakukan proses normalisasi, yaitu dengan membagi 2 tabel yang terpisah. Tabel-tabel tersebut adalah  sebagai berikut ini:



                Dari kedua tabel tersebut akan dibentuk relasi yang saling terkait antara satu dengan yang lainnya. Untuk melakukan proses relasi dibutuhkan field yang memiliki primary key atau foreign key.
                Sifat field primary key, yaitu tidak boleh terdapat data sama dalam field tersebut. Contoh: pada tabel kuliah field ‘Kode-mtk’ terdapat banyak data yang sama, seperti kode matakuliah 103. Berati field ‘Kode-mtk’ pada tabel kuliah tidak dapat dijadikan primary key. Jika Anda amati field matakuliah dapat dijadikan primary key.
                Kesimpulannya field ‘Kode-mtk’ pada tabel matakuliah sebagai primary key, sedangkan field  ‘Kode-mtk’ pada tabel mata kuliah sebagai foreign key. Untuk lebih jelasnya perhatikan skema disini:

Dari relasi kedua tabel ini, yaitu tabel matakuliah dan kuliah dapat terbentuk daftar mahasiswa & matakuliah seperti yang Nampak seperti berikut:

Daftar mahasiswa & matakuliah:

Nomor
Nim
Kode-mtk
Sks
1
99130012
101
2
2
99145021
105
4
-
-
-
-



2. PEMBENTUKAN NORMALISASI
                Perubahan daftar mahasiswa & mataluliah menjadi 2 tabel, yaitu tabel matakuliah dan kuliah adalah merupakan bentuk normalisasi. Dengan demikian terjadi suatu kondisi dimana proses penginputan record bru untuk kode matakuliah dilakukan pada tabel matakuliah, maka secara otomatis akan terlihat perubahan SKS atau kode matakuliah, maka secara otomatis akan terlihat pula dalam daftar mahasiswa & matakuliah.
                Berikut ini akan dijelaskan seputar pemberitahuan normalisaasi dari bentuk tidak normal (Unnormalized Form).

a)      Bentuk tidak Normal (Unnormalized Form)
Pada bagian ini stiap record yang diinput tidak mengalami tahap penyeleksian,sehingga akan terjadi kerangkapan data atau duplikasi data. Jadi data yang diinput terlihat apa adanya sesuai dengan yang diinput.
Contoh:
Kobuk
Judul
Pengarang
RK1
RK2
RK3
101-K
Belajar Sendiri VB. 6
M.Bakri
001
003
001
103-C
Kisah Cinta Sang Penyair
Minolsta
003
001

110-S
Belajar Cepat Berhitung
Cokro S.
002
002
001
106-A
Bertauhid Yang Benar
Ust. Soleh
003

003

a)      Bentuk INF (First Normal Form)
Pada bentuk forn jenis pertama ini atau yang disebut INF harus bersifat atomic. Atom yaitu zat terkecil yang masih dapat dipecah lagi.
Ciri-ciri INF:
-          Tiap field harus bernilai “atomic, yaitu setiap recordnya hanya terdiri dari satu nilai.
-          Setiap field harus hanya memiliki satu pengertian dan memiliki nama yang unik.
-          Tidak terdapat rcord yang sama atau bernilai ganda.
Hasil perubahan dari Unnormalized form menjadi INF adalah sebagai berikut:
Kobuk
Judul
Pengarang
Kode_RK
101-K
Belajar Sendiri VB. 6
M.Bakri
001
101-K
Belajar Sendiri VB.6
M.Bakri
003
103-C
Kisah Cinta Sang Penyair
Minolsta
001
103-C
Kisah Cinta Sang Penyair
Minolsta
003
110-S
Belajar Cepat Berhitung
Cokro S.
001
110-S
Belajar Cepat Berhitung
Cokro S.
002
106-A
Cara Cepat Belajar Database
Lina Marlina
003




a)      Bentuk 2NF (Second) Normal Form)
a.       Aabila bentuk normal pertama atau INF terpenuhi, maka dapat menuju ke bentuk normal kedua atau 2NF. Pada tahap ini tabel yang terdapat pada bentuk normal pertama akan dibagi menjadi 2 bagian, yaitu:

Tabel Buku
Kobuk
Judul
Pengarang
101-K
Belajar Sendiri VB. 6
M.Bakri
103-C
Kisah Cinta Sang Penyair
Minolsta
110-S
Belajar Cepat Berhitung
Cokro S.
106-A
Cara Cepat Belajar Database
Lina Marlina


Tabel Rak Buku
Kobuk
Kode_RK
101-K
001
101-K
003
103-C
001
103-C
003
110-S
001
110-S
002
106-A
003


a)      Bentuk 3NF (Third Normal Form)
Pada tahap bentuk normal ketiga, terjadi suatu relasi yang tredapat dependency, yaitu
field yang bergantung dengan field yang lain pada tabel yang berbeda. Seperti pada contoh bentuk normal kedua dimana field Kobuk (foreign key) pada tabel rak buku bergantung kepada field Kobuk (primary key) pada tabel Buku.
Dengan demikian contoh bentuk normal kedua telah memenuhi syarat untuk dijadikan bentuk normal ketiga.

3.       JENIS RELASI TABEL
Terdapat 3 jenis tabel, yaitu One to One, One to Many, Many to Many.

§  Relasi One to One
Pada jenis relasi One to One, setiap record pada tabel induk hanya memiliki satu relasi dengan tabel anak.
Contoh:
Tabel Wali Kelas
Tabel Wali Kelas
TD_WK
Nama Wali Kelas
01
Suhendra
02
Samsusi
03
Zainab



Tabel Kelas
Tabel Kelas
Ko Kelas
Kelas
ID_WK
A
1A
01
B
1B
02
C
1C
03




§  Relasi One to Many
Relasi One to Many, yaitu suatu jenis relasi tabel yang memberikan hak untuk berelasi  dengan lebih dari satu baris.

Contoh:
Tabel Hewan
KdHwn
Jenis_Hewan
01
Kambing
02
Sapi
03
Kerbau


ID_Pemilik
Nama_Pemilik
Jumlah
Jenis_Hewan
A001
H.Bajuri
2
Kabing
A003
Zainal Sambri
1
Kambing
A002
Andi Solahudin
1
Kerbau
A003
Zainal Sambri
1
Sapi
A002
Andi Solahudin
2
Kambing
A004
Syamsudin
3
Kambing
A005
Diah Armintai
2
Kambing
A001
H.Bajuri
1
Sapi
A001
H.Bajuri
1
Kerbau



                Contoh relasi diatas menunjukan bahwa setiap pengqurban dapat berqurban dengan lebih dari satu jenis hewan berbeda. Contoh seperti H.Bajuri yang berqurban kambing,sapi, dan Kerbau.

§  Relasi Many to Many
Pembentukan relasi many to many akan terjadi apabila beberapa baris pada sebuah tabel berelasi ke beberapa jenis pada tabel yang lain. Untuk merepresentasi relasi ini tidak cukup hanya menggunakan dua table, melainkan memerlukan tabel perantara lain.

Contoh:
Tabel Penerbit
ID_Penerbit
Nama_Penerbit
Kota
01
CV. Pustaka Jaya
Jakarta
02
Setia Kawan
Jakarta
03
Alexander
Bandung
04
Surya Kencana
Padang


Tabel Pengarang
ID_Pengarang
Nama_Pengarang
Alamat
A01
Dede Sunarya
Jakarta
A02
Drs. Amelia Anggoro
Jakarta
A03
Mohamad Suharto, S.H.
Subang
A04
Ust. Yudo Kuncoro
Bandung
A05
M. Zaidan Alwi
Medan
A06
Apriastuti Nur Komalasari
Jakarta
A07
Retno Yuniar
Subang


Tabel Toko
Nama_Pengarang
ID_Toko
Nama_Penerbit
Ust. Yudo Kuncoro
1
CV. Pustaka Jaya
Mohamad Suharto, S.H.
2
Setia Kawan
Dede Sunarya
3
CV. Pustaka Jaya
Ust. Yudo Kuncoro
4
Surya Kencana
Apriastuti Nur Komalasari
5
Setia Kawan
Mohamad Suharto, S.H.
6
CV. Pustaka Jaya
Retno Yuniar
7
Surya Kencana
Drs. Amelia Anggoro
8
Alexander



                Pada Tabel Toko terlihat bahwa penerbit dapat  berhubungan dengan lebih dari satu pengarang, begitu juga halnya dengan pengarang yang dapat berelasi dengan banyak penerbit.

3.       MASALAH YANG AKAN TIMBUL AKIBAT NORMALISASI
Walaupun normalisasi telah membantu dalam menghilangkan anomaly-anomali, baik itu anomaly insert, update, atau delete. Ada hal yang ditumbulkan setelah proses normalisasi itu berhasil, yaitu permasalahan tampilan tabel dan permasalah integritas referensial.
Untuk memudahkan memahai kedua permasalahan tersebut,. Perhatikan tabel Buku dan Rak Buku.

§  Permasalahan  Tampilan tabel
Jika pada sebelumnya hanya terdapat satu tabel, maka untuk menampilkan semua record, cukup hanya dengan menggunakan perintah sql: SELECT*FROM nama_tabel. Sedangkan untuk menampilkan beberapa record saja dapat menggunakan sintaks LIMIT dan OFFSET.

Contoh:
-          Untuk menampilkan 5 record pertama dari tabel buku.
Mysql>SELECT*FROM buku LIMIT 5;
-          Untuk menampilkan 3 baris pertama yang diurutkan berdasarkan pengarang.
Mysql>SELECT*FROM buku ORDER BY pengarang LIMIT 3;
-          Untuk menampilkan 2 baris setelah melewati 2 baris pertama yang diurutkan berdasarkan kode buku.
Mysql>SELECT*FROM buku ORDER BY kodeuk LIMIT 2 OFFSET 2;

                Setelah melalui proses normalisasi, maka telah terbentuk dua tabel, yaitu tabel Buku dan tabel Rak Buku. Pernyataan SQL untuk menampilkan record tidak sama dengan sebelum proses normalisasi. Perintah SQL-nya yaitu:
SELECT nama_tabel.nama_field,… FROM nama_tabel.nama_field

Contoh:
                Menampilkan judul buku perngarang, dan rak buku yang kode rak bukunya 001.
Mysql>SELECT Buku.Judul,Buku.Pengarang,Rakbuku.Kode_RK FROM Buku, Rak buku WHERE
->Rakbuku.Kode_RK=’001’;

§  Permasalahan Integritas Referensial
Berupa Maintenance Consistency of Reference antara 2 buah tabel relasi yang saling terkait.
Contoh:
-          Sebelum terjadi proses normalisasi, setiap penambahan record dapat dilakukan pada tabel Relasi. Setelah normalisasi, untuk menambahkan rak buku harus melalui proses pengecekan terlebih dahulu, apakah buku yang akan ditampilkan pada suatu rak apakah sudah ada dalam tabel Buku atau belum. Jika belum terdapat kode buku tersebut pada tabel Buku, maka proses penginputan record pada tabel Rak Buku tidak dapat dilakukan.
-          Jika ingin melakukan penghapusan data pada tabel Buku harus berhati-hati, karena akan berpengaruh pada tabel Rak Buku. Jika anda menghapus pada bagian tabel Rak Buku saja, maka tidak akan berpengaruh pada tabel Buku. Karena sifat field Kobuk pada tabel Buku bersifat primary key, sedangkan field Kobuk pada tabel Rak Buku sebagai penghubung saja.

***







Tidak ada komentar:

Posting Komentar