2010-03-28 27 views
23

Gần đây tôi đã đọc rất nhiều về các cơ sở dữ liệu NoSQL khác nhau và cách chúng được triển khai hiệu quả bởi một số trang web lớn ngoài kia. Tôi đang bắt đầu một dự án trong đó tôi nghĩ rằng bản chất không có lược đồ của một cơ sở dữ liệu như MongoDB sẽ rất hữu ích. Tất cả mọi thứ tôi đã đọc mặc dù dường như chỉ ra rằng lợi thế chính của một cơ sở dữ liệu NoSQL là khả năng mở rộng. Chọn cơ sở dữ liệu NoSQL cho thiết kế không có lược đồ như một quyết định thiết kế hợp pháp như là khả năng mở rộng?NoSQL so với SQL khi khả năng mở rộng không liên quan

+0

không phải là câu trả lời cho câu hỏi của bạn, nhưng có thể vẫn còn thú vị khi đọc bài viết và ý kiến ​​cho nó: http://developers.slashdot.org/story/10/03/28/1432234/Why-Some-Devs-Cant-Wait-For-NoSQL-To-Die – Laimoncijus

+1

Nó không có gì mới, Berkeley DB là về cơ bản là một kho khóa-giá trị đã tồn tại mãi mãi. Chọn công cụ của bạn một cách khôn ngoan. –

Trả lời

14

Có, đôi khi RDBMS không phải là giải pháp tốt nhất, mặc dù có các cách để chứa các trường do người dùng xác định (xem XML Datatype, EAV design pattern) các cột chung) đôi khi một cơ sở dữ liệu miễn phí lược đồ là một lựa chọn tốt.

Tuy nhiên, bạn cần để móng tay xuống yêu cầu của bạn trước khi chọn để đi với một cơ sở dữ liệu tài liệu, như bạn sẽ mất rất nhiều sức mạnh bạn có thể được sử dụng để có mô hình quan hệ

ví dụ ...

Nếu bạn muốn có nhiều bảng trong cơ sở dữ liệu RDBMS của mình, bạn sẽ cần phải nghiên cứu các tính năng MongoDB dành cho bạn để chứa các nhu cầu này.

Nếu bạn sẽ cần phải truy vấn dữ liệu theo những cách cụ thể, một lần nữa bạn cần nghiên cứu những gì MongoDB cung cấp cho bạn.

Tôi không nghĩ NoSQL là sự thay thế cho RDBMS, thay vì một công cụ hơi khác, mang lại những ưu điểm và nhược điểm riêng của nó làm cho nó phù hợp hơn đối với một số dự án hơn các dự án khác.

Có thể sử dụng cả hai cơ sở dữ liệu trong một số trường hợp.Nếu bạn quyết định đi xuống tuyến đường có thể sử dụng MongoDB, một khi bạn đã nghiên cứu các trang web đó và có thêm câu hỏi cụ thể, bạn có thể truy cập kênh Freenode IRC#mongodb)

+1

Và đừng quên xem xét báo cáo bạn sẽ cần thực hiện trên cơ sở dữ liệu của mình. Mọi người thường chọn các công cụ để ứng dụng quên rằng sẽ cần phải thực hiện báo cáo quản lý về nhiều thứ. – HLGEM

1

điều gì đã nêu lên vấn đề này nếu bạn có trang trại máy chủ lớn và cần quản lý phân phối dữ liệu và cân bằng tải khó thực hiện hơn bằng RDBMS và yêu cầu kỹ năng CNTT cao để thiết kế, lập kế hoạch và triển khai giải pháp của bạn (và hiệu suất vẫn còn ít hơn). nhưng nếu bạn chỉ có 3 hoặc 4 máy chủ có dự án nhỏ. Tôi không nghĩ rằng bạn có một vấn đề về nó. Cơ sở dữ liệu NoSQL thường được xem xét trong các trang trại máy chủ lớn không nhỏ số lượng máy chủ

3

Có rất nhiều điều kiện khác mà tôi đã nghe về các hệ thống phi quan hệ và quan hệ. Tôi thích thuật ngữ này trên sql/no-sql như cá nhân tôi nghĩ rằng nó mô tả sự khác biệt tốt hơn, và một số các máy chủ "không có sql" có sql add-ons, do đó, anyway .... những gì loại mô hình đồng thời hoặc cô lập tranaction là bắt buộc trong hệ thống của bạn. Một trong những khác biệt có ý nghĩa giữa rel và non-rel dbs là "nhất quán luôn", "nhất quán chủ yếu" hoặc "nhất quán". Quan hệ dbs theo mặc định thường rơi vào danh mục "phù hợp chủ yếu" và với một số công việc, và toàn bộ điều kiện khóa và đua,;) có thể là "nhất quán luôn" để mọi người luôn nhìn vào đại diện chính xác nhất của cho một phần dữ liệu. Hầu hết những gì tôi đã đọc/nghe nói về dbs không liên quan là họ chủ yếu là "nhất quán cuối cùng". Điều này có nghĩa là có thể có nhiều trường hợp dữ liệu của chúng tôi trôi nổi xung quanh, vì vậy người dùng "A" có thể thấy rằng chúng tôi có 92 tiện ích con trong khoảng không quảng cáo, trong khi người dùng "B" có thể thấy 79 và họ có thể không được điều chỉnh cho đến khi có ai đó thực sự để lấy đồ từ kho. Một vấn đề khác là khả năng thay đổi dữ liệu, tần suất dữ liệu cần phải được cập nhật? Các db không phải rel-cụ thể của tôi đã được tiếp xúc để có nhiều chi phí cho các bản cập nhật, một số người trong số họ phải tái tạo toàn bộ tập dữ liệu để kết hợp bất kỳ bản cập nhật nào.

Bây giờ, tôi nghĩ rằng non-rel/nosql là các công cụ tuyệt vời nếu chúng thực sự phù hợp với trường hợp sử dụng của bạn. Tôi đã có một số tôi đang xem xét cho các dự án tôi đã có.Nhưng bạn phải xem xét tất cả các giao dịch khi đưa ra quyết định, nếu không nó sẽ trở thành sự phát triển theo hướng tiếp tục.

2

Tôi không nghĩ bạn nên chọn kho dữ liệu NoSQL cho thiết kế miễn phí lược đồ của nó. Thiết kế miễn phí lược đồ luôn tồn tại trong RDBMS thông qua XML và một số cơ sở dữ liệu có hỗ trợ XML tốt. Việc xử lý một cơ sở dữ liệu dễ dàng hơn rất nhiều so với kho dữ liệu NoSQL. Khả năng mở rộng và dữ liệu lớn nên là các trình điều khiển chính để chọn kho dữ liệu NoSQL nếu không sự cân bằng giữa ACID và SQL là rất nhiều để chuyển sang NoSQL.

1

những điều quan trọng nhất cần lưu ý để phân biệt giữa No-SQL và SQL đó là: NO-SQL hữu ích khi quy mô cơ sở dữ liệu một cách lớn như mạng xã hội ví dụ: Stack Overflow: mỗi câu hỏi có nhiều câu trả lời và không tưởng tượng một câu trả lời không có câu hỏi, vì vậy No-SQL sẽ đảm bảo rằng mỗi câu hỏi bao gồm câu trả lời là là kết quả khi cần nhận câu trả lời cho một câu hỏi mà chúng tôi có thể mang lại tất cả các câu trả lời mà không tham gia. cơ sở dữ liệu cảm ơn rất nhiều

+0

Cuối cùng một người nào đó đã đưa ra một ví dụ tốt cho một lược đồ miễn phí. – DBQ

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