intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận văn tốt nghiệp Công nghệ thông tin: So sánh MongoDB và MySQL ứng dụng vào xây dựng website bán sách trực tuyến

Chia sẻ: Tiêu Sở Hà | Ngày: | Loại File: PDF | Số trang:78

25
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Luận văn tốt nghiệp Công nghệ thông tin "So sánh MongoDB và MySQL ứng dụng vào xây dựng website bán sách trực tuyến" nhằm xoáy sâu vào phân tích cách xây dựng hệ thống dữ liệu của hai hệ quản trị cơ sở dữ liệu MongoDB và MySQL, từ đó tìm ra những ưu thế và những cách lưu trữ tiến bộ hơn. Website bán sách sẽ là nền tảng để làm cán cân so sánh giữa hai hệ quản trị cơ sở dữ liệu với các chức năng đăng nhập, tìm kiếm sách, quản lý giỏ hàng,... Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Luận văn tốt nghiệp Công nghệ thông tin: So sánh MongoDB và MySQL ứng dụng vào xây dựng website bán sách trực tuyến

  1. TRÖÔØNG ÑAÏI HOÏC VOÕ TRÖÔØNG TOAÛN KHOA CÔNG NGHỆ THÔNG TIN  LUẬN VĂN TỐT NGHIỆP SO SÁNH MONGODB VÀ MYSQL ỨNG DỤNG VÀO XÂY DỰNG WEBSITE BÁN SÁCH TRỰC TUYẾN Giáo viên hướng dẫn: Sinh viên thực hiện: Thạc sĩ Bùi Thị Hồng Phúc Lê Hoàng Khánh MSSV: 0951190693 Lớp: ĐH-CNTT Khóa: 2 Hậu Giang – Năm 2013
  2. LỜI CAM ĐOAN  Tôi xin cam đoan đây là công trình nghiên cứu và thực hiện đồ án tốt nghiệp của riêng tôi, không sao chép từ các đồ án khác, nếu sai tôi xin chịu hoàn toàn trách nhiệm của khoa và nhà trường đề ra. Sinh viên thực hiện Lê Hoàng Khánh i
  3. LỜI CẢM TẠ  Để hoàn thành được luận văn này, tôi đã nhận được sự giúp đỡ rất nhiều từ gia đình, bạn bè và các thầy cô giáo. Tôi xin gởi lời cảm ơn chân thành đến tất cả mọi người. Xin cảm ơn giáo viên hướng dẫn Bùi Thị Hồng Phúc-Giảng viên khoa CNTT trường ĐH Võ Trường Toản đã nhiệt tình hướng dẫn, động viên và định hướng cho tôi thực hiện toàn bộ luận văn. Xin gởi lời cám ơn đến tất cả các thầy cô giáo đã truyền dạy cho tôi những kiến thức quý báo trong suốt những năm học vừa qua. Cảm ơn những người thân, bạn bè đã ủng hộ, tạo điều kiện cho tôi có đủ thời gian và nghị lực đề hoàn thành luận văn đúng thời hạn. Sinh viên thực hiện Lê Hoàng Khánh ii
  4. BẢN NHẬN XÉT LUẬN VĂN TỐT NGHIỆP  __________________________________________  Họ và tên người hướng dẫn: Bùi Thị Hồng Phúc  Học vị: Thạc sĩ  Chuyên ngành: Hệ Thống Thông tin  Cơ quan công tác: Trường Đại Học Võ Trường Toản  Họ và tên : Lê Hoàng Khánh  Mã số sinh viên : 0951190693  Chuyên ngành : Công Nghệ Thông Tin  Tên đề tài : So Sánh MongoDB và MySQL Ứng Dụng Vào Xây Dựng Website Bán Sách Trực Tuyến NỘI DUNG NHẬN XÉT 1. Tính phù hợp của đề tài với chuyên ngành đào tạo: ............................................................................................................................. ............................................................................................................................. 2. Về hình thức: ............................................................................................................................. ............................................................................................................................. 3. Ý nghĩa khoa học, thực tiễn và tính cấp thiết của đề tài: ............................................................................................................................. ............................................................................................................................. 4. Độ tin cậy của số liệu và tính hiện đại của luận văn: ............................................................................................................................. ............................................................................................................................. 5. Nội dung và các kết quả đạt được: ............................................................................................................................. ............................................................................................................................. 6. Các nhận xét khác: ............................................................................................................................. ............................................................................................................................. 7. Kết luận: ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ………., ngày…… tháng …… năm… Người nhận xét (Ký và ghi rõ họ tên) iii
  5. NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN  ____________________________________________ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ Hậu Giang, ngày …. tháng …. năm … Giáo viên phản biện (Ký và ghi rõ họ tên) iv
  6. MỤC LỤC Trang CHƯƠNG 1. TỔNG QUAN ................................................................................................ 1 1.1. ĐẶT VẤN ĐỀ ......................................................................................................... 1 1.2. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ......................................................................... 2 1.3 PHẠM VI ĐỀ TÀI.................................................................................................. 3 1.4 PHƯƠNG PHÁP NGHIÊN CỨU .......................................................................... 3 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT..................................................................................... 4 2.1 GIỚI THIỆU VỀ NOSQL...................................................................................... 4 2.1.1 Giới thiệu...................................................................................................... 4 2.1.2 Đặc điểm....................................................................................................... 5 2.2 GIỚI THIỆU VỀ MONGODB............................................................................... 6 2.2.1 Giới thiệu...................................................................................................... 6 2.2.2 Các khái niệm............................................................................................... 7 2.2.3 Các đặc trưng............................................................................................... 9 2.2.4 Xây dựng hệ thống với MongoDB ............................................................... 9 2.3 TỔNG QUAN VỀ PHP ........................................................................................ 13 2.3.1 Giới thiệu.................................................................................................... 13 2.3.2 Các tính năng ............................................................................................. 13 2.4 PHP VÀ MONGODB ........................................................................................... 14 2.5 MYSQL................................................................................................................. 14 2.5.1 Giới thiệu.................................................................................................... 14 2.5.2 Tính năng ................................................................................................... 14 2.6 SƠ LƯỢC VỀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG 17 2.6.1 Sơ đồ hoạt vụ.............................................................................................. 17 2.6.2 Sơ đồ lớp..................................................................................................... 20 2.6.3 Sơ đồ tương tác .......................................................................................... 23 2.6.4 Chuyển sơ đồ lớp sang các bảng trong cơ sở dữ liệu ................................ 27 CHƯƠNG 3. NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU ............................................... 29 3.1. QUÁ TRÌNH TÌM HIỂU VÀ KHÁI QUÁT HỆ THỐNG.................................. 31 3.1.1. Tìm hiểu hoạt động trang web bán sách trực tuyến ................................. 31 3.1.2. Khái quát hệ thống .................................................................................... 32 3.2 MÔ HÌNH HÓA ................................................................................................... 34 3.2.1 Mô hình trên MySQL ................................................................................ 34 3.2.2 Mô hình trên MongoDB............................................................................. 50 3.3 CHƯƠNG TRÌNH................................................................................................ 59 3.3.1 Sơ đồ tổng quan. ........................................................................................ 59 3.3.2 Giao diện và một số chức năng của trang web.......................................... 60 3.4 KẾT QUẢ ĐẠT ĐƯỢC........................................................................................ 64 KẾT LUẬN, ĐỀ NGHỊ VÀ HƯỚNG PHÁT TRIỂN..................................................... 65 1. KẾT LUẬN........................................................................................................... 65 2. HẠN CHẾ ............................................................................................................. 66 3. HƯỚNG PHÁT TRIỂN ....................................................................................... 66 v
  7. DANH MỤC HÌNH Trang Hình 1. Biểu đồ so sánh hiệu suất hoạt động của MongoDB và SQL ................................. 2 Hình 2. Mô hình lưu trữ trên MongoDB ............................................................................. 6 Hình 3. Mô hình lưu trữ trên MySQL ................................................................................. 7 Hình 4. Các kí hiệu trong sơ đồ hoạt vụ. ........................................................................... 17 Hình 5. Quan hệ bao hàm................................................................................................... 18 Hình 6. Quan hệ mở rộng................................................................................................... 18 Hình 7. Quan hệ tổng quát hóa. ......................................................................................... 19 Hình 8. Quan hệ giữa các tác nhân. ................................................................................... 19 Hình 9. Kí hiệu lớp. ............................................................................................................ 20 Hình 10. Kí hiệu quan hệ liên kết giữa các lớp.................................................................. 22 Hình 11. Kí hiệu tính bội. ................................................................................................... 22 Hình 12. Ví dụ liên kết có ràng buộc.................................................................................. 23 Hình 13. Kí hiệu các dạng thông báo. ................................................................................ 25 Hình 14. Sơ đồ Use case tác nhân Khách hàng.................................................................. 34 Hình 15. Sơ đồ Use case tác nhân Quản trị viên................................................................ 35 Hình 16. Sơ đồ lớp Sách và quá trình đặt mua sách ......................................................... 39 Hình 17. Sơ đồ Quản lý khách hàng và Hóa đơn thanh toán............................................ 40 Hình 18. Sơ đồ lớp MongoDB ............................................................................................ 50 Hình 19. Lưu đồ giải thuật Đăng nhập .............................................................................. 54 Hình 20. Lưu đồ giải thuật Đăng ký thành viên. ............................................................... 55 Hình 21. Sơ đồ tuần tự đăng nhập. .................................................................................... 56 Hình 22. Sơ đồ tuần tự xóa giỏ hàng.................................................................................. 57 Hình 23. Sơ đồ tuần tự tìm kiếm theo tên sách.................................................................. 58 Hình 24. Sơ đồ tổng quan trang web.................................................................................. 59 Hình 25. Hướng trình bày trang web................................................................................. 60 Hình 26. Tổng thể trang web.............................................................................................. 61 Hình 27. Trang thông tin sách............................................................................................ 62 Hình 28. Trang đăng ký tài khoản. .................................................................................... 63 Hình 29. Trang quản lý giỏ hàng. ...................................................................................... 63 vi
  8. DANH MỤC BẢNG Trang Bảng 1. CÁC KHÁI NIỆM TRONG MONGODB VÀ MYSQL ...................... 7 Bảng 2. VÍ DỤ 1 ...................................................................................................... 10 Bảng 3. VÍ DỤ 2.1 ................................................................................................... 10 Bảng 4. VÍ DỤ 2.2 ................................................................................................... 10 Bảng 5. VÍ DỤ 3 ...................................................................................................... 11 Bảng 6. VÍ DỤ 4 ...................................................................................................... 12 Bảng 7. ĐÁNH GIÁ MONGODB VÀ MYSQL ................................................. 29 Bảng 8. KẾT QUẢ ĐO ĐƯỢC TRÊN MONGODB VÀ MYSQL.................. 30 Bảng 9. MÔ HÌNH VẬT LÝ KHÁCH HÀNG TRÊN MYSQL ....................42 Bảng 10. MÔ HÌNH VẬT LÝ NGƯỜI DÙNG TRÊN MYSQL....................43 Bảng 11. MÔ HÌNH VẬT LÝ HÓA ĐƠN TRÊN MYSQL ...........................44 Bảng 12. MÔ HÌNH VẬT LÝ GIỎ HÀNG TRÊN MYSQL .........................45 Bảng 13. MÔ HÌNH VẬT LÝ SÁCH TRÊN MYSQL...................................46 Bảng 14. MÔ HÌNH VẬT LÝ NHÀ XUẤT BẢN TRÊN MYSQL................47 Bảng 15. MÔ HÌNH VẬT LÝ DỊCH GIẢ TRÊN MYSQL ...........................47 Bảng 16. MÔ HÌNH VẬT LÝ DẠNG SÁCH TRÊN MYSQL ......................48 Bảng 17. MÔ HÌNH VẬT LÝ TÁC GIẢ TRÊN MYSQL ............................. 48 Bảng 18. MÔ HÌNH VẬT LÝ THỂ LOẠI TRÊN MYSQL ..........................48 Bảng 19. MÔ HÌNH VẬT LÝ ĐƠN HÀNG TRÊN MYSQL ........................49 Bảng 20. MÔ HÌNH VẬT LÝ SÁCH TRÊN MONGODB .............................. 51 Bảng 21. MÔ HÌNH VẬT LÝ ĐƠN HÀNG TRÊN MONGODB ................... 52 Bảng 22. MÔ HÌNH VẬT LÝ GIỎ HÀNG TRÊN MONGODB .................... 52 Bảng 23. MÔ HÌNH VẬT LÝ HÓA ĐƠN TRÊN MONGODB ...................... 53 Bảng 24. MÔ HÌNH VẬT LÝ KHÁCH HÀNG MONGODB ......................... 53 Bảng 25. MÔ HÌNH VẬT LÝ NGƯỜI DÙNG MONGODB ........................... 54 vii
  9. TÓM TẮT  Ngày nay, công nghệ ngày càng phát triển, đặc biệt là các trang web trực tuyến. Các trang mạng xã hội, trang web cá nhân và các trang web mua bán được phát triển một cách nhanh chóng, đi cùng với vấn đề lưu trữ và xây dựng hệ thống cơ sở dữ liệu. Hiện tại có rất nhiều lựa chọn để xây dựng hệ thống cơ sở dữ liệu, mỗi một công nghệ đều có điểm mạnh và yếu khác nhau. Trong số đó cơ sở dữ liệu không ràng buộc được nhiều người quan tâm và nghiên cứu bởi các ưu điểm vượt trội của nó so với cơ sở dữ liệu quan hệ truyền thống. Đề tài “So sánh MongoDB và MySQL ứng dụng vào xây dựng website bán sách trực tuyến” xoáy sâu vào phân tích cách xây dựng hệ thống dữ liệu của hai hệ quản trị cơ sở dữ liệu MongoDB và MySQL, từ đó tìm ra những ưu thế và những cách lưu trữ tiến bộ hơn. Website bán sách sẽ là nền tảng để làm cán cân so sánh giữa hai hệ quản trị cơ sở dữ liệu với các chức năng đăng nhập, tìm kiếm sách, quản lý giỏ hàng,… Trong suốt quá trình nghiên cứu và thực hiện, tôi đã vận dụng các kiến thức tích lũy được trong những năm học và kinh nghiệm thực hiện các sơ đồ hệ thống thông tin hướng đối tượng, lập trình PHP, JavaScript trên nền tảng cơ sở dữ liệu MySQL và MongoDB. Tôi hy vọng sẽ nhận được nhiều ý kiến đóng góp để đề tài nghiên cứu được hoàn thiện hơn! viii
  10. ABSTRACT  Nowadays, information technology is development, special is online websites. Social networking website, Persional website and Business website growing very fast, with problems in store and database system building. Currently, there are numerous methods to building database system, each of these methods has different advantages and weaknesses. Non-Relational SQL is interesting and researching by many companies and groups because its advantages more than others. My thesis, “Comparing MongoDB and MySQL, applications on construction sites selling books online” focus on the method to build database system between MongoDB and MySQL. Building a website to sell book online is a practical illustration for comparing between MongoDB and MySQL. The website has some functions such as login, searching and manage cart… With the knowledge I had from my school, experiences in building system module by Object Information System Analysis Method and programing with PHP on MySQL and MongoDB database though my thesis. I hope to get more comments to complete this thesis better! ix
  11. CHƯƠNG I TỔNG QUAN 1.1. ĐẶT VẤN ĐỀ Ngày nay, sự phát triển của Internet và nhu cầu sử dụng tài nguyên ảo của con người ngày càng cao, đặc biệt là nhu cầu lưu trữ thông tin. Từ những trang web cá nhân đến các hệ thống mạng xã hội toàn cầu đều cần lưu trữ và khai thác thông tin một cách tối ưu. Với những hệ thống nhỏ như các trang web cá nhân hay các dịch vụ mua bán trực tuyến thì hệ thống dữ liệu lưu trữ cần phải toàn vẹn, logic và đảm bảo ổn định. Còn với các hệ thống mạng xã hội toàn cầu hay các hệ thống thông tin quốc gia, khi mà dữ liệu lưu trữ khổng lồ cần một tài nguyên rộng lớn thì việc đảm bảo độ bảo mật và tốc độ xử lý luôn được đề cao hàng đầu. Đến đây, người ta yêu cầu một giải pháp có thể vừa đảm bảo sự linh hoạt trong việc lưu trữ, vừa đảm bảo tốc độ truy xuất nhanh chóng. Có thể thấy, mô hình cơ sở dữ liệu quan hệ đã giải quyết tốt các yêu cầu lưu trữ của hệ thống. Thế nhưng, liệu nó đã đáp ứng được hết nhu cầu người dùng khi các thông tin ngày càng phức tạp và rời rạc nhau? Và người ta đã bắt đầu nghiên cứu một cách lưu trữ thông tin mới – mô hình dữ liệu không ràng buộc NoSQL(Not Only SQL). Đề tài nghiên cứu về MongoDB, một trong những hệ quản trị cơ sở dữ liệu đặc trưng của NoSQL, so sánh những đặc điểm của hệ quản trị mới này với hệ quản trị cơ sở dữ liệu MySQL để xây dựng trang web bán sách trực tuyến. Quá trình nghiên cứu sẽ tìm ra các điểm nổi bật, vượt trội của MongoDB, những điểm mới mà MySQL chưa có. Đề tài sẽ so sánh MongoDB và MySQL trên các phương diện phân tích, thiết kế hệ thống, xây dựng cơ sở dữ liệu và cách thức truy xuất dữ liệu trên trang web. 1
  12. 1.2. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ Chúng ta có thể thấy, ngày nay càng có nhiều hệ thống sử dụng cơ sở dữ liệu không ràng buộc thay thế cho phương pháp lưu trữ truyền thống. Điều này đã nói lên phần nào lợi thế của nó. NoSQL đặc biệt phổ dụng trong thời kì Web 2.0 bùng nổ, nơi các mạng dịch vụ cộng đồng cho phép người dùng tạo ra hàng tỉ nội dung trên web, đánh dấu sự trưởng thành của thế hệ database mới trong khi những sản phẩm phần mềm có thể đã được phát triển trước đó từ rất lâu. Với các trang web giao dịch trực tuyến, trước đó đã có rất nhiều phương pháp để xây dựng và thiết kế hệ thống dữ liệu, nhưng vẫn còn những vấn đề phát sinh. MongoDB đã được sử dụng vào các website mua bán nhưng vẫn chưa được phổ biến. Đa số những trang web vẫn sử dụng cơ sở dữ liệu truyền thống. Hình 1. Biểu đồ so sánh hiệu suất hoạt động của MongoDB và SQL 2
  13. Kết quả nghiên cứu cho chúng ta thấy những mặt ưu điểm vượt trội của NoSQL. Thế nhưng các kết quả được thực hiện trên các hệ thống lớn, phức tạp với lượng mẫu tin lên đến hàng triệu. Liệu với những hệ thống vừa và nhỏ, với những dữ liệu có tính toàn vẹn cao thì NoSQL có thể thay thế được cho cơ sở dữ liệu thông thường? 1.3 PHẠM VI ĐỀ TÀI Chính những vấn đề phát sinh trong việc lựa chọn giữa NoSQL và cơ sở dữ liệu quan hệ cùng với sự hấp dẫn của phương pháp lưu trữ mới nên em đã chọn và xây dựng đề tài “So sánh MongoDB và MySQL ứng dụng vào xây dựng website bán sách trực tuyến”. Đề tài nghiên cứu và so sánh MongoDB và MySQL ở các phương diện phân tích và thiết kế hệ thống, xây dựng cơ sở dữ liệu cho trang web bán sách trực tuyến. Trang web sẽ xây dựng trên cơ sở một nhà sách vừa và nhỏ, chủ yếu xoáy sâu và hệ thống lưu trữ, truy xuất và tìm kiếm thông tin, về các phương thức thanh toán sách cũng như các tiêu chí phân loại người dùng vẫn chưa được triển khai. 1.4 PHƯƠNG PHÁP NGHIÊN CỨU Dựa trên quá trình nghiên cứu và phân tích hệ thống, cũng như tham khảo các hệ thống bán sách của những nhà sách lớn để xây dựng trang web bán sách trên nền của hai hệ quản trị cơ sở dữ liệu MongoDB và MySQL. Đồ án tập trung vào các điểm mạnh của MongoDB để triển khai trên hệ thống trang web, tìm hiểu các phương thức lưu trữ và truy xuất dữ liệu, từ các kết quả nghiên cứu sẽ rút ra được những điểm khác nhau của MongoDB và MySQL. 3
  14. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VỀ NOSQL 2.1.1 Giới thiệu Với sự phát triển ngày càng nhanh của các mạng xã hội Facebook, Google Plus… kèm theo đó sẽ là lượng dữ liệu phát sinh ngày càng lớn và cập nhật liên tục, cấu trúc dữ liệu tổ chức lưu trữ và mối quan hệ giữa chúng trở nên cồng kềnh, phức tạp. Chính việc kiểm tra và đảm bảo các ràng buộc toàn vẹn trên dữ liệu, việc thực hiện phép kết nối dữ liệu giữa quá nhiều bảng trên khối lượng dữ liệu khổng lồ đó làm cho hiệu suất thực hiện của hệ thống không đáp ứng với kỳ vọng. Đội ngũ phát triển mạng xã hội hay các hệ thống lớn tương tự, giờ đây đang đòi hỏi các hệ quản trị cơ sở dữ liệu nhiều ở khả năng giảm thiểu tối đa các phép tính toán, các tác vụ đọc-ghi liên quan, kết hợp với khả năng xử lý theo lô (batch processing). Bên cạnh đó các thiết bị di động, các máy tính bảng,… với bộ nhớ và tốc độ xử lý thấp, còn khi cần xử lý lượng dữ liệu lớn thì các hệ quản trị cơ sở dữ liệu quan hệ đòi hỏi cao về phần cứng, do đó cũng có 1 đòi hỏi khác là các hệ quản trị cơ sở dữ liệu có thể triển khai được trên các thiết bị di động và chỉ đòi hỏi về tài nguyên thấp. Xuất phát từ các yêu cầu chính đó nên mô hình cơ sở dữ liệu NoSQL được ra đời và phát triển. Như tên gọi của nó, NoSQL (None-Relational SQL) là mô hình cơ sở dữ liệu không quan hệ nên nó sẽ giảm thiểu được các phép tính toán, các kiểm tra ràng buộc trên dữ liệu… do đó tốc độ đọc ghi nhanh, và yêu cầu thấp về phần cứng. Hiện nay, các hệ quản trị cơ sở dữ liệu theo mô hình NoSQL này có thể kể đến Cassandra của FaceBook, Dynamo của Amazon và BigTable của Google, CouchDB, Hbase, MongoDB và Redis. 4
  15. 2.1.2 Đặc điểm Looser consistency: NoSQL tổ chức lưu trữ và truy xuất dữ liệu theo cơ chế “thoáng hơn trong đảm bảo tính nhất quán của dữ liệu” so với mô hình dữ liệu quan hệ tryền thống nhằm cải thiện hiệu suất, đảm bảo dữ liệu luôn được đáp ứng tốt hơn Eventual consistency: NoSQL không yêu cầu phải đảm bảo tính nhất quán của dữ dữ liệu ngay tức thì mà sẽ hiện thực tính nhất quán của dữ liệu theo cơ chế lan truyền. Ví dụ: Khi bạn đổi đổi avartar trên Facebook thì hình ảnh trên trang cá nhân của bạn được đổi tức thì, còn trong danh sách bạn bè và trên trang chủ chưa được cập nhật ngay. Distributed storage: hay còn gọi là lưu trữ phân tán là thay vì dữ liệu được lưu trữ trên một máy chủ duy nhất thì hệ thống sẽ lưu dữ liệu trên nhiều máy khác nhau. Horizontal scalable: hay còn gọi là khả năng mở rộng chiều ngang. Bình thường, với các hệ quản trị cơ sở dữ liệu quan hệ , khi mà dữ liệu quá lớn phương pháp tăng khả năng lưu trữ là sẽ phải mở rộng (nâng cấp máy chủ), còn đối với NoSQL thì chỉ cần bổ sung thêm máy chủ khác vì hệ thống hỗ trợ lưu trữ phân tán trên nhiều máy. NoSQL là mã nguồn mở: điều này có nghĩa là bạn sẽ dễ dàng phát triển một ứng dụng có sử dụng NoSQL mà không phải tốn chi phí license. Tuy nhiên, đây cũng chính là nhược điểm của NoSQL. Dễ mở rộng quy mô: NoSQL đã thay thế cách mở rộng quy mô truyền thống của các hệ quản trị cơ sở dữ liệu quan hệ bằng hình thức “mở rộng ra ngoài”. Với hình thức mở rộng đặc biệt này, thay vì phải bổ sung thêm các máy chủ lớn hơn vào hệ thống khi dữ liệu lớn lên, thì NoSQL lại hỗ trợ doanh nghiệp phân tán dữ liệu qua nhiều máy chủ khi dữ liệu gia tăng. Hỗ trợ các mô hình dữ liệu khác nhau tuỳ mục đích và cách thức lưu trữ dữ liệu như lưu kiểu key-value, BigTable, lưu Document hay lưu thông tin Graph 5
  16. 2.2 GIỚI THIỆU VỀ MONGODB 2.2.1 Giới thiệu MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở “document-oriented” NoSQL. Thay vì cách thức lưu trữ dữ liệu trong các bảng được thực hiện trong các cơ sở dữ liệu quan hệ cổ điển thì MongoDB lưu trữ dữ liệu theo cấu trúc JSON với đặc tính “shcemaless” (MongoDB gọi với định dạng là BSON), làm cho việc tương tác với dữ liệu trong một số loại ứng dụng trở nên dễ dàng và nhanh hơn. MongoDB được bắt đầu phát triển từ năm 2007 bởi 10Gen, và ngày nay đã trở thành một hệ quản trị cơ sở dữ liệu phong phú về tính năng dành cho người dùng. MongoDB được sử dụng bới MTV Networks, Craigslist, Foursquare… và đã có sẵn trên các hệ điều hành Windows, Linux, OS X và Solaris. Phiên bản mới nhất của MongoDB hiện tại là bản 2.4, tải về tại địa chỉ www.mongodb.org/downloads/. MongoDB là một CSDL có khả năng mở rộng, hiệu suất cao, mã nguồn mở và hướng văn bản. Với các ứng dụng có lượng ghi dữ liệu lớn thì MongoDB lại càng là lựa chọn hợp lý. Một ví dụ về cách thức lưu trữ trên MongoDB và MySQL. Hình 2. Mô hình lưu trữ trên MongoDB 6
  17. Hình 3. Mô hình lưu trữ trên MySQL Tương tự như MySQL và các hệ quản trị cơ sở dữ liệu khác, MongoDB cũng có các khái niệm như bảng(Collection), dòng dữ liệu(Documents)… 2.2.2 Các khái niệm Bảng 1. CÁC KHÁI NIỆM TRONG MONGODB VÀ MYSQL MongoDB MySQL Database Database Collection Table Documents Rows Fields Columns Database bao gồm nhiều Collection, những mã nhúng javascript và một số thành phần khác. 7
  18. Mẫu tin (Document) là đơn vị cơ bản của dữ liệu trong MongoDB, nó tương đương với một dòng trong cơ sở dữ liệu quan hệ. Bộ sưu tập (Collection) có thể được coi như tương đương với một bảng. MongoDB có thể lưu trữ nhiều CSDL độc lập, mỗi CSDL này có các bộ sưu tập và điều khoản riêng của mình. MongoDB đi kèm với một trình tiện ích JavaScript đơn giản nhưng mạnh mẽ, nó hữu ích trong quản trị và thao tác dữ liệu. Mỗi văn bản có một khóa đặc biệt, đó là “_id”, nó là duy nhất trong bộ sưu tập của văn bản. Document là một khái niệm quan trọng trong MongoDB. Văn bản bao gồm tập hợp các khóa với các giá trị tương ứng. Ví dụ: {"TenSach" : "Van Hoc"}. Văn bản trên gồm một khóa là “TenSach”, với giá trị là “Van Hoc”. Các văn bản có thể chứa nhiều cặp khóa/giá trị. Ví dụ: {"TenSach" : "Van Hoc", "Gia" : 30000} Một số lưu ý: Các cặp khóa/ giá trị trong văn bản được sắp xếp. Văn bản trên sẽ khác với văn bản sau: {"Gia" : 30000, "TenSach" : "Van Hoc"} Khóa trong văn bản là một chuỗi. MongoDB phân biệt chữ hoa chữ thường. Văn bản trong MongoDB không được chứa những khóa giống nhau. Ví dụ văn bản sau là không hợp lệ {"TenSach" : "MongoDB", "TenSach" : "Van Hoc"} 8
  19. Bộ sưu tập là một nhóm các văn bản. Nếu văn bản tương đương với dòng trong CSDL quan hệ thì bộ sưu tập tương đương với bảng. Bộ sưu tập là một Schema-Free, nghĩa là các văn bản có hình dạng khác nhau có thể cùng được lưu trữ trong 1 bộ sưu tập. Ví dụ các văn bản sau có thể cùng được lưu trong một bộ sưu tập: {"TenSach" : "Van Hoc"} {"Gia" : 30000} Bộ sưu tập được xác định bởi tên của nó là một chuỗi UTF-8. 2.2.3 Các đặc trưng - Lưu trữ hướng tài liệu (document): document theo định dạng JSON với những lược đồ lưu trữ linh hoạt. - Hỗ trợ chỉ mục đầy đủ: chỉ mục trên bất kỳ các thuộc tính. - Tính sẵn có của dữ liệu: mở rộng. - Auto-sharding: mở rộng theo chiều ngang mà không ảnh hưởng đến chức năng. - Truy vấn: đa dạng, truy vấn dựa trên văn bản. - Cập nhật nhanh: Map/Reduce. - GridFS: lưu trữ file với bất kỳ kích cỡ nào mà không làm phức tạp ngăn xếp. - Hỗ trợ thương mại: hỗ trợ doanh nghiệp, đào tạo, tư vấn. 2.2.4 Xây dựng hệ thống với MongoDB 2.2.4.1 Cấu trúc dữ liệu Ví dụ: Ta có một dòng dữ liệu muốn chèn vào với các thuộc tính chưa biết trước. MongoDB sẽ tự động sinh bảng ứng với các cột là các thuộc tính thêm vào. doc= {_id: "4c4b1476238d3b4dd5003981", 9
  20. name: "le hoang khanh", age:"22", job: "Student" } Với ví dụ trên, ta đã có một bảng với định dạng tương ứng với cơ sở quan hệ như sau: Bảng 2. VÍ DỤ 1 id name age job 4c4b1476238d3b4dd5003981 le hoang 22 Student khanh Như đã trình bày, tính năng mở rộng của MongoDB rất hữu dụng. Giả sử ta có một bảng dữ liệu về sách và có 4 trường thuộc tính là mã sách, tên, giá bán và dịch giả. Vấn đề phát sinh là có những sách có dịch giả(sách nước ngoài) nhưng một số lại không. Nếu trên cơ sở dữ liệu quan hệ, chúng ta phải tách ra như sau: Bảng 3. VÍ DỤ 2.1 Mã sách Tên sách Giá bán 123 Tin học 10000 654 Kinh tế 15000 Bảng 4. VÍ DỤ 2.2 Mã dịch giả Mã sách Tên dịch giả 789 123 Nguyễn Văn A Như vậy hệ thống sẽ trở nên phức tạp hơn khi lượng dữ liệu lớn và không đồng nhất với nhau. Nhưng với MongoDB, vấn đề này được giải quyết một cách đơn giản vì mỗi mẫu tin có thể chứa một mảng các giá trị. Ví dụ như: 10
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2