Design Database Best
Practice Guidance
Berikut ini merupakan point-point yang perlu sahabat database sql perhatikan
dalam melakukan design database, baik menggunakan database oracle, database ms
sql server, database mysql, dan beragam database dengan system RDBMS lainnya.
Simak baik baik berikut ini point-point penting yang perlu sahabat database sql
perhatikan :
1 Gunakanlah pendefinisian dengan baik dan konsisten untuk
nama-nama tabel dan kolom (misalnya sekolah, StudentCourse, CourseID ...).
2 Gunakan singular atau tunggal untuk nama tabel (yaitu
menggunakan StudentCourse bukan StudentCourses). Pada design database ini,
tabel merupakan koleksi entitas, tidak ada kebutuhan untuk nama plural atau
jamak.
3 Usahakan saat melakukan design database untuk jangan pernah
menggunakan spasi untuk nama tabel. Jika tidak, maka anda akan harus
menggunakan tanda / karakter '{', '[', '"' dll untuk mendefinisikan tabel
(yaitu untuk mengakses tabel Student Course Anda akan menulis " Student
Course ". Akan jauh lebih baik apabila anda menuliskannya sebagai
StudentCourse).
4 Jangan menggunakan awalan ataupun akhiran yang tidak perlu
untuk nama tabel (yaitu menggunakan School bukannya TblSchool, SchoolTable
dll).
5 Jagalah password agar tetap dalam keadaan dienkripsi, hal
ini tentunya sangat penting untuk keamanan. Anda cukup mendekripsi mereka dalam
aplikasi bila diperlukan.
6 Gunakan metadata integer untuk kolom id untuk semua tabel.
Jika id tidak diperlukan untuk saat ini, mungkin diperlukan di masa depan
(untuk tabel asosiasi, indexing, dll ...).
7 Pilih kolom dengan tipe data integer (atau variannya) untuk
mengindeks. Mengindeks kolom dengan tipe data varchar akan menyebabkan masalah
pada kinerja database anda.
8 Gunakan kolom dengan digit yang sedikit untuk nilai
boolean. Menggunakan tipe data integer atau varchar hanya akan memakan
penyimpanan yang tidak perlu. Juga mulailah nama-nama kolomnya dengan
"Is".
9 Menyediakan otentikasi untuk akses database. Jangan
memberikan peran admin untuk setiap pengguna.
Pada process design
database, normalisasi yang kurang akan menyebabkan pengulangan berlebihan pada
data, sebaliknya normalisasi yang berlebihan akan menyebabkan join yang
berlebihan di begitu banyak tabel
10 Hindari query "select *" sampai memang benar-benar
sangat diperlukan. Gunakan "select [required_columns_list]" untuk
kinerja yang lebih baik.
11 Menggunakan kerangka atau framework ORM (object relational
mapping) (contoh yaitu hibernate, iBATIS ...) jika kode aplikasinya yang cukup
besar. Masalah kinerja framework ORM dapat ditangani oleh parameter konfigurasi
secara detail.
12 Buat partisi yang besar dan table yang jarang digunakan
atau tidak terpakai / bagian-bagian table ke penyimpanan fisik yang berbeda
untuk kinerja query yang lebih baik.
13 Untuk system database yang besar, sensitif dan memiliki
misi kritikal, disarankan untuk menggunakan system disaster recovery dan
layanan keamanan seperti failover clustering, backup otomatis, replikasi dll
14 Gunakan constraint (foreign key, check, not null ...)
untuk integritas data. Jangan memberikan seluruh kontrol untuk kode aplikasi.
15 Kurangnya dokumentasi database merupakan sesuatu yang
jahat. Dokumentasikanlah desain database Anda dengan skema ER dan
instruksi-instruksi. Juga tuliskan baris komentar untuk trigger yang anda buat,
stored procedure dan skrip-skrip lainnya.
16 Menggunakan indeks untuk permintaan yang sering digunakan
pada tabel besar. Tool Analyser dapat digunakan untuk menentukan di mana indeks
akan ditentukan. Untuk query mengambil berbagai baris, clustered index biasanya
lebih baik. Untuk query tertentu, indeks non-clustered biasanya lebih baik.
17 Database server dan server web harus ditempatkan dalam
mesin yang berbeda. Ini akan memberikan keamanan (penyerang tidak dapat
mengakses data secara langsung) dan server CPU dan kinerja memori akan lebih
baik karena mengurangi jumlah permintaan dan penggunaan proses.
18 Gambar dan kolom data yang berbentuk blob tidak harus
didefinisikan dalam tabel yang sering diquery karena masalah kinerja. Data ini
harus ditempatkan dalam tabel terpisah dan pointer mereka dapat digunakan dalam
tabel yang diquery.
19 Pada design database, secara best practice nya normalisasi
harus digunakan sesuai dengan kebutuhan, untuk mengoptimalkan kinerja.
Normalisasi yang kurang akan menyebabkan pengulangan berlebihan pada data,
sebaliknya normalisasi yang berlebihan akan menyebabkan join yang berlebihan di
begitu banyak tabel. Keduanya akan mendapatkan kinerja yang lebih buruk.
Menghabiskan waktu untuk pemodelan database dan design database
sebanyak yang diperlukan. Jika tidak waktu desain disimpan (!) akan menyebabkan
(Waktu desain disimpan (!)) * 10/100/1000 pemeliharaan dan waktu untuk
melakukan re-desain.
Komentar
Posting Komentar