7

Tôi đang phát triển một ứng dụng dựa trên web bằng Rails. Tôi đang tranh luận giữa việc sử dụng một cơ sở dữ liệu đồ thị, chẳng hạn như InfoGrid, hoặc một cơ sở dữ liệu tài liệu, chẳng hạn như MongoDB.Khi phát triển các ứng dụng web khi nào bạn sẽ sử dụng một cơ sở dữ liệu Đồ thị so với một cơ sở dữ liệu Tài liệu?

Ứng dụng của tôi sẽ cần lưu trữ cả hai tập hợp dữ liệu nhỏ, chẳng hạn như URL và bộ dữ liệu rất lớn, chẳng hạn như Máy ảo. Dữ liệu này sẽ được liên kết với một người dùng.

Tôi quan tâm đến việc tìm hiểu về trải nghiệm của mọi người với cơ sở dữ liệu Đồ thị hoặc Tài liệu và tại sao họ sẽ sử dụng một trong các tùy chọn.

Cảm ơn bạn

Trả lời

3

Tôi không cảm thấy đủ kinh nghiệm với cả hai thế giới đúng và đầy đủ trả lời câu hỏi của bạn, tuy nhiên tôi đang sử dụng một cơ sở dữ liệu tài liệu trong một thời gian và đây là một số gợi ý cá nhân.

Cơ sở dữ liệu tài liệu dựa trên khái niệm khóa, giá trị và chế độ xem tĩnh và khá thú vị khi tìm một tập hợp tài liệu có giá trị cụ thể.

Họ không khái niệm hóa mối quan hệ giữa các tài liệu. Vì vậy, nếu phần mềm của bạn phải cung cấp "truy vấn" nâng cao trong đó tiêu chí lựa chọn hành động trên một số loại tài liệu hoặc nếu bạn chỉ cần thực hiện lựa chọn bằng nhiều yếu tố thì khái niệm [key, value] là không thích hợp. Ngoài ra còn có một số trường hợp khác mà cơ sở dữ liệu tài liệu không phù hợp: trình bày các bộ dữ liệu lớn trong bảng "phân trang", có thể sắp xếp trên nhiều cột là một trong những trường hợp biểu diễn thấp và sử dụng dung lượng đĩa là lớn. Quay lại đầu trang Vì vậy, trong nhiều trường hợp, bạn sẽ phải thực hiện xử lý "phía máy chủ" để nhận các phần và với các đường ray hoặc bất kỳ khung công tác dựa trên ruby ​​nào khác, bạn có thể gặp phải các vấn đề về hiệu suất.

Cơ sở dữ liệu biểu đồ dựa trên khái niệm về hình tam giác, có nghĩa là chúng cũng khái niệm hóa quan hệ giữa các thực thể.

Biểu đồ có thể được duyệt qua sử dụng quan hệ (và vai trò thực thể) và có thể thuận tiện hơn khi thực hiện tìm kiếm trên dữ liệu có cấu trúc quan hệ. Khi tôi không có kinh nghiệm với cơ sở dữ liệu đồ thị, tôi không biết liệu cơ sở dữ liệu đồ thị có thể dễ dàng truy vấn/vượt qua một số tiêu chí hay không, tuy nhiên, nếu người đọc được khuyên nên có một thông tin như vậy, tôi thực sự đánh giá cao bất kỳ ví dụ nào như vậy truy vấn/traversals.

Tôi hiện đang đọc về InfoGrid và cố gắng tìm nếu cơ sở dữ liệu như vậy có thể do tiện dụng để thực hiện các yêu cầu phức tạp trên một tập hợp rất lớn dữ liệu, quan hệ bao gồm ....

Từ những gì tôi có thể đọc , InfoGrah nên được coi là "người liên kết dữ liệu" có thể tìm kiếm/khai thác dữ liệu từ nhiều nguồn (Cửa hàng) mà cũng có thể là một cơ sở dữ liệu NoSQL như Mongo.

Mà có nghĩa là bạn có thể sử dụng một cửa hàng Mongo các bản cập nhật và InfoGraph cho dữ liệu tìm kiếm, và có lẽ tha cho rất nhiều CPU và đĩa khi nói đến tìm kiếm phức tạp bên trong một cơ sở dữ liệu NoSQL.Tất nhiên nó có vẻ hơi "quá mức" nếu ứng dụng của bạn chỉ lưu trữ một tập lớn các tệp nhị phân khổng lồ trong cơ sở dữ liệu và tất cả những gì bạn cần là thực hiện các truy vấn khóa đơn giản và truy xuất kết quả. Trong đó cas một cơ sở dữ liệu nosql như mongo hoặc đi văng có lẽ sẽ có ích.

Hy vọng một số điều này sẽ giúp;)

3

Khi kết nối tài liệu liên quan theo các cạnh, bạn sẽ nhận được biểu đồ nông hoặc sâu? Tôi nghĩ câu trả lời cho câu hỏi đó rất quan trọng khi quyết định giữa graphdbs và documentdbs. Xem Square Pegs and Round Holes in the NOSQL World bởi Jim Webber để biết suy nghĩ dọc theo các dòng này.

+0

Bài viết rất hay, cảm ơn !!! – devlearn

Các vấn đề liên quan