Konsep Hirarki dengan Jumlah Nilai Berbeda Setiap

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