Rabu, 19 Oktober 2011

TEKNIK NORMALISASI DALAM PERANCANGAN BASIS DATA RELASIONAL

Pendahuluan
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 saat ini dan masa yang akan datang. Untuk itu diperlukan perancangan basis data baik secara fisik maupun secara konseptualnya. Perancangan konseptual akan menunjukkan entity dan relasinya berdasarkan proses yang diiginkan oleh organsisasinya. Untuk menentukan entity dan relasinya perlu dilakukan analisis data tentang informasi yang ada dalam spesifikasi di masa yang akan datang.
Suatu basis data dibangun berdasarkan kebutuhan informasi dalam suatu organisasi, oleh sebab itu pada umumnya perancangan basis data dimulai dari pengamatan kebutuhan informasi. Proses perancangan basis data , dibagi menjadi 3 tahapan yaitu :
1. Perancangan basis data secara konseptual, tahapan ini merupakan upaya untuk membuat model yang masih bersifat konsep..
2. Perancangan basis data secara logis, merupakan tahapan untuk memetakan model konseptual kemodel basis data yang akan dipakai (modal relasional, hirarkis, atau jaringan). Perancangan ini tidak bergantung pada DBMS yang akan dipakai, itulah sebabnya perancangan basis data secara logis terkadang disebut pemetaan model data.
3. Perancangan basis data secara fisis, merupakan tahapan untuk menuangkan perancangan basis data yang bersifat logis menjadi basis data fisis yang tersimpan pada media penyimpanan eksternal (yang spesifik terhadap DBMS yang dipakai ).

Basisdata
Beberapa pengertian basisdata :
ü  Basisdata merupakan kumpulan tabel-tabel atau files yang saling berelasi.
ü  Basisdata merupakan kumpulan data non-redundant yang dapat digunakan bersama (shared) oleh system aplikasi yang berbeda atau basis data merupakan kumpulan data non redundant yang saling terkait satu sama lainya yang dinyatakan oleh atribut-atribut kunci dari table-tabelnya.
Karena tidak semua pengguna basisdata terlatih dengan baik dan penggunanya terbagi dalam beberapa tingkatan, maka kompleksitas basisdata akan tersembunyi dari para penggunanya melalui beberapa level abstraksi data, yaitu :
·         Level Fisik : merupakan tingkatan terendah dalam abstraksi data yang menunjukkan bagaimana data disimpan, yang pada umunya tidak terlihat oleh oleh pengguna atau programmer aplikasinya
·         Level konseptual : mengambarkan data apa saja yang sebenarnya (secara fungsional) disimpan didalam basisdata beserta relasi-relasinya didalam basisdata, dimana administrator basisdata (DBA) membangun dan mengolah basisdata, contohnya: penguna akan mengetahui bahwa data penjualan disimpan didalam tabel-tabel barang, produksi, keuangan, marketing
·         Level View : merupakan tingkatan tertinggi, yaitu pengguna aplikasi dan programmer hanya mengenal struktur data.

Model Konseptual Basisdata
Perancangan model konseptual basis data dalam sebuah organisasi menjadi tugas dari Administrator basis data. Model konseptual merupakan kombinasi beberapa cara untuk memproses data untuk beberapa aplikasi. Model konseptual tidak tergantung pada aplikasi individual, DBMS digunakan, Hardware komputer dan model fisiknya. Pada perancangan model konseptual basis data ini penekanan dilakukan pada struktur data dan relasi antara file. Pada perancangan model konseptual ini dapat dilakukan dengan menggunakan model data relasional.
Field (Atribut) Kunci
setiap file selalu terdapat kunci dari file berupa field atau satu set field yang dapat mewakili record. Misalnya Nomor Pokok Mahasiswa (NPM) merupakan kunci dari tabel mahasiswa suatu Perguruan Tinggi, setiap pencarian cukup dengan menyebut nomor mahasiswa tersebut maka dapat diketahui identitas mahasiswa lainnya seperti nama, alamat dan atribut lainnya.
Nomor Pegawai (NIP) bagi data dosen, NIK untuk data karyawan, Kode_Kuliah untuk data Mata kuliah, dan lain sebagainya.
Jenis Atribut Pada Entitas
Atribut yang melekat pada suatu entitas ada bermacam tipe seperti yang akan dijelaskan sebagai berikut :
  • Atribut Sederhana : atribut sederhana merupakan atribut atomik yang tidak dapat lagi dipecah menjadi atribut lain. Contoh
Entitas mahasiswa mempunyai atribut sederhana berupa NIM, Nama Mahasiswa .
  • Atribut Komposit : atribut komposit merupakan atribut yang masih dapat dipecah menjadi sub-sub atribut yang masing-masing memiliki arti tersendiri.
Contoh : entitas mahasiswa mempunyai atribut alamat. Alamat disini dapat dipecah menjadi sub atribut seperti nama_kota, kode_pos.
  • Atribut Bernilai Tunggal : yaitu atribut yang hanya memiliki satu nilai untuk setiap barisnya.
Contoh : entitas mahasiswa mempunyai atribut NPM, Nama, Alamat isi data dari atribut ini hanya boleh diisi dengan 1 data. Setiap mahasiswa hanya memiliki 1 NPM, 1 Nama, 1 Alamat.
  • 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. Mahasiswa Roshita memiliki NPM 13402021 beralamat di Jalan Garuda 32 Yogyakarta memiliki Hobby (Olah Raga, Nyanyi, Masak dan Nonton TV)
  • 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 NPM dan Nama_Mahasiswa yang harus diisi datanya, sebab jika tidak diisi akan terjadi kekacauan dalam basis data.
  • Atribut Bernilai Null : yaitu atribut yang boleh tidak memiliki nilai data untuk setiap barisnya.
Contoh : entitas mahasiswa mempunyai atribut Alamat, Hobby, Nama_Pacar yang boleh untuk tidak diisi tetapi kalau diisi akan lebih baik,
  • Atribut Turunan : yaitu atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut lain yang berkaitan.
Contoh : entitas mahasiswa mempunyai atribut IPK yang diperoleh dari pengolahan atribut Nilai pada tabel (entitas Nilai) dengan kode NIM mahasiswa yang sama dan diproses sehingga menghasilkan IPK untuk mahasiswa yang bersangkutan.

Perancangan Basis Data

 Basis data sebagai kumpulan dari data yang saling berhubungan yang diorganisasi sedemikian rupa agar kemudian dapat dimanfaatkan lagi dengan cepat dan mudah (Abdul Kadir, 2002: 39).
Definisi basis data (database) sangatlah bervariasi. Basis data dapat dianggap sebagai kumpulan data yang terkomputerisasi, diatur dan disimpan menurut salah satu cara yang memudahkan pengambilan kembali. Secara sederhana basis data dapat diungkapkan sebagai suatu pengorganisasian  data dengan bantuan komputer yang memungkinkan  data dapat diakses dengan mudah dan cepat.
Tujuan awal dan utama dalam pengolahan data pada sebuah basis dataadalah agar dapat menentukan kembali data (data yang dicari) dengan mudah dan cepat. Di samping itu, pemanfaatan data untuk pengolahan data juga memiliki tujuan-tujuan tertentu. Secara lengkap, pemanfaatanbasis data dilakukan untuk memenuhi sejumlah tujuan sebagai berikut :
•1)      Kecepatan dan kemudahan (Speed)
Pemanfaatan basis data memungkinkan untuk dapat menyimpan data atau melakukan perubahan/manipulasi terhadap data atau menampilkan kembali data tersebut dengan cepat dan mudah.
•2)      Efesiensi ruang penyimpanan (Space)
Penggunaan ruang penyimpanan di dalam basis data dilakukan  untuk mengurangi jumlah redundansi (pengulangan) data, baik dengan melakukan penerapan sejumlah pengkodean atau dengan membuat relasi-relasi (dalam bentuk file) antar kelompok data yang saling berhubungan.
•3)      Keakuratan (Accuracy)
Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan tipe data, domain data, keunikan data dan sebagainya dan diterapkan dalam basis data, sangat berguna untuk menentukan ketidakakuratan pemasukan atau penyimpanan data.
•4)      Ketersediaan (Availability)
Pertumbuhan data (baik dari jumlah maupun jenisnya) sejalan dengan waktu akan semakin membutuhkan ruang penyimpanan yang besar. Data yang sudah jarang atau bahkan tidak pernah lagi digunakan dapat diatur untuk dilepaskan dari sistem basis data dengan cara penghapusan atau dengan memindahkannya ke media penyimpanan.
•5)      Kelengkapan (Completeness)
Lengkap atau tidaknya data yang dikelola bersifat relatif baik terhadap kebutuhan pemakai maupun terhadap waktu. Dalam sebuah basis data, struktur dari basis data tersebut juga harus disimpan. Untuk mengakomodasi kebutuhan kelengkapan data yang semakin berkembang, maka tidak hanya menambah record-record data, tetapi juga melakukan penambahan struktur dalam basis data.
•6)      Keamanan (Security)
Sistem keamanan digunakan untuk dapat menentukan siapa saja yang boleh menggunakan basis data dan menentukan jenis operasi apa saja yang boleh dilakukan.
  • 7) Kebersamaan pemakai
Pemakai basis data sering kali tidak terbatas hanya pada satu pemakaian saja atau oleh satu sistem aplikasi saja. Basis data yang dikelola oleh sistem (aplikasi) yang mendukung lingkungan multiuser, akan dapat memenuhi kebutuhan ini, tetapi dengan menjaga/menghindari terhadap munculnya persoalan baru seperti inkonsistensi data (karena data yang sama diubah oleh banyak pemakai pada saat bersamaan).

PERANCANGAN BASIS DATA

Database
Database (Basis Data) adalah kumpulan data (elementer) yang secara logik berkaitan dalam mempresentasikan fenomena / fakta secara terstruktur dalam domain tertentu untuk mendukung aplikasi pada sistem tertentu. Basis data adalah kumpulan data yang saling berhubungan, memberikan refleksi fakta-fakta yang terdapat di organisasi. Basis data mendeskripsikan state organisasi/perusahaan/sistem. Saat satu kejadian muncul di dunia nyata mengubah state organisasi/perusahaan/sistem, maka satu perubahan pun harus dilakukan terhadap data yang disimpan di basis data. Basis data merupakan komponen utama sistem informasi karena semua informasi untuk pengambilan keputusan berasal dari data di basis data. Pengelolaan basis data yang buruk dapat mengakibatkan ketidaktersediaan data penting yang digunakan untuk menghasilkan informasi yang diperlukan dalam pengambilan keputusan.
Metodologi Perancangan Basis Data
Metodologi perancangan basis data adalah kumpulan teknik terorganisasi untuk pembuatan rancangan basis data. Teknik terorganisasi ini merupakan kumpulan tahap-tahapan yang memiliki aturan-aturan terurut. Teknik yang digunakan pada perancangan basis data dibagi menjadi dua, yaitu:
a. Perancangan basis data tingkat logik.
b. Perancangan basis data tingkat fisik.
Perancangan basis data secara logik dimulai dengan penciptaan model konseptual dari organisasi dan seluruhnya tak bergantung rincian implementasi seperti perangkat lunak DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras, dan pertimbangan fisik lainnya. Model konsep ini kemudian dipetakan menjadi model data secara logik yang telah dipengaruhi model data target basis data seperti model relasional.
Dalam perancangan basis data secara logik, kita dapat melakukannya dengan cara :
a. Menerapkan Normalisasi terhadap struktur tabel yang telah diketahui.
b. Langsung membuat model Entity-Relationship (ER).
Model data secara logik merupakan sumber informasi perancangan fisik. Model ini menyediakan perancang suatu kendaraan untuk pertimbangan dalam merancang basis data yang efisien.
Perancangan basis data secara fisik adalah proses memproduksi deskripsi implementasi basis data pada penyimpanan sekunder, mendeskripsikan struktur-struktur penyimpanan dan metode-metode pengaksesan dalam meningkatkan efektifitas pengaksesan. Pada tahap ini, perancangan fisik telah ditujukan untuk system DBMS tertentu. Perancangan basis data tingkat fisik sudah dikaitkan dengan platform dan perangkat lunak system manajemen basis data dimana basis data diimplementasikan.
Langkah-langkah Metodologi Perancangan Basis Data
Berikut adalah perancangan basis data relasional :
- Dimulai dari perancangan basis data logik untuk basis data relasional pada tahap 1 sampai dengan tahap 3.
- Perancangan dan implementasi basis data fisik untuk basis data relasional pada tahap 4 sampai dengan tahap 7.
a. Tahap 1
Membangun rancangan data konseptual lokal berdasarkan pandangan pemakai. Yaitu mengidentifikasikan himpunan entitas – himpunan entitas. Mengidentifikasikan keterhubungan-keterhubungan (relationship), mengidentifikasikan dan asosiasikan atribut-atribut pada entitas atau keterhubungan, menentukan domain atribut, menentukan atribut-atribut candidate key dan primary key, melakukan spesialisasi/generalisasi, menggambarkan diagram ER, melakukan review model data konsep dengan pemakai.
b. Tahap 2
Membangun dan validasi model data logik lokal. Yaitu memetakan model data konsep ke model data logik, melakukan turunan relasi-relasi dari model data logik, validasi model menggunakan normalisasi, validasi model berdasarkan transaksi – transaksi pemakai, menggambarkan ER nya, mendefinisikan kontsrain-konstrain (batasan-batasan) integritas, melakukan review model data logik dengan pemakai.
c. Tahap 3
Membangun dan validasi model data logik global. Yaitu menggabungkan model data logik lokal menjadi model global, validasi model data logik global, periksa untuk pertumbuhan masa datang, menggambarkan diagram ER akhir, melakukan review model logik global dengan pemakai.
d. Tahap 4
Menerjemahkan model data logik global untuk DBMS target. Yaitu merancang relasi-relasi basis untuk DBMS target, merancang aturan-aturan integritas untuk DBMS target.
e. Tahap 5
Merancang dan implementasi representasi fisik. Yaitu menganalisa transaksi-transaksi, memilih organisasi file, memilih indeks-indeks sekunder, mempertimbangkan penambahan redudansi yang terkendali, estimasikan ruang disk yang diperlukan.
f. Tahap 6
Merancang dan mengimplementasikan mekanisme pengamanan. Yaitu merancang view-view pemakai, merancang aturan-aturan pengaksesan.
g. Tahap 7
Memonitor dan menyesuaikan system yang sedang operasi.