Anda di halaman 1dari 40

Sistem Manajemen Basis Data

Normalisasi vs Denormalisasi
Normalisasi vs
Denormalisasi
Normalisasi 2
Normalisasi
2

Normalisasi

Sebuah upaya untuk memperoleh sebuah basis data dengan

struktur yang baik (ruang penyimpanan yang efisien) dengan cara

menerapkan sejumlah aturan (bentuk normal) pada setiap tabel

yang menjadi anggota basis data tersebut.

3
3

Tujuan Normalisasi

Agar data yang ada tidak redundan dan memiliki data integrity yang

kuat sehingga ketika kita melakukan relasi antara tabel akan dengan

mudah kita menjaga data integrity dan mendapatkan datanya.

4
4

Permasalahan dalam Normalisasi

Redundansi data (ruang penyimpanan)

Anomalies (penyimpangan dalam proses modifikasi data)

o Insert Anomalies o Update Anomalies

o Delete Anomalies

5
5
Redundansi Data ID_BARANG NAMA_BARANG HARGA STOK KATEGORI 1 fanta 3000 10 minuman ringan 2 indomie
Redundansi Data
ID_BARANG
NAMA_BARANG
HARGA
STOK
KATEGORI
1
fanta
3000
10
minuman
ringan
2
indomie
1000
20
mie instan
3
mie sedap
1200
15
mie instan

normalisasi

3000 10 minuman ringan 2 indomie 1000 20 mie instan 3 mie sedap 1200 15 mie

redundan

6
6

Redundansi Data

ID_BARANG

NAMA_BARANG

HARGA

STOK

ID_KATEGORI

1 fanta

 

3000

10

1

2 Indomie

 

1000

20

3

 

3 mie sedap

1200

15

3

ID_KATEGORI

NAMA_KATEGORI

1

minuman ringan

2

permen

3

mie instan

4

wafer

7
7
Insert Anomalies ID_BARANG NAMA_BARANG HARGA STOK KATEGORI RAK 1 fanta 3000 10 minuman ringan A.5
Insert Anomalies
ID_BARANG
NAMA_BARANG
HARGA
STOK
KATEGORI
RAK
1 fanta
3000
10
minuman ringan
A.5
2 indomie
1000
20
mie instan
B.2
3 mie sedap
1200
15
mie instan
B.2
4 coca-cola
3000
15
minuman ringan
A.5

Bagaimana jika kategori diisi ‘minuman ringan’ sedangkan rak diisi

‘A.1’ ?

data tidak konsisten !

8
8
Update Anomalies ID_BARANG NAMA_BARANG HARGA STOK KATEGORI RAK 1 fanta 3000 10 minuman ringan A.5
Update Anomalies
ID_BARANG
NAMA_BARANG
HARGA
STOK
KATEGORI
RAK
1 fanta
3000
10
minuman ringan
A.5
2 indomie
1000
20
mie instan
B.2
3 mie sedap
1200
15
mie instan
B.2
4 coca-cola
3000
15
minuman ringan
A.5

Bagaimana jika kategori ‘mie instan’ ingin diganti dengan ‘makanan

ringan’ ?

tentu harus mengubah semua data !

9
9
Delete Anomalies ID_BARANG NAMA_BARANG HARGA STOK KATEGORI RAK 1 fanta 3000 10 minuman ringan A.5
Delete Anomalies
ID_BARANG
NAMA_BARANG
HARGA
STOK
KATEGORI
RAK
1 fanta
3000
10 minuman ringan
A.5
2
indomie
1000
20
mie instan
B.2
3 mie sedap
1200
15
mie instan
B.2
4 coca-cola
3000
15
minuman ringan
A.5

Bagaimana jika barang ‘fanta’ dihapus?

semua data yang termasuk dalam kategori ‘minuman ringan’ akan

ikut terhapus !

10
10

Normalisasi

Pada sejumlah kasus, penerapan normalisasi secara ketat (strict)

dapat mengakibatkan menurunnya performansi pemanfaatan basis

data.

Normalisasi digunakan saat melakukan perancangan basis data,

dengan pertimbangan tertentu normalisasi ini dapat 'dilanggar‘.

11
11
Denormalisasi 12
Denormalisasi
12

Denormalisasi

Pelanggaran Normalisasi basis data disebut dengan Denormalisasi.

Satu-satunya alasan mengapa kita boleh melakukan denormalisasi

adalah pertimbangan performansi.

Jika performansi yang kita peroleh bisa menjadi jauh lebih baik,

maka normalisasi yang telah dilakukan cukup beralasan untuk

dilanggar.

13
13

Normalisas

i

Normalisas i • • Normalisasi akan meningkatkan data integrity tetapi juga akan meningkatkan query
Normalisas i • • Normalisasi akan meningkatkan data integrity tetapi juga akan meningkatkan query

Normalisasi akan meningkatkan data integrity tetapi juga akan

meningkatkan query complexity.

Denormalisasi akan mengurangi data integrity dan juga akan

mengurangi query complexity

14
14

Normalisasi vs. Denormalisasi

Pada basis data relational, redundansi tidak bisa dihilangkan sama

sekali khususnya redundansi pada atribut-atribut yang berfungsi

sebagai key primer.

Karena dengan inilah keterhubungan antara tabel satu dengan yang

lain dapat terakomodasi

15
15

Normalisasi vs. Denormalisasi

Normalisasi vs. Denormalisasi • Relasi antar tabel tidak akan ada jika redundansi dihilangkan sama sekali. 16

Relasi antar tabel tidak akan ada jika redundansi dihilangkan sama

sekali.

16
16

Normalisasi vs. Denormalisasi

Akan tetapi redundansi juga harus diminimalisir karena berpotensi

mengganggu integritas basis data.

Khususnya pada saat terjadi operasi perubahan data yang tidak

dijalarkan ke tabel-tabel lain yang berhubungan

17
17

Normalisasi vs. Denormalisasi

Performansi dapat ditingkatkan dengan mengendalikan redundansi

untuk mengurangi perhitungan, kompleksitas perintah dan jumlah

tabel yang harus dilibatkan (join).

Untuk itu digunakan Denormalisasi basis data.

18
18

Any Question?

19
19

Bentuk-bentuk Denormalisasi

Atribut yang terderivasi (atribut turunan)

Atribut yang berlebihan

Tabel rekapitulasi (summary table)

20
20

Atribut turunan

Atribut yang nilainya bisa diperoleh dari nilai- nilai yang sudah ada pada atribut lain

21
21

Atribut turunan

Atribut turunan • Tampilkan berapa banyak matakuliah yang sudah diambil oleh mahasiswa tertentu ! select count(*)

Tampilkan berapa banyak matakuliah yang sudah diambil oleh

mahasiswa tertentu !

select count(*) from mengambil where

NIM=‘04523356’;

22
22

Atribut turunan

Dari contoh sebelumnya, bagaimana jika data mahasiswa sangat banyak sedangkan proses untuk menampilkan jumlah matakuliah, jumlah sks ataupun IPK sering dilakukan? membutuhkan waktu yang lama !

23
23

Atribut turunan

Untuk itu perlu ditambahkan atribut baru pada tabel mahasiswa (total_sks, total_matkul,ipk)

24
24

Atribut yang berlebihan

Atribut terkodekan (encoded attribute)

Atribut gabungan (concatenated attribute)

Atribut tumpang-tindih (overlapping attribute)

Atribut bermakna ganda (alternate attribute)

25
25

Atribut berlebihan : atribut terkodekan

Atribut yang memiliki kode tambahan yang menunjukkan

beberapa kondisi lainnya

Contoh :

id_mk di tabel kuliah yang didalamnya sudah terkandung data

program studi. Data program studi ini sebenarnya tidak

diperlukan lagi karena sudah ada atribut prog_studi di tabel

kuliah

Kode kuliah simbada : 52304424

26
26

Atribut berlebihan : atribut terkodekan

27
27

Atribut berlebihan : atribut terkodekan

Tapi akan menjadi aneh jika kode matakuliah tidak mengikuti format aturan penulisan yang ada. Untuk itu kita bisa lakukan denormalisasi dengan tetap menuliskan kode matakuliah seperti di atas.

28
28

Atribut berlebihan : atribut gabungan

Atribut dalam domain komposit

Contoh :

atribut nim di tabel mahasiswa merupakan gabungan dari tahun masuk/angkatan dengan program studi dan no urut

mahasiswa. Dengan demikian atribut ini sebenarnya tidak

atomik karena masih bisa dibagi lagi

NIM : 04523500

demikian atribut ini sebenarnya tidak atomik karena masih bisa dibagi lagi NIM : 04523500 angkatan n

angkatan

no urut

29
29

Atribut berlebihan : atribut gabungan

Sama hal nya dengan atribut terkodekan, akan menjadi aneh jika nomor mahasiswa tersebut hanyalah nomor urut. Tentu hal ini akan membutuhkan informasi lebih tentang angkatan dan terdaftar di jurusan mana mahasiswa tersebut.

30
30

Atribut berlebihan (atribut tumpang-tindih)

Atribut dengan nilai yang tidak sepenuhnya ekslusif

Contoh :

atribut semester di tabel kuliah berisikan :

‘1’ matakuliah ganjil ‘2’ matakuliah genap ‘3’ matakuliah ganjil & genap nilai ‘3’ mencakup semester genap dan ganjil sekaligus (jadi tidak ekslusif).

31
31

Atribut berlebihan : atribut tumpang-tindih

32
32

Atribut berlebihan : atribut tumpang-tindih

Jadi sebaiknya matakuliah dimasukkan dua kali, jika itu

dilaksanakan di semester ganjil dan genap. Tentu saja hal ini

melanggar aturan normalisasi (redundansi), tapi untuk

performansi hal ini dapat ‘dilanggar’

33
33

Atribut berlebihan : atribut bermakna ganda

Atribut yang memiliki arti berbeda tergantung kelompok

entitasnya

Contoh :

Di tabel dosen terdapat atribut gaji. Bagi dosen tetap atribut

ini berisi gaji tetap perbulan, sedangkan bagi dosen tidak

tetap gaji ini berisi insentif mengajar tiap sks.

34
34

Atribut berlebihan : atribut bermakna ganda

35
35

Atribut berlebihan : atribut bermakna ganda

Jika gaji dosen harus dibedakan, maka harus disediakan 2

buah atribut yakni gaji_tetap dan gaji_tidak_tetap. Walaupun

sama-sama berisi tentang jumlah gaji yang diterima dosen, hal

ini tentu saja melanggar aturan normalisasi karena ada blok

data yang kosong. Tetapi sekali lagi, denormalisasi dalam hal

ini boleh dilakukan.

36
36

Tabel rekapitulasi

Laporan hasil rekapitulasi akan selalu merupakan hasi pengolahan dari semua tabel yang ada.

Pengolahan tersebut melibatkan banyak tabel

sehingga akan membutuhkan waktu yang lama.

Jika hal tersebut sering diakses dan diperlukan,

maka perlu dibuat tabel khusus untuk menyimpan data hasil rekapitulasi tersebut.

37
37

Tabel rekapitulasi

Pada contoh kasus sebelumnya, akan dibutuhkan waktu yang lama jika harus

menghitung jumlah matakuliah, jumlah sks

dan ipk mahasiswa yang pengolahannya

berasal dari beberapa tabel.

Untuk itu bisa dibuat tabel khusus, misal :

rekap_mahasiswa yang berisi data tentang

jumlah matakuliah, jumlah sks, ipk.

38
38

Tabel rekapitulasi

Contoh lain, pada kasus DB toserba (yang sudah dibahas pada pertemuan sebelum UTS)

semisal dibutuhkan rekapitulasi tentang

barang-barang apa saja yang telah terjual

pada bulan-bulan sebelumnya.

Hal ini tentu saja akan menimbulkan

redundansi, tapi dengan mempertimbangkan

performansi, Denormalisasi pada kasus ini

perlu dilakukan

39
39

Any Question?

See you next time

See you next time

40
40