Anda di halaman 1dari 21

INTRODUCT

ION
No-SQL
Pertemuan – 2
No-
SQL
PERKENALAN

Database NoSQL adalah jenis


database non-relasional yang
bertujuan untuk menangani
penyimpanan data yang
terstruktur dan tidak terstruktur
dengan skema yang fleksibel
Model Data Relasional No-SQL
Perbedaan SQL dan NoSQL Database

Database Relasional Database NoSQL

Waktu Pengembangan Sekitar Tahun 1970an Sekitar Tahun 2000an

Satu jenis (setiap entitas Banyak jenis (key-value,


Model Data mempunyai relasi dengan document, graph, column-
lainnya) oriented, search)
Mempunyai struktur skema
Mempunyai jenis skema
yang tetap dan
Skema yang fleksibel dengan
diinisialisasi di awal saat
struktur data yang dinamis
pembuatan database
Perbedaan SQL dan NoSQL Database (Lanjut)
Database Relasional Database NoSQL
Bahasa tertentu
Melalui object-oriented
Manipulasi Data menggunakan pernyataan
APIs
Select, Insert, and Update
MySQL, MariaDB,
MongoDB, Couchbase,
Contoh Database Postgres, Oracle, SQL
Hbase, Neo4j, DynamoDB,
Server
Secara vertikal, artinya Secara horizontal, artinya
satu server harus dibuat untuk menambah
Skalabilitas semakin kuat untuk kapasitas dapat dengan
menghadapi peningkatan mudah menambahkan
permintaan lebih banyak server
No-SQL
KELEBIHAN No-SQL

● Mampu menangani jumlah data


yang besar dengan tipe data yang
bermacam-macam
● Mempunyai skema data yang
dinamis
● Mampu melakukan skalabilitas
yang bagus
● Mempunyai performa tinggi
MONGO DB

PERKENALAN
● MongoDB adalah cross - platform,
database berorientasi dokumen yang
menyediakan, kinerja tinggi, ketersediaan
yang tinggi dan skalabilitas mudah.
MongoDB bekerja pada konsep Collection
dan dokumen.
MONGO DB
KELEBIHAN MONGO DB

• Sangat bagus untuk data list


produk
● Tidak perlu membuat struktur
tabel.
● Proses CRUD (Create, Update,
Delete) terasa sangat ringan
● Banyak website besar yang
sudah menggunkan MongoDB
MONGO DB
KEKURANGAN MONGO DB
● MongoDB harus diinstall di sebuah
server, dan ketika kita
menggunakan PHP kita juga harus
merestart server kita agar driver
MongoDB kita dapat digunakan
oleh PHP
● Belum support di hosting, namun
bisa diakali dengan menggunakan
MongoHQ (untuk free terdapat limit
sampai 16MB)
MONGO DB
KAPAN MONGO DB
DIGUNAKAN?
● MongoDB merupakan basis data yang tidak relasional, hal
ini membuat MongoDB sangat cepat saat melakukan
proses manipulasi data dari pada Sistem Basis Data
Relasional (RDBMS), selain itu MongoDB berbasis
dokumen sehingga tidak memiliki struktur yang teratur
seperti table. MongoDB sangat cocok untuk membangun
sebuah sistem seperti blog, forum, portal berita, social
networking, dan website yang tidak membutuhkan proses
transaksi seperti sistem Bank.
MONGO DB
KAPAN MONGO DB TIDAK
DIGUNAKAN?
● Hampir semua sistem basis data NoSQL tidak mendukung
proses transaksi. Padahal hal ini sangat penting jika kita
membangun sistem yang selalu memerlukan proses
transaksi seperti sistem Bank misalnya. Oleh Karena itu
MongoDB sangat tidak cocok jika digunakan untuk
membangun sistem berbasis transaksi, karena jika sistem
basis data NoSQL (seperti MongoDB) digunakan dalam
kasus ini, maka bisa dipastikan akan banyak terjadi
kegagalan dalam sistem
MONGO DB
MONGO DB
MONGO DB
MONGO DB
MONGO DB - CREATE

SQL: CREATE TABLE `posts` (`id` int(11)


NOT NULL AUTO_INCREMENT,`post_text`
varchar(500) NOT NULL,`user_name`
varchar(20) NOT NULL,`post_privacy`
varchar(10) NOT NULL,`post_likes_count`
int(11) NOT NULL,PRIMARY KEY (`id`))
 
MongoDB: db.createCollection("posts")
MONGO DB - INSERT

SQL: INSERT INTO `posts`


(`id` ,`post_text` ,`user_name` ,`post_privacy` ,`post_likes_count`)
VALUES (NULL ,  'This is a sample post',  'mark',  'public',  '0');
 
MongoDB:  db.posts.insert({user_name:"mark",
post_text:"This is a sample post",
post_privacy:"public", post_likes_count:0})
MONGO DB - READ
SQL: SELECT * FROM  `posts`
 
MongoDB: db.posts.find()
SQL: SELECT * FROM `posts` WHERE `user_name` = 
'mark'
 
MongoDB: db.posts.find({user_name:"mark"})
SQL: SELECT  `post_text` ,  `post_likes_count` FROM 
`posts`
 
MongoDB: db.posts.find({},{post_text:1,post_likes_count:1})
MONGO DB - UPDATE

SQL: UPDATE posts SET post_privacy = "private" WHERE


user_name='mark'
 
MongoDB: db.posts.update({user_name:"mark"},{$set:
{post_privacy:"private"}},{multi:true})
MONGO DB - REMOVE

SQL: DELETE FROM posts WHERE user_name='mark'


 
MongoDB:  db.posts.remove({user_name:"mark"})
MONGO DB - INDEXING

SQL: CREATE INDEX index_posts ON


posts(user_name,post_likes_count DESC)
 
MongoDB: db.posts.ensureIndex({user_name:1,post_likes_count:-
1})

SQL: SHOW INDEX FROM posts


 
MongoDB: db.posts.getIndexes()

Anda mungkin juga menyukai