Tổ chức mô hình dữ liệu mongodb
Dữ liệu trong MongoDB có một Schema linh động. Các Document trong cùng Collection không cần thiết phải có cùng tập hợp các trường hoặc cấu trúc, và các trường chung trong các Document của Collection có thể giữ các kiểu dữ liệu khác nhau. Show 1. Thiết kế mỗ hình dữ liệu :MongoDb cung cấp 2 kiểu dữ liệu mô hình : Mô hình dữ liệu nhúng và mô hình dữ liệu chuẩn hoá. Tuỳ vào trường hợp, bạn có thể sử dụng model phù hợp trong quá trình chuẩn bị document a. Mô hình dữ liệu nhúng : Trong mô hình này, bạn có thể có (nhúng) tất cả dữ liệu liên quan vào một tài liệu duy nhất, nó còn được gọi là mô hình dữ liệu đã được chuẩn hóa. Ở ví dụ dưới đây, giả sử chúng ta lấy chi tiết nhân viên trong 3 documents khác nhau,cụ thể là : Personal_details, Contact và, Address. Bạn có thể nhúng hoàn toàn 3 documents như sau :
b. Mô hình dữ liệu chuẩn hóa Ở mô hình này, bạn có thể tham khảo các tài liệu phụ trong tài liệu gốc, sử dụng tài liệu tham khảo. Ví dụ: bạn có thể viết lại tài liệu trên trong mô hình chuẩn hóa dưới dạng: Employee:
Personal_details:
Contact:
Address:
2. Một số chú ý trong khi thiết kế Schema trong MongoDBThiết kế Schema của bạn theo yêu cầu của người dùng. Tổ hợp các đối tượng vào trong một Document nếu bạn sẽ sử dụng các đối tượng đó cùng nhau. Nếu không, bạn nên phân biệt chúng (nhưng đảm bảo là không cần thiết sử dụng các Join). Sao dữ liệu (nhưng có giới hạn) bởi vì không gian trên đĩa không là gì khi so sánh với thời gian tính toán. Thực hiện Join trong khi ghi, đừng thực hiện trong khi đọc. Tối ưu hóa Schema của bạn với các trường hợp thường xuyên sử dụng. Thực hiện Aggregation phức tạp trong Schema đó. Ví dụGiả sử, một khách hàng cần một thiết kế cơ sở dữ liệu cho trang blog của anh ta, và dưới đây, bạn xem các điểm khác nhau giữa thiết kế Schema của RDBMS và MongoDB. Website này có các yêu cầu sau: Mỗi post có tiêu đề, miêu tả và Url duy nhất. Mỗi post có thể có một hoặc nhiều tags. Mỗi post có tên người đăng và tổng số like. Mỗi post có các comment được cung cấp bởi người dùng cùng với tên, thông điệp, thời gian, và like của họ. Trên mỗi post, có thể có 0 hoặc nhiều comment. Trong thiết kế Schema của RDBMS cho các yêu cầu trên sẽ có tối thiểu ba bảng dữ liệu: Trong khi trong thiết kế Schema của MongoDB sẽ chỉ có một Collection Post có cấu trúc như sau:
Vì thế trong khi hiển thị dữ liệu, trong RDBMS bạn cần kết hợp ba bảng và trong MongoDB sẽ chỉ cần hiển thị từ một Collection. Đã đăng vào thg 8 20, 2019 1:40 SA 9 phút đọc Để hiểu rõ hơn về hệ quản trị dữ liệu phi quan hệ (NoSQL) cũng như đi sâu vào tìm hiểu một dạng lưu trữ dữ liệu của NoSQL thì bài viết này của mình sẽ giới thiệu cụ thể về một hệ quản trị cơ sở dữ liệu có tên là MongoDB (có lẽ với nhiều bạn đã quá quen thuộc ).Giới thiệuMongoDB được sử dụng rất nhiều tại thời điểm hiện tại. MongoDB là một hệ quản trị cơ sở dữ liệu dạng Document được sử dụng để lưu trữ các dữ liệu lớn. MongoDB được đưa ra vào giữa những năm 2000. Đây là một trong những hệ quản trị cơ sở dữ liệu phi quan hệ. Đặc điểmTrước tiên để hiểu rõ hơn về MongoDB chúng ta sẽ tìm hiểu xem MongoDB có những đặc điểm nào.
Khả năng mở rộng - MongoDB có tính mở rộng cao. Trên thực tế các công ty trên toàn thế giới đã xác định được các cụm với số node được chạy trên 100 nodes với khoảng hàng triệu document trong cơ sở dữ liệu. Ví dụ về MongoDBĐể có cái nhìn trực quan hơn với MongoDB chúng ta sẽ đi vào ví dụ sau. Dưới đây là ví dụ về một Document trong MongoDB:
Thành phần chính trong kiến trúc của MongoDBDưới đây là một vài thuật ngữ phổ biến được sử dụng trong MongoDB:
Tại sao lại sử dụng MongoDB?Dưới đây sẽ là một vài lý do để bạn biết được tại sao MongoDB lại được sử dụng:
Mô hình hóa dữ liệu trong MongoDBNhư giới thiệu thì chúng ta đã biết MongoDB có mô hình dữ liệu linh hoạt, khác với mô hình dữ liệu của các cơ sở dữ liệu quan hệ phải khai báo lược đồ quan hệ trước khi insert dữ liệu. Khi xây dựng mô hình dữ liệu trong Mongo bạn cần chú ý những điều sau:
Ngoài các nội dung trên nếu bạn còn muốn biết xem sự khác nhau giữa MongoDB và RDBMS thì có thể tham khảo bài viết trước của mình tại đây. Trên đây là một số tìm hiểu ban đầu của mình trong quá trình học MongoDB, hi vọng có thể giúp ích cho các bạn, mình rất mong có thể nhận được các trao đổi, góp ý tại bài viết này (bow). Nguồn tham khảo: What is MongoDB? Replica set All rights reserved |