Schema-ít là một chút của một cái tên nhầm lẫn, nó tốt hơn để nghĩ về nó như:
- SQL = Schema thực thi bởi một RDBMS trên Write
- NoSQL = phần Schema thực thi bởi các DBMS trên lược đồ Viết, PLUS được thi hành đầy đủ bởi Ứng dụng trên Đọc (Lược đồ được Bên ngoài thực hiện)
Vì vậy, trong khi một kho dữ liệu NoSQL giả định không cho phép lưu trữ bất kỳ dữ liệu nào bạn thích (typica lly cặp giá trị chính, trong một tài liệu) mà không có kiến thức trước về các khóa, hoặc các kiểu dữ liệu, nó sẽ là vô nghĩa trừ khi bạn có một số cơ chế để lấy ra và sử dụng dữ liệu. Vì vậy, về cơ bản lược đồ được di chuyển một phần từ RDBMS vào mã ứng dụng. Tôi nói một phần vì bạn đã thêm các chỉ mục để ghi lại các bộ sưu tập và phân chia dữ liệu để thực hiện, do đó, NoSQL DBMS sẽ có một lược đồ được xác định cục bộ và có thể được thực thi thông qua các ràng buộc duy nhất.
Để thêm thuộc tính bổ sung vào tài liệu/đối tượng trong cửa hàng. Tùy thuộc vào khoảng đệm bao quanh tài liệu (không gian chưa sử dụng), trong khối dữ liệu vật lý, việc thêm một vài cặp khóa giá trị vào tài liệu có thể dẫn đến tài liệu phải được chuyển đến một khối lưu trữ liền kề lớn hơn, và các chỉ mục liên quan được xây dựng lại. Nếu bạn dự định sử dụng các khóa mới trong truy vấn thường được sử dụng thì bạn sẽ muốn thêm một chỉ mục mới phù hợp, điều này rõ ràng sẽ yêu cầu một số lưu trữ vật lý, mất một thời gian để xây dựng ban đầu và có thể dẫn bạn đến hỏi sysadmin cấp thêm bộ nhớ cho DBMS, để cho phép (các) chỉ mục mới được lưu trữ.
Điểm tốt về phân bổ không gian. Nhưng cụ thể cho điểm 2 & 3, làm cách nào để quản lý dữ liệu w.r.t để di chuyển dữ liệu? Là một sản phẩm NoSQl đủ thông minh để phát hiện những thay đổi đang gia tăng và không phá vỡ v/s phá vỡ? –
Phụ thuộc vào sản phẩm, nhưng nói chung nếu bạn muốn thêm thuộc tính/khóa bổ sung vào tài liệu, tất cả những gì bạn cần làm là thay đổi mã ứng dụng để lưu trữ/sử dụng cặp giá trị khóa mới. DBMS không quan tâm đến những gì được lưu trữ trong một tài liệu nếu nó không được lập chỉ mục, và giả sử có đủ không gian được phân bổ cho mỗi tài liệu, sao cho DBMS không phải cấu trúc lại nó. – arober11
Vì vậy, chúng tôi cần tính đến khả năng tăng kích thước tài liệu trước khi quay tay? –