Ketika mysql dan nosql bersaing

Pengertian SQL | SQL adalah kependekan dari Structured Query Language. SQL adalah bahasa yang digunakan untuk mengakses data dalam basis data relasional. Dalam penggunaannya SQL memiliki beberapa aturan yang telah distandarkan oleh asosiasi yang bernama ANSI.

Saat ini hampir semua produk RDBMS menggunakan SQL sebagai standar bahasa Query nya seperti Oracle, MySQL, MariaDB, SQL Server dan lainnya. Oleh karena itu bagi Anda yang memiliki pengetahuan akan bahasa Query yang satu ini menjadi sebuah keuntungan.

Ada beberapa hal yang menjadikan SQL sangat populer, salah satunya adalah SQL relatif mudah untuk dimengerti oleh pengguna yang awam sekalipun dalam bekerja menggunakan bahasa Query ini.

SQL pertama kali dikembangkan oleh beberapa orang dari IBM, yang mana berdasarkan teori ER (Entity Relationship) dari Dr. Codd. Setelah beberapa tahun melakukan pengembangan, akhirnya mereka berhasil mengembangkan sebuah bahasa database dan diberi nama SEQUEL. Seiring berjalannya waktu nama SEQUEL dirubah menjadi SQL, karena terdapat permasalahan dengan nama tersebut. Sampai saat ini SQL telah banyak dipergunakan dan terus dikembangkan.

Dalam penggunaannya perintah SQL dibagi menjadi tiga bagian diantaranya, yaitu:

1. DDL (Data Definition Language)

DDL (Data Definition Language) adalah perintah SQL yang berkaitan dengan schema database seperti membuat database baru, menghapus database, membuat tabel baru, menghapus tabel, membuat view baru dan sebagainya.

Adapun yang termasuk dalam perintah DDL diantaranya, yaitu:

§  Create
§  Alter
§  Drop

2. DML (Data Manipulation Language)

DML (Data Manipulation Language) adalah perintah SQL yang berkaitan dengan data yang ada di dalam database seperti menambah data baru ke dalam tabel, memperbaharui data yang ada di dalam tabel, menghapus data yang ada di dalam tabel dan mengambil data yang ada di dalam tabel.

Adapun yang termasuk dalam perintah DML diantaranya, yaitu:

§  Insert
§  Update
§  Delete
§  Select








3. DCL (Data Control Language)

DCL (Data Control Language) adalah perintah SQL yang berkaitan dengan pengontrolan data dan server databasenya seperti memberi izin akses kepada user dan menghapus hak izin akses yang telah diberikan kepada user.

Adapun yang termasuk dalam perintah DCL diantaranya, yaitu:

§  Grand
§  Revoke

Software dalam SQL

Ms SQL Server

Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase.

Oracle

 Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS.











Pengertian NoSQL

NoSQL adalah sebuah konsep mengenai penyimpanan data non-relasional. Berbeda dengan model basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa metode yang berbeda-beda.

Sejarah konsep NoSQL dimulai ketika Carlo Strozzi pada tahun 1998 menggunakannya untuk nama open source database relational yang tidak mengikuti standar SQL, kemudian Eric Evans (karyawan Rackspace) memperkenalkan kembali istilah NoSQL pada awal 2009 ketika Johan Oskarsson dari Last.fm ingin menyelenggarakan acara untuk membahas distributed database open source.
            Sejarah NoSQL tidak lepas dari kesulitan-kesulitan yang terjadi dalam penanganan perkembangan database dengan menggunakan konsep relational database. Dalam praktiknya, database tidak hanya berkembang secara vertikal (adanya penambahan baris), tetapi juga berkembang secara horisontal (adanya penambahan field). Ketika field bertambah banyak permasalahan yang terjadi ketika menggunakan konsep RDBMS. Dalam konsep RDBMS, penambahan field merupakan masalah yang harus dihindari, akan tetapi pada kenyataannya hal itu sering terjadi. Konsep tersebut yang mendasari adanya konsep NoSQL. NoSQL tidak membutuhkan skema tabel dan umumnya menghindari operasi join karena berkembang secara horisontal. Kaum akademisi menyebutnya sebagai structuredstorage (penyimpanan terstruktur).





Secara umum, database noSQL dibagi menurut format penyimpanan dokmentnya . Berikut ini adalah pengelompokan database noSQL berdasarkan model (penyimpanan) datanya
  • Document Database contohnya MongoDB, seiap satu object data disimpan dalam satu dokumen. Dokumen sendiri bisa terdiri dari key-value, dan value sendiri bisa berupa array atau key-value bertingkat.
  • Graph, Format penyimpanan data dalam struktur graph. Format ini sering dipakai untuk data yang saling berhubungan seperti jejaring social. Contoh database noSQL dengan format ini adalah Neo4J dan FlockDB. FlockDB dipakai oleh twitter.
  • Key – Value,  contoh database jenis ini adalah Apache Cassandra.
  • Object Database. Format database yang disimpan dalam object-object, Object disini sama dengan pengertian object di Pemrograman beroreintasi object, Contoh databasenya adalah Db4o.
  • Tipe lainnya adalah tabular, tuple store dan berbagai jenis lain yang tidak terlalu populer.
Kelebihan
  • NoSQL bisa menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar (big data/cloud).
  • Menggunakan OOP dalam pengaksesan atau manipulasi datanya.
  • NoSQL tidak mengenal schema tabel yang kaku dengan format data yang kaku. NoSQL sangat cocok untuk data yang tidak terstruktur, istilah singkat untuk fitur ini adalah Dynamic Schema.
  • Autosharding, istilah sederhananya, jika database noSQL di jalankandi cluster server (multiple server) maka data akan tersebar secara otomatis dan merata keseluruh server.

Kekurangan
  • Hostingnya mahal. beberapa layanan di luar negeri mencharge biaya 100-200USD untuk hosting database noSQL.
  • Sulitnya mencari hosting Cpanel yang mendukung database MongoDB atau database noSQL lainnya.
  • karena bervariasinya produk dan format penyimpanan, berpindah antar satu produk database ke produk noSQL lainnya perlu waktu untuk belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka anda harus belajar lagi dari awal, berbeda dengan database RDMS.
Software dalam NoSQL
  • MongoDB
  • Cassandra Apache
  • CouchDB

Perbedaan SQL dengan NoSQL
Mysql merupakan aplikasi pengolah database yang bersifat open source, dikembangkan oleh Oracle (sebelumnya Sun dan MySQL AB). MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL .
NoSql merupakan sistem manajemen basis data yang di identifikasikan dengan tidak mematuhi aturan pada model sistem manajemen basis data. 
NOSQL adalah database generasi terbaru yang mengarahkan kepada database yang tidak berelasi (non-relational), dapat disebarkan kepada siapapun (open-source) dan berskala horisontal (horizontal scale).
Contoh aplikasi pada Sql adalah 
Oracle, MS-SQL, Sqlite, dan Postgres .
 
Sedangkan pada NoSQL adalah MongoDB, HBase, Redis, Bigtable, RavenDb, CouchDB, Cassandra, dan Neo4j.
Perbedaan SQL dan NoSQL terletak pada cara penulisan database.SQL menggunakan relasional sebagai penyambung antara data-data di dalam tabel database. Sedangkan NoSQL tidak menggunakan Relasional sebagai cara mereka untuk menyambungkan antar data .
NoSQL tidak menggunakan Schema relational, Pada SQL user harus mendefinisikan table yang akan digunakan. Pada NoSQL tidak perlu untuk mendefinisikan terlebih dahulu Table yang akan digunakan.
Dalam Database SQL data berbentuk tabel yang terdiri dari sejumlah baris,Sedangkan Pada NoSQL data tidak memiliki definisi skema standar yang harus dipatuhi. NoSQL memiliki skema yang dinamis sedangkan pada database SQL mengikuti skema yang telah ditetapkan.

Database NoSQL merupakan horizontal terukur sedangkan pada SQL Database vertikal terukur. 
Untuk memperbesar pada skala NoSQL hanya perlu tambahkan server DB di cluster untuk load balancing.
 
Sedangkan pada SQL Untuk memperbesar skala harus menambahkan tenaga dari perangkat CPU,SSD,RAM dan perangkat keras lainnya pada server.
 
Pada database SQL penekanan pada sifat Atomicity, Consistency, Isolation and Durability (ACID) sifat. Sedangkan pad NoSQL mengikuti teorema Consistency, Availability and Partition (CAP) Brewers.

Komentar

Postingan populer dari blog ini

pengertian project integration management dan proses serta overview nya