NoSQL – Wikipedia tiếng Việt

Chào mừng bạn tới với website Blogchiaseaz, Hôm nay blogchiaseaz.com sẽ giới thiệu tới bạn về bài viết NoSQL – Wikipedia tiếng Việt, Hãy cùng chúng tôi tìm hiểu rõ hơn về bài viết NoSQL – Wikipedia tiếng Việt bên dưới

Cơ sở vật chất dữ liệu NoSQL (tên gốc là “Non SQL” (phi SQL) hoặc “non relational” (phi quan hệ))[1] sản xuất một cơ chế để lưu trữ và truy xuất dữ liệu được mô phỏng hóa khác với những quan hệ bảng được sử dụng trong những cơ sở vật chất dữ liệu kiểu quan hệ. Những cơ sở vật chất dữ liệu tương tự đã tồn tại kể từ cuối những năm 1960, nhưng ko được gọi là “NoSQL” cho tới lúc nổi tiếng đột ngột đầu thế kỷ XXI tạo nên bởi sự cần thiết cho những đơn vị Web 2.0 như Facebook, Google và Amazon.com.[2][3][4] Những cơ sở vật chất dữ liệu NoSQL đang được sử dụng ngày càng nhiều trong những ứng dụng dữ liệu to và ứng dụng nền web thời kì thực. Những hệ thống NoSQL cũng thỉnh thoảng được gọi là “Not only SQL” (ko chỉ là SQL) để nhấn mạnh rằng chúng mang thể tương trợ những tiếng nói truy vấn dạng như SQL.[5][6] Nguyên nhân cho hướng tiếp cận này bao gồm: tính đơn thuần trong thiết kế, mở rộng theo “chiều ngang” cho những cụm máy đơn thuần hơn (là bài toán cho những cơ sở vật chất dữ liệu kiểu quan hệ),[7] và kiểm soát tính khả dụng tốt hơn. Cấu trúc dữ liệu được thiết kế cho những cơ sở vật chất dữ liệu NoSQL (ví dụ: khóa-giá trị (key-value), wide column, biểu đồ hoặc tài liệu) khác với cấu trúc dữ liệu được sử dụng mặc định trong những cơ sở vật chất dữ liệu quan hệ, làm cho nó thao tác nhanh hơn trong NoSQL. Cơ sở vật chất dữ liệu NoSQL thích hợp với từng trường hợp cụ thể cho vấn đề mà nó phải khắc phục. Thỉnh thoảng cấu trúc dữ liệu thiết kế dưới dạng NoSQL được xem là “linh hoạt” hơn những bảng cơ sở vật chất dữ liệu kiểu quan hệ.[8] Nhiều kho lưu trữ NoSQL hy sinh tính nhất quán (trong ý nghĩa của định lý CAP) để ưu tiên cho tính sẵn mang, dung lượng của phân vùng, và tốc độ. Rào cản đối với việc ứng dụng nhiều hơn những kho lưu trữ NoSQL bao gồm việc sử dụng những tiếng nói truy vấn mức thấp (thay vì SQL, ví dụ như thiếu khả năng thực hiện những bảng JOIN đặc trưng), thiếu giao diện chuẩn hóa, và những khoản đầu tư rất to trong những cơ sở vật chất dữ liệu kiểu quan hệ hiện mang.[9] Hầu hết những kho lưu trữ NoSQL thiếu những giao dịch ACID đúng nghĩa, mặc dù một vài cơ sở vật chất dữ liệu, chẳng hạn như MarkLogic, Aerospike, FairCom c-treeACE, Google Spanner (mặc dù về mặt kỹ thuật là cơ sở vật chất dữ liệu dạng NewSQL), Symas LMDB và OrientDB đã đặt điều này làm trung tâm trong thiết kế của họ. (Xem Tương trợ ACID và JOIN.)

Thay vào đó, hầu hết những cơ sở vật chất tài liệu NoSQL đưa ra một khái niệm ” thống nhất ở đầu cuối ” trong đó những đổi khác cơ sở vật chất tài liệu được truyền tới tổng thể những nút ” ở đầu cuối ” ( thường là trong mili giây ) để những truy vấn tài liệu hoàn toàn mang thể ko trả lại được tài liệu update ngay tức thì hoặc hoàn toàn mang thể dẫn tới việc đọc tài liệu ko đúng chuẩn, một yếu tố được gọi đọc lâu ( stale read ). [ 10 ] Ngoài ra, một số ít mạng lưới hệ thống NoSQL hoàn toàn mang thể bộc lộ bị mất những bản ghi và những hình thức mất tài liệu khác. [ 11 ] May mắn thay, 1 số ít mạng lưới hệ thống NoSQL cung ứng những khái niệm như bản ghi ghi-trước ( write-ahead logging ) để tránh bị mất tài liệu. [ 12 ] Đối với khắc phục và xử lý trả tiền giao dịch phân tán trên nhiều cơ sở vật chất tài liệu, tính thống nhất của tài liệu là một thử thách to hơn, đó là khó khăn vất vả cho cả cơ sở vật chất tài liệu kiểu NoSQL và cả cơ sở vật chất tài liệu kiểu quan hệ. Ngay cả cơ sở vật chất tài liệu kiểu quan hệ hiện tại ” ko được cho phép những ràng buộc toàn vẹn tham chiếu để nối ( span ) những cơ sở vật chất tài liệu. ” [ 13 ] Với vài mạng lưới hệ thống duy trì cả trả tiền giao dịch ACID và cả những tiêu chuẩn X / Open XA cho khắc phục và xử lý trả tiền giao dịch phân tán .

Thuật ngữ NoSQL được sử dụng bởi Carlo Strozzi vào năm 1998 để đặt tên cho cơ sở vật chất dữ liệu quan hệ mã nguồn mở Strozzi NoSQL nhỏ gọn của mình, mà ko tiết lộ giao diện SQL tiêu chuẩn, nhưng là vẫn còn là kiểu quan hệ.[14] RDBMS của ông khác với khái niệm chung về cơ sở vật chất dữ liệu NoSQL được khái niệm trong năm 2009. Strozzi gợi ý rằng, vì phong trào NoSQL hiện thời “đi mất từ mô phỏng kiểu quan hệ cùng với nhau; vì thế nên được gọi cho thích hợp hơn đó là ‘NoREL’”,[15] ám chỉ tới ”No Relational’.


Johan Oskarsson của Last.fm giới thiệu lại thuật ngữ NoSQL vào đầu năm 2009 lúc tổ chức một sự kiện thảo luận về “những cơ sở vật chất dữ liệu phân tán, ko quan hệ nguồn mở”.[16] Tên gọi này quyết tâm để đánh dấu sự xuất hiện ngày càng nhiều những kho lưu trữ dữ liệu phân tán, ko quan hệ, bao gồm những nhân văn mã nguồn mở BigTable/MapReduce của Google và Dynamo của Amazon. Hầu hết những hệ thống NoSQL trước hết đã ko quyết tâm sản xuất những bảo đảm tính yếu tố, nhất quán, tách biệt và vững bền, trái với ưu thế thực tế trong những hệ thống cơ sở vật chất dữ liệu kiểu quan hệ.[17]

Bạn đang đọc: NoSQL – Wikipedia tiếng Việt

Dựa trên lệch giá năm năm trước, những hãng đứng vị trí số 1 thị trường NoSQL là MarkLogic, MongoDB, và Datastax. [ 18 ] Dựa trên những bảng xếp hạng phổ cập năm năm ngoái, Những cơ sở vật chất tài liệu NoSQL thông dụng nhất là MongoDB, Apache Cassandra, và Redis. [ 19 ]

Phân loại và những ví dụ về những cơ sở vật chất tài liệu NoSQL[sửa|sửa mã nguồn]

Với nhiều cách phân loại những cơ sở vật chất tài liệu NoSQL khác nhau, mỗi loại với những loại và loại con khác nhau, một số ít trong số đó hoàn toàn mang thể chồng chéo lên nhau. Một phân loại cơ bản dựa trên quy mô tài liệu, với những ví dụ :

  • Column: Accumulo, Cassandra, Druid, HBase, Vertica
  • Document: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, Lotus Notes, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB
  • Key-value: Aerospike, CouchDB, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB
  • Graph: AllegroGraph, InfiniteGraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog
  • Multi-model: Alchemy Database, ArangoDB, CortexDB, FoundationDB, MarkLogic, OrientDB

Một phân loại chi tiết cụ thể hơn như sau, dựa trên cách phân loại của Stephen Yen : [ 20 ]

Loại

Ví dụ

Key-Value Cache

Coherence, eXtreme Scale, GigaSpaces, GemFire, Hazelcast, Infinispan, JBoss Cache, Memcached, Repcached, Terracotta, Velocity

Key-Value Store

Flare, Keyspace, RAMCloud, SchemaFree, Hyperdex, Aerospike

Key-Value Store (Eventually-Consistent)

DovetailDB, Oracle NoSQL Database, Dynamo, Riak, Dynomite, MotionDb, Voldemort, SubRecord

Key-Value Store (Ordered)

Actord, FoundationDB, Lightcloud, LMDB, Luxio, MemcacheDB, NMDB, Scalaris, TokyoTyrant

Máy chủ Cấu trúc dữ liệu

Redis

Tuple Store

Apache River, Coord, GigaSpaces

Cơ sở vật chất dữ liệu đối tượng

DB4O, Objectivity/DB, Perst, Shoal, ZopeDB

Document Store

Clusterpoint, Couchbase, CouchDB, DocumentDB, Lotus Notes, MarkLogic, MongoDB, Qizx, RethinkDB, XML-databases

Wide Column Store

BigTable, Cassandra, Druid, HBase, Hypertable, KAI, KDI, OpenNeptune, Qbase

Những cơ sở vật chất tài liệu đối sánh tương quan là quy mô độc lập, và thay vì là kho tích tụ theo hàng hoặc theo cột, nó lại tích tụ dựa trên trị giá .

Kho tích tụ khóa-giá trị[sửa|sửa mã nguồn]

Kho tích tụ khóa-giá trị ( Key-value : KV ) sử dụng mảng tích hợp ( còn được gọi là map hoặc tự điển ) như là quy mô tài liệu cơ bản của chúng. Trong quy mô này, tài liệu được trình diễn như một bộ sưu tập những cặp khóa-giá trị, tương tự mỗi khoá hoàn toàn mang thể Open chỉ một lần trong bộ sưu tập. [ 21 ] [ 22 ]

Mô phỏng khóa-giá trị là một trong những mô phỏng dữ liệu ko tầm thường đơn thuần nhất, và những mô phỏng dữ liệu phong phú hơn thường được thực hiện như một phần mở rộng của nó. Mô phỏng khóa-giá trị mang thể được mở rộng tới một mô phỏng ra lệnh rời rạc, duy trì những khóa trong lệnh tự điển.Phần mở rộng này mang khả năng tính toán mạnh mẽ, trong đó nó mang thể truy hồi hiệu quả những dãy khóa tuyển lựa.[23]

Những kho tích tụ khóa-giá trị hoàn toàn mang thể sử dụng những quy mô thống nhất gồm mang từ thống nhất ở đầu cuối cho tới serializability. Một số cơ sở vật chất tài liệu tương hỗ đặt lệnh của những khóa. Với nhiều tiến hành phần cứng khác nhau, và một số ít người sử dụng duy trì tài liệu trong bộ nhớ ( RAM ), trong lúc những người khác sử dụng ổ SSD hoặc đĩa cứng .Những ví dụ gồm mang cơ sở vật chất tài liệu Oracle NoSQL, Redis, và dbm .

Lưu trữ tài liệu[sửa|sửa mã nguồn]

Khái niệm trung tâm của một kho lưu trữ tài liệu là khái niệm về “tài liệu”. Trong lúc mỗi cơ sở vật chất dữ liệu hướng tài liệu thực hiện khác nhau về chi tiết của khái niệm này, nói chung, tất cả chúng đều giả thiết rằng những tài liệu đóng gói và mã hóa dữ liệu (hoặc thông tin) trong một số định dạng hoặc mã hóa tiêu chuẩn. Mã hóa được sử dụng bao gồm XML, YAML, và JSON cũng như những dạng nhị phân như BSON. Những tài liệu được định liên hệ trong cơ sở vật chất dữ liệu thông qua một từ khóa duy nhất đại diện cho tài liệu đó. Một trong những đặc điểm khái niệm khác của một cơ sở vật chất dữ liệu hướng tài liệu là ngoài việc tra cứu từ khóa được thực hiện bởi một kho lưu trữ khóa-giá trị, cơ sở vật chất dữ liệu đó còn sản xuất một API hoặc tiếng nói truy vấn để lấy tài liệu dựa trên nội dung của chúng

Xem thêm: Xét nghiệm HIV âm tính là gì?

Những tiến hành khác nhau phân phối nhiều cách khác nhau để tổ chức triển khai và / hoặc nhóm những tài liệu :

  • Những bộ sưu tập
  • Thẻ đánh dấu (tag)
  • Siêu dữ liệu ko nhìn thấy được
  • Phân cấp thư mục

So với cơ sở vật chất tài liệu quan hệ, ví dụ, những bộ sưu tập hoàn toàn mang thể được coi là tương tự như như những bảng biểu và những tài liệu tương tự như như những hồ sơ / bản ghi. Nhưng chúng là khác nhau : mỗi bản ghi trong một bảng mang cùng một trình tự của những miền, trong lúc những tài liệu trong bộ sưu tập hoàn toàn mang thể mang những miền trọn vẹn khác nhau .
Loại cơ sở vật chất tài liệu này được phong cách thiết kế cho tài liệu mang quan hệ cũng được màn trình diễn như một đồ thị gồm mang những yếu tố liên kết qua lại với một số ít hữu hạn những quan hệ giữa chúng. Loại tài liệu này hoàn toàn mang thể là những mối quan hệ xã hội, link liên lạc vận tải công cùng, map đường đi bộ hoặc những topo mạng .

Cơ sở vật chất tài liệu đối tượng người tiêu sử dụng[sửa|sửa mã nguồn]

  • db4o
  • GemStone/S
  • InterSystems Caché
  • JADE
  • NeoDatis ODB
  • ObjectDatabase++
  • ObjectDB
  • Objectivity/DB
  • ObjectStore
  • ODABA
  • Perst
  • OpenLink Virtuoso
  • Versant Object Database
  • ZODB
  • Apache Accumulo
  • BigTable
  • Apache Hbase
  • Hypertable
  • Mnesia
  • OpenLink Virtuoso
  • Apache River
  • GigaSpaces
  • Tarantool
  • TIBCO ActiveSpaces
  • OpenLink Virtuoso
  • AllegroGraph
  • Apache JENA (Nó là một nền tảng, ko phải là một cơ sở vật chất dữ liệu)
  • MarkLogic
  • Ontotext-OWLIM
  • Oracle NoSQL database
  • SparkleDB
  • Virtuoso Universal Server
  • Stardog

Cơ sở vật chất tài liệu đa trị giá[sửa|sửa mã nguồn]

  • D3 Pick database
  • Động cơ lưu trữ mở rộng (ESE/NT)
  • InfinityDB
  • InterSystems Caché
  • jBASE Pick database
  • Northgate Information Solutions Reality, the original Pick/MV Database
  • OpenQM
  • Revelation Software’s OpenInsight
  • Rocket U2

Cơ sở vật chất tài liệu đa quy mô[sửa|sửa mã nguồn]

  • OrientDB
  • FoundationDB
  • ArangoDB
  • MarkLogic

Ben Scofield sắp xếp những loại cơ sở vật chất tài liệu NoSQL theo bảng sau : [ 26 ]

Mô phỏng dữ liệu

Hiệu suất

Khả năng nâng cấp (mở rộng)

Tính linh hoạt

Độ phức tạp

Chức năng

Key–Value Store

cao

cao

cao

none

bất định (none)

Column-Oriented Store

cao

high

moderate

thấp

minimal

Document-Oriented Store

cao

bất định (high)

cao

thấp

bất định (low)

Graph Database

bất định

bất định

high

cao

graph theory

Relational Database

bất định

bất định

low

moderate

relational algebra
Performance and scalability comparisons are sometimes done with the YCSB benchmark .

Xử lý tài liệu quan hệ[sửa|sửa mã nguồn]

Do hầu hết những cơ sở vật chất tài liệu NoSQL thiếu năng lực liên kết trong những truy vấn, sơ đồ cơ sở vật chất tài liệu nói chung cần phải được phong cách thiết kế khác nhau. Với ba kỹ thuật chính để khắc phục và xử lý tài liệu quan hệ trong một cơ sở vật chất tài liệu NoSQL. ( Xem bảng tương hỗ Join và ACID cho cơ sở vật chất tài liệu NoSQL mang tương hỗ những join. )

Đa truy vấn[sửa|sửa mã nguồn]

Thay vì lấy toàn bộ những tài liệu với một truy vấn, ta thường thực thi nhiều truy vấn khác nhau để mang được những tài liệu mong ước. Những truy vấn NoSQL thường nhanh hơn so với truy vấn SQL truyền thống cuội nguồn thế cho nên ngân sách của việc phải thực thi những truy vấn bổ trợ hoàn toàn mang thể gật đầu được. Nếu số lượng truy vấn quá nhiều là thiết yếu, một trong hai chiêu thức khác sẽ thích hợp hơn .

Dữ liệu bộ nhớ đệm / sao chép / không-chuẩn hoá[sửa|sửa mã nguồn]

Thay vì chỉ lưu giữ những từ khóa ngoại lai, ta thường tích tụ những trị giá thực tiễn ngoại lai cùng với tài liệu của quy mô. Ví dụ, mỗi phản hồi blog hoàn toàn mang thể gồm mang tên người sử dụng, thêm vào đó là một id người sử dụng, do đó ta thuận tiện truy vấn tới tên người sử dụng mà ko cần phải mang bất kể tra cứu nào khác. Lúc một tên người sử dụng đổi khác tuy nhiên, điều này giờ đây sẽ cần phải được đổi khác ở nhiều nơi trong cơ sở vật chất tài liệu. Vì vậy chiêu thức này hoạt động tiêu khiển tốt hơn lúc việc đọc là thông dụng hơn nhiều so với việc ghi. [ 27 ]

With document databases like MongoDB it’s common to put more data in a smaller number of collections. For example, in a blogging application, one might choose to store comments within the blog post document so that with a single retrieval one gets all the comments. Thus in this approach a single document contains all the data you need for a specific task.

Xem thêm: 3*** Ánh sáng là gì? Ánh sáng đơn sắc là gì?

Tương trợ ACID và JOIN[sửa|sửa mã nguồn]

Nếu một cơ sở vật chất tài liệu được lưu lại là tương hỗ ACID hoặc join, thì tài liệu cho cơ sở vật chất tài liệu này làm sẽ thực thi công bố đó. Mức độ mà năng lực được tương hỗ vừa đủ trong phương pháp tựa như so với hầu hết cơ sở vật chất tài liệu SQL hoặc mức độ mà nó phân phối những nhu yếu của một ứng dụng đơn cử được để cho người đọc nhìn nhận .

Cơ sở vật chất dữ liệu
ACID
Joins

Aerospike
Với
Ko

ArangoDB
Với
Với

CouchDB
Với
Với

c-treeACE
Với
Với

HyperDex
Với[nb 1]
Với

InfinityDB
Với
Ko

LMDB
Với
Ko

MarkLogic
Với
Với[nb 2]
OrientDB
Với
Với

  1. ^ HyperDex hiện tại đã tương hỗ ACID trải qua phần tương trợ ( extension ) Warp, một add-on thương nghiệp .
  2. ^ [28]Joins ko nhất thiết phải ứng dụng vào tài liệu cơ sở vật chất tài liệu, nhưng MarkLogic hoàn toàn mang thể thực thi joins bằng Semantics .
  • CAP theorem
  • Comparison of object database management systems
  • Comparison of structured storage software
  • Correlation database
  • Distributed cache
  • Faceted search
  • MultiValue database
  • Multi-model database
  • Triplestore

Liên kết ngoài[sửa|sửa mã nguồn]

Source: https://blogchiaseaz.com
Category: Hỏi Đáp

Tham khảo thêm: NoSQL – Wikipedia tiếng Việt

Related Posts