Latest web development tutorials

Profil NoSQL

NoSQL (NoSQL = Tidak Hanya SQL), yang berarti "tidak hanya SQL".

Dalam modern yang sistem komputasi sehari pada jaringan akan memiliki sejumlah besar data.

Data ini merupakan bagian yang besar dari sistem manajemen database relasional (RDMBSs) untuk menangani. 1970 EFCodd diusulkan model relasional kertas "Sebuah model relasional data untuk besar bersama bank data", yang membuat pemodelan data dan pemrograman aplikasi lebih mudah.

Dengan menerapkan model relasional terbukti sangat cocok untuk pemrograman client-server, jauh melampaui manfaat yang diharapkan, dan hari ini adalah data terstruktur yang disimpan dalam jaringan dan aplikasi bisnis teknologi dominan.

Database NoSQL adalah gerakan revolusioner baru, awal ia menyarankan bahwa tren perkembangan lebih dan lebih meningkat hingga 2009. NoSQL pendukung yang mempromosikan penggunaan penyimpanan data non-relasional, sehubungan dengan penggunaan berlebihan dari database relasional, konsep ini tidak diragukan lagi menyuntikkan pemikiran baru.

database relasional untuk mengikuti aturan ACID

transaksi inggris transaksi, dan dunia nyata perdagangan sangat mirip, memiliki empat karakteristik sebagai berikut:

1, A (Atomicity) Atomic Situs atom mudah dimengerti, bahwa semua operasi dalam transaksi baik semua dilakukan, atau tidak, transaksi adalah transaksi kondisi untuk sukses dalam semua operasi yang sukses, asalkan ada operasi gagal, seluruh transaksi akan gagal, perlu memutar kembali.

Seperti transfer bank, transfer rekening dari A ke B rekening 100 yuan, dibagi menjadi dua langkah: 1) Ambil A menyumbang 100 yuan; 2) ke B 100 yuan rekening deposito. Kedua langkah diselesaikan bersama-sama atau tidak bersama-sama selesai, jika sudah selesai hanya langkah pertama, langkah kedua gagal, uang akan entah bagaimana 100 yuan kurang.

2, C (Konsistensi) konsistensi Situs konsistensi relatif mudah dipahami, yang telah dalam database ke keadaan yang konsisten, menjalankan transaksi tersebut tidak akan mengubah kendala konsistensi database asli.

Ada kendala integritas seperti + b = 10, jika transaksi perubahan, kita harus mengubah b, sehingga bagian belakang transaksi masih memenuhi a + b = 10, jika transaksi gagal.

3, I (Isolasi) <br> <br> disebut kemerdekaan berarti kemerdekaan tidak akan mempengaruhi satu sama transaksi konkuren lain, jika data transaksi untuk diakses oleh transaksi lain yang dimodifikasi selama transaksi tidak terikat lain, Data diakses tidak terpengaruh oleh transaksi tidak mengikat.
Sebagai contoh, ada sebuah akun perdagangan yang ada ditransfer dari A ke B rekening 100 yuan, dalam kasus transaksi ini belum selesai. Jika B memeriksa rekening mereka, tidak dapat melihat baru ditambahkan 100 yuan.

4, D (Durability) Kegigihan Ketekunan mengacu Situs sekali transaksi melakukan, itu suntingan akan disimpan secara permanen pada database, tidak akan hilang bahkan jika downtime terjadi.


Sistem terdistribusi

sistem terdistribusi (sistem terdistribusi) komponen perangkat lunak beberapa komputer dan koneksi komunikasi (jaringan lokal atau wide area network) yang disusun oleh jaringan komputer.

sistem terdistribusi yang dibangun di atas sistem perangkat lunak jaringan. Justru karena karakteristik dari perangkat lunak, sistem terdistribusi dengan tingkat tinggi kohesi dan transparansi.

Dengan demikian, perbedaan antara jaringan dan sistem terdistribusi yang lebih lunak tingkat tinggi (khususnya sistem operasi), bukan hardware.

sistem terdistribusi dapat diterapkan pada platform yang berbeda seperti: Pc, workstation, LAN dan WAN dan sejenisnya.


Keuntungan dari komputasi terdistribusi

Keandalan (toleransi kesalahan):
Keuntungan penting dari sistem komputasi terdistribusi adalah kehandalan. Kecelakaan server tidak mempengaruhi sisa server.

skalabilitas:
Dalam sistem komputasi terdistribusi dapat menambahkan lebih banyak mesin yang diperlukan.

Berbagi sumber daya:
Berbagi data sangat penting untuk aplikasi seperti perbankan, sistem reservasi.

fleksibilitas:
Karena sistem ini sangat fleksibel, mudah untuk menginstal, melaksanakan dan men-debug layanan baru.

kecepatan lebih cepat:
Sistem komputasi terdistribusi dapat memiliki daya komputasi yang lebih dari komputer, sehingga kecepatan pemrosesan lebih cepat dari sistem lain.

Open System:
Karena merupakan sistem terbuka yang dapat akses lokal atau remote ke layanan tersebut.

kinerja yang lebih tinggi:
Terpusat cluster jaringan komputer dibandingkan untuk memberikan kinerja yang lebih tinggi (dan harga yang lebih baik).


Kerugian dari komputasi terdistribusi

tips ::
Memecahkan masalah dan mendiagnosis masalah.

software:
Kurang dukungan perangkat lunak adalah kelemahan utama dari sistem komputasi terdistribusi.

jaringan:
Masalah infrastruktur jaringan, termasuk: masalah transmisi, beban tinggi, informasi yang hilang dan sebagainya.

keamanan:
Karakteristik pengembangan sistem memungkinkan sistem terdistribusi komputasi rentan terhadap risiko keamanan dan berbagi masalah data.


Apa NoSQL?

NoSQL, mengacu pada database non-relasional. NoSQL kadang-kadang juga disebut sebagai singkatan untuk Tidak Hanya SQL, hal ini berbeda dari sistem manajemen database tradisional database relasional secara kolektif.

NoSQL untuk menyimpan data skala besar. (Seperti Google atau Facebook triliun bit data per hari dikumpulkan untuk pengguna mereka). jenis penyimpanan data tidak memerlukan pola tetap, tidak ada operasi tambahan dapat diperpanjang lateral.

Mengapa NoSQL?

Hari ini kita bisa platform pihak ketiga: Anda dapat dengan mudah mengakses dan mengambil data (seperti Google, Facebook, dll). informasi pribadi pengguna, jaringan sosial, lokasi, user-generated data dan log pengguna telah meningkat secara eksponensial. Jika kita ingin data mining pengguna ini, database SQL yang tidak cocok untuk aplikasi ini, dan pengembangan database NoSQL juga baik mampu menangani data yang besar.

web-data-image

contoh

jaringan disosialisasikan:

Setiap record: UserID1, UserID2
catatan terpisah: UserID, first_name, last_name, usia, jenis kelamin, ...
Tugas: Cari semua teman dari teman dari teman dari ... teman-teman dari pengguna tertentu.

Halaman Wikipedia:

koleksi dokumen
Kombinasi data terstruktur dan tidak terstruktur
Tugas: Ambil semua halaman mengenai atletik dari Summer Olympic sebelum tahun 1950.

RDBMS vs NoSQL

RDBMS
- Struktur yang sangat terorganisir data
- Structured Query Language (SQL) (SQL)
- Data dan hubungan disimpan dalam tabel terpisah.
- Data Manipulation Language, Data Definition Language
- Konsistensi Ketat
- Layanan Dasar

NoSQL
- Merupakan tidak hanya SQL
- Tidak ada bahasa query deklaratif
- Tidak ada pola yang telah ditetapkan
- Key - nilai pasangan, penyimpanan kolom, penyimpanan dokumen, grafis, basis data
- Konsistensi akhirnya, bukan sifat ACID
- Data tidak dapat diprediksi dan tidak terstruktur
- CAP Teorema
- Kinerja tinggi, ketersediaan tinggi dan skalabilitas

bigdata

NoSQL Sejarah Singkat

NoSQL Istilah pertama kali muncul pada tahun 1998, merupakan pengembangan Carlo Strozzi ringan, open source, tidak memberikan SQL fungsionalitas database relasional.

Pada tahun 2009, Last.fm Johan Oskarsson memulai diskusi tentang sumber database open didistribusikan [2], Eric Evans dari Rackspace lagi mengusulkan konsep NoSQL, maka NoSQL terutama mengacu pada non-relasional, didistribusikan, tidak memberikan ACID pola desain database.

Pada tahun 2009 di Atlanta "no: sql (timur)" seminar adalah tonggak sejarah, dengan slogan "pilih menyenangkan, keuntungan dari real_world mana relasional = false;". Oleh karena itu, NoSQL penjelasan yang paling umum adalah bahwa "non-terkait jenis," menekankan keuntungan dari Key-Nilai Toko dan database dokumen, daripada RDBMS oposisi belaka.


CAP Teorema (CAP teorema)

Dalam ilmu komputer, CAP Teorema (CAP teorema), juga dikenal sebagai Brewer Teorema (Teorema Brewer), yang menunjukkan bahwa untuk sistem komputasi terdistribusi, tidak dapat secara bersamaan memenuhi tiga hal berikut:

  • Konsistensi (konsistensi) (semua node memiliki data yang sama pada waktu yang sama)
  • Ketersediaan (ketersediaan) (memastikan bahwa setiap permintaan memiliki respon terlepas dari keberhasilan atau kegagalan)
  • toleransi partisi (toleransi partisi) (rugi sistem atau kegagalan dari setiap informasi yang tidak mempengaruhi operasi lanjutan dari sistem)

Teori inti CAP adalah: sistem terdistribusi tidak dapat secara bersamaan memenuhi konsistensi, ketersediaan, toleransi kesalahan, dan partisi ketiga persyaratan tersebut hanya bisa memenuhi dua sementara yang baik.

Jadi, menurut prinsip-prinsip database CAP NoSQL ke CA memenuhi prinsip, untuk bertemu dan memenuhi prinsip-prinsip CP AP prinsip tiga kategori:

  • CA - satu titik cluster bertemu konsistensi, ketersediaan sistem, skalabilitas, biasanya kurang kuat.
  • CP - memenuhi konsistensi, akan mentolerir partisi kinerja sistem umumnya tidak terlalu tinggi.
  • AP - memenuhi ketersediaan, toleransi partisi sistem, biasanya persyaratan kesesuaian mungkin lebih rendah.
cap-theoram-gambar

keuntungan NoSQL / kerugian

keuntungan:

  • - Skalabilitas Tinggi
  • - Distributed Computing
  • - Biaya rendah
  • - Fleksibilitas Arsitektur, data semi-terstruktur
  • - Tidak ada hubungan yang rumit

kekurangan:

  • - Tidak ada standarisasi
  • - Fungsi pencarian Limited (sejauh ini)
  • - Perjanjian Akhir bukan program intuitif

DASAR

DASAR: Pada dasarnya Tersedia, Soft-negara, Akhirnya Konsisten. Didefinisikan oleh Eric Brewer.

Teori inti CAP adalah: sistem terdistribusi tidak dapat secara bersamaan memenuhi konsistensi, ketersediaan, toleransi kesalahan, dan partisi ketiga persyaratan tersebut hanya bisa memenuhi dua sementara yang baik.

BASE adalah database NoSQL biasanya lemah untuk ketersediaan dan konsistensi persyaratan prinsip:

  • Pada dasarnya availble - Dasar Tersedia
  • Soft-negara - lembut negara / transaksi Fleksibel. "Soft negara" bisa dipahami sebagai "tidak ada koneksi", dan "negara keras" adalah "connection-oriented" di
  • Akhirnya Konsistensi - konsistensi akhirnya konsistensi akhirnya adalah tujuan akhir dari ACID.

ASAM vs DASAR

ACID DASAR
Atom (A tomicity) Dasar dapat digunakan (B asically A vailable)
Konsistensi (C onsistency) Lembut negara / Jasa Fleksibel (S negara sering)
Isolasi (I solation) konsistensi akhirnya (E konsistensi ventual)
Persistent (D urable)

klasifikasi Database NoSQL

jenis beberapa perwakilan

ciri
toko kolom

Hbase

Cassandra

Hypertable

Seperti namanya, itu disimpan dalam kolom data. Fitur terbesar adalah mudah untuk menyimpan data terstruktur dan semi-terstruktur, mudah untuk melakukan kompresi data, memiliki keuntungan yang sangat besar untuk IO dari kolom atau kolom dari query.

Penyimpanan dokumen

MongoDB

CouchDB

penyimpanan dokumen umumnya digunakan untuk menyimpan format json sama, konten disimpan dalam jenis dokumen. Ini juga memiliki kesempatan untuk membangun indeks pada beberapa bidang, untuk mencapai beberapa fitur dari database relasional.

penyimpanan kunci-nilai

Tokyo Kabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

Anda dapat dengan cepat memeriksa nilai dengan kunci. Secara umum, terlepas dari nilai format penyimpanan untuk mewarisi. (Redis berisi fitur tambahan)

memori peta

Neo4j

FlockDB

hubungan store grafis terbaik. Penggunaan rendah kinerja database relasional tradisional untuk menyelesaikannya, dan desain nyaman untuk digunakan.

obyek Storage

db4o

Versant

Melalui sintaks bahasa berorientasi objek ini mirip dengan operasi database, diakses dengan cara data objek.

Database xml

Berkeley DB XML

BaseX

Efisien penyimpanan data XML dan mendukung sintaks query XML internal, seperti XQuery, XPath.


Siapa yang Menggunakan

Sudah ada banyak perusahaan menggunakan NoSQL:
  • Google
  • Facebook
  • Mozilla
  • Adobe
  • foursquare
  • LinkedIn
  • Digg
  • McGraw-Hill Education
  • Public Radio Vermont