Ba loại cơ sở dữ liệu NoSQL mà tôi đã đọc là khóa-giá trị, định hướng cột và định hướng tài liệu.NoSQL theo định hướng cột khác với hướng tài liệu như thế nào?
Khóa-giá trị khá thẳng về phía trước - khóa có giá trị đơn giản.
Tôi đã nhìn thấy cơ sở dữ liệu định hướng tài liệu được mô tả giống như khóa-giá trị, nhưng giá trị có thể là cấu trúc, như đối tượng JSON. Mỗi "tài liệu" có thể có tất cả, một số hoặc không có khóa nào giống với khóa khác.
Định hướng cột dường như rất giống với tài liệu được định hướng mà bạn không chỉ định cấu trúc.
Vậy sự khác nhau giữa hai yếu tố này là gì và tại sao bạn nên sử dụng cái kia?
Tôi đã xem xét MongoDB và Cassandra một cách cụ thể. Về cơ bản tôi cần một cấu trúc động có thể thay đổi, nhưng không ảnh hưởng đến các giá trị khác. Đồng thời, tôi cần có khả năng tìm kiếm/lọc các khóa cụ thể và chạy báo cáo. Với CAP, AP là quan trọng nhất đối với tôi. Dữ liệu có thể "cuối cùng" được đồng bộ hóa qua các nút, miễn là không có xung đột hoặc mất dữ liệu. Mỗi người dùng sẽ có "bảng" riêng của họ.
Vì vậy, có định hướng cột như bảng cơ sở dữ liệu quan hệ, nhưng lật qua và không có yêu cầu lược đồ? Nếu tôi so sánh các thuật ngữ Cassandra với các thuật ngữ MySQL, tôi sẽ làm như thế nào? Là một bảng giống như một cột gia đình hoặc một keyspace? Với định hướng tài liệu, bạn có nói rằng bạn không thể cập nhật các khóa riêng lẻ trong tài liệu không? Có vẻ như Casandra có thể có cấu trúc phụ. MongoDB và những người khác thích nó có chức năng này không? – Luke
Một họ cột giống như một cái bàn. Một hàng giống như một hàng của bảng. Các cột giống như cột cơ sở dữ liệu, ngoại trừ việc chúng có thể được xác định khi đang di chuyển, vì vậy bạn có thể có một bảng rất thưa thớt trong một số trường hợp hoặc bạn có thể có các cột khác nhau được điền trong mỗi hàng. – DNA
Nó phụ thuộc vào cơ sở dữ liệu. Trong MongoDB (hướng tài liệu) bạn cũng có thể cập nhật mọi khóa đơn. –