41
By : I Ngh Putu Mardika, S.Pd

Pert 5 (normalisasi)

Embed Size (px)

Citation preview

Page 1: Pert 5 (normalisasi)

By :I Ngh Putu Mardika, S.Pd

Page 2: Pert 5 (normalisasi)

• Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data.

• Dalam merancang basis data, kita dapat melakukannya dengan : 1. Menerapkan normalisasi pada struktur table yang

telah diketahui. 2. Langsung membuat model ER (Entity Relationship)

Page 3: Pert 5 (normalisasi)

Upaya pembentukan basis data yang baik akan bisa lebih mudah jika dilakukan dengan lebih dahulu membuat perencanaan basis data. Bagaimana upaca/cara yang baik itu melalui perencanaan basis data yang akan dibahas lebih mendalam dalam materi-materi selanjutnya. Perencanaan basis data dilaksanakan dengan menerapkan sejumlah teori terhadap data (fakta) yang telah dimiliki yang salah satunya adalah penerapan NORMALISASI DATA

Page 4: Pert 5 (normalisasi)

Normalisasi Basis Data

• Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

• Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF)

• Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.

Page 5: Pert 5 (normalisasi)

Mengapa dilakukan normalisasi ?• Optimalisasi struktur-struktur tabel• Meningkatkan kecepatan• Menghilangkan pemasukan data yang sama• Lebih efisien dalam penggunaan media penyimpanan• Mengurangi redundansi• Menghindari anomali (insertion anomalies, deletion

anomalies, update anomalies).• Integritas data yang ditingkatkanUntuk dapat memahami dan mampu menerapkan teori NORMALISASI pada basis data, terlebih dahulu harus mengerti dan mamahami tetang komponen-komponen dasar yang terlibat di dalamnya yaitu, Key dan Attribut

Page 6: Pert 5 (normalisasi)

Atribut Tabel (Table Attribute)

Yaitu identik dengan pemakaian istilah kolom data pada sebuah tabel. Istilah Atribut lebih umum dipergunakan dalam perancangan basis data karena istilah itu lebih imprensif menunjukkan fungsinya sebagai pembentuk karakteristik (sifat-sifat tabel.

Page 7: Pert 5 (normalisasi)

Tabel MahasiswaNIM Nama Mahasiswa Alamat Mahasiswa Tgl. Lahir

10.02.0001 Tri Apsari Pramudita Jl. Merdeka 10 2 Januari 1991

10.02.0002 Eliana Susanti Jl. Tunjung 23 3 Maret 1990

10.02.0003 Putu Septiana Putra Jl. Melati 30 7 Agustus 1991

10.02.0004 Gede Agus Pradipta Jl. Tamrin 19 29 Juni 1991

10.02.0005 Tri Martini Komp. Griya Asri D-2 13 Mei 1990

10.02.0006 Putu Eka Dharma Perum Dalung Permai D3 6 Oktober 1991

10.02.0007 A.A. Gede Ngurah Jl. Sultan Agung 50 7 Juli 1990

10.02.0008 Gst Ayu Laksmi Jl. Hasanudin 25 8 Juni 1990

10.02.0009 Ayu Putu Darmawati BTN Taman Asri Blok M 12 Sept 1990

Memiliki 4 buah atribut: nim, nama_mahasiswa, alamat_mahasiswa, dan tgl_lahir

Page 8: Pert 5 (normalisasi)

Data Mata KuliahKdmk Mata Kuliah SKS Semester

KK021 Struktur Data 3 1

KK022 Basis Data 3 2

KU020 Bahasa Indonesia 2 3

KU021 Bahasa Inggris 2 2

KK023 Pemrograman Visual 3 2

KK024 Sistem Pakar 3 4

KK030 Analisis dan Desain Sistem 2 2

KK031 HTML dan Web Desain 2 2

Memiliki 4 buah atribut: kdmk, mata_kuliah, sks, dan semester

Page 9: Pert 5 (normalisasi)

Data DosenNam Dosen Alamat Dosen

Ir. Taufik Ismail Perum Dosen Griya Asri C-5 Semarapura

Dra. Yuni Patmasari, M.Pd Jl. Gunung Kawi No. 21 Denpasar

Dr. I Gede Bagus Pratama Jl. Garuda No. 21 Denpasar

Dewi Sundari, S.Pd Jl. Gatot Kaca 17 Amlapura

I. A Putra Bimantara, S.Kom Jl. Panda Amlapura

Dr. Umar Hakim Jl. Garuda Gg Merak No. 1 Denpasar

Memiliki 2 buah atribut: nama_dosen, dan alamat_dosen

Page 10: Pert 5 (normalisasi)

Mata Kuliah NIM Nama Mahasiswa Index Nilai

Struktur Data 10.02.0001 Tri Apsari Pramudita A

Struktur Data 10.02.0002 Eliana Susanti A

Struktur Data 10.02.0003 Putu Septiana Putra B

Basis Data 10.02.0004 Gede Agus Pradipta

Basis Data 10.02.0005 Tri Martini

Bahasa Indonesia 10.02.0006 Putu Eka Dharma B

Pemrograman Visual 10.02.0001 Tri Apsari Pramudita C

Pemrograman Visual 10.02.0004 Gede Agus Pradipta C

Data Nilai

Memiliki 4 buah atribut: mata_kuliah, nim, nama_mahaiswa, dan index_nilai

Page 11: Pert 5 (normalisasi)

Data JadwalMata Kuliah Waktu Tempat Nama Dosen

Basis Data Senin, 08.00 – 09.40 dan Kamis, 11.00 – 11.50

Ruang A Ir. Taufik Ismail

Bahasa Inggris Selasa, 10.00 – 11.40 dan Jumat, 08.00 – 09.40

Ruang B Dewi Sundari, S.Pd

Pemrograman Visual Rabu, 13.00 – 14.40 dan Jumat 14.00-15.50

Ruang C Dra Yuni Patmasari, M.Pd

Analisis dan Desain Sistem

Rabu, 09.00 – 15.50 Ruang A Dr. I Gede Bagus Pratama

Memiliki 4 buah atribut: mata_kuliah, waktu, tempat, dan nama_dosen

Page 12: Pert 5 (normalisasi)

Dari 5 table di atas, masing-masing table memiliki field / atribut sebagai key, dan lainnya sebagai atribut deskriptif. Ada pula atribut yang tergolong atribut sederhana atau komposit dan lainnya.

Page 13: Pert 5 (normalisasi)

Key dan Atribut Deskriptif

• Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik.

• Ada 3 jenis key yaitu :– Super key– Candidat key– Primery key

Page 14: Pert 5 (normalisasi)

Basis Data Relasional

Super Key

• Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam relasi

• Bisa terjadi, ada lebih dari 1 kumpulan atribut yang bersifat seperti itu pada sebuah table.

• Contoh : pada tabel Mahasiswa yang memiliki 4 buah field / atribut tersebut, yang dapat menjadi superkey adalah: – nim, nama_mahasiswa, alamat_mahasiswa, dan tgl_lahir– nim, nama_mahasiswa, alamat_mahasiswa– nim, nama_mahasiswa– nim– nama_mahasiswa

Page 15: Pert 5 (normalisasi)

Candidate key• merupakan kumpulan field / atribut minimal yang dapat

membedakan setiap baris data dalam sebuah table secara unik.• Sebuah Candidate-key tidak boleh berisi atribut atau kumpulan

atribut yang telah menjadi superkey yang lain. Jadi sebuah Candidate-key pasti superkey, tapi belum tentu sebaliknya

• Contoh : – nim– nama_mahasiswa, jika kita bisa menjamin tidak ada nilai yang sama

untuk atribut ini. • Pada sebuah table dimungkinkan ada lebih dari satu

Candidate-key, seperti contoh diatas. • Salah satu dari Candidate–key ini (jika memang lebih dari satu)

dapat dijadikan sebagai Key Primer (Primary key).

Page 16: Pert 5 (normalisasi)

Primary Key• Primary_key adalah candidate-key yang dipilih untuk mengidentifikasi

tupel secara unik pada suatu relasi. Kunci utama dapat terbentuk dari satu atribut atau lebih. Pemilihan Key Primer dari sejumlah Candidate-key pada suatu table didasari pada ketiga hal berikut ini: – Key tersebut lebih sering (natural) untuk dijadikan acuan. – Key tersebut lebih ringkas. – Jaminan keunikan Key tersebut lebih baik.

• Dengan pertimbangan tersebut, kedua Candidate-key pada table Mahasiswa, yaitu nim dan nama_mahasiswa, yang lebih cocok sebagai Key Primer adalah (nid). Hal ini dikarenakan bahwa jaminan keunikan daripada nid (nomor induk dosen) akan terjamin karena karena setiap nid pada suatu perguruan tinggi pastinya tidak akan sama nilainya, sedangkan kenapa tidak memilih nama_d, karena nama_d kemungkinan ada yang sama nilainya.

Page 17: Pert 5 (normalisasi)

Foreign-Key

• adalah satu atribut (satu set atribut) yang melengkapi satu relationship (hubungan) yang menunjukkan ke induknya. Foreign key ditempatkan pada relasi anak dan sama dengan primary key induk direlasikan.

• Hubungan antara relasi induk dengan anak adalah satu lawan banyak (one to many relationship)

Page 18: Pert 5 (normalisasi)

Relasi One to Many

Page 19: Pert 5 (normalisasi)

Basis Data Relasional

Atribut Deskriptif

• Atribut-atribut yang tidak menjadi atau merupakan anggota primary key

• Misalnya dalam tabel mahasiswa, atribut seperti : nama_mahasiswa, alamat_mahasiswa, dan tgl_lahir digolongkan sebagai atribut deskriptif

Page 20: Pert 5 (normalisasi)

Basis Data Relasional

Atribut Sederhana & Komposit

• Atribut Sederhana (Simple Attribute)

adl atribut atomik yang tidak dapat dipilah lagi• Atribut Komposit (Composite Attribute)

merupakan atribut yang masih dapat diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki makna.

Contoh :Pada tabel Mahasiswa, attribut nama_mahasiswa merupakan attribut sederhana, dan alamat_mahasiswa sebagai atribut komposit krn dapat diuraikan lagi menjadi beberapa sub attribut

Page 21: Pert 5 (normalisasi)

Contoh Att. Sederhana & Att Komposit

nim Nama_mahasiswa alamat_mahasiswa Tgl_lahir

... Tri Apsari Pramudita Jl. Merdeka 10 Denpasar 80801 2 Januari 1991

... Eliana Susanti Jl. Tunjung 23 Amlapura 80811 3 Maret 1990

... Putu Septiana Putra Jl. Melati 30 Amlapura 80812 7 Agustus 1991

... ... ... ...

alamat kota kode_pos

Jl. Merdeka 10 Denpasar 80801

Jl. Tunjung 23 Amlapura 80811Jl. Melati 30 Amlapura 80812

Dapat diuraikan menjadi 3 atribut

Page 22: Pert 5 (normalisasi)

Atribut Bernilai Tunggal & Banyak

• Atribut bernilai tunggal (Single-value Attribute) ditujukan pada atribut-atribut yang memiliki paling banyak satu nilai untuk setiap bari data.

• Attribut bernilai banyak (multivalued Attribute) ditujukan pada atribut yang dapat kita isi dengan lebih dari 1(satu) nilai, tetapi jenisnya sama.

Page 23: Pert 5 (normalisasi)

Nim Nama_mahasiswa Alamat_mahasiswa

Tgl_lahir hobi

10.02.0001 Tri Apsari Pramudita Jl. Merdeka 10 2 Januari 1991 Sepakbola, voli, berenang, membaca

10.02.0002 Eliana Susanti Jl. Tunjung 23 3 Maret 1990 Menari

10.02.0002 ... ... ... Musik, memancing

Mata Kuliah Waktu Tempat Nama Dosen

Basis Data Senin, 08.00 – 09.40 dan Kamis, 11.00 – 11.50

Ruang A ....

Bahasa Inggris Selasa, 10.00 – 11.40 dan Jumat, 08.00 – 09.40

Ruang B ....

Pemrograman Visual Rabu, 13.00 – 14.40 dan Jumat 14.00-15.50

Ruang C ....

Atribut bernilai banyakAtribut bernilai tunggal

Page 24: Pert 5 (normalisasi)

Atribut Harus Bernilai (Mandatory Attribute ) dan Nilai Null

• Mandatory Attribute adalah merupakan sejumlah atribut yang ada pada suatu table yang harus berisi data dan tidak boleh kosong.

• Non Mandatory Attribute adalah sejumlah atribut yang ada pada suatu table yang boleh tidak diisi datanya / boleh kosong.

• Nilai Null digunakan untuk mengisi atribut – atribut yang nilainya memang belum siap / tidak ada. Misalkan pada table mahasiswa yg telah kita tambahkan 1 (satu) record, seperti tampak pada gambar berikut:

Page 25: Pert 5 (normalisasi)

nim Nama_mahasiswa

alamat_mahasiswa Tgl_lahir hoby

10.02.0001

Tri Apsari Pramudita

Jl. Merdeka 10 Denpasar 80801

2 Januari 1991

Sepakbola, voli, berenang, membaca

10.02.0002

Eliana Susanti Jl. Tunjung 23 Amlapura 80811

3 Maret 1990

Menari

10.02.0003

Putu Septiana Putra

Jl. Melati 30 Amlapura 80812

7 Agustus 1991

Musik, memancing

... ... ... ...

10.02.00.05

Abdulah <null> <null> <null>

Mandatory atribute Non Mandatory atribute

Nilai NULL

Page 26: Pert 5 (normalisasi)

Atribut Turunan (Derived Attribute)

• adalah atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut atau table lain yang berhubungan. Penambahan atribut tahun_masuk pada table dosen merupakan contoh atribut turunan

Page 27: Pert 5 (normalisasi)

Syarat Tabel Yang Baik...• 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-Code Normal Form (BCNF)• Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling

tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).

Page 28: Pert 5 (normalisasi)

Functional Dependency (4)• Functional Dependency dari tabel nilai– NIM NamaMhs

Karena untuk setiap nilai nim yang sama, maka nilai NamaMhs juga sama

– {Matakuliah, NIM} NilaiHurufKarena attribut NilaiHuruf tergantung pada Matakuliah dan NIM secara bersama-sama. Dalam arti lain untuk Matakuliah dan NIM yang sama, maka NilaiHuruf juga sama, karena Matakuliah dan NIM merupakan key (bersifat unik).

– Matakuliah NIM– NIM NilaiHuruf

Page 29: Pert 5 (normalisasi)

BENTUK NORMAL PERTAMA (First Normal Form - 1NF)

Tidak diperboleh adanya :• Atribut yang bernilai banyak (Multivalued

attribut).• Attribut komposit atau kombinasi dari

keduanya.Jadi :• Harga domain atribut harus merupakan harga

atomik

Page 30: Pert 5 (normalisasi)

Contoh (1)

• Misal Data Mahasiswa sbb :

Atau

• Tabel-tabel di atas tidak memenuhi syarat 1NF

Page 31: Pert 5 (normalisasi)

Contoh (2)

• Dekomposisi menjadi :– Tabel Mahasiswa :

– Tabel Hobi :

Page 32: Pert 5 (normalisasi)

BENTUK NORMAL KEDUA (Second Normal Form - 2NF) (1)• Bentuk normal 2NF terpenuhi dalam sebuah tabel

jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key

• Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key)

• Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan

Page 33: Pert 5 (normalisasi)

BENTUK NORMAL KEDUA (Second Normal Form - 2NF) (2)• Ketergantungan fungsional X Y dikatakan

penuh jika menghapus suatu atribut A dari X berarti Y tidak lagi bergantung fungsional.

• Ketergantungan fungsional X Y dikatakan partial jika menghapus suatu atribut A dari X berarti Y masih bergantung fungsional.

• Skema relasi R dalam bentuk 2NF jika setiap atribut non primary key A R bergantung penuh secara fungsioanl pada primary key R.

Page 34: Pert 5 (normalisasi)

Contoh (1)

• Tabel berikut ini memenuhi 1NF, tetapi tidak termasuk 2NF

Page 35: Pert 5 (normalisasi)

Contoh (2)

• Tidak memenuhi 2NF, karena {NIM, KodeMk} yang dianggap sebagai primary key sedangkan:{NIM, KodeMk} NamaMhs{NIM, KodeMk} Alamat{NIM, KodeMk} Matakuliah{NIM, KodeMk} Sks{NIM, KodeMk} NilaiHuruf

• Tabel tersebut perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF

Page 36: Pert 5 (normalisasi)

Contoh (3)

• Functional dependencynya sbb:– {NIM, KodeMk} NilaiHuruf (fd1)– NIM {NamaMhs, Alamat} (fd2)– KodeMk {Matakuliah, Sks} (fd3)

• Sehingga :– fd1 (NIM, KodeMk, NilaiHuruf) Tabel Nilai– fd2 (NIM, NamaMhs, Alamat) Tabel Mahasiswa– fd3 (KodeMk, Matakuliah, Sks) Tabel MataKuliah

Page 37: Pert 5 (normalisasi)

BENTUK NORMAL KETIGA (Third Normal Form - 3NF) (1)

• Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya (ketergantungan transitif).

Page 38: Pert 5 (normalisasi)

BENTUK NORMAL KETIGA (Third Normal Form - 3NF) (2)

• Untuk setiap Functional Dependency dengan notasi X A, maka:– X harus menjadi superkey pada tabel tersebut.– Atau A merupakan bagian dari primary key pada

tabel tersebut.• Ketergantungan fungsional X Y

dalam relasi R dikatakan bergantung transitif jika terdapat kumpulan atribut Z himpunan primary key R sehingga X Z dan Z Y.

Page 39: Pert 5 (normalisasi)

Contoh (1)

• Tabel mahasis berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi 3NF

• Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni KodePos) :KodePos {Kota, Provinsi}

Page 40: Pert 5 (normalisasi)

Contoh (2)

• Sehingga tabel tersebut perlu didekomposisi menjadi :– Mahasiswa (NIM, NamaMhs, Jalan, KodePos)– KodePos (KodePos, Provinsi, Kota)

Page 41: Pert 5 (normalisasi)

Latihan

• Berikut ini contoh basis data yang belum ternormalisasi :

Masalah :– Tidak perlu berulang-ulang kali menyimpan data alamat, nama

barang, dan harga.– Redundancy dapat menimbulkan masalah, yaitu data yang tidak

konsisten (pensile)