Anda di halaman 1dari 61

BASIS DATA

NORMALISASI

TIM AJAR BASIS DATA JTI-POLINEMA


TUJUAN PERKULIAHAN:
1. Memahami konsep basisdata relational
2. Memahami pentingnya normalisasi.
3. Memahami aturan normalisasi pertama (1NF).
4. Memahami aturan normalisasi kedua (2NF).
5. Memahami aturan normalisasi ketiga (3NF).

2
1. Pengantar Basisdata Relational

3
PENDAHULUAN
• Komputer mempunyai fungsi utama untuk menyimpan
dan mengelola informasi

• Perlu dilakukan tata cara mengatur informasi tersebut

• Cara yang sederhana dan memudahkan data untuk


diakses dan dikelola

• Model relasional digagas untuk mengorganisasi ke data


ke dalam banyak tabel dua dimensi yang saling berelasi

4
BASIS DATA RELATIONAL
• Merupakan model yang sederhana dan paling populer
saat ini.

• Relatif lebih mudah dipahami dan digunakan.

• Database dimodelkan sebgai sekumpulan tabel


berdimensi dua (disebut 'relasi' atau 'tabel’).

• Relasi dirancang untuk menghilangkan kemubaziran


data.

• Istilah tabel kadang digunakan untuk menggantikan


relasi atau sebaliknya.

5
BASIS DATA RELATIONAL (CONT)
• Meskipun relasi dikatakan sama dengan tabel, istilah
‘relasi’ sering dikaitkan dengan struktur logis dan
‘table’ dikaitkan dengan struktur ‘fisis’.

• DBMS yang menggunakan pemodelan relasional


disebut RDBMS (Relational DBMS).

• Attribute merepresentasikan elemen dari data yang


berkaitan dengan relasi.

Contoh,
relasi Mahasiswa memiliki atribut-atribut seperti nim, nama,
tempat lahir. tanggal_ lahir, dan alamat.

6
SEJARAH
Model relasional pertama kali dikenalkan oleh Codd, pada tahun 1971

Sejak itu model relasi memainkan peranan yang sangat penting dalam berbagai
perancangan basis data. Ada tiga alasan mengapa model relasi mempunyai peranan
penting dalam perancangan basis data yaitu :

Model relasional
mendefinisikan salah satu Struktur data yang
Relasi merepresentasikan struktur
direpresentasikan oleh relasi
data yang dapat dimengerti oleh kriteria perancangan basis dapat segera dikonversikan &
user maupun designer data yang penting yaitu relasi diimplementasikan ke RDBMS
bentuk normal

Pada tahun 1985, Codd menerbitkan daftar 12 peraturan untuk mendefinisikan sistem basis
data relasional, karena kekhawatiran bahwa banyak vendor memasarkan produk sebagai
"relasional" walaupun produk tersebut tidak memenuhi standar relasional minimum

7
CODD’S RELATIONAL DATABASE

8
TOOLS MODEL RELASIONAL
• Contoh produk DBMS yang menggunakan model
relasional:

• DB2 dari IBM


• RDB/VMS dari Digital Equipment Corp.
• Oracle dari Oracle Corp.
• Informix dari Informix Corp.
• Sybase
• Keluarga dBase
• Microsoft Access
• Microsoft SQL Server
• Microsoft Visual FoxPro
• MySQL
9
BASIS DATA RELATIONAL (CONT)

10
ISTILAH-ISTILAH MODEL RELASIONAL
•Representasi tabel yang terdiri dari sejumlah
Relation/table/file baris dan kolom

•Kolom pada tabel


Attribute/column/field

•Baris pada tabel


Tuple/row/record

•Himpunan nilai dari satu atau lebih attribute


Domain

•Banyaknya attribute/kolom pada tabel


Degree

•Banyaknya tuple/baris pada tabel


Cardinality

•Kumpulan relasi ternormalisasi dengan nama


Relational Basis Data relasi yang jelas

11
CONTOH BASIS DATA RELASIONAL
Tabel Customer
customer-id customer-name customer street customer city
192-83-7465 Johnson 12 Alma St. Palo Alto
019-28-3746 Smith 4 North St. Rye
677-89-9011 Hayes 3 Main St. Harrison
182-73-6091 Turner 123 Putnam Ave. Stamford
321-12-3123 Jones 100 Main St. Harrison
336-66-9999 Lindsay 175 Park Ave. Pittsfield
019-28-3746 Smith 72 North St. Rye

Tabel Account Tabel Depsitor


account-number balance customer-id account-number
A-101 500 192-83-7465 A-101
A-215 700 192-83-7465 A-201
A-102 400 019-28-3746 A-215
A-305 350 677-89-9011 A-102
A-201 900 182-73-6091 A-305
A-217 750 321-12-3123 A-217
A-222 700 336-66-9999 A-222
019-28-3746 A-201 12
CONTOH BAGIAN MODEL
RELASIONAL

Relation Attribute Degree Tuple Cardinality


Tabel Customer custommer-id 4 Baris 1 – Baris 7 7
customer-name
customer-street
customer-city
Tabel Depositor customer-id 2 Baris 1 – Baris 8 8
account-number
Tabel Account account-number 2 Baris 1 – Baris 7 7
balance

13
RELASI BASIS DATA

• Skema Relasi
Nama relasi didefinisikan oleh himpunan pasangan
atribut dan nama domain

• Skema Basis Data Relational


Himpunan skema relasi dengan nama yang
berbeda

14
SIFAT-SIFAT RELASI

• Nama relasi berbeda satu sama lain dalam skema


relasional
• Setiap sel(baris,kolom) dari relasi berisi satu nilai
atomik atau nilai tunggal
• Setiap atribut memiliki nama yang berbeda
• Nilai suatu atribut berasal dari domain yang sama
• Setiap tuple adalah berbeda, dan tidak ada
duplikasi tuple

15
ATRIBUT TABEL
• Atribut dapat juga disebut dengan kolom data
• Atribut sesuai dengan fungsinya merupakan pembentuk sifat-sifat
atau karakteristik yang melekat pada sebuah tabel.
• Pembahasan mengenai atribut perlu dijelaskan pada bagian
normalisasi karena penerapan aturan normalisasi berakibat pada
penghilangan kolom, penambahan kolom baru atau bahkan
penambahan tabel baru
• Contoh (basisdata akademik) terdiri dari:
• Tabel Mahasiswa dengan 4 atribut, yaitu nim,nama_mhs,alamat-mhs dan
tgl_lahir
• Tabel Dosen dengan 2 atribut, yaitu nama_dos dan alamat_dos
• Tabe Kuliah dengan 4 atribut, yaitu kode_kul, nama_kul, sks dan semester
• Tabel Nilai memiliki 4 atribut, yaitu nama_kul, nim_nama_mhs dan indeks_nilai
• Tabel Jadwal dengan 4 atribut, yaitu nama_kul, tempat, waktu dan nama_dos

16
JENIS ATRIBUT TABEL

Key dan Atribut Deskriptif

Atribut Sederhana (Simple Attribute) dan


AtributKomposit(Composite Attribut)

Atribut Bernilai Tunggal (Single-Valued Attribute) dan Atribut


Bernilai Banyak (Multivalued Attribute)

Atribut harus bernilai (Mandatory Attribute) dan NilaiNull

Atribut turunan (Derived Attribute)

17
KEY DAN ATRIBUT DESKRIPTIF (1)
Super key
• Satuatribut/kumpulanatributyangsecaraunikmengidentifikasisebuahtup
eldidalamrelasi(satuataulebihfield
yangdapatdipilihuntukmembedakanantara1
recorddenganrecordlainnya).
Candidat Key
• Atributdidalamrelasiyangbiasanyamempunyainilaiunik(super
keyyangpalingsedikit)

Primary key
• Candidate
keyyangdipilihuntukmengidentifikasikantupelsecaraunikdalamrelasi

Atribut Deskriptif
• Atribut-atribut yang tidak menjadi anggota darikeyprimer

18
KEY DAN ATRIBUT DESKRIPTIF (2)
Super key
•(nim, nama_mhs,alamat_mhs, tgl_lahir)
•(nim, nama,_mhs, alamat_mhs)
•(nim, nama_mhs)
•(nama_mhs) jika dijamin tidak ada nilai yang sama
•(nim)

Candidat Key
•(nim)
•(nama_mhs) jika dijamin tidak ada nilai yang sama

Primary key
•(nim)

Atribut Deskriptif
•nama_mhs,alamat_mhs, tgl_lahir
19
ATRIBUT SEDERHANA (SIMPLE ATTRIBUTE ) DAN
ATRIBUT KOMPOSIT (COMPOSITE ATTRIBUT )

• Atribut sederhana : atribut atomik yang tidak dapat dipilah


lagi
• Contoh : nama_mhs

• Atribut komposit : atribut yang masih dapat diuraikan lagi


menjadi sub-sub atribut
• Contoh : alamat, nama_kota dan kode_pos

• Perlu diingat bahwa tabel komposit tidak perlu


dipertahankan bila tidak ada aktivitas pengolahan sub
atribut

• misalnya jika mahasiswa akan dikelompokkan berdasarkan


nama kota tempat tinggal maka atribut alamat dapat
dipisahkan secara tegas atau termasuk dalam atribut
komposit
20
ATRIBUT BERNILAI TUNGGAL (SINGLE-VALUED ATTRIBUTE )
DAN
ATRIBUT BERNILAI BANYAK (MULTIVALUED ATTRIBUTE )

• Atribut Bernilai Tunggal (Single-Valued Attribute )


adalah atribut yang paling banyak memiliki satu nilai
untuk setiap baris data
• Contoh : semua atribut pada data mahasiswa, yaitu (nim,
nama_mhs, alamat_mhs, dan tgl_lahir) merupakan atribut
bernilai tunggal

• Atribut Bernilai Banyak (Multivalued Attribute ) adalah


atribut yang dapat diisi dengan lebih dari satu nilai,
tetapi jenisnya sama
• Contoh : atribut hobbi pada data mahasiswa, dapat terdiri
lebih dari satu nilai atau tidak sama sekali

21
ATRIBUT HARUS BERNILAI (MANDATORY
ATTRIBUTE ) DAN NILAI NULL
• Mandatory atribut adalah sejumlah atribut pada sebuah tabel yang
ditetapkan harus berisi suatu nilai atau tidak boleh kosong
Contoh : Pada tabel mahasiswa terdapat atribut yang
tidak boleh kosong, yaitu (nim, nama_mhs)

• Nilai konstanta Null digunakan untuk menyatakan suatu atribut tidak


memiliki atau belum berisi nilai
Contoh : Atribut hobby pada tabel mahasiswa berisi nilai
konstanta Null yang artinya dapat juga
tidak memiliki nilai

*Ket. Tambahan : Null tidak sama dengan spasi,


meskipun tampilannya dapat terlihat sama, tetapi
memikili makna dan representasi fisik yang berbeda

22
ATRIBUT TURUNAN (DERIVED ATTRIBUTE )

• Atribut turunan adalah atribut yang nilai-nilainya


diperoleh dari pengolahan atau dapat diturunkan dari
atribut atau tabel lain yang berhubungan
Contoh : Penambahan atribut angkatan dan ip
(Indeks Prestasi) pada tabel Mahasiswa

Atribut angkatan merupakan turunan dari atribut nim


nim 163010015
dua angka paling depan pada nim menunjukkan angkatan
mahasiswa

Atribut ip di dapat dari perhitungan matematis yang berasal


dari tabel nilai dan sks pada tabel kuliah
23
DOMAIN DAN TIPE DATA (1)

• Tipe data setiap atribut digunakan untuk penentuan


struktur setiap tabel

• Tipe data memberikan batasan nilai yang mungkin


disimpan/diisikan pada setiap atribut

• Domain memiliki kesamaan dengan tipe data

• Tipe data menunjukkan kemampuan layak atau tidak


layaknya data dilihat dari pemakaiannya

• Domain menentukan batasan-atasan bagi atribut


sesuai dengan kenyataannya
24
DOMAIN DAN TIPE DATA (2)
• Contoh :
• Tabel kuliah menetetapkan tipe data atribut sks
adalah integer yang memungkinkan menyimpan
bilangan bulat antara -32.768 hingga 32.767
• Batas penyimpanan tersebut tidak dibenarkan
menjadi data pada atribut sks
• Data yang layak dapat dikatakan sebagai domain
pada atribut sks yaitu 1,2,3 dan 4
• Pada saat perancangan basis data yang perlu dilihat
dan dipertimbangkan adalah Domain dari setiap
atribut

25
RELATIONAL KEY
Superkey

• Sebuah atribut (atau kombinasi atribut) secara unik mengenali setiap entitas dalam
sebuah tabel.

Candidate key

• Sebuah superkey minimal, yaitu superkey yang tidak merupakan bagian atribut dari
suatu superkey.

Primary key

• Candidate key yang terpilih untuk mengenali secara unik seluruh nilai atribut pada
sebuah baris. Tidak boleh kosong.

Secondary key

• Sebuah atribut (atau kombinasi atribut) secara paksa digunakan untuk tujuan
pengambilan data.

Foreign key

• Sebuah atribut (atau kombinasi atribut) dalam sebuah tabel dimana nilainya cocok
dengan primary key pada tabel lainnya.
26
CONTOH RELATIONAL KEY

Relasi Superkey Candidate Primary Key Foreign Key Alternatif key


Key
Tabel (customer-id) customer-id customer-id customer- customer-
customer (customer- customer- city name
id,customer-name) name
(customer- (dengan
id,customer- syarat
name,customer-city) terdapat
tabel city
yang
memiliki fiel
city-id

27
RELATIONAL INTEGRITY
• Null
• Representasi nilai atribut yang tidak diketahui atau tidak digunakan
dalam tuple
• Berkaitan dengan ketidaklengkaan atau pengecualian data
• Representasi tidak adanya suatu nilai, dan tidak sama dengan nol
atau spasi

• Entity Entegrity
• Pada relasi dasar, tidak ada atribut ataupun primary key yang bernilai
NULL

• Referential Entegrity
• Jika terdapat foreign key dalam suatu relasi, maka foreign key
tersebut dibandingkan dengan candidate key dan beberapa tuple
pada relasi itu sendiri

• Enterprise Constraint
• Aturan tambahan yang diberikan oleh user atau DBA

28
CONTOH RELATIONAL INTEGRITY

Null Entity Integrity Rererential Enterprise Constraint


Integrity
Field customer- Field customer0id Field customer-id Jika jumlah account-
description pada tabel pada tabel number untuk setiap
(diasumsikan customer depositor customer-id diberi batasan
terdapat kolom misalkan 5 account-
customer- number,maka lebih dari
description pada jumlah tersebut tidak
tabel customer) diperbolehkan

29
KETERGANTUNGAN FUNGSIONAL
(FUNCTIONAL DEPENDENCY) (1)

Kondisi Functional Dependency (FD) dinyatakan dalam kondisi


berikut

AB

A secara fungsional menentukan B


B secara fungsional tergantung pada B

Syarat FD ini terjadi jika minimal dua baris pada suatu tabel
dengan nilai A yang sama, memiliki nilai B yang juga sama

r1 (A) = r2 (A) , maka r1(B)= r2(B)

30
KETERGANTUNGAN FUNGSIONAL
(FUNCTIONAL DEPENDENCY) (2)
• Contoh FD pada tabel Nilai

nama_kul nim nama_mhs indeks_nilai FD


Basisdata 163010015 Betha Susanti A nim  nama_mhs
Matematika 163010015 Betha Susanti nama_kul, nim 
indeks_nilai
Bahasa inggris 163010025 Kyla Nuri M. B
IMK 163010033 Mega Rinasa Non FD
Matematika 163010033 Mega Rinasa C nama_kul nim
• Non FD dapat digunakan untuk membantunim  indeks_nilai
mendapatkan
Basisdata FD dari
163010035 seluruh
Tera Akbar tabel A

31
2. Pentingnya Normalisasi

32
SUATU RANCANGAN DATABASE
DISEBUT BURUK JIKA :

• Data yang sama tersimpan di beberapa tempat


(file atau record)
• Ketidakmampuan untuk menghasilkan informasi
tertentu
• Terjadi kehilangan informasi
• Terjadi adanya redudansi (pengulangan) atau
duplikasi data sehingga memboroskan ruang
penyimpanan dan menyulitkan saat proses
updating data

33
NORMALISASI

• Normalisasi merupakan sebuah teknik dalam


logical desain sebuah basis data yang
mengelompokkan atribut dari suatu relasi
sehingga membentuk struktur relasi yang baik
(tanpa redudansi).

• Normalisasi adalah proses pembentukan


struktur basis data sehingga sebagian besar
ambiguity bisa dihilangkan.

34
FUNGSI NORMALISASI
• Normalisasi dilakukan sebagai uji coba pada suatu relasi secara
berkelanjutan untuk menentukan apakah relasi sudah baik

• Kondisi relasi yang baik adalah dapat dilakukan proses insert,


update, delete, dan modifikasi pada satu atau beberapa
atribut tanpa mempengaruhi integritas data dalam relasi
tersebut

• Dalam perancangan basis data, normalisasi berperan sebagai :


• Menganalisa skema relasi yang didasarkan pada primary keys
dan functional dependencies antara atribut-atribut.
• Satu urutan test, Bila suatu test gagal, maka relasi yang
menyalahi test harus didekomposisi menjadi sejumlah relasi
yang masing-masing memenuhi kaidah normalisasi.

35
TUJUAN NORMALISASI
• Untuk menghilangkan kerangkapan data
• Untuk mengurangi kompleksitas
• Untuk mempermudah pemodifikasian data

36
TAHAPAN NORMALISASI

• Tahap Normalisasi dimulai dari tahap


paling ringan (1NF) hingga paling ketat
(5NF)
• Normalisasi yang sering dilakukan hanya
sampai pada tingkat 3NF atau BCNF
karena sudah cukup memadai untuk
menghasilkan tabel-tabel yang
berkualitas baik.

37
KRITERIA TABEL NORMAL
Sebuah tabel dikatakan baik (efisien) atau
normal jika memenuhi 3 kriteria sbb:

1. Jika ada dekomposisi (penguraian) tabel, maka


dekomposisinya harus dijamin aman (Lossless-Join
Decomposition). Artinya, setelah tabel tersebut
diuraikan / didekomposisi menjadi tabel-tabel baru,
tabel-tabel baru tersebut bisa menghasilkan tabel
semula dengan sama persis.
2. Terpeliharanya ketergantungan fungsional pada
saat perubahan data (Dependency Preservation).
3. Tidak melanggar Boyce-Codd Normal Form (BCNF)
(-akan dijelaskan kemudian-) Jika BCNF tidak
terpenuhi, maka paling tidak suatu tabel tidak
melanggar bentuk normal tahap ketiga
38
CONTOH RELASI NORMAL DAN
TIDAK NORMAL

39
TABEL UNIVERSAL
Tabel Universal (Universal / Star Table)  sebuah tabel yang
merangkum semua kelompok data yang saling berhubungan, bukan
merupakan tabel yang baik.

nim nama_mhs alamat_mhs tgl_lahir kode_kul nama_kul sks


163010015Betha Susanti Jl. Mawar III/no, 1a 02-Jun-97BD-111 Basisdata 3
163010015Betha Susanti Jl. Mawar III/no, 1a 02-Jun-97MT-111 Matematika 2
163010025Kyla Nuri M. Jl. Melati Timur I/no. 15f 06-Jan-97BG-111 Bahasa inggris 2 Lanjutan
163010033Mega Rinasa Jl. Gajayana IV/no. 9 17-Okt-97IM-111 IMK 3 tabel

163010033Mega Rinasa Jl. Gajayana IV/no. 9 17-Okt-97MT-111 Matematika 2


163010035Tera Akbar Jl. Majapahit VII/no. 11 25-Mar-97BD-111 Basisdata 3

semester indeks_nilai waktu tempat nama_dos alamat_dos


2 A Rabu, 12.30-16.00 dan Kamis, 08.00-12.30 LBD.1 Dr. Manaf Putra Jl. Sulfat Timur I/no. 7A
1 Senin, 12.30-15.00 dan Kamis, 08.00-11.30 KR.01 Dr. Maryam Harlina Jl. Ciliwung III/no.6
1 B Selasa 08.00-11.30 dan Jumat, 08.00-11.30 KR.04 Dr. Ristianto Arif Jl. Merdeka I/ no.1
2 Kamis, 08.00-12.30 dan Jumat, 08.00-12.30 KR.06 Dr. Maya Rista Jl. Kalimantan IV/no 5a
1 C Senin, 12.30-15.00 dan Kamis, 08.00-11.30 KR.01 Dr. Maryam Harlina Jl. Ciliwung III/no. 6
2 A Rabu, 12.30-16.00 dan Kamis, 08.00-12.30 LBD.1 Dr. Manaf Putra Jl. Sulfat Timur I/no. 7A
40
LOSSLESS-JOIN DECOMPOSITION

• Dalam bahasa Indonesia Lossless-Join decomposition


dalam bahasa Indonesia dapar diartikan Dekomposisi
Aman

• Dekomposisi aman adalah kondisi apabila tabel-tabel


hasil dekomposisi digabungkan kembali dapat
menghasilkan tabel awal sebelum di dekomposisi.

• Dekomposisi yang tidak aman dapat berasal dari FD


yang diperoleh dari asumsi yang kurang tepat

41
DEKOMPOSISI AMAN DAN TIDAK AMAN
Dekomposisi Tidak Aman Dekomposisi Aman
(Lossy-Join Decomposition) (Lossless-Join Decomposition)
Contoh : Contoh :
• Terdapat tabel ABC dengan FD : • Terdapat tabel ABC dengan FD :
AB dan BC AB dan BC

A B C A B C Hasil
Hasil Penggabungan
a1 100 c1 Penggabungan a1 100 c1 Kembali
Kembali
a2 200 c2 a2 200 c2
a3 300 c3 A B C a3 300 c3 A B C

a4 200 c4 a1 100 c1 a4 200 c2 a1 100 c1


a2 200 c2 a2 200 c2
A B B C A B B C a3 300 c3
a2 200 C4
a1 100 100 c1 a1 100 100 c1 a4 200 c2
a3 300 c3
a2 200 200 c2 a2 200 200 c2
a4 200 c2
a3 300 300 c3 a3 300 300 c3
a4 200 c4
42
a4 200 200 c4 a4 200
DEPENDENCY PRESERVATION

• Dependecy preseravation dapat diartikan sebagai pemeliharaan


ketergantungan.
• Ketika terjadi perubahan terhadap suatu basisdata, maka
seharusnya dapat dijamin perubahan tersebut tidak menghasilkan
inkonsistensi data yang mengakibatkan FD sudan benar menjadi
tidak terpenuhi.

• Contoh :
• Pada tabel universal slide sebelumnya jika terjadi perubahan tidak efisien
pada data mahasiswa dengan nim ‘163010015’ maka perubahan harus
dilakukan pada alamat_mhs di semua baris nim tersebut.
• Perubahan yang efisien terdapat pada tabel hasil dekomposisi tabel
mahasiswa{nim, nama_mhs, alamat_mhs, tgl_lahir} dan nilai{nama_kul,
nim, nama_mhs, indeks_nilai}.
• Jika pada tabel mahasiswa terjadi perubahan data pada atribut
alamat_mhs, maka perubahan tidak perlu dijalankan ke tabel nilai
43
BENTUK-BENTUK
NORMALISASI

44
3. NORMALISASI PERTAMA (1 NF)

45
NORMALISASI PERTAMA
(1ST NORMAL FORM)
• Aturan :
• Tidak adanya atribut multivalue, atribut komposit
atau kombinasinya.
• Mendefinisikan atribut kunci.
• Setiap atribut dalam tabel tersebut harus bernilai
atomic (tidak dapat dibagi-bagi lagi)

46
CONTOH I - 1NF

• Tabel Universal pada slide sebelumya tidak


memenuhi 1NF karena atribut waktu merupakan
atribut multivalue
• Kondisi awal tabel kuliah {kode_kul, nama_kul, sks,
semester, waktu, tempat, nama_dos} akan
didekomposisi sebagai berikut :

tabel kuliah{kode_kul,nama_kul,
tabel sks, semester, nama_dos}
kuliah tabel jadual {kode_kul,
waktu,tempat}

47
tabel kuliah
kode_kul nama_kul sks semester nama_dos
BD-111 Basisdata 3 2 Dr. Manaf Putra
Dr. Maryam
MT-111 Matematika 2 1
Harlina
BG-111 Bahasa inggris 2 1 Dr. Ristianto Arif
IM-111 IMK 3 2 Dr. Maya Rista

tabel jadwal Ket Tambahan :


kode_kul waktu Tempat • Jika atribut waktu sesuai
BD-111 Rabu, 12.30-16.00 LBD.1 kebutuhan termasuk
didalam atribut komposit,
BD-111 Kamis, 08.00-12.30 LBD.1
maka atribut waktu dapat
MT-111 Senin, 12.30-15.00 KR.01
dipecah menjadi atribut
MT-111 Kamis, 08.00-11.30 KR.01 waktu1 dan waktu2.
BG-111 Selasa 08.00-11.30 KR.04 • Atribut waktu1 adalah hari
BG-111 Jumat, 08.00-11.30 KR.04 dan waktu2 adalah jam
IM-111 Kamis, 08.00-12.30 KR.06
IM-111 Jumat, 08.00-12.30 KR.06 48
CONTOH II - 1NF

• Dengan mengambil dari data tabel universal, jika


ditambahkan atribut hobi pada tabel mahasiswa,
maka kondisi awal tabel mahasiswa {nim, nama_mhs,
alamat_mhs, nama_kota, tgl_lahir,hobi} akan
didekomposisi sebagai berikut :

tabelmahasiswa{nim,nama_mhs,
tabel alamat_mhs, tgl_lahir}
mahasiswa
tabel hobi{nim, hobi}

49
tabel mahasiswa

nim nama_mhs alamat_mhs tgl_lahir


163010015Betha Susanti Jl. Mawar III/no, 1a 02-Jun-97
163010025Kyla Nuri M. Jl. Melati Timur I/no. 15f 06-Jan-97
163010033Mega Rinasa Jl. Gajayana IV/no. 9 17-Okt-97
163010035Tera Akbar Jl. Majapahit VII/no. 11 25-Mar-97

tabel hobi
Ket Tambahan :
nim hobi • Setiap mahasiswa
163010015 Melukis dapat memiliki
163010015 Berenang lebih dari satu hobi
163010025 Membaca atau bahkan tidak
163010025 Melukis
memiliki sama sekali
• Oleh karena itu
163010033 Musik
perlu dibuat tabel
163010033 Menari
hobi
163010035 Musik

50
4. NORMALISASI KEDUA (2 NF)

51
NORMALISASI KEDUA
(2ND NORMAL FORM)
• Aturan :
• Sudah memenuhi dalam bentuk normal kesatu
(1NF)
• Semua atribut bukan key primer hanya boleh
memiliki ketergantungan (functional dependency)
pada atribut key primer
• Jika ada ketergantungan parsial maka atribut
tersebut harus dipisah pada tabel yang lain
*Ket. Tambahan :
Ketergantungan parsial ---> hanya tergantung pada sebagian key
primer

52
CONTOH 2NF
Dengan menggunakan acuan tabel universal pada slide
sebelumnya,
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

nim nama_mhs alamat_mhs kode-kul Nama_kul sks Indeks_nilai

 Tidak memenuhi 2NF, karena {nim, kode_kul}


yang dianggap sebagai key primer sedangkan:
{nim, kode_kul}  mhs_nama
{nim, kode_kul}  mhs_alamat
{nim, kode_kul}  mk_nama
{nim, kode_kul}  mk_sks
{nim, kode_kul}  indeks_nilai

 Tabel di atas perlu didekomposisi menjadi beberapa tabel


yang memenuhi syarat 2NF
53
Contoh Functional Dependency 2NF adalah :

{nim, kode_kul}  indeks_nilai (FD1)


nim  {nama_mhs, alamat_mhs} (FD2)
kode_kul  {nama_kul, sks} (FD3)

Maka Dekomposisi tabel pada contoh 2NF adalah :

FD1 (nim, kode_kul, indeks_nilai)  Tabel nilai


FD2 (nim, nama_mhs, alamat_mhs)  Tabel mahasiswa
FD3 (kode_kul, nama_kul, sks)  Tabel mataKuliah

54
5. NORMALISASI KETIGA (3 NF)

55
NORMALISASI KETIGA
(3RD NORMAL FORM)
• Aturan :
• Sudah berada dalam bentuk normal kedua (2NF)
• Tidak ada ketergantungan transitif (dimana atribut
bukan key primer tergantung pada atribut bukan key
primer lainnya).
• Dalam bentuk FD :
• X  Y maka X adalah super key
• X  A, dengan membolehkan A sebagai bagian
dari primary key

56
CONTOH 3NF
Berdasarkan informasi pada tabel universal pada slide
sebelumnya, jika pada tabel mahasiswa, atribut alamat sesuai
dengan kebutuhan dibagi informasi jalan, kota, provinsi, dan
kodepos, maka tabel mahasiswa dapat dituliskan sebagi
berikut :
nim nama_mhs alamat_jalan_mhs alamat_kota_mhs alamat_provinsi_mhs alamat_kodepos_mhs

 Tabel tersebut sudah memenuhi 2NF, tapi tidak memenuhi 3NF:


 karena masih terdapat atribut non primary key (yakni
alamat_jalan_mhs alamat_kota_mhs dan alamat_provinsi_mhs)
yang memiliki ketergantungan terhadap atribut non primary key
yang lain (yakni alamat_kodepos_mhs):
Sehingga tabel tersebut perlu didekomposisi menjadi:

mahasiswa (nim, nama_mhs, alamat_jalan_mhs,


alamat_kodepos_mhs)
kodepos (alamat_kodepos_mhs, alamat_jalan_mhs,
alamat_provinsi_mhs, alamat_kota_mhs)
57
PENJELASAN CONTOH 3NF
• Pada kodepos (alamat_kodepos_mhs,
alamat_jalan_mhs,alamat_provinsi_mhs,alamat_kota_
mhs) terdapat FD

• alamat_jalan_mhs,alamat_provinsi_mhs,alamat_kota_mhs 
alamat_kodepos_mhs
• alamat_kodepos_mhs  alamat_provinsi_mhs,alamat_kota_mhs

NB :
Merah : Superkey
Hitam : bukan superkey
Biru : Bagian Primary Key

58
INFORMASI

Tabel-tabel yang memenuhi kriteria


normalisasi ketiga, sudah siap
diimplementasikan. Sebenarnya masih
ada lagi bentuk normalisasi yang lain;
BCNF, 4NF, 5NF, hanya saja jarang
dipakai. Pada kebanyakan kasus,
normalisasi hanya sampai 3NF.

59
TERIMAKASIH

60
REFERENSI
• Dwi Puspitasari, S.Kom, “Buku Ajar Dasar
Basis Data”, Program Studi Manajemen
Informatika Politeknik Negeri Malang, 2012.

• Fathansyah, “Basisdata Revisi Kedua”,


Bandung: Informatika, 2015.

61

Anda mungkin juga menyukai