Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

NoSQL:Cuộc sống không có lược đồ

NoSql không phải là sự thay thế cho cơ sở dữ liệu SQL nhưng là một sự thay thế hợp lệ cho nhiều trường hợp trong đó SQL tiêu chuẩn không phải là cách tiếp cận tốt nhất để lưu trữ dữ liệu của bạn.

Vì chúng tôi đã được dạy rằng bất cứ khi nào bạn cần lưu trữ dữ liệu trong “kho dữ liệu” và truy vấn dữ liệu đó để trích xuất, SQL là giải pháp tốt nhất, bạn chỉ phải quyết định sử dụng SQL Engine nào và trò chơi kết thúc.

Vào năm 2012, gợi ý này là sai, ý tôi là bạn không còn có thể cho rằng SQL là “cách duy nhất” để lưu trữ dữ liệu, nhưng bạn nên biết rằng có những lựa chọn thay thế khác và chúng được gọi là KHÔNG SQL. Theo thuật ngữ này, chúng tôi có các cơ chế lưu trữ khác nhau không dựa trên SQL và trong .NET, chúng tôi có một sản phẩm đặc biệt gọi là RavenDB (bạn có thể tìm thấy phần giới thiệu thực sự tốt về RavenDb trong blog Mauro).

Sự khác biệt lớn đầu tiên với SQL chuẩn là không có lược đồ

Một trong những hạn chế khó chịu nhất của SQL Server là cần phải chỉ định định dạng chính xác của dữ liệu bạn muốn lưu trữ trong bộ nhớ của mình. Điều này là cần thiết vì nhiều lý do chính đáng, nhưng có những tình huống mà bạn thực sự không quan tâm đến nó, đặc biệt nếu phần mềm của bạn phần lớn dựa trên khái niệm OOP. Giả sử bạn có đối tượng này

1: class player

2: {

3: public String Name { get; set; }

4:

5: public DateTime RegistrationDate { get; set; }

6:

7: public Int32 Age { get; set; }

8: }

Trong lúc này, không có gì lo ngại rằng đối tượng này được đóng gói kém (đối tượng này có phương pháp lấy và cài đặt công khai), nhưng chỉ tập trung vào nhu cầu “lưu trữ” đối tượng này ở đâu đó. Nếu bạn sử dụng kho lưu trữ SQL tiêu chuẩn, điều đầu tiên bạn cần làm là tạo một bảng, sau đó xác định các cột, xác định độ dài tối đa cho cột Tên và cuối cùng chọn ORM để sử dụng hoặc tạo một lớp dữ liệu chuyên dụng, và cuối cùng, bạn có thể lưu đối tượng.

Nếu bạn đang làm việc với một con quạ, đây là mã duy nhất bạn cần

1: var store = new DocumentStore { Url = "http://localhost:8080" };

2: store.Initialize();

3: using (var session = store.OpenSession())

4: {

5: var player = new Player

6: {

7: Age = 30,

8: RegistrationDate = DateTime.Now,

9: Name = "Alkampfer",

10: };

11: session.Store(player);

12: session.SaveChanges();

13: }

Máy chủ chỉ cần lấy đối tượng và lưu nó.

Để lưu một đối tượng vào kho dữ liệu, chỉ cần hai chức năng:“Lưu” để cho kho lưu trữ biết đối tượng bạn muốn lưu và “SaveChanges”, thực sự thực hiện việc lưu.

Bạn nhận được gì với đoạn mã đơn giản này? Chỉ cần truy cập trình duyệt tiêu chuẩn tại địa chỉ máy chủ và bạn sẽ thấy nội dung của cơ sở dữ liệu.

Nội dung cơ sở dữ liệu sau khi chèn đối tượng đơn giản

Trong Hình, bạn có thể thấy nội dung của cơ sở dữ liệu Crow, nó chứa một trình phát và một số 1 nhỏ bên cạnh đối tượng là Id, mà Raven sử dụng bên trong để xác định duy nhất đối tượng này. Một đối tượng khác, được gọi là Sys Doc Hilo / Players, đảm nhận việc tạo số nhận dạng cho đối tượng Người chơi bằng thuật toán Hilo.

Đây là tất cả, không cần xác định lược đồ, không cần phải có thuộc tính Id đặc biệt hoặc bất kỳ yêu cầu nào khác để làm cho đối tượng tương thích với kho lưu trữ, chỉ cần gọi phương thức Store cho bất kỳ đối tượng .NET nào và đối tượng của bạn nằm trong cơ sở dữ liệu, Kỳ!

Steven Lott | NoSQL không có nghĩa là Không có giản đồ


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sai lầm sơ đồ ER thường gặp

  2. Các kế hoạch khác nhau cho các máy chủ giống hệt nhau

  3. Vì bạn cần biết PowerShell

  4. Trình điều khiển ODBC của bạn có hỗ trợ nguồn dữ liệu người dùng không?

  5. Triển khai ứng dụng Django cho AWS Elastic Beanstalk