Akronim NoSQL dicipta pada tahun 1998. Ramai orang berfikir NoSQL adalah istilah menghina yang diciptakan untuk mencubit di SQL. Pada hakikatnya, istilah ini bermaksud Bukan Hanya SQL. Ideanya ialah kedua-dua teknologi boleh wujud bersama dan masing-masing mempunyai tempatnya. Pergerakan NoSQL telah menjadi berita dalam beberapa tahun yang lalu kerana ramai pemimpin Web 2.0 telah menggunakan teknologi NoSQL. Syarikat-syarikat seperti Facebook, Twitter, Digg, Amazon, LinkedIn, dan Google menggunakan semua NoSQL dalam satu cara atau yang lain. Mari pecahkan NoSQL supaya anda dapat menerangkannya kepada CIO anda atau rakan sekerja anda.
NoSQL Muncul Daripada Keperluan
Simpanan data: Data digital yang disimpan di dunia diukur dalam exabytes. Exabyte bersamaan dengan satu bilion gigabait (GB) data. Menurut Internet.com, jumlah data yang disimpan pada tahun 2006 adalah 161 exabytes. Hanya 4 tahun kemudian pada tahun 2010, jumlah data yang disimpan akan menjadi hampir 1,000 ExaBytes yang merupakan peningkatan lebih dari 500%. Dengan kata lain, terdapat banyak data yang disimpan di dunia dan hanya akan terus berkembang.
Data Bersambung: Data terus menjadi lebih berkaitan. Penciptaan web yang dipupuk dalam hiperpautan, blog mempunyai pingback dan setiap sistem rangkaian sosial utama mempunyai tag yang mengikat perkara bersama-sama. Sistem utama dibina untuk saling berkaitan.
Struktur Data Kompleks: NoSQL boleh mengendalikan struktur data bersarang hierarki dengan mudah. Untuk mencapai perkara yang sama dalam SQL, anda memerlukan beberapa jadual hubungan dengan semua jenis kunci. Di samping itu, terdapat hubungan antara prestasi dan kerumitan data. Prestasi boleh merosot dalam RDBMS tradisional kerana kami menyimpan sejumlah besar data yang diperlukan dalam aplikasi rangkaian sosial dan web semantik.
Apa itu NoSQL?
Saya rasa satu cara untuk menentukan NoSQL adalah untuk mempertimbangkan apa yang tidak. Ia bukan SQL dan ia bukan hubungan. Seperti namanya, ia bukan pengganti untuk RDBMS tetapi pujiannya. NoSQL direka untuk menyimpan data yang diedarkan untuk keperluan data skala besar. Fikirkan Facebook dengan 500,000,000 pengguna atau Twitter yang mengumpulkan Terabits data setiap hari.
Dalam pangkalan data NoSQL, tiada skema yang tetap dan tidak bergabung. RDBMS "skala" dengan mendapatkan perkakasan yang lebih pantas dan lebih pantas dan menambahkan memori. Sebaliknya, NoSQL boleh mengambil kesempatan daripada "scaling out". Penskalaan merujuk kepada penyebaran beban ke atas banyak sistem komoditi. Ini adalah komponen NoSQL yang menjadikannya penyelesaian yang murah untuk dataset besar.
Kategori NoSQL
Dunia NoSQL semasa masuk ke dalam 4 kategori asas.
- Kedai-nilai penting didasarkan pada Kertas Dynamo Amazon yang ditulis pada tahun 2007. Ide utama ialah kewujudan jadual hash di mana terdapat kunci yang unik dan penunjuk kepada item data tertentu. Pemetaan ini biasanya disertakan dengan mekanisme cache untuk memaksimumkan prestasi.
- Kedai Family Column dicipta untuk menyimpan dan memproses sejumlah besar data yang diedarkan ke atas banyak mesin. Masih ada kunci tetapi mereka menunjuk kepada beberapa lajur. Dalam kes BigTable (model Family NoSQL Google Column), baris dikenal pasti oleh kunci baris dengan data yang disusun dan disimpan oleh kunci ini. Lajur disusun oleh keluarga lajur.
- Pangkalan Data Dokumens telah diilhamkan oleh Lotus Notes dan serupa dengan kedai bernilai utama. Model ini pada dasarnya adalah versi dokumen yang merupakan koleksi koleksi nilai utama yang lain. Dokumen separuh berstruktur disimpan dalam format seperti JSON.
- Pangkalan Data Grafs dibina dengan nod, hubungan antara nota dan sifat nod. Daripada jadual baris dan lajur dan struktur tegar SQL, model graf yang fleksibel digunakan yang boleh menyentuh banyak mesin.
Pemain NoSQL Utama
Pemain utama dalam NoSQL telah muncul terutamanya kerana organisasi yang mengadopsi mereka. Sebahagian daripada teknologi NoSQL terbesar termasuk:
- Dynamo: Dynamo dicipta oleh Amazon.com dan merupakan pangkalan data NoSQL Key-Value yang paling menonjol. Amazon memerlukan platform diedarkan yang sangat berskala untuk perniagaan e-dagang mereka sehingga mereka membangunkan Dynamo. Amazon S3 menggunakan Dynamo sebagai mekanisme penyimpanan.
- Cassandra: Cassandra dibuka bersumber oleh Facebook dan merupakan pangkalan data NoSQL berorientasikan lajur.
- BigTable: BigTable adalah pangkalan data berorientasikan lajur Google. Google membenarkan penggunaan BigTable tetapi hanya untuk Google App Engine.
- SimpleDB: SimpleDB adalah pangkalan data Amazon yang lain. Digunakan untuk Amazon EC2 dan S3, ia adalah sebahagian daripada Amazon Web Services yang mengenakan yuran bergantung kepada penggunaan.
- CouchDB: CouchDB bersama dengan MongoDB adalah pangkalan data NoSQL berorientasikan sumber terbuka.
- Neo4J: Neo4j adalah pangkalan data grafik sumber terbuka.
Meminta NoSQL
Persoalan bagaimana untuk menanyakan pangkalan data NoSQL adalah apa yang kebanyakan peminat berminat. Lagipun, data yang disimpan dalam pangkalan data yang besar tidak melakukan sesiapa yang baik jika anda tidak boleh mengambil dan menunjukkannya kepada pengguna akhir atau perkhidmatan web. Pangkalan data NoSQL tidak menyediakan bahasa pertanyaan deklaratif peringkat tinggi seperti SQL. Sebaliknya, pertanyaan pangkalan data ini adalah model data spesifik.
Banyak platform NoSQL membenarkan antara muka RESTful dengan data. API pertanyaan tawaran lain. Terdapat beberapa alat pertanyaan yang telah dibangunkan yang cuba menanyakan beberapa pangkalan data NoSQL. Alat ini biasanya berfungsi merentasi satu kategori NoSQL. Satu contoh adalah SPARQL. SPARQL adalah spesifikasi pertanyaan deklaratif yang direka untuk pangkalan grafik. Berikut adalah contoh pertanyaan SPARQL yang mengambil URL dari blogger tertentu (ihsan IBM):
PREFIX foaf:
Masa Depan NoSQL
Organisasi yang mempunyai keperluan penyimpanan data yang besar kelihatan serius di NoSQL. Rupa-rupanya, konsep ini tidak mendapat banyak daya tarikan dalam organisasi yang lebih kecil. Dalam kaji selidik yang dijalankan oleh Week Information, 44% daripada profesional IT perniagaan belum pernah mendengar NoSQL. Seterusnya, hanya 1% daripada responden melaporkan bahawa NoSQL adalah sebahagian daripada hala tuju strategik mereka. Jelas sekali, NoSQL mempunyai kedudukannya dalam dunia yang bersambung kita tetapi perlu terus berkembang untuk mendapatkan daya tarik massa yang banyak difikirkannya boleh.