• Tujuan:
• Efisiensi → Penyimpanan lebih kecil dan performa lebih baik.
• Fleksibilitas → Sebisa mungkin untuk dapat digunakan lebih lama.
Cara Penerapan Efisiensi
• Entity lemah
• Turunan dari entity lain untuk meningkatkan performa database.
• Untuk mengurangi kesalahan saat input dan redundansi.
• Contoh: Asal sekolah di tabel mahasiswa
• Kunci alternatif
• Attribute yang tidak ada didunia nyata namun diadakan dapat mewakilkan
data (primary key)
• Menambahkan attribute khusus yang dapat mendukung jangka pemakaian
table.
• Contoh: Penambahan kode_sekolah, kode_krs, dll
Cara Penerapan Fleksibilitas
• Penambahan attribute
• Contoh: data KRS, absensi dll
• Pemilihan domian attribute lebih luas
• Contoh: pemilihan 2 digit / 4 digit di tahun, pemilihan int / double pada
jumlah, dll
• Generalisasi (dibuat umum)
• Contoh: peminjaman di perpustakaan
• Struktur berbasis kolom baris
• Contoh: sirkulasi peminjaman, absensi mahasiswa, dll
Contoh KRS
Id_krs Tahun_akademik Semester Id_matkul Id_mahasiswa nilai
1 2020/2021 1 1 1 C
2 2020/2021 1 2 1 B
… … … … … ..
10 2022/2023 5 1 1 A
Contoh Tanggal 2 / 4 Digit
• Tahun 2 digit
• 1997
• 1998
• 1999
• 2000
• Tahun 4 digit
• 0000 - 9999
Contoh Sirkulasi Peminjaman
Sirkulasi
## Dapat diubah ##
Sirkulasi Detail_sirkulasi