MANAJEMEN BASIS DATA
Database Management System
STMIK SWADHARMA
by Abdul Aziz Efendy, M.Kom
MANAJEMEN BASIS DATA
STMIK SWADHARMA, by ABDUL AZIZ EFENDY, S.KOM
POKOK BAHASAN
Yang akan dibahas pada modul ini adalah :
1) Apa yang dimaksud dengan Manajemen Basis Data dan komponen-komponennya.
2) Abstraksi data yang
menunjukkan bagaimana para pemakai (user)
“melihat” data.
3) Bahasa basis data yang
menjadi media bagi pemakai (user) dalam berinteraksi dengan basis data.
4) DBMS.
MANAJEMEN BASIS DATA
STMIK SWADHARMA, by ABDUL AZIZ EFENDY, S.KOM
DEFINISI MANAJEMEN BASIS DATA
SISTEM DATABASE adalah suatu sistem penyusunan dan pengelolaan record- record dengan menggunakan komputer, dengan tujuan untuk menyimpan atau merekam serta memelihara data operasional lengkap sebuah organisasi/
perusahaan, sehingga mampu
menyediakan informasi yang optimal yang
diperlukan pemakai untuk kepentingan
proses pengambilan keputusan.
MANAJEMEN BASIS DATA
STMIK SWADHARMA, by ABDUL AZIZ EFENDY, S.KOM
1. KOMPONEN SISTEM BASIS DATA Lebih lanjut lagi, dalam sebuah sistem basis data, secara
lengkap akan terdapat komponen- komponen utama sbb:
1. Perangkat Keras (Hardware) 2. Sistem Operasi (Operating
System)
3. Basis Data (Database)
4. Sistem (Aplikasi/Perangkat Lunak) Pengelola Bisnis Data (DBMS)
5. Pemakai (User)
6. Aplikasi (perangkat lunak) lain (bersifat opsional)
2. ABSTRAKSI DATA
Abstraksi data merupakan tingkatan/ level dalam
melihat data dalam sebuah sistem basis data.
Ada 3 level abstraksi data :
Level Fisik
(Physical Level)–Internal Level
Level Logik/Konseptual (Conceptual Level)
Level Penampakan
(View Level)–External Level
MANAJEMEN BASIS DATA
STMIK SWADHARMA, by ABDUL AZIZ EFENDY, S.KOM
Physical Level–Internal Level Merupakan level terendah, yang menunjukkanbagaimana
sesungguhnya suatu data
disimpan. Pada level ini, pemakai melihat data sebagai gabungan dari struktur dan datanya sendiri.
Conceptual Level
Menggambarkan data apa yang sebenarnya disimpan dalam basis data dan hubungannya dengan data yang lain.
View Level –External Level
Merupakan level tertinggi, hanya menunjukkan
sebagaian dari basis data sesuai dengan kebutuhan user, bagi user yang
menggunakan terasa
sebagai satu kesatuan
data yang kompak.
MANAJEMEN BASIS DATA
STMIK SWADHARMA, by ABDUL AZIZ EFENDY, S.KOM
3. BAHASA BASIS DATA Sebuah bahasa basis data (database languange)
biasanyadapat dipilah ke dalam 2 bentuk, yaitu:
3.1 DATA DEFINITION LANGUAGE (DDL)
Dengan bahasa inilah kita dapat membuat tabel baru, membuat indexs, mengubah tabel,
menentukan struktur penyimpanan tabel, dll. Hasil dari kompilasi
perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut Kamus Data (Data Dictionary); yang merupakan suatu metadata (superdata) yaitu data yang mendeskripsikan data sesuangguhnya.
Kamus Data ini selalu diakses dalam suatu operasi basis data sebelum file data yang
sesungguhnya diakses.
3.2 DATA MANIPULATION LANGUANGE (DML)
Berguna untuk melakukan
manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa;
Penyisipan/penambahan data baru, penghapusandata dan pengubahan data.
DML merupakan bahasa yang
bertujuan memudahkan pemakai
untuk mengakses data sebagaimana
direpresentasikan oleh model data
MANAJEMEN BASIS DATA
STMIK SWADHARMA, by ABDUL AZIZ EFENDY, S.KOM
Ada 2 Jenis DML, yaitu :
Prosedural, yang mensyaratkan agar pemakai menentukan, data apa yang diinginkan serta
bagaimana cara mendapatkannya.
Contoh: dBaseIII, FoxBase
Non-Prosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa
menyebutkan bagaimana cara
mendapatkannya.Contoh : SQL
MANAJEMEN BASIS DATA
STMIK SWADHARMA, by ABDUL AZIZ EFENDY, S.KOM
4. DBMS (Database Management System)
DBMS adalah perangkat lunak yang menangani semua
pengaksesan database.
Mempunyai fasilitas membaut,mengakses,
memanipulasi dan memelihara basis data.
FUNGSI DBMS
1. Data Definition, DBMS harus dapat mengolah pendefinisian data
2. Data Manipulation, DBMS harus dapat menangani permintaan dari pemakai untuk mengakses data
3. Data Security & Integrity, DBMS harus dapat
memeriksa security dan integrity data yang
didefinisikan oleh DBA 4. Data Recovery &
Concurency, DBMS harus dapat menangani
kegagalan–kegagalan pengaksesan database yang dapat disebabkan oleh sesalahan sistem, kerusakan disk, dsb.
5. Data Dictionary, DBMS harus menyediakan data dictionary.
6. Performance, DBMS harus
menangani unjuk kerja
dari semua fungsi seefisien
mungkin.
MANAJEMEN BASIS DATA
STMIK SWADHARMA, by ABDUL AZIZ EFENDY, S.KOM
Komponen DBMS
Sebuah DBMS (Database
Management System) umumnya memiliki sejumlah komponen fungsional (modul) seperti :
File Manager, yang mengelola ruang dalam disk dan struktur data yang dipakai untuk
merepresentasikan informasi yang tersimpan dalam disk.
Database Manager, yang
menyediakan interface antara data low-level yang ada di basis data dengan program aplikasi dan query yang diberikan ke sistem.
Query Processor, yang menterjemahkan
perintahperintah dalam query language ke perintah low-level yang dapat dimengerti oleh database manager.
DML Precompiler, yang
mengkonversi perintah DML yang ditambahkan dalam sebuah
program aplikasi ke pemangin prosedur normal dalam bahasa induk.
DDL Compiler, yang
mengkonversi perintah-perintah DDL ke dalam sekumpulan tabel yang mengandung metadata.
Tabel-tabel ini kemudian
disimpan dalam kamus data.
by Zȉz 2018
Manajemen Basis Data
• Install SQL Server & Management Studio
• SQL Query with Script of DDL – DML
• Using SQL Management Studio
by Zȉz 2018
Objective:
Install SQL Server & Install DBMS
(SQL Management Studio)
1. Klik file “SQLEXPR_x64_ENU.exe”
2. Ikuti langkah instalasi standar, kecuali pada page
“Authentication Mode”, pilihlah “Mixed Mode” dan masukkan password “Sql2012”; (password ini disamakan pada saat latihan ini saja, dalam praktek sebenarnya, password hanya diketahui oleh DBA dan Manager IT saja)
3. Lanjutkan mengikuti langkah installasi standard sampai ada tombol “close”
4. ...
by Zȉz 2018
Objective: Install SQL Server
by Zȉz 2018
Objective: Install SQL Server
by Zȉz 2018
Objective: Install SQL Server
by Zȉz 2018
Objective: Install SQL Server
by Zȉz 2018
Objective:
Install SQL Server & Install DBMS
(SQL Management Studio)
1. Klik file “SQLEXPR_x64_ENU.exe”
2. Ikuti langkah instalasi standar, kecuali pada page
“Authentication Mode”, pilihlah “Mixed Mode” dan masukkan password “Sql2012”; (password ini disamakan pada saat latihan ini saja, dalam praktek sebenarnya, password hanya diketahui oleh DBA dan Manager IT saja)
3. Lanjutkan mengikuti langkah installasi standard sampai ada tombol “close”
4. Klick file “SQLManagementStudio_x64_ENU”
5. Ikuti langkah instalasi standar sampai ada tombol “close”
by Zȉz 2018
Objective: Install DBMS
(SQL Management Studio)
by Zȉz 2018
Objective: Using SQL Management Studio
• After Install SQL Server & Install DBMS (SQL Management Studio) successes, then
1. Jalankan DBMS (SQL Management Studio)
2. Pilih Authenticatin = SQL Server Authentication
3. Masukkan login “sa” dan password “Sql2012” (atau sesuai password pada saat install)
4. Klik “New Query”
5. Gunakan script DDL untuk membuat Database
[NamaMhs] dan Table [Mahasiswa (Nim, Nama, Jurusan, ThnMasuk, NoHape]
6. Gunakan script DML untuk insert data teman2 Anda
by Zȉz 2018
Create Database & Table
1. Jalankan DBMS (SQL Management Studio)
2. Pilih Authenticatin = SQL Server Authentication
3. Masukkan login “sa” dan password “Sql2012” (atau sesuai password pada saat install)
4. Klik kanan pada Database, lalu pilih “New Database”, berilah nama ‘[nim Anda]”,
lalu buatlah Table Mhs, pilih table. Klik kanan pada Table, lalu pilih “New Table”, masukkan field [NIM char(8), Nama
varchar(50), Program char(2), Jurusan(15), JnKel char(1)].
5. Klik kanan pada nim, pilih “Set Primary Key”
6. lalu simpanlah Tabel tersebut dengan nama “Mhs”
by Zȉz 2018
Entry Data Mahasiswa
1. Jalankan DBMS (SQL Management Studio)
2. Pilih Authenticatin = SQL Server Authentication
3. Masukkan login “sa” dan password “sql2012”
4. Pilih Database, db[NIM], table, dbo.Jkel, &
dbo.ProJur. Then klik kanan, pilih “Open
Table”, lalu masukkan data yang dibutuhkan.
5. Pilih Database, db[NIM], table, dbo.Mhs, klik kanan, pilih “Open Table”, lalu masukkan data semua nama teman-teman Anda.
6. Selesai……..
Normalisasi dan Fungsional Normalisasi dan Fungsional
Dependensi p
STMIK Swadharma STMIK Swadharma
Disebarluaskan oleh Abdul Aziz Efendy
Normalisasi Normalisasi
S d d I d i d l h 3 d N l F (NF)
• Standard Industri adalah 3 rd Normal Form (NF)
• Anomali : Efek samping yang tidak diharapkan dalam b i d t
basisdata
• Normalisasi menghilangkan
– Modification anomalies : Terjadi jika saat perubahan pada sejumlah data yang
b i i id k l h ik b b h
mubazir, tetapi tidak seluruhnya ikut berubah.
– Deletion anomaly: Terjadi jika suatu tuple (baris) yang tidak terpakai di hapus dan akibatnya ada data lain yang ikut terhapus.
– Insertion anomaly: Terjadi jika pada saat penyisipan pada baris, terdapat elemen se t o a o a y: e jad j a pada saat pe y s pa pada ba s, te dapat e e e (atribut) yang masih kosong dan elemen data tersebut menjadi kunci.
• Anomali dapat di hilangkan dengan memisah satu relasi menjadi dua atau lebih relasi, yang masing‐masing dalam tema yang berbeda dan unik.
• Memecah relasi menciptakan (menghasilkan) referential integrity constraints
• Normalisasi bekerja melalui kelas relasi yang dinamakan normal forms
Normalisasi (Definisi) Normalisasi (Definisi)
i k i k b l i d l i d
• Dipakai untuk membuat Relasi dalam Basisdata dengan tujuan mengurangi kemubaziran
d t (E F C dd) data.(E.F. Codd)
• Juga dipakai sebagai perangkat verifikasi thd tabel yang dihasilkan metodologi lainnya.
• Mencegah penciptaan struktur tabel yang kurang atau mengurangi ketidak efisienan.
• Proses merubah suatu relasi yang bermasalah ke y g dalam dua atau lebih relasi yang tidak
bermasalah (Kroenke). Masalah==Anomali ( )
Disain database (Problems) Disain database (Problems)
I t it
• Integritas
– Menghindari redundansi Menghilangkan ambig itas – Menghilangkan ambiguitas
• Performance
Akses – Akses
– Efisien dalam penyimpanan
• Maintainability
• Maintainability
– Mudah di remajakan
– Mudah di sisipkan
– Mudah di sisipkan
– Mudah di hilangkan
Disain database (Good) Disain database (Good)
ik dil k k li i k
• Jika dilakukan normalisasi maka :
– Tetap dapat merepresentasikan Informasi
• Dekomposisi tetap menjaga integritas
• Informasi lain dalam elemen tidak hilang (lossy dan lossless)
Dependency Preservation – Dependency Preservation
• Good relation (no anomali) , easy maintainance (update,inser,del)
( p , , )
– No Redundancy
• 3 rd NF or BCNF
• Minimalisasi Perulangan
Contoh Tabel Universitas Contoh Tabel Universitas
StdSSN StdClass OfferNo OffYear EnrGrade CourseNo CrsDesc
S SSN S C O N O G C N C
S1 JUN O1 2006 3.5 C1 DB S1 JUN O2 2006 3.3 C2 VB S2 JUN O3 2006 3 1 C3 OO
S2 JUN O3 2006 3.1 C3 OO
S2 JUN O2 2006 3.4 C2 VB
‐ Perkecualian utk penghilangan 2 kolom (StdCity and OffTerm)
‐ Kesalahan Typical pemula: menggunakan satu tabel utk seluruh database
Anomali:
‐ PK: kombinasi dari StdSSN dan OfferNo
‐ Insert: Tdk dpt menyisipkan student baru tanpa enrolling pada offering (OfferNo bag dari PK)
‐ Update: perubahan pd desk. Course ; merubah tiap enrollment pada course
D l t h b i k 3 i f d C3 hil (l )
‐ Delete: hapus baris ke 3; info pada course C3 hilang (lossy)
Redundancies
mudah di query: tanpa join
‐ mudah di‐query: tanpa join
‐ Susah dirubah: dapat bekerja, tapi menyusahkan (dummy PK)
Modification Anomaly Examples Modification Anomaly Examples
• Insertion Insertion
– Insert data lebih dari yang di inginkan
– Harus tahu student number dan offering number utk
l k k i t b
melakukan insert course baru
• Update
– Merubah multiple rows : merubah satu fakta Merubah multiple rows : merubah satu fakta
– Harus merubah 2 baris untuk merubah kelas student dari student S1
• Deletion
– Menghapus baris menyebabkan fakta lain hilang
– Menghapus enrollment dari student S2 dalam offering O3 – Menghapus enrollment dari student S2 dalam offering O3
menyebabkan hilangnya informasi tentang offering O3 dan
course C3
Update Anomali Update Anomali
Pemasok Kota Barang Jumlah
Dewi Jakarta Monitor 10
Candra Bandung ZIP 4
Fanda Jakarta Keyboard 5
Candra Bandung Mouse 25
Jika Candra berpindah kota di Bogor, maka seluruh nilai atribut kota milik pemasok
Candra harus di rubah semua
Pemasok Kota Barang Jumlah
Dewi Jakarta Monitor 10
Candra Bogor ZIP 4
Fanda Jakarta Keyboard 5
Candra Bandung Mouse 25
Insert Anomali Insert Anomali
Kuliah Ruang Tempat
Jarkom D.4.1 Gedung D
SBD D.4.3 Gedung D
Kalkulu s 1 D 4 5 Gedung E
Kalkulu s 1 D.4.5 Gedung E
Sistem Pakar D.4.10 Gedung E
AI D 4 1 Gedung D
AI D.4.1 Gedung D
Bagaimana menambahkan infromasi ruangan baru ? Ruang ada di suatu gedung
Ruang ada di suatu gedung.
Delete Anomali Delete Anomali
NoSiswa Kursus Biaya
10 Inggris 60000
10 Prancis 80000
10 Prancis 80000
10 Mandarin 60000
25 Inggris gg 60000
20 Jepang 65000
Siswa no 10 yang ikut bahasa inggris dihapus ?
Dependensi Dependensi
d l d
• Konsep yang mendasari normalisasi pada relasi.
• Menjelaskan hubungan antar atribut atau
secara khusus menjelaskan nilai atribut yang j y g menentukan nilai atribut lainnya
– Fungsional Dependensi Fungsional Dependensi
– Fungsional Dependensi Sepenuhnya Fungsional Total
– Fungsional Total
– Fungsional Tranfsitif
Fungsional Dependensi (FD) Konsep dasar
F i l D d l il i ib
• Functional Dependency muncul saat nilai atribut pertama
(himpunan atribut) menentukan nilai pada atribut (himpunan atribut) yang kedua. ) y g
• Suatu Atribut Y mempunyai dependensi fungsional terhadap atribut X, JIKA DAN HANYA JIKA setiap NILAI X berhubungan d SEBUAH il i Y
dengan SEBUAH nilai Y
• Notasi XÎY (X secara fungsional menentukan Y)
• X Penentu (determinan) Y Tergantung (dependen)
• X==Penentu (determinan), Y==Tergantung (dependen)
• Contoh StdSSN ‐> StdClass
Ada setidaknya satu class bagi tiap student
– Ada setidaknya satu class bagi tiap student
– Tempatkan StdSSN dan StdClass sendri dalam tabel ang
sama Î StdSSN merupakan candidate key p y
Contoh FD Contoh FD
b li l h
Pembeli Kota Barang Jumlah
P1 Yogya B1 10
P1 Yogya B2 5
P1 Yogya B2 5
P2 Solo B1 7
P2 Solo B2 6
P2 Solo B3 6
P3 Semarang B3 7
P3 Semarang B4 6
Pembeli ÎKota
{Pembeli,Barang}ÎJumlah {Pembeli, Barang}ÎKota
{ , g}
{Pembeli,Barang}Î{Jumlah, Kota}
FD Lanj FD Lanj.
• Atribut di sebelah kiri FD disebut determinant
– SID Æ DormName, Fee
(CustomerNumber ItemNumber Quantity) Æ Price – (CustomerNumber, ItemNumber, Quantity) Æ Price
• PK adalah selalu suatu determinant, tetapi suatu determinant tidak selalu suatu PK
suatu determinant tidak selalu suatu PK.
– Apakah Candidate keys selalu suatu determinant?
FD lanj FD lanj.
• X → Y
• X (secara fungsional) menentukan Y
• X: left‐hand‐side (LHS) or determinan (penentu)
• Untuk semua nilai X , ada setidaknya paling Untuk semua nilai X , ada setidaknya paling banyak satu nilai Y
• Mirip dengan candidate keys
• Mirip dengan candidate keys.
• FD Trivial XÎY jika Y⊆X
XÎX X YÎX X YÎY
– XÎX ; X,YÎX; X,YÎY;
– X,Y,ZÎ X,Z; X,Y,ZÎ X,Z; X,Y,ZÎX,Y,Z
FD Lanj FD Lanj.
• Diberikan α ⊆ R and β ⊆ R, maka FD adalah α → β β pada R, jika p , j
– t i (α) adalah unik, dengan 1≤i≤n adalah nilai pada index tuple/record ke i dan α adalah atribut
index tuple/record ke i dan α adalah atribut – t i (α)= t j (α) , i ≠ j dan t i ( β )= t j ( β )
A B C AÎB ?
t (A) t (A) ya
AÎC ?
t 1 (A)= t 2 (A), ya
1 4 C1
1 5 C1
2 7 C2
t 1 (A)= t 2 (A), ya t 1 (B) ≠ t 2 (B), tidak Maka AÎB
T 1 (C)= t 2 (C), ya Maka AÎC
2 7 C2
Contoh lain Contoh lain
DiK t h i R(A B C D)
• DiKetahui R(A,B,C,D)
• AÎC Y
Î
A B C D
A1 B1 C1 D1
• CÎA N
• (A,B)ÎC Y(unik)
A1 B2 C1 D2 A2 B2 C2 D2 A2 B3 C2 D3
• (A,B)ÎB Y(unik)
• A → B, ?
A2 B3 C2 D3 A3 B3 C2 D4
• A → D, ?
• B → D, ? → ,
• AB → D, ?
Closure Set of FD Closure Set of FD
ib ik b f di hi l h d
Diberikan F berupa set of FD dipenuhi oleh R, dan X, Y, K mrp subset dari R.
• F (logically) implies X → Y if setiap R memenuhi (semua FD dalam) F, R juga memenuhi X → Y.
• Closure F, dinotasikan F+, adalah set dari FD yang diimplikasikan oleh F, dengan demikian F+ = {X → Y | F implies X → Y}.
• Dengan kata lain bahwa Jika R memenuhi F, maka g ,
F+ merupakan set semua ALL FD yang dipenuhi
oleh R.
F+: Contoh F+: Contoh
F {AB → C C → B} t d i FD di hi R(A B
• F = {AB → C, C → B} set dari FD yang dipenuhi R(A, B, C).
F+ = {A → φ A → A AB → φ AB → A AB → B F+ = {A → φ, A → A, AB → φ, AB → A, AB → B,
AB → C, AB → AB, AB → AC, AB → BC, AB →ABC, AC → φ, AC → A, AC → B, AB →ABC, AC → φ, AC → A, AC → B, AC → C, AC →AB, AC → AC, AC → BC,
AC → ABC, ABC → φ,ABC → A, ABC → B, → , → φ, → , → , ABC → C, ABC → AB, ABC→ AC, ABC → BC, ABC → ABC, B → φ, B → B,BC → φ, , φ, , φ,
BC → B, BC → C, BC → BC, C → φ,
C →B, C → C, C → BC, φ → φ }
Contoh Contoh
F
AB → C AB → C
AB → BCD
A → D AB → BD AB → BCDE AB → CDE
union
aug trans
decomp
D → E BCD aug → BCDE
• Jadi AB Jadi, AB → → BD AB BD, AB → → BCD AB BCD, AB → → BCDE dan AB BCDE, dan AB
→ CDE adalah semua elemen dari F +
Candidate Key & Trivial FD Candidate Key & Trivial FD
• F adalah set of FD yg dipenuhi R, dan K R. K adalah candidate key dari R JIKA, y ,
– K → R berada dalam F+ (F implies K → R); and,
Tidak ada X K sdmk rupa shg X → R juga berada – Tidak ada X K, sdmk rupa shg X → R juga berada
dalam F+ (minimality).
l k
• Suatu trivial FD X → Y, jika Y X.
– contoh: AB → B, A → φ, φ → φ.
Penurunan FD dg Amstrong’s Rules
R fl i
• Reflexive
– Jika y⊆x maka xÎy
• Augmentation
jika xÎy
Augmentation (x,z)Î(y,z) Jika (z,y)Îw
Augmentation
– Jika xÎy maka (x,z)Î(y,z)
• Transitive
( ,y)
Transitive zÎw dan yÎw (x,z)Îw
– Jika xÎy dan yÎz maka xÎz
• Decomposition
Jika xÎ(y z) maka xÎy dan xÎz – Jika xÎ(y,z) maka xÎy dan xÎz
• Union
– Jika xÎy dan xÎz maka xÎ(y,z)
• Psuedotransitive
– Jika xÎy dan (z,y)Îw maka (x,z)Îw
FD Diagram dan List FD Diagram dan List
StdSSN StdClass OfferNo OffYear EnrGrade CourseNo CrsDesc StdSSN StdClass OfferNo OffYear EnrGrade CourseNo CrsDesc S1 JUN O1 2006 3.5 C1 DB S1 JUN O2 2006 3.3 C2 VB S2 JUN O3 2006 3 1 C3 OO
S2 JUN O3 2006 3.1 C3 OO
S2 JUN O2 2006 3.4 C2 VB
Diagram Diagram
StdSSN StdCity StdClass OfferNo OffTerm OffYear CourseNo CrsDesc EnrGrade
StdSSN → StdCity, StdClass
OfferNo → OffTerm, OffYear, CourseNo, CrsDesc LIST
CourseNo → CrsDesc
StdSSN, OfferNo → EnrGrade
Fungsional Dependensi Sepenuhnya Fungsional Dependensi Sepenuhnya
S t t ib t Y i d d i
• Suatu atribut Y mempunyai dependensi
fungsional sepenuhnya terhadap atribut X, JIKA :
Y mempunyai FD thd X dan – Y mempunyai FD thd X, dan
– Y tidak memiliki dependensi thd bagian dari X – Contoh : Contoh :
Cust(kode,nama,kota,faks) maka tdpt :
• {kode,kota}Îfaks
• Kode Î faks
• Irreducible dependen (dependensi yang tak dapat
di b i) f ll f i l d d f ll
di bagi) atau full functional dependen atau fully
dependen
Dependensi Total Dependensi Total
• Suatu atribut Y mempunyai dependensi total terhadap X, JIKA : p ,
– Y memiliki FD thd X, dan X mempunyai FD thd Y – X mempunyai FD thd Y
• Notasi XÍÎ Y
Kode Nama Kota
Kode Nama Kota
K1 Kartika Jakarta
C1 Candra Bandung
C2 Manda Jakarta
Kode ÍÎ Nama
Dependensi Transitif Dependensi Transitif
• Atribut Z mempunyai dependensi transitif Atribut Z mempunyai dependensi transitif terhadap X bila :
l k hd – Y memiliki FD thd X – Z memiliki FD thd Y
• Notasi XÎZÎY
Kuliah Ruang Tempat Waktu
Jarkom D.4.1 Gedung D Senin‐1
SBD D 4 3 G d D S l 2
Kuliah Î{ruang, waktu}
R Ît t
SBD D.4.3 Gedung D Selasa‐2
Kalkulu s 1 D.4.5 Gedung E Rabu‐2 Sistem Pakar D.4.10 Gedung E Selasa‐1
RuangÎtempat
Kuliah Î ruang Î tempat
g
FD dalam Data FD dalam Data
StdSSN StdClass OfferNo OffYear EnrGrade CourseNo CrsDesc S1 JUN O1 2006 3 5 C1 DB
S1 JUN O1 2006 3.5 C1 DB
S1 JUN O2 2006 3.3 C2 VB S2 JUN O3 2006 3.1 C3 OO S2 JUN O2 2006 3 4 C2 VB
• Buktikan bahwa tidak ada FD dengan melihat data
S2 JUN O2 2006 3.4 C2 VB
• 2 baris yang punya nilai sama pada X tetapi berbeda pada nilai Y
Jawab dengan Lihat Data:
Jawab dengan Lihat Data:
‐ Berguna pd saat menjelaskan pada user
‐ Ada tool yang otomatis dapat menghilangkan FD pada baris data diatas Contoh:
• OfferNo ‐> StdSSN: baris kontradiksi ( 2, 4) (OfferNo sama tetapi StdSSN berbeda)
• StdSSN ‐> OfferNo: baris kontradiksi (<1,2>, <3,4>)
• StdSSN ‐> OffYear: data tidak memiliki kontradiksi
• StdSSN ‐> OffYear: data tidak memiliki kontradiksi
• tambahkan baris utk proof. kontradiksi (enroll S1 pada offering year = 2001)
Identifikasi FD Identifikasi FD
• Easy identification (Mudah)
– Adanya keunikan y
– PK dan CK dihasilkan dari konversi ERD 1 M relationship: FD dari child ke parent – 1‐M relationship: FD dari child ke parent
• Difficult identification (Sulit)
– LHS bukan PK atau CK dalam tabel yang dikonversi – LHS mrpk bagian dari kombinasi PK atau CK LHS mrpk bagian dari kombinasi PK atau CK
• Buat minimalitas pada LHS (Left Hand Side)
Key dan FD Key dan FD
• Rule 1
– FD memuat atribut dimana LHS‐nya adalah SK y – R(W,X,Y,Z);FD=XYÎWZ, jadi XY adalah SK
Bukti : – Bukti :
• XYÎWZ
XYÎXY ( fl ti )
• XYÎXY (reflextive)
• XYÎXYWZ (union) XYÎR
• XYÎR
• Karena XYÎR, maka XY=SK
Key dan FD lanj Key dan FD lanj.
• Rule 2
– Atribut secara fungsional menentukan SK tabel, g , jadi atribut tsb adalah SK
– R(W X Y Z); FD=ZÎW jadi Z=SK R(W,X,Y,Z); FD=ZÎW, jadi Z=SK – Bukti
ZÎW
• ZÎW
• WÎWXZY (sebab W = SK), maka
Î ( i if)
• ZÎWXYZ (transitif)
• ZÎR maka Z adalah SK
Trick Trick
• If an attribute never appears on the RHS of any FD, it must be part of the key y , p f y
• If an attribute never appears on the LHS of any
FD but appears on the RHS of any FD it must
FD, but appears on the RHS of any FD, it must
not be part of any key
Contoh Lain Contoh Lain
( ) ( ) d (( )Î )??
• R(ABCD), (A,B)= SK dari R ((A,B)ÎR)??
• Karena tupel t p i i [A,B], 1≤i≤5, adalah unik [ , ], ,
– t 1 [A,B]=(A1,B1) – t 2 [A,B]=(A1,B2)
A B C D
A1 B1 C1 D1
t 2 [A,B] (A1,B2) – t 3 [A,B]=(A2,B2) t [A B]=(A2 B3)
A1 B2 C1 D2 A2 B2 C2 D2 A2 B3 C2 D3
– t 4 [A,B]=(A2,B3) – t 5 [A,B]=(A3,B3)
k ( ) Î ( C ) ( ) Î
A2 B3 C2 D3 A3 B3 C2 D4
• Maka (A,B) Î (A,B,C,D) atau (A,B) Î R,
sehingga (A,B) Î R
Contoh Lain Contoh Lain
S (A B C D E F) FD AÎBC BÎD CÎEF BFÎA
• S=(A,B,C,D,E,F); FD=AÎBC; BÎD; CÎEF; BFÎA
• Temukan SK dan CK dari S dengan FD ?
– AÎBC dekomposisi menjadi AÎB dan AÎC
Î Î Î
Karena AÎB dan BÎD, maka AÎD Karena AÎC dan CÎEF maka AÎEF, – AÎA, sehingga AÎA,B,C,D,E,F
b b
Jadi AÎS superkey
– BÎD, maka BCÎD,C (Aug) – CÎEF, maka BCÎBEF (Aug)
• Jadi A,BC, BF dan gabungan atribut yang mengandung A,BC dan BF
merupakan Superkey
C did t K d i S d l h A BC
Jadi BCÎB,C,D,E,F (Union)
– BCÎA,B,C,D,E,F dan B,CÎA, maka BÎA,B,C,D,E,F Jadi BCÎS merupakan Superkey
• Candidate Key dari S adalah A,BC, dan BF
– BFÎA dan AÎA,B,C,D,E,F maka BFÎA,B,C,D,E,F
Jadi BFÎS
Dekomposisi Dekomposisi
• Lossy (ada informasi yang hilang pada saat terjadi dekomposisi)
• Lossless (tidak ada informasi yang hilang pada saat terjadi dekomposisi)
saat terjadi dekomposisi)
• Manfaat FD pada dekomposisi:
l
– Lossless Join Decomposition – No Redundancy
– Dependecy Preservation (Terjaminya pemeliharaan
ketergantungan, utk mengatasi update Anomali)
Konsep Lossles join Decomposition Konsep Lossles‐join Decomposition
• R{R1,R2,R3…..,Rn} merupakan Lossless‐join Decomposition Jika :
– R1∩R2 ∩ R3 ∩ … ∩ Rn Î Ri, untuk 1≤ i ≤n
• Jika R didekomposisi menjadi {R1 R2} maka Jika R didekomposisi menjadi {R1,R2} maka disebut Lossless join decomposition jika :
R1∩R2ÎR1 atau R1∩R2 ÎR2 – R1∩R2ÎR1 atau R1∩R2 ÎR2
• Lossless Join decomposition didapatkan dengan :
– Uji Dekomposisi : R1∪R2∪R3 ∪ … ∪ Rn Î R
– Uji Lossless join : FD
Contoh Lossless join Decomposition Contoh Lossless join Decomposition
( ) d k d
• R(A,B,C,D,E ,F,G), dekomposisi menjadi
R1(A,B,C,D,G) dan R2(B,D,E,F,H) sedang FD‐nya adalah :
– (1)BÎA,G ;(2) EÎD,H ; (3)AÎ E,C ; (4)DÎF – Apakah R1 dan R2 Lossless atau Lossy ?
• Uji Dekomposisi Uji Dekomposisi
– R1∪R2 =(A,B,C,D,G)∪(B,D,E,F,H)
=(A B C D E F G H)
=(A,B,C,D,E,F,G,H)
=R , YES !
Contoh Lossless join Decomposition Contoh Lossless join Decomposition
Uji L l d FD
• Uji Lossless dengan FD
– R1∩R2=(A,B,C,D,G) ∩ (B,D,E,F,H)=(B,D) – R1∩R2ÎR1 atau R1∩R2ÎR2
• (B,D)Î(A,B,C,D,G) atau (B,D)Î(B,D,E,F,H)
• (B,D)Î(A,B,C,D,G)
– (1) BÎ(A,G) dari (8) BÎA
• (5) B,DÎA,G,D (Aug) dan
• (6) B,DÎB,D (Refl) shg
• (7) B,DÎA,B,D,G (union)
(1) BÎA G j di
dan (11) AÎC
maka (12) BÎC (transitif) dan (13) B,DÎC,D (Aug)
– (1) BÎA,G menjadi
• (8) BÎA dekomposisi
• (9) BÎG
(3) AÎE C j di
Dari (7) dan (13) union
didapat B DÎA B C D G YES
– (3) AÎE,C menjadi
• (10) AÎE dekomposisi
• (11) AÎC
didapat B,DÎA,B,C,D,G
Kerjakan untuk (B,D)Î(B,D,E,F,H)
FD= (1)BÎA,G ;(2) EÎD,H ; (3)AÎ E,C ; (4)DÎF
Dekomposisi Tak Hilang (data) Dekomposisi Tak Hilang (data)
• Terjadi pemecahan satu relasi menjadi 2 atau lebih (dekomposisi)
D k i i t k hil tid k d i f i hil k tik
• Dekomposisi tak hilang : tidak ada informasi yang hilang ketika relasi di pecah menjadi relasi‐relasi lain
NIM Nama
95001 Budi 95002 Edi
NIM Progdi
95001 TI
95002 MI
Dekomposisi Tak Hilang
NIM Nama Progdi 95001 Budi TI
95002 Edi 95003 Budi
95002 MI
95003 TI
95002 Edi MI 95003 Budi TI
NIM Nama
95001 Budi 95002 Edi
Nama Progdi
Budi TI
Edi MI
95002 Edi 95003 Budi
Edi MI
Budi TI
Dekomposisi Hilang
Closure dari F (F + ) Closure dari F (F )
• Jika F himpunan FD dari relasi R, maka semua FD yang mungkin diturunkan dari F dengan hukum‐hukum FD disebut Closure dari F (ditulis F + )
disebut Closure dari F (ditulis F + ).
• Jika R=(A,B,C,D), F={AÎB, BÎC,AÎC,CÎD}, maka, AÎD b b AÎC d CÎD ( i if)
– AÎD, sebab AÎC dan CÎD (transitif) – BÎD, sebab BÎC dan CÎD (transitif)
– Sehingga {AÎB, BÎC,AÎC,CÎD,AÎD, BÎD} ⊆ F +
• F + berguna pada Uji Dependency Preservation
Menghitung Closure dari set FD Menghitung Closure dari set FD
• Mulai F+ dengan yang diberikan dari set of FD, Ulangi terus dengan memakai g g
Reflexivity,Augmentation,Transitivity, tambahkan turunannya (FD baru) ke F+
tambahkan turunannya (FD baru) ke F+, hingga tidak ada FD baru yang dapat
diturunkan
diturunkan.
contoh contoh
k ik { → } | { → → }
• Buktikan: { X → YZ } |= { X → Y, X → Z } yang memenuhi R(XYZ)
• bukti: xÎ YZ (1) ; xÎy (2) dan xÎz (3)
• Fd1 (xÎy) ( y)
– (Ref), kita punya YZ → Y (4) dan YZ → Z (5)
• Ingat FD trivial xÆy jika y subset x
– dengan X → YZ (1), YZ → Y (4) dan dengan trans menjadi X → Y (2);
• Fd2 (xÎz) sama, X → YZ (1), YZ → Z (5) secara
trans menjadi X → Z (3).
Closure of Attributes X + Closure of Attributes X
Q A k h t F d i FD b i lik i d X → Y?
Q: Apakah set F dari FD berimplikasi pada X → Y?
• Method 1: Hitung F+ & test jika X → Y maka berada dalam F+
berada dalam F+.
– Problem: F+ susah di hitung !
• Method 2: Hitung closure X di dalam F yang
• Method 2: Hitung closure X di dalam F., yang mana merupakan set attribute yang secara
fungsional ditentukan oleh X dalam F atau fungsional ditentukan oleh X dalam F, atau
X+ = { A | X → A F+ }
Theorem: X → Y F+ jika dan hanya jika Y X+
Theorem: X → Y F+ jika dan hanya jika Y X+.
Bukti: Use Dekom & Union.
Menghitung Closure Atribut X + Menghitung Closure Atribut X
Al ith k X +
Algorithm menemukan X +
Input: F: set FD yang dipenuhi R X: set atribut dari R
X: set atribut dari R Output: X + (= xplus).
Method:
Method:
xplus := X;
while xplus berubah do while xplus berubah do
for tiap FD Y → Z dalam F do
if Y xplus then xplus := xplus Z;
if Y xplus then xplus : xplus Z;
return xplus
Contoh Contoh
R (A B C D E F) R=(A,B,C,D,E,F)
• F: AB → C, BC → AD, D → E, CE → B Hit {A B} + ?
• Hitung {A,B} + ? 1 X {A B}
1. X={A,B}
2. Tambah C ke X (dari AB→ C); X={A,B,C}
3 T b h A D k X (d i BC AD X {A B C D}
3. Tambah A,D ke X (dari BC → AD; X={A,B,C,D}
4. Tambah E ke X (dari D → E); X={A,B,C,D,E}
5 Tid k d l i t ib t d t di t b hk k X
5. Tidak ada lagi atribut yang dapat di tambahkan ke X
6. {A,B} + = {A,B,C,D,E}
Contoh Contoh
Compute (AG) + dalam {A → B, CG → HI, B →H, A → C}
B →H, A → C}
Init: xplus := AG;
iterasi1: XPlus FD Xplus Baru
AG AÎB ABG
ABG CGÎHI ABG
ABG BÎH ABGH
ABGH AÎC ABCGH
ABGH AÎC ABCGH
Xplus berubah maka, ulangi loop.
Lanjutan Lanjutan
l l
• Iterasi 2 XPlus FD Xplus Baru
ABCGH AÎB ABCGH
ABCGH CGÎHI ABCGHI
ABCGH CGÎHI ABCGHI
ABCGHI BÎH ABCGHI
ABCGHI AÎC ABCGHI
• Iterasi 3 Iterasi 3 XPlus FD Xplus Baru
ABCGHI AÎB ABCGHI
ABCGHI CGÎHI ABCGHI
ABCGHI BÎH ABCGHI
ABCGHI AÎC ABCGHI
(AG)+ = ABCGHI
Check Candidate Key Check Candidate Key
ib ik hi d i d
Diberikan R yang memenuhi set F dari FD dan K R.
Apakah K suatu candidate key?
Kita tahu bahwa K adalah candidate key JIKA
– R memenuhi K → R; dengan dmk K + =R dalam F, dan – Untuk setiap subset X dari K, X + ≠ R.
Dalam contoh tadi, karena ,
– (AG)+ = ABCGHI = R, dan – A+ = ABCH ≠ R, G+ = G ≠ R, , ,
AG adalah candidate key dari R(ABCGHI) dibawah F
Contoh lagi Contoh lagi
Hitung closure attribute dari AB (AB + ) Dengan FD :
AB → C (a) A → D (b)
D → E (c) AC → B (d)
Initi closure = {AB}
dengan(a) closure = {ABC}
dengan(b) closure = {ABCD}
Solusi
dengan(b) closure = {ABCD}
dengan(c) closure = {ABCDE}
B bagian (d) tetap di hitung tetapi karena Closure tidak berubah,
B bagian (d) tetap di hitung tetapi karena Closure tidak berubah,
ABCDE U B=ABCDE, dan AB adalah CK dari R(ABCDE)
• R(A, B, C, D, E, F) dan S:
A → BC E → CF B → E B → E CD → EF
Hitung closure {A B} + dari set {A B} pada S
Hitung closure {A, B} + dari set {A, B} pada S.
Contoh Lagi Contoh Lagi
• R( A, B, C, D, E )
F={AB→C,BC→AD,D→E,CF→B}, Hitung { → , → , → , → }, g Closure {A, B} + dari {A, B} di bawah S.
① ①{A,B} {A,B} + + = {A,B} = {A,B}
②
② AB→C AB→C {A,B} {A,B} + + = {A,B,C} = {A,B,C}
③
③ BC→AD BC→AD {A,B} {A,B} { , } { , } + + = {A,B,C,D} = {A,B,C,D} { , , , } { , , , }
④
④ D→E D→E {A,B} {A,B} + + = {A,B,C,D,E} = {A,B,C,D,E}
⑤ ⑤ {{A,B A,B}} + + == {A,B,C,D,E} {A,B,C,D,E}
⑤ ⑤ {{A,B A,B}} {A,B,C,D,E} {A,B,C,D,E}
Contoh lagi Contoh lagi
• R = {A, B, C, D, E}
• F = { B →CD, D → E, B → A, E → C, AD →B }
• Is AD a key for R?
AD + = AD
{ , , , , }
• Is B → E in F + ? B + = B
AD + = ABD dan B = key Yes!
• Is AD a candidate key B + = BCD
B + = BCDA
! for R? d
A + = A
B + = BCDAE … Yes! dan B = key bagi R !
• Is D a key for R?
… A not a key, so Yes!
• Is ADE a candidate key
Is D a key for R?
D + = D D + = DE
for R?
… No! AD is a key, so ADE is a
k b t t d k
D + = DEC
… bukan!
superkey, but not a cand. key
Dependency Preservation (DP) Dependency Preservation (DP)
d l h k l d d
• R adalah skema relasi, dimana R di
dekomposisi menjadi R1,R2,R3,…,Rn dan F1,F2,F3,…,Fn adalah himpunan FD yang
berlaku untuk R, maka dekomposisi tersbut dikatakan memenuhi DP jika :
– (F1∪F2 ∪F3∪… ∪Fn) + =F +
• DP merupakan kriteria penjamin keutuhan
relasi, ketika suatu relasi di dekomposisi, jadi
relasi, ketika suatu relasi di dekomposisi, jadi
dapat menghindari anomali dan inkonsistensi
Dependecy Preservation Contoh Dependecy Preservation Contoh
• R=(A,B,C) dan FD:AÎB, BÎC didekomposisikan menjadi R1=(A,B) dan R2=(B,C)
– Lossles join decomposition ??
– Dependency Preservation ?? p y
• R1∪R2=(A,B)∪(B,C)=(A,B,C)=R (dekomposisi) R1 R2 (A B) (B C) (B)
• R1∩R2=(A,B)∩(B,C)=(B)
– Jika BÎ(A,B) atau BÎ(B,C) maka lossless karenaBÎC maka BBÎBC atau BÎC (Aug)
– Jadi dekomposisi‐nya lossless join
Dependecy Preservation lanj Dependecy Preservation lanj.
( ) { Î Î }
• R=(A,B,C), FD={AÎB,BÎC}
– Karena AÎB dan BÎC maka AÎC, sehingga – F + ={AÎB,BÎC, AÎC}
– R1=(A,B), F1={AÎB}, krn hanya AÎB yg berlaku pada R1
R1
– R2=(B,C), F2={BÎC}, krn hanya BÎC yg berlaku pada R2
R2
– F1∪F2={AÎB, BÎC}, krn AÎB dan BÎC maka AÎC S hi (F1∪F2) + {AÎB BÎC AÎC} F +
– Sehingga (F1∪F2) + ={AÎB, BÎC,AÎC}=F +
– Jadi memenuhi DP
Relationships of Normal Forms Relationships of Normal Forms
1NF 2NF 2NF 3NF/BCNF
4NF 5NF DKNF
1NF ti t bl b d d 1NF 1NF: tip table berada pada 1NF
2NF: tiap tabel dalam 2NF juga dalam 1NF 3NF/BCNF: BCNF adalah edisi revisi dari 3NF,
4NF: Mengurangi penggunaan M‐way relationship;Relationship independence and MVDs; does not involve FDs 5NF tidak melibatkan FD Inappropriate sage of an M a relationship more speciali ed than 4NF
5NF: tidak melibatkan FD; Inappropriate usage of an M‐way relationship; more specialized than 4NF
DKNF: bentuk ideal secara teori
Dalam membuat basis data, kita pasti ingin basis data yang kita punya tidak ruwet dan mudah dalam memodifikasi data. Sehingga kita sebagai database administrator menjadi lebih mudah dalam mengelola basis data tersebut. Untuk mencapai hal tersebut maka kita perlu untuk mempelajari yang namanya Dependensi dan Normalisasi dalam Basis Data.
Normalisasi
Normalisasi merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan ke dalam struktur record.
Normalisasi juga merupakan proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
Banyak dari kita pasti berpikir, kenapa harus dilakukan normalisasi? Berikut adalah alasannya.
Optimalisasi struktur-struktur tabel
Meningkatkan kecepatan akses
Menghilangkan pemasukan data yang sama
Mengurangi redundansi
Lebih efisien dalam penggunaan media penyimpanan
Menghindari anomali
Integritas data meningkat
Ada beberapa bentuk normalisasi, yaitu:
First Normal Form (1NF)
Second Normal Form (2NF)
Third Normal Form (3NF)
Boyce-codd Normal Form (BCNF)
Four Normal Form (4NF)
Five Normal Form (5NF)
Langkah-Langkah Normalisasi
Langkah-langkah normalisasi data
1NF - Bentuk Normal Pertama
Pada bentuk normal pertama, setiap perpotongan baris dan kolom hanya memiliki satu nilai. Bentuk normal pertama juga tidak memperkenankan adanya atribut bernilai banyak dan atribut komposit.
Contoh:
Bentuk Tidak Normal (UNF)
Bentuk Normal Pertama (1NF)
2NF - Bentuk Normal Kedua
Bentuk normal 2NF terpenuhi jika sudah memenuhi bentuk normal 1NF dan semua atribut selain primary key secara utuh memiliki dependensi feungsional terhadap primary key. Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya hanya bersifat parsial saja. Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah
atau dihilangkan.
Contoh:
Bentuk Normal 1NF
{No_peg, No_klien} ⇒ {Nama_peg, Nama_klien}
Bentuk Normal 2NF
3NF - Bentuk Normal Ketiga
Bentuk normal ketiga akan terpenuhi jika sudah memenuhi bentuk 2NF dan tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lain (ketergantungan transitif).
Contoh:
Tabel Mahasiswa (2NF)
NIM ⇒ {NamaMhs, Jalan, Kota, Provinsi, KodePos}
KodePos ⇒ {Kota, Provinsi}
Diubah menjadi:
NIM ⇒ {NamaMhs, Jalan, KodePos}
KodePos ⇒ {Provinsi, Kota}
Tabel KodePos Tabel Mahasiswa
BCNF - Boyce-Codd Normal Form
Bentuk BCNF dapat terpenuhi apabila setiap dependensi fungsional A ⇒ B memiliki kondisi bahwa A merupakan superkey dari tabel bersangkutan. Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga B menjadi super key dari tabel-tabel hasil dekomposisi.
Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF.
Perbedaannya, untuk functional dependency A ⇒ B, BCNF tidak membolehkan B sebagai bagian dari primary key.
4NF - Bentuk Normal Keempat
Bentuk normal 4NF terpenuhi dalam sebuah tabel jika tabel tersebut telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute. Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies.
Contoh:
Tabel yang belum memenuhi 4NF
Setiap employee dapat bekerja di lebih dari project dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi:
(Employee, Project)
(Employee, Skill)
Tabel (Employee, Project) Tabel (Employee, Skill)
5NF - Bentuk Normal Kelima
Bentuk normal 5NF terpenuhi jika dia tidak dapat mempunyai dekomposisi lossless menjadi sejumlah tabel lebih kecil. Empat bentuk normal pertama berdasarkan pada konsep ketergantungan fungsional, sedangkan bentuk normal kelima berdasarkan pada konsep ketergantungan gabungan (join dependence). Ketergantungan gabungan berarti bahwa sebuah tabel, setelah didekomposisi menjadi tiga atau lebih tabel yang lebih kecil, harus dapat digabungkan kembali untuk membentuk tabel asal.
Dengan kata lain, 5NF menunjukkan ketika sebuah tabel tidak dapat didekomposisi lagi
Dalam membuat basis data, kita pasti ingin basis data yang kita punya tidak ruwet dan mudah dalam memodifikasi data. Sehingga kita sebagai database administrator menjadi lebih mudah dalam mengelola basis data tersebut. Untuk mencapai hal tersebut maka kita perlu untuk mempelajari yang namanya Dependensi dan Normalisasi dalam Basis Data.
Dependensi
Ada empat macam dependensi, yaitu:
1. Dependensi Fungsional 2. Dependensi Fungsional Penuh 3. Dependensi Fungsional Parsial 4. Dependensi Fungsional Transitif
Dependensi Fungsional
Dependensi fungsional menggambarkan relasi / hubungan, batasan, dan keterkaitan antara atribut-atribut dalam suatu relasi. Suatu atribut dikatakan bergantung pada atribut lain secara fungsional jika kita
menggunakan harga atribut yang lain.
Notasi dependensi fungsional yaitu A ⇒ B (A secara fungsional menentukan B)
Artinya bahwa A secara fungsional menentukan B atau B bergantung pada A. Jika ada dua baris data dengan nilai A yang sama, maka nilai B juga sama.
Atribut B bergantung pada atribut A
Contoh:
Tabel Nilai
Berikut adalah dependensi yang ada dalam tabel nilai:
NIM ⇒ NamaMhs
Karena untuk setiap nilai NIM yang sama, maka NamaMhs juga sama
{MataKuliah,NIM} ⇒ NilaiHuruf
Karena atribut NilaiHuruf tergantung pada MataKuliah dan NIM secara bersama-sama. Dalam arti lain MataKuliah dan NIM yang sama, maka NilaiHuruf juga sama, karena MataKuliah dan NIM merupakan key (bersifat unik).
Dependensi Penuh
Dependensi penuh menunjukkan jika terdapat atribut A dan B dalam suatu relasi, dimana:
B memiliki dependensi fungsional secara penuh pada A
B bukan memiliki dependensi terhadap subset A
Contoh:
{NIM, Nama} ⇒ idRuang bukan Dependensi Penuh jika nama dihilangkan, maka NIM ⇒ idRuang bisa menjadi Dependensi Penuh.
Dependensi Parsial
Dependensi Parsial merupakan ketergantungan fungsional dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap dipertahankan.
B memiliki dependensi terhadap subset A
Contoh:
{NIM, Nama} ⇒ idRuang dimana jika nama dihilangkan maka ketergantungan tetap ada
Dependensi Transitif
Transitif Dependensi adalah kondisi dimana A, B, C merupakan atribut sebuah relasi dimana A ⇒ B dan B ⇒ C.
Maka C dikatakan dependensi transitif terhadap A melalui B.
Contoh:
NIP ⇒ {Nama, Jabatan, Gaji, kdCabang, almCabang}
kdCabang ⇒ almCabang
DESAIN DATABASE
(MODEL RELASIONAL DAN DESKRIPSI ATRIBUT)
4.1. Tujuan desain database.
Basis data (database) merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di simpanan luar
komputer dan digunakan perangkat lunak tertentu untuk memanipulasinya.
Database merupakan salah satu komponen yang penting di sistem
informasi, karena berfungsi sebagai basis penyedia informasi bagi para pemakainya. Penerapa database dalam sistem informasi disebut dengan database system. Sistem basis data (database system) ini adalah suatu sistem informasi yang mengintegrasikan kumpulan dari data yang saling berhubungan satu dengan lainnya dan membuatnya tersedia untuk beberapa aplikasi yang bermacam-macam di dalam suatu organisasi.
Tujuan dari desain database adalah untuk menentukan data-data yang dibutuhkan dalam sistem, sehingga informasi yang dihasilkan dapat
terpenuhi dengan baik. Terdapat beberapa alasan mengapa desain database perlu untuk dilakukan, salah satu adalah untuk menghindari pengulangan data.
Adapun metode untuk meminimasi pengulangan data (data redudancy) antara lain dengan :
a. Normalisasi.
b. Dekomposisi lossless.
Diperlukan jika ada indikasi bahwa tabel yang kita buat tidak baik (terjadi pengulangan informasi, potensi inkonsistensi data pada
operasi pengubahan, tersembunyinya informasi tertentu) dan
diperlukan supaya jika tabel-tabel yang didekomposisi kita gabungkan kembali dapat menghasilkan tabel awal sebelum didekomposisi,
sehingga diperoleh tabel yang baik.
c. ERD (Entity Relationship Diagram).
d. Menentukan kardinalitas relasi.
Terdapat beberapa pengertian tentang key sehubungan dengan normalisasi dan ERD, antara lain :
a. Superkey adalah gugus dari sejumlah atribut entiti yang dapat digunakan untuk mengidentifikasi obyek secara unik.
b. Candidate key adalah superkey dengan jumlah atribut minimal dan dapat berdiri sendiri.
c. Primary key adalah superkey yang dipilih oleh desainer atau administrator basis data.
4.2. Normalisasi.
Adalah proses yang berkaitan dengan model data relational untuk
mengorganisasi himpunan data dengan ketergantungan dan keterkaitan yang tinggi atau erat. Hasil dari proses normalisasi adalah himpunan-
himpunan
data dalam bentuk normal (normal form). Ada beberapa bentuk normal, yaitu :
a. Bentuk Normal I (First Normal Form / 1-NF).
b. Bentuk Normal II (Second Normal Form / 2-NF).
c. Bentuk Normal III (Third Normal Form / 3-NF).
d. Bentuk Normal IV (Fourth Normal Form / 4-NF).
e. Bentuk Normal Boyce-Codd (Boyce-Codd Normal Form / BCNF).
f. Project-Join Normal I Form (PJNF).
g. Domain-Key Normal I Form (DKNF).
h. Bentuk Normal V (Fifth Normal Form / 5-NF).
Kegunaan normalisasi :
a. Meminimasi pengulangan informasi.
b. Memudahkan indentifikasi entiti / obyek.
4.3. Bentuk Normal I (First Normal Form / 1-NF).
Suatu relasi memenuhi 1-NF jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dalam satu baris atau record.
Tabel 4.1 : Bentuk tidak Unnormalized Form (Non 1-NF table)
Tabel 4.2 : Bentuk 1-NF table
4.4. Bentuk Normal II (Second Normal Form / 2-NF).
Suatu relasi memenuhi 2-NF jika dan hanya jika : a. Memenuhi 1-NF.
b. Setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap semua atribut kunci dan bukan hanya sebagian atribut.
Jika suatu relasi memenuhi 1-NF dan relasi tersebut memiliki tepat satu atribut yang membentuk kunci utama, maka relasi tersebut memenuhi 2-NF.
Rasionalisasi 2-NF :
a. Memiliki semantik yang lebih eksplisit dari 1-NF.
b. Mencegah beberapa kondisi anomali dalam update data.
Tabel 4.3 : Bentuk 2-NF table (satisfying 1-NF).
Ketergantungan fungsional dilakukan untuk : a. StudentID => Student, BirthDate (SC1).
b. CourseID => Course, Credit (SC2).
c. StudentID, CourseID => Grade (SC3, SC3A).
d. Grade => Weight (SC3B).
Tabel 4.4 : Tabel yang memenuhi 2-NF.
Tabel 4.5 : Tabel yang memenuhi 3-NF.
Akhirnya semua tabel SC1, SC2, SC3A, SC3B berada dalam kondisi 3-NF, sehingga semua databases mengalami kondisi 3-NF.
4.5. Bentuk Normal III (Third Normal Form / 1-NF).
Suatu relasi memenuhi bentuk III (3-NF) jika dan hanya jika : a. Relasi tersebut memenuhi 2-NF.
b. Setiap atribut bukan kunci tidak tergantung secara fungsional kepada atribut bukan kunci yang lain dalam relasi tersebut.
Suatu relasi yang memenuhi 2-Nf dan hanya memiliki satu atribut bukan kunci
selalu memenuhi 3-NF.
4.6. Bentuk Normal Boyce-Codd (Boyce-Codd Normal Form / BCNF).
Suatu relasi memenuhi BCNF jika dan hanya jika setiap determinan yang ada
pada relasi tersebut adalah kunci kandidat (candidate keys).
Determinan adalah gugus atribut dimanaa satu atau lebih atribut lain tergantung secara fungsional.
4.7. Model Hubungan atau Relasi Entiti (Entity Realtionship (E-R) Model).
Model relasi entiti didasarkan pada persepsi dunia nyata yang terdiri dari himpunan obyek dasar yang disebut entiti dan relasi antar entiti.
Entiti adalah obyek yang dapat diidentifikasi secara unik.
Entiti dikarakterisasi dan dipresentasikan dengan suatu gugus atribut.
Contoh gugus atribut dari entiti PEKERJA adalah nama, tanggal lahir, NIP, golongan/pangkat.
Sekelompok entiti yang memiliki karakterisasi entiti disebut gugus entiti (entity set).
Setiap entiti dari gugus tersebut disebut anggota gugus (member of set).
Contoh gugus entiti adalah gugus entiti pegawai bank, gugus entiti nasabah bank. Dari beberapa gugus tadi mungkin terjadi suatu relasi, misalnya relasi antara gugus bank dengan gugus nasabah bank.
Berdasarkan jumlah gugus yang terlibat maka relasi antar entiti dibedakan menjadi :
a. Relasi biner (binary), yaitu relasi antar 2 gugus entiti.
b. Relasi trio (ternary), yaitu relasi antar 3 gugus entiti.
c. Relasi N-ary, yaitu relasi antar n gugus entiti.
Khusus untuk relasi biner maka relasi antar anggota dari dua gugus yang terlibat (kardinalitas relasi biner) dapat bersifat :
a. Relasi 1-1 (one-to-one relationship).
Adalah satu entiti anggota gugus diasosiasikan dengan tepat satu entiti anggota gugus yang lain.
b. Relasi 1-banyak (one-to-many relationship).
Adalah satu entiti anggota gugus diasosiasikan dengan satu atau lebih entiti anggota gugus yang lain. Sebaliknya satu entiti anggota gugus yang lain tersebut diasosiasikan dengan tepat satu entiti anggota gugus pasangannya.
c. Relasi banyak-1 (many-to-one relationship).
Adalah satu entiti anggota gugus diasosiasikan dengan satu atau lebih entiti anggota gugus yang lain dan berlaku pula sebaliknya.
4.8. Menterjemahkan ERD ke Tabel
4.9. Tipe file.
Database dibentuk dari kumpulan file. File di dalam pemrosesan aplikasi dapat dikategorikan ke dalam beberapa tipe, diantaranya yaitu sebagai berikut :
1. File induk (master file).
Didalam aplikasi, file ini merupakan file yang penting. File ini tetap terus ada selama hidup dari sistem informasi. File induk dapat dibedakan lagi menjadi :
a. File induk acuan (reference master file), yaitu file induk yang recordnya relatif statis, jarang berubah nilainya. Contoh dari
file ini adalah file daftar gaji, file daftar matakuliah.