Dokumen tersebut memberikan penjelasan singkat tentang normalisasi basis data yang terdiri dari 6 aturan untuk menormalisasi entitas dan atribut menjadi tabel-tabel normal. Aturan tersebut dijelaskan dengan contoh penerapannya pada basis data perusahaan.
2. Participation Constraint Dependencies
Participation Constraint Dependency
• Menunjukkan apakah keberadaan suatu entitas bergantung
penuh / tidak dengan entitas relasinya.
• Batasan (constraint) adalah jumlah minimum relasi dimana tiap
entitas dapat ikut berpatisipasi.
• Ada 2 jenis Participation Constraint:
1. Partisipasi Total ( )
adalah bentuk partisipasi yang menunjukkan ketergantungan
penuh suatu entitas (semua dan harus).
2. Partisipasi Parsial ( )
adalah bentuk partisipasi yang menujukkan ketergantuan
tidak penuh suatu entitas (beberapa, tidak harus semua)
3. Participation Constraint Dependencies
Rasio Kardinalitas Participation Constraint
1 : 1 : One-to-One
N : 1 : Many-to-One
M : N : Many-to-Many
PEGAWAI DEPARTEMENMANAGE
1 1
PEGAWAI DEPARTEMEN
BEKERJA_
PADA
N 1
p1
p2
p3
p4
r1
r2
r3
d1
d2
d3
PEGAWAI MANAGE DEPARTEMEN
p1
p2
p3
p4
r1
r2
r3
r4
d1
d2
d3
PEGAWAI BEKERJA_PADA DEPARTEMEN
p1
p2
p3
p4
r1
r2
r3
r4
d1
d2
d3
PEGAWAI BEKERJA_DI PROJECT
PEGAWAI PROJECTBEKERJA_ DI
M N
4. NORMALIZATION
Given any pool of entities and attributes, there are a number of ways you can group them into relations
4
5. Normalization
Pada dasarnya ada 2 model pendekatan dalam
menyusun normalisasi, yaitu :
• Mapping dari ERD.
• Melakukan langkah-langkah normalisasi sesuai
dengan teori-teori perancangan database.
5
6. Aturan 1
• Untuk setiap entitas kuat (EK), buat tabel baru EK
yang memasukkan semua attribut sederhana (simple
attribut)
• Untuk atribut komposit, hanya atribut sederhananya
yang disertakan
• Pilih salah satu key attribute dari EK sebagai primary
key. Jika key yang terpilih merupakan atribut
komposit, seluruh atribut sederhananya merupakan
primary key
7. Aturan 1
Pegawai
Nama
NmDepan Inisial NmBlk
JenisKel
Alamat Gaji
NoKTP
Langkah 1
Tabel PEGAWAI
NoKTP
NmDepan
Inisial
NmBlk
JenisKel
Alamat
Gaji
Atribut komposit nama tidak menjadi field/kolom pada
tabel PEGAWAI, tetapi yg dimasukkan adalah bagian
simple attributnya.
8. Aturan 2
• Untuk setiap entitas lemah EL yang dimiliki
oleh entitas kuat EK, buat tabel baru EL yang
memasukkan semua atribut sederhana EL
• Tambahkan pada EL foreign key yang diambil
dari primary key EK
• Primary key yang dibentuk merupakan
gabungan primary key EK dan partial key dari
EL (jika ada)
10. Aturan 3
Untuk setiap relasi 1:1 antara entitas EK1 dan EK2:
•Jika sama-sama merupakan partisipasi total, pilih salah satu.
Tambahkan semua semua simple attribut dari entitas yang lain
•Jika sama-sama merupakan partisipasi parsial, pilih salah satu.
Tambahkan foreign key dari primary key entitas yang lain
•Jika salah satu merupakan partisipasi total, pilih yang
berpartisipasi total. Tambahkan foreign key dari primary key
entitas yang lain Kemudian tambahkan semua simple atribut dari
relasi tersebut
12. Aturan 4
• Untuk setiap relasi 1:N antara entitas EK1 dan
EK2, pilih entitas yang memiliki derajat
maksimum relasi=N
• Tambahkan sebuah foreign key dari primary
key entitas lain yang memiliki derajat
maksimum relasi = 1
• Tambahkan pula seluruh atribut dari relasi
tersebut
13. Aturan 4
Pegawai Departemen
bekerja
untuk
NoKTP nama nomor
(1)(N)
Langkah 4
Tabel PEGAWAI
…
…
Dep_NomorBekerja
Dep_NamaBekerja
Kolom-kolom yang telah dibentuk
pada langkah-langkah sebelumnya
14. Aturan 5
• Untuk setiap relasi M:N antara entitas EK1 dan
EK2, buat tabel baru MN
• Tambahkan seluruh simple attribut dari relasi
tersebut
• Tambahkan pula foreign key yang diambil dari
primary key masing-masing entitas yang
direlasikan
• Primary key merupakan gabungan dari
seluruh foreign key tersebut
16. Aturan 6
• Untuk setiap multivalued attribute, buat tabel
baru MV
• Tambahkan seluruh simple attributnya
• Tambahkan pula sebagai foreign key, primary
key dari entitas yang memiliki
• Primary key merupakan gabungan dari dari
seluruh fieldnya
19. Contoh
Berdasarkan ERD
NoKTP NmDepan Inisial NmBlk JenisKel Alamat Gaji
Step 1:
Langkah pertama mendefinisikan entitas kuat
Tabel Pegawai
Entitas pegawai memiliki atribut NoKTP,JenisKel,Alamat,Gaji dan atribut
composit Nama (NmDepan,Inisial,NmBlk). Sehingga skema tabel pegawai sbb:
Tabel Departemen
Entitas departemen memiliki atribut Nomor,Nama, JmlPegawai dan atribut
multi valued lokasi yang bisa menjadi tabel lain yang mengacu ke tabel
departemen. Skemanya adalah sbb:
Nomor Nama JmlPegawai
20. Contoh
Nomor Nama Lokasi
Tabel proyek
Entitas proyek terdiri dari atribut Nomor, Nama,Lokasi. Skema dari tabel
proyek adalah
Step 2:
Langkah kedua adalah mendefinisikan entitas lemah
Tabel Tanggungan
Entitas tanggungan bergantung pada entitas pegawai. Atibutnya adalah
Nama,JenisKel,TglLahir,Hubungan. Primary key dari entitas pegawai masuk ke
entitas tanggungan
NoKTP Nama JenisKel TglLahir Hubungan
21. Contoh
Nomor Nama JmlPegawai NoKTP TglMulai
Step 3:
Tabel Departemen
Pada relasi mengepalai, suatu departemen dikepalai oleh 1 pegawai sehingga
primary key entitas pegawai masuk ke entitas departemen, ditambahkan
dengan atribut tglMulai
Step 4:
Tabel Pegawai
Pada relasi memimpin dan bekerja, primary key dari departemen masuk ke
entitas pegawai dan setiap pegawai memiliki pimpinan
NoKTP NmDepan Inisial NmBlk JenisKel Alamat Gaji
… NoKTP_Pimpinan dep_nomor Dep_nama
22. Contoh
Tabel Proyek
Berdasarkan relasi mengatur, maka primary key dari entitas departemen
masuk ke entitas proyek
Nomor Nama Lokasi dep_nomor dep_nama
Step 5:
Tabel BekerjaPada
Pada relasi bekerja pada memiliki relasi many to many sehingga akan muncul
tabel baru yang primary keynya berasal dari entitas pegawai dan proyek
noKTP proyek_nomor proyek_nama lamaJam