The SQL vs NoSQL

Enrinal Zulhimar
4 min readJun 19, 2019

--

https://www.bedrockdata.com

When it comes untuk memilih database, one of the biggest decisions memilih antara relational (SQL) dan non-relational (NoSQL) data structure. While both of these are good choices, keduanya mempunyai kekurangan dan kelebihannya masing masing-masing yang bisa dipertimbangkan.

What is SQL?

SQL adalah Structured Query Language yaitu suatu bahasa khusus yang digunakan untuk membuat dan mengolah relational database. Relational databases use relations (typically called tables) to store data and then match that data by using common characteristics within the dataset. Relational database menggunakan relasi (biasa disebut table) untuk store data dan match the data dengan menggunakan karakteristik-karateristik yang berhubungan dengan dataset. Secara lisan sangat mudah dibaca karena merupakan bahasa generasi keempat, artinya sintak nya sudah menggunakan kata yang mudah dibaca oleh manusia, contohnya SELECT, FROM, WHERE dll.

What is NoSQL ?

NoSQL bukan merupakan bahasa. NoSQL adalah sebuah mekanisme untuk menyimpan data dan mengambil data yang dilakukan oleh database kita. NoQSL tidak membutuhkan data model relational dan bahasa SQL untuk melakukan hal tersebut. NoSQL menggunakan metadata pada database kita dan memanfaatkan index dari data tersebut.

Empat mekanisme didalam NoSQL

  • Table-oriented, contoh: Google dengan Big Table dan juga Facebook dengan Cassandra,
  • Graph-oriented,
  • Document-oriented database, contoh: MongoDB dan juga CouchDB,
  • Key-value store, contoh: Memcache dan Redis

The Big Picture Differences

Bahasa

Coba kita berandai ada dua perumahan, perumahan A dan perumahan B. Perumahan A dimana semua semua orang bicara dengan bahasa yang sama. semua bisnis di perumahan A dibangun dengan bahasa yang sama, semua komunikasi juga menggunakan bahasa yang sama, dan juga dengan bahasa itu satu-satunya cara orang-orang diperumahan itu bisa “bicara” dan “interaksi” dengan dunia luar. Ketika bahasa itu diganti disuatu rumah akan bikin pusing dan menganggu semua orang.

Sekarang coba kita bayangkan perumhan B, dimana setiap rumah bisa bicara dengan bahasa yang berbeda, semua oranga interaksi ke dunia luar juga dengan cara yang berbeda, dan tidak ada pemahaman yang “universal” atau diorganisir. Jika satu rumah memiliki bahasa yang berbeda, tidak akan berefek dengan orang lain.

Ilustrasi diatas menggambarkan perbedaan fundamental dari SQL dan NoSQL, sekarang mari ke hal yang lebih jelas lagi:

SQL menggunakan structured query language (SQL) untuk mendefinisikan dan memanipulasi data. Dengan kata lain, hal ini sangan powerful. Bisa dikatan SQL adalah suatu pilihan yang aman dan baik untuk query yang kompleks. Untuk hal query SQL memang jauh unggul, karena SQL sangat mudah untuk mengubah dari satu query ke query yang lainnya. SQL mengharuskan kita mendefiniskan schemas untuk menetukan struktur dari data sebelum kita bisa menggunakannya. Semua data kita harus mengikuti struktur yang sama. Seperti Perumahan A, it can mean that a change in the structure would be both difficult and disruptive to your whole system.

NoSQL memiliki dynamic schema for unstructured data dan data bisa di stored dengan banyak cara , whether it be graph-based, document-oriented, column-oriented, atau organized as a KeyValue store. This flexibility means that:

  • Kita bisa membuat dokumen tampa harus mendefiniskan structure nya
  • Setiap dokumen memiliki strukturnya sendiri
  • Syntax nya bisa berbedea dari database ke database, dan
  • Kita bisa menambahkan fields as you go.

Skalabilitas

Sekarang bayangkan jika kita ingin memperlebar perumahan.Jika kita andaikan sebuah perumahan SQL database seperti menambah lantai dari suatu gedung, yang artinya. SQL database dapat di scalable secara vertikal, kita dapat meningkatkan load suatu server dengan menambah CPU, RAM atau SSD. NoSQL database seperti kita menambah gedung lain di perumahan kita dibanding menambah lantai di satu rumah, NoSQL datapat di scalablle secara horizontal, kita dapat meningkatkan traffic dengan memecah atau menambah server di NoSQL database. Hal ini menjadikan NoSQL merupakan pilihan yang tepat untuk data yang besar dan terus berubah

Struktur

Akhirnya, hal terakhir yang perlu dipertimbangkan ketika memperdebatkan SQL vs NoSQL adalah strukturnya. Database SQL berbasis tabel yang menjadikannya pilihan yang lebih baik untuk aplikasi yang membutuhkan transaksi multi-rows. Database NoSQL dapat berupa key-value pairs, wide-column stores, graph databases, atau document-based

Komparasi SQL vs NoSQL

Tabel perbandingan SQL dan NoSQL

Coba tonton video diatas, penjelasan yang menurut saya sangat menarik bagaimana perdebatan NoSQL dan SQL dibawakan Google I/O 2012.

Jadi, Database mana yang cocok untuk kita gunakan?

Kesimpulannya, Untuk hal query SQL memang jauh unggul, karena SQL sangat mudah untuk mengubah dari satu query ke query yang lainnya. Namun NoSQL hal tersebut sangatlah rumit, NoSQL lebih cocok untuk transaksi yang sama. Dari tabel diatas jika dianalisa maka dapat dikatakan SQL sangatlah cocok untuk transaksi harian dan NoSQL sangatlah cocok jika diterapkan pada transaksi histori. SQL vs NoSQL hasilnya adalah seri.

--

--

Enrinal Zulhimar
Enrinal Zulhimar

Written by Enrinal Zulhimar

Software Engineer — Writer — Wizard. Writing Codes that muggles can read it! Reach me out? Just Google My Name :)

No responses yet