1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

78 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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ác giả Lê Hồng Khánh
Người hướng dẫn Bùi Thị Hồng Phúc, Giảng viên khoa CNTT
Trường học Trường đại học Võ Trường Toản
Chuyên ngành Công nghệ Thông tin
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2013
Thành phố Hậu Giang
Định dạng
Số trang 78
Dung lượng 1,63 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đề 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à MyS

Trang 1

Hậu Giang – Năm 2013

Trang 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

Trang 3

Đ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

Trang 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

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)

Trang 5

iv

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)

Trang 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ƯỢNG17 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

Trang 7

vi

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

Trang 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

Trang 9

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!

Trang 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!

Trang 11

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

Trang 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

Trang 13

3

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

Trang 14

đó 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

Trang 15

5

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

Trang 16

2.2 GIỚI THIỆU VỀ MONGODB

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

Trang 17

7

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)…

Trang 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

Documentlà 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"}

Trang 19

9

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"}

- 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",

Trang 20

name: "le hoang khanh",

Trang 21

11

Bảng 5 VÍ DỤ 3

Trang 22

2134873435 Toan 8

Trong ví dụ trên ta thấy, với mô tả như thế ta phải chia bảng ra để lưu trữ thì MongoDB có thể thực hiện trên cùng một Document

Trang 23

13

- Kiểu ngày Datetime: gói hỗ trợ Datetime sẽ được sử dụng khi truy vấn dữ liệu dạng ngày tháng, và cơ sở dữ liệu sẽ lưu lại định dạng chuẩn Lưu ý kiểu dữ liệu datetime được khởi tạo khá chậm, do đó nên chuyển đổi và lưu dưới dạng số

để tiết kiệm thời gian hơn trong trường hợp các giá trị lớn

- Kiểu Boolean: sẽ trả về 1 hoặc 0 tương ứng với true và false Để sử dụng gói

hỗ trở kiểu boolean, chúng ta dùng câu lệnh boolean::true Lưu ý là cơ sở dữ liệu

vẫn lưu dưới dạng boolean, như khi trả về là dạng integer 0 hoặc 1 Để thiết lập

kiểu trả về là boolean ta dùng câu lệnh: $MongoDB::BSON::use_boolean

-Kiểu số: các dữ liệu có chứa số thập phân sẽ lưu dưới dạng double(64bit), không chưa dấu chấm thập phân sẽ lưu dạng integer(32bit) Những giá trị integer(64bit) sẽ được lưu dưới dạng double Miền giá trị của kiểu số(ứng với 64 bit) là từ -9,223,372,036,854,775,808 đến +9,223,372,036,854,775,807

2.3 TỔNG QUAN VỀ PHP

2.3.1 Giới thiệu

PHP-Personal Home Page là một ngôn ngữ lập trình cho phép chúng ta xây dựng ứng dụng trên mạng internet tương tác với mọi cơ sở dữ liệu Nói đơn giản hơn, PHP là một ngôn ngữ dạng script thực thi trên webserver nhằm tạo ra trang web động

2.3.2 Các tính năng

- Mở rộng mạnh mẽ: dễ dàng phát triển và mở rộng module

- Tốc độ xữ lý cao

- Hỗ trợ nhiều máy chủ web, tương tác hầu hết các cơ sở dữ liệu

- Bảo mật và cung cấp nhiều cấu trúc ngôn ngữ mới

Trang 24

2.4 PHP VÀ MONGODB

Để có thể dùng ngôn ngữ PHP thao tác trên cơ sở dữ liệu MongoDB, chúng ta cần phải cài đặt các gói hỗ trợ thêm PHP Driver là gói hỗ trợ để giúp chúng ta tương tác được trên MongoDB bằng ngôn ngữ PHP

Trang 25

có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức

- Chế độ bảo mật:

Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về cơ

sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là điều có thể làm được SSH và SSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật Một đối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, các hàm mã hóa và giải

mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3 cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một thời điểm nào đó

-Sự phát triển ứng dụng hỗn hợp:

Một trong số các lý do khiến cho MySQL là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất kì sự phát triển ứng dụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và nhiều nữa Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ

Trang 26

trong bất kì ứng dụng nào MySQL cũng cung cấp các bộ kết nối như: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQL như một server quản lí dữ liệu được ưu tiên

- Dễ dàng quản lý:

MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian ở mức trung bình từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút Điều này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng không gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn Nhiều công cụ của các hãng phần mềm thứ 3 cũng có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị cơ sở

dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra

- Nơi lữu trữ Web và Data đáng tin cậy:

MySQL là nhà máy chuẩn cho các web sites phải trao đổi thường xuyên vì nó có engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh ghê gớm, và hỗ trợ mạnh cho các chức năng chuyên dụng của web như tìm kiếm văn bản nhanh Những tính năng này cũng được áp dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Các tính năng khác như bảng nhớ chính, cây

B và chỉ số băm, và bảng lưu trữ đã được cô lại để giảm các yêu cầu lưu trữ đến 80% làm cho MySQL trở thành lựa chọn tốt nhất cho cả ứng dụng web và các ứng dụng doanh nghiệp

Trang 27

sự trình bày vượt ra ngoài giới hạn của những dòng lệch thô Sự trình bày trực quan luôn mang tính cốt yếu đối với quá trình phát triển của những hệ thống phức tạp

2.6.1 Sơ đồ hoạt vụ

Các trường hợp sử dụng được gom lại trong các sơ đồ hoạt vụ, nhằm chỉ ra mối liên hệ giữa các trường hợp sử dụng và các tác nhân Những sơ đồ này cũng cho phép biểu diễn sự phụ thuộc giữa các trường hợp sử dụng lẫn nhau hoặc giữa các tác nhân lẫn nhau

Hình 4 Các kí hiệu trong sơ đồ hoạt vụ

a Quan hệ giữa các trường hợp sử dụng trong sơ đồ hoạt vụ

- Quan hệ bao hàm:

Trang 28

Trường hợp sử dụng B được coi là “bao hàm” trường hợp sử dụng A nếu hành vi

mô tả B bao hàm hành vi mô tả A

Hình 6 Quan hệ mở rộng

- Quan hệ tổng quát hóa:

Trang 29

19

Một trường hợp sử dụng A là một sự tổng quát hóa trường hợp sử dụng B nếu B

là một trường hợp đặc biệt của A

Mối quan hệ tổng quát hóa sẽ được diễn dịch thành khái niệm thừa kế trong các ngôn ngữ hướng đối tượng

Ký hiệu: biểu diễn bằng mũi tên khối rỗng về trường hợp sử dụng tổng quát hơn

Hình 7 Quan hệ tổng quát hóa

- Quan hệ giữa các tác nhân:

Mối quan hệ duy nhất có thể có giữa các tác nhân là sự tổng quát hóa

Một tác nhân A là một sự tổng quát hóa của B nếu A có thể được thay thế bởi B trong mọi trường hợp sử dụng (chiều ngược lại không đúng)

Hình 8 Quan hệ giữa các tác nhân

b Một vài nguyên tắc mô tả sơ đồ hoạt vụ

- Xác định tác nhân: Các tác nhân là những người sử dụng hệ thống Không nên quên những người sử dụng có trách nhiệm khai thác và bảo trì hệ thống thông tin Không kể đến những kỹ sư phần mềm cài đặt và tham số hóa phần mềm trước khi

sử dụng Để dễ tìm các tác nhân,nên hình dung ra trước các biến của hệ thống Tất

Trang 30

cả những ai, những gì sử dụng hệ thống và có tương tác với hệ thống là một tác nhân

- Các trường hợp sử dụng: Không có nguyên tắc duy nhất, cần đứng trên quan điểm người sử dụng và xác định tác nhân đó được hệ thống phục vụ như thế nào? Trong trường hợp nào tác nhân đó được sử dụng? Chức năng nào của hệ thống mà tác nhân đó truy cập đến Cần tránh dư thừa và cần có sự trừu tượng hóa hợp lý để giảm bớt số trường hợp, ví dụ không nên cho một trường hợp chỉ sử dụng một thao tác

Trang 31

<kiểu>: kiểu dữ liệu cơ sở hoặc tên lớp

<bản số>: các chỉ số tối thiểu và tối đa cho một mảng của kiểu vừa nói ở trên

<trị khởi tạo>: phải có kiểu tương ứng với kiểu nói trên

c Phương thức

Hành vi của một đối tượng được mô hình hóa bằng một tập các phương thức Người ta phân biệt đặc tả(specification, header) của phương thức với cài đặt (implementation) của nó Tương ứng với mỗi đặc tả, có thể có nhiều cài đặt, nhưng với mỗi cài đặt chỉ tương ứng với một đặc tả duy nhất

Đặc tả còn được gọi là “operation”, còn cài đặt cụ thể được gọi là “method”

d Quan hệ giữa các lớp

- Liên kết:

Một liên kết biểu diễn mối liên hệ ngữ nghĩa bền vững giữa 2 lớp

Trang 32

Hình 10 Kí hiệu quan hệ liên kết giữa các lớp

Mũi tên để chỉ ý nghĩa chính xác của tên liên kết từ lớp bên trái sang lớp bên phải “Vai trò” phía một lớp dùng để chỉ vai trò của lớp đó trong liên kết đối với lớp kia

Vai trò, mũi tên có thể được bỏ qua

Trang 33

- Liên kết do suy diễn:

Liên kết do suy diễn là liên kết được đặt điều kiện hoặc được suy diễn từ ít nhất một liên kết khác Mặc dù nó tạo ra sự dư thừa, nhưng thực tế lại có ích nếu phải sử dụng nhiều liên kết mới có được kết quả như mong muốn

Ký hiệu: có dấu slash (“/”) trước tên liên kết

- Liên kết nhiều chiều:

Trong UML, ít khi dùng liên kết nhiều chiều, mà thường giới hạn ở 2 chiều, đôi khi 3 chiều Lý do là vì để xác định bản số của mỗi lớp khá khó khăn

Thường thì các liên kết nhiều chiều được chuyển sang dùng lớp-liên kết, hoặc nhiều liên kết 2 chiều

2.6.3 Sơ đồ tương tác

a Định nghĩa

-Tương tác: một tương tác định nghĩa hành vi của một hệ có cấu trúc (một hệthống con, một trường hợp sửdụng, một lớp, một thành tố, …) bằng cách đặc biệt chú trọng đến việc trao đổi các thông tin giữa các thể hiện (instances) của nó

- Sinh tuyến: một sinh tuyến biểu diễn một thành phần duy nhất (có thể tương ứng với một người ngoài thế giới thực, hoặc một đối tượng trong lớp dữ liệu) tham gia vào một tương tác

Trang 34

- Sơ đồ tương tác: các sơ đồ tuần tự và sơ đồ liên lạc biểu diễn các tương tác giữa các sinh tuyến Một sơ đồ tuần tự chỉ ra các tương tác dưới góc độ thời gian, đặc biệt là các chuỗi thông báo (messages) trao đổi nhau giữa các sinh tuyến, trong khi một sơ đồ liên lạc biểu diễn về mặt không gian của các sinh tuyến Còn có dạng thứ ba của sơ đồ tương tác là sơ đồ thời gian nhằm mô hình hóa các hệ thống được khai thác dưới những điều kiện nghiêm ngặt về thời gian, chẳng hạn các hệ thống thời thực Tuy nhiên, các sơ đồ tuần tự hoàn toàn có thể thực hiện chức năng này

b Các dạng thông báo

Các thông tin chủ yếu chứa trong sơ đồ tuần tự là các thông báo Một thông báo định nghĩa một liên lạc giữa các sinh tuyến

Có nhiều dạng thông báo trong đó phổ biến nhất là dạng:

- Gửi một tín hiệu: thông báo khởi động một phản ứng nơi đối tượng nhận một cách không đồng bộ và không cần đợi trả lời

- Kích hoạt thực hiện một thao tác trong một phương thức: đây là dạng thông báo được sử dụng nhiều nhất tronglập trình hướng đối tượng Trong thực tế, đa

số thông báo loại này là đồng bộ Cũng có thể thực hiện thông báo dạng này một cách không đồng bộ qua các thread

- Tạo hoặc hủy một thể hiện (đối tượng)

Trang 35

25

Hình 13 Kí hiệu các dạng thông báo

c Thông báo và sự kiện

UML phân biệt việc gửi với nhận các thông báo, cũng như phân biệt việc bắt đầu với việc kết thúc thực hiện một phản ứng

Các sự kiện (event) được dùng để đánh dấu từng giai đoạn Dựa vào các sự kiện gửi và nhận, UML định nghĩa 3 kiểu thông báo:

- Thông báo đầy đủ: các sự kiện gửi và nhận đều được biết

- Thông báo bị lạc: sự kiện gửi có được biết, nhưng sự kiện nhận thì không

- Thông báo tìm được: ngược lại, sự kiện nhận có được biết, nhưng sự kiện gửi thì không

d Ngữ pháp của thông báo

- Thông báo gửi:

Thông báo gửi có ngữ pháp sau đây:

<tên tín hiệu hoăc tên phương thức>[(danh sách tham số)]

Trang 36

Trong đó, danh sách các tham số cách nhau bởi dấu phẩy, và mỗi tham số có ngữ pháp như sau:

<tên tham số>[<dấu><trị của tham số>]

Với <dấu> là dấu ‘=’ nếu đó là tham số chỉ đọc Dấu ‘:’ nếu đó là tham số có thể sửa được (đọc/ghi)

- Thông báo trả lời:

Thông báo trả lời có ngữ pháp dưới đây:

[<thuộc tính>=]<thông báo gửi>[:<trị trả về>]

- Ràng buộc trên các sinh tuyến:

Các sinh tuyến của một tương tác

Ký hiệu:

+ Một ràng buộc được biểu diễn trên một sinh tuyến

bằng một văn bản giữa dấu ({})

+ Một ràng buộc cũng có thể được chứa trong một ghi chú gắn với thể hiện của sự kiện liên quan

e Các kiểu phân đoạn của tương tác

Loop : lặp mãi đến khi có lệnh « break »

Loop <điều kiện> : còn lặp lại khi điều kiện còn thỏa

Trang 37

+ « break » : để thoát ra khỏi vòng lặp

- Xử lý song song: Dùng từkhóa « par » (parallel)

f Các toán tửassert, ignore và consider

Các phép ignore và consider cho phép tập trung chú ý để mô hình hóa một số thông báo có thể được gửi trong một tương tác ignore định nghĩa các thông báo

có thể bỏ qua, còn consider định nghĩa các thông báo cần phải chú ý đến

Ngữ pháp:

Các toán tử assert, ignore và consider được đặt sau tên của sơ đồ tuần tự, với ngữ pháp như sau :

ignore { danh sách thông báo}

consider { danh sách thông báo}

g Phân rã một sinh tuyến

Đôi khi, một tương tác quá phức tạp để có thể đưoc mô tả trong một sơ đồ thôi, nên ta có thể cắt một sinh tuyến ra trên nhiều sơ đồ

Một phần của sinh tuyến được phân rã ra sẽ được thay thế bằng một hình chữ nhật với từ khóa ref, và được trình bày ở sơ đồ khác

2.6.4 Chuyển sơ đồ lớp sang các bảng trong cơ sở dữ liệu

Trang 38

thành bảng thứ hai theo quy tắc 2 cộng thêm thuộc tính khóa của bảng thứ nhất làm khóa ngoài cho bảng thứ hai

- Quy tắc 4: Một liên kết hoặc một lớp liên kết giữa các lớp mà các bảng số không phải là 1 biến thành một bảng gồm tất cả các khóa của các lớp tham gia và các thuộc tính của lớp liên kết đó (nếu có) Các khóa này kết hợp lại thành khóa của bảng vừa được tạo ra.Mỗi lớp tham gia sẽ chuyển thành một bảng theo quy tắc 2

- Quy tắc 5: Một liên kết tự thân sẽ biến mất hay trở thành một bảng, tùy theo các bảng số của quan hệ đó Nếu có một bản số là 1 thì xem quan hệ tự thân như quan

hệ giữa hai lớp và áp dụng quy tắc 3.Nếu không có bản số nào là 1 thì áp dụng quy tắc 4

Trang 39

29

CHƯƠNG 3

NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU

Dựa trên các nghiên cứu và tìm hiểu về hai hệ quản trị cơ sở dữ liệu MongoDB và MySQL, chúng ta tổng kết được các điểm tương đồng cũng như khác biệt giữa hai hệ quản trị

Sau đây là bảng so sánh và đánh giá các điểm giống và khác nhau giữa MongoDB

và MySQL:

Bảng 7 ĐÁNH GIÁ MONGODB VÀ MYSQL

Về cấu trúc dữ liệu

Không có khái niệm tạo bảng, bảng dữ

liệu sẽ được tự động sinh ra khi người

dùng thêm dữ liệu vào, và cấu trúc của

bảng tùy vào các kiểu và thuộc tính của

dữ liệu thêm

Khi bắt đầu làm việc, người dùng sẽ tạo

và thiết kế các bảng dữ liệu theo cấu trúc định trước

Trong MongoDB, các khóa chính được tự

động thiết lập và liên hệ với nhau thông

qua giá trị _id

Truy xuất thông tin giữa các Bảng dữ liệu phải có các mối quan hệ thông qua các khóa chính và khóa ngoại

Khả năng mở rộng bảng theo chiều ngang

mà không làm ảnh hưởng đến cấu trúc

bảng

Mở rộng bảng theo chiều ngang giới hạn trong cấu trúc bảng hoặc mở rộng thuộc tính giá trị bằng cách tạo các bảng liên kết mới

Việc thay đổi số node đơn giản, không

document: 16MB

Kích cỡ lớn nhất của một dòng dữ liệu: không xác định

Ngày đăng: 12/06/2023, 18:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Phân tích thiết kế hệ thống hướng đối tượng, Phạm Thị Xuân Lộc Sách, tạp chí
Tiêu đề: Phân tích thiết kế hệ thống hướng đối tượng
Tác giả: Phạm Thị Xuân Lộc
[2]. Giáo trình hệ quản trị cơ sở dữ liệu, Khoa CNTT và Truyền Thông, ĐH Cần Thơ Sách, tạp chí
Tiêu đề: Giáo trình hệ quản trị cơ sở dữ liệu
Tác giả: Khoa CNTT và 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 Sách, tạp chí
Tiêu đề: Giáo trình Lập trình ứng dụng Web với PHP
Tác giả: Khuất Thùy Phương
[6]. MongoDB and Python, Niall O’Higgins Sách, tạp chí
Tiêu đề: MongoDB and Python
Tác giả: Niall O’Higgins
[7]. 50 Tips and Tricks for MongoDB Developers, Kristina Chodorow Sách, tạp chí
Tiêu đề: 50 Tips and Tricks for MongoDB Developers
Tác giả: Kristina Chodorow
[8]. www.mongodb.org : trang chủ MongoDB Sách, tạp chí
Tiêu đề: MongoDB
Nhà XB: MongoDB
[9]. www.vinabooks.com : website bán sách của công ty Mekongcom Link
[4]. MongoDB in Action, Kyle Banker [5]. MongoDB and PHP, Steve Francia Khác

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w