Database adalah sekumpulan data yang saling berhubungan. Database yang baik adalah database yang dapat memberikan informasi bagi penggunanya. Untuk memberikan informasi sesuai dengan kehendak pengguna maka diperlukan pendesaian database.
Adapun langkah-langkah dalam proses desain database sebagai berikut :
1. Analisis persyaratan
Langkah pertama dalam proses desain database adalah memahami dan mengetahui data apa yang akan disimpan dalam database. Aplikasi apa yang akan dibuat, jenis operasi apa yang digunakan, dan seterusnya.
2. Desain database konseptual
Data yang diperoleh dari tahap analisis persyaratan digunakan untuk mengembangkan deskripsi data yang disimpan dalam database. Dalam proses ini kita menggunakan model ER yang tujuannya adalah untuk membuat gambar sederhana tentang data sesuai dengan pemikiran pengguna dan mengembangkan data tersebut secara lebih luas.
3. Desain database logika
Langkah yang ketiga yaitu mengubah model ER menjadi skema database yang relasional. Disini kita harus memilih DBMS untuk mengimplementasikan desain database kita.
Berikut ini adalah langkah-langkah dalam merancang database logika :
a) Mendefinisi entity yang dibutuhkan
Entity merupakan objek yang mewakili sesuatu yang nyata. Simbol dari entity biasanya digambarkan dengan persegi panjang.
Misalnya dalam sistem informasi akademik, yang bisa dijadikan entity adalah entity mahasiswa, entity dosen, dan entity mata kuliah.
b) Menentukan atribut dari setiap entity beserta kuncinya
Setelah menentukan entity, langkah berikutnya adalah menentukan atribut dari entity tersebut.
Berikut ini adalah contoh atribut dan kunci dari entity mahasiswa, dosen, dan mata kuliah :
Entity
|
Atribut
|
Mahasiswa
|
NIM
|
Nama Mahasiswa
| |
Tempat Tanggal Lahir
| |
Jenis Kelamin
| |
Agama
| |
Alamat
| |
Fakultas
| |
Jurusan
| |
Angkatan
| |
Dosen
|
NIP
|
Nama dosen
| |
Jurusan
| |
Bidang keahlian
| |
Alamat
| |
Mata Kuliah
|
Kode matkul
|
Nama matkul
| |
SKS
| |
Semester
|
Keterangan : atribut yangbercetak tebal dan bergaris bawah merupakan primary key.
c) Menentukan relasi antar entity
Setelah menentukan entity dan atribut, selanjutnya adalah kita menentukan relasi antar entity. Jika entity yang satu dengan entity yang lain saling berhubungan, maka hubungan tersebut dinyatakan sebagai entity baru. Entity hasil relasi mempunyai kunci tamu (foreign key). Simbol dari entity baru digambarkan dengan jajaran genjang.
Antara entity dosen dengan mata kuliah, kita bisa membuat entity baru yang yaitu entity jadwal kuliah, berikut adalah atributnya :
· NIP
· Kode matkul
· Hari
· Jam
· Ruang
Antara entity mahasiswa dengan mata kuliah, kita bisa membuat entity baru yang yaitu entity KHS, berikut adalah atributnya :
· NIM
· Kode matkul
· Nilai
Antara entity mahasiswa dengan dosen, kita bisa membuat entity baru yang yaitu entity jadwal kuliah, berikut adalah atributnya :
· NIM
· NIP
· Tanggal mulai bimbingan
· Tanggal selesai
d) Menentukan derajat relasi
Derajat relasi yang terjadi antara entity satu dengan entity yang lain adalah one to one (1:1), one to many/many to one (1:N/N:1), dan many to many (M:N).
· Derajat relasi antara dosen dengan mata kuliah adalah one to many, karena seorang dosen bisa mengampu lebih dari satu mata kuliah dan satu mata kuliah biasanya hanya diampu oleh satu dosen.
· Derajat relasi antara mahasiswa dengan mata kuliah adalah many to many, karena satu mahasiswa boleh mengambil lebih dari satu mata kuliah dan satu mata kuliah boleh diambil oleh banyak mahasiswa
· Derajat relasi antara mahasiswa dengan dosen adalah one to many, karena satu mahasiswa hanya mempunyai satu dosen pembimbing tapi satu dosen pembimbing bisa mempunyai banyak mahasiswa bimbingan.
4. Perbaikan skema
Dalam tahap ini kita harus mengecek sekumpulan relasi dalam skema database relasional agar kita dapat menemukan masalah yang muncul dan memperbaikinya. Langkah ini sering disebut juga dengan istilah Normalisasi.
Berikut adalah tingkatan bentuk normal dalam proses normalisasi :
· Bentuk Normal Pertama (1NF)
· Bentuk Normal Kedua (2NF)
· Bentuk Normal Ketiga(3NF)
· Bentuk Normal Boyce-Codd (BCNF)
· Bentuk Normal Keempat (4NF)
· Bentuk Normal Kelima (5NF)
5. Desain database fisik
Proses perancangan fisik merupakan transformasi dari perancangan logis terhadap jenis DBMS yang digunakan sehingga dapat disimpan secara fisik dalam media penyimpanan.
· Transformasi entity menjadi tabel
No
|
Entity
|
Tabel
|
1
|
Entity mahasiswa
|
Tabel mahasiswa
|
2
|
Entity mata kuliah
|
Tabel matakuliah
|
3
|
Entity dosen
|
Tabel dosen
|
4
|
Entity jadwal
|
Tabel jadwal
|
5
|
Entity KHS
|
Tabel KHS
|
6
|
Entity skripsi
|
Tabel skripsi
|
· Transformasi atribut menjadi field
Entity
|
Atribut
|
Nama Field
|
Mahasiswa
|
NIM
|
NIM
|
Nama Mahasiswa
|
Nama
| |
Tempat Tanggal Lahir
|
TTL
| |
Jenis Kelamin
|
Jenis_kelamin
| |
Agama
|
Agama
| |
Alamat
|
Alamat
| |
Fakultas
|
Fakultas
| |
Jurusan
|
Jurusan
| |
Angkatan
|
Angkatan
| |
Dosen
|
NIP
|
NIP
|
Nama dosen
|
Nama_dosen
| |
Jurusan
|
Jurusan
| |
Bidang keahlian
|
Bidang_keahlian
| |
Alamat
|
Alamat
| |
Mata Kuliah
|
Kode matkul
|
Kode
|
Nama matkul
|
Nama_matkul
| |
SKS
|
SKS
| |
Semester
|
Semester
| |
Jadwal Kuliah
|
NIP
|
NIP
|
Kode matkul
|
Kode
| |
Hari
|
Hari
| |
Jam
|
Jam
| |
Ruang
|
Ruang
| |
KHS
|
NIM
|
NIM
|
Kode matkul
|
Kode
| |
Nilai
|
Nilai
| |
Skripsi
|
NIM
|
NIM
|
NIP
|
NIP
| |
Tanggal mulai bimbingan
|
Tanggal mulai
| |
Tanggal selesai
|
Tanggal selesai
|
· Menentukan tipe data dari field
Entity
|
Nama Field
|
Type Data
|
Mahasiswa
|
NIM
|
Text
|
Nama
|
Text
| |
TTL
|
Text
| |
Jenis_kelamin
|
Text
| |
Agama
|
Text
| |
Alamat
|
Text
| |
Fakultas
|
Text
| |
Jurusan
|
Text
| |
Angkatan
|
Number
| |
Dosen
|
NIP
|
Text
|
Nama_dosen
|
Text
| |
Jurusan
|
Text
| |
Bidang_keahlian
|
Text
| |
Alamat
|
Text
| |
Mata kuliah
|
Kode
|
Text
|
Nama_matkul
|
Text
| |
SKS
|
Number
| |
Semester
|
Number
| |
Jadwal
|
NIP
|
Text
|
Kode
|
Text
| |
Hari
|
Text
| |
Jam
|
Date/Time
| |
Ruang
|
Text
| |
KHS
|
NIM
|
Text
|
Kode
|
Text
| |
Nilai
|
Text
| |
Skripsi
|
NIM
|
Text
|
NIP
|
Text
| |
Tanggal mulai
|
Date/Time
| |
Tanggal selesai
|
Date/Time
|
· Menentukan ukuran dari field
Entity
|
Nama Field
|
Type Data
|
Ukuran
|
Mahasiswa
|
NIM
|
Text
|
15
|
Nama
|
Text
|
35
| |
TTL
|
Text
|
20
| |
Jenis_kelamin
|
Text
|
10
| |
Agama
|
Text
|
8
| |
Alamat
|
Text
|
50
| |
Fakultas
|
Text
|
15
| |
Jurusan
|
Text
|
15
| |
Angkatan
|
Number
|
Byte
| |
Dosen
|
NIP
|
Text
|
15
|
Nama_dosen
|
Text
|
35
| |
Jurusan
|
Text
|
15
| |
Bidang_keahlian
|
Text
|
20
| |
Alamat
|
Text
|
50
| |
Mata Kuliah
|
Kode
|
Text
|
8
|
Nama_matkul
|
Text
|
15
| |
SKS
|
Number
|
Byte
| |
Semester
|
Number
|
Byte
| |
Jadwal
|
NIP
|
Text
|
15
|
Kode
|
Text
|
15
| |
Hari
|
Text
|
6
| |
Jam
|
Date/Time
|
Medium Date
| |
Ruang
|
Text
|
6
| |
KHS
|
NIM
|
Text
|
15
|
Kode
|
Text
|
15
| |
Nilai
|
Text
|
1
| |
Skripsi
|
NIM
|
Text
|
15
|
NIP
|
Text
|
15
| |
Tanggal mulai
|
Date/Time
|
Medium Date
| |
Tanggal selesai
|
Date/Time
|
Medium Date
|
6. Desain aplikasi dan keamanan
Dalam tahap ini kita harus bisa mengidentifikasi entitas dan proses-proses yang terlibat dalam aplikasi database.