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