Deductive Database for BasDat-ers

June 10, 2009

EDISI I oleh Mochamad Ikrar Pradana / 13507063

10 Juni 2009

Apa itu Deductive Database ??

Untuk yang penasaran🙂, Deductive Database merupakan area perpotongan antara basis data, logika, dan intelegensia buatan. Sistem Deductive Database sendiri biasa dipanggil juga dengan sebutan Logic Databases. Kenapa begitu ?? Hal ini disebabkan oleh kapabilitas mekanisme dari sistem ini untuk memberikan pengetahuan baru tentang suatu data yang tersimpan, dengan menambahkan suatu ‘pola hubungan’ antardata — yang disebut dengan istilah rules. Nah, karena kelebihan di poin ini…

Sistem Deductive Database didefinisikan sebagai  sebuah sistem basis data yang memiliki kemampuan untuk mendefinisikan rules turunan (deduktif) yang dapat memberi kesimpulan berupa suatu informasi tambahan, mengenai fakta-fakta yang tersimpan di dalamnya.

Hal lain tentang sistem basis data ini adalah bahwa sistem ini merupakan salah satu ekstensi dari sistem basis data relasional. Namun, tidak seperti kebanyakan ekstensi sistem relasional lainnya, sistem ini memiliki sifat deklaratif.  Sistem yang seperti apakah itu ?? Sistem yang deklaratif adalah sistem yang memfasilitasi penggunanya untuk melakukan query ataupun update dengan menjabarkan Apa yang ingin dihasilkan oleh sistem — bukan Bagaimana sistem harus beroperasi.

Jadi, teknologi Deductive Database memiliki kelebihan di beberapa poin..

1. Sifat sistem yang deklaratif

Pada sistem relasional yang terdahulu, banyak timbul permasalahan pada optimisasi peng-kode-an query. Dengan kemudahan yang diberikan oleh sistem, operasi sistem hampir bisa dipastikan sebagai operasi yang paling efisien dan efektif untuk memberikan hasil yang diinginkan.

2. Kemampuan sistem untuk menyajikan semantik data yang non-monotonic

Kesimpulan yang tidak monoton adalah kesimpulan yang tidak bisa diperoleh dari fungsi logika klasik. Sistem ini mampu untuk memberikan definisi yang lebih dari logical statements yang tersimpan di dalamnya, kepada programmer.

———————————————————————————————————–

EDISI II oleh Mochamad Ikrar Pradana / 13507063

25 Juni 2009

Konsep apakah yang perlu dipahami terkait dengan Deductive Database ?? part 1

Oke.. sekarang sudah jelas kan, kira-kira dalam kasus seperti apa saja sistem basis data deduktif ini pas untuk digunakan. Sebelum mulai menggunakan aplikasi dari sistem ini, terdapat beberapa konsep yang perlu dipahami terlebih dahulu…

Konsep Prolog

Prolog adalah satu bentuk logic programming yang berkaitan dengan intelegensia buatan dan bahasa komputasional. Penggunaan prolog inilah yang membuat Deductive Database sangat berkaitan erat dengan pemrograman berbasis logika, sampai-sampai Deductive Database sendiri bahkan bisa disebut sebagai suatu bentuk adaptasi dari pemrograman prolog di bidang basis data. Terdapat beberapa hal yang perlu diperhatikan terkait dengan hal ini :

1. Strategi evaluasi pada penggunaan prolog adalah depth first

Hal ini menyebabkan adanya kemungkinan untuk didapatkan hasil berupa infinite loops. Oleh sebab itu, sebaiknya untuk volume data yang besar lebih diutamakan kesempurnaan dan kejelasan terminasi dari metode evaluasi, dibanding argumen-argumen operasional.

2. Dalam pengaplikasian basis data, pada umumnya jumlah data yang diolah sangat besar sehingga mayoritasnya tersimpan di secondary storage.

Maka itu, efisiensi akses ke data yang bersangkutan sangatlah krusial dalam menentukan kebagusan performansi dari sistem.

Tipe data tunggal dari sebuah prolog adalah term. Term dapat berupa atoms, numbers, variables atau compound terms.

Atom adalah nama yang umum tanpa satu arti yang spesifik. Atom terdiri dari satu sequence karakter yang di-parse sebagai satu unit tunggal tanpa sintax tertentu, seperti ; kucing, [ ], jalan_raya, ‘Kurap’, ‘atom aja’, dan lain sebagainya.

Numbers dapat berbentuk integer, float, ataupun bilangan rasional lainnya.

Variables terdiri dari satu set huruf, atau beberapa kata yang digabungkan dengan ‘_’ (underscore), dimulai dengan huruf kapital.

Compound term terdiri dari sebuah atom yang disebut functor dan beberapa term yang disebut argumen . Compound terms biasa dituliskan dengan urutan; functor, diikuti sebuah list argumen dipisahkan dengan tanda koma di dalam tanda kurung. Jumlah dari argumen disebut sebagai arity dari term. Hal ini membuat sebuah atom disebut sebagai term dengan arity sejumlah nol.

Contoh compound term:

pacaran(andi, dona) –> arity = 2

‘Punya_Mobil'(gugun, [‘Mercy’, ‘BMW’, ‘Avanza’]) –> arity = 2

tambah(x, y, hasil) –> arity = 3 … diketahui x dan y

Begitu saudara-saudara :)…  Jadi terlihat sekarang bahwa prolog di dalam Deductive Database menyebabkan eratnya konsep pemrograman logika di sistem basis data ini.

———————————————————————————————————–

EDISI III oleh Mochamad Ikrar Pradana / 13507063

11 Juli 2009

Konsep apakah yang perlu dipahami terkait dengan Deductive Database ?? part 2

Di edisi sebelumnya sudah dibahas mengenai Prolog. Nah, kira-kira prolog ini dikembangkan ke arah mana ya di dalam Deductive Database ??

Konsep Facts & Rules

Dalam notasi dan penggunaan Deductive Database, terdapat dua hal yang menjadi bahan ‘mainan’ nih; yaitu facts & rules..

  • Facts atau Data diwakili oleh predikat dan disertai dengan konstanta argumen

contoh : adik (Popi, Hani) —-> berarti Popi adalah adik dari Hani.. ‘ adik ‘ disini merupakan predikat yang menghubungkan Popi dengan Hani.

  • Rules atau Program digunakan untuk mendefinisikan relasi virtual berdasarkan suatu spesifikasi tertentu. Biasanya dituliskan dalam notasi Prolog seperti (ex. p :- q1, …, qn).

p disebut Head yang merupakan konklusi dari program. Head akan bernilai true jika setiap predikat di bagian kanannya bersifat true; q1, …, qn disebut Body atau subgoal. Tanda koma antar variabel bisa dibaca sebagai hubungan ‘and’; tanda :- memiliki arti seperti ‘ if ‘.

contoh : bos (Dodi, Asep) :-  memerintah (Dodi, Asep) —-> Dodi adalah bos dari Asep, jika Dodi memerintah Asep

Contoh …

Facts :

guru (Budi, Tono)

guru (Tono, Santi), ayah(Papa, Ina)

Rules :

guru (Budi, Tono) :- mengajar (Budi, Tono)

guru (Tono, Santi) :- murid (Santi, Tono)

guru (Budi, Santi) :- guru (Budi, Tono), guru (Tono, Santi)

ayah (Papa, Ina) :- anak (Ina, Papa), pria (Papa)

Jelas kan🙂 ? Jadi notasi di dalam Deductive Database  memiliki bentuk yang persis seperti pemrograman logika, yaitu dengan Prolog.

———————————————————————————————————–

EDISI IV oleh Mochamad Ikrar Pradana / 13507063

25 Juli 2009

Interpretasi & Meaning dari Query

Oke… Setelah memengerti penulisan Query dalam Deductive Database (Prolog), selanjutnya perlu diketahui dulu bagaimana cara kita menginterpretasikan maknanya.

1. Bila argumen terdiri satu atau lebih variabel, query akan mengembalikan ‘nilai’ dari variabel

2. Bila argumen terdiri dari konstanta saja, query akan mengembalikan nilai True atau False

contoh Query :

ayah(Papa, Ina)?

Seperti yang sudah beberapa kali disebutkan, Deductive Database akan selalu mengenai Facts & Rules. Nah terkait dengan itu, terdapat beberapa alternatif cara mendefinisikan makna dari Rules..

1. Proof-theoretic Interpretation

Dengan cara ini kita bermaksud membuktikan suatu fakta dari fakta2 lain di dalam database, menggunakan rules. Hal ini dilakukan dengan membaca rule dengan arah maju; mengartikan bagian kiri(konklusi) dari fakta di bagian kanan(argumen).

contoh:

pilot(Joko) :- menerbangkan(Joko, Pesawat)

dibaca –> Joko adalah seorang Pilot, karena Joko menerbangkan Pesawat

2. Model-theoretic Interpretation

Dengan cara ini, kita melihat rules sebagai model yang memberikan nilai ‘true’ atau ‘false’ kepada tiap kemungkinan instance dari predikat rules tadi.

3.  Computational Definition of Meaning

Ini dilakukan dengan menyusun sebuah algoritma yang mengeksekusi logical rules, untuk menentukan kebenaran dari fakta2 lainnya.

Oke, sampai sini dulu untuk edisi kali ini. Semoga bermanfaat…🙂

———————————————————————————————————–

EDISI V oleh Mochamad Ikrar Pradana / 13507063

10 Agustus 2009

KESIMPULAN

/*

Sebelumnya saya meminta maaf dulu atas keterlambatan saya posting. Hal ini dikarenakan deadline posting yang ternyata jatuh pada minggu terakhir magang saya di Balikpapan, ketika saya tengah penuh mempersiapkan laporan dan interview akhir. Untuk itu, saya berterimakasih apabila saya diijinkan untuk mem-post sekarang, setelah saya kembali berada di pulau jawa. Atas maklum kakak2, saya sangat berterimakasih..

*/

Akhirnya kita sampai juga di penghujung eksplorasi. Setelah mempelajari banyak mengenai Deductive Database, bisa di-review kembali hal-hal yang terkait dengan sistem basis data ini…

  1. Deductive Database disebut juga Logic Databases, karena mampu memberikan informasi turunan mengenai suatu fakta
  2. Deductive Database bersifat deklaratif
  3. Deductive Database menyajikan data yang tidak monotonik
  4. Deductive Database menggunakan konsep Prolog dalam implementasinya
  5. Deductive Database dapat diinterpretasikan melalui lebih dari satu cara pemahaman

(serius mode on) Deductive database telah mampu menjadi interface antara permasalahan teoritis dan praktikal. Untuk menjadi ekstensi basis data relasional dengan tetap memiliki gaya pemrograman yang deklaratif, Deductive Database menggunakan bahasa berbasiskan rules yang mampu mengekspresikan aplikasi yang komplit. Dengan ini, diyakini bahwa Deductive Database akan bisa meningkatkan kemampuan sistem basis data untuk menjadi solusi permasalahan di masa depan, secara substansial. Beberapa hal yang dapat dilakukan oleh sistem basis data ini adalah kemampuan untuk mengekspresikan query yang kompleks untuk mengidentifikasikan pola pengembangan dalam database yang besar, dan berurusan dengan database heterogen yang terdistribusi.

(serius mode off) Jadi cukup sudah pengetahuan mendasar yang bisa dipaparkan disini mengenai Deductive Database. Semoga jadi bermanfaat, dan dapat menumbuhkan minat teman-teman yang membaca tentang kelimuan Basis Data.

Sampai JUMPA !!!🙂

============================================================    THE END….

— for better Lab BasDat —

Daftar Pustaka :

http://en.wikipedia.org/wiki/Deductive_database. Akses : 10 Juni 2009

http://en.wikipedia.org/wiki/Non-monotonic_logic. Akses : 10 Juni 2009

http://en.wikipedia.org/wiki/Prolog. Akses : 25 Juni 2009

http://en.wikipedia.org/wiki/Horn_clause. Akses : 25 Juni 2009

http://en.wikipedia.org/wiki/Logic_programming. Akses : 11 Juli 2009

http://kti.mff.cuni.cz/~bartak/prolog/first_steps.html. Akses : 25 Juni 2009

Slide Kuliah IF5011. 2003. Deductive Databases. Teknik Informatika ITB

Ullman, Jeffrey D, Zaniolo, Carlo. 1990. Deductive Databases: Achievements and Future Directions. Stanford University

Ullman, Jeffrey D, and friends. 1993. A Survey of Research on Deductive Database Systems. Stanford University

One Response to “Deductive Database for BasDat-ers”

  1. h_3nd_y said

    ada referensi implementasi dalam DBMS nya ga????

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: