Anda di halaman 1dari 71

Database Design:

Integrity Rules & Normalization

INF2033 Basis Data 1


Pertemuan 23,24

R. Kristoforus JB
Fakultas Sains & Teknologi
Universitas Katolik Musi Charitas
Outline
• Redudansi data & anomali
• Dekomposisi relasi
• Ketergantungan fungsional

3
Desain Basis Data
• Desain basis data bertujuan:
– Efisiensi penggunaan ruang penyimpanan
– Kecepatan akses data
– Kemudahan manipulasi data (tambah, ubah, hapus)
• Teknik mendesain basis data:
– Model ERD
– Teknik normalisasi

4
Model ERD vs Normalisasi
• ERD telah dipelajari pada pertemuan sebelumnya
• Cocok digunakan untuk mendesain basis data yang sama
sekali baru.
• Teknik normalisasi bertolak dari data yang secara nyata
telah ada.
• Teknik normalisasi dipakai untuk menghasilkan struktur
basis data yang memenuhi prinsip-prinsip basis data

5
Normalisasi
• Normalisasi : Teknik/pendekatan yang digunakan dalam
membangun disain lojik database relasional melalui
organisasi himpunan data dengan tingkat ketergantungan
fungsional dan keterkaitan yang tinggi sedemikian
sehingga menghasilkan struktur tabel yang normal.

6
Normalisasi
• Tujuan :
– Minimalisasi redundansi (pengulangan data)
– Memudahkan identifikasi entitas
– Mencegah terjadinya anomali
• 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

7
Redundansi Data
• Masalah utama yang terjadi pada tabel basis data
yang tidak ternormalisasi adalah masalah
redundansi
• Redundansi: pengulangan data yg sama
• Anomali yang akan timbul:
– Update Anomaly: akan terjadi inkonsistensi data saat
terjadi update/perubahan data
– Insertion Anomaly: akan terjadi kesulitan untuk
menambahkan/insert data baru
– Delete Anomaly: akan terjadi kehilangan informasi saat
penghapusan/delete data.

8
Contoh 1: Redundansi Data
• Perhatikan data berikut:

• Apa yg akan terjadi jika kita melakukan update, insert dan


delete?

9
Contoh 1: Update Anomaly
• Apa yg terjadi jika kolom DEPT baris 1 diubah menjadi D5?

D5

• Inkonsistensi akan terjadi kecuali semua data pada kolom


DEPT diubah

10
Contoh 1: Insert Anomaly
• Apa yg terjadi jika kita menambahkan EMP baru tetapi belum
diketahui DEPTnya?

• Kesulitan menambahkan data/baris baru


• Muncul NULL value

11
Contoh 1: Delete Anomaly
• Apa yang terjadi jika kita menghapus DEPT D4?

• Kita akan kehilangan informasi EMP

12
Contoh 2: NULL Value
• Akan terjadi pemborosan ruang penyimpanan karena nilai NULL
• Perhatikan contoh berikut:

13
Contoh 2: Data Film
Tabel : Film
title year length filmType studioName starName

Star Wars 1977 124 color Fox Carrie Fisher

Star Wars 1977 124 color Fox Mark Hamill

Star Wars 1977 124 color Fox Harrison Ford

Mighty Ducks 1991 104 color Disney Emilio Estevez

Wayne’s World 1992 95 color Paramount Dana Carvey

Wayne’s World 1992 95 color Paramount Mike Meyers

What your
comment Is a “good” design .. ??
………..

14
Contoh 2: Redudancy & Update Anomaly

Tabel : Film
title year length filmType studioName starName

Star Wars 1977 124 color Fox Carrie Fisher

Star Wars 1977 124 color Fox Mark Hamill

Star Wars 1977 124


125 color Fox Harrison Ford

Mighty Ducks 1991 104 color Disney Emilio Estevez

Wayne’s World 1992 95 color Paramount Dana Carvey

Wayne’s World 1992 95 color Paramount Mike Meyers

Update Anomaly
Update informasi pada
Redundancy
satu tupel tidak
Informasi diulang-ulang
mengubah pada tupel
dalam beberapa tupel
yang lain

15
Contoh 2: Delete Anomaly
Tabel : Film
title year length filmType studioName starName

Star Wars 1977 124 color Fox Carrie Fisher

Star Wars 1977 124 color Fox Mark Hamill

Star Wars 1977 124 color Fox Harrison Ford

Mighty Ducks 1991 104 color Disney Emilio Estevez

Wayne’s World 1992 95 color Paramount Dana Carvey

Wayne’s World 1992 95 color Paramount Mike Meyers

Delete Anomaly
Jika Emilio Estavez dihapus,
akan kehilangan informasi
tentang Mighty Ducks

16
Contoh 2: Insert Anomaly
Tabel : Film
title year length filmType studioName starName

Star Wars 1977 124 color Fox Carrie Fisher

Star Wars 1977 124 color Fox Mark Hamill

Star Wars 1977 124 color Fox Harrison Ford

Mighty Ducks 1991 104 color Disney Emilio Estevez

Wayne’s World 1992 95 color Paramount Dana Carvey

Wayne’s World 1992 95 color Paramount Mike Meyers

Star Wars 1977 124 Color MGM James Earl Jones

Insertion Anomaly
Jika kita sisipkan tupel baru
(Star Wars, 177, 124, color, MGM, James Earl Jones)
maka akan terjadi inkonsistensi pada atribut studio

17
Contoh 3: Data Universitas

NAMA Alamat SKS SMT


NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 Basis Data 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 3 D007 Alfian 301

M002 Budi Jl. Sekip K001 Basis Data 2 5 D002 Kristo 202

M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

18
Contoh 3: Redundansi
NAMA Alamat SKS SMT
NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 Basis Data 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 3 D007 Alfian 301

M002 Budi Jl. Sekip K001 Basis Data 2 5 D002 Kristo 202

M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

Terjadi redundansi/pengulangan
data

19
Contoh 3: Update Anomali
NAMA Alamat SKS SMT
NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 SBD Data


Basis 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 3 BasisD007


Data Alfian 301

M002 Budi Jl. Sekip K001 Basis Data 2 diubah


5 menjadi Kristo
D002 202
Sistem Basis Data
M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

20
Contoh 3: Update Anomali
NAMA Alamat SKS SMT
NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 SBD Data


Basis 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 terjadi


3 inkonsisten
D007 Alfian 301
data
M002 Budi Jl. Sekip K001 Basis Data 2 5 D002 Kristo 202

M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

21
Contoh 3: Insert Anomali
NAMA Alamat SKS SMT
NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 Basis Data 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 3 D007 Alfian 301

M002 Budi Jl. Sekip K001 Basis Data 2 5 D002 Kristo 202

M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

D005 Meylinda

Menambah data dosen baru

22
Contoh 3: Insert Anomali
NAMA Alamat SKS SMT
NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 Basis Data 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 3 D007 Alfian 301

M002 Budi Jl. Sekip K001 Basis Data 2 5 D002 Kristo 202

M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

NULL NULL NULL NULL NULL NULL NULL D005 Meylinda NULL

NULL Value/pemborosan
ruang penyimpan
23
Contoh 3: Delete Anomali
NAMA Alamat SKS SMT
NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 Basis Data 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 3 D007 Alfian 301

M002 Budi Jl. Sekip K001 Basis Data 2 5 D002 Kristo 202

M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

Data dosen
dihapus

24
Contoh 3: Delete Anomali
NAMA Alamat SKS SMT
NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 Basis Data 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 3 D007 Alfian 301

M002 Budi Jl. Sekip K001 Basis Data 2 5 D002 Kristo 202

M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

25
Contoh 3: Delete Anomali
NAMA Alamat SKS SMT
NIM MHS MHS KdMK MATA KUL MK MK NIDN DOSEN RUANG

M001 Ali Jl. Bangau K001 Basis Data 2 5 D002 Kristo 202

M001 Ali Jl. Bangau K003 PTI 3 1 D001 Narni 210

M001 Ali Jl. Bangau K004 Fisika 3 3 D007 Alfian 301

M002 Budi Jl. Sekip K001 Basis Data 2 5 D002 Kristo 202

M002 Budi Jl. Sekip K003 PTI 3 1 D001 Narni 210

M002 Budi Jl. Sekip K004 Fisika 3 3 D007 Alfian 301

M003 Cinta Jl. Rudus K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K001 Basis Data 2 5 D002 Kristo 202

M004 Dina Jl. Veteran K003 PTI 3 1 D001 Narni 210

Data mahasiswa
Data ruang
hilang
hilang

26
Latihan 1
• Perhatikan nota berikut. Apabila data-data dalam nota tersebut
ditabulasikan ke dalam sebuah tabel, apakah terjadi redudansi data dan
anomali? Buktikan!

27
Latihan 1: Delete anomaly
Kode
no tanggal Pemasok Nama barang Jumlah
barang
200702101 12/3/2007 PT Astrindo Utama CD-001 CDR Veromax 10
200702101 12/3/2007 PT Astrindo Utama CD-007 CD-RW BASF 50
200702101 12/3/2007 PT Astrindo Utama MO-103 Mouse 3max 15
200702101 12/3/2007 PT Astrindo Utama KB-231 Keyborad Ergo 104 16

Kehilangan seluruh
informasi barang

33
Dekomposisi Relasi
• Cara untuk mengatasi anomali di atas adalah
dengan melakukan dekomposisi pada relasi (tabel).
• Dekomposisi: menguraikan relasi menjadi dua
atau beberapa relasi.
• Yang perlu diperhatikan pada saat melakukan
dekomposisi:
– Lossless Join decomposition
– Dependency preservation
– Boyce-Codd Normal Form

36
Dekomposisi Relasi

37
Dekomposisi Relasi
• Dekomposisi : memecah relasi/tabel menjadi relasi/tabel
yang lebih kecil untuk mendapatkan skema yang tidak
mengandung anomali dan redundansi
• Diketahui skema relasi R. Gugus relasi {R1, R2, ,…, Rn}
disebut Dekomposisi dari R jika :

R1  R2  …  Rn = R

 Artinya {R1, R2, …, Rn}  dekomposisi dari R jika setiap


atribut dalam R muncul paling sedikit di salah satu Ri
untuk 1  i  n

38
Dekomposisi Relasi
Film original
idfilm title year length filmType idstudio studioName idstar starName

F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher

F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill

F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford

F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez

F003 Wayne’s World 1992 95 color STD03 Paramount STR05 Dana Carvey

F003 Wayne’s World 1992 95 color STD03 Paramount STR06 Mike Meyers

DaftarFilm StudioFilm BintangFilm


idfilm title year length filmType idstudio studioName idstar starName

F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher

F002 Mighty Ducks 1991 104 color STD02 Disney STR02 Mark Hamill

F003 Wayne’s World 1992 95 color STD03 Paramount STR03 Harrison Ford

STR04 Emilio Estevez

Decomposition result STR05 Dana Carvey

STR06 Mike Meyers

39
Dekomposisi Relasi
 Dekomposisi relasi R menjadi gugus relasi {R1, R2, …, Rn}
yang tidak menyebabkan hilangnya informasi disebut
Lossless-Join Decomposition.

 Dekomposisi relasi R menjadi gugus relasi {R1, R2, …, Rn}


yang menyebabkan hilangnya informasi disebut Lossy-
Join Decomposition.

Lossless Join digunakan untuk menjamin keutuhan data


untuk operasi gabungan (join) dan merupakan fokus
dalam desain basis data relasional

40
Contoh 4: Dekomposisi relasi
• Misalkan relasi R(A,B) di dekomposisi menjadi R1 = A, dan R2 = B.
R1
A
X
R R3
Y
A B A B
X 1 X 1
X 2 X 2
Y 1 R2 Y 1
B Y 2
1
2

• R1  R2 = R3 dan R3  R. Jadi dekomposisi tersebut menyebabkan


hilangnya informasi.
• Lossy join decomposition

41
Contoh 5: Dekomposisi relasi
• Misalkan relasi R(A,B,C) di dekomposisi menjadi R1 = (A,B) dan R2 =
(A,C). R1
A B
X 1
R
Y 2
A B C A B C
X 1 a X 1 a
Y 2 a R2 Y 2 a
X 1 b A C Z 1 b
X a
Y a
X b

• R1 natural join R2 = R. Jadi dekomposisi tersebut tidak menyebabkan


hilangnya informasi.
• Lossless join decomposition

42
Latihan 2
1. Misalkan relasi R(A,B,C) di dekomposisi menjadi R1 = (A,B) dan R2 =
(B,C). R1
A B
X 1
Y 2
A B C
X
Y
X
1
2
1
a
a
b
R2
B
1
C
a
?
2 a
1 b

– Apakah lossy atau lossless?

43
Latihan 2
2. Misalkan relasi R(A,B,C) di dekomposisi menjadi R1 = (A,C) dan R2 =
(B,C). R1
B C
1 a
2 a
A B C
b

?
1
X 1 a
R2
Y 2 a
A C
X 1 b
X a
Y a
X b

– Apakah lossy atau lossless?

44
Contoh 6: Dekomposisi Relasi
Film = (idfilm, title, year, length, filmType, idstudio, studioName, idstar, starName)

idfilm title year length filmx Id Studio idstar starName


Type studio Name
F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher
F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill
F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford
F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez
F003 Wayne’s World 1992 95 color STD03 Paramount STR05 Dana Carvey
F003 Wayne’s World 1992 95 color STD03 Paramount STR06 Mike Meyers

there is Anomaly !!
Decompose it ……

45
Contoh 6: Dekomposisi Relasi

Andaikan di dekomposisi
Menjadi 3 tabel tsb ….

DaftarFilm StudioFilm BintangFilm


idfilm title year length filmType idstudio studioName idstar starName

F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher

F002 Mighty Ducks 1991 104 color STD02 Disney STR02 Mark Hamill

F003 Wayne’s World 1992 95 color STD03 Paramount STR03 Harrison Ford

STR04 Emilio Estevez

STR05 Dana Carvey

STR06 Mike Meyers

Lossless
or
Lossy ?

46
Contoh 6: Dekomposisi Relasi
• Dengan ke-3 tabel hasil dekomposisi, misal ditanyakan
informasi :
“Di studio manakah Star Wars dibuat ?”
• Pasti kita akan membutuhkan tabel DaftarFilm dan
StudioFilm.
• Tapi dapatkah kita diperoleh informasi yang kita inginkan
dari kedua skema relasi tersebut ?
• Tampaknya: TIDAK
• Karena kita harus melakukan operasi gabungan terlebih
dahulu dari Ke-2 tabel. Misal kita lakukan operasi “cross
product” antara Daftar_Film dan StudioFilm.
DaftarFilm  StudioFilm
47
Contoh 6: Dekomposisi Relasi

Kehilangan

DaftarFilm
idfilm title
 StudioFilm
year length
Informasi !!
filmType idstudio studioName

F001 Star Wars 1977 124 color STD01 Fox

F001 Star Wars 1977 124 color STD02 Disney

F001 Star Wars 1977 124 color STD03 Paramount

F002 Mighty Ducks 1991 104 color STD01 Fox

F002 Mighty Ducks 1991 104 color STD02 Disney

F002 Mighty Ducks 1991 104 color STD03 Paramount

F003 Wayne’s World 1992 95 color STD01 Fox

F003 Wayne’s World 1992 95 color STD02 Disney

F003 Wayne’s World 1992 95 color STD03 Paramount

Ternyata kita tidak mendapatkan informasi yang dibutuhkan,


karena film Star Wars dibuat oleh 3 studio (Fox, Disney, Paramount)

48
Latihan 2
3. Apabila relasi pada contoh 6:
Film = (idfilm, title, year, length, filmType, idstudio, studioName, idstar, starName)

Didekomposisi menjadi 3 tabel:


Film = (idfilm, title, year, length, filmType, idstudio, idstar)
Studio = (idstudio, studioName)
Star = Film = (idstar, starName)

Apakah dekomposisi tersebut lossy atau lossless?

49
Latihan 2
4. Perhatikan relasi berikut.
Kode
no tanggal Pemasok Nama barang Jumlah
barang
200702101 12/3/2007 PT Astrindo Utama CD-001 CDR Veromax 10
200702101 12/3/2007 PT Astrindo Utama CD-007 CD-RW BASF 50
200702101 12/3/2007 PT Astrindo Utama MO-103 Mouse 3max 15
200702101 12/3/2007 PT Astrindo Utama KB-231 Keyborad Ergo 104 16
200702102 12/3/2007 CV Prima Jaya CD-001 CDR Veromax 3
200702102 12/3/2007 CV Prima Jaya MO-103 Mouse 3max 4

1. Lakukan dekomposisi relasi tersebut


2. Apakah dekomposisi yang anda lakukan lossless atau lossy?

50
Ketergantungan Fungsional (KF)
 Functional Dependencies (FD) / Ketergantungan
Fungsional (KF) digunakan untuk menggambarkan atau
mendeskripsikan bentuk normal atas suatu relasi
• FD adalah batasan terhadap gugus relasi yang berlaku.
• Diperoleh berdasarkan hubungan antar atribut data.
• Kegunaan FD :
– Untuk memeriksa keabsahan apakah semua relasi sesuai dengan
ketergantungan fungsional yang diberikan
– Untuk menetapkan batasan gugus relasi yang berlaku
– Untuk menentukan kunci relasi
– Untuk melakukan normalisasi atas suatu tabel relasional

55
Ketergantungan Fungsional (KF)

• Kebergantungan fungsional (functional dependency):


bergantungnya satu atribut pada atribut lain dalam sebuah
relasi

• KF dapat disimbolkan: X Y
• Dibaca:
– X secara fungsional menentukan Y
– Y secara fungsional bergantung pada X
– Isi (nilai) atribut X menentukan nilai atribut Y
• Jenis KF:
– Kebergantungan penuh (full functional dependency)
– Ketergantungan pasial (partial functional dependency)
– Kebergantungan transitif (transitive functional dependency)

56
Ketergantungan Fungsional (KF)
• Misalkan R adalah suatu skema relasional, atribut x  R dan y  R
maka x dikatakan secara fungsional menentukan y (atau y bergantung
secara fungsional pada x), ditulis x  y pada R, jika :
1. Semua tupel ti [x], 1  i  n adalah unik/tunggal
2. Semua pasangan tupel dimana ti [x] = tj [x], i  j, terjadi juga ti [y] = tj [y]

dengan kata lain :

• Untuk setiap nilai x terdapat hanya satu nilai y (x menentukan secara


tunggal nilai y). Jadi apabila terdapat 2 tuple t1 dan t2 mempunyai nilai
atribut x yang sama, maka juga akan mempunyai nilai atribut y yang
sama.
t1[x] = t2 [x]  t1[y] = t2 [y] pada skema relasi R

57
Ketergantungan Fungsional (KF)

R = (A, B, C) R = (A,B,C,D)
A B C A B C D
1 4 C1 A1 B1 C1 D1
1 5 C1 A1 B2 C1 D2
2 7 C2 A2 B2 C2 D2
A2 B3 C2 D3
AB?
A3 B3 C2 D4
t1(A)=t2(A), tetapi t1(B)  t2(B)
Maka A  B
 AC? Yes
AC?
 CA? No
t1(A)=t2(A) dan t1(C) = t2(C)  (A,B)  C ? Yes
Maka A  C  (A,B)  D ? Yes

58
Latihan 3
1. Apakah A → B? A B C D E
A1 B1 C1 D1 E1
2. Apakah B  D
A2 B1 C2 D1 E1
3. Apakah A C?
A1 B2 C1 D3 E1
4. Apakah AB → D?
A1 B3 C1 D2 E2
5. Apakah B→ A?
A2 B3 C2 D2 E2
6. Apakah C→ A? A3 B1 C1 D1 E3
7. Apakah B → C? A4 B2 C3 D3 E2
8. Apakah A,B → E? A4 B3 C3 D2 E1
9. Apakah E → C? A3 B2 C1 D3 E1

10. Apakah A,C → D? A4 B1 C3 D1 E2

59
Latihan 4
1. NIM → Kode_MK? NIM Kode_MK NAMA MK NILAI

2. Kode_MK → MK? 1112001 TI001 Ari PTI A

3. NIM → NAMA? 1112003 TI001 Bety PTI A


4. NAMA → NIM? 1112001 TI002 Ari PSK A
5. Kode_MK → NAMA 1112001 TI010 Ari SBD B
6. NIM,Kode_MK → NILAI 1112003 TI010 Bety SBD B
7. NILAI → NAMA? 1112009 TI001 Ari PTI C
1112010 TI002 Doni PSK B
1112010 TI010 Doni SBD A
1112009 TI002 Ari PSK A
1112010 TI001 Doni PTI B

60
Ketergantungan Fungsional (KF)

Film = (idfilm, title, year, length, filmType, idstudio, studioName, idstar, starName)
idfilm title year length filmT idstudio studioName idstar starName
ype
F001 Star Wars 1977 124 color STD01 Fox STR01 Carrie Fisher
F001 Star Wars 1977 124 color STD01 Fox STR02 Mark Hamill
F001 Star Wars 1977 124 color STD01 Fox STR03 Harrison Ford
F002 Mighty Ducks 1991 104 color STD02 Disney STR04 Emilio Estevez
F003 Wayne’s World 1992 95 color STD03 Paramount STR05 Dana Carvey
F003 Wayne’s World 1992 95 color STD03 Paramount STR06 Mike Meyers
F004 My Hearts 1992 101 color STD03 Paramount STR01 Carrie Fisher
F004 My Hearts 1992 101 color STD03 Paramount STR01 Carrie Fisher

Apakah : idfilm  title ?


idstar  studioName ?
(idfilm,idstar)  starName ?

61
Ketergantungan Fungsional (KF)
• FD dirumuskan berdasarkan batasan dari dunia nyata
suatu atribut.
• Contoh :
– Nomor Induk mahasiswa menentukan NamaMahasiswa
NIM  NamaMhs
– Kode Matakuliah menentukan Nama Mata Kuliah dan SKS
KodeMK  (NamaMK, SKS)
– NIM dan Kode Mata Kuliah menentukan Nilai Matakuliah
(NIM,KodeMK)  NilaiMK

62
Ketergantungan Fungsional (KF)

• Amstrong’s Rule:
– A1. Reflexive
Jika y  x maka x  y
– A2. Augmentation
Jika x  y maka (x,z)  (y,z) Diketahui xy
– A3. Transitive Dari A2 (x,z)  (y,z)
Jika x  y dan y  z maka x  z Diketahui (z,y)  w
– A4. Decomposition Dari A3 (x,z)  w
Jika x  (y,z) maka x  y dan x  z
– A5. Union
Jika x  y dan x  z maka x  (y,z)
– A6. Pseudotranstivity
Jika x  y dan (z,y)  w maka (x,z)  w

63
Manfaat KF pada Dekomposisi
Untuk :
1.Lossless Join Decomposition
Mendapatkan dekomposisi yang tidak kehilangan
data/ informasi
2.No Redundancy
Mendapatkkan skema relasi yang tidak mengandung
redundansi
3.Dependency Preservation
Terjaminnya pemeliharaan ketergantungan sehingga
dapat mengatasi masalah update anomali

64
Uji Lossless-Join Decomposition
• Misal diketahui skema relasi R didekomposisi menjadi gugus relasi {R1,
R2, R3, R4, …, Rn}, maka dekomposisi ini disebut Lossless Join
Decomposition jika kondisi R1  R2  R3  …  Rn  Ri dipenuhi
sekurang-kurangnya untuk 1 nilai i, dimana 1  i  n.
• Dengan kata lain, jika diketahui skema relasi R didekomposisi menjadi
gugus relasi {R1, R2}, maka dekomposisi ini disebut Lossless Join
Decomposition jika dipenuhi salah satu kondisi :
R1  R2  R1 atau R1  R2  R2

• Langkah Uji Lossless-joint Decomposition :


1. Uji Dekomposisi
R1  R2  …  Rn = R
2. Uji Lossless-join
Menggunakan sifat ketergantungan fungsional

65
Contoh 7
Diketahui skema relasi R=(A,B,C,D,E,F,G,H) didekomposisi menjadi :
1) R1=(A,B,C,D,G)
2) R2=(B,D,E,F,H).
FD pada R yang berlaku adalah :
1) B  A,G
2) E  D,H
3) A  E,C
4) DF
Ujilah apakah dekomposisi {R1,R2} tersebut lossless atau lossy ?

66
Contoh 7
1. Uji dekomposisi
R1  R2 = (A,B,C,D,G)  (B,D,E,F,H)
= (A,B,C,D,E,F,G,H)
=R

2. Uji Lossless
R1  R2 = (A,B,C,D,G)  (B,D,E,F,H)
= (B,D)
Akan dibuktikan bahwa paling sedikit satu kondisi berikut dipenuhi :
R1  R2  R1 ; (B,D)  (A,B,C,D,G) atau
R1  R2  R2 ; (B,D)  (B,D,E,F,H)

67
Contoh 7

terbukti
{R1,R2}
Dari (1) B  A,G maka : Lossless
(5) B,D  A,G,D (augmentasi)
(6) B,D  B,D (refleksif)
Jadi (7) B,D  A,B,D,G Dari (8) BA
(1) B  A,G maka dan (11) AC
(8) B  A dan Maka (12) B  C (transitif)
(9) BG Dan (13) B,D  C,D (augmentasi)
Dari (3) A  E,C maka
(10) A  E dan Dari (7) dan (13) didapat :
(11) A  C maka : B,D  A,B,C,D,G

Dari contoh di atas, tunjukkan apakah (B,D)  (B,D,E,F,H)

68
Latihan 5
Ujilah dekomposisi dari skema relasi R, apakah lossless atau lossy ?
1. R = (A,B,C,D,E,F,G,H) didekomposisi menjadi :
R1 = (A,B,C,D,E) dan R2 = (C,D,F,G,H) dengan FD :
C  (A,B,D) ; F  (G,H) ; D  (E,F)
2. R = (A,B,C,D,E) didekomposisi menjadi :
R1 = (A,B,C,D) dan R2 = (C,D,E) dengan FD :
A  B ; (C,D)  E ; B  D ; E  A
3. R = (X,Y,Z,W,U,V) didekomposisi menjadi :
R1 = (X,Y,Z,W) dan R2 = (W,U,V) dengan FD :
WX;XZ
4. R = (A,B,C,D,E,F) didekomposisi menjadi :
R1 = (A,B,C), R2 = (A,D,F) dan R3 = (E,D) dengan FD :
A  (B,C) ; D  (F,A)

69
Latihan 6
• Perhatikan nota berikut.

79
Latihan 6
• Apabila relasi nota tersebut adalah:
R = (no_nota, kd_pasok, nama_pasok, tgl, kd_brg, nama_brg, jml)
• Didekomposisi menjadi:
R1 = (no_nota, nama_psk, tgl)
R2 = (no_nota, kd_brg,nama_brg, jml)
• Dengan FD yang berlaku adalah:
(No_nota)  (nama_pasok, tgl)
(no_nota, kd_brg) (jml)
(kd_brg)  (nama_brg)
• Ujilah dekomposisi dari skema relasi R, apakah lossless atau lossy ?

80
Closure Functional Dependency
• Misal F adalah gugus ketergantungan fungsional pada skema relasi R,
maka semua FD yang mungkin dapat diturunkan dari F dengan
hukum-hukum FD disebut : Closure dari F, ditulis F+.
• Armstrong’s rule dapat dimanfaatkan untuk menentukan F+
• Contoh : Diketahui R = (A, B, C, D)
F = {A  B, B  C, A  C, C  D} maka :
 A  D sebab A  C dan C  D, dari sifat transitif (A3) didapat A  D
 B  D sebab B  C dan C  D, dari sifat transitif (A3) didapat B  D
Sehingga {A  B, B  C, A  C, C  D, A  D, B  D}  F+.

• Kita dapat menurunkan anggota-anggota F+ yang lain berdasarkan FD


yang diketahui menggunakan Armstong’s rule.

Closure FD (F+) berguna untuk Uji Dependency Preservation

81
Uji Dependency Preservation
• Misal skema relasi R dengan himpunan ketergantungan fungsional F
didekomposisi menjadi R1,R2,R3,…,Rn. Dan F1,F2,F3,…,Fn adalah
himpunan ketergantungan fungsional yang berlaku di R1,R2,R3,…,Rn
maka dekomposisi tersebut dikatakan memenuhi sifat Dependency
Preservation apabila berlaku :

• (F1  F2  F3  …  Fn)+ = F+

• Dependency Preservation (Pemeliharaan Ketergantungan) merupakan


kriteria yang menjamin keutuhan relasi ketika suatu relasi
didekomposisi menjadi beberapa tabel. Sehingga diharapkan tidak
terjadi inkonsistensi atau anomali ketika dilakukan update data.

82
Contoh 8
• Diketahui skema relasi R=(A,B,C)
dengan FD : A  B ; B  C
Didekomposisi menjadi R1=(A,B) dan R2=(B,C)
• Pertanyaan:
a. Apakah dekomposisi tsb Lossless-Joint ?
b. Apakah dekomposisi tsb memenuhi Dependency Preservation ?

83
Contoh 8
a. Uji Lossless Decomposition
– Uji Dekomposisi
R1  R2 = (A,B)  (B,C) = (A,B,C) = R

– Uji Lossless
R1  R2 = (A,B)  (B,C) = B
Lossless jika B  (A,B) atau B  (B,C).
Karena diketahui B  C maka BB  BC atau B  BC (Augmentasi).
Jadi dekomposisi tsb Lossless.

84
Contoh 8
b. Uji Dependency Presevation
R=(A,B,C) dan F = {AB, BC}.
Karena AB dan BC maka AC.
Maka dapat dibentuk closure F+ ={AB, BC, AC}.

R1=(A,B) dan F1={AB}. Karena hanya AB yang berlaku di R1.


R2=(B,C) dan F2={BC}. Karena hanya BC yang berlaku di R2.

F1  F2 = {AB,BC}. Karena AB dan BC maka AC.


Sehingga (F1  F2 )+={AB,BC,AC}=F+

Jadi dekomposisi tsb memenuhi Dependency Preservation.


• Ujilah dekomposisinya apakah Lossless dan Dependency Preservation
apabila R di atas didekomposisi menjadi R1=(A,B) dan R2=(A,C).
• Bagaimana bila R1=(A,B) dan R2=(B,C) tetapi FD : BC, ACB

85
Latihan 7
Ujilah dependency preservation untk skema relasi berikut:
1. R = (A,B,C,D,E,F,G,H) didekomposisi menjadi :
R1 = (A,B,C,D,E) dan R2 = (C,D,F,G,H) dengan FD :
C  (A,B,D) ; F  (G,H) ; D  (E,F)
2. R = (A,B,C,D,E) didekomposisi menjadi :
R1 = (A,B,C,D) dan R2 = (C,D,E) dengan FD :
A  B ; (C,D)  E ; B  D ; E  A
3. R = (X,Y,Z,W,U,V) didekomposisi menjadi :
R1 = (X,Y,Z,W) dan R2 = (W,U,V) dengan FD :
WX;XZ
4. R = (A,B,C,D,E,F) didekomposisi menjadi :
R1 = (A,B,C), R2 = (A,D,F) dan R3 = (E,D) dengan FD :
A  (B,C) ; D  (F,A)

86
Latihan 8
• Perhatikan nota berikut.

87
Latihan 8
• Apabila relasi nota tersebut adalah:
R = (no_nota, kd_pasok, nama_pasok, tgl, kd_brg, nama_brg, jml)
• Didekomposisi menjadi:
R1 = (no_nota, nama_psk, tgl)
R2 = (no_nota, kd_brg,nama_brg, jml)
• Dengan FD yang berlaku adalah:
(No_nota)  (nama_pasok, tgl)
(no_nota, kd_brg) (jml)
(kd_brg)  (nama_brg)
• Ujilah dekomposisi dari skema relasi R, apakah memenuhi dependency
preservation?

88
Jadwal
Prt Tgl T P
1 05/09 Pengantar Kuliah Basis Data 1 V
2 05/09 Intro to Database System, DB System Environment V
3 12/09 Into to Relational Model V
4 12/09 Intro to SQLite & DB4S V
5 19/09 Query Language: Overview, Data Definition V
6 19/09 SQLite: Data Definition V
7 26/09 Query Language: Basic Structure V
8 26/09 SQLite: Basic Structure V

89
Jadwal
Prt Tgl Teori T P
9 03/10 Relational Database: Relational Algebra V
10 03/10 Relational Database: Relational Algebra V
11 10/10 Relational Database: Relational Algebra V
12 10/10 SQLite: Aggregate Function, Set Operation, Join Operation V
13 24/10 Project 1: Presentasi V
14 24/10 SQLite: Subquery (set membership, set comparison, empty V
relation)
15 26/10 UTS V
16

90
Jadwal
Prt Tgl Teori T P
17 31/10 Data Modeling: ER Model V
18 31/10 Data Modeling: ER Model V
19 07/11 SQLite: Subquery V
20 07/11 SQLite: Views V
21 14/11 Data Modeling: ER Model V
22 14/11 Data Modeling: ER Model (Tugas 2) V
23 21/11 Data Modeling: Integrity Rules & Normalization V
24 21/11 Data Modeling: Integrity Rules & Normalization V

91
Jadwal
Prt Tgl Teori T P
25 28/11 SQLite: Modification database V
26 28/11 SQLite: Functions (date & time, math, string) V
27 05/12 Data Modeling: Integrity Rules & Normalization V
28 05/12 Data Modeling: Integrity Rules & Normalization V
29 12/12 Project 2: Presentasi V
30 12/12 Diskusi V
31 UAS V
32

92

Anda mungkin juga menyukai