Document database là gì

NoSQL là gì?

Cơ sở dữ liệu phi quan hệ, hiệu suất cao với mô hình dữ liệu linh hoạt

Bắt đầu với DynamoDB

Quảng cáo

Cơ sở dữ liệu NoSQL là gì?

Cơ sở dữ liệu NoSQL là Cơ sở dữ liệu được xây dựng đặc biệt cho mô hình dữ liệu và có một lược đồ linh hoạt để xây dựng các ứng dụng hiện đại. Cơ sở dữ liệu NoSQL được công nhận rộng rãi vì tính dễ phát triển, chức năng và hiệu suất trên quy mô lớn. Trang này có các tài nguyên để giúp bạn hiểu thêm về cơ sở dữ liệu NoSQL và bắt đầu.

Cơ sở dữ liệu trên AWS: Công cụ phù hợp cho nhiệm vụ phù hợp

Cơ sở dữ liệu NoSQL (không quan hệ) hoạt động như thế nào?

Cơ sở dữ liệu NoSQL sử dụng nhiều mô hình dữ liệu để truy cập và quản lý dữ liệu. Các loại cơ sở dữ liệu này được tối ưu hóa đặc biệt cho các ứng dụng yêu cầu mô hình dữ liệu linh hoạt với lượng dữ liệu lớn và độ trễ thấp, có thể đạt được bằng cách giảm bớt một số ràng buộc về tính nhất quán của dữ liệu từ các cơ sở dữ liệu khác.

Hãy xem một mô hình sơ đồ ví dụ cho một cơ sở dữ liệu sách đơn giản:

  • Trong cơ sở dữ liệu quan hệ, các bản ghi cho một cuốn sách thường được phân tách (còn được gọi là “chuẩn hóa”) và được lưu trữ trong các bảng riêng biệt, và các mối quan hệ được chỉ định bởi các ràng buộc chính. khóa ngoại và khóa chính. Trong ví dụ này, bảng Sách có các cột cho ISBN, Tên sáchSố phiên bảnCái bảng Tác giả có các cột cho ID tác giả Tên người viết và cuối cùng, bảng ISBN của tác giả có các cột cho ID tác giả ISBN. Mô hình quan hệ được thiết kế để cho phép các cơ sở dữ liệu này thực thi tính toàn vẹn tham chiếu giữa nhiều bảng trong cơ sở dữ liệu, được chuẩn hóa để giảm dư thừa và thường được tối ưu hóa cho mục đích lưu vào bộ nhớ đệm. .
  • Trong cơ sở dữ liệu NoSQL, các bản ghi về một cuốn sách thường được lưu trữ dưới dạng văn bản JSON. Với mỗi cuốn sách, mặt hàng, ISBN, Tên sách, Số phiên bản, Tên người viếtID tác giả được lưu trữ dưới dạng một thuộc tính trong một tài liệu duy nhất. Trong mô hình này, dữ liệu được tối ưu hóa để phát triển trực quan và khả năng mở rộng theo chiều ngang.

Tại sao bạn nên sử dụng cơ sở dữ liệu NoSQL?

Cơ sở dữ liệu NoSQL là sự lựa chọn hoàn hảo cho nhiều ứng dụng hiện đại, chẳng hạn như di động, web và trò chơi đòi hỏi cơ sở dữ liệu cực kỳ thực tế, linh hoạt, có thể hoán đổi cho nhau. Có thể mở rộng và hiệu suất cao để mang lại trải nghiệm người dùng tuyệt vời.

  • Linh hoạt:Cơ sở dữ liệu NoSQL thường cung cấp các lược đồ linh hoạt giúp phát triển nhanh hơn và lặp lại nhiều hơn. Mô hình dữ liệu linh hoạt làm cho cơ sở dữ liệu NoSQL trở thành lựa chọn lý tưởng cho dữ liệu không có cấu trúc hoặc không hoàn chỉnh.
  • Khả năng mở rộng:Cơ sở dữ liệu NoSQL thường được thiết kế để mở rộng quy mô bằng cách sử dụng các cụm phần cứng phân tán thay vì mở rộng quy mô với các bổ sung máy chủ mạnh mẽ và đắt tiền. Một số nhà cung cấp dịch vụ đám mây coi các hoạt động này không công khai như một dịch vụ được quản lý hoàn toàn.
  • Hiệu suất cao:Cơ sở dữ liệu NoSQL được tối ưu hóa cho các mô hình dữ liệu cụ thể và các mẫu truy cập giúp tăng hiệu suất cao hơn so với việc cố gắng đạt được cùng mức chức năng với cơ sở dữ liệu quan hệ.
  • Cực kỳ thực tế:Cơ sở dữ liệu NoSQL cung cấp các API và kiểu dữ liệu cực kỳ thiết thực được xây dựng riêng cho từng mô hình dữ liệu tương ứng.

Các loại cơ sở dữ liệu NoSQL

Cơ sở dữ liệu tài liệu là gì?

Giá trị cốt lõi: Cơ sở dữ liệu khóa-giá trị có tính phân mảnh cao và cho phép mở rộng theo chiều ngang ở quy mô lớn mà các loại cơ sở dữ liệu khác không làm được. Mô hình dữ liệu giá trị quan trọng được sử dụng cho trò chơi, công nghệ quảng cáo và đặc biệt phù hợp với IoT. Amazon DynamoDB được thiết kế để có độ trễ mili giây nhất quán cho khối lượng công việc ở bất kỳ kích thước nào. Hiệu suất ổn định này là lý do chính để chuyển tính năng Câu chuyện của Snapchat (bao gồm khối lượng công việc ghi lại kho lưu trữ lớn nhất của Snapchat) sang DynamoDB.

Cơ sở dữ liệu tài liệu là gì?

Tài liệu:Trong mã ứng dụng, dữ liệu thường được biểu diễn dưới dạng đối tượng hoặc văn bản JSON vì nó là một mô hình dữ liệu hiệu quả và trực quan cho các nhà phát triển. Cơ sở dữ liệu văn bản giúp các nhà phát triển dễ dàng lưu trữ và truy vấn dữ liệu trong cơ sở dữ liệu bằng cách sử dụng cùng một định dạng mô hình văn bản mà họ sử dụng trong mã ứng dụng của mình. Tính chất linh hoạt, bán cấu trúc và phân cấp của tài liệu và cơ sở dữ liệu văn bản cho phép chúng phát triển phù hợp với các yêu cầu ứng dụng. Mô hình văn bản hoạt động tốt với danh mục, hồ sơ người dùng và hệ thống quản lý nội dung, nơi mỗi tài liệu là duy nhất và phát triển theo thời gian. Amazon DocumentDB (với khả năng tương thích MongoDB) và MongoDB là cơ sở dữ liệu văn bản phổ biến cung cấp các API mạnh mẽ và trực quan để phát triển nhanh và lặp lại.

Cơ sở dữ liệu tài liệu là gì?

Đồ thị: Mục đích của cơ sở dữ liệu đồ thị là giúp dễ dàng xây dựng và chạy các ứng dụng hoạt động với các tập dữ liệu được kết nối cao. Cơ sở dữ liệu đồ thị thường được sử dụng cho đồ thị tri thức, mạng xã hội, công cụ khuyến nghị và phát hiện gian lận. Amazon Neptune là một dịch vụ cơ sở dữ liệu đồ thị được quản lý hoàn toàn. Neptune hỗ trợ cả mô hình Đồ thị thuộc tính và Khung mô tả tài nguyên (RDF), cung cấp cho người dùng sự lựa chọn về hai API đồ thị: TinkerPop và RDF / SPARQL. Cơ sở dữ liệu đồ thị phổ biến bao gồm Neo4j và Giraph.

Cơ sở dữ liệu tài liệu là gì?

Trong trí nhớ: Các ứng dụng trò chơi và công nghệ quảng cáo đã sử dụng loại Cơ sở dữ liệu này trong nhiều trường hợp như bảng xếp hạng, lưu trữ phiên và phân tích thời gian thực yêu cầu thời gian phản hồi và lưu lượng truy cập micro giây. Có thể đạt đỉnh bất cứ lúc nào.Amazon MemoryDB for Redis là dịch vụ cơ sở dữ liệu trong bộ nhớ bền, tương thích với Redis, đảm bảo độ trễ đọc tính bằng micro giây, độ trễ ghi dưới 10 mili giây và độ bền trên nhiều vùng khả dụng. MemoryDB được xây dựng với độ bền và hiệu suất cực cao, do đó bạn có thể sử dụng nó làm cơ sở dữ liệu chính cho các ứng dụng microservices hiện đại.Amazon ElastiCache là một dịch vụ bộ nhớ đệm trong bộ nhớ được quản lý hoàn toàn, tương thích với cả Redis và Memcached để phục vụ độ trễ thấp, cao -các khối lượng công việc thông qua. Những khách hàng yêu cầu khả năng phản hồi theo thời gian thực cho các ứng dụng của họ như Tinder dựa vào các kho lưu trữ dữ liệu trong bộ nhớ thay vì lưu trữ dữ liệu trên đĩa. Amazon DynamoDB Accelerator (DAX) là một ví dụ khác. về một kho dữ liệu được xây dựng đặc biệt. DAX giúp DynamoDB đọc nhanh hơn nhiều.

Cơ sở dữ liệu tài liệu là gì?

Tìm kiếm: Nhiều ứng dụng xuất nhật ký để giúp các nhà phát triển khắc phục sự cố. Amazon Elasticsearch Service (Amazon ES) là Cơ sở dữ liệu được xây dựng đặc biệt để cung cấp ảo hóa và phân tích thời gian thực gần như thời gian thực đối với dữ liệu do máy tạo ra bằng cách lập chỉ mục, tổng hợp và tìm kiếm hàng ngày. Dấu hiệu và dữ liệu có cấu trúc không hoàn chỉnh. Amazon ES cũng là một công cụ tìm kiếm mạnh mẽ và hiệu suất cao dành cho các trường hợp sử dụng tìm kiếm toàn văn. Expedia đang sử dụng hơn 150 miền Amazon ES, 30 TB dữ liệu và 30 tỷ tài liệu cho nhiều chức năng quan trọng khác nhau, từ hoạt động theo dõi và khắc phục sự cố đến tối ưu hóa theo dõi và định giá ngăn xếp ứng dụng phân tán.

Cơ sở dữ liệu SQL (quan hệ) so với Cơ sở dữ liệu NoSQL (không quan hệ)

Trong nhiều thập kỷ, mô hình dữ liệu thống trị về cách sử dụng để phát triển ứng dụng là mô hình dữ liệu quan hệ được sử dụng trong cơ sở dữ liệu quan hệ, chẳng hạn như Oracle, DB2, SQL Server, MySQL và PostgreSQL. Mãi đến cuối những năm 2000, các mô hình dữ liệu khác mới bắt đầu được áp dụng và sử dụng nhiều hơn. Để phân biệt và phân loại các cơ sở dữ liệu và mô hình dữ liệu mới này, từ “NoSQL” đã được đặt ra. Thông thường, thuật ngữ “NoSQL” được sử dụng tương đương với “không quan hệ”.

Mặc dù có nhiều loại cơ sở dữ liệu NoSQL với các tính năng đa dạng, bảng sau đây minh họa một số điểm khác biệt giữa cơ sở dữ liệu SQL và NoSQL.


Cơ sở dữ liệu quan hệ
Cơ sở dữ liệu NoSQL

Khối lượng công việc tối ưu

Cơ sở dữ liệu quan hệ được thiết kế cho các ứng dụng xử lý giao dịch trực tuyến (OLTP) với độ ổn định cao và phù hợp với xử lý phân tích trực tuyến (OLAP). Cơ sở dữ liệu NoSQL được thiết kế cho các mẫu truy cập dữ liệu, bao gồm các ứng dụng có độ trễ thấp. Cơ sở dữ liệu tìm kiếm NoSQL được thiết kế để phân tích dữ liệu có cấu trúc không đầy đủ.
Mô hình dữ liệu

Mô hình quan hệ chuẩn hóa dữ liệu thành các bảng được tạo thành từ các hàng và cột. Sơ đồ chỉ định rõ ràng các bảng, hàng, cột, chỉ mục, mối quan hệ giữa các bảng và các phần tử cơ sở dữ liệu khác. Cơ sở dữ liệu sẽ thực thi tính toàn vẹn tham chiếu trong mối quan hệ giữa các bảng.

Cơ sở dữ liệu NoSQL cung cấp nhiều mô hình dữ liệu khác nhau như khóa-giá trị, tài liệu và đồ thị, được tối ưu hóa cho hiệu suất và quy mô tối ưu.
Thuộc tính ACID

Cơ sở dữ liệu quan hệ có các thuộc tính sau: Nguyên tố, Nhất quán, Khác biệt và Kiên trì (ACID):

  • Yếu tố yêu cầu giao dịch phải được thực hiện đầy đủ hoặc không được thực hiện.
  • Tính nhất quán yêu cầu rằng khi một giao dịch được thực hiện, dữ liệu phải phù hợp với lược đồ cơ sở dữ liệu.
  • Sự cô lập yêu cầu rằng các giao dịch đồng thời phải được thực hiện riêng biệt với nhau.
  • Tính bền vững đòi hỏi khả năng phục hồi sau sự cố hệ thống hoặc mất điện đột ngột về trạng thái cuối cùng đã biết.

Cơ sở dữ liệu NoSQL thường phải đánh đổi bằng cách nới lỏng một số thuộc tính ACID này của cơ sở dữ liệu quan hệ để có một mô hình dữ liệu linh hoạt hơn có khả năng mở rộng theo chiều ngang. Điều này làm cho cơ sở dữ liệu NoSQL trở thành lựa chọn tuyệt vời cho các trường hợp sử dụng có độ trễ thấp, thông lượng cao cần mở rộng theo chiều ngang vượt ra ngoài các giới hạn của một phiên bản đơn lẻ.
Màn biểu diễn
Hiệu suất thường phụ thuộc vào hệ thống con của ổ đĩa. Thông thường, cần tối ưu hóa các truy vấn, chỉ mục và cấu trúc bảng để có hiệu suất tối đa. Hiệu suất thường được xem như là một chức năng của kích thước cụm phần cứng ngầm, độ trễ mạng và gọi ứng dụng.
Tỉ lệ
Cơ sở dữ liệu quan hệ thường mở rộng quy mô bằng cách tăng sức mạnh tính toán của phần cứng của chúng hoặc bằng cách thêm các bản sao của khối lượng công việc chỉ đọc. Cơ sở dữ liệu NoSQL thường bị phân mảnh cao vì các mẫu truy cập khóa-giá trị có thể mở rộng bằng cách sử dụng kiến ​​trúc phân tán để tăng thông lượng, cung cấp hiệu suất nhất quán ở quy mô gần. thích không giới hạn.
API
Các yêu cầu về lưu trữ và truy xuất dữ liệu được thông báo bằng cách sử dụng các truy vấn phù hợp với ngôn ngữ truy vấn có cấu trúc (SQL). Các truy vấn này được phân tích và thực thi bởi cơ sở dữ liệu quan hệ. API dựa trên đối tượng cho phép các nhà phát triển ứng dụng dễ dàng lưu trữ và truy xuất cấu trúc dữ liệu trong bộ nhớ. Khóa phân mảnh tìm kiếm các cặp khóa-giá trị, tập hợp cột hoặc văn bản có cấu trúc không hoàn chỉnh có chứa các đối tượng và thuộc tính ứng dụng được xâu chuỗi.

Điều khoản SQL so với NoSQL

Bảng sau đây so sánh thuật ngữ được sử dụng trong cơ sở dữ liệu NoSQL đã chọn với thuật ngữ được sử dụng trong cơ sở dữ liệu SQL.

SQL
MongoDB
DynamoDB
Cassandra
Couchbase
Bảng Bộ sưu tập Bảng Bảng Dữ liệu Vùng chứa Hàng Tài liệu Mục Hàng Tài liệu Cột Thuộc tính Trường Cột Khóa chính Đối tượng Id Khóa chính
Khoá chính Văn bản chính ID Chỉ mục Chỉ mục Chỉ mục Thứ cấp Chỉ mục Xem Chỉ mục Thứ cấp Toàn cầu Dạng xem Vật thể hoá Dạng xem Bảng hoặc Đối tượng Dạng văn bản lồng nhau Bản đồ Bản đồ Bản đồ Bản đồ Bản đồ Danh sách Danh sách Danh sách Danh sách

Danh sách

Danh sách

Các khóa học chính

Bắt đầu với DynamoDB

Bắt đầu với DynamoDB thật dễ dàng. Tham khảo trang web Hướng dẫn Bắt đầu DynamoDB để tạo bảng đầu tiên của bạn chỉ trong vài cú nhấp chuột. Bạn cũng có thể tải xuống báo cáo AWS Insights để tìm hiểu các phương pháp hay nhất để di chuyển khối lượng công việc từ hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) sang DynamoDB.

Bắt đầu với Amazon DynamoDB

Các nguồn lực khác

Bắt đầu với Amazon ElastiCache Bắt đầu với Amazon Neptune Bắt đầu với Amazon Elasticsearch

Bạn đã sẵn sàng để xây dựng?

Bắt đầu với AWS

Bạn có câu hỏi?

Liên hệ chúng tôi

Bạn đang xem chuyên mục Hỏi đáp
Thuộc website web giải đáp

Quảng cáo
Hỏi đáp

Leave a Reply

Email của bạn sẽ không được hiển thị công khai.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>