Thursday, November 29, 2012

Normalisasi dan Functional Dependency

          Normalisasi adalah sebuah proses untuk meng-efienkan struktur tabel agar tidak terjadi anomali atau eror karena adanya ambiguitas. Dan perlunya dilakukan normalisasi adalah untuk mengoptimalisasi struktur struktur tabel, meningkatkan kecepatan proses, menghilangkan pemasukan data yang sama sehingga lebih efisien dalam penggunaan media penyimpanan, mengurangi redunansi, menghindari anomali dan meningkatkan integritas data.
Sedangakan bentuk normalisasi yang biasa di gunakan yaitu:
1.      First normal form (1NF)
2.      Second normal form(2NF)
3.      Third normal form(3NF)
4.      Boyce-codd normal form(BCNF)
5.      Four normal form(4NF)
6.      Five normal form(5NF)

Sedangkan langkah langkah untuk normalisasi digambarkan pada bagan berikut:





Sebelum saya menjelaskan lebih jauh tentang bentuk bentuk normalisasai, saya akan menjelaskan mengenai ketergantungan fungsional atau Function Dependency (FD). FD menggambarkan hubungan atau relasi antara atribut-atribut dalam suatu relasi dan simbol FD adalah è dibaca secara fungsional menentukan. Contohnya yaitu AèB , secara fungsional A menentukan B :

Macam-macam Fuction Dependency yaitu:
  • Full function dependency (ketergantungan penuh)


Yaitu ketergantungan secara penuh terhadap primary key. Contoh : {NIM, Nama}èNilai_UAS bukan full dependency, seharusnya NIMèNilai_UAS ini disebut full dependency. Jadi ketergantungan secara penuh yaitu ketergantungan hanya pada primary key bukan superkey.
  • Partially dependency (ketergantungan parsial)

Merupakan function dependency yang apabila sala satu atau lebih atribut dari A dapat dihilangkan dengan ketergantungan tetap dipertahankan. Contoh : NIM, namaèNilai_UAS, jika atribut nama di hilangkan maka ketergantungan tetap masih ada.
  • Transitive dependency (Ketergantungan Transitif)

Merupakan function dependency dimana X,Y,Z adalah atribut sebuah relasi  yang mana XèY dan YèZ, maka Z dikatakan sebagai transitive dependency terhadap X melalui Y. Contoh : NIP è {Nama, Jabatan, Gaji, kdCabang, AlmCabang}, kdCabangèAlmCabang.

Sedangkan penjelasan untuk bentuk-bentuk normalisasi adalah sebagai berikut:
1.      1NF (Bentuk normal pertama)
Yaitu suatu keadaan dimana setiap setiap field dalam tabel terisi semua dan tidak ada set atribut yang berulang atau ganda. Untuk memermudah pemahaman lihatlah contoh berikut :


1.      2NF (Bentuk normal kedua)
Dalam suatu tabel bentuk normal kedua akan terpenuhi jika data telah memenuhi bentuk 1 NF dan semua atribut bergantung (Functional Depedency) pada primary key, jadi dalam setiap tabel haruslah sudah di tentukan primary keynya. Apabila terdapat atribut yang tidak sepenuhnya bergantung pada primary key maka atribut tersebut haruslah dihilangkan atau dipindah (contoh No_klien pada tabel di bawah ini.)
Contoh :





1.      3NF (Bentuk Normal Ketiga )
             Bentuk normal ketiga terpenuhi jika telah memenuhi bentuk normal kedua dan tidak adanya ketergantungan transitif  yaitu sifat ketergantungan yang terjadi antara atribut non primary key:

Boyee-Codd Normal Form (BCNF)
Hampir sama dengan bentuk normal ketiga, hanya saja setiap atribut harus bergantung  fungsi(functiondependency) pada atribut super key.

2.      4NF (Bentuk Normal Keempat)
Bentuk normal yang telah memenuhi BCNF dan semua ketergantungan multivalue juga termasuk ketergantungan fungsional.

3.      5NF (Bentuk Normal Kelima)
Bentuk normal kelima disebut juga PJNF (Projection Join Normal Form), dilakukan dengan menghilangkan ketergantungan join yang bukan merupakan primary key.
            




Friday, November 16, 2012

Query Language


Query language adalah bahasa yang digunakan untuk mendapatkan informasi dari basis data. Bahasa query di dikelompokan  menjadi dua yaitu

  • Bahasa Prosedural
User memenrintahkan sistem untuk melaksanakan prosedur khusus untuk mendapat informasi yang di inginkan.
  • Bahasa Non-Prosedural. 
User menunjukan data yang di inginkan tanpa menyatakan suatu prosedur tertentu.
Bahasa query formal dibagi menjadi dua yaitu
·        Aljabar Relational
Yaitu kumpulan operasi terhadap relasi, setiap operasi menggunakan satu/ lebih relasi untuk menghasilkan suatu relasi baru.
Dapat dikelompokan menjadi dua bagian yaitu
1.     Operasi tunggal(unary operation)
Hanya beroperasi pada sebuah tabel atau sebuah relasi basis data saja. Macam operasinya yaitu
§  Select (σ).
Contoh query: diketahui relasi buku dengan atribut kode_buku, judul_buku, harga. Dicari buku dengan kode = buk304, maka bahasa querynya adalah
 

σ  kode_buku=”buk304”(buku)

§  Projection (π)
Untuk memperoleh atribut-atribut tertentu dari sebuah relasi.
Contoh: untuk menampikan judul_buku dan harga pada sebuah relasi buku maka dapat ditulis sebagai berikut:
 

                   Πjudul_buku, harga(buku)

§  Rename (ρ)
Operasi untuk menyalin tabel lama ke dalam tabel baru.
Contoh : Salinlah  table baru dengan nama DosenNew dari table Dosen,dimana jenis kelaminnya adalah ΆPriaᾼ.
 

ρ DosenNew (σ jkelamin=ᾼPriaᾼ(DOSEN))

2.     Operasi biner(binery operation)
§  Cartesius-Product (x)
Membentuk sebuah relasi dari gabungan dua atau lebih relasi.
Contoh : tedapat relasi buku dengan atribut( kode_buku, judul_buku, harga) dan relasi anggota yang terdiri dari atribut(kode_anggota, nama_anggota, alamat), maka untuk menggabungakan dua relasi tersebut yaitu:
 

bukuxanggota

§  Union (ᴗ)
Untuk mengabungkan tuple (kolom) dari dua relasi atau lebih but yang memiliki atribut sama. Contoh :
Relasi buku

Kode_buku
Judul_buku
Pengarang
231
Ranah 3 warna
Fuadi
223
Photoshope
Andi

Relasi anggota
         
Kode_anggota
Judul_buku
Jumlah_pinjam
A12
3D animation
1
B13
Ranah 3 warna
1

                   Contoh query yang dapat di gunakan yaitu:
                  
                   π Judul_buku(buku) π Judul_buku(anggota)

maka hasilnya:

Judul_buku
Ranah 3 warna
Photoshope
3D animation
Ranah 3 warna

         
§  Self difference (-)
Operasi untuk mendapatkan tabel yang contentnya berbeda antara satu relasi dengan relasi yang lain dalam atribut yang sama. Contoh: dengan menggunakan relasi buku dan anggota diatas kita cari union Judul_buku, querynya yaitu:
     π Judul_buku(buku) -π Judul_buku(anggota)
 



Hasilnya yaitu:

Judul_buku
Photoshope
3D animation