Perbandingan SQL dengan NoSQL

blog-image

SQL? familiar banget kan kata ini, pasti sering banget kalian denger kata ini. Lalu NoSQL? Apa sih NoSQL? Apa sama aja dengan SQL? Berikut adalah penjelasan singkat dan perbedaan dari SQL dengan NoSQL.

Apa itu SQL?

SQL atau nama istilah kerennya Structure Query Languange adalah database relasional yang digunakan untuk membuat query atau berkomunikasi dengan database. Seperti halnya rumah yang memiliki banyak kamar, begitupun juga dengan database relasional yang mempunyai beberapa tabel. Tabel yang berbeda bisa dihubungkan dengan menggunakan bidang umum yang disebut kunci utama (primary key) pada tabel utama dan kunci tamu (foreign key) untuk tabel relasi. Dengan menggunakan SQL, data dari beberapa tabel dapat digabungkan untuk mendapatkan informasi yang kita butuhkan. SQL digunakan untuk mengelola data yang memiliki banyak skema dan relasi. Contoh dari database SQL adalah MySQL, SQL Server, Oracle, MariaDB, dan masih banyak yang lainnya.

Apa itu NoSQL?

NoSQL adalah database non-relasional, yang tidak memerlukan skema tetap dan mudah diskalakan. Database ini terkadang juga disebut sebagai database “Not Only SQL”. Dengan NoSQL, data dapat disimpan dalam skema tanpa skema, data apa pun dapat disimpan dalam catatan apa pun. Sistem NoSQL menyimpan dan mengelola data dengan cara yang memungkinkan kecepatan operasional tinggi. NoSQL digunakan untuk Big data dan aplikasi web real-time. Contoh dari database NoSQL adalah MongoDB, ScyllaDB, CouchDB, Casssandra, Redis dan lainnya.

Struktur dan Skalabilitas

Image source: http://sql-vs-nosql.blogspot.com/2013/11/indexes-comparison-mongodb-vs-mssqlserver.html

Struktur SQL berbasis tabel yang menjadikannya pilihan yang tepat untuk aplikasi yang membutuhkan transaksi multi baris dan memiliki banyak relasi. Sedangkan struktur NoSQL berbasis dokumen, terdapat kumpulan key-value pair, dokumen, database grafik atau penyimpanan kolom lebar yang tidak memiliki skema standar, disebut juga database non relasi. Database NoSQL menjadi solusi yang baik untuk menangani lalu lintas yang besar, untuk kueri sederhana, ini memberikan kinerja yang baik, karena semua data terkait berada dalam satu dokumen yang menghilangkan operasi gabungan.

Contoh Query dari SQL dan NoSQL

Saya akan memberikan contoh query untuk SQL dan NoSQL. Untuk SQL saya menggunakan MySQL sedangkan NoSQL saya gunakan MongoDB.

Contoh di MySQL:


    CREATE TABLE items(
        productid varchar(50) primary_key,
        productname varchar(200),
        price int
    );

    INSERT INTO items(productid, productname, price)
    VALUES ('NVL', 'Novel', 50000);
    

Di SQL, untuk menambahkan data baru jika belum memiliki tabelnya maka harus di buat terlebih dahulu pendeklarasian tabelnya, baru setelah itu ditambahkan datanya. Sedangkan di MongoDB:


    db.createCollection("items")

    db.items.insert({
        productid:"NVL",
        procuctname:"Novel",
        50000
    })

Di NoSQL (MongoDB) kita tinggal menambahkan nama collection yang kita gunakan, lalu untuk menyimpan data kita tidak perlu membuat schema khusus.

Lalu kita coba tambahkan data baru lagi.


    INSERT INTO items(productid, productname, price)
    VALUES ('MTR', 'Motor', '1000000');

Jika query diatas ini dijalankan maka akan menghasilkan error. Kenapa seperti itu? karena tipe data yang diatur di awal untuk kolom price adalah integer, sedangkan yang akan ditambahkan datanya adalah string atau varchar. Berbeda dengan MongoDB yang tidak pengaruh karena tidak adanya skema khusus.

Contoh Kasus


    db.items.updateOne(
        { productid : "NVL" },
        { $set: { harga : 60000, type: "BOOK" } }
    );

Apakah query diatas bisa dijalankan di mongoDB sedangkan kolom atau fields type tidak ada dalam collection items??

Jawabannya adalah bisa dijalankan. Kenapa? seperti yang kita bahas sebelumnya bahwa mongoDB tidak mempunyai skema khusus jadi tidak pengaruh apakah fields type ada atau tidak sebelumnya.

Ok temen temen semua, cukup sekian dulu share ilmunya. Jika ada waktu luang akan saya update lagi mengenai yang lainnya. Terima kasih.

Sumber: https://medium.com/dot-intern/nosql-vs-sql-which-is-better-1abe3a6db268