migrasi data dari basisdata relasional ke basisdata dokumen dan

advertisement
Tugas Akhir - 2012
MIGRASI DATA DARI BASISDATA RELASIONAL KE BASISDATA DOKUMEN
DAN FRAMEWORK MAPREDUCE
Mohammad Shahrizal Prabowo¹, Kemas Rahmat Saleh Wiharja², Warih Maharani³
¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom
Abstrak
Data semistruktural kini mulai diminati oleh sebagian kalangan. Sifat data semistruktural yang
fleksibel dalam pendefinisian skema, memudahkan pengembang untuk segera menjawab tuntutan
aplikasi dengan cepat. Fleksibilitas skema yang ditawarkan juga sesuai untuk menyelesaikan
beberapa permasalahan, terutama untuk domain data yang tidak relasional.
Salah satu model basisdata semi struktural yang populer adalah basisdata berorientasi dokumen.
Pada basisdata ini, antara data dan strukturnya dienkapsulasi dalam suatu dokumen. Salah satu
alasannya, adalah agar lebih sesuai dalam memodelkan data di dunia nyata, dimana data masih
belum dinormalisasi. Konsep dimana data dan struktur dienkapsulasi dalam satu dokumen ini
dikenal dengan istilah self contained data.
Selain perbedaan model datannya, basisdata dokumen juga memiliki perbedaan dalam melakukan
query. Karena basisdata ini masih belum standar, dan masih aktif dikembangkan oleh beragam
pihak, maka model querynya pun berbeda antara satu dengan lainnya. Beberapa basisdata
dokumen menggunakan bahasa deklaratif, sementara yang lain menggunakan bahasa prosedural.
Salah satu model prosedural akan diteliti pada tugas akhir ini, yaitu MapReduce.
Pada tugas akhir ini, akan dilakukan migrasi data employees, yang sebelumnya menggunakan
basisdata relasional ke basisdata dokumen. Migrasi dilakukan untuk lebih memahami perbedaan
antara model relasional serta model dokumen. Setelah itu, akan dilakukan benchmark untuk
mengukur perbedaan performa antara basisdata relasional dan dokumen.
Hasil dari tugas akhir ini adalah aplikasi yang mampu melakukan migrasi dari tabel relasional ke
dokumen dengan tiga model yang berbeda: Self Contained, Normalized, dan Mixed. Selain itu,
dari hasil pengujian yang dilakukan diperoleh bahwa fleksibilitas dari data semistrukutral
berdampak pada konsumsi disk space yang lebih besar, waktu pembuatan indeks yang lebih lama,
serta batasan dalam hal query yang bisa dilakukan melalui model MapReduce
Kata Kunci : Semi Structured Data, Data Migration, MapReduce, Document Oriented
Database,Relational Database, Database Benchmark
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
Abstract
Semistructured data is on rise, with some people embracing its use. Its data characteristics that
is flexible in schema definition, makes it easy for developer to answer application demand faster.
Flexibility schema that is given is also appropriate for certain use case, especially where given
domain data is not relational.
One of the popular semi-structured database model are document-oriented database. On this
database, the data and its structure is encapsulated in a document. One reason, is to better fit in
the data model of the real world, where data is not yet normalized. Concepts and structures where
data is encapsulated in a single document is known as self-contained data.
In addition to differences in data models, document databases also has the distinction of doing its
query. Because the database is not yet standardized, and is still actively developed by various
parties, then the query model are different from one another. Several document databases using a
declarative language, while others use a procedural language. One of the procedural models will
be studied in this final project, is MapReduce.
In this final Project, data migration of employees schema will be done, which was using relational
data, to document database. Migration is done to better understand the differences between the
relational model, and document model. After that, benchmark will be done to measure the
performance differences between relational databases and documents.
The result of this Final Project is application that is capable of doing migration from relational
table to document with three different model: Self Contained, Normalized, and Mixed. In addition,
the results of testing conducted found that the flexibility of the data semistrukutral has impact on
larger disk space consumption, index creation time that is longer, as well as limitations in terms
of query that can be done through a MapReduce model.
Keywords : Semi Structured Data, Data Migration, MapReduce, Document Oriented Database,
Relational Database, Database Benchmark.
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
1.
1.1.
Pendahuluan
Latar Belakang
Beberapa dekade terakhir, basis data relasional telah menjadi de facto pada
sistem basis data. Dengan berlandaskan teori yang mapan serta dukungan industri
software yang luas, model relasional telah menggantikan model basis data
sebelumnya, yaitu basis data hierarkis, dan basis data jaringan. Beberapa prinsip
model ini, seperti normalisasi, aljabar relasional, dan Structured Query Language,
telah dikenal luas oleh kalangan industri software, dan penggunaanya pun meluas.
Sayangnya, ada beberapa domain masalah yang tidak cocok untuk
dipetakan ke dalam model relasional. Masalah muncul, ketika kita memaksakan
data yang secara natural tidak relasional ke dalam model ini. Impedence mismatch
adalah masalah lain, dimana suatu objek bersarang dicoba untuk dimasukkan ke
dalam tabel. Selain kedua hal tersebut, model relasional tidak cocok untuk
menangani domain data, dimana data tersebut memiliki struktur yang berubahubah, tetapi tipenya sama, seperti Kartu Nama: beberapa kartu ada yang memiliki
Fax, sementara yang lain tidak; atau data Bibliographic dimana beberapa buku
dikarang oleh lebih dari satu orang.
Untuk menangani beberapa masalah diatas, diperlukan pendekatan yang
berbeda. Meskipun model Relasional diyakini mampu untuk menyelesaikan
berbagai macam domain masalah, tetapi ada domain yang sulit untuk diselesaikan,
yaitu semi-structured data. Struktur antar data bisa berbeda, tetapi secara umum
informasi yang mereka bawa serupa. Model relasional tidak cocok untuk data
seperti ini karena pada model ini skema sulit untuk diubah. Contoh data yang
tidak bisa dibatasi dengan skema adalah World-Wide-Web (WWW) [5]. Beberapa
peneliti basisdata ingin menganggap WWW sebagai suatu bentuk basisdata,
namun karena WWW sama sekali tidak memenuhi bentuk standar model data
yang ada, serta permasalahan dalam melakukan querynya, maka diperlukan suatu
permodelan data yang sesuai untuk menangani masalah ini [5].
Untuk data semi struktural, pendekatan yang sesuai adalah Document
Oriented Database. Di sini, data dipandang sebagai dokumen: mereka tidak
memiliki schema yang fix, antar dokumen tidak memiliki relasi, dan setiap
dokumen memiliki key yang terindeks sehingga pencarian data menjadi cepat.
Tidak diperlukan normalisasi data, sehingga pengembang memiliki fleksibilitas
untuk memodelkan datanya.
Pada tugas akhir ini, akan diteliti tentang salah satu teknik query pada
Document Oriented Database, yaitu MapReduce. Framework MapReduce
awalnya dikembangkan oleh Google untuk digunakan sebagai query pada sistem
terdistribusi yang memiliki data set yang besar. MapReduce cocok untuk
diterapkan pada self contained data [18], karena pemrosesan dokumen bisa
dilakukan tanpa perlu mengetahui skema dari dokumen. Selain itu, abstraksi yang
disediakan oleh framework ini juga memungkinkan pemrosesan dokumen bisa
dilakukan secara parallel.
1.2.
Perumusan Masalah
Permasalahan yang akan diselesaikan dari pengerjaan tugas akhir ini
adalah:
10
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
a. Bagaimana cara untuk melakukan migrasi basisdata dari basisdata relasional,
ke basisdata dokumen ?
b. Bagaimana cara melakukan Query pada basisdata dokumen dengan model
MapReduce ?
c. Bagaimana cara untuk membandingkan performansi antara basidata relasional
dan dokumen ?
1.3.
Batasan Masalah
Dalam pengerjaan tugas akhir ini, permasalahan dibatasi dalam beberapa
hal yaitu:
a. Studi Kasus, serta dataset diperoleh dari basisdata employees yang
menggunakan basisdata relasional MySQL, bisa diperoleh di
http://dev.mysql.com/doc/employee/en/index.html
b. Untuk mewakili basidata dokumen, digunakan basisdata CouchDB.
c. MapReduce telah diimplementasikan sebagai model untuk mengakses data
pada CouchDB.
d. Framework MapReduce tidak digunakan pada lingkungan terdistribusi,
melainkan pada server tunggal.
e. Pengembangan sistem akan dilakukan dengan bantuan Virtual Machine yang
berjalan pada host Windows 7 x64 SP1, dengan guest Ubuntu Server 10.04.
Hypervisor yang digunakan adalah Virtualbox.
f. MySQL yang digunakan adalah versi 5.1 dari repository resmi Ubuntu,
sementara CouchDB menggunakan versi 1.2 yang dikompilasi dari source.
g. Client yang digunakan untuk mengakses basisdata adalah mysql command
line tool untuk MySQL, dan curl untuk CouchDB
h. Tidak membahas aspek-aspek manajemen basisdata, seperti Recovery,
Security, Access Control, Application Development, dan Administration.
i. Hanya membahas Logical Level serta View Level dari basisdata. Tidak
membahas Physical Level
1.4.
Tujuan
Fokus tugas akhir ini adalah melakukan migrasi data dari basisdata
relasional menjadi basisdata dokumen. Diharapkan dengan melakukan migrasi,
bisa diketahui bagaimana proses migrasi dilakukan, cara melakukan query setelah
migrasi, serta kelebihan dan kekurangan yang diperoleh dari penggunaan
basisdata dokumen jika dibandingkan dengan basisdata relasional.
1.5.
Metodologi Penyelesaian Masalah
Metodologi yang akan dilakukan adalah:
11
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
1.
Studi Literatur
Pada tahap ini, akan dilakukan studi literature untuk memahami lebih jauh
konsep MapReduce, data semi structural, dan Document Oriented Database. Studi
yang akan dilakukan meliputi:
1) Konsep dasar tentang data semi struktural dan permodelannya
2) Konsep dasar tentang JSON (Javascript Object Notation) sebagai pilihan
format data semi structural
3) Konsep dasar tentang Document Oriented Database. Studi meliputi ide
dasarnya (konsep apa yang mendasarinya), kelebihan dan kekurangan,
serta membandingkannya dengan basis data model relasional.
4) Konsep dasar tentang MapReduce.
Serta dengan mencari informasi lain yang bisa menunjang Tugas Akhir ini.
2.
Pengumpulan Data
Pada tahap ini akan dilakukan pengumpulan data yg menunjang studi kasus.
Dataset yang dipilih adalah employee sample database dari MySQL. Data ini
kemudian akan diubah kedalam format semi struktural JSON.
3.
Analisis Kebutuhan Sistem dan Perancangan Sistem
Berdasarkan data yang telah diperoleh, maka akan dilakukan analisis untuk
menentukan sistem yang dibutuhkan. Karena sifat-sifat yang berbeda antara
basisdata relational dan basisdata dokumen, maka sistem yang dibutuhkan pun
berbeda.
4.
Implementasi Rancangan Sistem
Pada tahap ini, akan dibangun sistem yang sudah dirancang untuk melakukan
operasi MapReduce terhadap data pada basisdata CouchDB.
5.
Pengujian Sistem dan Analisis Hasil Pengujian
Tahapan ini merupakan implementasi hasil perancangan sistem yang telah
dibuat. Akan dilakukan benchmark terhadap operasi yang sering dilakukan. Hasil
pengujian ini kemudian akan dibandingkan dengan sistem sebelumnya yang masih
menggunakan basis data relasional
6.
Tahap Pembuatan Laporan
Pada tahap ini akan dilakukan penyusunan laporan sebagai dokumentasi apa
yang selama ini telah dikerjakan dengan mengikuti aturan penulisan yang
diberikan oleh institusi.
1.6.
Sistematika Penulisan
Tugas akhir ini disusun dengan sistematika penulisan sebagai berikut:
BAB I Pendahuluan
Bab ini menguraikan tugas akhir ini secara umum, meliputi latar belakang
masalah, perumusan masalah, tujuan, batasan masalah, dan metode yang
digunakan
12
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
BAB II Dasar Teori
Bab ini membahas mengenai uraian teori yang berhubungan dengan data
semistruktural, basisdata relasional, basisdata dokumen, dan MapReduce.
BAB III Perancangan dan Implementasi
Bab ini berisi perancangan topologi sistem dan analisis kebutuhan dari
sistem serta masalah-masalah yang ada di dalamnya. Dari tahap perancangan
kemudian dilanjutkan ke tahap implementasi.
BAB IV Pengujian dan Analisis
Bab ini membahas mengenai pengujian hasil implementasi yang telah
dilakukan pada bab sebelumnya. Pada tahap ini juga dilakukan benchmark untuk
mengukur seberapa besar performa basis data. Dari hasil benchmark tersebut,
akan dianalisis dampaknya terhadap utilisasi sistem.
BAB V Kesimpulan dan Saran
Bab ini berisi kesimpulan dari penulisan Tugas Akhir ini dan saran-saran
yang diperlukan untuk pengembangan lebih lanjut.
13
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
5.
5.1.
Kesimpulan dan Saran
Kesimpulan
Model data yang berbeda berdampak pada cara akses yang berbeda pula.
Pada data semistruktural dokumen, kita bisa membuat indeks dengan pola
MapReduce yang mengikuti strategi Divide & Conquer. Apabila dokumen
dimodelkan secara Self Contained, hampir semua query SQL bisa dipetakan,
dengan pengecualian terhadap fungsi yang tidak bisa dipecah-pecah ke unit yang
lebih kecil, seperti fungsi rata-rata. Untuk fungsi tersebut, harus dicari jalan
tengah, yaitu dengan menyimpan sum dan count. Baru kemudian nilai sum dibagi
dengan count pada sisi aplikasi client.Tidak disarankan untuk memetakan tabel ke
dokumen dengan pendekatan normal, karena sulit untuk melakukan operasi JOIN
pada basisdata ini. Kesimpulan lain dari penelitian ini adalah:
1. Tahapan secara umum dalam melakukan migrasi adalah melakukan
denormalisasi (dengan melakukan LEFT JOIN terhadap tabel yang
diinginkan), kemudian membangun OEM, dan selanjutnya menulisnya
ke dokumen JSON. Duplikasi data yang muncul di tahap denormalisasi,
bisa diatasi dengan melakukan pengecekan terhadap primary key terkait
untuk setiap kolom sebelum dimasukkan ke OEM, dan meminimalisir
leaf OEM ketika dituliskan ke JSON.
2. Bilangan yang disarankan untuk melakukan bulk insert pada dokumen
yang memiliki ukuran besar (sekitar 1.6 KB) adalah 1000. Sementara
untuk dokumen yang kecil (ukuran rata-rata sekitar 0.5 KB) adalah 3000.
3. Basisdata dokumen memakan disk space yang lebih besar dibandingkan
basisdata relasional. Hal ini karena skema harus diulang untuk setiap
dokumen. Semakin banyak jumlah dokumen, pengulangan skema
semakin besar. Pada dokumen yang dimodelkan secara Self Contained,
pemakaian disk space bisa lebih ditekan.
4. Pembuatan indeks pada basisdata dokumen memakan waktu yang lebih
lama dibandingkan pada basisdata relasional. Waktu membuat indeks
linear dengan jumlah dokumen yang ada pada database, serta sebanding
dengan kompleksitas fungsi Map yang dibuat.
5. Model MapReduce dirancang untuk digunakan secara paralel, sehingga
hal-hal keduniaan seperti mempartisi himpunan nilai, pemilihan
dokumen
untuk
menghasilkan
pasangan
kunci-nilai,
serta
menggabungkanya kembali diatur oleh sistem dan tersembunyi dari
pengguna. Konsekuensinya, algoritma harus dipikirkan secara divide &
conquer.
6. Basisdata dokumen tidak disarankan untuk digunakan pada lingkungan
dengan dengan banyak operasi update. Selain karena index yang
dihasilkan MapReduce memakan space besar, sifat append-only dari
basisdata ini menyebabkan penumpukan dokumen-dokumen dengan
revisi lama yang tidak digunakan lagi.
80
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
5.2.
Saran
Melakukan penelitian data semistruktural dan basisdata dokumen terasa
menarik. Perkembangan terkini tentang bagaimana data disimpan oleh perusahan
Internet dunia, seperti Google, Amazon, dan Facebook, membuat kita berpikir
tentang bagaimana cara memodelkan data agar lebih sesuai dengan kasus yang
dihadapi. Tidak semua domain data cocok ketika dimodelkan menjadi tabel relasi.
Untuk beberapa kasus pada perusahaan tersebut, seringkali basisdata SQL tidak
digunakan, dan mereka menggunakan data semistruktural.
Meskipun demikian, basisdata semistruktural khususnya dokumen memiliki
beberapa kelemahan. Berikut ini beberapa saran penelitian lanjutan yang bisa
dilakukan:
1. Mengaplikasikan MapReduce di lingkungan basisdata dokumen
terdistribusi. Dengan menggunakan banyak mesin, serta sifat dokumen
yang independen, sifat paralel dari MapReduce bisa lebih dieksploitasi.
Software yang direkomendasikan: Hadoop (http://hadoop.apache.org/),
atau BigCouch (http://bigcouch.cloudant.com/)
2. Basisdata dokumen lain yang sama sama menggunakan JSON adalah
MongoDB. Namun secara internal, basisdata ini mengubah dokumen
tersebut menjadi BSON. Perbedaan lainnya adalah, basisdata ini
menggunakan model query dinamis (seperti SQL, namun berbasiskan
Javascript). Menarik rasannya untuk lebih mengetahui perbedaan
diantara kedua basisdata dokumen ini.
3. Dalam proses development fungsi MapReduce, sebaiknya dokumen
dibatasi saja dalam jumlah kecil, atau biarkan pengguna memilih
dokumen mana dari basisdata yang ingin dilakukan perhitungan.
Meskipun hal ini belum berarti fungsi MapReduce akan menghasilkan
output yang benar, namun akan mempermudah dan mempercepat waktu
pembuatan indeks dibandingkan fungsi harus menelusuri seluruh
dokumen.
4. Agar proses validasi dan verifikasi dokumen JSON bisa lebih mudah,
basisdata dokumen bisa menerapkan JSON schema, yaitu format untuk
mendefinisikan struktur dari dokumen JSON
(http://tools.ietf.org/html/draft-zyp-json-schema-03).
81
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
Daftar Pustaka
[1]. 10gen. 2011. “Comparing Mongo DB and Couch DB”. (online).
(http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and
+Couch+DB, diakses Februari 2012)
[2]. Abiteboul, S. 1998. “Querying Semi-Structured Data”. Kumpulan
Journal SpringerLink vol. 1186.
[3]. Anderson, J.C. 2010. “CouchDB: The Deffinitive Guide”. California:
O’Reilly Media, Inc.
[4]. Broekstra, J., dkk. 2000. “Representation and Query Languages for
Semistructured Data”. (online).
(http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.135.1356 ,
diakses November 2011)
[5]. Buneman, P. 1997. “Semistructured Data”. Proceedings of the sixteenth
ACM SIGACT-SIGMOD-SIGART symposium on Principles of
database systems.
[6]. Catell, R. 2012. “Scalable SQL and NoSQL Data Stores”. (online).
(http://cattell.net/datastores/Datastores.pdf, diakses February 2012).
[7]. Christensen, H. J. 2009. “Using RESTful Web-Services and Cloud
Computing to Create Next Generation Mobile Applications”. ACM
OOPSL
[8]. CouchDB. 2012. “HTTP Bulk Document API”. (online).
(http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API, diakses
Februari 2012)
[9]. Crockford, Douglas. 2006. “JSON: The Fat Free Alternative to XML”.
(online). (http://www.json.org/fatfree.html , diakses November 2011)
[10]. Date, C.J. 1999. “An Introduction to Database Systems”. Massachusetts:
Addison-Wesley
[11]. Dean, J. dan Ghemawat, S. 2004. “MapReduce: Simplified Data
Processing on Large Clusters”. (online).
(http://research.google.com/archive/mapreduce.html, diakses November
2011). Google, Inc.
[12]. Dirolf, M. 2010. “Binary JSON Specification”. (online).
(http://bsonspec.org/#/specification, diakses Maret 2012).
[13]. Dyer, C. dan Lin, J. 2010. “Data-Intensive Text Processing with
MapReduce”. USA: Morgan and Claypool.
[14]. Gao, Stone. 2012. “Challenges with MongoDB”. (online).
(http://www.slideshare.net/stonegao/challenges-with-mongodb, diakses
Mei 2012)
[15]. Google. “Introduction to Parallel Programming and MapReduce”.
(online). (http://code.google.com/intl/id/edu/parallel/mapreduce-
82
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
tutorial.html, diakses April 2012)
[16]. Google. 2004.
“MapReduce: Simplified Data Processing on Large Clusters”. (online).
(http://research.google.com/archive/mapreduce.html, diakses November
2011)
[17]. Holt, B. 2011. “Writing and Querying MapReduce Views in CouchDB”.
California: O’Reilly Media, Inc.
[18]. IBM. 2010. “MapReduce”. (online).
(http://publib.boulder.ibm.com/infocenter/bigins/v1r1/index.jsp?topic
=%2Fcom.ibm.swg.im.infosphere.biginsights.doc%2Fdoc%2Fc00578
42.html, diakses April 2012)
[19]. Kovács, Kristóf. 2010. “Cassandra vs MongoDB vs CouchDB vs Redis
vs Riak vs HBase vs Membase vs Neo4j comparison”. (online).
(http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis/, diakses
Maret 2012)
[20]. Oracle. 2008. “Mapping SQL and Java Types”. (online).
(http://docs.oracle.com/javase/6/docs/technotes/guides/jdbc/getstart/map
ping.html, diakses Maret 2012)
[21]. Oracle. 2010. “MySQL 5.1 Reference Manual: Data Definition
Statements”. (online). (http://dev.mysql.com/doc/refman/5.1/en/sqlsyntax-data-definition.html, diakses Maret 2012)
[22]. Oracle. 2010. “MySQL 5.1 Reference Manual: Data Manipulation
Statements”. (online). (http://dev.mysql.com/doc/refman/5.1/en/sqlsyntax-data-manipulation.html, diakses Maret 2012)
[23]. Oracle. 2010. “MySQL 5.1 Reference Manual”. (online).
(http://dev.mysql.com/doc/refman/5.1/en/, diakses February 2012)
[24]. Oracle. 2011. “Employees Sample Database”. (online).
(http://dev.mysql.com/doc/employee/en/index.html, diakses Maret
2012)
[25]. Oracle. 2012. “JDBC API Implementation Notes”. (online).
(http://dev.mysql.com/doc/refman/5.0/en/connector-j-referenceimplementation-notes.html, diakses Maret 2012)
[26]. Oracle. 2012. “Virtualbox: Technical background”. (online).
(http://www.virtualbox.org/manual/ch10.html, diakses April 2012)
[27]. Ramalho, L. G. “From ISIS to CouchDB: Databases and Data Models
for Bibliographic Records”. (online).
(http://journal.code4lib.org/articles/4893, diakses Maret 2012)
[28]. Silberschatz, A., dkk. 2001. “Database System Concepts: Fourth
Edition”. USA: McGraw-Hill
[29]. Suciu, Dan. 2009. “Encyclopedia of Database Systems”. Heidelberg:
Springer.
[30]. Vmware. 2006. “Virtualization Overview”. (online).
83
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2012
(http://www.vmware.com/pdf/virtualization.pdf, diakses April 2012)
[31]. Wohali. 2009. “CouchDB Bulk Document Post Performance”. (online).
(http://www.atypical.net/archive/2009/05/12/couchdb-090-bulkdocument-post-performance, diakses Mei 2012)
[32]. Young, Benjamin. 2012. “Organizing Document Structure in
Document Databases”. (online).
(http://blog.couchbase.com/organizing-document-structure-documentdatabases, diakses April 2012).
84
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Download