• Tidak ada hasil yang ditemukan

MANAJEMEN BASIS DATA Database Management System. STMIK SWADHARMA by Abdul Aziz Efendy, M.Kom

N/A
N/A
Protected

Academic year: 2022

Membagikan "MANAJEMEN BASIS DATA Database Management System. STMIK SWADHARMA by Abdul Aziz Efendy, M.Kom"

Copied!
113
0
0

Teks penuh

(1)

MANAJEMEN BASIS DATA

Database Management System

STMIK SWADHARMA

by Abdul Aziz Efendy, M.Kom

(2)

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.

(3)

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.

(4)

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

(5)

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.

(6)

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

(7)

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

(8)

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.

(9)

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.

(10)

by Zȉz 2018

Manajemen Basis Data

• Install SQL Server & Management Studio

• SQL Query with Script of DDL – DML

• Using SQL Management Studio

(11)

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

(12)

by Zȉz 2018

Objective: Install SQL Server

(13)

by Zȉz 2018

Objective: Install SQL Server

(14)

by Zȉz 2018

Objective: Install SQL Server

(15)

by Zȉz 2018

Objective: Install SQL Server

(16)

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”

(17)

by Zȉz 2018

Objective: Install DBMS

(SQL Management Studio)

(18)

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

(19)

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”

(20)

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

(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)

Normalisasi dan Fungsional Normalisasi dan Fungsional

Dependensi p

STMIK Swadharma STMIK Swadharma

Disebarluaskan oleh Abdul Aziz Efendy

(34)

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

(35)

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 ( )

(36)

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

(37)

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

(38)

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)

(39)

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

(40)

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

(41)

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.

(42)

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 ?

(43)

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

(44)

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

(45)

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}

(46)

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?

(47)

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

(48)

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 atributt i (α)= t j (α) , ij 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

(49)

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, ?

(50)

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.

(51)

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, φ → φ }

(52)

Contoh Contoh

F

ABC ABC

ABBCD        

AD        ABBD       ABBCDE      ABCDE

union

aug trans

decomp

DE       BCD  augBCDE

Jadi AB Jadi, AB → → BD AB BD, AB  → → BCD AB BCD, AB  → → BCDE dan AB BCDE, dan AB 

CDE adalah semua elemen dari F +

(53)

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 → φ, φ → φ.

(54)

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

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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)

(60)

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)

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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)

(67)

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

(68)

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 !

(69)

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

(70)

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

(71)

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

(72)

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.

(73)

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

(74)

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.

(75)

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

(76)

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}

(77)

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.

(78)

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

(79)

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

(80)

Contoh lagi Contoh lagi

Hitung closure attribute dari AB (AB +Dengan FD :

AB C (a)          D (b)

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)

(81)

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.

(82)

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}

(83)

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

(84)

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

(85)

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

(86)

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

(87)

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

(88)

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)

(89)

Langkah-Langkah Normalisasi

Langkah-langkah normalisasi data

(90)

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.

(91)

Contoh:

Bentuk Normal 1NF

{No_peg, No_klien} ⇒ {Nama_peg, Nama_klien}

Bentuk Normal 2NF

(92)

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

(93)

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)

(94)

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

(95)

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:

(96)

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:

(97)

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

(98)

Contoh:

 NIP ⇒ {Nama, Jabatan, Gaji, kdCabang, almCabang}

 kdCabang ⇒ almCabang

(99)

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

(100)

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.

(101)

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.

(102)

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.

(103)

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.

(104)

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.

Gambar

Tabel yang belum memenuhi 4NF
Tabel Nilai
Tabel 4.2 : Bentuk 1-NF table
Tabel 4.4 : Tabel yang memenuhi 2-NF.
+3

Referensi

Garis besar

Dokumen terkait

Kuesioner ini dibuat untuk memperoleh data dalam rangka penyusunan Tugas Akhir Program Magister TAPM yang berjudul : PENGARUH GAYA KEPEMIMPINAN TRANSFORMASIONAL TERHADAP KINERJA

Setelah terbentuknya Kaldera Rinjani, kegiatan gunungapi berpindah ke bagian dalam kaldera yaitu ke G. Kegiatan letusan di dalam kaldera dimulai dengan pembentukan

(5) Jika bagi suami-istri berlaku pasal 27 BW, pengaduan tidak diindahkan selama perkawinan belum diputuskan karena perceraian atau sebelum putusan yang menyatakan

Secara keseluruhan peran penyuluh sebagai teknisi di Desa Nagari Sarilamak Kecamatan Harau Kabupaten Lima Puluh Kota setiap indikator dapat dilihat pada Tabel 3...

Dengan demikian, dapat dikatakan bahwa telah terjadi penundukan hukum adat terhadap hukum negara, yang oleh Griffiths disebut sebagai pluralisme hukum lemah, yaitu

vitamin memberikan pengaruh nyata pada PBHH, konsumsi BK, PK dan TDN serta efisiensi pakan, sedangkan bobot badan pertama birahi tidak dipengaruhi oleh suplementasi konsentrat,

Pembekalan PPL merupakan salah satu kegiatan yang dilakukan oleh pihak LPPMP sebagai lembaga yang menangani program PPL di Universitas Negeri Yogyakarta melalui Dosen

Beberapa peserta didik yang lain juga masih belum paham pertanyaan yang diberikan guru dalam bahasa Jerman, sehingga guru memberikan petunjuk dengan memberikan kata kunci untuk