Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama
Software Development Laboratories SDL
pada tahun 1977. Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle
Corporation
sampai sekarang. id.wikipedia.org
2.2. Teori Khusus
2.2.1. Efisiensi OLAP
Query
2.2.1.1. Konsep Hirarki dengan Jumlah Nilai Berbeda Setiap
Atribut
Untuk memilih
cuboid
mana yang paling untuk melakukan
query
, hal yang harus diperhatikan diantaranya adalah hirarki. Menggunakan
bantuan hirarki maka sangat dimudahkan ketika memilih
cuboid
mana yang paling tepat untuk melakukan
query
, karena dengan menggunakan hirarki maka dapat melihat level dari dimensi-dimensi yang digunakan
pada gudang data
.
Sebagai contoh terdapat hirarki “
day month
quarter year
” pada dimensi
time
maka level yang terluar yakni
year
merupakan level yang paling baik . Selain itu juga perlu memperhatikan
granularity
data
data.
Granularity data
merupakan tingkat kedetailan dari data dalam suatu
data warehouse
. Dalam penelitian ini cara yang digunakan untuk menentukan
hirarki dari dimensi yang ada yakni dengan cara, pertama lakukan sorting secara
ascending
pada setiap atribut yang ada. Kedua hasil dari sorting tersebut diurutkan dari atas ke bawah dengan susunan atribut pertama
berada pada bagian paling atas. Dengan hasil hirarki yang didapat maka dapat menentukan apakah perlu ada perubahan susunan hirarki atau tidak.
Gambar 2. 7 Contoh hirarki yang terbentuk
Gambar 2.7 merupakan contoh hirarki yang terbentuk dengan masing-masing nilai yang dimiliki oleh masing-masing atribut. Hirarki
yang nantinya terbentuk sebagai berikut
street city province or state country
dari contoh hirarki tersebut tidak memerlukan perubahan hirarki, jika dilihat dari atributnya susunan dari yang paling spesifik ke
umum susunannya sudah tepat. Jiawei
et all
, 2006.
2.2.1.2.
Cuboid
Data warehouse
pada umumnya berisi data dalam jumlah besar. Untuk itu OLAP dituntut untuk dapat melakukan pemrosesan
query
dengan cepat. Didalam data
cube
terdapat
cuboid
yang menggambarkan dimensi yang ada didalam sebuah
cube
atau
group by
yang ada didalam
cube
tersebut.
Cuboid
berasal dari banyak dimensi, pengertian dari cuboid itu sendiri adalah
“data cube is a lattice of cuboids”, atau
data cube
merupakan pola-pola dari
cuboids. Cuboid
yang paling rendah disebut dengan
base cuboid
, sedangkan
cuboid
dengan tingkat paling tinggi disebut
apex cuboid
. Jiawei
et all
, 2006. Untuk lebih jelasnya dapat dilihat pada gambar 2.8 pada
base cuboid
terdiri dari tiga dimensi yakni
city, item
dan
year,
sedangkan pada
apex cuboid
atau 0-D
cuboid
menunjuk dimana
group by
tersebut kosong.
Gambar 2. 8
Lattice of cuboids,
3-D data
cube
untuk 3 dimensi. Setiap
cuboid
menunjukkan derajat yang berbeda.
Untuk menghitung jumlah
cuboid
maka jumlah total kubus untuk n-dimensi data kubus rumus 2
n
, namun rumus tersebut dapat digunakan jika tidak ada hirarki yang berhubungan dengan masing-masing dimensi.
Namun, dalam prakteknya banyak dimensi yang memiliki hirarki. Sebagai contoh, dimensi waktu biasanya tidak hanya pada satu tingkat konseptual
level, seperti
year
, tetapi lebih pada konsep
multiple
level , seperti dalam hirarki
day month
quater year
. Untuk n-dimensi data
cube
, jumlah kubus yang dapat dihasilkan termasuk kubus dihasilkan oleh hierarki
pada masing-masing dimensi adalah sebagai berikut dimana
1
L
i
adalah jumlah level yang berhubungan dengan suatu dimensi. Perhitungan
cuboid
tanpa hirarki maupun dengan hirarki diatas bertujuan agar tidak terjadi
curse of dimensionality. Curse of dimensionality
merupakan kondisi dimana kebutuhan penyimpanan berlebihan saat banyak dimensi memiliki hirarki dengan beberapa level.
Sebelum melakukan
query
pada gudang data, tahap yang harus dilakukan yaitu menentukan
cuboid-cuboid
yang mungkin yang akan
digunakan dalam melakukan
query.
Dari
cuboid
yang mungkin tersebut kemudian dipilih
cuboid
yang paling tepat untuk melakukan
query.
Jiawei
et all
, 2006.
Cuboid-cuboid
yang mungkin dipilih menggunakan hirarki, dengan bantuan hirarki dapat memilih
cuboid
yang mungkin dengan level yang baik. Jika level
cuboid
yang dipilih semakin baik maka besar kemungkinan
cuboid
tersebut akan digunakan untuk melakukan pemrosesan
query.
Setelah melakukan tahap menentukan
cuboid
yang mungkin dengan menggunakan hirarki, dan mendapatkan
cuboid
yang tepat untuk melakukan
query.
Tahap berikutnya adalah membuat indeks pada kolom tertentu dengan menggunakan
bitmap indexing
. Penggunaan
bitmap indexing
diharapkan dapat mempercepat waktu akses
query
.
2.2.2.
Bitmap Indexing
Indeks merupakan objek yang paling penting yang dibutuhkan pada saat membuat sebuat aplikasi. Begitu juga pada
database
Oracle, indeks menjadi salah satu faktor yang sangat menentukan unjuk kerja
aplikasi. Samsyiar, 2004 Untuk memudahkan dalam mengakses data, sebagian besar
data warehouse
mendukung struktur indeks. Didalam OLAP terdapat dua metode
indexing
yang dapat digunakan yakni
bitmap indexing
dan
join indexing
. Namun didalam OLAP yang paling banyak digunakan adalah
indexing
dengan menggunakan
bitmap
.
Bitmap indexing
memungkinkan pencarian data dengan cepat didalam data
cube.
Jiawei
et all
, 2006. Dalam
bitmap indexing
sebuah
bitmap
dibuat untuk setiap nilai kunci suatu daftar RowID seperti yang dilakukan dalam indeks B+
Tree.
Setiap bit dalam
bitmap
menunjuk pada sebuah RowID
.
Ketika bit diberi nilai 1, berarti RowID yang terkait berisi nilai kunci yang dimaksud.
Fungsi pemetaan akan mengubah posisi bit ke RowID sesungguhnya sehingga
record
dapat ditemukan ketika dilakukan operasi
query. Bitmap indexing
biasanya digunakan pada kolom yang mempunyai
low cardinality.
Seperti kolom jenis kelamin yang mempunyai jumlah data hanya „L‟ dan „P ‟ saja. Atau data yang lain dimana jika jumlah data dibagi
dengan jumlah total
record
yang ada mendekati nol. Jangan menggunakan
bitmap indexing
pada kolom yang mempunyai data yang unik, karena membutuhkan jumlah
space
yang lebih besar.
Bitmap indexing
sangat cepat apabila digunakan pada aplikasi yang sering menggunakan
ad hoc query
karena biasanya kriteria dari perintah
where
yang dipakai melibatkan kombinasi diantara kolom- kolom yang ada pada setiap tabel.
Bitmap indexing
sendiri tidak telalu banyak melakukan
scanning
terhadap data yang akan dicari sebab struktur dari
bitmap indexing
yang sangat kecil yaitu hanya terdiri atas beberapa
key
indeks
entries
saja. Oracle hanya akan mencari data dari
single bitmap
indexing
yang mempunyai nilai 1 dan 0 saja. Samsyiar, 2004 Keuntungan menggunakan
bitmap indexing
antara lain Budi Susanto, 2007:
1. Bekerja dengan baik dengan tabel yang berisi jutaan
record.
2.
Bitmap indexing
meningkatkan waktu respon secara drastis saat kondisi
multiple
join yang diberikan menunjuk pada kolom yang memiliki
bitmap indexing
. Indeks inijuga bekerja dengan baik untuk
query
yang memiliki beberapa klausa kondisi join AND, OR. 3.
Bitmap indexing
bekerja dengan baik jika kolom yang ditunjuk dalam indeks tidak sering di-update atau dihapus.
4.
Bitmap indexing
bekerja dengan baik ketika kolom yang berada dalam
bitmap indexing
memiliki kardinalitas jumlah perbedaan nilai yang rendah. Sebagai petunjuk sederhana untuk sebuah kardinalitas rendah
adalah sebuah kolom yang hanya memiliki perbedaan nilai kurang dari 12 macam nilai yang berbeda. Sebagai contoh jenis kelamin ya
atau tidak. Selain keuntungan yang ditawarkan oleh
bitmap indexing
terdapat juga kekurangan dari
bitmap indexing
, antara lain : 1.
Tidak dapat bekerja dengan baik dengan tabel yang memiliki
bitmap indexing
, dimana kolom kunci indeksnya sering di
update
atau dihapus
2.
Bitmap indexing
memerlukan pembangunan indeks kembali secara berkala
2.2.3. MDX