Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 78 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
78
Dung lượng
1,63 MB
Nội dung
TRƯỜNG ĐẠI HỌC VÕ TRƯỜNG TOẢ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: Hậu Giang – Năm 2013 LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu thực đồ án tốt nghiệp riêng tôi, không chép từ đồ án khác, sai tơi xin chịu hồn tồn trách nhiệm khoa nhà trường đề Sinh viên thực Lê Hoàng Khánh i LỜI CẢM TẠ Để hồn thành luận văn này, tơi nhận giúp đỡ nhiều từ gia đình, bạn bè thầy cô giáo Tôi xin gởi lời cảm ơn chân thành đến tất 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 định hướng cho thực toàn luận văn Xin gởi lời cám ơn đến tất thầy cô giáo truyền dạy cho kiến thức quý báo suốt năm học vừa qua Cảm ơn người thân, bạn bè ủng hộ, tạo điều kiện cho tơi có đủ thời gian nghị lực đề hoàn thành luận văn thời hạn Sinh viên thực Lê Hoàng Khánh ii BẢN NHẬN XÉT LUẬN VĂN TỐT NGHIỆP Họ 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ọ tên Mã số sinh viên Chuyên ngành Tên đề tài : : : : Lê Hoàng Khánh 0951190693 Công Nghệ Thông Tin So Sánh MongoDB 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 Tính phù hợp đề tài với chuyên ngành đào tạo: Về hình thức: Ý nghĩa khoa học, thực tiễn tính cấp thiết đề tài: Độ tin cậy số liệu tính đại luận văn: Nội dung kết đạt được: Các nhận xét khác: Kết luận: ………., ngày…… tháng …… năm… Người nhận xét (Ký ghi rõ họ tên) iii 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ý ghi rõ họ tên) iv MỤC LỤC Trang CHƯƠNG TỔNG QUAN 1.1 1.2 1.3 1.4 ĐẶT VẤN ĐỀ LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ PHẠM VI ĐỀ TÀI PHƯƠNG PHÁP NGHIÊN CỨU CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VỀ NOSQL 2.1.1 Giới thiệu 2.1.2 Đặc điểm 2.2 GIỚI THIỆU VỀ MONGODB 2.2.1 Giới thiệu 2.2.2 Các khái niệm 2.2.3 Các đặc trưng 2.2.4 Xây dựng hệ thống với MongoDB 2.3 TỔNG QUAN VỀ PHP 13 2.3.1 Giới thiệu 13 2.3.2 Các tính 13 2.4 PHP VÀ MONGODB 14 2.5 MYSQL 14 2.5.1 Giới thiệu 14 2.5.2 Tính 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 bảng sở liệu 27 CHƯƠNG 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 MySQL 34 3.2.2 Mơ hình MongoDB 50 3.3 CHƯƠNG TRÌNH 59 3.3.1 Sơ đồ tổng quan 59 3.3.2 Giao diện số chức trang web 60 3.4 KẾT QUẢ ĐẠT ĐƯỢC 64 KẾT LUẬN, ĐỀ NGHỊ VÀ HƯỚNG PHÁT TRIỂN 65 KẾT LUẬN 65 HẠN CHẾ 66 HƯỚNG PHÁT TRIỂN 66 v DANH MỤC HÌNH Trang Hình Biểu đồ so sánh hiệu suất hoạt động MongoDB SQL Hình Mơ hình lưu trữ MongoDB Hình Mơ hình lưu trữ MySQL Hình Các kí hiệu sơ đồ hoạt vụ 17 Hình Quan hệ bao hàm 18 Hình Quan hệ mở rộng 18 Hình Quan hệ tổng quát hóa 19 Hình Quan hệ tác nhân 19 Hình Kí hiệu lớp 20 Hình 10 Kí hiệu quan hệ liên kết 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 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 trình đặt mua sách 39 Hình 17 Sơ đồ Quản lý khách hàng Hóa đơn tố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ơ đồ đăng nhập 56 Hình 22 Sơ đồ xóa giỏ hàng 57 Hình 23 Sơ đồ 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 DANH MỤC BẢNG Trang Bảng CÁC KHÁI NIỆM TRONG MONGODB VÀ MYSQL Bảng VÍ DỤ 10 Bảng VÍ DỤ 2.1 10 Bảng VÍ DỤ 2.2 10 Bảng VÍ DỤ 11 Bảng VÍ DỤ 12 Bảng ĐÁNH GIÁ MONGODB VÀ MYSQL 29 Bảng KẾT QUẢ ĐO ĐƯỢC TRÊN MONGODB VÀ MYSQL 30 Bảng 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 TÓM TẮT Ngày nay, công nghệ ngày phát triển, đặc biệt trang web trực tuyến Các trang mạng xã hội, trang web cá nhân trang web mua bán phát triển cách nhanh chóng, với vấn đề lưu trữ xây dựng hệ thống sở liệu Hiện có nhiều lựa chọn để xây dựng hệ thống sở liệu, cơng nghệ có điểm mạnh yếu khác Trong số sở liệu không ràng buộc nhiều người quan tâm nghiên cứu ưu điểm vượt trội so với sở liệu quan hệ truyền thống Đề tài “So sánh MongoDB 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 liệu hai hệ quản trị sở liệu MongoDB MySQL, từ tìm ưu cách lưu trữ tiến Website bán sách tảng để làm cán cân so sánh hai hệ quản trị sở liệu với chức đăng nhập, tìm kiếm sách, quản lý giỏ hàng,… Trong suốt q trình nghiên cứu thực hiện, tơi vận dụng kiến thức tích lũy năm học kinh nghiệm thực sơ đồ hệ thống thơng tin hướng đối tượng, lập trình PHP, JavaScript tảng sở liệu MySQL MongoDB Tôi hy vọng nhận nhiều ý kiến đóng góp để đề tài nghiên cứu hồn thiện hơn! viii 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 Bảng 25 MƠ HÌNH VẬT LÝ NGƯỜI DÙNG TRÊN MONGODB Stt Tên thuộc tính Kiểu Kích Số Miền Trị thước chữ giá mặc số trị nhiên Min Max Diễn giải thập phân _id String _id tự sinh 32 địa để truy cập tới ghi TenDangNhap String Tên 16 đăng nhập MatKhau String KhachHang Array Mật 16 Mảng giá trị Khách Hàng 3.2.2.3 Lưu đồ Giải Thuật Lưu đồ giải thuật số chức trang web 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 3.2.2.4 Sơ đồ Sơ đồ cho số chức trang web Hình 21 Sơ đồ đăng nhập 56 Hình 22 Sơ đồ xóa giỏ hàng 57 Hình 23 Sơ đồ tìm kiếm theo tên sách 58 3.3 CHƯƠNG TRÌNH 3.3.1 Sơ đồ tổng quan Quản lý tài khoản khách hàng Đăng kí/ Đăng nhập Cập nhật thơng tin Nhập/ Xuất kho Quản lý Sách Trình bày Sách Tìm kiếm theo Tên Tìm kiếm Sách Hệ thống trang web bán sách trực tuyến Tìm kiếm theo Thể loại Tìm kiếm theo Nhà Xuất Bản/Năm Xuất Bản Thống kê Sách bán chạy Thống kê Sách Thống kê Sách tồn kho Thống kê Sách Thanh Toán Sách Đặt mua Xác nhận thông tin người mua/địa giao hàng Giao hàng Trợ giúp/Liên hệ Hình 24 Sơ đồ tổng quan trang web 59 3.3.2 Giao diện số chức trang web ♦ Hướng trình bày Header Menu ngang Menu đứng phụ trái Nội dung Các Module phải Module phụ trái Footer Hình 25 Hướng trình bày trang web ♦ Tổng thể trang web Trang web hỗ trợ khách hàng tìm kiếm sách theo tiêu chí: tên sách, giá bán, năm xuất bản, nhà xuất thể loại Ngoài ra, khách hàng đăng ký tài khoản đăng nhập vào hệ thống để thực việc mua sách Trang web có chức cho phép người dùng chọn sách muốn mua thêm vào giỏ hàng, giỏ hàng hiển thị chi tiết tên sách, số lượng tổng tiền tốn Khách hàng cập nhật giỏ hàng trước xác nhận mua sách 60 Hình 26 Tổng thể trang web Chú thích hình: Chức tìm kiếm Chức đăng nhập Liên kết nhanh đến chức thêm giỏ hàng thông tin sách 61 ♦ Trang thông tin sách: Trang thông tin sách hiển thị tất thông tin quển sách chọn bao gồm: tên sách, tác giả, dịch giả(nếu có), số trang, tóm tắt nội dung, ảnh bìa,…và nhập số lượng sách khách hàng muốn đặt mua Hình 27 Trang thơng tin sách ♦ Trang Đăng ký tài khoản Trang đăng ký tài khoản giúp khách hàng đăng ký tài khoản trang web đăng nhập để thực hiên mua sách 62 Hình 28 Trang đăng ký tài khoản ♦ Trang quản lý giỏ hàng Trang quản lý giỏ hàng hiển thị thông tin giỏ hàng người dùng đăng nhập tại, bao gồm tên sách chọn, số lượng mua tương ứng, ngày giao sách tổng tiền phải trả Khách hàng cập nhật số lượng sách xóa sách Hình 29 Trang quản lý giỏ hàng 63 3.4 KẾT QUẢ ĐẠT ĐƯỢC Trang web đáp ứng vấn đề sau: - Đáp ứng trình trình bày sách nhập/xuất sách vào hệ thống - Tìm kiếm sách theo tiêu chí theo u cầu - Thống kê loại sách Về phía so sánh hệ quản trị sở liệu MongoDB MySQL: - Dựa phân tích thiết kế hệ thống, liệu chia làm phần tách biệt để có nhìn cụ thể Kết cho thấy với MongoDB, hệ thống thiết kế đơn giản hơn, vấn đề lưu trữ thơng tin sách phát sinh, loại sách có nhiều tác giả, dịch giả sách thuộc nhiều thể loại khác giải triệt để Dĩ nhiên sở liệu quan hệ MySQL giải phức tạp phải thiết kế hệ thống rờm rà - Với hai cách lưu trữ liệu khác nhau, hiển thị trang web cho thấy MongoDB không cõi mà ngược lại cịn đơn giản q trình lập trình 64 KẾT LUẬN, ĐỀ NGHỊ VÀ HƯỚNG PHÁT TRIỂN KẾT LUẬN Đồ án nghiên cứu ưu điểm sở liệu không ràng buộc NoSQL, ứng dụng vào xây dựng trang web bán sách trực tuyến với MongoDB Bên cạnh đó, đồ án xây dựng sở liệu quan hệ truyền thống MySQL để làm bước đệm so sánh, đánh giá Trên kết nghiên cứu, rút vấn đề sau: - Với sở liệu quan hệ, bảng liệu, trường thông tin mẫu tin phải thống liên kết với khóa chính, tương tự nắm tay nhóm người đứng thành hình trịn, với người phải có nắm tay Dữ liệu quan hệ đa phần đuợc chia để dễ quan lý thông tin phức tạp rời rạc Do đó, mức mơ hình liệu mơ hình vật lý, ta thấy hệ thống rối mắt khó quản lý - Với sở liệu không ràng buộc NoSQL, hệ thống gần thu gọn nửa, mà bảng phụ tách sở liệu quan hệ tập trung lại bảng mẫu tin lưu trữ linh động Có trường bao gồm kiểu liệu mảng, chứa nhiều dịng thơng tin đó, điều mà sở liệu quan hệ phải nhiều thời gian để tách chúng thành bảng Việc quan lý liệu khơng cịn tập trung vào bảng khóa mà thay vào viêc quản lý lớp phương thức xử lý Không tồn bảng sở liệu NoSQL mà sinh tự động chèn liệu vào Việc mở rộng bảng hồn tồn dễ dàng mà liệu khơng thiết phải có đủ cột thơng tin - Với tốc độ truy vấn, giới hạn hệ thống trang web bán sách tương đối đơn giản nên lượng liệu vào chưa đáng kể, chưa thể thấy rõ điều Tuy nhiên nghiên cứu người tiên phong, thấy việc tồn vẹn liệu NoSQL hạn chế, liệu phân rã lưu trữ nhiều nơi, đổi lại tốc độ truy vấn tăng lên nhiều 65 HẠN CHẾ - Việc tiếp cận với MongoDB chưa chuyên sâu, ưu điểm phân tích chưa làm rõ tất Các vấn đề rút ngắn hơn, chức trang web giới hạn lại trình oder sách, trình quản lý tài khoản để phân loại khách hàng thân thiện hay khách hàng mới,vv… - Giao diện website đơn giản, chức chưa hoàn thiện HƯỚNG PHÁT TRIỂN - Đi sâu vào hệ thống liệu để tìm hạn chế lưu trữ MySQL, từ đưa giải pháp tối ưu để giải MongoDB - Hoàn thiện chức Quản lý tài khoản người dùng, quản lý trình oder sách, tối ưu hóa chức xem thơng tin sách cách javascript - Thêm chức Mua sách toán sách phương thức toán hữu dụng thẻ tín dụng tài khoản Paypal - Cải thiện lại giao diện website để bắt mắt tiện dụng 66 TÀI LIỆU THAM KHẢO [1] Phân tích thiết kế hệ thống hướng đối tượng, Phạm Thị Xuân Lộc [2] Giáo trình hệ quản trị sở liệu, Khoa CNTT Truyền Thông, ĐH Cần Thơ [3] Giáo trình Lập trình ứng dụng Web với PHP, Khuất Thùy Phương [4] MongoDB in Action, Kyle Banker [5] MongoDB and PHP, Steve Francia [6] MongoDB and Python, Niall O’Higgins [7] 50 Tips and Tricks for MongoDB Developers, Kristina Chodorow [8] www.mongodb.org : trang chủ MongoDB [9] www.vinabooks.com : website bán sách công ty Mekongcom [10] http://saigoncom.vn : Nhà sách mạng PHỤ LỤC CÚ PHÁP CỦA MYSQL TRONG PHP Các câu lệnh Cú pháp Tạo bảng CREATE TABLE USERS (a Number, b Number) Thêm giá trị INSERT INTO USERS VALUES(1,1) Chọn trường SELECT a,b FROM users liệu bảng Tìm kiếm ứng với giá SELECT * FROM users WHERE age>33 AND trị khoảng ageusers->insert(array("a" => 1, "b" => 1)); Chọn trường $db->users->find(array(), array("a" => 1, "b" liệu bảng => 1)); Tìm kiếm ứng với giá $db->users->find(array("age" => array('$gt' => trị khoảng 33, '$lte' => 40))); Tìm kiếm ứng với giá $db->users->find(array("name" => new trị so sánh MongoRegex("/Joe/"))); Cập nhật mẫu tin $db->users->update(array("b" => "q"), array('$set' => array("a" => 1))); Xóa mẫu tin với điều $db->users->remove(array("z" => "abc")); kiện