BAB 7 MERANCANG BASIS DATA Tujuan Pembelajaran: Memahami kaidah Perancangan Basis Data 7.1 Pentingnya Perancangan Basis Data yang Baik 7.2 Macam-macam Relasi Tabel 7.3 Memahami Normalisasi 7.4 Latihan Merancang Basis Data Bab 7 Merancang Basis Data VII- 1 7.1. Pentingnya Perancangan Basis Data yang Baik Dalam sebuah aplikasi berbasis web, keberadaan basis data sangatlah penting. Sebuah situs web akan lebih informatif dan menarik apabila data yang ditampilkannya selalu diperbeharui. Situs web yang seperti ini biasa disebut situs yang dinamis. Untuk situs web yang bersifat dinamis, maka diperlukan tempat penyimpanan data yang disebut dengan basis data(database). Basis Data akan menyimpan semua data yang diperlukan dalam web dinamis. Data yang tersimpan ini dapat bertambah, berubah atau dihapus, sesuai kebutuhan. Situs web yang baik adalah situs yang terpelihara dan data yang ditampilkan selalu diperbaharui. Dalam proses memperbaharui data, maka diperlukan sebuah basis data yang dirancang dengan baik sehingga mampu mengikuti perubahan ragam dan metode penyimpanan data. Sebuah basis data yang dirancang dengan baik memberikan Anda akses ke up to date dan informasi yang akurat. Karena desain yang benar sangat penting untuk mencapai tujuan Anda dalam bekerja dengan database, investasi waktu untuk mempelajari prinsip-prinsip desain yang baik yang dibutuhkan adalah hal yang harus dilakukan. Pada akhirnya, Anda akan jauh lebih nyaman dengan database yang memenuhi kebutuhan Anda dan dapat dengan mudah mengakomodasi perubahan yang terjadi. Artikel ini memberikan pedoman untuk perencanaan database. Anda akan belajar bagaimana untuk memutuskan informasi apa yang Anda butuhkan, bagaimana membagi informasi itu ke dalam tabel dan kolom yang tepat, dan bagaimana antar tabel berhubungan satu sama lain. Anda harus membaca artikel ini sebelum Anda membuat database pertama Anda. Ada prinsip-prinsip tertentu yang memandu proses desain database. Prinsip pertama adalah bahwa duplikat informasi (reduncy) adalah buruk, karena akan boros dalam ruang media penyimpan dan meningkatkan kemungkinan kesalahan dan inkonsistensi. Prinsip kedua adalah bahwa kebenaran dan kelengkapan informasi penting. Jika database Anda berisi informasi yang tidak benar, laporan VII- 2 Bab 7 Merancang Basis Data yang berasal dari informasi yang berada pada database juga akan berisi informasi yang salah. Akibatnya, setiap keputusan yang Anda buat yang didasarkan pada laporan-laporan yang salah. Sebuah desain database yang baik, harus memiliki syarat: 1. Membagi informasi Anda ke dalam tabel berbasis subjek untuk mengurangi data yang berlebihan. 2. Memberikan akses informasi yang diperlukan untuk menggabung informasi dalam tabel bersama-sama sesuai kebutuhan. 3. Membantu dukungan dan memastikan akurasi dan integritas informasi Anda. 4. Mengakomodasi pengolahan data dan kebutuhan pelaporan. 4.1. Macam-macam Relasi Tabel Dalam sebuah basis data, di dalamnya terdapat tabel-tabel. Satu tabel dengan tabel yang lainnya dapat saja saling berelasi/berhubungan. Hal ini dilakukan agar supaya kita dapat mengelompokkan data sesuai dengan karakteristiknya masingmasing dan ketika tabel-tabel ini saling berelasi, kita dapat menarik informasi dari masing-masing karakter data pada tabelnya masing-masing sehingga informasi yang tersaji menjadi utuh, menyeluruh dan lengkap. Perlu kita ketahui sebelumnya untuk pengertian Relasi itu sendiri yaitu adalah hubungan antara tabel yang mempresentasikan hubungan antar objek di dunia nyata. Relasi merupakan hubungan yang terjadi pada suatu tabel dengan lainnya yang mempresentasikan hubungan antar objek di dunia nyata dan berfungsi untuk mengatur mengatur operasi suatu database. Hubungan yang dapat dibentuk dapat mencakup 3 macam hubungan One to One : Mempunyai pengertian "Setiap baris data pada tabel pertama dihubungkan hanya ke satu baris data pada tabel ke dua". Contohnya : relasi antara tabel Siswa dan tabel orang tua. Satu baris siswa hanya berhubungan dengan satu baris orang tua begitu juga sebaliknya. One to Many: Bab 7 Merancang Basis Data VII- 3 Mempunyai pengertian "Setiap baris data dari tabel pertama dapat dihubungkan ke satu baris atau lebih data pada tabel ke dua". Contohnya : relasi perwalian antara tabel guru dan tabel siswa. Satu baris guru atau satu guru bisa berhubungan dengan satu baris atau lebih mahasiswa Many to Many: Mempunyai pengertian "Satu baris atau lebih data pada tabel pertama bisa dihubugkan ke satu atau lebih baris data pada tabel ke dua". Artinya ada banyak baris di tabel satu dan tabel dua yang saling berhubungan satu sama lain. Contohnya : relasi antar tabel siswa dan tabel mata kuliah. Satu baris siswa bisa berhubungan dengan banyak baris mata pelajaran begitu juga sebaliknya. 7.3. Memahami Normalisasi Normalisasi adalah Teknik/pendekatan yang digunakan dalam membangun desain logika database relasional melalui organisasi himpunan data dengan tingkat ketergantungan fungsional dan keterkaitan yang tinggi sedemikian sehingga menghasilkan struktur tabel yang normal. Tujuan normalisasi adalah: 1. Minimalisasi redundansi (pengulangan data) 2. Memudahkan identifikasi entitas 3. Mencegah terjadinya anomaly (Mudah berubahnya bentuk form) Proses normalisasi dilakukan pada tabel yang belum normal, seperti contoh tabel berikut, Salah satu dari ketidaknormalan pada tabel di atas adalah ada beberapa kolom pada baris tertentu datanya tidak lengkap. Kemudian ada beberapa kolom, atau VII- 4 Bab 7 Merancang Basis Data dalam basis data disebut atribut, yang sejenis yang dibuat berulang seperti pada contoh tabel di atas adalah kolom Kerusakan1 sampai Kerusakan 3. Normalisasi Pertama (1NF/ First Normal Form) Karena form tersebut tidak normal, maka kita akan menjadikan database tersebut menjadi INF (First Normal Form) : Suatu relasi disebut memenuhi bentuk normal pertama (1NF) jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dan tidak ada pengulangan grup atribut dalam baris. Bentuk 1NF tidak boleh mengandung grup atribut yang berulang. • Setiap data dibentuk dalam flat file, data dibentuk dalam satu record demi satu record nilai dari field berupa “atomic value”. • Tidak ada set attribute/kolom yang berulang atau bernilai ganda. • Tiap attribute/kolom hanya memiliki satu pengertian. Bentuk normal pertama dari tabel di atas adalah Kolom kerusakan1 sampai 3 diganti dengan satu kolom keterangan. Normalisasi Ke Dua (2 NF /Second Normal Form) Bentuk normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk normal kesatu. Atribute bukan kunci haruslah bergantung secara fungsi pada kunci utama/primary key. Sehingga untuk membentuk normal kedua haruslah sudah ditentukan kunci-kunci field. Kunci field haruslah unik dan dapat mewakili atribute lain yg menjadi anggotanya. Dari contoh Table Rekapitulasi GIN pada normalisasi pertama terlihat bahwa kunci utama/ primary key yaitu NO_GIN, dan yang merupakan kunci tamu/ foreign key yaitu ID_Staff, Kode_Unit, dan Kode_barang. Pada normalisasi kedua Bab 7 Merancang Basis Data VII- 5 ini semua foreign key pada Table Rekapitulasi GIN dipecah menjadi beberapa 3 table. Bentuk Second Normal Form / Normalisasi Kedua: Normalisasi Ketiga (3rd NF/Normal Form) Untuk mencapai bentuk normal ketiga syaratnya adalah: • Sudah berada dalam bentuk normal kedua (2NF) • Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya). Untuk kasus di atas, normalisasi sudah selesai sampai tahap normal kedua. Contoh Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF: Tabel: Mahasiswa NIM Nama alm_jalan alm_kota Alm_Provinsi Alm_odepos karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos): alm_kodepos→ {alm_Provinsi, alm_kota} , sehingga tabel tersebut perlu didekomposisi menjadi: • Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos) • Kodepos (alm_kodepos, alm_provinsi, alm_kota) VII- 6 Bab 7 Merancang Basis Data 7.4 Latihan Merancang Basis Data Rancanglah tabel yang belum normal berikut menggunakan kaidah normalisasi 1 sampai 3. No_Mhs 2325 Nama_Mhs Badrun Jurusan TE Kode_MK BM3301 BM3002 2326 Burhan TE Mobile Application Pemrograman Web Kode_Dosen Nama_dosen Nilai BM221 Ahmad A BM301 Ratna A- BM3201 Networking BM210 Darta B TT3201 SKSO TT301 Wahyu A TT331 Renny B TT221 Ridwan C TT3001 TT3102 Bab 7 Merancang Basis Data Nama_MK Jaringan Broadband Satelit VII- 7 VII- 8 Bab 7 Merancang Basis Data