Sabtu, 24 November 2012

Dependency dan Normalisasi

Lanjut ke materi perkuliahan ke 7. Pada perkuliahan yang saya ikuti waktu sore hari lalu, ditengah derasnya hujan dan angin kencang (hehe), bapak dosen menjelaskan materi kuliah mengenai dependency dan normalisasi. Berikut ini sedikit rangkuman yang dapat saya tangkap dari penjelasan kemarin.

Functional Dependency (ketergantungan fungsional) : menggambarkan hubungan, batasan, keterkaitan antara atribut-atribut dalam relasi. Suatu atribut dikatakan fuctional dependency pada yang lain jika kita menggunakan harga tersebut untuk menentukan harga atribut lain. Functional dependency dapat digambarkan dengan tanda panah. Contoh :
  
Contoh diatas : dibaca A menentukan B, atau B tergantung pada A.

Selanjutnya adalah Macam-macam Dependency :
  • Function Dependency
    • Full Dependency (ketergantungan penuh) : ini artinya B memiliki ketergantungan fungsional secara penuh pada A. B bukan memiliki dependency terhadap subset A.
                    Contoh : terdapat sebuah tabel seperti dibawah ini

 

                               {NIM, Nama} --> idRuang bukan merupakan Full Dependency. agar menjadi Full
            Dependency atribut Nama dihilangkan. Menjadi : NIM --> idRuang.
    • Partially Dependency (ketergantungan parsial) : B memiliki ketergantungan terhadap subset A. 
                    Contoh : terdapat sebuah tabel seperti dibawah ini

 

                              {NIM, Nama} --> idRuang merupakan partially dependency. Dimana jika salah 
                               satu atribut dihilangkan (Nama dihilangkan), maka ketergantungan masih tetap
                               ada.

    • Transitive Dependency : A menentukan B, B menentukan C. Jadi bisa dikatakan A menentukan C melalui B.
                    Contoh : terdapat sebuah tabel seperti dibawah ini

 

                           NIP --> kdCabang, kdCabang --> almCabang. Jadi NIP menentukan almCabang 
                           melalui kdCabang.

Sekarang kita berlanjut ke Normalisasi.. Masih bingung juga saya... Tapi ini sedikit materi yang bisa saya rangkum.

Normalisasi : adalah proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali. Sehingga sebagian ambiguitas dalam struktur data bisa dihilangkan.

Berikut ini ada beberapa alasan mengapa kita melakukan normalisasi :
  1. Optimalisasi struktur-struktur tabel
  2. Meningkatkan kecepatan
  3. Menghilangkan pemasukan data yang sama
  4. Lebih efisien dalam penggunaan media penyimpanan
  5. Mengurangi redudansi (penggandaan data)
  6. Mengindari anomali
  7. Integritas data yang ditingkatkan
Terdapat beberapa bentuk normalisasi yang biasa digunakan 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)
Dari 6 bentuk normalisasi diatas, saya hanya akan menjelaskan poin 1 - 3. yang poin 4 - 6 insya alloh akan  saya jelaskan pada postingan berikutnya.

1NF (Bentuk normal Pertama)
adalah suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai, atau tidak ada dua value dalam satu atribut.

2NF (Bentuk normal kedua)
Bentuk normal 2NF terpenuhi jika memenuhi 1NF, dan semua tribut selain primary key, secara utuh memiliki Functional Dependency pada primary key. Jika ada tribut yang tidak mempunyai ketergantungan pada primary key, maka dihapus.

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

Rabu, 14 November 2012

Query Language

Query language atau Bahasa Query adalah bahasa khusus yang digunakan untuk melakukan query (perintah-perintah untuk mengakses data) pada sistem basisdata.
Bahasa Query dapat dikategorikan menjadi 2, yaitu :
  1. Bahasa prosedural : identik dengan aljabar relational. Bahasa prosedural merupakan suatu bahasa yang membuat suatu urutan instruksi.
  2. Bahasa non prosedural : identik dengan kalkulus relational dan kalkulus relasional tupel. Bahasa non prosedural mendeskripsikan informasi tanpa memberikan urutan instruksi.

Bahasa DBMS :

  • Data Definition Language (DDL) : Mendefinisikan skema dan penyimpanan disimpan dalam Data Dictionary. 
  • Data Manipulasi Bahasa (DML) : Manipulatif mengisi skema, update database, retrieval query isi database.
  • Data Control Language (DCL) : Perizinan, akses kontrol dll.
   
Query Operators
  • Relational Aljabar
    •   tuple (unary) Seleksi, Proyeksi 
    •   set (biner) Union, Intersection, Perbedaan 
    •   tuple (biner) Join, Divisi
  • Additional  Operator 
    • Outer Join, Uni Outer


Aljabar Relational
Aljabar relasional merupakan suatu bahasa query procedural  yang memiliki satu atu dua masukkan dan menghasilkan sebuah keluaran dari  operasi tersebut. Ada dua operasi pada aljabar relasional yaitu operasi dasar dan operasi tambahan
  • Operasi Dasar  : terdiri atas select, project, cross, union, intersection, subdifference, rename,Cartesian product
  • Operasi Tambahan  : terdiri atas set intersection,tetha join , natural join, division

Jenis-jenis Operasi
  • Unary  : suatu operasi yang hanya digunakan pada suatu relasi
  • Binary  : suatu operasi yang memerlukan sepasang relasi
Selection
Selection merupakan suatu operasi untuk menyeleksi tupel-tupel yang memenuhi suatu predikat.

Projection
Projection merupakan sebuah operasi unary yang digunakan untuk memperoleh kolom-kolom tertentu.