Anda di halaman 1dari 13

B-Tree dan R-Tree, Object Oriented Database, Multidimensional

Database, Spasial Database

UNTUK MEMENUHI TUGAS MATAKULIAH


PRAKTIKUM MULTIMEDIA DATABASE
yang dibina oleh Bapak M. Nurwiseso Wibiseno

oleh :
Dessy Adelina Putri (170535629570)

PRODI S1 TEKNIK INFORMATIKA


JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MALANG
OKTOBER 2018
B Tree dan R Tree

1. B Tree
B-Tree adalah sebuah m-ary balanced search tree khusus yang digunakan dalam basis
data karena strukturnya memungkinkan data yang disimpan untuk disisipi, dihapus, dan
diambil dengan jaminan proses dengan waktu terburuk, dimana setiap simpulnya terdiri
dari (m/2) sampai m buah simpul anak, di mana m > 1 merupakan bilangan bulat. m adalah
orde. Akar pohon B-tree paling sedikit memiliki 2 simpul anak. Strutur yang baik jika
digunakan pada memori yang lambat, karena ketinggian dan jumlah akses dapat diperkecil
dengan mengambil bilangan m yang besar.
Balanced tree atau pohon seimbang adalah pohon dimana tidak ada simpul daun yang
lebih panjang terhadap daun yang lain. Search tree adalah pohon dimana setiap subpohon
dari sebuah simpul mempunyai kunci lebih kecil dari subpohon kanan simpul tersebut.
Kunci dalam sebuah simpul secara konsep berada di antara subpohon-subpohon dan lebih
besar dari kunci di subpohon kiri simpul dan lebih kecil dari kunci di subpohon kanan
simpul. Sebuah B-Tree didesain untuk digunakan pada disk. Disk hanya dapat membaca
dan menulis blok data ukuran tetap (berukuran besar) sekaligus. Sebuah B-tree menyimpan
banyak kunci di setap simpulnya sehingga sebuah disk dapat mengakses banyak kunci,
dan faktor cabang pohon sangat tinggi (dalam prakteknya lebih besar dari 1000) sehingga
pohon dengan ketinggian kecil dapat menyimpan kunci dalam jumlah yang sangat besar,
yang dapat diakses hanya dengan beberapa operasi.
Konsep dari B Tree mirip dengan 2-3 tree, yang membedakannya adalah 2-3 tree
merupakan Tree ordo 3, sedangkan B Tree berordo bebas.
Contoh:

Ketentuan B Tree:
a. Tiap node maksimal bisa punya n anak
b. Tiap node minimal punya n/2 anak.
c. Root min punya 2 anak
d. Semua leaf berada di level yang sama
e. Data disusun berdasarkan sorter order
f. Node maksimal punya n-1 data.
Setiap node – node internal pada B – tree akan berisi sejumlah kunci. Biasanya,
jumlah kunci dipilih secara bervariasi antara d dan 2d. Pada prakteknya, kunci yang ada
mengambil sebagian besar space (tempat) dalam setiap node. Faktor ‘2’ akan menjamin
setiap node yang ada dapat dipisahkan atau digabungkan. Jika node internal
memiliki kunci sebanyak 2d, maka penambahan kunci lain pada node tersebut dapat
dilakukan dengan memisahkan node kunci 2d tersebut menjadi 2 node kunci d dan
menambahkan kunci tersebut pada node parent – nya. Setiap node yang akan dipisahkan,
memiliki jumlah kunci yang minimun. Demikian juga jika sebuah node internal dan
‘tetangga’ nya masing – masing memiliki kunci d, maka sebuah kunci dapat dihapus dari
node internal tersebut dengan menggabungkannya dengan ‘tetangga’ node tersebut.
Penghapusan kunci tersebut akan mengakibatkan node internal memiliki kunci sebanyak d
– 1; penggabungan dengan ‘tetangga’ akan menambahkan sebuah kunci d dan
satu kunci lagi yang berasal dari parent ‘tetangga’ nya. Hasilnya adalah seluruh node yang
ada penuh dengan kunci 2d.
Jumlah cabang (anak node) dari sebuah node akan satu lebih banyak dari jumlah kunci
yang tersimpan dalam node. Dalam sebuah 2-3 B – tree, node internal akan menyimpan
baik satu kunci (dengan 2 buah node anak) atau dua kunci (dengan tiga node anak). Sebuah
B- tree kadang – kadang digambarkan dengan parameter (d + 1) – (2d + 1) atau yang lebih
mudah dengan urutan cabang tertinggi, (2d + 1).
Tinggi dari B-Tree dengan jumlah key n dan degree t
dapat dicari memiliki nilai
B-tree bisa lebih besar dibandingkan struktur pohon
seimbang yang lain, basis dari logaritma cenderung lebih
besar. Sehingga jumlah simpul yang dikunjungi selama pencarian cenderung lebih kecil
dari yang dibutuhkan oleh struktur pohon yang lain. B-tree cenderung memiliki tinggi yang
lebih kecil dari pohon lain yang memiliki tinggi asimtotik yang sama.
Waktu Proses pada B-Tree
Sebuah B-tree dengan ketinggian n+1 dapat menghabiskan U waktu sebanyak jumlah
nilai pada B-tree dengan ketinggian n, tetapi waktu yang dibutuhkan untuk melakukan
operasi search, insert, dan delete bertambah sesuai ketinggian pohon, pertambahan pada
B-tree lebih lambat dibandingakan jumlah elemen. Karena setiap simpul cenderung
memiliki faktor percabangan yang besar, maka perlu untuk menelusuri beberapa simpul
sebelum menempatkan kunci yang diinginkan. Jika akses ke setiap simpul memerlukan
disk access, maka sebuah B-tree akan meminimumkan jumlah akses disk yang dibutuhkan.
Faktor minimalisasi biasanya dipilih agar ukuran total setiap simpul berkorespondensi
pada sebuah ukuran blok yang banyak pada sebuah alat penyimpanan. B-tree adalah
struktur data yang ideal untuk situasi di mana data tidak dapat disimpan pada tempat
penyimpanan primer dan akses pada tempat penyimpanan sekunder membutuhkan banyak
waktu. Waktu pencarian kasus terburuk pada derajat n-kunci B-tree adalah O(log(n)).
Sebuah simpul pada pohon B-tree memiliki t-1 <= K <= 2t-1 kunci yang terurut.
Kasus terburuk:
- K = t-1 untuk semua simpul
- X tidak ada pada pohon
Diberikan sebuah simpul W dalam pohon T. Berapa lama waktu yang dibutuhkan untuk
mencari subpohon dari W yang mengandung X. Dengan mengguanakan binary search
dibutuhkan

Karena tinggi pohon kasus terburuk adalah

maka total waktu yang diperlukan adalah

Pada B Tree terdapat beberapa operasi, yaitu:


a. Search
Operasi search pada B-tree mirip dengan search pada binary tree. Dimulai dari
akar, pohon ditelusuri dari atas sampai ke bawah, memilih pointer anak yang nilainya
berada pada sisi nilai yang dicari. Binary search umum digunakan (tidak selalu) di
antara simpul untuk menemukan nilai yang berbeda dan anak pohon yang dicari.
Untuk memilih diantara anak kiri dan anak kanan pada B tree, sebuah search
pada B-tree harus membuat pilihan sebanyak n cara. Anak yang sesuai dipilih dengan
melakukan pencarian linier pada nilai-nilai dalam simpul. Setelah menemukan nilai
lebih besar atau sama dengan nilai yang diinginkan, pencarian pointer anak disebelah
kiri segera dilakukan. Jika semua nilai yang dicari lebih kecil dari nilai yang
diinginkan, pencarian dilakukan pada pointer anak paling kanan.

b. Insert
Setiap penambahan dimulai dari sebuah node daun, untuk menambahkan
sebuah elemen. Pencarian dilakukan pada tree untuk menentukan node daun dimana
data baru harus ditambahkan. Langkah – langkah penambahan node:
1) Jika node berisi lebih sedikit dari jumlah elemen maksimum yang sudah
ditentukan, maka terdapat ruang untuk elemen yang baru.
2) Jika node – node sudah penuh, sehingga terbagi rata menjadi dua node maka:
- Sebuah median tunggal dipilih dari antara unsur – unsur daun dan elemen
baru.
- Nilai yang kurang dari median diletakkan pada node baru sebelah kiri dan
nilai yang lebih dari median diletakkan pada node baru sebelah kanan,
dengan median bertindak sebagai nilai pemisah.
- Tambahkan nilai pemisah pada node parent, yang akan menyebabkan node
tersebut akan memisah, dan seterusnya. Jika node tidak memiliki parent
(yaitu jika node adalah root), buat root baru di atas node
tersebut (menambahkan tinggi dari tree tersebut).
Jika pembelahan terjadi terus menerus sampai ke
akarnya (root), itu akan menciptakan root baru dengan
satu nilai pemisah dan dua anak (node child), itulah
sebabnya mengapa batas bawah dari ukuran node
internal tidak berlaku untuk root. Jumlah maksimum
data setiap node adalah U – 1. Di mana node berpisah,
sebuah data bergerak menuju parent, tetapi satu data
baru telah ditambahkan. Jadi, harus dimungkinkan untuk
membagi jumlah maksimum U – 1 data ke dalam dua
node yang sah. Jika jumlah ini adalah ganjil, maka U = 2L dan salah satu dari node
ini berisi (U - 2) / 2 = L – 1 data dalam node. Setengah dari jumlah adalah L – 1, yang
merupakan jumlah minimum data yang dibolehkan tiap node. (U untuk jumlah
maksimum, dan L untuk jumlah minimum).

c. Delete
Ada dua strategi yang populer dalam melakukan deletion pada B-tree:
- mencari dan menghapus nilai, lalu strukturisasi ulang pohon tersebut berdasarkan
invariannya
- melakukan sekali pass menuruni pohon, tetapi sebelum memasuki simpul,
strukturisasi ulang pada pohon sehingga bila kunci yang akan dihapus ditemukan,
kunci dapat dihapus tanpa mengakibatkan kebutuhan strukturisasi ulang lagi.
Ada dua masalah saat penghapusan elemen. Pertama, elemen dalam simpul
internal dapat bersifat sebagai pemsah terhadap simpul anaknya. Dan kedua,
penghapusan elemen mungkin membuat jumlah elemen dan anak di bawah nilai
minimum. Masing-masing permasalahan diatasi dengan pengaturan.Create
Deletion pada Simpul Daun
- Dilakukan pencarian pada nilai yang inging dihapus.
- Jika nilai berada pada simpul daun, dapat dengan mudah dilakukan penghapusan.
Tetapi memungkinkan menyisakan terlalu sedikit elemen sehingga perubahan
tambahan pada pohon perlu dilakukan.
Deletion pada Simpul Internal
Setiap elemen pada simpul internak berlaku sebagai nilai pemisah antara dua
subpohon, dan ketika elemen tersebut dihapus muncul dua kasus. Kasus pertama,
kedua simpul anak kiri dan kanan dari elemen yang dihapus memiliki jumlah elemen
minimum L-1 sehingga mereka dapat digabung menjadi simpul tunggal berisi 2L-2
elemen, yang tidak melebihi U-1 dan merupakan simpul legal. Kecuali ada
pernyataan elemen bersifat unik, maka harus dilakukan penghapusan semua elemen
yang sama secara rekursif.

d. Create
Perintah create pada B-Tree akan membuat node yang kosong. Pembuatan ini
dilakukan dengan mengalokasikan sebuah akar baru dengan nilai key kosong dan
menjadikannya daun
2. R Tree
R-tree merupakan struktur data pohon dengan record index untuk setiap node daunnya
yang berisi pointer menunjuk ke objek data. Index ini bersifat dinamik sehingga proses
insert dan delete dapat dilakukan bersamaan dengan search dan tidak ada reorganisasi
periodic yang perlu dilakukan.
Format record index yang disimpan pada setiap daun adalah
(I, tuple-identifier)
Di mana tuple-identifier merujuk kepada sebuah tuple di dalam basis data dan I adalah
polygon n-dimensional yang membatasi index objek spasial I = (I0, I1, … , In-1) Dengan n
adalah jumlah dimensi dan I adalah batasan tertutup untuk interval [a,b] yang
mendeskripsikan luas dari sebuah objek bersama dengan dimensinya. Sebagai alternative,
I bisa memiliki satu atau kedua endpoint, yang mengindikasikan luas objek. Nodal yang
bukan merupakan daun akan memiliki format index.
(I, child-pointer)
Di mana child-pointer adalah alamat dari nodal anak pada R tree tersebut dan I
mengcover semua polygon yang ada di nodal-nodal anaknya.
Algoritma pencari akan menyusuri pohon dari akarnya, meskipun demikian ada lebih
dari satu subpohon dibawah sebuah nodal yang perlu diperiksa sehingga tidaklah mungkin
untuk mengaransi performansi terburuknya. Akan tetapi dengan sebagian besar jenis data,
algoritma update akan mengurusi pohon dalam suatu format yang menyebabkan algoritma
pencari mengeliminasi area yang tidak relevan pada index dan hanya memeriksa data yang
dekat dengan area pencarian saja.
Struktur data R-tree ini berguna dalam pencarian string di database spasial. karena
sangat cepat dan kualitas split tidak akan berpengaruh besar terhadap performansi
pencarian.
Memasukkan record index untuk tuple data baru adalah dengan memasukkannya ke
dalam daun, kemudian nodal yang tertumpuk akan dipisahkan dan pemisahan tersebut
akan meluaskan bentuk pohon.
Jika tuple diupdate maka persegi panjang yang mengcovernya akan berubah, sehingga
record indexnya harus didelete, diupdate, kemudian dimasukkan kembali sehingga dapat
menemukan jalan yang benar di dalam pohonnya.

OODBMS

Object-oriented database adalah salah satu jenis database dimana data


direpresentasikan dalam bentuk object. Object Oriented Database merupakan sebuah sistem
data base yang menggabungkan semua konsep penting dari object oriented. Object Oriented
Databases menyimpan data dalam bentuk objek. Paradigma kemampuan Database berbasis
Object untuk Pemrograman dan database digabungkan untuk menghilangkan keterbatasan
database Relasional dan pada permintaan dari beberapa aplikasi lanjutan. Sebuah pendekatan
untuk menggabungkan konsep pemrograman berorientasi objek dengan database untuk
membuat sistem manajemen basis data yang kuat telah dikembangkan yaitu dengan
menggunakan fitur berorientasi objek. Pendekatan ini termasuk ekstensi relasional dan
berorientasi objek murni yang paling populer untuk mengembangkan sistem database
berorientasi objek.

OODBMS menghapus batasan RDBMS, juga menyediakan dukungan untuk aplikasi


basis data tingkat lanjut dengan beberapa fitur tambahan. Namun karena kurangnya standar,
mereka tidak mendapatkan banyak popularitas di industri. Kemudian setelah beberapa waktu,
beberapa keterbatasan ditemukan dalam sistem manajemen basis data berorientasi objek.
ODBMS mengelola data persisten, objek tidak kehilangan strukturnya setelah aplikasi
menyimpannya dalam database objek. Pindah ke ODBMS mungkin berarti membuang semua
data dan aplikasi lama. Solusi tersebut kurang diterima oleh sebagian besar pengguna basis
data karena mereka ingin menjalankan aplikasi yang ada di basis data yang ada dan memiliki
akses ke data yang sama dari program berorientasi objek juga. Oleh karena itu, diperlukan
teknik khusus untuk mengkonversi data yang berada dalam database relasional ke format yang
cocok untuk akses dan manipulasi oleh aplikasi berorientasi objek.

Suatu DBMS harus menyediakan fasilitas untuk menyimpan objek yang persistent. Objek yang
persistent adalah objek yang tetap ada setelah user session atau program aplikasi yang
membuatnya dimatikan. Ini kontras dengan transient object yang hanya ada selama program
menjalankannya. Persistent object akan tetap ada hingga tidak dibutuhkan lagi atau dihapus.

Multidimensional Database

Multidimensional Database (MDB) merupakan variasi dari model relasional yang


mengunakan struktur multidimensional mengorganisasikan data dan menjelaskan relasi antara
data.Multidimensional database juga memodelkan data sebagai fakta, dimensi,dan numerik
untuk menganalisis data dalam jumlah besar, yang bertujuan untuk mengambil keputusan.

Contohnya adalah InterSystems Cathe, ContourCube, dan Cognoa PowerPlay.


Database multidimensional menggunakan bentuk kubus untuk mempersentasikan dimensi-
dimensi data yang tersedia bagi seorang, maksimal empat dimensi. Sebagai contoh,"penjualan"
bisa dilihat dengan dimensi (1) model produk, (2)geografi, (3) waktu, atau (4) beberapa
dimensi tambahan.Dalam Multidimensional Database, data tersebut ditunjukkan kepada
pengguna melalui array multidimensi, dan setiap nilai individual dari data yang terkandung
dalam kubus dapat diakses oleh beberapa indeks. Jenis database biasanya disusun dalam urutan
yang mengoptimalkan OLAP (online analytical processing) dan data warehouse aplikasi.
Karena Multidimensional ini merupakan data yang sangat besar, data ini digunakan untuk
untuk analisis (menganalisa orientasi kepada pembuat keputusan), yang berguna untuk
mengintegrasikan sistem data laporan, mempercepat proses pelaporan dan mempermudah
penyusunan data yang sangat besar.
Perbedaan OLAP dengan OLTP

Multidimensional database biasanya digunakan untuk bisnis intelijen (BI). Misalnya,


untuk “penjualan” bisa dilihat dalam dimensi model produk, geografi, waktu, atau beberapa
dimensi tambahan lainnya. Dalam hal ini, “penjualan” dikenal sebagai atribut ukuran kubus
data dan dimensi lain yang dilihat sebagai atribut fitur.

Contoh Mutidimensi Database :


• Spreadsheet

• Cube
kubus sample memuat data penjualan buku. Kubus data dapat melihat sampai empat dimensi
sekaligus. Dalam hal ini kubus mengeneralisasi spreadsheet dari table hingga 3 dimensi-
buku,waktu, lokasi

Data Spasial
Tipe data spasial adalah tipe data khusus yang diperlukan untuk memodelkan geometri
dan merepresentasikan data geometri yang sesuai dalam sistem basis data. Tipe data spasial
digunakan ntuk memodelkan struktur geometris dari objek-objek, hubungan mereka, properti,
dan operasi serta merupakan bagian penting dari model data.

Data pada SIG memiliki berbagai macam bentuk, mulai dari data mentah maupun data
yang sudah dalam bentuk siap tampil. Misalnya data array dari GPS (kordinat), hasil scanning
peta, digitasi, dan lain-lai, dimana tiap titiknya diwakili oleh nilai longitude (garis bujur) dan
latitude (garis lintang).

Contoh data spasial dan data non spasial seperti “Data Objek Permukiman” yaitu :

 Data Spasial: Data grafik berbentuk poligon yang merupakan closed area yang
menghubungkan posisi-posisi geografis.
 Data Non-Spasial: Luas Permukiman, Jumlah Penduduknya, Jumlah Rumah,
Jumlah Kepala Keluarga, Pendapatan Rata-Rata Kepala Keluarga,

Secara umum data spasial memiliki dua jenis tipe yaitu data vektor dan data raster. Model data
vektor mampu menampilkan, menempatkan, dan menyimpan data spasial dengan
menggunakan titik-titik, garis-garis atau kurva, atau poligon beserta atribut-atributnya dengan
format digital dan disimpan dalam bentuk koordinat x,y (vector).
Informasi lokasi atau geometri milik suatu objek spasial dapat dimasukkan ke dalam
beberapa bentuk seperti berikut :

Gambar 1 Contoh Data Spasial Dalam Bentuk Titik (PPPPPTK, 2016)


Pada Gambar 1 diatas, mengambarkan contoh letak pohon, penggambaran titik tersebut, dalam
bentuk koordinat tunggal, tampa panjang dan tanpa luasan.

Garis meliputi semua unsur – unsur linier yang dibangun dengan menggunakan segmen –
segmen garis lurus yang dibentuk oleh dua titik koordinat atau lebih. seperti contoh pada
Gambar 2 dibawah ini:

Gambar 2. Contoh Data Spasial Dalam Bentuk Garis (PPPPPTK, 2016)


Pada Gambar 2 diatas, mengambarkan contoh jaringan jalan, jaringan sungai dan
penggambaran garis tersebut, dalam bentuk koordinat titik awal dan akhir serta mempunyai
panjang tampa luasan.

Area merupakan objek dua dimensi bentuk polygon yang sering digunakan untuk merancang
suatu kawasan adalah :
- Simple Area : Suatu area yang didefinisikan berdasarkan ring terluar yang tidak memiliki ring
didalamnya (holes).
- Complex Area/polygon : Suatu area yang didefinisikan berdasarkan ring terluar dan juga
memiliki didalamnya (area dalam area).
Bentuk simple area dan complex area dapat dilihat pada Gambar 3 dibawah ini,

Gambar 3. Data Spasial Dalam Bentuk Poligon (a) Simple Area, (b) complex area
(Jafar,2009)

Anda mungkin juga menyukai