Friday, December 21, 2012

Sub Query

Sebelum belajar sub query alangkah baiknya kita flash back dulu, apa sih query itu?
Query adalah semacam kode-kode (kemampuan) yang bisa digunakan untuk memanipulasi data baik menambah data, penghapusan, update dan lain sebagainya di dalam database. Contoh query yaitu:
select *from mahasiswa; maksud query tersebut adalah menampilkan semua data yang terdapat dalam tabel mahasiswa. Setelah paham makna query dan implementasinya, sekarang berinjak ke topik utama yaitu sub query, dari struktur bahasanya, kira-kira kita sudah bisa menembak-nebak apa sih makna dari sub query itu??
Sub query adalah query yang berada di dalam sebuah query. Sub query dapat di letakan di klausa : WHERE, HAVING dan FROM. Untuk lebih mudah memahaminya lihatlah contoh berikut ini:
Script (select sal from EMP WHERE empno=7566) adalah sub query dari query utama yaitu SELECT ename FROM EMP WHERE sal>. Contoh lain dari sub query dapat kita lihat dari contoh soal di bawah ini:

Query dari soal di atas yaitu sebagai berikut:

Sub querynya yaitu: Select MAX(nilai) FROM ambilmk WHERE kodeMK='A02'.  Hasil dari sub query ini nantinya akan di gunakan sebagai syarat dari query di atasnya

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