1 BAB III PERANCANGAN BASIS DATA DGN TEKNIK NORMALISASI 1.1. RDBM Terminologi Istilah formal Istilah non formal Elemen data (data element), rinci data (data item), entri (entry) Atribut (attribute) Kolom, medan data, medan, field Record / tuple Baris / rekaman Relasi (relation) Tabel Derajat (degree) Aritas (arity) Kardinalitas (cardinality) Kerelasian (relationship) Unary relation Binary relation Ternary relation n-ary relation Key Candidate Key / CK Primary Key / PK Alternate Key / AK Foreign Key / FK Kunci tamu / kunci asing Domain Schema Subschema Contoh Relasi: Relasi Mata_Kuliah Kode_Mata_Kuliah MK-1001 MK-2002 MK-3003 Keterangan Nilai data pada suatu baris-kolom tertentu pada suatu saat tertentu Nama yang diberikan untuk sekelompok rinci data yang mempunyai tipe, ukuran, dan domain yang sama. Sekumpulan atribut yang mempunyai hubungan terhadap obyek tertentu Sekumpulan record yang sejenis secara relasi Jumlah atribut dalam sebuah relasi Jumlah record dalam sebuah relasi Hubungan antar relasi Relasi yang tersusun oleh satu atribut Relasi yang tersusun oleh dua atribut Relasi yang tersusun oleh tiga atribut Relasi yang tersusun oleh n atribut Satu atau gabungan atribut bersifat unik yang digunakan untuk mengidentifikasi setiap record dalam relasi Satu atau gabungan minimal atribut bersifat unik yang dapat digunakan untuk mengidentifikasi setiap record dalam relasi Bagian dari CK yang dipilih sbg kunci utama dalam relasi Bagian dari CK yang tidak dipilih sebagai kunci utama dalam relasi Satu atau gabungan sembarang atribut yang menjadi PK dalam relasi lain yang mempunyai hubungan secara logik Himpunan nilai yang memenuhi syarat Deskripsi hubungan logik secara global, termasuk di dalamnya nama dan deskripsi tipe dan ukuran atribut dan hubungan logik antar relasi basis data dlm lingkup sistem Deskripsi hubungan logik secara terpisah, termasuk di dalamnya nama dan deskripsi tipe dan ukuran atribut dan hubungan logik antar relasi basis data dlm lingkup sub sistem aplikasi tertentu Nama_Mata_Kuliah Pemrograman I Pemrograman II Pemrograman III Sks 2 2 2 Smt 1 2 3 Status W W W 2 Relasi : Mata_Kuliah Derajat : 5 (=5-ary) Atribut : Kode_Mata_Kuliah, Nama_Mata_Kuliah, Sks, Smt, Status Record #1 : MK-1001, Pemrograman I, 2, 1, W Record #2 : MK-2002, Pemrograman II, 2, 1, W Record #3 : MK-3003, Pemrograman III, 2, 1, W Kardinalitas :3 Candidate Key/CK : Kode_Mata_Kuliah dan Nama_Mata_Kuliah Primary Key : Kode_Mata_Kuliah Alternate Key : Nama_Mata_Kuliah Foreign Key/FK : Domain : Kode_Mata_Kuliah : MK-1001, MK-2002, MK-3003 Nama_Mata_Kuliah : Pemrograman I, Pemrograman II, Pemrograman III Sks :2 Smt : 1, 2, 3 Status :W Mata_Kuliah_Schema : (Kode_Mata_Kuliah (Char[8], Nama_Mata_Kuliah Char[50], Sks Num[1], Smt Num[1], Status Char[1]), Primary Key Kode_Mata_Kuliah) Karakteristik Relasi Æ Semua entri single value, bukan grup perulangan, atomic value Æ Semua entri pada suatu atribut mempunyai tipe dan ukuran yang sama Æ Masing-masing atribut mempunyai nama yang unik Æ Pada sebuah relasi tidak ada dua record yang identik Kunci Relasi Jenis: Æ Kunci sederhana (simple key) Kunci komposit (composite key) Macam: Æ Kunci kandidat (Candidate Key / CK) Æ Kunci primer (Primary Key / PK Æ Kunci alternatif (Alternate Key / AK) Æ Kunci penghubung / asing (Foreign Key / FK) Aturan (rule) kunci relasi: Æ Integritas kesatuan / integritas entitas (entity integrity) Æ Integritas referensial (referential integrity) Kerelasian antar relasi Æ 1-ke-1 Æ 1-ke-n / n-ke-1 Æ n-ke-n Anomallies Æ delete aomally Æ insert anomally Æ update anomally Beberapa Definisi Relasi (Relation) 1. Relasi tak gayut: sebuah relasi yang berasal dari entitas reguler / dominan. Ciri relasi tak gayut adalah tidak memiliki FK di dalamnya 2. Relasi asosiatif: sebuah relasi yang mempunyai jenis kerelasian n-ke-n. Ciri relasi asosistif adalah memiliki lebih dari 1 FK 3 3. Relasi karakteristik: sebuah relasi yang berasal dari entitas dependen / tak gayut / tak bebas. Ciri relasi karakteristik umumnya mempunyai jenis kerelasian n-ke-1 terhadap relasi yang menjadi induknya 4. Subrelasi: sebuah relasi yang berasal dari sub type entity. Saat akhir perancangan, subrelasi biasanya digabungkan dengan super relasi Data Dependency Æ FD : R.X →R.Y Jika setiap nilai X berkaitan dengan sebuah nilai pada Y Æ FFD: R.X →R.Y Jika Y functionally dependency thd X dan Y tidak functionally dependency thd bagian tertentu dari X Æ TDF: R.X →R.Y→R.Z Jika Y functionally dependency thd X dan Z functionally dependency thd Y Æ TD : R.X ↔R.Y Jika Y functionally dependency thd X dan X functionally dependency thd Y 1.2. Perancangan Database Dengan Teknik Normalisasi Normalisasi: suatu teknik yang menstrukturkan / memecah / mendekomposisi data dalam cara-cara tertentu untuk mencegah timbulnya permasalahan pengolahan data dalam basis data. Normalisasi menghasilkan relasi yang memiliki: Æ record yang konsisten secara logik Æ record yang mudah dimengerti Æ record yang sederhana dipelihara Æ record yang mudah ditampilkan kembali Æ kerangkapan minimal Level Normal 1. UNF, jika Æ non flat file (data disimpan sesuai kedatangan, tidak memiliki struktur tertentu, terjadi duplikasi atau tidak lengkap) Æ memuat set atribut berulang (repeated group)Æ non single value Æ memuat atribut non atomic value 2. 1NF, jika Æ seluruh atribut bernilai atomik (atomic value) Æ seluruh atribut bernilai tunggal (single value) Æ tidak memuat set atribut berulang Æ semua record mempunyai atribut yang sama Permasalahan dalam 1NF: Æ Tidak dapat menyisipkan informasi parsial Æ Terhapusnya informasi ketika menghapus sebuah record Æ Pembaharuan atribut non kunci mengakibatkan sejumlah record harus diperbaharui Mengubah UNF menjadi 1NF: Æ Melengkapi nilai-nilai dalam atribut Æ Mengubah struktur relasi 3. 2NF, jika: Æ memenuhi kriteria 1 NF Æ semua atribut non kunci FD pada PK Permasalahan 2NF: Æ Kerangkapan data Æ Pembaharuan yang tidak benar menimbulkan data inconsistency Æ Pembaharuan data tidak efisien Æ Penyimpangan penyisipan, penghapusan dan pembaharuan 4 4. 3NF, jika: Æ Jika memenuhi kriteria 2NF Æ Jika setiap atribut non kunci tidak TDF (nontransitive dependeny) terhadap PK Permasalahan dalam 3NF : duplikasi rinci data pada PK 5. BCNF, jika: Æ memenuhi kriteria 3NF Æ semua atribut penentu (determinan) merupakan CK 6. 4NF, jika: Æ memenuhi kriteria BCNF Æ setiap atribut di dalamnya tidak mengalami ketergantungan pada banyak nilai 7. 5NF, jika Æ kerelasian antar data dalam relasi tidak dapat direkonstruksi dari struktur relasi yang lebih sederhana 8. DKNF, jika setiap batasan dapat disimpulkan secara sederhana dengan mengetahui sekumpulan nama atribut dan domainnya Langkah Normalisasi: Contoh 1: Supplier / UNF Kode_Supplier Status S01 10 Kota Jakarta Kode_Barang B01 B02 B03 S02 20 Surabaya B02 B04 S03 30 Yogyakarta B05 B06 Æ Lengkapi nilai-nilai rinci data dalam relasi Jumlah_Barang 100 150 200 250 200 150 100 Supplier_1 / 1NF Kode_Supplier Status Kota Kode_Barang Jumlah_Barang S01 10 Jakarta B01 100 S01 10 Jakarta B02 150 S01 10 Jakarta B03 200 S02 20 Surabaya B02 250 S02 20 Surabaya B04 200 S03 30 Yogyakarta B05 150 S03 30 Yogyakarta B06 100 Æ Tentukan kunci relasi, FD, dan TDF Æ Dekomposisi relasi berdasarkan FD (2NF masih memuat TDF) Diagram ketergantungan data dalam Supplier_1: Kode_Supplier Status Kode_Barang Jumlah_Barang Kota 5 Supplier_2 / 2NF Kode_Supplier Status Kota Barang Kode_Supplier Kode_Barang Jumlah_Barang Æ Dekomposisi relasi berdasarkan TDF Logical Record Structure Barang Kota Kode_Supplier * Kode_Barang * Jumlah_Barang Status * Kota Supplier_3 Kode_Supplier * Status ** Supplier_3 / 3NF Kode_Supplier Status Kota Status Kota Barang Kode_Supplier Kode_Barang Jumlah_Barang Langkah selanjutnya: o Perancangan Detail Spesifikasi Struktur Relasi Contoh 2: KRS / UNF NIM Nama_Mahasiswa Kode_MK_1 Sks_1 Tahun_Smt_1 Kode_MK_2 Æ Ubah struktur relasi (dari horizontal menjadi vertikal) KRS_1 / 1NF NIM Nama_Mahasiswa Kode_MK Sks Tahun_Smt Æ Tentukan kunci relasi, FD, dan TDF Æ Dekomposisi relasi berdasarkan FD (2NF masih memuat TDF) Diagram ketergantungan data KRS_1: NIM Nama_Mahasiswa Kode_MK Tahun_Smt Sks Sks_2 Tahun_Smt_2 6 KRS_2 / 2NF NIM Tahun_Smt Kode_MK Sks Mahasiswa NIM Nama_Mahasiswa Æ Dekomposisi berdasarkan TDF Logical Record Structure Mahasiswa Mata_Kuliah NIM * Nama_Mahasiswa Kode_MK * Sks KRS_3 NIM * Tahun_Smt * Kode_MK * KRS_3 / 3NF NIM Tahun_Smt Kode_MK Mata_Kuliah Kode_MK Sks Mahasiswa NIM Nama_Mahasiswa Langkah selanjutnya: o Perancangan Detail Spesifikasi Struktur Relasi Contoh 3: DOSEN_WALI / UNF NIM Nama_Mahasiswa Tempat_Tgl_Lahir Tgl_Lahir Tpt_Lhr Kode_Dosen Nama_Dosen Æ Ubah struktur relasi (dari non atomic menjadi atomic) DOSEN_WALI_1 / 1NF NIM Nama_Mahasiswa Tempat_Lahir Tgl_Lahir Kode_Dosen Æ Tentukan kunci relasi, FD, dan TDF Æ Dekomposisi relasi berdasarkan FD (2NF masih memuat TDF) Diagram ketergantungan data DOSEN_WALI_1: NIM Nama_Mahasiswa Tempat_Lahir Tgl_Lahir Kode_Dosen Nama_Dosen Nama_Dosen 7 DOSEN_WALI_2 / 2NF NIM Kode_Dosen Nama_Dosen Mahasiswa NIM Nama_Mahasiswa Tempat_Lahir Æ Dekomposisi berdasarkan TDF Tgl_Lahir Logical Record Structure Mahasiswa Dosen Kode_Dosen * Nama_Dosen NIM * Nama_Mahasiswa Tempat_Lahir Tgl_Lahir KRS_3 NIM * Kode_Dosen* DOSEN_WALI_3 / 3NF NIM Kode_Dosen DOSEN Kode_Dosen Nama_Dosen Mahasiswa NIM Nama_Mahasiswa Tempat_Lahir Tgl_Lahir Langkah selanjutnya: o Perancangan Detail spesifikasi struktur relasi Efek Normalisasi Æ munculnya duplikasi rinci data pada FK Æ kemungkinan tidak terpenuhinya integritas referensial Æ inefisiensi menampilkan kembali data Æ Batasan penerapan