dekomposisi relasi

advertisement
Basis Data (Database)
(3 SKS)
Tujuan Instruksional Umum :
Mahasiswa mampu merancang Basis Data yang baik sesuai
konsep-konsep perancangan Basis Data yang benar.
Database System Concepts
1.1
©Silberschatz, Korth and Sudarshan
Basis Data (Database)
Materi :
 Konsep Dasar Basis Data
 Sistem Basis Data
 Model-Model Data
 E-R Model
 Tranformasi E-R Model ke Basis Data Fisik
 Dekomposisi, Ketergantungan Fungsional dan Kunci
 Normalisasi Data
 Relational Model
 Bahasa Query
Database System Concepts
1.2
UTS
UAS
©Silberschatz, Korth and Sudarshan
Basis Data (Database)
Referensi :
Utama :
Henry F Korth, Silberschatz, Sudarsan, “Database system concepts”
Pendukung :
C.J. Date, “Pengenalan Sistem Basis Data”
Fathansyah, “Basis Data”
Adi Nugroho, ST., MMSI., “Konsep Pengembangan Sistem Basis Data”
Database System Concepts
1.3
©Silberschatz, Korth and Sudarshan
Basis Data (Database)
Penilaian :
UTS
: 35%
UAS
: 35%
Tugas : 30%
Alokasi Waktu yang diharapkan untuk matakuliah ini :
3 SKS = 3 * 3 jam / minggu = 9 jam / minggu
• 3 jam / minggu belajar dikelas (kuliah)
• 3 jam / minggu belajar mandiri
• 3 jam / minggu mengerjakan tugas individu atau kelompok
Database System Concepts
1.4
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Arti Penting Database (Basis Data) :
File data yang dapat menghasilkan informasi merupakan
Sumberdaya bagi perusahaan / organisasi, maka perlu dikelola
dengan :
~ Baik
Mudah dalam pengaksesan
~ Terpadu
Dapat mengantisipasi permasalahan masa yang akan datang
(berksinambungan)
~ Aman
Data harus dapat dilindungi dari campur tangan pihak lain
Database System Concepts
1.5
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Database System Applications :
Banking : for customer information, accounts and loans, and
banking transactions
Airlines : for reservations and schedule information
University : for students information, course registrations
Sales : for customer, product, and purchase information
Manufacturing : inventories of items in stores and orders for items
Human Resources : for information about employees, salaries,
payroll taxes and benefits
Finance : for storing information about holdings, sales, purchase
of financial instruments such as stock and bonds
Database menyentuh semua aspek kehidupan
Database System Concepts
1.6
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Evolusi Teknologi Basis Data :
1960s: Data collection, database creation, IMS and network DBMS
1970s: Relational data model, relational DBMS implementation
1980s: RDBMS, advanced data models (extended-relational, OO,
deductive, etc.) and application-oriented DBMS (scientific,
engineering, etc.)
1990s—2000s: Data mining and data warehousing, multimedia
databases, and Web databases
Database System Concepts
1.7
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Sistem Pemrosesan Berkas
(File Processing System / System File) :
“sekelompok rekaman disimpan pada sejumlah berkas secara terpisah”
personalia
Prog. Aplikasi
Personalia
Berkas
personalia
pelatihan
Prog. Aplikasi
Pelatihan
Database System Concepts
1.8
Berkas
pelatihan
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
 Pada waktu yang lalu aplikasi database dibangun diatas
sistem file
 Kekurangan penggunaan sistem file sebagai penyimpan data:
 Redundansi / kerangkapan data dan inconsistency
 Format file yang tidak seragam, kerangkapan data di file-file
yang berbeda
 Sulit dalam mengakses data
 Perlu program baru untuk mengakses data baru
 Pengisolasian data — banyak file dengan format yang berbeda
 Masalah integritas (keterpaduan)
 Pengendalian terpadu (mis. saldo > 0) menjadi bagian dari
program
 Sulit untuk menambah elemen pengendali atau mengubah
yang sudah ada
Database System Concepts
1.9
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
 Kekurangan sistem file
 Pengubahan atomik
 Kesalahan mungkin mengakibatkan database dalam kedaan yang
tidak konsisten dengan data yang baru yang dihasilkan
 Mis. Pengiriman uang dari satu rekening ke rekening yang lain
harus terjadi secara lengkap atau tidak sama sekali
 Akses secara bersamaan oleh banyak user
 Akses secara bersama untuk meningkatkan kinerja
 Akses bersama akan mengakibatkan ketidak konsistenan
– Mis. Dua orang membaca dan megubah data saldo pada saat
yang sama
 Masalah keamanan
 Sistem Database mampu mengatasi masalah tersebut diatas
Database System Concepts
1.10
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Alasan Database perlu dirancang :
 Jumlah data yang selalu bartambah
 Adanya pengulangan / duplikasi data
 Disintegrasi antar data / file
 Keamanan data
 Keterasingan data
 Akses data secara simultan
 Masalah keutuhan data
Database System Concepts
1.11
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Pendekatan Basis Data :
personalia
pelatihan
DBMS
Basis
Data
Data tersimpan secara terpusat berbagai
User dapat mengakses data menggunakan
DBMS
Database System Concepts
1.12
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Keuntungan Pemakaian Sistem Basis Data:
 Efisiensi ruang penyimpanan (space)
 Keakuratan (accuracy)
 Data dapat dipakai bersama
 Kecepatan dan kemudahan (speed)
 Keamanan data terjamin
 Terpeliharanya integritas data
 Data independence
Database System Concepts
1.13
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Basis Data ?
Basis : Kumpulan / Gudang
Data : Fakta tentang obyek, orang dan lain-lain
yg dinyatakan dengan nilai (angka, simbol dll)
Hirarki Data :
Byte
Field
Record
Basis Data
IDProd
NamaProduk
Harga
QtyStock
F001
TV 14”
1500000
12
F002
TV 21”
2100.000
4
F003
TV 21” Flatron
2700000
24
link
NoOrder
Date
IDProd
QtyOrder
IDSls
120301
12/11/04
F001
2
120302
13/11/04
F001
120303
22/11/04
F003
Database System Concepts
File / Tabel
link
IDSls
NmSls
AlamatAsal
KotaAsal
S001
S001
Anita
Jl. Nakula 9
Kendal
2
S003
S002
Vicky
Jl. Arjuna I/6
Semarang
6
S001
S003
Roni
Jl. Bima II/3
Semarang
1.14
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
C.J. Date :
Basis data adalah tempat untuk sekumpulan file data /berkas
terkomputerisasi
Korth :
A Database is a collection of interralated data
Definisi Lain :
 Basis Data : kumpulan file data yang saling berhubungan dan
disimpan dalam media elektronis
 Basis Data : kumpulan data yang saling berhubungan dan diorganisasi
sedemikian sehingga dapat dimanfaatkan dg cepat & mudah
Database System Concepts
1.15
©Silberschatz, Korth and Sudarshan
Database System Concepts
1.16
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Operasi-operasi dasar terhadap suatu basis data :
Pembuatan basis data baru (create database)
Penghapusan basis data (drop database)
Pembuatan tabel (create table)
Pengisian data dalam tabel (insert)
Pengambilan data (retrieve)
Pengubahan data (update)
Penghapusan data (delete)
dll
Database System Concepts
1.17
©Silberschatz, Korth and Sudarshan
Skema dan Isi
 Mendekati tipe dan variabel dalam bahasa pemrograman
 Skema – struktur lojik dari database
 Mis. Database yang berisi informasi tentang himpunan nasabah dan
rekeningnya dan relasi diantaranya
 Analogi dengan tipe informasi dari variabel dalam sebuah program
 Skema fisik : rancangan database dalam tingkatan fisik
 Skema lojik : rancangan database dalam tingkatan lojik
 Instan – isi aktual dari database pada suatu waktu
 Analogi dengan nilai variabel
 Kemandirian data fisik – memungkinkan melakukan perubahan skema
fisik tanpa mengubah skema lojik
 Aplikasi bergantung pada skema lojik
 Secara umum, antar muka antara berbagai tingkat dan komponen harus dapat
didefinisiikan dengan baik sehingga perubahan di suatu bagian tidak
memberikan dampak banyak pada bagian lainnya.
Database System Concepts
1.18
©Silberschatz, Korth and Sudarshan
SKEMA FISIK
SKEMA LOGIK
Konsumen
Barang
Kode_k
Nama_k
Alamat_k
Kota_k
Kode_brg
Nama_brg
Satuan
Harga
char(4)
char(20)
char(12)
char(10)
Jual_h
No_fak
Tgl_jual
Kode_k
char(5)
date
char(4)
int(2)
char(15)
char(10)
int
IDProd
NamaProduk
Harga
QtyStock
F001
TV 14”
1500000
12
F002
TV 21”
2100.000
4
F003
TV 21” Flatron
2700000
24
link
NoOrder
Date
IDProd
QtyOrder
IDSls
120301
12/11/04
P001
2
S001
120302
13/11/04
P001
2
S003
120303
22/11/04
P003
6
S001
link
Jual_d
No_fak
char(5)
Kode_brg int(2)
Jml
dec(12,2)
Database System Concepts
1.19
IDSls
NmSls
AlamatAsal
KotaAsal
S001
Anita
Jl. Nakula 9
Kendal
S002
Vicky
Jl. Arjuna I/6
Semarang
S003
Roni
Jl. Bima II/3
Semarang
©Silberschatz, Korth and Sudarshan
Database System Concepts
1.20
©Silberschatz, Korth and Sudarshan
Database System Concepts
1.21
©Silberschatz, Korth and Sudarshan
Database System Concepts
1.22
©Silberschatz, Korth and Sudarshan
Database System Concepts
1.23
©Silberschatz, Korth and Sudarshan
Database System Concepts
1.24
©Silberschatz, Korth and Sudarshan
Database System Concepts
1.25
©Silberschatz, Korth and Sudarshan
Konsep Dasar Basis Data
Sistem :
Sebuah tatanan yang terdiri dari sejumlah Komponen fungsional yang SALING
berhubungan untuk memenuhi suatu tujuan tertentu.
Sistem Basis Data :
Merupakan sistem yang terdiri atas basis data dan sekumpulan
program (DBMS) yang memungkinkan beberapa user mengakses dan
memanipulasi data tersebut.
Database System Concepts
1.26
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
Komponen Sistem Basis Data :
 Hardware
 Operating System
 Basis Data
 DBMS
 Pemakai / User
 Software lain
Basis Data
user
File1 File3
file2
Database System Concepts
1.27
File4
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
DBMS ( Data Base Management System) :
Adalah suatu program komputer yang digunakan untuk memasukkan, mengubah, menghapus,
memanipulasi dan memperoleh data / informasi secara praktis dan efisien
DBMS berguna untuk :
Mendefinisikan struktur data
Memanipulasi nilai data yang ada dalam database.
Pengendalaian akses terhadap suatu data :
* untuk pengamanan sistem
* untuk keterpaduan sistem
* sistem pengendalian persetujuan akses
* sistem pengendalian pemulihan.
Database System Concepts
1.28
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
Contoh Produk DBMS :
 Oracle (Oracle Corp.)





Informix
Sybase
Dbase
MS Sql Server
MySQL
Sasaran utama DBMS menyediakan lingkungan yang nyaman
dan efisien dalam menyimpan dan mengambil informasi ke dan
dari basis data
Database System Concepts
1.29
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
Pemakai / User :
 Programmer Aplikasi
Cara berinteraksi dengan basis data melalui program yang ditulis
 User Mahir (Casual User)
Cara berinteraksi dengan basis data melalui query yang telah
disediakan oleh DBMS
 User Umum (End User/Naïve User)
Cara berinteraksi dengan basis data melalui pemanggilan
program aplikasi (executable program)
 User Khusus (Specialized User)
User yang dapat mengakses Basis data tanpa / dengan dbms,
misalnya untuk keperluan Artificial Intelligence, Expert System
dll
Database System Concepts
1.30
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
Database Administrator (DBA)
Adalah orang yang bertanggung jawab terhadap
sebuah database:
 Schema Definition
 Storage Structure and Access-method Definition
 Granting of Authorization for data access
 Routine Maintenance
a. Backing up the database
b. Monitoring jobs running on the database
c. upgrading disk space as required
Database System Concepts
1.31
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
Struktur Sistem Keseluruhan :
Naïve user
Program
Aplikasi
Exe
Program
Programmer
casual
System
Call
Query
DML
Precompiler
Query
Processor
Database
Manager
Skema
Basis Data
DDL
Compiler
DBMS
File
Manager
File
Data
Disk
Compiler DDL menghasilkan sekumpulan tabel
yang tersimpan dalam kamus data.
Kamus Data berisi metadata (data tentang data)
Database System Concepts
DBA
1.32
Kamus
Data
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
Keterangan :
File manager : mengelola alokasi ruang dalam disk dan struktur
data dalam disk
Database manager : menyediakan interface antara low level
Dengan prog. Aplikasi dan query
Query processor : menterjemahkan perintah dlm query Language
ke perintah low level yang dimengerti oleh Database manager
DML precompiler : mengkonversi perintah DML yang ada Di
prog. Aplikasi ke pemanggilan prosedur normal dlm Bahasa
induk
DDL compiler : mengkonversi perintah-perintah DDL Kedalam
sekumpulan tabel yang mengandung metadata. Tabel ini
kemudian disimpan dalam kamus data
Database System Concepts
1.33
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
Merupakan tingkatan dalam bagaimana
Tingkat abstraksi melihat data dalam Sistem Basis Data
Abstraksi Data :
Level Penampakan : user yang
menikmati sebagian dari Basis
Data
Menggambarkan data apa yg
sebenarnya (secara fungsional)
disimpan dlm Basis Data dan
hubungannya dg data lain
Bagaimana sesungguhnya
suatu data disimpan
Database System Concepts
1.34
©Silberschatz, Korth and Sudarshan
Tingkat abstraksi
 Tingkat Fisik : yang menjelaskan bagaimana sebuah rekord disimpan.
 Tingkat Lojik : menjelaskan simpanan data dalam database, dan relasi
antar data.
Jual_h
Konsumen
Kode_k
Nama_k
Alamat_k
Kota_k
char(4)
char(20)
char(12)
char(10)
No_fak
Tgl_jual
Kode_k
char(5)
date
char(4)
Jual_d
Barang
Kode_brg
Nama_brg
Satuan
Harga
int(2)
char(15)
char(10)
int
No_fak
char(5)
Kode_brg int(2)
Jml
dec(12,2)
 Tingkat user (pandang): program aplikasi menyembunyikan rinci tipe
data. Tingkat pandang dapat juga menyembunyikan nilai informasi
untuk kebutuhan keamanan.
Database System Concepts
1.35
©Silberschatz, Korth and Sudarshan
Sistem Basis Data
Merupakan cara berinteraksi pemakai dg basis
Bahasa Basis Data :
data yang sesuai dengan aturan ditetapkan
oleh pembuat DBMS
Bagian Basis Data :
 Data Definition Language (DDL)
Bahasa yg digunakan untuk menggambarkan basis data secara
keseluruhan, Operasi yang dapat dijalankan adalah membuat tabel
baru, membuat indeks, mengubah tabel, menentukan struktur. Hasil
kompilasi dari DDL ini adalah Kamus Data (Data Dictionary)
 Data Manipulation Language (DML)
Bahasa untuk melakukan manipulasi dan pengambilan data pada
suatu basis data, seperti : penyisipan, penghapusan dan update.
Database System Concepts
1.36
©Silberschatz, Korth and Sudarshan
Tugas
a. List four significant differences between a file-processing system and
a DBMS
b. What are two advantages and disadvantages of a database system
c. What are five main function of a database administrator
d. Explain the database system concepts
e. Explain the database schema, physical schema and logical schema
Database System Concepts
1.37
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data :
Adalah kumpulan perangkat konseptual untuk
menggambarkan Data, hubungan antar data,
semantik dan batasan data.
Model data biasanya digunakan untuk perancangan basis data,
yang disebabkan karena kelangkaan data / fakta yang dimiliki
Henry F. Korth :
Ada 2 kelompok model data, yaitu :
 Model data berbasis object
 Model data berbasis record
Database System Concepts
1.38
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Secara umum :
E-R Model
Semantic Model
Object Based
Data Model
Record Based
Binary Model
Relational Model
Hierarchycal Model
Network Model
Physical Based
Unifying Model
Frame Model
Database System Concepts
1.39
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
a. Data flat-file terdiri dari satu atau lebih file
yang dapat dibaca, yang secara normal
berbentuk format file text.
b. Informasi pada suatu flat-file disimpan sebagai
fields, dengan fields-nya memiliki panjang
konstan atau panjang bervariasi yang
dipisahkan beberapa karakter (delimeter).
Database System Concepts
1.40
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Contoh 1, Flat-file Model Data
Model data flat-file dengan panjang fields-nya konstan.
1234
5
67890123456789012345
6
78901234567890123
0123
Mulyono
Progdi TI-S1
1234
Arifin
Progdi TI-S1
2345
Tyas Catur P.
Progdi TI-S1
3456
Ifan Riska
Progdi TI-S1
4567
Ayu Pertiwi
Progdi TI-S1
Database System Concepts
1.41
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Penjelasan Contoh 1,
Terdapat 3 fields : identifikasi angka, nama
dosen, dan nama program studi.
Setiap fields memiliki panjang konstan karena
field identifikasi angka selalu dimulai pada kolom
#1 dan selalu berakhir pada kolom #4, field nama
dosen selalu dimulai pada kolom #6 dan selalu
berakhir pada kolom #25, dan seterusnya.
Database System Concepts
1.42
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Contoh 2, Flat-file Model Data
Model data flat-file dengan panjang fields-nya bervariasi
0123: Mulyono: Progdi TI-S1
1234: Max Tetelepta : Progdi TI-S1
2345: Tyas Catur P.: Progdi TI-S1
3456: Ifan Riska:PS. Progdi TI-S1
4567: Ayu Pertiwi:PS. Progdi TI-S1
5678: Etika Kartika:PS. Progdi TI-S1
6789: Anthoni Suteja:PS. Progdi TI-S1
7890: Fikri Budiman: Progdi TI-S1
Database System Concepts
1.43
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Penjelasan Contoh 2,
Model data flat-file dengan panjang fields
bervariasi yang dipisahkan dengan delimeter.
Untuk setiap fields dipisahkan dengan titik dua.
Setiap fields memiliki panjang tidak konstan.
Pada saat menggunakan fields separator,
seharusnya fields seperatornya bukan merupakan
karakter yang terdapat pada data.
Database System Concepts
1.44
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model data File datar ( Flat-file data model )
Kelemahan model data flat-file:
 Flat-file tidak menggunakan struktur data yang dengan mudah
dapat direlasikan
 Sulit untuk mengatur data secara efisien dan menjamin akurasi
 Lokasi fisik fields data dengan file harus diketahui
 Program harus dikembangkan untuk mengatur data
Database System Concepts
1.45
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Menjelaskan hub logik antar data dlm bentuk hub
bertingkat. Elemen penyusun disebut node, node
tertinggi : root. Suatu node yg lebih rendah hanya
diijinkan memp, 1 hub dg node yg lebih tinggi,
disebut parent. Parent dapat mempunyai > 1 hub dg
node dibawahnya.
Model Data Hirarkis :
Contoh :
Univ
Nama Universitas
UDINUS
Fak
Nama Fak
Fasilkom
Jml Dosen Jml Mhs
85
8500
Mhs
NIM
Nama
A21002 Adam
Jml Fak
5
Dosen
Fakultas
Fasilkom
NIP
A001
Nama_D Pangkat
DR. Vis
IIIC
MK
KD MK
Nama_mk SKS
MKK01
Database System Concepts
SBD I
1.46
2
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Hirarkis
 Keterangan :
Kelebihan basis data hirarki dibandingkan flat-file:
 Data dapat dengan cepat dilakukan retrieve
 Integritas data mudah dilakukan pengaturan
Kelemahan basis data hirarki dibandingkan flat-file:
 Pengguna harus sangat familiar dengan struktur basis data
 Terjadi redudansi data
Database System Concepts
1.47
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Distandarisasi oleh Data Base Task Group (DBTG)
tahun 1971. Hampir sama seperti hirarakis, tetapi
dalam model jaringan suatu node dibawahnya bisa
memp hub dengan > 1 node diatasnya
Model Data Jaringan :
Contoh :
Universitas
Fakultas
Mahasiswa
Dosen
Mata Kuliah
Registrasi
Database System Concepts
1.48
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Jaringan
Kelebihan model data jaringan:
 Data lebih cepat diakses
 User dapat mengakses data dimulai dari beberapa tabel
 Mudah untuk memodelkan basis data yang komplek
 Mudah untuk membentuk query yang komplek dalam
melakukan retrieve data.
Database System Concepts
1.49
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
E-R model :
Model yang menjelaskan hub antar data dalam basis data
berdasarkan suatu persepsi bahwa real word terdiri dari obyekobyek dasar yang mempunyai relasi antara obyek-obyek tersebut
Simbol-simbol :
entitas
Relasi / hubungan
atribut
Database System Concepts
Garis hubung
1.50
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Contoh skema dalam model hubungan entitas
Database System Concepts
1.51
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Hampir sama seperti E-R Model, tetapi relasi
antar obyek dasar dinyatakan dengan katakata (semantik).
Model Data Semantic :
SKS
Contoh :
Kode
Mata Kuliah
NM_kul
Mengajar
mengambil
Dosen
Mahasiswa
NIM
Nama_dos
Alamat
Nama
Database System Concepts
1.52
©Silberschatz, Korth and Sudarshan
Model Data Relasional
Disebut juga : Model Relasional atau Basis Data Relasional (ditemukan oleh : E.F. Codd)
Menunjukan suatu cara yang digunakan untuk mengelola data
secara fisik dalam memori sekunder dan bagaimana bentuk
relasi dari keseluruhan data dalam sistem yang sedang ditinjau
Kelebihan :
1.
2.
3.
Dapat mengakomodasi berbagai kebutuhan pengelolaan basis data
yg ada di dunia nyata (real word)
Pencarian data dari suatu tabel atau banyak tabel dapat dilakukan
dengan cepat
Merupakan model yang paling sederhana sehingga mudah untuk
dipahami
Database System Concepts
1.53
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Relasional
Basis Data akan disebar / dipilah ke dalam tabel dua dimensi
Contoh :
Kolom / Field / Atribut
NIM
Baris /
kardinalitas
980001
980002
980003
980004
Nama
Mahasiswa
Ali Akbar
Budi Haryanto
Imam Faisal
Indah Susanti
Tabel / relasi
Alamat
Tgl Lahir
Jl. Merdeka No. 10 Jakarta 40121
Jl. Gajah Mada No. 2 Jakarta
Komp. Griya Asri D-2 Depok 40151
Jl. Adil No. 123 Bogor
2 Jan 1979
6 Okt 1978
13 Mei 1978
21 Juni 1979
Record / tuple
Item data
Database System Concepts
1.54
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Relasional
Istilah-istilah:
RDMS (relational Database Management System) adalah
DBMS yang bermodelkan relasional
Kardinalitas adalah jumlah tupel suatu relasi (tabel)
Derajad / degree / arity adalah jumlah atribut suatu relasi
Domain adalah Himpunan / batasa nilai yang berlaku bagi
suatu atribut
misalnya : Domain atribut nilai adalah A, B, C, D, dan E
Domain tidak sama dengan tipe data suatu atribut
Istilah relasi biasanya untuk membicarakan struktur logis
sedangkan istilah tabel biasanya untuk basis data fisik
Database System Concepts
1.55
©Silberschatz, Korth and Sudarshan
Contoh Database Relasional
Database System Concepts
1.56
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Berorientasi Obyek
 Model basis data berorientasi objek adalah suatu model basis data,
dimana data didefinisikan, disimpan, dan diakses menggunakan
pemrograman berorientasi objek.
 Basis data berorientasi objek didefinisikan dengan menggunakan
bahasa pemrograman berorientasi objek, yaitu bahasa Java.
 Aplikasi End user juga di bangun dengan menggunakan bahasa
berorientasi objek.
 Object database management system digunakan untuk membuat
link antara basis data dan aplikasi.
Database System Concepts
1.57
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Berorientasi Obyek
Contoh : Model Data Berorientasi Obyek
Database declarations
using Java
Application code written
using Java
Object declarations using
Java
Java program compiler
Database
interaction
Application executables
generated
End user
Database System Concepts
1.58
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Berorientasi Obyek
Relasi pada basis data berorientasi obyek
Nama Class
Properties
Class
Operasi / method
Database System Concepts
1.59
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Berorientasi Obyek
Kelebihan basis data berorientasi objek:
a. Programmer hanya dibutuhkan memahami konsep
berorientasi objek untuk mengkombinasikan konsep
berorientasi objek dengan storage basis data relasional
b. Objek dapat dilakukan sifat pewarisan dari objek yang lain
c. Secara teoritis mudah untuk mengatur objek
d. Model data berorientasi objek lebih kompatibel dengan tools
pemrograman berorientasi objek.
Database System Concepts
1.60
©Silberschatz, Korth and Sudarshan
Model Data Dalam SBD
Model Data Berorientasi Obyek
Kelemahan basis data berorientasi objek:
User harus memahami konsep berorientasi objek, karena basis data
berorientasi objek tidak dapat bekerja dengan metoda pemrograman
tradisional
Database System Concepts
1.61
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Semesta data di dunia nyata ditansformasikan ke dalam sebuah
diagram dengan memanfaatkan perangkat konseptual disebut
dengan ERD (Entity Relationship Diagram).
Simbol / Notasi E-R Diagram :
Identifying
Relationship
Strong Entity
Attribute
Weak Entity
Relationship
Associative
Entity
Multivalued
Attribute
Derived
Attribute
Link
Database System Concepts
1.62
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Entity (Entitas)
Merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan
dari sesuatu yang lainnya (individu : manusia, tempat, obyek, kejadian,
konsep). Biasanya berhub. Dg baris dlm sebuah tabel).
Entity Sets (Himpunan Entitas) :
Sekelompok entitas yang sejenis dan berada dalam lingkup yang sama
Contoh :
Himpunan Entitas : Pelanggan
Entitas : Budiman, Suherman dll
Himpunan Entitas : Mobil
Entitas : Mobil Suzuki, Mobil Honda dll
Himpunan Entitas : Mahasiswa
Entitas : Ali, Budi, Iman dll
Database System Concepts
1.63
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
Analogi
NIM
980001
980002
980003
980004
Nama
Mahasiswa
Ali Akbar
Budi Haryanto
Imam Faisal
Indah Susanti
Alamat
Tgl Lahir
Jl. Merdeka No. 10 Jakarta 40121
Jl. Gajah Mada No. 2 Jakarta
Komp. Griya Asri D-2 Depok 40151
Jl. Adil No. 123 Bogor
2 Jan 1979
6 Okt 1978
13 Mei 1978
21 Juni 1979
Entitas 1
Entitas 2
Entitas 3
Entitas 4
Himpunan Entitas
Database System Concepts
1.64
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Atribut (attribute / Properties)
Merupakan karakteristik dari sebuah entitas (biasanya berhubungan
dengan field dalam sebuah tabel). Penentuan atribut bagi suatu
entitas didasarkan pada relevansinya terhadap entitas tersebut.
Atribut Kunci / Identifikasi :
Merupakan atribut pengidentifikasi entitas yang paling unik untuk
semua entitas dalam himpunan entitas
Contoh : Atribut NIM pada Himp. Entitas mahasiswa
Atribut Deskriptif :
Merupakan atribut lain selain atribut kunci yang befungsi sebagai
penjelasan terhadap entitas dalam himpunan entitas
Contoh : Atribut nama, alamat, tgl_lahir pada Himp. Entitas MHS
Database System Concepts
1.65
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Ada tiga macam kunci :
® Superkey
Adalah satu / lebih atribut yg dapat membedakan entitas
satu dengan lainnya dalam himp entitas
® Candidate Key
Merupakan kumpulan atribut minimal yang dapat membeda
kan entitas satu dengan lainnya dalam himp entitas.
® Primary Key
Salah satu dari candidate key yang digunakan sebagi peng
identifikasi suatu entitas dalam himp entitas.
Database System Concepts
1.66
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
No_KTP No_SIM Nama Alamat
superkey
Superkey :
No_KTP+No_SIM+Nama+Alamat
No_KTP+No_SIM+Nama
No_KTP+No_SIM
No_KTP
No_SIM
Candidate
Key
Primary Key
Candidate Key:
No_KTP
No_SIM
Database System Concepts
1.67
Primary Key:
No_KTP atau No_SIM
tergantung kebutuhan
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Dasar pemilihan Primary Key :
1. Key sering digunakan sebagai acuan
2. Key lebih ringkas
3. Key adalah unik
Atribut Sederhana (Simple Attribute) :
atribut atomik yg tidak dapat di pilah lagi
Atribut Komposit (Composite Attribute) :
atribut atomik yg dapat di pilah lagi
Contoh :
Atribut nama : atribut sederhana (nilai sudah paling kecil / atomik)
Atribut alamat : atribut komposit, karena masih dapat dipilah-pilah
lagi menjadi atribut : jalan, kota dan kode_pos
Database System Concepts
1.68
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Atribut bernilai banyak (multivalued attribute) :
Merupakan atribut yang dapat bernilai lebih dari 1 nilai yang sejenis
Atribut bernilai tunggal (Single-valued attribute) :
Merupakan atribut yang hanya mempunyai satu nilai
Contoh :
NIM Nama Alamat
98001
Rudi
98002
Wati
Hobi
Jl. Seroja
Renang
Nonton
Dago Raya Tidur
NIM, Nama dan Alamat :
atribut bernilai tunggal
Hobi : atribut bernilai banyak
Atribut Turunan (Derived attribute) :
Merupakan atribut yang nilainya diperoleh dari pengolahan atau diturunkan
dari atribut / tabel lain
Database System Concepts
1.69
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
NIM Nama Alamat Angkatan IPK
98001 Andi
99011 Susi
Jl. X
Jl. Y
1998
1999
3.2
3.0
Angkatan, IPK :
Atribut turunan
Atribut harus bernilai (Mandatory Attribute) :
Merupakan atribut-atribut yang harus diisikan nilainya
Atribut tidak harus bernilai (Non Mandatory Attribute / Null) :
Merupakan atribut-atribut yang nilainya boleh dikosongi
Database System Concepts
1.70
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Relasi (Relationship) :
Digunakan untuk menunjukan hubungan antar entitas
Himpunan Relasi (Relationship Sets) :
Merupakan kumpulan semua relasi diantara entitas
Contoh :
Mahasiswa
NIM
Nama ...
Mata Kuliah
Kode_kul Nama_kul
98001 Andi ...
98003 Rudi ...
98013 Susi ...
A01
A03
A02
Pancasila
Internet I
Network I
sks
2
2
2
Dari tabel-tabel diatas, dapat dilihat bahwa terdapat hubungan / relasi
antara himp entitas mahasiswa dengan mata kuliah.
--> Andi mempelajari mata kuliah Internet I
--> Rudi mempelajari mata kuliah Internet I dan Network I
Database System Concepts
1.71
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Sehingga apabila dimodelkan dengan E-R Diagram :
Mahasiswa
Mempe
lajari
Mata kuliah
Kode_kul
NIM
Nama
Nama_kul
sks
Database System Concepts
1.72
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Kardinalitas / Derajad Relasi :
Merupakan jumlah maksimum entitas yang dapat berelasi dengan
entitas pada himp entitas yang lain.
Macam-macam Kardinalitas :

Satu ke satu (one to one)
Entitas 1
Entitas 2
Entitas 3
Entitas 4
A
Database System Concepts
Entitas 1
Entitas 2
Entitas 3
Entitas 4
Setiap entitas pada himp entitas A
Berhubungan dengan paling banyak
Dengan satu entias pada himpunan
Entitas B dan begitu juga sebaliknya
B
1.73
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
Nama-Dosen
Dosen
Kode
alamat
1
1
Menge
palai
Nama-Dosen
Nama_prog
Progdi
Kode
Satu dosen paling banyak mengepalai satu program studi (walaupun
tidak semua dosen menjadi ketua) dan setiap program studi di kepalai
oleh paling banyak satu dosen.
Database System Concepts
1.74
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)

Satu ke banyak (one to many)
Entitas 1
Entitas 2
Entitas 3
Entitas 4
A
Contoh :
Database System Concepts
Setiap entitas pada himp entitas A
Berhubungan dengan banyak entias
pada himpunan entitas B, tetapi
Tidak sebaliknya
Entitas 1
Entitas 2
Entitas 3
Entitas 4
B
Setiap agama dapat dianut oleh lebih dari satu mahasiswa,
tetapi tidak sebaliknya (setiap mahasiswa hanya dapat
menganut satu agama)
1.75
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
Kode_agm
Agama
1
NIM
dianut
N
Mahasiswa
NIM
Kode_agm
Nama
Deskripsi
Semester
Database System Concepts
1.76
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)

banyak ke banyak (many to many)
Entitas 1
Entitas 2
Entitas 3
Entitas 4
A
Contoh :
Database System Concepts
Setiap entitas pada himp entitas A
Berhubungan dengan banyak entias
pada himp entitas B, dan sebaliknya
Entitas 1
Entitas 2
Entitas 3
Entitas 4
B
Setiap dosen dapat mengajar lebih dari satu mata
Kuliah dan setiap mata kuliah dapat diajar oleh lebih
Dari satu dosen
1.77
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
Nama_dos
Dosen
N
kode-_kuliah
Mengajar
Nama_dos
Alamat_dos
N
Mata Kuliah
Kode_kuliah
waktu
Nm_kuliah
tempat
SKS
Database System Concepts
1.78
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Tahapan pembuatan E-R Diagram :

Mengidentifikasi dan menetapkan seluruh himpunan entitas
yang akan terlibat
 Menentukan atribut-atribut kunci dari masing-masing himpunan
entitas
 Mengidentifikasi dan menetapkan seluruh himpunan relasi di
antara himpunan entitas – himpunan entitas yang ada beserta
foreign key (kunci tamu)
 Menentukan derajad / kardinalitas relasi untuk setiap himpunan
entitas
 Melengkapi himpunan entitas dan himpunan relasi dengan
atribut-atribut deskriptif
Database System Concepts
1.79
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
ERD dengan kamus data :
Pada sebuah sistem yang kompleks, penggambaran atribut-atribut
dalam sebuah ERD seringkali kelihatan lebih rumit. Untuk itu
pendeklarasian atribut-atribut tersebut dapat menggunakan kamus
data.
Contoh :
Dosen
N
N
Mengajar
Mata Kuliah
Kamus Data :
Dosen = {Nama_dos, Alamat_dos}
Mengajar = {Nama_dos, KD_kuliah, Waktu, Tempat, Ruang }
Mata Kuliah = {Kd_kuliah, Nm_kuliah, SKS}
Database System Concepts
1.80
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Derajad Relasi Minimum :
Menunjukan hubungan (korespondensi) minimum yang boleh terjadi
dalam suatu relasi antar himpunan entitas. Nilai derajad relasi minimum
hanya boleh 0 atau 1.
Contoh :
minimum
Mahasisa
maksimum
(0,N)
Mempela
jari
(0,N)
Mata Kuliah
® Setiap mahasiswa dapat mempelajri banyak mata kuliah tetapi ada
mahasiswa yang belum / tidak mempelajari mata kuliah satupun.
® Setiap mata kuliah dapat dipelajari oleh banyak mahasiswa, tetapi
bisa juga ada mata kuliah yang tidak / belum diikuti oleh satupun
mahasiswa
Database System Concepts
1.81
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
ERD dalam Notasi Lain :
Notasi :
Notasi
o
o
Database System Concepts
Derajad Relasi Minimum - Maksimum
atau
atau
atau
atau
(0,N)
(1,N)
(1,1)
(0,1)
o
o
1.82
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
Mahasisa
o
Mempela
jari
o
Mata Kuliah
Kamus Data :
Mahasiswa = {NIM, Nama, Alamat}
Mempelajri = {NIM, KD_kuliah, Waktu, Tempat, Ruang }
Mata Kuliah = {Kd_kuliah, Nm)kuliah, SKS}
Database System Concepts
1.83
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Varian Entitas :
 Strong Entity (entitas kuat)
Himpunan entitas yg tidak memiliki ketergantungan dg entitas
yang lain.
 Weak Entity (entitas Lemah)
Himpunan entitas yg keberadaannya tergantung dengan
entitas yang lain. Himpunan entitas yg demikian tidak memp.
Atribut yg berfungsi sebagai key yg benar-benar menjamin
keunikan entitas.
Database System Concepts
1.84
©Silberschatz, Korth and Sudarshan
Entitas lemah (Weak Entity Sets)
 Entitas lemah disimbolkan dengan persegi panjang double.
 discriminator dari entitas lemah ditandai dengan garis bawah
terputus.
 payment-number – discriminator dari entitas lemah payment
 Primary key dari payment – (loan-number, payment-number)
Database System Concepts
1.85
©Silberschatz, Korth and Sudarshan
Entitas lemah (Weak Entity Sets)
 Catatan : Kunci utama dari entitas kuat tidak secara eksplisit
menjadi kunci utama entitas lemah, hal tersebut hanya berlaku
selama ada relasi.
 Jika loan-number secara eksplisit menggantikan, payment dapat
menjadi entitas kuat, tetapi kemudian antara payment dan loan
akan menjadi duplikasi dengan atribut loan-number yang
menggabungkan payment dan loan
Database System Concepts
1.86
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
memiliki
NIM
Orang Tua
NM_ortu
alm_ortu
Nama
NIM
Mahasiswa
Nm_ortu
alamat
Tgl_lhr
Hobbi
Menye
Hobbi
nangi
NIM
Database System Concepts
hobbi
1.87
Kunci utama
Kunci yg tidak
menyakinkan
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Varian Relasi :
Relasi Tunggal (Unary Relation)

Relasi yang terjadi dari antar himpunan entitas yg sama
Contoh :
1
Nama_dos
Keahlian
Nama_dos
Mendam
pingi
Dosen
N
Database System Concepts
1.88
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
 Relasi Ganda (Redundant Relation)
Contoh :
Nm_dos
Kd_kul
Meng
ajar
1
Dosen
tempat
N
waktu
N
Kuliah
N
Meng
uasai
Nm_dos
Database System Concepts
Kd_kul
1.89
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
 Relasi Multi Entitas (N-ary / Ternary Relation)
Merupakan relasi yang terdiri dari 3 himpunan entitas / lebih
Contoh :
Nama_dos
Kd_kul
Penga
jaran
Kuliah
nm_kul
Nama_dos
waktu
Kd_rg
Kd_kul
Dosen
Kd_rg
Ruang
sks
Nm_rg
kap
Database System Concepts
1.90
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Spesialisasi :
Merupakan proses dekomposisi (pengelompokkan) sebuah himpunan
entitas yg melahirkan himpunan entitas baru yang dilakukan secara
top-down.
 Proses perancangan Top down; Membuat sub-grup dari
entitas sehingga menjadi berbeda dengan entitas yang lain.
 Hasil dari sub grouping adalah entitas tingkat rendah dimana
salah satu atribut sebagai relasi dengan entitas diatasnya.
 Digambarkan dengan segitiga dan diberi label ISA (Mis.
Pelanggan ―is a‖ Manusia).
Database System Concepts
1.91
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh 1 :
Nm_dos
dosen
nik
alm_kantor
Dosen tetap
Database System Concepts
alm_dos
Nm_kantor
Is a
pangkat
Top - down
Dosen ttd tetap
1.92
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh 2 :
Database System Concepts
1.93
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Generalisasi :
Merupakan penyatuan beberapa himpunan entitas menjadi
sebuah himpunan entitas baru. Atribut dari masing-masing
himpunan entitas disatukan kedalam himpunan entitas baru.
 Proses perancangan bottom-up – menggabungkan
beberapa entitas yang mempunyai atribut yang sama
menjadi entitas yang lebih tinggi tingkatnya.
 Spesialisasi dan generalisasi adalah upaya
penyederhanaan; dan dapat digambarkan dengan ERD.
 Peristiwa spesialisasi dan generalisasi dapat diterapkan
bolak-balik.
Database System Concepts
1.94
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Contoh :
Mahasiswa
bottom - up
Is a
Mahasiswa D3
Database System Concepts
Mahasiswa S1
1.95
©Silberschatz, Korth and Sudarshan
Spesialisasi dan Generalisasi
 Pada sebuah entitas dapat dilakukan spesialisasi bertingkat
tergantung dari kompleksitas entitas tersebut.
 Mis. Karyawan_tetap vs. karyawan_tidak_tetap, dapat dibagi lagi
berdasar pekerjaannya officer vs. sekretaris vs. teller
 Setiap bagian dari karyawan dapat menjadi :
 Anggota dari karyawan_tetap atau karyawan _tidak_tetap,
 Dan juga anggota dari officer, sekretaris atau teller
 Realisasi ISA adalah relasi superclass - subclass
Database System Concepts
1.96
©Silberschatz, Korth and Sudarshan
Batasan perancangan dalam
Spesialisasi/Generalisasi
 Batasan sebuah entitas dapat menjadi anggota suatu entitas
lain yang lebih tinggi.
 Tergantung dari keadaan
 Mis. Semua pelanggan yang berusia diatas 65 tahun anggota
entitas manusia_sepuh; manusia_sepuh ISA manusia.
 Tergantung user
 Batasan apakah entitas dimiliki oleh lebih dari satu entitas
tingkat rendah dengan sebuah generalisasi.
 Disjoint
 Sebuah entitas dapat dimiliki oleh hanya satu entitas tingkat
rendah
 Dalam diagram E-R tulis disjoint setelah segitiga ISA
 Overlapping
 Sebuah entitas dapat dimiliki oleh lebih dari satu entitas
tingkat rendah
Database System Concepts
1.97
©Silberschatz, Korth and Sudarshan
Batasan perancangan dalam
Spesialisasi/Generalisasi
 Batasan kelengkapan – spesifikasi apakah sebuah entitas
merupakan entitas tingkat tinggi atau tidak harus dimiliki oleh
satu atau lebih entitas yang lebih rendah dalam relasi
generalisasi.
 total : sebuah entitas harus dimiliki oleh satu atau lebih entitas
tingkat rendah
 Partial (sebagian): sebuah entitas tidak harus dimiliki oleh salah
satu entitas tingkat rendah
Database System Concepts
1.98
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Agregasi :
Merupakan sebuah relasi yang secara kronologis mensyaratkan
telah adanya relasi lain.
Contoh :
Mahasiswa
NIM
Nama
NIM
Kd_rg
Kd_rg
Database System Concepts
N
mempelajari
N
Kuliah
Kd_kul
nm_kul
N
mengikuti
Kd_kul
nilai
N
Praktikum
1.99
Nama_pr
©Silberschatz, Korth and Sudarshan
Agregasi
 Sehubungan dengan relasi ternary works-on, seperti pada contoh
dibawah
 Seandainya kita ingin mengetahui manajer dari seorang karyawan
di sebuah cabang
Database System Concepts
1.100
©Silberschatz, Korth and Sudarshan
Agregasi
 Relasi works-on dan manages menyajikan informasi yang tumpang
tindih
 Setiap relasi manages berhubungan dengan sebuah relasi pada works-on
 Sementara itu, beberapa relasi works-on mungkin tidak berhubungan
dengan relasi manages
 Kita dapat membuang relasi works-on
 Hilangkan kerangkapan dengan agregasi
 Anggap sebuah relasi dan entitas yang berelasi adalah sebuah entitas
 Buat relasi dengan entitas lain
 Tanpa mengenalkan istilah kerangkapan, diagram tersebut dapat
diubah:
 Seorang karyawan bekerja di sebuah bagian di suatu cabang
 Seorang karyawan , cabang, bagian dapat digabungkan dengan seorang
manajer
Database System Concepts
1.101
©Silberschatz, Korth and Sudarshan
Diagram E-R dengan Agregasi
Database System Concepts
1.102
©Silberschatz, Korth and Sudarshan
Diagram E-R Diagram untuk Bank
Database System Concepts
1.103
©Silberschatz, Korth and Sudarshan
Exercise
Consider a university database for the scheduling of classrooms for final exams.
This database could be modeled as the single entity set exam, with attributes
course_number, section_number, room_number and time. Alternatively, one or
more additional entity sets could be defined, along with relationship sets to
replace some of the attributes of the exam entity set, as
☻ course with attributes name, department, and course_number
☻ section with attributes section_number and enrollment, and dependent as a
weak entity set on course
☻ room with attributes room_number, capacity and building
Show an E-R Diagram illustrating the use of all three additional entity sets listed.
Database System Concepts
1.104
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Transformasi ERD ke Basis Data Fisik (Tabel)
Aturan-aturan :
1. Setiap Himp. Entitas Ditransformasikan sebagai sebuah tabel
Contoh :
mahasiswa
Mahasiswa
Nim
nama_mhs alamat
nim
Nama_mhs
alamat
Database System Concepts
1.105
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
2. Relasi dengan Derajad satu-ke-satu yang menghubungkan 2
himp. Entitas akan transformasikan kedalam bentuk penyer
taan atribut-atribut relasi ke salah satu himp. Entitas
Kode_dos
Dosen
1
mengepalai
1
Progdi
nm_dos
dosen
Kode_dos nm_dos
Kode_dos
Kode_P
Kode_p
progdi
Kode_p nm_p Kode_dos
nm_p
Atribut yg ditambahkan
Database System Concepts
1.106
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
Ketentuan penyertaan atribut adalah :
 Atribut-atribut relasi akan disertakan ke himp. Entitas
yg mempunyai derajad relasi minimumnya yg lebih besar
atau
 Atribut-atribut relasi akan disertakan ke himp. Entitas
yg mempunyai jumlah record yg lebih sedikit
Database System Concepts
1.107
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
3. Relasi dengan Derajad satu-ke-banyak yg menghubungkan 2
himp. Entitas akan transformasikan kedalam bentuk penyer
taan atribut-atribut relasi ke himp. Entitas yg derajad rela
sinya banyak (many).
dosen
1
Kode_dos
Kode_dos
dosen
nm_dos
nm_dos
Kode_dos
Kode_kul
mengajar
kuliah
ruang
m
Kuliah
Kode_kul nm_kul sks kode_dos ruang
Kode_kul
nm_kul
Atribut yg ditambahkan
sks
Database System Concepts
1.108
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
4. Relasi dengan Derajad banyak-ke-banyak yg menghubungkan
dua himp. Entitas, maka atribut-atribut relasi akan di
ke transformasikan menjadi sebuah tabel
Mahasiswa
mahasiswa
nim
Nim
nama
m
nim
krs
nama
krs
Nim
Kode_kul
kode-Kul
nilai
nilai
m
kuliah
kuliah
Kode_kul
Kode_kul nm_kul sks
Nm_kul
sks
Database System Concepts
1.109
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
5. Implementasi Himp. Entitas Lemah
1
memiliki
mahasiswa
nim
1
nim
nama
mahasiswa
Nim
nama
orangtua
Alm_ortu
Hobbi
hobbi
Nm_ortu
senang
nim
Nm_ortu
1
n
hobbi
orangtua
Nm_ortu alm_ortu nim
hobbi
Hobi
nim
Key yang diambil dari entitas kuat
Database System Concepts
1.110
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
6. Implementasi Spesialisasi
dosen
Kd_dos
nm_dos
alm_dos
nip
Is a
pangkat
Nm_kantor
Alm_kantor
Tgl_msk
Dosen tidak tetap
Dosen tetap
dosen
Dosen tetap
Kd_dos nm_dos alm_dos
Nip pangkat tgl_msk kd_dos Nm_ktr alm_ktr kd_dos
Dosen tidak tetap
Key yg diambil dari entitas utama
Database System Concepts
1.111
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
7. Implementasi Generalisasi
nim
nama
mahasiswa
alamat
Is a
Mahasiswa s1
Mahasiswa d3
mahasiswa
Nim nama alamat
Database System Concepts
1.112
progdi
©Silberschatz, Korth and Sudarshan
E-R Model (Model Keterhubungan Entitas)
7. Implementasi unary relation
Kd_dos
Kd_dos
1
dosen
dosen
Kd_dos nm_dos kd_dos_pen
mendampingi
n
Nm_dos
kuliah
n
prasyarat
kuliah
n
Nama atribut diganti
sesuai dg fungsinya
Kd_kul
Kd_kul
Kd_kul nm_kul
prasyarat
Kd_kul kd_kul_syarat
Nm_kul
Database System Concepts
1.113
©Silberschatz, Korth and Sudarshan
Functional Dependency
And
Normalization
Database System Concepts
1.114
©Silberschatz, Korth and Sudarshan
motivasi
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
………..
Database System Concepts
Is a “good” design .. ??
1.115
©Silberschatz, Korth and Sudarshan
motivasi
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
satu tupel tidak
mengubah pada tupel
yang lain
Database System Concepts
Redundancy
Informasi diulang-ulang
dalam beberapa tupel
1.116
©Silberschatz, Korth and Sudarshan
motivasi
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
Database System Concepts
1.117
©Silberschatz, Korth and Sudarshan
motivasi
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
Database System Concepts
1.118
©Silberschatz, Korth and Sudarshan
motivasi
Masalah Anomali :
 Redundancy: Pengulangan informasi dalam
beberapa tupel yang sebenarnya tidak diperlukan.
 Update anomalies: Pengubahan informasi dalam
satu tupel yang tidak kompak (inkonsistensi).
 Deletion anomalies: Kehilangan informasi akibat
penghapusan informasi.
 Insertion anomalies: Penambahan tupel baru
yang tidak konsisten.
Database System Concepts
1.119
©Silberschatz, Korth and Sudarshan
motivasi
Goals :
Problems With :



Integrity
- redundansi
- ambiguitas
Performance
- kecepatan akses
- efisiensi storage
Maintainability
- update
- delete
- insert
Database System Concepts
Tabel Database yang baik (Good Design) :
 Mampu merepresentasikan informasi.
Jika ada dekomposisi maka dekomposisinya
adalah aman (Lossless, not Lossy)
 Terpeliharanya ketergantungan fungsional
Mempunyai skema relasi yang baik, kemudahan
update data tanpa anomali
(Dependency Preservation)
 Tidak terjadi pengulangan data
- Tidak melanggar Boyce Codd Normal Form (BCNF)
- Jika tidak dapat diupayakan memenuhi BCNF,
maka minimal memenuhi bentuk 3NF
(No Redundancy, anything say once)
1.120
©Silberschatz, Korth and Sudarshan
we discuss before …
Teori Dasar :
 Dekomposisi Relasi
 Ketergantungan Fungsional
 Key
Database System Concepts
1.121
©Silberschatz, Korth and Sudarshan
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
Database System Concepts
1.122
©Silberschatz, Korth and Sudarshan
dekomposisi relasi
Film
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
idfilm
title
year
length
filmType
idstudio
studioName
F001
Star Wars
1977
124
color
STD01
F002
Mighty Ducks
1991
104
color
F003
Wayne’s World
1992
95
color
Database System Concepts
BintangFilm
idstar
starName
Fox
STR01
Carrie Fisher
STD02
Disney
STR02
Mark Hamill
STD03
Paramount
STR03
Harrison Ford
STR04
Emilio Estevez
STR05
Dana Carvey
STR06
Mike Meyers
Decomposition result
1.123
original
©Silberschatz, Korth and Sudarshan
dekomposisi relasi

Dekomposisi relasi R menjadi gugus relasi {R1, R2, …, Rn} yang
tidak menyebabkan hilangnya informasi disebut Lossless-Join
Decomposition.
Jadi, jika r R dan ri = Ri(R) dimana 1  i  n maka akan
selalu memenuhi kondisi berikut :
n
atau
r   ri
n
i 1
r   ri atau r   ri
i 1

n
i 1
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
Database System Concepts
1.124
©Silberschatz, Korth and Sudarshan
dekomposisi relasi
Film = (idfilm, title, year, length, filmType, idstudio, studioName, idstar, starName)
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
Oopss !!!
Database System Concepts
there is Anomaly !!
Decompose it ……
1.125
©Silberschatz, Korth and Sudarshan
dekomposisi relasi
Film
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
idfilm
title
year
length
filmType
idstudio
studioName
F001
Star Wars
1977
124
color
STD01
F002
Mighty Ducks
1991
104
color
F003
Wayne’s World
1992
95
color
Andaikan di dekomposisi
Menjadi 3 tabel tsb ….
Database System Concepts
BintangFilm
idstar
starName
Fox
STR01
Carrie Fisher
STD02
Disney
STR02
Mark Hamill
STD03
Paramount
STR03
Harrison Ford
STR04
Emilio Estevez
STR05
Dana Carvey
STR06
Mike Meyers
Lossless
or
Lossy ?
1.126
©Silberschatz, Korth and Sudarshan
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 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
Database System Concepts
 StudioFilm
1.127
©Silberschatz, Korth and Sudarshan
Kehilangan
LOSSY
Informasi !!
DECOMPOSITION
dekomposisi relasi
DaftarFilm
idfilm
title
F001
 StudioFilm
year
length
filmType
idstudio
studioName
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)
Database System Concepts
1.128

©Silberschatz, Korth and Sudarshan
functional dependencies (FD)
 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 :
1. Untuk memeriksa keabsahan apakah semua relasi
sesuai dengan ketergantungan fungsional yang diberikan
2. Untuk menetapkan batasan gugus relasi yang berlaku
3. Untuk menentukan kunci relasi
4. Untuk melakukan normalisasi atas suatu tabel relasional
Database System Concepts
1.129
©Silberschatz, Korth and Sudarshan
functional dependencies (FD)
definisi
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
Database System Concepts
1.130
©Silberschatz, Korth and Sudarshan
functional dependencies (FD)
R = (A, B, C)
contoh
R = (A,B,C,D)
A
B
C
A
B
C
D
1
4
C1
A1
B1
C1
D1
1
5
A1
B2
C1
D2
2
7
C1
A2
B2
C2
D2
A2
B3
C2
D3
A3
B3
C2
D4
C2
AB?
t1(A)=t2(A), tetapi t1(B)  t2(B)
Maka A  B
AC?




t1(A)=t2(A) dan t1(C) = t2(C)
Maka A  C
Database System Concepts
1.131
AC?
CA?
(A,B)  C ?
(A,B)  D ?
Yes
No
Yes
Yes
©Silberschatz, Korth and Sudarshan
functional dependencies (FD)
Database System Concepts
1.132
©Silberschatz, Korth and Sudarshan
functional dependencies (FD)
contoh
Film = (idfilm, title, year, length, filmType, idstudio, studioName, idstar, starName)
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
F004
My Hearts
1992
101
color
STD04
MGM
STR01
Carrie Fisher
F004
My Hearts
1992
101
color
STD04
MGM
STR01
Carrie Fisher
Apakah : idfilm  title ?
idstar  studioName ?
(idfilm,idstar)  starName ?
Database System Concepts
1.133
©Silberschatz, Korth and Sudarshan
functional dependencies (FD)

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

Suatu FD : x  y disebut trivial jika y  x
Contoh :
X,Y,Z  X,Z
XX
X,Y,Z  Z
X,Y  X
X,Y,Z  X,Y,Z
X,Y  Y
Database System Concepts
1.134
©Silberschatz, Korth and Sudarshan
functional dependencies (FD)
Armstrong’s Rule
Diketahui
A1. Reflexive
Dari A2
Jika y  x maka x  y
Diketahui
A2. Augmentation
Dari A3
Jika x  y maka (x,z)  (y,z)
A3. Transitive
Jika x  y dan y  z maka x  z
A4. Decomposition
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
Database System Concepts
1.135
xy
(x,z)  (y,z)
(z,y)  w
(x,z)  w
©Silberschatz, Korth and Sudarshan
Manfaat FD 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
Database System Concepts
1.136
©Silberschatz, Korth and Sudarshan
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-2 Uji Lossless-joint Decomposition :
1. Uji Dekomposisi
R1  R2  …  Rn = R
2. Uji Lossless-join
Menggunakan sifat ketergantungan fungsional
Database System Concepts
1.137
©Silberschatz, Korth and Sudarshan
uji lossless-join decomposition
contoh
Diketahui skema relasi R=(A,B,C,D,E,F,G,H) didekomposisi menjadi :
R1=(A,B,C,D,G) dan 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 ?
1. Uji Dekomposisi
R1  R2 = (A,B,C,D,G)  (B,D,E,F,H)
= (A,B,C,D,E,F,G,H)
=R
.:. Terbukti bahwa {R1,R2} adalah dekomposisi dari R.
Database System Concepts
1.138
©Silberschatz, Korth and Sudarshan
uji lossless-joint decomposition
contoh
terbukti
{R1,R2}
Lossless
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)
Dari
Jadi
Dari
(1)
(5)
(6)
(7)
(1)
(8)
(9)
(3)
(10)
(11)
Database System Concepts
B  A,G maka :
B,D  A,G,D (augmentasi)
B,D  B,D (refleksif)
B,D  A,B,D,G
B  A,G maka
B  A dan
BG
A  E,C maka
A  E dan
A  C maka :
Dari
dan
Maka
Dan
(8)
(11)
(12)
(13)
BA
AC
B  C (transitif)
B,D  C,D (augmentasi)
Dari (7) dan (13) didapat :
B,D  A,B,C,D,G
Dari contoh di atas, tunjukkan pula
bahwa (B,D)  (B,D,E,F,H)
1.139
©Silberschatz, Korth and Sudarshan
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.
Database System Concepts
1.140
©Silberschatz, Korth and Sudarshan
functional dependencies (FD)
Closure FD (F+)
 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
Database System Concepts
1.141
©Silberschatz, Korth and Sudarshan
uji dependency preservation
Contoh :
Diketahui skema relasi R=(A,B,C) dengan FD : A  B ; B  C
Didekomposisi menjadi R1=(A,B) dan R2=(B,C)
a. Apakah dekomposisi tsb Lossless-Joint ?
b. Apakah dekomposisi tsb memenuhi Dependency Preservation ?
a. R1  R2 = (A,B)  (B,C) = (A,B,C) = R
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.
Database System Concepts
1.142
©Silberschatz, Korth and Sudarshan
uji dependency preservation
b. 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 didekoposisi menjadi R1=(A,B) dan R2=(A,C).
Bagaimana bila R1=(A,B) dan R2=(B,C) tetapi FD : BC, ACB
Database System Concepts
1.143
©Silberschatz, Korth and Sudarshan
soal latihan
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)
Ujilah pula dependency preservation nya untuk masing-masing soal tsb.
Database System Concepts
1.144
©Silberschatz, Korth and Sudarshan
KEYS
Database System Concepts
1.145
©Silberschatz, Korth and Sudarshan
atribut kunci (key)
 Kunci (key) adalah kolom/atribut atau kombinasi kolom/atribut yang
dapat digunakan untuk mengidentifikasi baris dalam tabel (entitas)
secara unik.
 Penentuan Key suatu tabel didasarkan pada sifat “determinasi”.
 Determinan : gugus atribut dimana satu atau lebih atribut lain
tergantung secara fungsional.
“A determinan B” artinya apabila nilai atribut A akan menentukan
nilai-nilai atribut B.
“A determinan B” dapat dituliskan sebagai suatu
ketergantungan fungsional A  B. Jika A menentukan B,C dan D
maka dituliskan A  B,C,D.
Contoh : Relasi Mahasiswa=(NIM,Nama,Agama,TglLhr)
Bila nilai NIM seorang mahasiswa diketahui maka dapat digunakan
untuk melihat nilai-nilai atribut Nama, Agama dan Tanggal Lahirnya.
Dituliskan NIM  Nama,Agama,TglLhr
Database System Concepts
1.146
©Silberschatz, Korth and Sudarshan
superkey
Superkey (key) :
- gugus atribut entitas yang dapat digunakan untuk mengidentifikasikan
entitas/obyek secara unik.
- satu atau lebih atribut yang membedakan setiap baris secara unik.
Misal R skema relasi, dan K adalah satu atau lebih atribut dari R
dimana K  R maka K disebut Superkey jika dan hanya jika K  R.
Catatan : Suatu skema relasi dapat memiliki lebih dari 1 superkey.
Bila K adalah superkey maka semua atribut gabungan yang
mengandung K juga merupakan superkey
Contoh : Relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey :
 NoKTP
superkey ; NoKTP  Sopir
 NoSIM
superkey ; NoSIM  Sopir
 (NoKTP,NoSIM)
superkey ; (NoKTP,NoSIM)  Sopir
 (NoKTP,Nama)
superkey ; (NoKTP,Nama)  Sopir
 (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama)  Sopir
 (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkey
 Nama bukan superkey. Demikian juga (Nama,Alamat) juga bukan superkey
Database System Concepts
1.147
©Silberschatz, Korth and Sudarshan
candidate key
 Candidate Key :
- Superkey dengan jumlah atribut minimal
- Superkey tanpa redundansi (tidak memuat subset superkey yang lain)
K adalah Candidate Key dari skema relasi R jika dan hanya jika :
K  R dan tidak terdapat   K dengan   R
Contoh :
Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey :
 NoKTP
superkey ; NoKTP  Sopir
 NoSIM
superkey ; NoSIM  Sopir
 (NoKTP,NoSIM)
superkey ; (NoKTP,NoSIM)  Sopir
 (NoKTP,Nama)
superkey ; (NoKTP,Nama)  Sopir
 (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama)  Sopir
 (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkey
Sebagai Candidate Key nya adalah NoKTP atau NoSIM
Database System Concepts
1.148
©Silberschatz, Korth and Sudarshan
primary key
 Primary Key adalah candidate key yang dipilih untuk digunakan
sebagai kunci identitas tabel secara unik (kunci indeks tabel)
dan tidak boleh bernilai NULL.
Dasar pemilihan Candidate Key sebagai Primary Key :
 Key tsb menjamin keunikan baris data
 Key tsb bersifat natural atau universal (lazim dipakai sebagai acuan)
 Key tsb mudah dan ringkas untuk dipakai sebagai acuan
Contoh :
Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat). Alternatif superkey :
 NoKTP
superkey ; NoKTP  Sopir
 NoSIM
superkey ; NoSIM  Sopir
 (NoKTP,NoSIM)
superkey ; (NoKTP,NoSIM)  Sopir
 (NoKTP,Nama)
superkey ; (NoKTP,Nama)  Sopir
 (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama)  Sopir
 (NoKTP,NoSIM,Nama,Alamat) dengan sendirinya juga superkey
Sebagai Candidate Key nya adalah NoKTP atau NoSIM
Maka NoSIM lebih baik dipilih sebagai Primary Key untuk skema relasi Sopir
Database System Concepts
1.149
©Silberschatz, Korth and Sudarshan
secondary key
 Secondary Key adalah atribut (atau kombinasinya), yang digunakan
sebagai perantara untuk mendapatkan kembali data asal.
 Biasanya dipakai pada pencarian data (data retrieval).
Contoh :
Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat) dengan NoSIM sebagai
Primary Key. Walaupun atribut ini lazim dipakai sebagai identitas seorang Sopir,
tapi apakah seorang sopir dijamin hapal nomor SIM nya ketika misalnya ada
transaksi yang berkaitan dengan penggunaan identitas No SIM ?.
Untuk memudahkan proses pencarian data sopir tersebut maka dapat digunakan
atribut lain yang lebih mudah diingat misalnya “nama” dan/atau “alamat”.
Penggunaan secondary key ini tentu saja tidak menjamin ditemukannya data
uang unik, karena memang tidak ditujukan untuk kepentingan keunikan data.
Tetapi sebagai alternatif atau fasilitas untuk membantu mengidentifikasi data.
Analogikan ketika kita lupa akan ID atau password account email kita.
Fasilitas apa yang bisa kita manfaatkan ?
Database System Concepts
1.150
©Silberschatz, Korth and Sudarshan
foreign key
 Foreign Key adalah satu atau lebih atribut dalam satu tabel yang merupakan
primary key tabel lain (kunci penghubung).
Produk
IDProd
NamaProduk
Harga
QtyStock
F001
TV 14”
1500000
12
F002
TV 21”
2100.000
4
F003
TV 21” Flatron
2700000
24
link
Tabel Name : Produk
Primary key : IDProd
Foreign Key : -
Order
NoOrder
Date
IDProd
QtyOrder
IDSls
120301
12/11/04
P001
2
120302
13/11/04
P001
120303
22/11/04
P003
link
IDSls
NmSls
AlamatAsal
KotaAsal
S001
S001
Anita
Jl. Nakula 9
Kendal
2
S003
S002
Vicky
Jl. Arjuna I/6
Semarang
6
S001
S003
Roni
Jl. Bima II/3
Semarang
Tabel Name : Order
Primary key : NoOrder
Foreign Key : IDProd,IDSls
Database System Concepts
Sales
Tabel Name : Sales
Primary key : IDSls
Foreign Key : -
1.151
©Silberschatz, Korth and Sudarshan
hubungan FD dengan key
Amstrong’s rule dapat digunakan untuk menurunkan superkey tabel,
berdasarkan 1 atau lebih superkey yang diketahui
Rule 1 :
Apabila diketahui FD yang memuat semua atribut pada tabel, maka
atribut-atribut yang terdapat pada ruas kiri dari FD adalah superkey
Contoh :
Diketahui tabel R = (W,X,Y,Z) dan FD : XY  WZ maka XY superkey
Sebab :
XY  WZ maka
XY  XY (refleksif)
XY  XYWZ (union)
XY  R
Karena XY  R maka XY superkey.
Jadi ruas kiri dari FD merupakan superkey.
Database System Concepts
1.152
©Silberschatz, Korth and Sudarshan
hubungan FD dengan key
Rule 2 :
Atribut yang secara fungsional menentukan superkey dari tabel maka
atribut tersebut juga merupakan superkey
Contoh :
Diketahui W superkey dari tabel R = (W,X,Y,Z) dan FD : Z  W
maka Z superkey
Sebab :
Z  W dan
W WXYZ (karena W superkey), maka
Z  WXYZ (transitif)
ZR
Karena Z  R maka Z superkey
Database System Concepts
1.153
©Silberschatz, Korth and Sudarshan
hubungan FD dengan key
R = (A,B,C,D)
A
B
C
D
A1
B1
C1
D1
A1
B2
C1
D2
A2
B2
C2
D2
A2
B3
C2
D3
A3
B3
C2
D4
 Apakah (A,B) superkey dari R ?
Akan dibuktikan apakah (A,B)  R.
Jika Ya maka (A,B) superkey dari R.
Karena semua tupel ti[A,B] untuk 1  i  5
adalah unik, t1[A,B]=(A1,B1)
t2[A,B]=(A1,B2)
t3[A,B]=(A2,B2)
t4[A,B]=(A2,B3)
t5[A,B]=(A3,B3)
Maka (A,B)  (A,B,C,D) atau (A,B)  R
Jadi (A,B) superkey dari R
 Apakah A superkey dari R ?
Bukan, sebab A  R. Mengapa ?
Database System Concepts
1.154
©Silberschatz, Korth and Sudarshan
hubungan FD dengan key
Diketahui S = (A,B,C,D,E,F) dan
FD : A  BC ; B  D ; C  EF ; BF  A
Carilah superkey dan candidate key dari S menggunakan FD
 A  BC
AB
AC
 karena A  B
dan
B  D maka
AD
 karena A  C
dan
C  EF maka
A  EF
 AA
Sehingga A  ABCDEF
atau A  S (superkey)
Database System Concepts
 B  D maka
BC  DC
 C  EF maka
BC  BEF
 Jadi BC  BCDEF
 BC  BCDEF dan
BC  A maka
BC  ABCDEF
BC  S (superkey)
 BF  A
A  ABCDEF maka
BF  ABCDEF
BF  S (superkey)
1.155
 Superkey dari S
A, BC, BF serta gabungan
atribut yang mengandung
A, BC dan BF
 Candidate key dari S
A
Tips !!
Fokuskan
perhatian Anda
pada atribut-2 di
ruas kiri dari FD
untuk mencari
superkey
©Silberschatz, Korth and Sudarshan
hubungan FD dengan key
Latihan :
1. Diberikan R(A,B,C,D) dengan FD : AB,AC dan AD
Apakah A candidate key dari R ?
2. Diberikan R(A,B,C,D) dengan FD : AB
a. Apakah ACD superkey dari R
b. Apakah A candidate key dari R
3. Diberikan R(A,B,C,D,E,F) dengan FD : C(AB);B(DE);EF;ABC
a. Carilah superkey dari R
b. Carilah candidate key dari R
4. Diberikan R(A,B,C,D,E) dengan FD : A(BC);(CD)E;BD;EA
a. Carilah superkey dari R
b. Carilah candidate key dari R
5. Diberikan R(A,B,C) dengan FD : AB;BC;CA
Apakah A merupakan satu-satunya candidate key dari R
Database System Concepts
1.156
©Silberschatz, Korth and Sudarshan
Perhatikan Tabel berikut :
a
b
c
d
e
f
No_fa
k
Tgl_faktur
Nm_kons
Almt_kons
Kota_kons
Kode_brg
101
10-01-08
Ali
Jl. A. Yani No. 10
Semarang
101
10-01-08
Ali
Jl. A. Yani No. 10
101
10-01-08
Ali
102
11-01-08
102
11-01-08
Database System Concepts
g
h
I
j
Nama_brg
Jml
Hrg_sat
1101
Sandal
10
15000
150000
Semarang
1110
Sepatu
7
100000
700000
Jl. A. Yani No. 10
Semarang
1112
Kaos
15
30000
450000
Rudi
Jl. Seroja Raya 1
Solo
1101
Sandal
20
15000
300000
Rudi
Jl. Seroja Raya 1
Solo
1113
Jaket
4
200000
800000
1.157
bayar
©Silberschatz, Korth and Sudarshan
End Session Today
Tomorrow We’ll Discuss About
Normalization ……
Database System Concepts
1.158
©Silberschatz, Korth and Sudarshan
Normalization
Database System Concepts
1.159
©Silberschatz, Korth and Sudarshan
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.
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)
Database System Concepts
1.160
©Silberschatz, Korth and Sudarshan
First Normal Form (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.
Database System Concepts
1.161
©Silberschatz, Korth and Sudarshan
First Normal Form (1NF)
Tabel : Sales
IDSales
ADN006
ADN007
ADN008
ADN009
ADN010
NamaSales
Yeni, SE
Memey
Tina
Ir. Yanto
Made
Telepon
3517261, 3520165
4744621,08122861427
08566241521
7265122, 7123910
6723192
1NF
Database System Concepts
IDSales
ADN006
ADN006
ADN007
ADN007
ADN008
ADN009
ADN009
ADN010
1.162
non-atomic
Unnormalized
Not 1NF
NamaSales
Yeni, SE
Yeni, SE
Memey
Memey
Tina
Ir. Yanto
Ir. Yanto
Made
Telepon
3517261
3520165
4744621
08122861427
08566241521
7265122
7123910
6723192
©Silberschatz, Korth and Sudarshan
Unnormalized
Not 1NF
First Normal Form (1NF)
Tabel : Buku
ISBN
Thn_Terbit ID_Pengarang
12-1202-19222
1992 K0121
11-1090-29101
2001 K1021
11-1090-29102
2001 K2091
12-1201-90871
2002 K2092
13-2089-12910
2001 K2019
repeated
Nama_Pengarang
Aris M
Kosim P
K Odelia
Renaldi
Samsuri J
ISBN
Thn_Terbit ID_Pengarang
12-1202-19222
1992
K0121
12-1202-19222
1992
K1021
11-1090-29101
2001
K1021
11-1090-29102
2001
K2091
11-1090-29102
2001
K0121
12-1201-90871
2002
K2092
12-1201-90871
2002
K2091
13-2089-12910
2001
K2019
Database System Concepts
1.163
ID_Pengarang Nama_Pengarang
K1021
Kosim P
K0121
K2091
Aris M
K Odelia
Nama_Pengarang
Aris M
Kosim P
Kosim P
K Odelia
Aris M
Renaldi
K Odelia
Samsuri J
1NF
©Silberschatz, Korth and Sudarshan
Second Normal Form (2NF)
 Suatu relasi disebut memenuhi bentuk normal kedua (2NF)
jika dan hanya jika :
1. memenuhi 1NF
2. 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
Database System Concepts
1.164
©Silberschatz, Korth and Sudarshan
Second Normal Form (2NF)
Contoh :
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)
dengan FD : A,B  C,D,E maka tabel R memenuhi 2NF sebab :
A,B  C,D,E berarti :
A,B  C,
A,B  D dan
A,B  E
Jadi semua atribut bukan kunci utama tergantung penuh pada (A,B).
Note :
Jika suatu relasi memenuhi 1NF dan hanya memiliki tepat satu atribut
kunci utama maka relasi tsb memenuhi 2NF
Database System Concepts
1.165
©Silberschatz, Korth and Sudarshan
Second Normal Form (2NF)
Bagaimana bila R = (A,B,C,D,E) tetapi dengan FD :
(A,B)  (C,D) dan B  E. Apakah memenuhhi 2NF ?
Jelas bahwa R bukan 2NF karena ada atribut E yang bergantung
hanya pada atribut B saja dan bukan terhadap (A,B).
Dari FD : (A,B)  (C,D) juga mencerminkan bahwa hanya C dan D
saja yang bergantung secara fungsional terhadap (A,B), tidak untuk E.
Jadi bukan 2NF.
Untuk mengubah menjadi 2NF, lakukan dekomposisi menjadi :
R1 = (A,B,C,D) dan R2 = (B,E). Tampak R1 dan R2 memenuhi 2NF.
Database System Concepts
1.166
©Silberschatz, Korth and Sudarshan
Second Normal Form (2NF)
Diketahui Workshop = (NIM,Modul,Biaya,Grade)
Peserta Workshop
NIM
Modul
Biaya
Grade
(Biaya ditentukan oleh Modul yang
diambil mahasiswa)
Tabel biaya peserta workshop
NIM
Modul
Biaya
Grade
P11.2004.0129
VB.Net
250000
A
P11.2004.0130
Prolog
100000
A
P11.2004.0129
Prolog
100000
B
P11.2004.0201
Delphi 6
150000
A
P11.2004.0250
VB.Net
250000
B
Database System Concepts
Key : NIM+Modul
FD : Modul  Biaya
1.167
 1NF
 Not 2NF
Sebab dalam tabel ini,
Biaya tidak bergantung penuh
pada atribut kunci (NIM,Modul)
©Silberschatz, Korth and Sudarshan
Second Normal Form (2NF)
NIM
Modul
Biaya
Grade
(NIM,Modul) = key
(NIM,Modul)  Biaya (partial)
(NIM,Modul)  Grade (full)
NIM
Modul
Biaya
Eliminate
Grade
Make Decomposition :
Works1 = (NIM,Modul,Grade)
Works2 = (Modul,Biaya)
Fully Dependency
Database System Concepts
1.168
©Silberschatz, Korth and Sudarshan
Second Normal Form (2NF)
Workshop
NIM
Modul
Grade
P11.2004.0129
VB.Net
A
NIM
Modul
Biaya
Grade
P11.2004.0129
VB.Net
250000
A
P11.2004.0130
Prolog
A
P11.2004.0130
Prolog
100000
A
P11.2004.0129
Prolog
B
P11.2004.0129
Prolog
100000
B
P11.2004.0201
Delphi 6
150000
A
P11.2004.0201
Delphi 6
A
P11.2004.0250
VB.Net
250000
B
P11.2004.0250
VB.Net
B
Works1
More Better
Then
1NF
Modul
Biaya
VB.Net
250000
Prolog
100000
Delphi 6
150000
Works2
Database System Concepts
1.169
©Silberschatz, Korth and Sudarshan
Third Normal Form (3NF)
 Suatu relasi disebut memenuhi bentuk normal ketiga (3NF)
jika dan hanya jika :
1. memenuhi 2NF
2. 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).
Another Definition :
 Suatu relasi disebut memenuhi 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)
Database System Concepts
1.170
©Silberschatz, Korth and Sudarshan
Third Normal Form (3NF)
 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.
 Tujuan membentuk 3NF :
:: semantik tabel 3NF menjadi lebih eksplisit
(fully FD hanya pada primary key).
:: menghindari update anomali yang masih mungkin terjadi pada 2NF.
Note :
Jika suatu relasi memenuhi 2NF dan hanya memiliki tepat satu atribut
yang bukan kunci utama maka relasi tsb memenuhi 3NF
Database System Concepts
1.171
©Silberschatz, Korth and Sudarshan
Third Normal Form (3NF)
Contoh :
Diketahui tabel R=(A,B,C,D,E) ; A,B kunci utama (primary key)
dengan FD : A,B  C,D,E dan C  D,E maka R bukan 3NF sebab :
Atribut D dan E (bukan kunci utama) bergantung secara fungsional
pada C (yang juga bukan kunci utama).
Melalui FD :
 Diketahui A,B  C,D,E.
Karena sifat refleksif maka A,BA,B. Sehingga A,BA,B,C,D,E
(A,B) : Superkey.
 Diketahui CD,E.
Karena sifat refleksif maka CC. Sehingga CC,D,E.
Karena C A,B,C,D,E maka C bukan superkey.
 Tidak memenuhi definisi 3NF. Jadi R bukan 3NF.
Agar R memenuhi 3NF maka didekomposisi menjadi :
R1=(A,B,C) dan R2=(C,D,E) sehingga R1 dan R2 memenuhi 3NF.
Database System Concepts
1.172
©Silberschatz, Korth and Sudarshan
Third Normal Form (3NF)
FD : A,B  C,D,E berarti A,B  C ; C  D,E ; A,B  D,E
A,B  D reduce
A,B  E reduce
Dekomposisinya : R1=(A,B,C) ; FD : (A,B)C
R2=(C,D,E) ; FD : CD,E
R
A
A
B
B
C
C
D
E
C
D
R2
R1
Database System Concepts
E
1.173
©Silberschatz, Korth and Sudarshan
Third Normal Form (3NF)
Misal diketahui struktur informasi dari suatu dokumen supplier :
S
S1
S2
S3
S4
Status City
PQ
P Qty
20 LONDON P1 300
P2 200
P3 400
P4 200
P5 100
P6 100
10 PARIS
P1 300
P2 400
10 PARIS
P2 200
20 LONDON P2 200
P4 399
P5 400
Database System Concepts
Akan dibentuk suatu tabel dengan skema
TPS=(S,Status,City,P,Qty)
dengan (S,P) = primary key
dan berlaku FD :
SStatus
SCity
CityStatus
Lakukan normalisasi dari 1NF hingga 3NF.
1.174
©Silberschatz, Korth and Sudarshan
Third Normal Form (3NF)
TPS
S Status City
P Qty
S1
20 LONDON P1 300
S1
20 LONDON P2 200
S1
20 LONDON P3 400
S1
20 LONDON P4 200
S1
20 LONDON P5 100
S1
20 LONDON P6 100
S2
10 PARIS
P1 300
S2
10 PARIS
P2 400
S3
10 PARIS
P2 200
S4
20 LONDON P2 200
S4
20 LONDON P4 399
S4
20 LONDON P5 400
Database System Concepts
 1NF
 Not 2NF
Problem :
 Redundansi  inconsistency
low speed process
 Anomaly :
S(Status,City) tapi kita tidak bisa insert
data (S5,30,JAKARTA) tanpa diikuti data
P (khususnya) dan Q. Menghapus 1 baris
data akan jg merusak keutuhan informasi.
 Solusi :
Dekomposisi menjadi :
TPS1 dan TPS2
1.175
©Silberschatz, Korth and Sudarshan
Third Normal Form (3NF)
TPS1
S Status City
S1
20 LONDON
S2
10 PARIS
S3
10 PARIS
S4
20 LONDON
 1NF
 2NF
 Not 3NF (trans.)
SCity
CityStatus
 Sekarang kita dapat menambah
data (S5,30,JAKARTA) dgn aman
 Tapi masih ada anomaly :
Karena CityStatus
maka kita tidak bisa entry
data City baru sebelum Status
punya nilai. Penghapusan 1 baris
sebagian data City juga bisa
merusak keutuhan informasi S.
 Selain itu, masih ada redundansi
pada Status dan City
Database System Concepts
1.176
TPS2
S
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
P
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
Qty
300
200
400
200
100
100
300
400
200
200
399
400
 1NF
 2NF
 3NF
©Silberschatz, Korth and Sudarshan
Third Normal Form (3NF)
S
S1
S2
S3
S4
TPS1-1
City
LONDON
PARIS
PARIS
LONDON
 1NF
 2NF
 3NF
Database System Concepts
TPS1-2
City
Status
LONDON
20
PARIS
10
 1NF
 2NF
 3NF
1.177
S
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
TPS2
P Qty  1NF
P1 300  2NF
 3NF
P2 200
P3 400
P4 200
P5 100
P6 100
P1 300
P2 400
P2 200
P2 200
P4 399
P5 400
©Silberschatz, Korth and Sudarshan
Try it … !!
Third Normal Form (3NF)
1.Diberikan skema relasi R = (A,B,C,D,E,F,G,H,I,J,K) dengan ketergantungan
fungsional :
A  B,C,D ; C  D ; E  F ; A,E  G,H,I,J,K ; I  J,K
Apakah R memenuhi 3NF ? Jika tidak, rancanglah skema relasi R sedemikian
sehingga memenuhi bentuk 3NF. Bila Saudara melakukan dekomposisi tabel,
lengkapi dengan uji dekomposisi dan uji lossless.
2.Diketahui R=(A,B,C,D,E,F,G) dimana (A,B) : primary key
Ketergantungan fungsional yang berlaku (FD) :
A  C,D,F ; B  C,D,E,G ; E  G
Jika diketahui bahwa R memenuhi 1NF, apakah R memenuhi 3NF ? Jika tidak,
rancanglah skema relasi R sedemikian sehingga memenuhi bentuk 3NF.
Bila Saudara melakukan dekomposisi tabel, lengkapi dengan uji dekomposisi
dan uji lossless.
Database System Concepts
1.178
©Silberschatz, Korth and Sudarshan
Boyce Codd Normal Form (BCNF)
 Suatu relasi disebut memenuhi BCNF
jika dan hanya jika setiap determinan yang ada pada relasi tersebut
adalah candidate key.
Definisi yang lain :
Suatu relasi disebut memenuhi BCNF jika untuk setiap FD nontrivial :
X  A atribut X adalah superkey.
 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.
Dari definisi 3NF dan BCNF, maka apabila suatu relasi memenuhi
BCNF pasti memenuhi 3NF, tetapi belum tentu sebaliknya.
Database System Concepts
1.179
©Silberschatz, Korth and Sudarshan
Boyce Codd Normal Form (BCNF)
Contoh :
Diketahui tabel R=(A,B,C)
dengan FD : A  B dan B  C maka R bukan BCNF, sebab :
 A superkey ?
AB (diketahui)
AB dan BC maka AC (transitif)
AA (refleksif)
Sehingga A(A,B,C) atau AR. Jadi A superkey.
 B superkey ?
BC (diketahui)
BB (refleksif)
Tapi BA. Sehingga BA,B,C atau B bukan superkey.
Agar R memenuhi BCNF maka didekomposisi menjadi :
R1=(A,B) ; FD : A  B dan
R2=(B,C) ; FD : B  C.
sehingga R1 dan R2 masing-masing memenuhi BCNF. Sebab A dan B
dua-duanya sekarang menjadi superkey.
Database System Concepts
1.180
©Silberschatz, Korth and Sudarshan
Boyce Codd Normal Form (BCNF)
Contoh :
Diketahui tabel R=(A,B,C)
dengan FD : AB  C dan C  B. Apakah :
 3NF ?
 BCNF ?
 R memenuhi 3NF karena :
ABC ; maka AB  ABC, atau AB  R. Jadi AB superkey dari R
CB ; maka AC  AB, atau AC  ABC dan AC  R.
Jadi AC juga superkey (sekaligus juga candidate key) dari R
Karena AB superkey dan C subset candidate key maka
R memenuhi 3NF
 R bukan BCNF karena :
AB superkey tetapi C bukan superkey.
Database System Concepts
1.181
©Silberschatz, Korth and Sudarshan
Boyce Codd Normal Form (BCNF)
Books
Students
sid
name
age
bid
title
year
53666
Jones
18
B001
MySQL
2002
53668
Smith
18
B002
Algorithm
2003
53669
Melissa
17
B003
Visual Foxpro 6.0
2003
53670
Hilden
19
B004
Visual basic 6.0
2005
Students=(sid, name, age)
FD : sid  name, age
• BCNF, sebab sid superkey
Pinjam
idpinjam
sid
bid
date
P-01
53666
B002
10/11/2005
P-02
53668
B001
10/11/2005
P-03
53668
B004
11/12/2005
P-04
53670
B002
14/11/2005
Database System Concepts
Books=(bid, title, year)
FD : bid  title, year
• BCNF, sebab bid superkey
Pinjam=(idpinjam, sid, bid, date)
FD : idpinjam  bid, date
• Bukan BCNF, sebab idpinjam bukan superkey
idpinjam  sid
1.182
©Silberschatz, Korth and Sudarshan
Boyce Codd Normal Form (BCNF)
Pinjam
idpinjam
sid
bid
date
P-01
53666
B002
10/11/2005
P-02
53668
B001
10/11/2005
P-03
53668
B004
11/12/2005
P-04
53670
B002
14/11/2005
Didekomposisi menjadi :
Pinjam1
Pinjam2
idpinjam
sid
idpinjam
bid
date
P-01
53666
P-01
B002
10/11/2005
P-02
53668
P-02
B001
10/11/2005
P-03
53668
P-03
B004
11/12/2005
P-04
53670
P-04
B002
14/11/2005
FD trivial
 BCNF
Database System Concepts
idpinjam  bid, date
idpinjam superkey
 BCNF
1.183
©Silberschatz, Korth and Sudarshan
Comparison of BCNF And 3NF
 It is always possible to decompose a
relation into relations in 3NF and
 the decomposition is lossless
 the dependencies are preserved
 It is always possible to decompose a
relation into relations in BCNF and
 the decomposition is lossless
 it may not be possible to preserve
dependencies.
Database System Concepts
1.184
©Silberschatz, Korth and Sudarshan
Comparison of BCNF And 3NF

Contoh kasus redundansi pada 3NF
Jadwal = (Nim,Modul,Dosen)
FD = {Dosen  Modul}
Relasi ini memenuhi 3NF, karena tidak ada ketergantungan transitif.
Tetapi tidak memenuhi BCNF karena dari Dosen  Modul maka Dosen
bukan candidate key.
Alternatif yang dilakukan adalah dekomposisi tabel menjadi :
NIM
Modul
Dosen
NIM
Dosen
Dosen
Modul
P11.2004.0129
VB.Net
Ajib
P11.2004.0129
Ajib
Ajib
VB.Net
P11.2004.0130
Prolog
Aris
P11.2004.0130
Aris
Aris
Prolog
P11.2004.0201
VB Net
Budi
P11.2004.0201
Budi
Jono
Prolog
P11.2004.0250
Prolog
Jono
P11.2004.0250
Jono
Budi
VB.Net
P11.2004.0260
VB.Net
Budi
P11.2004.0260
Budi
NOT BCNF
Database System Concepts
BCNF
1.185
©Silberschatz, Korth and Sudarshan
Design Goals
 Goal for a relational database design is:
 BCNF.
 Lossless join.
 Dependency preservation.
 If we cannot achieve this, we accept one of
 Lack of dependency preservation
 Redundancy due to use of 3NF
Database System Concepts
1.186
©Silberschatz, Korth and Sudarshan
Design Steps
(doesn’t meet the
definition of a relation)
Entity Set
First Normal
Form
Praktisi database kebanyakan
menganggap bahwa tingkatan
normalisasi hingga BCNF atau
3NF dianggap sudah cukup
untuk meminimalisasi masalah
dalam desain database
(redundansi,lossless,dependency
preservation)
Database System Concepts
Second Normal
Form
Third Normal
Form
Boyce-Codd
Normal Form
1.187
Remove multivalued &
repeating attributes. Meet
definition of relation
Remove partial
dependencies
Remove transitive
dependencies
Select relation where all
determinants are
candidate key
©Silberschatz, Korth and Sudarshan
Contoh
Untuk Tuan Ali
Jl, A. Yani No. 10
Semarang
No
Faktur : 101
Tanggal : 10-01-2008
Kode
Nama
Harga
Barang
Barang
Satuan
Jumlah
Jumlah
Bayar
1
1101
Sandal
15.000
10
150.000
2
1110
Sepatu
100.000
7
700.000
3
1112
Kaos
30.000
15
450.000
Total
1.300.000
Database System Concepts
1.188
©Silberschatz, Korth and Sudarshan
Tidak Normal
Pertama, Karena
ada multivalued
attribute
Bentuk Tidak Normal
Bentuk Tidak Normal (Unnormalized Form)
No_fa
k
Tgl_faktur
Nm_kons
Almt_kons
Kota_kons
Kode_brg
101
10-01-08
Ali
Jl. A. Yani No. 10
Semarang
102
11-01-08
Database System Concepts
Rudi
Jl. Seroja Raya 1
Solo
1.189
Nama_brg
Jml
Hrg_sat
bayar
1101
Sandal
10
15000
150000
1110
Sepatu
7
100000
700000
1112
Kaos
15
30000
450000
1101
Sandal
20
15000
300000
1113
Jaket
4
200000
800000
©Silberschatz, Korth and Sudarshan
Bentuk Normal Pertama
No_fak
Tgl_faktur
Nm_kons
Almt_kons
Kota_kons
Kode_brg
Nama_brg
Jml
Hrg_sat
101
10-01-08
Ali
Jl. A. Yani No. 10
Semarang
101
10-01-08
Ali
Jl. A. Yani No. 10
101
10-01-08
Ali
102
11-01-08
102
11-01-08
bayar
1101
Sandal
10
15000
150000
Semarang
1110
Sepatu
7
100000
700000
Jl. A. Yani No. 10
Semarang
1112
Kaos
15
30000
450000
Rudi
Jl. Seroja Raya 1
Solo
1101
Sandal
20
15000
300000
Rudi
Jl. Seroja Raya 1
Solo
1113
Jaket
4
200000
800000
Tidak ada multivalued
attribute. Tetapi masih
ada Anomali
Database System Concepts
1.190
©Silberschatz, Korth and Sudarshan
Bentuk Normal Kedua
Berdasarkan Ketergantungan Fungsionalnya :
barang
Kode_brg -> nama_brg, hrg_sat
Nm_kons -> almt_kons, kota_kons
No_fak -> nm_kons, tgl_faktur
No_faktur, kode_brg -> jml, bayar
Kode_brg
Nama_brg
Hrg_sat
konsumen
Nm_kons
Almt_kons
Kota_kons
Database System Concepts
1.191
detil
No_fak
Kode_brg
Jml
bayar
faktur
No_fak
Nm_kons
Tgl_faktur
©Silberschatz, Korth and Sudarshan
Perhatikan
masing-masing tabel,
Masih ada anomali?
Bentuk Normal Kedua
detil
Barang
Kode_brg
Nama_brg
No_fak
Hrg_sat
Kode_brg
Jml
Bayar
1101
Sandal
15000
101
1101
10
150000
1110
Sepatu
100000
101
1110
7
700000
1112
Kaos
30000
101
1112
15
450000
1113
Jaket
200000
102
1101
20
300000
102
1113
4
800000
konsumen
faktur
Nm_kons
Almt_kons
Kota_kons
Ali
Jl. A. Yani No. 10
Semarang
Rudi
Jl. Seroja Raya 1
Solo
Database System Concepts
1.192
No_fak
Nm_kons
Tgl_faktur
101
Ali
10-01-2008
102
Rudi
11-01-2008
©Silberschatz, Korth and Sudarshan
Bentuk Normal Ketiga
Barang
Kode_brg
Nama_brg
Hrg_sat
1101
Sandal
15000
1110
Sepatu
100000
1112
Kaos
30000
1113
Jaket
200000
√
1 NF
√
2 NF
√
3 NF
KF :
Kode_brg -> nama_brg, hrg_sat
Ketergantungan
Transitif ?
Database System Concepts
1.193
©Silberschatz, Korth and Sudarshan
Bentuk Normal Ketiga
konsumen
√
1 NF
Nm_kons
Almt_kons
Kota_kons
Ali
Jl. A. Yani No. 10
Semarang
√
2 NF
Rudi
Jl. Seroja Raya 1
Solo
√
3 NF
KF :
Nm_kons -> almt_kons, kota_kons
faktur
√
1 NF
No_fak
Nm_kons
Tgl_faktur
101
Ali
10-01-2008
√
2 NF
102
Rudi
11-01-2008
√
3 NF
Ketergantungan
Transitif ?
KF :
No_fak -> nm_kons, kota_kons
Database System Concepts
1.194
©Silberschatz, Korth and Sudarshan
Bentuk Normal Ketiga
detil
No_fak
Kode_brg
Jml
Bayar
√
1 NF
101
1101
10
150000
101
1110
7
700000
√
2 NF
101
1112
15
450000
√
102
1101
20
300000
3 NF
102
1113
4
800000
Ketergantungan
Transitif ?
KF :
No_fak, kode_brg -> jml, bayar
Database System Concepts
1.195
©Silberschatz, Korth and Sudarshan
Diagram Relasi
Diagram Relasi setelah proses normalisai :
barang
Kode_brg
Nama_brg
Hrg_sat
konsumen
Nm_kons
Almt_kons
Kota_kons
Database System Concepts
detil
No_fak
Kode_brg
Jml
bayar
faktur
No_fak
Nm_kons
Tgl_faktur
1.196
©Silberschatz, Korth and Sudarshan
Berdasarkan formulir tersebut,
• Rancanglah tabel penyimpanan
datanya
• Lakukan normalisasi hingga 3NF
atau BCNF
Database System Concepts
1.197
©Silberschatz, Korth and Sudarshan
The Callenge of Database Design
Designers must make design compromises that are triggered by conflicting goals :
 design standards (design elegance or faithfulness),
 to develop “good” design : Lossless, No Redundant, Dependency Preservation


processing speed (performance), and
 high processing speeds is “top” priority (efficiency)
 minimizing the number and complexity of relationships or table
information requirements
 capablility for delivering all specified query and reporting
of user requirements timely
Contoh bentuk kompromi yang populer :
 Denormalisasi (pelanggaran normalisasi)
Database System Concepts
1.198
©Silberschatz, Korth and Sudarshan
Denormalisasi
Design Standards Vs (proceessing speed,information requirements)
 Normalisasi hanyalah merupakan teknik pendekatan yang digunakan
untuk mendapatkan desain database (lojik) yang baik dan
bukan sebagai “aturan baku” DBMS yang harus digunakan.
 Bersifat “Normatif”, memungkinkan untuk dilanggar dengan alasan :
Kecepatan Proses (Efisiensi) dan Pelayanan Informasi Tepat Waktu
 Bentuk-bentuk Denormalisasi :
- Membuat Atribut Turunan pada Tabel, mis : Cost=Qty*Price
- Atribut yang Berlebihan, mis : NIM mahasiswa sudah mencerminkan
program studi mahasiswa, tetapi dalam tabel mahasiswa dibuat atribut
Program Studi.
- Summary Table (mis : summary table for report)
- Membiarkan relasi transitif dalam satu tabel untuk kemudahan proses
 Konsekuensi Denormalisasi :
Redundancy, Not Atomic, Worst Space dll
Database System Concepts
1.199
©Silberschatz, Korth and Sudarshan
Additional Material
(Normal Form Other)
Database System Concepts
1.200
©Silberschatz, Korth and Sudarshan
Multivalued Dependency (MVD)
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)
Multivalued Dependencies (MVD)
Misal R adalah skema relasi. A, B dan C adalah subset atribut dari R
maka A disebut multidependensi pada B, ditulis AB, jika
untuk setiap nilai A terdapat sekumpulan nilai B dan sekumpulan
nilai C, tetapi nilai B dan nilai C independen.
Database System Concepts
1.201
©Silberschatz, Korth and Sudarshan
Multivalued Dependency (MVD)
 Relasi MVD melibatkan minimal 3 atribut relasi, misal A-B-C
 Untuk setiap nilai A, terdapat sekumpulan nilai B dan
sekumpulan nilai C.
 Sekumpulan nilai B independen dengan sekumpulan nilai C,
semikian juga sebaliknya.
Penawaran Mata Kuliah
Mata Kuliah Instruktur
Basis Data Himawan
Basis Data Purwanto
Basis Data Aris Marjuni
Basis Data Himawan
Basis Data Purwanto
Matematika M Sidiq
C Liu
Basis Data Aris Marjuni
MT Lang
Matematika M Sidiq
MVD : Mata Kuliah  Instruktur Matematika M Sidiq
Penawaran Mata Kuliah
Mata KuliahInstruktur Pustaka
Basis Data Himawan
CJ Date
Purwanto
HF Korth
Aris Marjuni
Pustaka
CJ Date
CJ Date
CJ Date
HF Korth
HF Korth
HF Korth
C Liu
MT Lang
Mata Kuliah  Pustaka
Database System Concepts
1.202
©Silberschatz, Korth and Sudarshan
Multivalued Dependency (MVD)
 Dalam contoh lain :
R1
R2
R3
X
Y
Z
X
Y
Z
X
Y
Z
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
1
2
1
1
2
1
1
2
1
1
2
2
1
2
2
2
2
1
2
2
1
2
2
1
2
2
2
2
2
2
2
1
2
3
3
3
XY ?
XZ ?
YX ?
ZX ?
MVD Exist
Database System Concepts
No MVD
Why ?
No MVD
Why ?
1.203
©Silberschatz, Korth and Sudarshan
Multivalued Dependency (MVD)
Refleksif
Augmentation
Transitif
Pseudotransitif
Union
Dekomposisi
Komplemen
Database System Concepts
:
:
:
:
:
:
:
xx
Jika xy
Jika xy
Jika xy
Jika xy
Jika xy
Jika xy
maka xzyz
dan yz maka xz-y
dan ywz maka xwz-yw
dan xz maka xyz
dan xz maka xyz dan xz-y
dan z=R-x-y maka xz
1.204
©Silberschatz, Korth and Sudarshan
Fourth Normal Form (4NF)
Skema relasi R disebut 4NF jika dan hanya jika
 BCNF dan
 Tidak terdapat MVD.
 Apabila terdapat MVD dalam R, misal XY
maka harus memenuhi salah satu :
- MVD adalah trivial atau
- X adalah superkey
Database System Concepts
1.205
©Silberschatz, Korth and Sudarshan
Fourth Normal Form (4NF)
Misal diketahui R = (A, B, C, D, E, F)
MVD : AB dan CDEF. Bila diasumsikan R memenuhi BCNF,
apakah memenuhi 4NF ? Jika belum upayakan menjadi 4NF.
• Bukan 4NF sebab terdapat MVD dan nontrivial.
• Dekomposisi R :
Dari AB, dibentuk R1=(A,B)
Karena AB maka A C,D,E,F dan dibentuk R2=(A,C,D,E,F)
• R1=(A,B)
memenuhi 4NF, sebab MVD : AB trivial
• R2=(A,C,D,E,F)
Bukan 4NF, karena MVD : CDEF nontrivial
R1=(A,B)
• Dekomposisi R2 :
Dari CDEF dibentuk R21=(C,D,E,F)
R21=(C,D,E,F)
Karena CDEF dan CDA, dibentuk R22=(C,D,A)
R22=(C,D,A)
• R21=(C,D,E,F)
4NF, karena MVD : CDEF trivial
Memenuhi 4NF
• R22=(C,D,A)
4NF, karena tidak ada MVD.
Database System Concepts
1.206
©Silberschatz, Korth and Sudarshan
Fourth Normal Form (4NF)
Misal diketahui R = (A, B, C, G, H, I)
MVD : AB, BHI dan CGH. Bila diasumsikan R memenuhi BCNF,
apakah memenuhi 4NF ? Jika belum upayakan menjadi 4NF.
• Bukan 4NF sebab terdapat MVD, nontrivial dan bukan superkey.
• Dekomposisi R :
Dari AB, dibentuk R1=(A,B)
Karena AB maka A C,G,H,I dan dibentuk R2=(A,C,G,H,I)
• R1=(A,B)
R1=(A,B)
memenuhi 4NF, sebab MVD : AB trivial
R21=(C,G,H)
• R2=(A,C,G,H,I)
R221=(A,I)
Bukan 4NF, karena MVD : CGH nontrivial
R222=(A,C,G)
• Dekomposisi R2 :
Dari CGH dibentuk R21=(C,G,H)
Memenuhi 4NF
Karena CGH maka CGA,I dan dibentuk R22=(C,G,A,I)
• R21=(C,G,H) 4NF, karena MVD : CGH trivial, tetapi R22=(C,G,A,I)
bukan 4NF, karena ada MVD : AI (dari AB, BHI maka A-->HI
dan AI).
• Dekomposisi R22 menjadi R221=(A,I) dan R222=(A,C,G)
dan masing-masing merupakan bentuk
4NF.
Database System Concepts
1.207
©Silberschatz, Korth and Sudarshan
Fourth Normal Form (4NF)
Penawaran Mata Kuliah
Mata Kuliah Instruktur
Basis Data Himawan
Basis Data Purwanto
Basis Data Aris Marjuni
Basis Data Himawan
Basis Data Purwanto
Basis Data Aris Marjuni
Matematika M Sidiq
Matematika M Sidiq
Pustaka
CJ Date
CJ Date
CJ Date
HF Korth
HF Korth
HF Korth
C Liu
MT Lang
 BCNF, sebab :
- 1NF, Yes
- 2NF, Yes. Sebab semua atribut mrpk atribut kunci.
- 3NF, Yes. Sebab tidak ada ketergantungan transitif.
- BCNF, Yes. Tidak ada FD pada atribut bukan kunci.
- 4NF, No. Sebab terdapat MVD yang nontrivial.
Dekomposisi ……………………
MVD : Mata Kuliah  Instruktur
Mata Kuliah  Pustaka
Database System Concepts
1.208
©Silberschatz, Korth and Sudarshan
Fourth Normal Form (4NF)
Penawaran Mata Kuliah
Mata Kuliah Instruktur
Basis Data Himawan
Basis Data Purwanto
Basis Data Aris Marjuni
Basis Data Himawan
Basis Data Purwanto
Basis Data Aris Marjuni
Matematika M Sidiq
Matematika M Sidiq
Pustaka
CJ Date
CJ Date
CJ Date
HF Korth
HF Korth
HF Korth
C Liu
MT Lang
Inst
Mata Kuliah
Basis Data
Basis Data
Basis Data
Matematika
Instruktur
Himawan
Purwanto
Aris Marjuni
M Sidiq
 4NF
Mata KuliahInstruktur
Pust
Mata Kuliah
Basis Data
Basis Data
Matematika
Matematika
Pustaka
CJ Date
HF Korth
C Liu
MT Lang
 4NF
Mata KuliahPustaka
Refference :
J. Teorey, Database Modeling1.209
& Design, page 112-116
DatabaseToby
System Concepts
©Silberschatz, Korth and Sudarshan
Fourth Normal Form (4NF)
R1
R2
R3
X
Y
Z
X
Y
Z
X
Y
Z
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
1
2
1
1
2
1
1
2
1
1
2
2
1
2
2
2
2
1
2
2
1
2
2
1
2
2
2
2
2
2
2
1
2
3
3
3
4NF ? Yes
4NF ? Yes
4NF ? No.
- MVD nontrivial
- Bukan Superkey
Database System Concepts
1.210
©Silberschatz, Korth and Sudarshan
Fifth Normal Form (5NF)
Misal SPJ berisi data-data Supplier (S) yang memasok barang (P) untuk
suatu Project (J). Satu supplier dapat memasok banyak barang, supplier juga
Dapat berpartisipasi pada banyak proyek.
SP
SPJ
PJ
S
P
J
S
P
P
J
S1
P1
J2
S1
P1
P1
J2
S1
P2
J1
S1
P2
P2
J1
S2
P1
J1
S2
P1
P1
J1
S1
P1
J1
Key : S, P, J
MVD : SP
SJ
4NF ? No
SP
4NF ? Yes
Jika SP dan PJ di-project join-kan kembali on P
akan diperoleh :
SJ
4NF ? Yes
SP join PJ
S
P
J
S1
P1
J2
S1
P1
J1
S2
P1
J2
S2
P1
J1
S1
P2
J1
Tupel asing
Ternyata projection-join dari dekomposisinya tidak mengembalikan
Ke relasi asal.
Database System Concepts
1.211
©Silberschatz, Korth and Sudarshan
Fifth Normal Form (5NF)
Relasi hasil project-join tsb akan kembali ke bentuk relasi asal SPJ setelah di project-join
Kan dengan SJ pada S dan J
SJ
SP join PJ
SPJ (Original)
S
P
J
S
J
S
P
J
S1
P1
J2
S1
J2
P1
J2
S1
P1
J1
Project-join
S1
on (S,J)
S1
J1
S1
P1
J1
S2
P1
J2
S2
J1
S2
P1
J1
S2
P1
J1
S1
P2
J1
S1
P2
J1
SP
PJ
SJ
S
P
P
J
S
J
S1
P1
P1
J2
S1
J2
S1
P2
P2
J1
S1
J1
S2
P1
P1
J1
S2
J1
Dekomposisi Akhir
Database System Concepts
1.212
©Silberschatz, Korth and Sudarshan
Fifth Normal Form (5NF)
 Disebut juga Projection-Join Normal Form (PJ/NF)
 Skema relasi R disebut memenuhi 5NF jika tidak dapat dibuat
menjadi beberapa tabel kecil yang lossless melalui operasi projectionjoin atau
Skema relasi R disebut memenuhi 5NF jika setiap join dependency
(JD) nontrivial pada R diimplikasikan oleh Candidate key dari R
 Join Dependency
Batasan dekomposisi yang lossless pada sejumlah operasi project-join
Database System Concepts
1.213
©Silberschatz, Korth and Sudarshan
Fifth Normal Form (5NF)
SP
SPJ
SJ
PJ
S
P
J
S
P
P
J
S
J
S1
P1
J2
S1
P1
P1
J2
S1
J2
S1
P2
J1
S1
P2
P2
J1
S1
J1
S2
P1
J1
S2
P1
P1
J1
S2
J1
S1
P1
J1
Key : S, P, J
MVD : SP
SJ
4NF ? No
SP
4NF ? Yes
5NF ? Yes
SJ
4NF ? Yes
4NF ? Yes
4NF ? Yes, tidak ada MVD
5NF ? Yes
5NF ?
Yes, tidak dapat didekomposisi lagi
Trivial pada candidate key
Refference :
Systems, page©Silberschatz,
394-399
DatabaseC.J.
SystemDate,
Concepts An Introduction To Database
1.214
Korth and Sudarshan
1NF
SUMMARY
2NF
3NF
BCNF
4NF
5NF
LEVEL NORMALISASI
Database System Concepts
1.215
©Silberschatz, Korth and Sudarshan
SUMMARY
It is best to find a database design that meet the 3-criteria :
• NF (Normal-Form)note
• Dependency Preservation
• Lossless-Join
note
If we only have functional dependencies (FD), the first criteria is just BCNF.
If we only have multivalued dependency (MVD), the first criteria is just 4NF.
If we only have join dependency (JD), the first criteria is just 5NF.
If we cannot meet all 3-criteria, we compromise on 4NF, and accept BCNF, or
even 3NF if necessary, to ensure dependency preservation.
Database System Concepts
1.216
©Silberschatz, Korth and Sudarshan
Download