Anda di halaman 1dari 11

Praktikum Basis Data

Modul V
Normalisasi
I. Tujuan
a. Mahasiswa mampu membuat database yang baik (Efisien)
b. Mahasiswa mampu melakukan normalisasi tabel

II. Dasar Teori


1. Atribut Tabel
1.1 Key
Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan
semua baris data (row) dalam tabel secara unik. Jika suatu atribut dijadikan key, maka
tidak boleh ada dua atau lebih baris data dengan nilai yang sama untuk atribut tersebut.
Key juga berfungsi sebagai penghubung atau hubungan antara tabel satu dengan tabel
lainnya dalam suatu database.
Ada beberapa jenis key, yaitu:

a. Primary Key : Key utama atau kunci primer adalah satu atau lebih atribut yang
digunakan untuk mengidentifikasi setiap baris dalam tabel. Setiap tabel hanya
memiliki satu primary key.

b. Foreign Key : Key asing atau kunci asing adalah atribut yang digunakan untuk
membuat hubungan antara dua tabel dalam database. Atribut ini merupakan
primary key dari tabel asal (atau parent table) dan ditambahkan ke tabel tujuan
(atau child table) sebagai foreign key.

c. Candidate Key : Kunci kandidat atau candidate key adalah atribut atau
kombinasi atribut yang dapat digunakan sebagai primary key karena memiliki
sifat unik dan tidak null.

d. Alternate Key : Kunci alternatif atau alternate key adalah candidate key selain
primary key yang dapat digunakan untuk mengidentifikasi setiap baris dalam
tabel.
Praktikum Basis Data
1.2 Atribut Deskriptif
Atribut deskriptif dalam database adalah atribut yang digunakan untuk
memberikan informasi atau deskripsi tentang suatu objek atau entitas dalam sebuah
tabel. Atribut deskriptif biasanya digunakan untuk memberikan informasi tambahan
atau deskripsi yang berguna dalam proses pengolahan data. Contoh atribut deskriptif
adalah nama, alamat, nomor telepon, email, dan sebagainya. Atribut ini dapat
digunakan untuk menggambarkan atau menjelaskan suatu objek dalam tabel, seperti
pelanggan, produk, atau transaksi. Atribut deskriptif ialah Atribut-atribut yang tidak
menjadi atau bukan merupakan anggota dari atribut primary key.
1.2.1 Atribut sederhana dan Komposit

- Atribut Sederhana
Atribut sederhana adalah atribut yang nilainya tunggal atau tidak terdiri
dari atribut lainnya. Contoh atribut sederhana adalah nama, alamat, umur,
dan lain sebagainya. Setiap atribut sederhana
memiliki tipe data tertentu seperti string, integer, atau float. Atribut
sederhana adalah atribut atomik yang tidak dapat dibagi lagi. Contoh :
Atribut nama mahasiswa

- Atribut komposit adalah atribut yang masih dapat diuraikan lagi menjadi
sub-sub atribut yang masing-masing memiliki makna.
Contoh : Atribut alamat (sub atribut nama kota, jalan, kode pos).
1.2.2 Atribut bernilai tunggal dan bernilai banyak

- Atribut bernilai tunggal (single value attribute) adalah Atribut bernilai


tunggal adalah atribut yang hanya memiliki satu nilai untuk setiap baris
data dalam tabel. Contohnya adalah atribut 'nama' pada tabel karyawan,
dimana setiap karyawan hanya memiliki satu nama.

- Atribut bernilai banyak adalah Atribut bernilai banyak adalah atribut yang
memiliki lebih dari satu nilai untuk setiap baris data dalam tabel.
Contohnya adalah atribut 'bahasa' pada tabel karyawan, dimana setiap
karyawan dapat menguasai lebih dari satu bahasa.
Praktikum Basis Data
1.2.3 Atribut harus bernilai dan nilai Null

- Atribut Harus Bernilai (Mandatory Attribute) : Atribut yang bernilai wajib


adalah atribut yang harus memiliki nilai untuk setiap baris data dalam tabel.
Jika sebuah baris data tidak memiliki nilai untuk atribut ini, maka data
tersebut tidak dapat disimpan dalam database. Contoh atribut yang bernilai
wajib adalah nomor identitas atau nomor telepon.

- Atribut yang Bernilai Opsional (Optional Attribute): Atribut yang bernilai


opsional adalah atribut yang tidak wajib memiliki nilai untuk setiap baris
data dalam tabel. Jika sebuah baris data tidak memiliki nilai untuk atribut
ini, maka database akan tetap menyimpan data tersebut dengan nilai NULL.
Contoh atribut yang bernilai opsional adalah alamat email atau tanggal
lahir.
1.2.4 Atribut turunan
Atribut turunan (derived attribute) adalah atribut yang nilainya dapat
dihitung atau dihasilkan dari atribut lain dalam tabel. Atribut ini tidak selalu
disimpan dalam tabel, tetapi nilainya dapat dihitung secara
otomatis menggunakan perhitungan atau formula yang telah
ditentukan. Contoh dari atribut turunan adalah total harga dari sebuah produk
dalam sebuah transaksi, yang dapat dihitung dengan mengalikan harga produk
dengan jumlah yang dibeli. Dalam contoh ini, harga produk dan jumlah yang
dibeli adalah atribut utama, sedangkan total harga adalah atribut turunan.

2. Ketergantungan (Dependency)
Konsep ketergantungan (dependency) dalam basis data mengacu pada hubungan
antara dua atau lebih atribut dalam sebuah tabel. Dalam konsep ini, ketergantungan
terjadi ketika nilai dari satu atau beberapa atribut dalam tabel dapat menentukan nilai
dari atribut lainnya. Jenis-jenis ketergantungan :
a. Ketergantungan Fungsional
Ketergantungan fungsional terjadi ketika nilai dari satu atau beberapa
atribut dalam tabel dapat menentukan nilai dari atribut lainnya secara unik.
Contohnya, dalam tabel karyawan, nomor identitas karyawan dapat menentukan
nama karyawan secara unik. Dalam hal ini, kita dapat mengatakan bahwa ada
Praktikum Basis Data
ketergantungan fungsional antara nomor identitas karyawan dan nama
karyawan.
b. Ketergantungan Nonfungsional
Ketergantungan nonfungsional terjadi ketika terdapat ketergantungan
antara dua atau lebih atribut dalam tabel, tetapi ketergantungan tersebut tidak
bersifat fungsional. Contohnya, dalam tabel karyawan, alamat email dan nomor
telepon dapat berkaitan, tetapi tidak bersifat fungsional.
c. Ketergantungan Total
Ketergantungan total (total dependency) adalah jenis ketergantungan
fungsional di mana suatu atribut dapat ditentukan sepenuhnya oleh kombinasi
nilai dari beberapa atribut lain dalam sebuah tabel. Dalam hal ini, nilai dari
atribut tersebut tidak dapat ditentukan hanya oleh salah satu atribut saja,
melainkan harus melibatkan kombinasi nilai dari beberapa atribut.
d. Ketergantungan Transitif
Ketergantungan transitif (transitive dependency) adalah jenis ketergantungan
fungsional di mana suatu atribut dapat ditentukan oleh atribut lain melalui
atribut yang ketiga dalam sebuah tabel. Dalam hal ini, nilai dari suatu atribut
tidak ditentukan langsung oleh atribut utama, melainkan melalui atribut yang
tidak langsung terhubung dengan atribut tersebut.

3. Normalisasi
Teknik/pendekatan yang digunakan dalam membangun desaign logic
database relasional melalui organisasi himpunan data dengan tingkat
ketergantungan fungsional dan keterkaitan yang tinggi sedemikian sehingga
menghasilkan struktur tabel yang normal. Proses normalisasi bertujuan untuk,
meminimalisasi redundansi (pengulangan data), memudahkan identifikasi entitas,
mencegah terjadinya anomali, mengurangi kompleksitas, menciptakan basisdata
yang efektif dan efisien.
Proses desain database yang bertujuan untuk mengurangi redundansi data
dan memperbaiki struktur basis data agar lebih efisien dan terorganisir dengan baik.
Normalisasi dilakukan dengan memecah tabel-tabel yang tidak memenuhi syarat-
syarat normalisasi menjadi beberapa tabel kecil yang terkait dengan baik satu sama
lain.
Praktikum Basis Data
Proses Normalisasi : (1.) Data diuraikan dalam bentuk tabel, selanjutnya
dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat. (2.) Apabila tabel
yang diuji belum memenuhi persyaratan tertentu (bentuk normal), maka tabel
tersebut perlu dipecah menjadi beberapa tabel yanglebih sederhana sampai
memenuhi bentuk yang optimal. Beberapa bentuk normal (normal forms, NF):
1NF, 2NF, 3NF, BCNF based on keys and functional dependencies
4NF, 5NF based on keys and multi-valued dependencies
Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria
sebagai berikut :
a. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus
dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut
diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut
bisa menghasilkan tabel semula dengan sama persis.
b. Terpeliharanya ketergantungan fungsional pada saat perubahan data
(Dependency Preservation).
c. Tidak melanggar Boyce-Code Normal Form (BCNF)
Normalisasi terdiri dari beberapa tingkat normalisasi atau normal form.
1. Bentuk Normal Pertama (1NF)
Suatu relasi disebut memenuhi bentuk normal pertama (1NF) jika dan hanya
jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dan tidak ada
pengulangan grup atribut dalam baris. Bentuk
1NF tidak boleh mengandung grup atribut yang berulang.
Tujuan membentuk 1NF :
• Semantik tabel menjadi lebih eksplisit (say anything once).
• Semua operator aljabar relasional dapat diaplikasikan pada tabel.
Praktikum Basis Data

2. Bentuk Normal Kedua (2NF)


Suatu relasi disebut memenuhi bentuk normal kedua (2NF) jika dan
hanya, jika :
a. Memenuhi bentuk 1NF
b. Setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap
semua atribut kunci dan bukan hanya sebagian atribut kunci (fully
functionally dependent).
Untuk normalisasi ke bentuk 2NF, maka tabel 1NF didekomposisi menjadi
beberapa tabel yang masing-masing memenuhi 2NF. Bila terdapat
ketergantungan parsial maka : eliminate.
Tujuan membentuk 2NF :
• Semantik tabel 2NF menjadi lebih eksplisit (fully FD)
• Mengurangi update anomali yang masih mungkin terjadi pada 1NF
Praktikum Basis Data

3. Bentuk Normal Ketiga (3NF)


Suatu relasi disebut memenuhi bentuk normal ketiga (3NF) jika dan hanya, jika :
a. Memenuhi 2NF
b. Setiap atribut yang bukan kunci tidak tergantung secara fungsional terhadap
atribut bukan kunci yang lain dalam relasi tsb (tidak terdapat ketergantungan
transitif pada atribut bukan kunci).
Pengertian lain dari bentuk normal ketiga (3NF) jika dan hanya jika setiap FD
nontrivial : X & A, dimana X dan A atribut (atau kompositnya), memenuhi salah
satu kondisi :
1. X adalah superkey
2. A merupakan anggota candidate key (A disebut prime attribute) Jika suatu
relasi sudah memenuhi 2NF tapi tidak memenuhi 3 NF, maka untuk
normalisasi ke bentuk 3NF, tabel 2NF didekomposisi menjadi beberapa tabel
hingga masing-masing memenuhi 3NF. Jika suatu relasi memenuhi 2NF dan
hanya memiliki tepat satu atribut yang bukan kunci utama maka relasi tsb
memenuhi 3NF.
Tujuan membentuk 3NF :
• Semantik tabel 3NF menjadi lebih eksplisit (fully FD hanya pada primary
key).
• Menghindari update anomali yang masih mungkin terjadi pada 2NF.
Praktikum Basis Data

4. BCNF (Boyce-Code Normal Form)


Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional
dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X Y maka
X adalah super key.

Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu

termasuk BCNF . Perbedaannya, untuk functional dependency X A, BCNF tidak


membolehkan A sebagai bagian dari primary key. Untuk normalisasi ke bentuk
BCNF, maka tabel 3NF didekomposisi menjadi beberapa tabel yang masing-masing
memenuhi BCNF.
Tujuan membentuk BCNF :
• Semantik multiple candidate key menjadi lebih eksplisit (FD hanya pada
candidate key).
• Menghindari update anomali yang masih mungkin terjadi pada 3NF.
5. Bentuk Normal Keempat (4NF)
Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk
BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued
attribute. Untuk setiap multivalued dependencies (MVD) juga harus merupakan
functional dependencies.
6. Bentuk Normal Kelima (5NF)
Praktikum Basis Data
Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless
decomposition menjadi tabel-tabel yg lebih kecil. Jika 4 bentuk normal sebelumnya
dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep
join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-
tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula.
Praktikum Basis Data

III. Guided
PT. Mencari Berkah Sejati
Jl. D.I Panjaitan No 128 Purwokerto 53147

Nota Pembelian Barang

Kode Supplier : B210W Nomor Nota : 002


Nama Supplier : Budi Santos Tanggal : 16 April 2023
Alamat : Jl. Semangisu No 14 Surabaya
Telepon : 08123909908

Kode Barang Nama Barang Harga satuan Jumlah Total Barang

BU000123 Biore Rp. 800.000 5 Rp. 4.000.000

BU000124 Iunik Rp. 850.000 5 Rp. 4.250.000

BU000125 Somethinc Rp. 900.000 3 Rp. 2.700.000

BU000126 Innisfree Rp. 1.200.000 4 Rp. 4.800.000

BU000127 Laneige Rp. 2.000.00 2 Rp. 4.000.000


Praktikum Basis Data

IV.Unguided
Hasil perancangan basidata dalam bentuk normal ketiga (3NF) atau BCNF dari
persoalan dibawah ini.

Perpusda Hongwarts
Jl. In aja No.23

Nota Peminjaman Buku

No.Anggota : 123456 Nomor Nota : 003


Nama Peminjam : Madam Lim Tanggal : 18 April 2023
Alamat : Jl. Sumberasi No 14 Banyumas
Telepon : 08123909908

Kode Judul Buku Pengarang Tahun Lama Tanggal


Buku Terbit Pinjam(hari) Kembali

P01245 The Song of Madeline Miller 2011 7 April 25 2023


Achilles

P01246 They Both Die Adam Silvera 2017 8 April 26 2023


At the End

P01247 The Seven Taylor Jenkins 20177 4 April 22 2023


Husbands of
Evelyn Hugo

P01248 Red, White & Casey m 2019 9 April 27 2023


Royal Blue

P01249 It Ends with US Collen H 2013 10 April 28 2023

Anda mungkin juga menyukai