SQL dan NoSQL
Pada kesempatan ini saya akan menuliskan tentang SQL dan NoSQL.
Teman-teman mungkin sudah pernah mendengar tentang SQL dan NoSQL, bahkan ada
yang sudah mengerti dan faham apa itu SQL dan NoSQL. Tetapi tidak ada salahnya saya
berbagi sedikit, karena berbagai tentang ilmu dan kebaikan itu akan
mendatangkan ilmu dan kebaikan juga.
Gambaran umum dari bahasa SQL dan NoSQL yaitu bahasa yang digunakan
untuk melakukan operasi pada struktur database, tetapi kedua bahasa ini
memiliki cara yang kontras dalam melakukannya.
SQL
SQL singkatan dari
Structured Query Language. Pengertian dari SQL sendiri yaitu suatu bahasa yang
digunakan untuk mengakses data yang terdapat dalam sebuah database relasional. SQL
saat ini digunakan sebagai bahasa standart de
facto untuk manajemen database relasional. SQL sendiri sering disebut
dengan istilah Query.
Pada tahun 1969 Dr. Edgar F. Codd dengan papernya tentang Teori Database
Relational, mengajukan sebuah bahasa yang disebut DSL/Alpha untuk memanajemen
data dalam relational database. Pada tahun 1970 IBM dengan team penelitinya
(Donald D. Chamberlin dan Raymond F. Boyce) mengembangkan SQUARE menjadi SEQUEL
(Structured English Query Language). Sequel ini digunakan untuk mengoperasikan prototype
RDBMS pertama milik IBM system R.
Melihat potensi dari bahasa SQL ini, maka perusahaan Relational
Software, Inc (Oracle Corporation) mengembangkan versi SQL untuk RDBMS. Pada Juni
1979, RDBMS komersial pertama dari Oracle yang mengimplementasikan SQL dirilis
yaitu Oracle V2 (versi 2).
Semakin berkembangnya SQL yang mulai diimplementasikan oleh berbagai
RDBMS dangan menggunakan versi SQL mereka sendiri, sehingga menimbulkan
permasalahan karena penerapan SQL antara satu aplikasi dengan aplikasi database
yang lain tidak seragam. Maka pada tahun 1986, ANSI American National Standards Institute) merancang sebuah
standar untuk bahasa SQL. Pada tahun 1987 International
Organization for Standardization (ISO) juga mengeluarkan standar untuk
bahasa SQL. Pada tahun 2011 dirilis standar SQL yang dinamakan SQL 2011, dengan dirilisnya standar SQL
2011 ini diharapkan adanya keseragaman bahasa SQL antar aplikasi RDBMS yang
mengimplementasikan SQL. Meski begitu ada juga RDBMS yang tidak standar seperti
MySQL, didalamnya ada “fitur” SQL yang tidak terdapat pada Oracle begitu juga
sebaliknya.
SQL digunakan untuk mengelola data dala sistem manajemen basis data
relational, dimana data disimpan dalam cara yang terstruktur dan terorganisasi
dalam tabel yang terdiri dari kolom dan baris. Kolom dalam basis data berisi
bidang/tempat yang berkaitan dengan data yang harus disimpan. Sedang baris yang
berhubungan dengan kolom berisi bagian-bagian data yang disebut dengan entri.
Dalam bahasa SQL yang
terdapat pada berbagai RDBMS memiliki perintah-perintah dasar yang sama, contoh
dalam hal pembuatan tabel, perintah ini dapat digunakan baik di Oracle maupun
MySQL. Didalam SQL perintah-perintah (instruksi) dikelompokkan berdasarkan
jenis dan fungsinya, terdapat 3 jenis perintah dasar SQL dan 2 jenis perintah
tambahan, yaitu :
- Data Definition Language (DDL), jenis instruksi (perintah) ini berkaitan dangan pembuatan struktur tabel maupun basis data. Ternmasuk : Create, Alter, Rename dan Update.
- Data Manipulation Language (DML), jenis instruksi yang berkaitan dengan data yang yang ada dalam tabel, missal bagaimana menginput, menghapus, memperbaharui dan membaca data yang tersimpan dalam basis data. Contoh perintah DML : DELETE, UPDATE, INSERT dan SELECT.
- Data Control Language (DCL), jenis instruksi yang berkaitan dengan manajemen hak akses pan pengguna (user) yang dapat mengakses basis data maupun tabel, (GRANT dan REVOKE).
- Transaction Control Language (TCL), yaitu perintah untuk proses transaksi. Perintah ini digunakan untuk perintah yang lebih dari 1, namun harus berjalan atua tidak sama sekali. Contoh perintahnya COMMIT, ROLLBACK dan SET TRANSACTION.
- Programmatic SQL, yaitu perintah yang berkaitan dengan sub program (stored procedure) maupun penjelasan mengenai struktur basis data. Contoh perintah programmatic SQL yaitu DECLARE, PREPARE, DESCRIBE dan EXPLAIN.
Kelebihan SQL (Dalam ha
ini MySQL) yaitu :
- Free
- Lebih stabil dan tangguh
- Memiliki security yang baik.
- Mudah dalam memanajemen basis datanya.
- Fleksibel dengan berbagai pemrograman.
- Banyak komunitas tempat berdialog (diskusi) yang mendukung.
- Softwarenya berkembang dengan pesat.
NoSQL
NoSQL kependekan dari
Not Only SQL, yaitu sebuah onsep penyimpanan data non-relationall. Dalam NoSQL menggunakan
metode yang berbeda-beda. NoSQL biasanya digunakan untuk data-data yang terus
berkembang, dimana data tersebut sangat kompleks yang tidak bisa lagi
diakomodir oleh bahasa SQL (basis data relational).
Secara umum basis data
NoSQL dapat dibagi menurut format penyimpanan documentnya, yaitu :
- Document Database, setiap satu object data disimpan dalam satu document. Document sendiri dapat terdiri dari key-value (Array atau key-value bertingkat). Contohnya MongoDB.
- Key-Value, contoh dari basis data jenis ini yaitu Apache Cassandra.
- Graph, format penyimpanan data pada format ini disimpan dalam struktur graph. Dan format ini biasa dipakai pada data yang saling berhubungan seperti jejaring social. Contoh basis data dengan format graph yaitu Neo4J dan FlockDB (dipakai Twitter).
- Object Database, yaitu format basis data yang disimpan dalam object-object (seperti Object dalam PBO), contoh basis datanya Db4o.
- Format yang lain diantaranya tuple store dan tabular.
Kelebihan NoSQL yaitu :
- NoSQL layaknya big data/cloud, dimana basis data ini dapat menampung semua data, baik yang terstruktur, semi terstruktur bahkan data yang tidak terstruktur.
- Menggunakan OOP dalam pengaksesan dan manipulasi datanya.
- Autosharding, jika dijalankan pada cluster server (multiple server), maka secara otomatis data akan tersebar merata keseluruh server (Sharing Otomatis).
- Tidak mengenal schema tabel yang kaku dengan format data yang kaku. Schema dalam NoSQL adalah Dynamic Schema.
Kekurangan NoSQL yaitu :
- Hosting untuk data NoSQL tergolong mahal.
- Belum adanya standar format penyimpanannya, sehingga menyulitkan ketika akan pindah dari satu produk NoSQL yang satu ke prodek NoSQL yang lain.
- Sulit mencari dukungan hosting Cpanel yang mendukung basis data MongoDB dan yang lainnya.
Tidak ada komentar:
Posting Komentar