NORMALISASI DATA

MODUL 9 NORMALISASI DATA

Tujuan :

Mampu me mbangun desain logika basis data relasional untuk menghasilkan struktur tabel yang norma l.

PrePraktikum

1. Apakah yang anda ketahui tentang norma lisasi?

2. Mengapa suatu tabel perlu dinorma lisasikan?

3. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.

Apa yang disebut dengan bentuk norma l?

4. Sebutkan dan jelaskan maca m-maca m dari bentuk normal agar dapat

dimanfaatkan untuk me mpero leh tabel dan basis data yang lebih

1. Dasar Te ori

1.1. Nor malisasi

Norma lisasi merupakan cara pendekatan dalam me mbangun desain logika basis data relasional yang tidak secara langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar untuk meghasilkan struktur tabel yang normal. Pada dasarnya desain logika basis data relasional dapat menggunakan prinsip norma lisasi maupun transformasi dari model ER ke bentuk fisik.

Pada pembahasan tentang norma lisasi data, digunakan istilah baru yang disebut dengan functinal dependencies atau ketergantungan fungsional.

1.2. Ketergantungan Fungsional (Functional Dependencies)

Functional Dependency menggambarkan hubungan attributes dalam sebuah relasi. Suatu atribut dikatakan functionally dependant pada yang lain jika kita menggunakan harga atribut tersebut untuk menentukan harga atribut yang lain. Simbo l yang digunakan adalah à untuk mewakili functional dependency ( à dibaca secara fungsional menentukan).

Notasi: A à B

A dan B adalah atribut dari sebuah tabel. Be rart i secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama. Diberikan 2 baris r1 dan r2 da la m tabel T d imana A àB

Jika r1(A)=r2(A), maka r1(B) = r2(B) Dimisalkan re lasi n ila i_ mhs me miliki e mpat buah atribut/fie ld yaitu nama_ku l, n im, na ma_ mhs dan nila i. Ma ka ketergantungan fungsional pada relasi tersebut adalah:

a. nim à nama_mhs yang artinya bahwa atribut nama_mhs hanya tergantung pada atribut nim. Hal in i dibukt ikan dari fa kta: untuk setiap nila i n im yang sama , ma ka pasti nila i na ma_ mhs nya juga sama.

b. nama_kul, nim à nilai yang berarti bahwa atribut nilai tergantung pada atribut nama_kull dan nim secara bersama-sa ma. Untuk ketergantungan fungsional seperti ini sesuai dengan pengertian bahwa setiap nilai diperuntukkan pada mahasiswa tertentu untuk mataku liah tertentu yang diamb il. Da la m arti lain untuk na ma_kul dan nim yang sama, ma ka nila i juga sama , ka rena nama_ku l dan nim merupakan key (bersifat unik).

Notasi: A nonà B atau A xà B

Adalah kebalikan dari notasi sebelumnya, dengan hanya melihat fa kta yang ada, yaitu:

a. nama_kul non à nim yang artinya atribut nim tida k tergantung pada atribut nama_ku l.

b. nim nonà nilai

yang artinya atribut nilai t idak hanya tergantung pada atribut nim, karena tergantung pula pada atribut nama_ku l yaitu na ma ku liah yang dia mbil oleh n im.

1.3. Bentuk-Bentuk Normalisasi

Bentuk-bentuk normal dapat dimanfaatkan untuk me mpero leh tabel dan basis data yang lebih baik.

1.3.1. Bentuk Normal Pertama (1NF)

Suatu tabel dikatakan dala m bentuk norma l perta ma hanya ka lau setiap kolo m bernila i tunggal untuk setiap baris. Sehingga tidak diperbo leh adanya :

Atribut yang bernilai banyak (Multivalued attribut). Attribut komposit atau kombinasi dari keduanya.

Berikut ini akan d icontohkan normalisasi dari tabel ku liah yang me miliki atribut:

Ruang Na ma_do C1234

Kode_kul Na ma_ku l

2 1 1 RKB-3 Devie C1243

Matematika 1

2 5 1 RKB-1 Rosa C1342

Riset Operasi

2 3 2 RKB-3 Anamisa Tabel kuliah tersebut tidak me menuhi norma lisasi pertama, karena terdapat atribut waktu yang tergolong ke dala m atribut bernila i banyak. Agar tabel

ADSI ADSI

1. Tabel Kuliah Kode_kul

Smstr Na ma_dosen C1234

Na ma_ku l

Sks

2 1 Devie C1243

Matematika 1

2 5 Rosa C1342

Riset Operasi

ADSI

2 3 Anamisa

2. Tabel Jadwal Kode_kul

1.3.2. Bentuk Normal Kedua (2NF)

Suatu tabel disebut dalam bentuk normal kedua, jika :

1. Tabel berada dala m bentuk norma l perta ma

2. Se mua ko lo m yang bukan primary key tergantung sepenuhnya terhadap prima ry key

3. Disebut tergantung sepenuhnya terhadap prima ry key jika suatu kolom selalu bernilai sama untuk nila i prima ry key yang sama.

Sebuah tabel dikatakan tida k me menuhi 2NF, jika ketrgantungan hanya bersifat parsial (hanya tergantung pada sebagian dari primary key). Bentuk norma l kedua akan dicontohkan pada tabel nilai berikut ini:

Kode_kul Nim

Nila i

C1234 7402030007

C1243 7402030008

B+

C1342 7402030009

Jika pada tabel nilai, misalnya kita ta mbahkan sebuah atribut yang bersifat redudan yaitu nama_ mhs, ma ka tabel n ila i ini dianggap me langgar 2NF. Primary key pada tabel nilai adalah [kode_kul, nim]. Pena mbahan atribut baru (nama_ mhs) a kan menyebabkan adanya ketergantungan fungsional yang baru yaitu nim ànama_ mhs. Karena atribut nama_ mhs ini hanya memiliki ketergantungan parsial pada prima ry key secara utuh (hanya tergantung pada nim, padahal nim hanya bagian dari prima ry key). Bentuk norma l kedua ini dianggap belum me madai karena meninjau sifat ketergantungan atribut terhadap prima ry key saja.

1.3.3. Bentuk Normal Ketiga (3NF)

Suatu tabel dikatakan dala m bentuk norma l ketiga, jika :

1. Berada dala m bentuk normal kedua

2. Setiap ko lo m bukan prima ry key t idak me miliki ketergantung transitif terhadap prima ry key

Suatu kolo m Z me miliki ketergantungan transitif terhadap kolo m X, jika :

1. Y me miliki ketergantungan fungsional terhadap X, dan

2. Z me miliki ketergantungan fungsional terhadap Y Misalkan pada tabel Mahasiswa, atribut alamat_ mhs dipecah ke dalam

ala mat_ja lan, ala mat_kota dan kode_pos. Bentuk ini tidak me menuhi 3NF karena terdapat ketergantungan fungsional baru yang muncul pada tabel tersebut yaitu:

ala mat_ja lan nama_ kota à kode_pos Dala m ha l in i (a la mat_ja lan, na ma_kota) bukan superkey sementara kode_pos juga bukan bagian dari prima ry key pada tabel mahasiswa. Jika tabel mahasiswa dideko mposisi menjad i tabel mahasiswa dan tabel ala mat, maka ala mat_ja lan nama_ kota à kode_pos Dala m ha l in i (a la mat_ja lan, na ma_kota) bukan superkey sementara kode_pos juga bukan bagian dari prima ry key pada tabel mahasiswa. Jika tabel mahasiswa dideko mposisi menjad i tabel mahasiswa dan tabel ala mat, maka

ala mat_ja lan nama_ kota à kode_pos kode_pos à nama_kota

1.4. Bentuk Normal Tahap Keempat dan Kelima

Penerapan aturan norma lisasi sampai bentuk normal ketiga sudah me madai untuk menghasilkan tabel berkualitas baik. Na mun de mikian, terdapat pula bentuk norma l kee mpat (4NF) dan ke lima (5NF). Bentuk Normal Kee mpat berka itan dengan sifat ketergantungan banyak nila i (mult ivalued dependency) pada suatu tabel merupakan pengembangan dari ketergantungan fungsional. Sedangkan bentuk normal tahap kelima merupakan na ma la in dari Project Jo in Normal Form (PJNF).

1.5. Boyce Codd Normal Form (BCNF)

Bentuk norma l ketiga 3NF dapat dikatakan BCNF karena sudah cukup me madai untuk menghasilkan tabel-tabel yang berkualitas baik. Sebuah tabel dikatakan baik (efisien) atau norma l jika me menuhi 3 kriteria sbb:

1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dija min a man (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / dideko mposisi men jadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel se mula dengan sama persis.

2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).

3. Tidak melanggar Boyce-Code Normal Form (BCNF). Jika krite ria ketiga (BCNF) tida k dapat terpenuhi, ma ka paling tidak tabel tersebut tidak me langgar Bentuk Norma l tahap ketiga (3rd Norma l Form / 3NF).

Re lasi R dengan ketergantungan fungsional F termasuk dala m bentuk BCNF jika untuk semua X à A yang ada dalam F. Dengan kata lain, R berada dala m BCNF jika ketergantungan fungsional non-trivia l pada R me miliki key constraint.

2. Kegiatan Pr aktikum

1. Terdapat suatu bentuk tabel informasi seperti berikut in i :

Tabel 9.1. Informasi Buku

ISBN Judul

Topik 979-533-

Hala man

60 Data De fin ition Language 791-2

Basisdata

Data Manipulation Language Data Control Language

90 Probabilitas 792-3

978-532- Matematika

Permutasi dan Ko mbinasi 977-534-

90 Pe mrogra man 793-4

PHP

Internet

Bagaimana bentuk tabel-tabel yang menyimpan data pada informasi tersebut dengan menggunakan normalisasi untuk verifikasi tabel?

2. Terdapat suatu bentuk tabel informasi seperti beikut ini:

Tabel 9.2. In formasi mahasiswa no_mhs

dosen Nila i 11879

nama

mata kuliah

nip

Ali

Basis data

Fisika I

Basis data

Devie

Fisika I

Rosa

A Bagaimana bentuk tabel-tabel yang menyimpan data pada informasi tersebut dengan menggunakan normalisasi untuk verifikasi tabel?

Ed i

Fisika I

Devie

1. Tugas tambahan (ditentukan oleh asisten praktikum)!

3. Tug as Akhir

Dari kasus ke-I dan ke-II pada kegiatan prakt iku m ma ka bagaimana solusi pemecahan tabel yang didapatkan? Kasus I: T= ----------------------

Pe rmasalahan : ----------------------- So lusi pe mecahan tabel :

I. Tabel -----------------------

II. Tabel -----------------------

III. Tabel ----------------------- Kasus II: T= ---------------------- Permasalahan : ----------------------- Solusi pe mecahan tabel :

IV. Tabel -----------------------

V. Tabel -----------------------

VI. Tabel -----------------------

Catatan Pr aktikum

Modul 10 VIEW 1

Tujuan :

Membuat View untuk mena mpilkan data dari satu atau beberapa table dengan me mbungkus suatu query SELECT yang ko mple ks menjadi lebih sederhana.

Tug as Pendahuluan

1. Apa yang anda ketahui tentang view?

2. Sebutkan langkah-langkah apa saja yang harus dilakukan apabila kita

akan me mbuat suatu view ! (buatkan dengan contoh table)

3. Apa saja kegunaan view dalam table, jelaskan dengan contohnya.!

1. Te ori Vie w

Vie w adalah query SELECT yang disimpan dala m database untuk mena mpilkan data dari satu atau beberapa table. Vie w juga disebut sebagai table virtual yang digunakan untuk me mbungkus suatu query SELECT yang ko mp leks menjad i lebih sederhana. Data-data yang termasuk kategori rahasia dapat dia mankan dengan menggunakan view.

Kegunaan view antara la in:

1. Fokus pada data atau tabel tertentu

2. Penyederhanaan manipulasi data

3. Menyesuaikan data dengan kebutuhan user

4. Export dan impor data

5. Mengkombinasikan data terpartisi

Syntax

CREATE VIEW view_name AS select_statement

Sebelu m query SELECT yang akan disimpan ke dala m vie w. Pena maan vie w me miliki aturan yang sama dengan penamaan table. Na ma v iew ha rus unik art inya nama v iew t idak d iperkenankan sama dengan nama v iew yang sudah ada sebelumnya.

Pesan di atas akan tampil jika terjad i pe mbuatan view dengan menggunakan nama yang sama dengan nama vie w yang la in. Na ma kolo m dari base table bisa diubah menjadi na ma lain saat disimpan ke dala m view dengan menggunakan COLUMN A LIAS

2. Kegiatan Praktikum

Buat tabel-tabel berikut ini :

1. Tabe l Art ike l dengan struktur

2. Tabe l guestbook dengan struktur

3. Tabe l Materi dengan struktur

4. Insert data pada masing-masing tabel

5. Tampilkan data judulartikel, author dan tanggal dari tabel artikel

6. Buat View dengan nama V_artikel1 untuk menampilkan data pada soal no 5

7. Tampilkan semua data pada tabel v_artikel1

Jadi bisa anda lihat bahwa pada soal nomor 5 dan 7 me mpunyai hasil yang sama, sehingga dapat di simpulkan bahwa vie w dapat mena mpilkan ke mbali data yang sama dengan lebih sederhana, dapat digunakan untuk mengerja kan query yang tidak mungkin diselesaikan dengan cara biasa, vie w dapat digunakan untuk menyimpan data rahasia karena tida k muncul pada database awal.

8. Buatkan view artikel2 untuk menampilkan judulartikel, author dan tanggal, id yang me mpunyai bidang pemogra man dan analisa sistem

9. Buatkan view guest1 untuk menampilkan semua data yang namanya diawali dengan ”ahmad”, ke mudian ganti na maauthor menjadi pengarang.

10. Buatkan view guest2 untuk menampilkan semua data yang namanya kemudian ganti namaauthor menjadi pengarang.

11. Buatkan view materi untuk menampilkan semua data yang namanya kemudian ganti namaauthor menjadi pengarang.

3. Tugas :

1. Dari praktikum diatas, berikan kesimpulannya.

2. Buat table film dan jenis film dengan tampilan sebagai berikut jika hasilnya diselect :

3. Isi tabel jenisfilm :

4. Isi tabel film :

5. Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film :

6. Buat perintah view untuk :

a. Mengurutkan data film berdasarkan kolom judul, gunakan order by dan simpan dengan v_film1

b. Menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tidak tercantum pada tabel film, gunakan NOT IN / not

e xist dan simpan dengan nama v_film2

c. Menampilkan data pada tabel jenisfilm yang mana data pada kolom jenis-nya tercantum pada tabel film menggunakan IN / e xist dan simpan dengan nama v_film3

d. Manampilkan kolom jenis dan digabungkan dengan SUM(jml_film) yang dikelo mpokkan berdasarkan ko lo m jenis pada tabel film dan simpan dengan nama v_film4