2011-10-28 12 views
5

Các cơn sốt mới nhất trong cơ sở dữ liệu dường như tập trung vào các cơ sở dữ liệu phi quan hệ. Tại sao? Nó có vẻ phản tác dụng. Ví dụ, nó có ý nghĩa nhiều hơn nữa để tôi thể hiện dữ liệu của tôi một cách quan hệ (mã ví dụ trong Django + SQL cho các bảng):Tại sao tôi muốn sử dụng cơ sở dữ liệu phi quan hệ?

SQL:

create table post (id int primary key auto_increment, 
     name varchar, 
     created datetime); 

create table comment(id int primary key auto_increment, 
     text text, 
     post_id int, 
     created datetime, 
     foreign key post_id references post(id)); 

Sức mạnh của SQL là thông tin này có thể được thể hiện bằng để nhiều cách. Chắc chắn, toàn bộ vấn đề ánh xạ đối tượng-quan hệ tồn tại, nhưng tôi xem nó như một tính năng và không phải là một vấn đề. Với SQL, tôi có thể tìm nạp tất cả các nhận xét riêng biệt của một bài đăng nhất định cũ hơn ngày hôm qua, đối chiếu tất cả các bài đăng đó với nhau và tạo thống kê. Có thể thực hiện tương tự cho các cơ sở dữ liệu phi quan hệ không? Nó cũng dường như thực sự tác động đến hiệu suất để sử dụng một cơ sở dữ liệu không quan hệ như MongoDB vì bạn sẽ ngay lập tức lấy toàn bộ đồ thị đối tượng, chứ không phải là những gì bạn cần tối thiểu.

Ai đó có thể giải thích cho tôi về lợi ích của việc sử dụng cơ sở dữ liệu phi quan hệ không?

+0

http://stackoverflow.com/questions/441441/why-should-i-use-document-based-database-instead-of-relational-database – hplbsh

Trả lời

5

Hãy nhìn vào các CAP Theorem

PACELC interpretation

cơ sở dữ liệu quan hệ có xu hướng làm cho một bộ thỏa hiệp, và không quan hệ có xu hướng làm cho một bộ khác nhau của thương mại-offs. Đối với các tập dữ liệu phân tán lớn, đôi khi không quan hệ đôi khi có ý nghĩa hơn.

Cũng có một cảm giác trong đó cơ sở dữ liệu phi quan hệ có thể loại bỏ rất nhiều đau ORM, nhưng một lần nữa luôn có sự cân bằng. Trong một số trường hợp sử dụng, lưu trữ không quan hệ có thể nhanh hơn, bởi vì tất cả dữ liệu cho một hệ thống phân cấp cụ thể có thể được lưu trữ gần nhau hơn trên đĩa. Cũng lưu ý rằng các cơ sở dữ liệu không quan hệ vẫn có khả năng truy vấn.

Cuối cùng, đó là về việc đưa ra các bộ cân bằng thích hợp cho trường hợp sử dụng cụ thể của bạn.