BAB I PENDAHULUAN

advertisement
BAB I
PENDAHULUAN
1.1 Latar Belakang
Fungsi agregasi adalah suatu fungsi yang menerima sebuah koleksi (set atau multiset) nilai sebagai
masukan dan mengembalikan sebuah nilai [SIL02]. Beberapa fungsi agregasi yang umumnya
dikenal adalah AVG (rata-rata), MIN (minimum), MAX (maksimum), SUM (total), dan COUNT
(jumlah). Operator agregasi pada sistem basis data menerima masukan berupa relasi atau atribut
dari sebuah relasi dan mengembalikan keluaran sebuah nilai atau relasi summary. Pemrosesan
operator agregasi ini biasanya dilakukan dengan terlebih dahulu mempartisi relasi masukan
menjadi beberapa kelompok tuple dengan nilai yang identik untuk satu atau lebih atribut,
kemudian menerapkan fungsi agregasi untuk masing-masing kelompok tuple tersebut [BOH06].
Penerapan fungsi agregasi pada basis data memiliki peranan yang cukup penting, terutama pada
aplikasi seperti data warehouse yang membutuhkan summary dari keseluruhan data.
Saat ini, aplikasi basis data pada dunia nyata, seperti pada bidang keuangan, medis, dan sains,
banyak yang membutuhkan pengelolaan aspek waktu dari data yang disimpan. Basis data yang
mendukung aspek waktu, di luar waktu yang didefinisikan oleh user (user-defined time), disebut
basis data temporal [JEN98]. Aspek temporal yang umumnya didukung oleh basis data temporal
adalah valid time yang berkaitan dengan keberlakuan data di dunia nyata dan transaction time
yang berkaitan dengan waktu ketika data dicatat pada basis data. Dengan adanya aspek temporal
ini, maka pemrosesan fungsi agregasi pada basis data temporal akan menjadi lebih kompleks
karena harus memperhatikan dimensi waktu dari data yang disimpan. Biasanya pemrosesan fungsi
agregasi terhadap data temporal memerlukan proses tambahan pada saat mempartisi relasi
masukan menjadi kelompok tuple, yaitu mengelompokkan data yang memiliki keberlakuan waktu
yang sama.
Sebenarnya saat ini sudah ada beberapa metode yang dikembangkan untuk memproses fungsi
agregasi pada basis data temporal seperti pada [MOT97, KIM99, MOO00, GOV03, TAO04,
BOH06]. Namun mereka hanya membahas pemrosesan fungsi agregasi untuk relasi valid-time,
yaitu relasi yang hanya mendukung dimensi temporal valid time. Sedangkan untuk relasi
bitemporal, yaitu relasi yang mendukung dimensi temporal valid time dan transaction time, belum
ada yang membahas. Agar penanganan fungsi agregasi pada basis data temporal yang ada dapat
digunakan untuk relasi bitemporal, maka dibutuhkan suatu pengembangan sehingga aspek waktu
yang ditangani tidak hanya valid time saja, tetapi juga meliputi transaction time.
I-1
I-2
Salah satu algoritma yang telah dikembangkan untuk memproses fungsi agregasi untuk relasi valid
time adalah aggregation tree [KLI95]. Algoritma ini menggunakan struktur pohon untuk
mengelompokkan data yang memiliki keberlakuan waktu yang sama. Setelah pohon dibangun,
nilai agregasi dapat dihitung dengan prosedur depth first search. Salah satu kekurangan dari
algoritma ini adalah dalam hal penanganan query dengan fungsi agregasi yang mengandung klausa
GROUP BY di mana sebelum diproses relasi masukan harus dipartisi terlebih dahulu berdasarkan
nilai suatu atribut. Dengan algoritma ini, penanganan jenis query tersebut mengharuskan
pembangunan pohon untuk masing-masing kelompok tuple. Agar pemrosesan query dengan
GROUP BY tidak perlu membangun sejumlah pohon, dibutuhkan modifikasi terhadap struktur
aggregation tree.
Untuk memodelkan relasi bitemporal, para ahli telah mengembangkan suatu model konseptual
yang disebut dengan bitemporal conceptual data model (BCDM). Ide utama dari BCDM adalah
menambahkan aspek temporal ke dalam fakta yang tersimpan pada basis data dengan tetap
mempertahankan kesederhanaan model relasional. Setiap tuple pada basis data diberikan
timestamp yang berupa himpunan (tt, vt) yang berarti pada status basis data di waktu tt
(transaction time), fakta yang tersimpan pada tuple valid di dunia nyata pada waktu vt (valid time).
Walaupun
strukturnya
sederhana,
namun
representasi
internal
BCDM
sulit
untuk
diimplementasikan. Oleh karena itu, dibutuhkan suatu model representasi yang memungkinkan
model konseptual ini dapat diimplementasikan pada sebuah relational database management
system (RDBMS).
Beberapa model representasi relasi bitemporal baik dengan bentuk relasi 1NF (First Normal Form)
maupun N1NF (Non First Normal Form) telah diusulkan, dengan kekurangan dan kelebihannya
masing-masing [JEN94]. Pada bentuk 1NF, aspek waktu dilekatkan pada tuple, sedangkan pada
bentuk N1NF, aspek waktu dilekatkan pada level atribut. Salah satu permasalahan pada bentuk
1NF adalah redundansi data. Sedangkan pada N1NF, permasalahan muncul karena hingga saat ini
RDBMS yang ada hanya melakukan pengelolaan data dalam bentuk 1NF, sehingga bentuk N1NF
tidak dapat diimplementasikan secara langsung pada RDBMS.
Beberapa bahasa query telah dikembangkan untuk memudahkan perancangan basis data temporal.
Bahasa query ini disebut dengan bahasa query temporal. Umumnya bahasa query temporal
merupakan pengembangan dari bahasa query relasional dengan menambahkan beberapa keyword
dan sintaks untuk query yang membutuhkan penanganan dimensi waktu yang didukung oleh basis
data temporal (query temporal). Salah satu bahasa tersebut adalah TSQL2 yang dikembangkan dari
bahasa query SQL92. Karena relasi bitemporal pada tugas akhir ini diimplementasikan pada
RDBMS, dibutuhkan suatu mekanisme konversi query temporal, dalam hal ini query retrieval
yang mengandung fungsi agregasi, menjadi bahasa query relasional, sehingga query temporal
terhadap relasi bitemporal dapat diproses.
I-3
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dijabarkan, maka rumusan masalah yang akan dikaji pada
tugas akhir ini adalah:
1. Bagaimana fungsi agregasi diterapkan pada data temporal yang memperhatikan aspek
temporal dari data, terutama pada relasi bitemporal.
2. Bagaimana mengembangkan lebih lanjut metode pemrosesan fungsi agregasi menggunakan
aggregation tree untuk relasi valid-time sehingga dapat digunakan untuk relasi bitemporal.
3. Bagaimana memodifikasi aggregation tree agar dapat menangani query yang mengandung
klausa GROUP BY tanpa harus membangun pohon untuk masing-masing kelompok tuple
relasi masukan, dan dapat memproses query yang mengandung fungsi agregasi spesifik
temporal.
4. Bagaimana melakukan konversi query temporal dengan fungsi agregasi dalam bahasa TSQL2
menjadi bahasa query standar SQL92 untuk mendukung metode pemrosesan agregasi terhadap
relasi bitemporal yang disimpan dalam sebuah RDBMS.
1.3 Tujuan
Tujuan utama dari tugas akhir ini adalah melakukan analisis penanganan fungsi agregasi pada
relasi bitemporal dengan mengembangkan lebih lanjut algoritma aggregation tree. Adapun tujuan
lebih rinci yang ingin dicapai pada pelaksanaan tugas akhir ini adalah:
1. Menganalisis penerapan fungsi agregasi pada relasi bitemporal.
2. Memahami metode pemrosesan fungsi agregasi yang telah dikembangkan untuk relasi validtime menggunakan aggregation tree.
3. Melakukan modifikasi terhadap aggregation tree agar dapat menangani query dengan klausa
GROUP BY tanpa harus membangun pohon untuk masing-masing kelompok tuple relasi
masukan, dan dapat memproses query yang mengandung fungsi agregasi spesifik temporal.
4. Menentukan sebuah metode pemrosesan query temporal dalam bahasa TSQL2 yang
mengandung fungsi agregasi terhadap relasi bitemporal yang disimpan pada RDBMS.
5. Membangun sebuah perangkat lunak sebagai antarmuka (middleware) yang dapat memproses
masukan query temporal dengan fungsi agregasi terhadap suatu relasi bitemporal yang telah
direpresentasikan pada sebuah RDBMS dan kemudian menampilkan hasilnya.
1.4 Batasan Masalah
Pelaksanaan tugas akhir ini menggunakan batasan-batasan sebagai berikut:
1. Query yang ditangani adalah query retrieval data dengan operator fungsi agregasi yang tidak
mengandung subquery dan operasi himpunan, serta hanya melibatkan sebuah relasi.
2. Kapasitas memory yang digunakan untuk pemrosesan agregasi diasumsikan tidak berhingga.
I-4
3. Mengadopsi sintaks query temporal TSQL2, yang dikembangkan berdasarkan BCDM dan
merupakan ekstensi dari SQL92 yang banyak digunakan sebagai bahasa query standar oleh
RDBMS umumnya.
4. Perangkat lunak hanya spesifik untuk sebuah RDBMS tertentu.
1.5 Metodologi
Pelaksanaan tugas akhir ini menggunakan metodologi dengan tahapan sebagai berikut:
1. Studi literatur
Pada tahap ini, dipelajari berbagai macam literatur yang terkait dengan topik tugas akhir,
seperti literatur yang membahas tentang basis data temporal, model representasi relasi
bitemporal pada RDBMS, sintaks query temporal TSQL2 secara umum dan yang terkait
dengan fungsi agregasi, serta literatur mengenai pemrosesan fungsi agregasi pada basis data
konvensional maupun pada basis data temporal relasi valid-time terutama mengenai
aggregation tree.
2. Analisis permasalahan
Hal-hal yang dianalisis pada tahap ini meliputi:
a. Penerapan fungsi agregasi terhadap data temporal pada relasi bitemporal.
b. Penerapan algoritma aggregation tree untuk relasi bitemporal.
c. Modifikasi aggregation tree untuk penanganan fungsi agregasi spesifik temporal dan
klausa GROUP BY.
d. Metode pemrosesan query temporal dengan fungsi agregasi dalam bahasa TSQL2 terhadap
relasi bitemporal yang disimpan pada RDBMS.
3. Pembangunan perangkat lunak
Tahap ini dapat dibagi menjadi beberapa sub-tahap sebagai berikut:
a. Analisis kebutuhan perangkat lunak.
b. Perancangan perangkat lunak berdasarkan hasil analisis, termasuk di dalamnya
perancangan antarmuka Graphical User Interface (GUI).
c. Implementasi perangkat lunak.
4. Pengujian hasil analisis metode pemrosesan fungsi agregasi didasarkan pada hasil query
menggunakan perangkat lunak yang telah dibangun.
5. Penarikan kesimpulan berdasarkan hasil pengujian yang telah dilakukan.
1.6 Sistematika Pembahasan
Buku laporan tugas akhir ini disusun berdasarkan sistematika pembahasan sebagai berikut:
BAB I
Berisi pendahuluan yang menguraikan tentang latar belakang masalah, rumusan
masalah, tujuan, batasan masalah, metodologi, dan sistematika pembahasan buku tugas
akhir.
I-5
BAB II
Berisi dasar teori yang menjelaskan tentang teori-teori terkait pelaksanaan tugas akhir
yaitu mengenai basis data temporal, BCDM dengan model representasinya, dan fungsi
agregasi termasuk algoritma pemrosesan agregasi yang sudah dikembangkan
sebelumnya.
BAB III Berisi analisis permasalahan yang meliputi analisis fungsi agregasi pada relasi
bitemporal, jenis-jenis query temporal terhadap relasi bitemporal, algoritma pemrosesan
agregasi menggunakan aggregation tree termasuk modifikasi yang diperlukan untuk
dapat diterapkan pada relasi bitemporal dan menangani fungsi agregasi spesifik temporal
dan klausa GROUP BY, serta pemrosesan query temporal terhadap relasi bitemporal
yang disimpan dalam RDBMS hingga mendapatkan hasilnya.
BAB IV Berisi penjelasan mengenai pembangunan perangkat lunak untuk menguji analisis yang
telah dilakukan sebelumnya beserta pengujian yang dilakukan.
BAB V
Berisi kesimpulan dari pelaksanaan tugas akhir dan saran untuk pengembangan
selanjutnya.
Download