Teknik Perancangan Basisdata

Perancangan merupakan suatu hal yang sangat penting dalam pembuatan basis data. Permasalahan yang dihadapi pada waktu perancangan yaitu bagaimana basis data yang akan dibangun ini dapat memenuhi kebutuhan pada masa kini dan masa yang akan datang. Untuk itu diperlukan perancangan basis data yang baik secara fisik maupun secara konseptualnya.

Model Konseptual basis data

Pada perancangan model konseptual basis data ini penekanan dilakukan pada struktur data dan relasi antara file. Pada perancangan model konseptual dapat dilakukan dengan menggunakan model data relasional. Teknik Model Data Relasional ada 2 yaitu :

  1. Teknik Normalisasi
  2. Teknik Entity Relationship

Teknik Normalisasi

Proses normalisasi adalah proses pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entity dan relasinya. Pada proses normalisasi dilakukan pengujian pada beberapa kondisi apakah ada kesulitan pada saat menambah/menyisipkan, menghapus, mengubah dan mengakses pada suatu basis data. Bila terdapat kesulitan pada pengujian tersebut maka perlu dipecahkan relasi pada beberapa tabel lagi atau dengan kata lain perancangan basis data belum optimal.

Field (Atribut) Kunci

Setiap file selalu terdapat kunci dari file berupa field atau satu set field yang dapat mewakili record. Misalnya Nomor Induk Siswa (NIS) merupakan kunci dari tabel Siswa suatu Satuan Pendidikan, setiap pencarian cukup dengan menyebut nomor induk siswatersebut maka dapat diketahui identitas mahasiswa lainnya seperti nama, alamat dan atribut lainnya. Nomor Pegawai (NIP) bagi data guru, NIK untuk data karyawan, Kode_Pelajaran untuk data Mata pelajaran, dan lain sebagainya.

Jenis Atribut Pada Entitas

Atribut yang melekat pada suatu entitas ada bermacam tipe seperti yang akan dijelaskan sebagai berikut :

  1. Atribut Sederhana : atribut sederhana merupakan atribut atomik yang tidak dapat lagi dipecah menjadi atribut lain.   Contoh : Entitas siswa mempunyai atribut sederhana berupa NIS, Nama siswa.
  2. Atribut Komposit : atribut komposit merupakan atribut yang masih dapat dipecah menjadi sub-sub atribut yang masing-masing memiliki arti tesendiri. Contoh : entitas mahasiswa mempunyai atribut alamat. Alamat disini dapat dipecah menjadi sub atribut seperti nama_kota, kode_pos.
  3. Atribut Bernilai Tunggal: yaitu atribut yang hanya memiliki satu nilai untuk setiap barisnya. Contoh : entitas siswa mempunyai atribut NIS, Nama, Alamat isi data dari atribut ini hanya boleh diisi dengan 1 data. Setiap mahasiswa hanya memiliki 1 NIS, 1 Nama, 1 Alamat.
  4. Atribut Bernilai Jamak: yaitu atribut yang boleh memiliki lebih dari satu nilai untuk setiap barisnya. Contoh : entitas mahasiswa mempunyai atribut Hobby isi data dari atribut ini boleh lebih dari 1 data. Siswa Muhammad Anggara memiliki NIS 199810141 beralamat di Jalan Jambu Humbay Nomor 99 Kota Baru Lubay memiliki Hobby (Olah Raga, Nyanyi, Game Online dan Nonton TV)
  5. Atribut Harus Bernilai: yaitu atribut yang harus memiliki nilai data untuk setiap barisnya. Biasanya atribut seperti ini sudah ditetapkan dalam perancangan tabelnya sehingga jika dalam pengisian dokosongi akan terjadi kesalahan. Contoh : entitas mahasiswa mempunyai atribut NIS dan Nama_Siswa yang harus diisi datanya, sebab jika tidak diisi akan terjadi kekacauan dalam basis data.
  6. Atribut Bernilai Null: yaitu atribut yang boleh tidak memiliki nilai data untuk setiap barisnya. Contoh : entitas siswa mempunyai atribut Alamat, Hobby, Makanan_Pavorit yang boleh untuk tidak diisi tetapi kalau diisi akan lebih baik.
  7. Atribut Turunan: yaitu atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut lain yang berkaitan. Contoh : entitas siswa mempunyai atribut Rangking yang diperoleh dari pengolahan atribut Nilai pada tabel (entitas Nilai) dengan kode NIS siswa yang sama dan diproses sehingga menghasilkan Rangking untuk siswa yang bersangkutan.

Kunci Kandidat (Candidate Key)

Kunci kandidat adalah satu atribut atau satu set atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entity. Satu set atribut menyatakan secara tidak langsung dimana anda tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik. Jika kunci kandidat berisi lebih dari satu atribut, maka biasanya disebut sebagai composite key (kunci campuran atau gabungan).

Contoh :

File Siswa berisi :
· No Siswa
– Nama Siswa
· Tempat Lahir
· Tanggal Lahir
· Alamat
· Kota
– Kode Pos
– Kelas
– Nama Ayah
– Nama Ibu

Kunci kandidat dalam file Siswa di atas dapat dipilih sebagai berikut :

  • Nomor Induk Siswa
  • Nama (tidak dapat dipakai karena sering seseorang punya nama yang sama dengan orang lain)
  • Nama + Tanggal Lahir (mungkin bisa dipakai sebagai kunci karena kemungkinan orang dengan nama yang sama dan tanggal lahir yang sama cukup kecil)
  • Nama + Tempat Lahir + Tanggal Lahir (dapat dipakai sebagai kunci)
  • Alamat dan Kota (bukan kunci)

Kunci Primer (Primery Key)

Primary key adalah satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasi secara unik suatu kejadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kunci kandidat dapat menjadi kunci primer tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang ada.

Contoh :

  • Nomor Induk Siswa (karena sifatnya yang unik maka tidak mungkin Siswa mempunyai Nomor Induk yang sama).
  • Kode_Pelajaran (bisa dipakai untuk data mata pelajaran karena kode mata pelajaran bersifat unik untuk tiap mata pelajaran)

Kunci Alternatif (Alternate Key)

Kunci alternatif adalah kunci kandidat yang tidak dipakai sebagai kunci primer. Kunci alternatif ini sering digunakan untuk kunci pengurutan misalnya dalam laporan.

Kunci Tamu (Foreign Key)

Kunci tamu adalah satu atribut aatau satu set minimal atribut yang melengkapi satu hubungan yang menunjukkan ke induknya. Kunci tamu ditempatkan pada entity anak dan sama dengan kunci primer induk yang direlasikan. Hubungan antara entity induk dengan anak adalah hubungan satu lawan banyak (one to many relationship)

Contoh :

File Transaksi Gaji Bulanan

  • No Pegawai
  • No Bukti
  • Tanggal
  • Jumlah Gaji Kotor
  • Jumlah Potongan
  • Jumlah Gaji Bersih
  • Jumlah Pajak

Kunci Tamu : No Pegawai (karena Gaji berhubungan dengan file Pegawai)

Kunci Primer : No Bukti (karena unik dan mewakili entity)

Kunci Kandidat :  No Pegawai + Nomor Bukti (Unik dan menunjukkan hubungan dengan file Pegawai)

Dalam hubungan dua buah file yang punya relationship banyak lawan banyak maka terdapat 2 kunci tamu pada file konektornya.

Contoh :

File Proyek berisi atribut

  • No Proyek
  • Tgl Mulai
  • Tgl Selesai
  • Anggaran

File Pegawai Berisi Atribut

  • No Pegawai
  • Nama

Hubungan antara file tersebut adalah banyak lawan banyak yaitu satu pegawai mengerjakan lebih dari 1 proyek dan 1 proyek dikerjakan oleh beberapa pegawai maka untuk menunjukkan hubungan tersebut dipakai file konektor yang berisi kunci tamu dari kedua file. File Proyek Pegawai berisi atribut :

  • No Proyek
  • No Pegawai
  • Jam Kerja

Maka pada file proyek pegawai terdapat kunci tamu yaitu nomor proyek dan no pegawai. Kedua atribut tersebut juga merupakan kunci primer.

Kebergantungan Fungsi

Kebergantungan Fungsi didefinisikan sebagai diberikan sebuah relasi R, atribut Y dan R adalah bergantung fungsi pada atribut X dari R jika dan hanya jika setiap nilai X dalam R punya hubungan dengan tepat satu nilai Y dalam R (dalam setiap satu waktu).

File relasi pegawai atribut berisi :

  • No Siswa
  • Nama
  • Tpt Lahir
  • Tgl Lahir
  • Alamat
  • Kota

Isi dari atribut nama bergantung pada Nomor Induk Siswa. Jadi dapat dikatakan bahwa atribut nama bergantung secara fungsi pada Nomor Siswa dan Nomor Induk Siswa menunjukkan secara fungsi nama. jika anda mengetahui no pegawai maka anda dapat menentukan nama pegawai tersebut. Notasi untuk kebergantungan fungsi ini adalah No Siswa 1DPD atau Nama = f(No Siswa).

Proses Normalisasi, merupakan proses pengelompokan data elemen menjadi table-table yang menunjukkan entity dan relasinya. Pada proses normalisasi selalu diuji pada beberapa kondisi, apakah ada kesulitan pada saat menambah / insert, menghapus / delete, mengubah / update, dan membaca / retrieve pada suatu Database. Bila ada kesulitan pada pengujian tersebut, maka relasi tersebut dipecahkan menjadi beberapa table lagi, sehingga diperoleh database yang optimal.

Bentuk-Bentuk Normalisasi

Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan kedatangannya.

Bentuk Normal Kesatu (1 NF / First Normal Form)

Bentuk Bentuk Normal Kesatu mempunyai ciri yaitu setiap data dibentuk dalam file flat, data dibentuk dalam satu record demi satu record dan nilai dari field berupa “atomic value”. Tidak ada set atribut yang berulang ulang atau atribut bernilai ganda (multi value). Tiap field hanya satu pengertian, bukan merupakan kumpulan data yang mempunyai arti mendua. Hanya satu arti saja dan juga bukanlah pecahan kata kata sehingga artinya lain.

Bentuk Normal Kedua (2 NF)

Bentuk Normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk Normal Kesatu. Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama, sehingga untuk membentuk Normal Kedua haruslah sudah ditentukan kunci-kunci field. Kunci field harus unik dan dapat mewakili atribut lain yang menjadi anggotanya.

Bentuk Normal Ketiga (3 NF)

Untuk menjadi bentuk Normal Ketiga maka relasi haruslah dalam bentuk Normal Kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Artinya setiap atribut bukan kunci harus bergantung hanya pada kunci primer secara menyeluruh.

Boyce-Codd Normal Form (BNCF)

Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk Normal ketiga. Untuk menjadi BNCF, relasi harus dalam bentuk Normal Kesatu dan setiap atribut dipaksa bergantung pada fungsi pada atribut super key.

REFERENSI

  1. Ali, Muhammad. 1995. Materi Kuliah Basis Data. Jakarta.
  2. http:// teknik-informatika.com/perancangan-basis-data/
  3. Edisi 1 Tahun 2007 – didik@urindo.ac.id /mata kuliah Sistem Basisdata