• Tidak ada hasil yang ditemukan

1.

Dasar Teori 1.1. Normalisasi

Normalisasi merupakan Suatu Teknik/Cara yang digunakan untuk menganalisa relasi berdasarkan pada primary key (atau Candidate key dalam kasus BCNF) dan ketergantungan secara fungsional. Pertama diusulkan oleh E.F Codd (1972)

Pada normalisasi data, digunakan istilah baru yang disebut dengan functinal dependencies atau ketergantungan fungsional.

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. Simbol yang digunakan adalah  untuk mewakili functional dependency ( dibaca secara fungsional menentukan).

Tujuan :

Mampu membangun desain logika basis data relasional untuk menghasilkan struktur tabel yang normal.

PrePraktikum

1. Apakah yang anda ketahui tentang aljabar Relasional 2. Apa yang dimaksud dengan normalisasi?

3. Mengapa suatu tabel perlu dinormalisasikan?

4. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal. Apa yang disebut dengan bentuk normal?

5. Sebutkan dan jelaskan macam-macam dari bentuk normal agar dapat dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik?

Notasi: A  B

A dan B adalah atribut dari sebuah tabel. Berarti 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 dalam tabel T dimana AB

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

Dimisalkan relasi nilai_mhs memiliki empat buah atribut/field yaitu nama_kul, nim, nama_mhs dan nilai. Maka ketergantungan fungsional pada relasi tersebut adalah:

a. nim  nama_mhs

yang artinya bahwa atribut nama_mhs hanya tergantung pada atribut nim. Hal ini dibuktikan dari fakta: untuk setiap nilai nim yang sama, maka pasti nilai nama_mhs nya juga sama.

b. nama_kul, nim  nilai

yang berarti bahwa atribut nilai tergantung pada atribut nama_kull dan nim secara bersama-sama. Untuk ketergantungan fungsional seperti ini sesuai dengan pengertian bahwa setiap nilai diperuntukkan pada mahasiswa tertentu untuk matakuliah tertentu yang diambil. Dalam arti lain untuk nama_kul dan nim yang sama, maka nilai juga sama, karena nama_kul dan nim merupakan key (bersifat unik).

Notasi: A non B atau A x B

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

a. nama_kul non  nim

yang artinya atribut nim tidak tergantung pada atribut nama_kul. b. nim non nilai

yang artinya atribut nilai tidak hanya tergantung pada atribut nim, karena tergantung pula pada atribut nama_kul yaitu nama kuliah yang diambil oleh nim.

Bentuk-Bentuk Normalisasi

Bentuk-bentuk normal dapat dimanfaatkan untuk memperoleh tabel dan basis data yang lebih baik.

Bentuk Normal Pertama (1NF)

Suatu tabel dikatakan dalam bentuk normal pertama hanya kalau setiap kolom bernilai tunggal untuk setiap baris. Sehingga tidak diperboleh adanya :

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

Berikut ini akan dicontohkan normalisasi dari tabel kuliah yang memiliki atribut:

Kode_kul Nama_kul Sks Smstr Waktu Ruang Nama_dosen C1234 Matematika 1 2 1 1 RKB-3 Sri Herawati C1243 Riset Operasi 2 5 1 RKB-1 Devie Rosa

C1342 ADSI 2 3 2 RKB-3 Yeni Kustiya

Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel tersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi tabel kuliah menjadi:

1. Tabel Kuliah

Kode_kul Nama_kul Sks Smstr Nama_dosen C1234 Matematika 1 2 1 Sri Herawati C1243 Riset Operasi 2 5 Devie Rosa

C1342 ADSI 2 3 Yeni Kustiya

2. Tabel Jadwal

Kode_kul Waktu Ruang

C1234 1 RKB-3

C1243 1 RKB-1

C1342 2 RKB-3

Bentuk Normal Kedua (2NF)

Suatu tabel disebut dalam bentuk normal kedua, jika :

1.

Tabel berada dalam bentuk normal pertama

2.

Semua kolom yang bukan primary key tergantung sepenuhnya terhadap primary key

3.

Disebut tergantung sepenuhnya terhadap primary key jika suatu kolom selalu bernilai sama untuk nilai primary key yang sama.

Sebuah tabel dikatakan tidak memenuhi 2NF, jika ketrgantungan hanya bersifat parsial (hanya tergantung pada sebagian dari primary key). Bentuk normal kedua akan dicontohkan pada tabel nilai berikut ini:

Kode_kul Nim Nilai

C1234 7402030007 A

C1243 7402030008 B+

C1342 7402030009 B

Jika pada tabel nilai, misalnya kita tambahkan sebuah atribut yang bersifat

Primary key pada tabel nilai adalah [kode_kul, nim]. Penambahan atribut baru (nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru yaitu nimnama_mhs. Karena atribut nama_mhs ini hanya memiliki ketergantungan parsial pada primary key secara utuh (hanya tergantung pada nim, padahal nim hanya bagian dari primary key). Bentuk normal kedua ini dianggap belum memadai karena meninjau sifat ketergantungan atribut terhadap primary key saja.

Bentuk Normal Ketiga (3NF)

Suatu tabel dikatakan dalam bentuk normal ketiga, jika : 1. Berada dalam bentuk normal kedua

2. Setiap kolom bukan primary key tidak memiliki ketergantung transitif terhadap primary key

Suatu kolom Z memiliki ketergantungan transitif terhadap kolom X, jika : 1. Y memiliki ketergantungan fungsional terhadap X, dan

2. Z memiliki ketergantungan fungsional terhadap Y

Misalkan pada tabel Mahasiswa, atribut alamat_mhs dipecah ke dalam alamat_jalan, alamat_kota dan kode_pos. Bentuk ini tidak memenuhi 3NF karena terdapat ketergantungan fungsional baru yang muncul pada tabel tersebut yaitu:

alamat_jalan nama_kota  kode_pos

Dalam hal ini (alamat_jalan, nama_kota) bukan superkey sementara kode_pos juga bukan bagian dari primary key pada tabel mahasiswa. Jika tabel mahasiswa didekomposisi menjadi tabel mahasiswa dan tabel alamat, maka telah memenuhi 3NF. Hal ini dapat dibuktikan dengan memeriksa dua ketergantungan fungsional pada tabel alamat tersebut, yaitu:

alamat_jalan nama_kota  kode_pos kode_pos  nama_kota

Bentuk Normal Tahap Keempat dan Kelima

Penerapan aturan normalisasi sampai bentuk normal ketiga sudah memadai untuk menghasilkan tabel berkualitas baik. Namun demikian, terdapat pula bentuk normal keempat (4NF) dan kelima (5NF). Bentuk Normal Keempat berkaitan dengan sifat ketergantungan banyak nilai (multivalued dependency) pada suatu tabel merupakan pengembangan dari ketergantungan fungsional. Sedangkan bentuk normal tahap kelima merupakan nama lain dari Project Join Normal Form (PJNF).

Boyce Codd Normal Form (BCNF)

Bentuk normal ketiga 3NF dapat dikatakan BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas 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).

Relasi R dengan ketergantungan fungsional F termasuk dalam bentuk BCNF jika untuk semua X  A yang ada dalam F. Dengan kata lain, R berada dalam BCNF jika ketergantungan fungsional non-trivial pada R memiliki key constraint.

1.2. Aljabar relasional

Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut.

Operasi-operasi dasar dalam aljabar relasional adalah : • Operasi Select

Operasi select digunakan untuk menyeleksi tuple-tuple yang memenuhi predikat yang diberikan. Digunakan symbol sigma (σ) untuk menunjukkan operasi select.

σalamat=”Surabaya”(karyawan)

• Operasi Project

Operasi Project digunakan untuk menampilkan nama-nama

atribut yang diinginkan tampil. Operasi project disimbolkan

dengan symbol phi (π).

Dokumen terkait