Anda di halaman 1dari 65

CTI3A3

Basis Data Lanjut


Perkuliahan #3

Tim Dosen
Semester Genap 2020/2021
Kerangka Bahasan
• Program Learning Outcome (PLO)
• Course Learning Outcome (CLO)
• Review Materi Pertemuan #2
• Materi Pertemuan #3
• Konsep ketergantungan fungsional dan key
• Penerapan ketergantungan fungsional dan key, disertai contoh
• Kesimpulan
• Tugas
• Referensi
PLO – CLO
• PLO-04
• Mampu melakukan kegiatan pengumpulan, menganalisis, dan
mensintesis data untuk menyelesaikan permasalahan yang kompleks.
• CLO-01
• Mahasiswa mampu menjelaskan konsep basis data relasional dan
non-relasional dan perbedaan keduanya, serta menerapkan operasi
aljabar relasional menggunakan relasi sederhana
Review Materi #2
Review Materi #2
Contoh Skema Basis data relasional

• Informasi yang disimpan redundan


• Membuang tempat penyimpanan (waste space)
• Menyebabkan masalah apabila ada pembaruan
Menghindari redundansi
• Rancang skema yang tidak memungkinkan adanya
anomalidalam proses insert, delete, dan update data.
• Relasi harus dirancang sedemikian rupa sehingga tupelnya
memiliki nilai NULL seminimal mungkin
• Relasi harus dirancang untuk memenuhi kondisi “lossless join”
Ketergantungan Fungsional
• Digunakan untuk menentukan ukuran formal dari desain relasional
• Dependency merupakan konsep yang mendasari normalisasi.
Dependensi menjelaskan hubungan antar atribut, atau secara lebih
khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut
lainnya.
• Ada beberapa jenis Dependency / Ketergantungan:
1. Ketergantungan Fungsional / Functionally Dependency (FD)
2. Ketergantungan Fungsional Penuh / Full Functionally
Dependency (FFD)
3. Ketergantungan Transitif / Transitive Dependency (TDF)
4. Ketergantungan Total /Total Dependency (TD)
Ketergantungan Fungsional
• Ketergantungan Fungsional menggambarkan hubungan atribut
dalam sebuah relasi.
• Suatu atribut dikatakan Ketergantungan Fungsional pada
yang lain, jika menggunakan harga atribut tersebut untuk
menentukan harga atribut yang lain.
• Simbol yang digunakan adalah à (dibaca secara fungsional
menentukan )
Ketergantungan Fungsional
• Notasi: X à Y
X dan Y adalah atribut dari sebuah tabel. Berarti X secara
fungsional menentukan Y atau Y tergantung pada X, jika
dan hanya jika ada dua baris data dengan nilai X yang sama,
maka nilai Y juga sama
Contoh Ketergantungan Fungsional

• Relasi DOSEN
NIP Nama_dosen Jenis_kelamin Alamat Kota
002001 Mawar Pria Jl. Delima Kota Bandung
002002 Melati Wanita Jl. Apel Kab. Bandung
002003 Lily Wanita Jl. Semangka Cimahi
002004 Daisy Pria Jl. Anggur Kota Bandung

Ketergantungan fungsional dari relasi DOSEN adalah :


NIP → Nama_Dosen

¡ Bagian sebelah kiri panah disebut penentu (determinan) dan sebelah kanan panah
disebut yang tergantung (dependen).
¡ Tanda { } biasa digunakan kalau ada lebih dari satu atribut, baik pada penentu maupun
yang tergantung.
Contoh Ketergantungan Fungsional

• Relasi NILAI
Nama MK NIM Nama Mahasiswa Nilai
Basis Data Lanjut 001 Delima A
Analisis Jejaring Sosial 002 Kenang AB
Pemodelan Basis Data 003 Mawar B
Data Mining 004 Melati A

Ketergantungan fungsional:
NIM → Nama Mahasiswa
{Nama MK, NIM} à Nilai

Non Ketergantungan Fungsional:


Nama MK à NIM
NIM à Nilai
Contoh
Kode_Jual Kota Kode_Brg Jumlah
P1 Yogya B1 10
P1 Yogya B2 5
P2 Solo B1 7
P2 Solo B2 6
P2 Solo B3 6
P3 Klaten B3 7
P3 Klaten B4 6

• Ketergantungan fungsional ??
Ketergantungan fungsional Penuh
• Suatu atribut Y mempunyai ketergantungan fungsional penuh terhadap
atribut X, jika
• Y mempunyai ketergantungan funsional terhadap X
• Y tidak memiliki ketergantungan terhadap bagian dari X
• Notasi : X à Y
Contoh 1
• Contoh:
Pelanggan ( KODE_PELANGGAN, NAMA, KOTA, NOMOR_FAX )
• Pada relasi ini:
1. {KODE_PELANGGAN, KOTA} ÚNOMOR_FAX
2. KODE_PELANGGAN ÚNOMOR_FAX
• KET:
Pada (1) Nomor_Fax bergantung pada {KODE_PELANGGAN, KOTA} dan
bergantung pada KODE_PELANGGAN (pada 2) yang tidak lain adalah
bagian dari {KODE_PELANGGAN, KOTA}, maka Nomor_Fax hanya
mempunyai dependensi fungsional sepenuhnya terhadap
KODE_PELANGGAN
Contoh 2
Pembeli → Kota
{Pembeli, Barang} → Kota

Kota mempunyai depedensi fungsional terhadap Pembeli atau


{Pembeli, Barang} tapi kota mempunyai depedensi fungsional
sepenuhnya terhadap pembeli bukan barang.
Contoh 3
Kebergantungan fungsional:
(1) IDPegawai -> tglLahir
maka benar juga menyatakan:
(2) IDPegawai, namaPegawai -> tglLahir
Pada (2) sebenarnya namaPegawai tidak diperlukan untuk memperoleh
tglLahir. IDPegawai sudah mencukupi untuk memperoleh nilai tglLahir.

Jadi:
(1) merupakan kebergantungan fungsional penuh
(2) bukan kebergantungan fungsional penuh
Ketergantungan Transitif
• Atribut Z mempunyai dependensi transitif terhadap X bila apabila Y
tergantung pada X dan Z tergantung pada Y
• X→Y→Z
Ketergantungan Transitif
Definisi :
Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X, jika atribut Y
tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y
pada relasi R. ( X àY, Y àZ, maka X àZ )

Contoh :

Ketergantungan transitif :

No-pem à Kode-kota
Kode-kota à Kota , maka
No-pem à Kota
Ketergantungan Transitif

NIP Nama Gol_gaji Gaji_pokok


0001 Ian III A 600000
0002 Saputra III B 650000
0003 Rohim III A 600000
0004 Fani III B 650000

• Gol_gaji fungsional dependency pada NIP dan Gaji_pokok Fungsional Dependency pada
Gol_gaji.
• NIP sebagai X, Gol_gaji sebagai Y, dan Gaji_pokok sebagai Z
• Jadi nilai-nilai rinci data pada atribut Gaji_pokok (Z) bergantung transitif terhadap NIP
• XàYàZ
NIP à Gol_gaji àGaji_pokok
Ketergantungan Transitif

Mata Kuliah Ruang Tempat Waktu


Basis Data Lanjut 101 Gedung A Senin, 08.00
Sistem basis data 202 Gedung B Selasa, 09.00
Kecerdasan buatan 301 Gedung A Rabu, 10.00
Kalkulus 204 Gedung B Kamis, 11.00

• Mata Kuliah à {Ruang, Waktu}


Mata Kuliah à Ruang à Tempat
• Ruang à Tempat
Ketergantungan Transitif

ID_Pelanggan Nama Pelanggan Salesman Area


A101 Mawar Venus Bandung
A102 Melati Mars Garut
B101 Lavender Langit Semarang
B202 Bunga Hari Jakarta

• ID_Pelanggan à {Nama Pelanggan, Salesman, Area}


• Salesman à Area
Ketergantungan Transitif

No_Pemesanan No_Urut Kode_Item Nama_Item Jumlah


A101 1 K1 A 5
A102 2 K2 B 19
B101 3 K3 C 20
B202 4 K4 D 4

• No_Pemesanan à {No_Urut, Kode_Item, Nama_Item, Jumlah}


• Kode_Item à Nama_Item
• No_Pemesanan, Kode_Item à Jumlah
Ketergantungan Total
• Suatu atribut Y mempunyai ketergantungan total pada atribut X jika:
• Y memiliki ketergantungan fungsi terhadap X
• X memiliki ketergantungan fungsi terhadap Y
• Notasi : X « Y
Contoh

PEGAWAI (NO-INDUK,NAMA,TMP-LAHIR,TG-LAHIR, ALAMAT)

Dengan demikian notasi dapat ditulis:


NO-INDUK « NAMA
Normalisasi
• Definisi:
• Proses dekomposisi keterkaitan yang "buruk" dengan memecah atribut
menjadi relasi yang lebih kecil
• Normal Form:
• Kondisi menggunakan “key” dan FD dari suatu relasi untuk
memastikan apakah skema relasi berada dalam bentuk normal tertentu
BENTUK NORMAL PERTAMA
(First Normal Form - 1NF)

• Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut
bernilai banyak (multivalued attribute), atribut composite atau
kombinasinya dalam domain data yang sama.
• Data dibentuk dalam satu record demi record dan nilai field adalah atomic
value.
• Tidak ada set atribut yang berulang / bernilai ganda)
• Suatu relasi berada dalam bentuk normal pertama jika relasi tidak
mengandung atribut yang bernilai ganda
Contoh
Atribut bernilai ganda

NIP Nama Jabatan Bahasa Tingkat


A101 Mawar Staf Inggris Aktif
Jerman Pasif
A102 Melati Staf Inggris Aktif
B101 Lavender Manager Inggris Aktif
Spanyol Aktif
B202 Bunga Manager Inggris Aktif
Jepang Pasif
Solusi
§ Menghilangkan atribut ganda
• Langkah:
• Atur setiap kolom berisi satu nilai. Sekarang atribut
• Bila isi suatu kolom untuk suatu baris berisi n nilai, bernilai tunggal
maka pecahlah baris menjadi n baris

NIP Nama Jabatan Bahasa Tingkat


A101 Mawar Staf Inggris Aktif
A101 Mawar Staf Jerman Pasif
A102 Melati Staf Inggris Aktif
B101 Lavender Manager Inggris Aktif
B101 Lavender Manager Spanyol Aktif
B202 Bunga Manager Inggris Aktif
B202 Bunga Manager Jepang Pasif
Contoh

No_Pemesanan Tgl_Pemesanan Kode_Item Kode_Item Kode_Item Kode_Item Total


1 2 3 4
A101 1/01/2021 K1 K2 K4 K5 50.000
A102 2/02/2021 K2 K6 K3 90.000
B101 3/01/2021 K3 K4 20.000
B202 4/02/2021 K4 K7 40.000

Kelemahan ???
Solusi – Memenuhi 1NF
No_Pemesanan Tgl_Pemesanan Kode_Item Total
A101 1/01/2021 K1 50.000
A101 1/01/2021 K2 50.000
A101 1/01/2021 K3 50.000
A101 1/01/2021 K5 50.000
A102 2/02/2021 K2 90.000 Kelemahan ???
A102 2/02/2021 K6 90.000
A102 2/02/2021 K2 90.000
B101 3/01/2021 K3 20.000
B101 3/01/2021 K4 20.000
B202 4/02/2021 K4 40.000
B202 4/02/2021 K7 40.000
BENTUK NORMAL KEDUA
(Second Normal Form - 2NF)

• Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF.
• Normalisasi 2NF: setiap atribut bukan kunci bergantung penuh pada kunci primer
(primary key). Sehingga tidak ada atribut bukan kunci yang bergantung pada sebagian
(parsial) kunci primer (primary key)
• Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka
atribut tersebut harus dipindah atau dihilangkan.
Syarat 2NF

• Memenuhi kriteria tabel 1NF


• Di dalam tabel tersebut tidak ada redudansi / pengulangan data
dan Null Value
• Field-field yang bukan PK (primary key) adalah Fully Functional
Dependency (bergantung penuh) pada PK.
Contoh
• Perhatikan tabel di bawah ini. Atribut mana yang bisa menjadi primary
key, dan bagaimana ketergantungan fungsional semua atribut?

No Nama Pelatihan
A101 Mawar Cisco
A101 Mawar Oracle
A101 Mawar Python
A102 Melati Oracle
A102 Melati AI
B101 Bunga Python
B202 Lavender AI
Contoh
• Jika No dan Kursus dijadikan composite primary key, maka nama tidak
tergantung fungsional penuh terhadap PK, perlu dipisahkan dari tabel.

No Pelatihan
A101 Cisco No Nama
A101 Oracle A101 Mawar
A101 Python A102 Melati
A102 Oracle B101 Bunga
A102 AI B202 Lavender
B101 Python
B202 AI
Contoh

2NF ???
Solusi

PEMASOK-1 PEMASOK-2
Contoh INF
No_Pemesanan Tgl_Pemesanan Total
A101 1/01/2021 50.000
No_Pemesanan Tgl_Pemesanan Kode Total A102 2/02/2021 90.000
_Item B101 3/01/2021 20.000
A101 1/01/2021 K1 50.000 B202 4/02/2021 40.000
A101 1/01/2021 K2 50.000
No_Pemesanan Kode_Item
A101 1/01/2021 K3 50.000
A101 K1
A101 1/01/2021 K5 50.000 A101 K2
A102 2/02/2021 K2 90.000 A101 K3

A102 2/02/2021 K6 90.000 A101 K5


A102 K2
A102 2/02/2021 K2 90.000
A102 K6
B101 3/01/2021 K3 20.000
A102 K2
B101 3/01/2021 K4 20.000 B101 K3
B202 4/02/2021 K4 40.000 B101 K4
B202 4/02/2021 K7 40.000 B202 K4
B202 K7
BENTUK NORMAL KETIGA
(Third Normal Form - 3NF)

• Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF.


• Jika tidak ada atribut non primary key yang memiliki
ketergantungan terhadap atribut non primary key yang lainnya
(ketergantungan transitif).
Contoh
• Tabel mahasiswa berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi
3NF

• Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi)
yang memiliki ketergantungan terhadap atribut non primary key yang lain
(yakni KodePos) :
KodePos à {Kota, Provinsi}
3NF
• Sehingga tabel tersebut perlu didekomposisi menjadi :
• Mahasiswa (NIM, NamaMhs, Jalan, KodePos)
• KodePos (KodePos, Provinsi, Kota)
Mahasiswa
NIM NAMAMHS JALAN KODEPOS

KodePos

KODEPOS PROVINSI KOTA


Boyce-Codd Normal Form (BCNF)

• 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.

• Tabel tersebut harus di-dekomposisi berdasarkan functional dependency


yang ada, sehingga X menjadi super key dari tabel-tabel hasil
dekomposisi.

• 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.
BentukNormal Tahap Keempat
(4th Normal Form /4NF)

• Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi
bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari
sebuah multivalued atribute.
• Untuk setiap multivalued dependencies (MVD) juga harus merupakan
functional dependencies.
Contoh

• Misal, Tabel berikut tidak memenuhi 4NF


Employee Project Skill

Mawar 1 Program
Melati 2 Desain
Lavender NULL Analisis

• Setiap employee dapat bekerja di lebih dari 1 project dan dapat memiliki
lebih dari 1 skill.
• Untuk kasus ini, tabel tersebut harus didekomposisi menjadi:
• Tabel 1 (Employee, Project)
• Tabel 2 (Employee, Skill)
Bentuk Normal Tahap Keempat
(5th Normal Form /5NF)

• Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah loss less
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
Contoh Kasus 1
Unnormalisasi
• Langkah pertama dalam melakukan normalisasi data adalah
dengan membentuk contoh data tersebut diatas dengan
membentuk unnormalisasi data.
Normal Pertama (1 NF)

• Bentuklah menjadi bentuk normal pertama dengan memisah-misahkan data


pada atribut atribut yang tepat dan bernilai atomik, juga seluruh record /
baris harus lengkap adanya.
• Bentuk relasi adalah flat file. Dengan normal pertama kita dapat membuat
satu tabel yang terdiri dari 11 Atribut yaitu:
• No_Faktur, Kode_Supp, Nama_Supp, Kode_Brg, Nama_Brg, Tanggal, Jatuh_Tempo,
Qty, Harga, Jumlah, Total ).
Normal Pertama (1 NF)
Pada normal pertama tersebut masih terjadi banyak kelemahan, terutama pada proses ANOMALI insert, update dan delete berikut ini:
a). Inserting / Penyisipan
Kita tidak dapat memasukkan kode dan nama supplier saja tanpa adanya transaksi pembelian, sehingga supplier baru bisa dimasukkan
kalau ada transaksi pembelian.
b). Deleting / Penghapusan
Bila satu record / baris di atas dihapus, misal nomor faktur 779, maka berakibat pada penghapusan data supplier S02 (Waras Sejati)
padahal data tersebut masih diperlukan.
c). Updating / Pengubahan
Kode dan nama supplier terlihat ditulis berkali-kali, bila nama supplier berubah, maka di setiap baris yang ada harus dirubah, bila tidak
menjadi tidak konsisten.
Atribut jumlah seharusnya tidak perlu, karena setiap harga dikali kuantitas akan menghasilkan jumlah, sehingga hasilnya akan menjadi
lebih konsisten.
Normal Kedua (2 NF)
• Bentuk normal kedua dengan melakukan dekomposisi relasi diatas
menjadi beberapa relasi dan mencari kunci primer dari tiap-tiap
relasi tersebut dan atribut kunci haruslah unik.
• Melihat permasalahan faktur di atas, maka dapat diambil beberapa
kunci kandidat : ( No_Faktur, Kode_Supp, dan Kode_Brg ).
• Kunci kandidat tersebut nantinya bisa menjadi kunci primer pada
relasi hasil dekomposisi.
Normal Kedua (2 NF)
Relasi Supplier Relasi Barang
Kode_Supp Nama_Supp Kode_Brg Nama_Brg Harga
S02 Waras Sejati R01 Mixagripi 5000
G01 Medika jaya A01 Sanaflux 5000
G01 Medika Jaya
A02 Bodrexno 6000

Relasi Faktur
No_Faktur Kode_Brg Kode_Supp Tanggal Jatuh Tempo Qty
779 R01 S02 02/02/2001 09/03/2001 10
998 A01 G01 07/02/2001 09/03/2001 10
998 A02 G01 07/02/2001 09/03/2001 10
Normal Kedua (2 NF)
Pada bentuk normal kedua tersebut masih terjadi permasalahan
yaitu pada relasi Faktur, yaitu :
1. Atribut Qty pada relasi Faktur, tidak tergantung pada kunci
utama, atribut tersebut bergantung fungsi pada Kode Brg dan
no_faktur, hal ini dinamakan ketergatungan transitif dan
haruslah dipilah menjadi dua relasi.
2. Masih terdapat pengulangan, yaitu setiap kali satu faktur yang
terdiri dari 3 macam barang maka 3 kali juga dituliskan
no_faktur, tanggal, dan jatuh_tempo. Hal ini harus dipisahkan
bila terjadi penggandaan tulisan berulang-ulang.
Bentuk Normal Ketiga (3 NF)
• Bentuk normal ketiga mempunyai syarat, setiap relasi tidak
mempunyai atribut yang bergantung transitif, harus bergantung
penuh pada kunci utama dan harus memenuhi bentuk normal
kedua (2 NF).
• Untuk memenuhi bentuk normal ketiga (3 NF), maka pada relasi
faktur harus didekomposisi (dipecah) lagi menjadi dua relasi yaitu
relasi faktur dan relasi transaksi barang, sehingga hasilnya adalah
sebagai berikut ini:
Relasi Supplier Relasi Barang
Kode_Supp Nama_Supp Kode_Brg Nama_Brg Harga
S02 Waras Sejati R01 Mixagripi 5000
G01 Medika jaya A01 Sanaflux 5000
A02 Bodrexno 6000

Relasi Faktur
No_Faktur Tanggal Jatuh Tempo Kode_Supp
779 02/02/2001 09/03/2001 S02
998 07/02/2001 09/03/2001 G01

Relasi Transaksi
No_Faktur Kode_Brg Qty
779 R01 10
998 A01 10
998 A02 10
Contoh Kasus 2
1 NF
Ketergantungan Fungsional
2NF
Sudah memenuhi 1 NF tetapi belum memenuhi 2 NF karena atribut
Bukan kunci belum sepenuhnya tergantung pada primary key

• {No-pem,Kode-Kota }à kota • No-Pem, No-bar à Jumlah


• No-pem à Kota
2 NF
Tabel1 didekomposisi menjadi dua tabel yaitu tabel2 dan tabel3,sehingga atribut non
primary key bergantung penuh pada primary key dan terpenuhi 2NF

Tabel 1 Tabel 2

• No-pem à Kode-Kota
• No-pem à Kota
• No-pem, No-bar à Jumlah • Kode-Kota à Kota
3 NF
Ada ketergantungan transitif di tabel3, maka perlu di pisah menjadi tabel lebih kecil
Tabel 3

• No-pem à Kode-Kota Ketergantungan transitif


• Kode-Kota à Kota
3 NF

Tabel4

• No-pem à Kode-kota • Kode-ota à Kota


Latihan
Kesimpulan
• Ketergantungan Fungsional
• Nornalisasi
Referensi
• Utama:
• Henry F. Korth, Abraham Silberschatz. 2011. Database System
Concepts 7th Edition. McGraw-Hill
• Pendukung:
• Raghu Ramakrishnan and Johannes Gehrke. 2003. Database
Management Systems Third Edition. McGraw-Hill.
Materi Pertemuan #4
• Pengertian integritas data, entitas, dan integritas referensial
• Contoh entitas dan integritas referensial
• Pelajari materi tersebut untuk Pre-Test#3

Anda mungkin juga menyukai