Dalam merancangan basis data kita melakukan :
- Menerapkan
Normalisasi terhadap struktur tabel yang telah diketahui
- Langsung
membuat model Entity Relationship
Perancangan basis data seringkali diartikan dengan
pembuatan model ER dimana kelompok kelompok data dan relasi antar kelompok data
tersebut diwujudkan dalam bentuk diagram.
Normalisasi merupakan cara pendekatan dalam
membangun design lojik basis data relasional yang secara tidak langsung
berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan
kriteria standar untuk menghasilkan struktur tabel yang normal.
-
Atribut Tabel
Atribut biasanya disebut kolom
dalam tabel, atribut dapat dibedakan berdasarkan pengelompokannya. Ada atribut
yang dijadikan sebagai key dan yang lainnya disebut atribut deskriptif
-
Key dan Atribut Deskriptif
Key adalah satu atau
gabungan dari beberapa atribut yang dapat membedakan setiap baris data dalam
tabel secara unik. Artinya jika atribut sudah dijadikan key maka tidak boleh
ada dua atau lebih baris data yang nilainya sama dengan atribut tersebut.
Ada 3 macam key :
- Super Key : Merupakan satu atau lebih atribut yang dapat membedakan setiap baris dalam sebuah table secara unik.
- Candidat Key : Merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Sebuah candidat key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain.
- Primary Key : Primary key diambil dari candidat key yang paling unik.
Atribut Deskriptif adalah
atribut-atribut yang tidak menjadi atau
merupakan anggota dari key primer yang menjelaskan tentang primary key.
-
Atribut
Sederhana dan Atribut Komposit
Atribut sederhana(Simple Attribute)
: atribut atomik yang tidak dapat dipilah lagi.
Contoh : Nama_mhs
Atribut Komposit : Merupakan
atribut yang masing masing dapat diuraikan lagi menjadi sub-sub atribut yang
masing-masing memiliki makna.
Contoh : Alamat_mhs
-
Atribut bernilai
Tunggal dan Atribut bernilai Banyak
Atribut bernilai Tunggal (Single
Valued Attribute) ditujukan pada atribut atribut yang memiliki paling
banyak satu nilai untuk setiap baris data.
Contoh : Nim
Atribut bernilai banyak (Multivalued
Attribute) ditujukan pada atribut atribut yang dapat diisi dengan lebih
dari 1 nilai tetapi jenisnya sama.
Contoh : Notelp
-
Atribut Bernilai
dan Tak bernilai
Atribut Bernilai(mandatory variable) adalah atribut yang harus memiliki
nilai
Contoh : JK
Atribut tak bernilai(Null) adalah atribut yang tidak memiliki nilai
Contoh : Hobby
-
Atribut Turunan(Derived
Attribute) adalah atribut yang nilai nilainya diperoleh dari pengolahan
atau dapat diturunkan dari atribut atau tabel lain yang berhubungan. Atribut
demikian sebenarnya dapat ditiadakan dari sebuah tabel karena nilai-nilainya
bergantung pada nilai yang ada di atribut lainnya.
Contoh : Angkatan, Jurusan à
nim
-
Domain dan Tipe
Data : Penentuan tipe data berimplikasi pada adanya batas-batas nilai yang
mungkin disimpan/diisikan ke setiap atribut(kolom) tersebut.
Contoh :
Field
|
Type
|
Length
|
Keterangan
|
Kode
|
Autonumber
|
3
|
Nomor otomatis untuk membedakan konsumen
|
Nama
|
Text
|
30
|
Untuk
data nama konsumen
|
Alamat
|
Text
|
50
|
Untuk
data alamat konsumen
|
Npwp
|
Text
|
20
|
Untuk
data no Npwp
|
Domain dapat diartikan kemampuan field untuk menyimpan data misalkan
field dengan data jumlah_penjualan
diisikan dengan length 3 maka jumlah maksimum yang diperkenankan untuk angka
adalah 999, tetapi untuk tipe text length merupakan jumlah karakter yang
memungkinkan.
-
Ketergantungan
Fungsional (Functional Depency)
Diberikan sebuah tabel T berisi paling sedikit 2 buah atribut, yaitu A
dan B. kita dapat menotasikan :
A à
B
Yang berarti A secara fungsional mementukan B atau B secara fungsional
tergantung pada A, jika dan hanya jika untuk setiap kumpulan baris data(row)
yang ada pada tabel T pasti ada 2 baris data(row) di tabel T dengan nilai untuk
A yang sama, maka nilai B pasti akan sama.
Contoh
Nim à
nama_mhs
Yang berarti bahwa atribut nama_mhs hanya tergantung pada atribut nim. Hal
ini dibuktikan dari fakta : untuk setiap nilai nim yang sama maka nilai_mhs nya
sama juga.
-
Domain dan Tipe
Data : Penentuan tipe data berimplikasi pada adanya batas-batas nilai yang
mungkin disimpan/diisikan ke setiap atribut(kolom) tersebut.
Contoh :
Field
|
Type
|
Length
|
Keterangan
|
Kode
|
Autonumber
|
3
|
Nomor otomatis untuk membedakan konsumen
|
Nama
|
Text
|
30
|
Untuk
data nama konsumen
|
Alamat
|
Text
|
50
|
Untuk
data alamat konsumen
|
Npwp
|
Text
|
20
|
Untuk
data no Npwp
|
Domain dapat diartikan kemampuan field untuk menyimpan data misalkan
field dengan data jumlah_penjualan
diisikan dengan length 3 maka jumlah maksimum yang diperkenankan untuk angka
adalah 999, tetapi untuk tipe text length merupakan jumlah karakter yang
memungkinkan.
-
Ketergantungan
Fungsional (Functional Depency)
Diberikan sebuah tabel T berisi paling sedikit 2 buah atribut, yaitu A
dan B. kita dapat menotasikan :
A à
B
Yang berarti A secara fungsional mementukan B atau B secara fungsional
tergantung pada A, jika dan hanya jika untuk setiap kumpulan baris data(row)
yang ada pada tabel T pasti ada 2 baris data(row) di tabel T dengan nilai untuk
A yang sama, maka nilai B pasti akan sama.
Contoh
Nim à
nama_mhs
Yang berarti bahwa atribut
nama_mhs hanya tergantung pada atribut nim. Hal ini dibuktikan dari fakta :
untuk setiap nilai nim yang sama maka nilai_mhs nya sama juga.
· Normalisasi
dengan Ketergantungan Fungsional
Sebuah tabel
dapat dikategorikan baik(efisien atau normal) jika memenuhi 3 kriteria
o
LossLess-Join Decomposition
o
Depency Prevervation
o
Boyce-Codd Normal
Form (BCNF)
Jika
kretetia ketiga(BCNF) tidak dapat dipenuhi, maka paling tidak tabel tersebut
tidak melanggar bentuk Normal tahap ketiga
· Bentuk-bentuk
Normal
o
Bentuk Normal
Tahap Pertama
o
Bentuk Normal
Tahap Kedua
o
Bentuk Normal
Tahap Ketiga
o
Bentuk Normal
Tahap Keempat
o
Bentuk Normal
Tahap Kelima
Kelemahan mendasar dari tabel universal adalah :
- Pengulangan
Informasi
- Potensi
inkonsistensi data pada operasi pengubahan
- Tersembunyinya
informasi tertentu
Dari kelemahan yang ada tersebut menggiring kita untuk melakukan dekomposisi yaitu melakukan pemilahan
tabel tersebut menjadi beberapa tabel dengan mempertimbangkan ketergantungan
fungsional yang kita dapatkan.
·
LossLess-Join
Decomposition
Dekomposisi
memang merupakan upaya untuk mendapatkan tabel yang baik. Tetapi jika tidak
hati-hati upaya ini justru dapat menghasilkan kesalahan.
Dekomposisi
yang benar terjadi jika tabel tabel hasil dekomposisi kita gabungkan kembali
dapat menghasilkan tabel awal sebelum didekomposisi.
Dekomposisi seperti ini disebut Lossles-join
Decomposition atau lossles
Decomposition atau dekomposisi aman. Berikut ini contoh abstrak yang
menghasilkan dekomposisi yang tidak aman(Lossy-join
decomposisition). Kita asumsikan ada tabel ABC yang didefinisikan dengan
dua buah KF yaitu : A à B dan B à C.
Misalkan :
A
|
B
|
C
|
|
row 1
|
a 1
|
100
|
c 1
|
row 2
|
a 2
|
200
|
c 2
|
row 3
|
a 3
|
300
|
c 3
|
row 4
|
a 4
|
200
|
c 4
|
Dengan isi seperti itu pernyataan KF yang kedua B à C tidak sepenuhnya
tepat, karena pada row 2 dan row 4, dengan nilai untuk atribut B yang sama,
nilai untuk atribut C nya berbeda. Jika kita pecah menjadi 2 tabel AB dan BC
maka :
A
|
B
|
B
|
C
|
|
a 1
|
100
|
100
|
c 1
|
|
a 2
|
200
|
200
|
c 2
|
|
a 3
|
300
|
300
|
c 3
|
|
a 4
|
200
|
200
|
c 4
|
Jika kedua tabel digabungkan kembali, maka hasilnya adalah :
A
|
B
|
C
|
a 1
|
100
|
c 1
|
a 2
|
200
|
c 2
|
a 2
|
200
|
c 4
|
a 3
|
300
|
c 3
|
a 4
|
200
|
c 2
|
a 4
|
200
|
c 4
|
Hasil ini tentu saja berbeda dengan tabel awal sebelum dekomposisi. Maka
dekomposisi semacam ini disebut Lossy-Decomposition,
sebuah dekomposisi yang sedapat mungkin kita hindari.
Akan tetapi jika data pada row 4 yang ada pada tabel ABC awal, kita ganti
dengan data sebagai berikut :
a 4
|
200
|
c 2
|
Sehingga isi tabel menjadi :
A
|
B
|
C
|
a 1
|
100
|
c 1
|
a 2
|
200
|
c 2
|
a 3
|
300
|
c 3
|
a 4
|
200
|
c 2
|
Dengan data dari tabel ABC demikian, maka KF dapat dibenarkan tabel ABC
tersebut didekomposisi menjadi tabel AB dan BC sebagai berikut :
A
|
B
|
B
|
C
|
|
a 1
|
100
|
100
|
c 1
|
|
a 2
|
200
|
200
|
c 2
|
|
a 3
|
300
|
300
|
c 3
|
|
a 4
|
200
|
Kalau kedua tabel diatas digabung kembali maka awal tabel ABC nya akan diperoleh
kembali. Kita bisa katakan pemilahannya merupakan Dekomposisi Aman (Lossles
DeComposition).
·
Depency
Prevervation (Pemelihara Ketergantungan)
merupakan kriteria kedua yang harus dicapai untuk mendapatkan tabel dan basis
data yang baik. Ketika merupakan perubahan data maka harus bisa dijamin agar
perubahan tersebut tidak menghasilkan inkonsistensi data yang mengakibatkan KF
yang sudah benar menjadi tidak terpenuhi. Akan tetapi dalam upaya untuk
memelihara KF yang ada untuk tetap terpenuhi tersebut, prosesnya harus dapat
dilakukan dengan efisien.
·
Boyce-Codd
Normal Form (BCNF) : sebuah tabel
dikatakan BCNF jika untuk semua KF dengan notasi X à Y, maka X harus
merupakan superkey pada tabel tersebut. Jika tidak demikian maka tabel tersebut
harus didekomposisi berdasarkan KF yang ada sehingga X menjadi superkey dari
tabel yang didekomposisi.
·
Bentuk Normal Tahap Ketiga (3rd
Normal Form)
Merupakan kriteria alternatif jika
kriteria BCNF yang ketat tidak dapat terpenuhi, sebuah tabel dikatakan berada
dalam bentuk normal tahap ketiga (3NF), jika untuk setiap KF dengan notasi X à A, dimana A mewakili semua atribut tunggal di
dalam tabel yang tidak ada di dalam X, maka :
§
X
haruslah superkey pada tabel tersebut.
§
Atau
A merupakan bagian dari key primer pada tabel tersebut.
Tidak ada komentar:
Posting Komentar