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
1. Data
Definition Language (DDL), jenis instruksi (perintah) ini berkaitan dangan
pembuatan struktur tabel maupun basis data. Ternmasuk : Create, Alter, Rename
dan Update.
2. 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.
3. 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).
4. 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.
5. 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 :
1. Free
(gratis)
2. Lebih
stabil dan tangguh
3. Memiliki
security yang baik.
4. Mudah
dalam memanajemen basis datanya
5. Fleksibel
dengan berbagai pemrograman
6. Banyak
komunitas tempat berdialog (diskusi) yang mendukung.
7. Softwarenya
berkembang dengan pesat.
8. Mendukung
transaksi
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 :
1. Document
Database, setiap satu object data disimpan dalam satu document. Document
sendiri dapat terdiri dari key-value (Array atau key-value bertingkat).
Contohnya MongoDB.
2. Key-Value,
contoh dari basis data jenis ini yaitu Apache Cassandra.
3. 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).
4. Object
Database, yaitu format basis data yang disimpan dalam object-object (seperti
Object dalam PBO), contoh basis datanya Db4o.
5. Format
yang lain diantaranya tuple store dan tabular.
Kelebihan
NoSQL yaitu :
1. NoSQL layaknya big data/cloud, dimana basis data
ini dapat menampung semua data, baik yang terstruktur, semi terstruktur bahkan
data yang tidak terstruktur.
2. Menggunakan
OOP dalam pengaksesan dan manipulasi datanya.
3. Autosharding,
jika dijalankan pada cluster server (multiple server), maka secara otomatis
data akan tersebar merata keseluruh server (Sharing Otomatis).
4. Tidak
mengenal schema tabel yang kaku dengan format data yang kaku. Schema dalam
NoSQL adalah Dynamic Schema.
Kekurangan
NoSQL yaitu :
1. Hosting
untuk data NoSQL tergolong mahal.
2. Belum
adanya standar format penyimpanannya, sehingga menyulitkan ketika akan pindah
dari satu produk NoSQL yang satu ke prodek NoSQL yang lain.
3. Sulit
mencari dukungan hosting Cpanel yang mendukung basis data MongoDB dan yang
lainnya.
No comments:
Post a Comment