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

TÌM HIỂU NOSQL – MONGODB và xây DỰNG ỨNG DỤNG MINH họa

115 861 11

Đ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

Định dạng
Số trang 115
Dung lượng 13,56 MB

Nội dung

CSDL quan hệ được thiết kế cho những mô hình dữ liệu không quá lớn trong khi các dịch vụ mạng xã hội lại có một lượng dữ liệu cực lớn và cập nhật liên tục do số lượng người dùng quá nhiề

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỜNG DẪN KHOA HỌC:

THẦY TS NGUYỄN GIA TUẤN ANH

TP HỒ CHÍ MINH – 2015

Trang 2

LỜI CẢM ƠN

Khóa luận Thạc Sỹ này được thực hiện tại Trường Đại Học Công Nghệ Thông Tin TP

Hồ Chí Minh Để hoàn thành khóa luận này, tôi xin tỏ lòng biết ơn sâu sắc và gửi lời

cảm ơn chân thành đến Thày TS Nguyễn Gia Tuấn Anh, đã tận tình hướng dẫn, giúp

đỡ cho tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp

Tôi xin chân thành cảm ơn quý thày, Cô trong khoa khoa học máy tính và phòng sau đại học của Trường Đại Học Công Nghệ Thông Tin TP Hồ Chí Minh đã tận tình truyền đạt kiến thức, tạo điều kiện thuận lợi về mặt thủ tục cho hoạt động học tập và thực hiện khóa luận của tôi

Tôi cũng xin gửi lời cảm ơn tới các anh chị và các bạn lớp cao học khóa 8 đã giúp tôi rất nhiều trong quá trình học tập cũng như hoàn thành khóa luận

Cuối cùng, tôi xin được bày tỏ lòng biết ơn sâu sắc tới gia đình, bạn bè đã luôn động viên, khích lệ tinh thần để tôi có đủ nghị lực hoàn thành khóa luận thạc sỹ

TP Hồ Chí Minh, tháng 11, năm 2015

Trần Thị Yến Nhi

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan các kết quả tìm hiểu đưa ra trong khóa luận này dựa trên các kết quả thu được trong quá trình tìm hiểu của riêng tôi

Nội dung của khóa luận có tham khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí, website được liệt kê trong danh mục các tài liệu tham khảo

TP Hồ Chí Minh, tháng 11, năm 2015

Trần Thị Yến Nhi

Trang 4

LỜI MỞ ĐẦU

Với sự phát triển không ngừng nghỉ của ngành công nghệ thông tin, dữ liệu xung quanh chúng ta được tạo ra lớn hơn bao giờ hết Dữ liệu tăng lên rất nhanh, vượt qua giới hạn xử lý của các hệ quản trị cơ sở dữ liệu truyền thống Việc lưu trữ và khai thác lượng dữ liệu khổng lồ này để lọc ra được những dữ liệu hữu dụng quả là một thử thách lớn nhất mà người ta gặp phải trong xã hội hiện đại Các hệ cơ sở dữ liệu quan hệ (RDBM) hiện tại bộc lộ những yếu kém Do đó trong những năm gần đây, càng ngày càng có nhiều loại CSDL NoSQL được nghiên cứu và phát triễn, những CSDL này đặc biệt thích hợp cho các ứng dụng cực lớn và nhỏ, giảm thiểu tối đa các phép tính toán, tác vụ đọc-ghi với khả năng chịu tải, chịu lỗi cao nhưng chỉ đòi hỏi về tài nguyên phần cứng thấp

Trong luận văn này tôi sẽ từng bước tìm hiểu CSDL NoSQL và tập trung vào tìm hiểu sâu hơn về hệ quản trị CSDL MongoDB Từ kết quả tìm hiểu, tiến đến xây dựng ứng dụng mạng xã hội minh họa

Trong luận văn này sẽ từng bước thực hiện các bước theo trình tự sau :

 Tìm hiểu CSDL NoSQL, so sánh CSDL NoSQL và CSDL quan hệ truyền thống

 Tìm hiểu các loại CSDL NoSQL và đặc trưng giữa các loại CSDL này

 Tìm hiểu về hệ quản trị CSDL MongoDB

 Phân tích và xây dựng ứng dụng mạng xã hội minh họa

Khóa luận xây dựng một ứng dụng mạng xã hội để minh họa cho những kiến thức đã tìm hiểu được về NoSQL với đại diện MongoDB Trong ứng dụng, sử dụng ngôn ngữ lập trình ASP.Net để xây dựng ứng dụng, nhằm khai thác được những tính năng mạnh mẽ của ngôn ngữ lập trình này Ứng dụng chỉ mang tính minh họa nên chỉ đáp ứng được những tính năng cơ bản nhất của một ứng dụng mạng xã hội

Trang 5

MỤC LỤC

Chương 1: TỔNG QUAN 15

1.1 Tính khoa học và tính mới của đề tài - 15

1.2 Lý do chọn đề tài - 16

1.3 Mục tiêu nghiên cứu - 17

1.4 Đối tượng nghiên cứu - 17

1.5 Phạm vi nghiên cứu - 17

1.6 Phương pháp thực hiện: - 17

1.7 Dự kiến kết quả đạt được: - 18

1.8 Dự kiến cấu trúc luận văn sẽ thực hiện: - 18

Chương 2: C S D LI U NOSQL 19

2.1 NoSQL là gì - 19

2.2 Lịch Sử - 20

2.3 Kiến trúc lưu trữ của NoSQL - 20

2.3.1 Sơ lược 20

2.3.2 Một số đặc điểm 22

2.3.3 Kiến trúc lưu trữ 22

2.4 Các thuật ngữ cơ bản - 23

2.4.1 Phi lược đồ Schemaless 23

2.4.2 Lý thuyết C P 24

2.4.3 ase và CID 26

2.4.4 Nhất quán cuối Eventual consistency) 27

2.4.5 Điều khiển đồng thời đa phiên bản MVCC 27

2.4.6 Khả năng mở rộng và hiệu suất 28

Trang 6

2.5 Đặc điểm của cơ sở dữ liệu NoSQL - 30

2.6 Điểm khác biệt giữa NoSQL và SQL - 32

2.7 u và nhược điểm - 33

2.7.1 u điểm: 33

2.7.2 Nhược điểm: 34

Chương 3: C C LO I CSDL NOSQL 35

3.1 Cơ sở dữ liệu cặp khoá – giá trị Key value store - 35

3.1.1 Giới thiệu 35

3.1.2 Khảo sát cơ sở dữ liệu NoSQL Dynamo 36

3.1.3 Các sản ph m tiêu biểu của cơ sở dữ liệu cặp khoá – giá trị 37

3.2 Cơ sở dữ liệu hướng cột Wide Column Store column Families - 38

3.2.1 Giới thiệu 38

3.2.2 Cấu trúc của cơ sở dữ liệu hướng cột 39

3.2.3 u và Khuyết điểm 41

3.2.4 Các sản ph m tiêu biểu của cơ sở dữ liệu hướng cột 42

3.3 Cơ sở dữ liệu đồ thị Graph Databases - 42

3.3.1 Giới thiệu 42

3.3.2 Các sản ph m tiêu biểu của cơ sở dữ liệu đồ thị 44

3.4 Cơ sở dữ liệu tài liệu Document Store - 44

3.4.1 Giới thiệu 44

3.4.2 u và nhược điểm 46

3.4.3 Các sản ph m tiêu biểu 47

3.5 So sánh các loại cơ sở dữ liệu NoSQL - 47

3.5.1 Khả năng truy vấn 48

Trang 7

3.5.2 Quản lý đồng thời multiversion concurrency control 48

3.5.3 Phân vùng 49

3.5.4 Nhân rộng và Nhất quán 50

3.6 Lựa chọn hệ quản trị NoSQL thích hợp - 50

Chương 4: H QUẢN TRỊ CSDL MONGODB 53

4.1 Tổng quan - 53

4.1.1 Giới thiệu 53

4.1.2 Lịch sử phát triển MongoDB 53

4.1.3 Đặc điểm của MongoDB 54

4.2 Mô hình dữ liệu - 55

4.2.1 Cơ sở dữ liệu và bộ sưu tập (Collection) 55

4.2.2 Tài liệu (document) 57

4.2.3 Trường (field) và các kiểu dữ liệu 58

4.3 Thiết kế mô hình dữ liệu - 59

4.3.1 Mô hình dữ liệu nhúng ( embedded data model) 60

4.3.2 Mô hình dữ liệu tham chiếu 61

4.3.3 Mô hình quan hệ giữa các tài liệu (document) 63

4.3.3.1 Mối quan hệ một – một (one – to – one) giữa các tài liệu 63

4.3.3.2 Mô hình nhúng một- nhiều giữa các tài liệu 64

4.3.3.3 Mô hình tham chiếu One-to-Many mối quan hệ giữa các văn bản 65

4.4 Chỉ mục ( Index ) - 66

4.4.1 Tổng quan 66

4.4.2 Các loại chỉ mục 67

4.4.3 Thuộc tính của chỉ mục ( index properties) 70

Trang 8

4.5 Nhân rộng (Replication) - 72

4.5.1 Cấu trúc replica – set 73

4.5.2 Các bước triễn khai 73

4.6 Phân mảnh (Sharding ) - 74

4.6.1 Phân mảnh trong MongoDB 75

4.6.2 Phân tán dữ liệu 76

4.6.3 Phân tán dữ liệu cân bằng 77

4.6.5 Các bước cấu hình 78

4.7 Mô hình truy vấn - 78

CH NG 5: XÂY DỰNG ỨNG DỤNG MINH HO 84

5.1 Tổng quan - 84

5.1.1 Giới thiệu ứng dụng 84

5.1.2 Lý do chọn ứng dụng 84

5.2 Mô tả ứng dụng xây dựng trang mạng xã hội - 85

5.3 Chức năng của ứng dụng - 87

5.4 Mô tả chức năng ứng dụng - 90

5.4.1 Use Case 90

5.4.2 Mô tả Use Case 91

5.5 Thiết kế ứng dụng - 97

5.5.1 Các bộ sưu tập 97

5.5.2 Đánh chỉ mục 97

5.5.3 Nhân rộng 100

5.6 Xây dựng ứng dụng - 101

5.6.1 Giới thiệu ứng dụng 101

Trang 9

5.6.2 Giao diện của ứng dụng 101

5.6.3 Kiểm nghiệm đánh giá ứng dụng 105

Chương 6: KẾT LUẬN VÀ H ỚNG PHÁT TRIỂN 110

6.1 Một số kết quả đạt được - 110

6.1.1 Về mặt lý thuyết 110

6.1.2 Về mặt ứng dụng 110

6.2 Hướng phát triển - 111

TÀI LIỆU THAM KHẢO 112

Trang 10

DANH MỤC CÁC KÝ TỰ, CHỮ VIẾT TẮT

ACID :Atomicity, Consistency, Isolation, Durability

BASE :Basically Available, Soft-state, Eventual consistency

DBMS :Database Management System

NoSQL :Not only SQL

RDBMS :Relational Database Management System

CSDL : Cơ sở dữ liệu

API :Application Programming Interface

Trang 11

DANH MỤC CÁC BẢNG

Bảng 2.1: Bảng ví dụ minh họa về cặp khóa/giá trị - 21

ảng 2.2 : Lựa chọn các yếu tố C P thích hợp cho từng tình huống - 25

ảng 2.3: So sánh CID và SE - 27

Bảng 2.4: ảng tóm tắt sự khác biệt giữa NoSQL và SQL - 33

ảng 3.1: Ví dụ về gia đình cột của cơ sở dữ liệu hướng cột - 40

Bảng 3.2: Ví dụ về siêu cột - 41

Bảng 3.3 : Các đại diện của bốn loại CSDL - 47

Bảng 3.4: Bảng so sánh một số đại diện của 4 loại NoSQL - 50

Bảng 5.1: Bảng mô tả chức năng khởi tạo tài khoản - 91

Bảng 5.2: Bảng mô tả chức năng đăng nhập - 91

Bảng 5.3: Bảng mô tả chức năng quản lý thông tin owner - 92

Bảng 5.4: Bảng mô tả chức nănghiển thị thông tin owner - 92

Bảng 5.5: Bảng mô tả chức năngquản lý bài đăng - 93

Bảng 5.6: Bảng mô tả chức năngquản lý album ảnh - 93

Bảng 5.7: Bảng mô tả chức năngquản lý ảnh - 94

Bảng 5.8: Bảng mô tả chức năng quản lý bình luận - 94

Bảng 5.9: Bảng mô tả chức năng quảng lý “Like” - 95

Bảng 5.10: Bảng mô tả chức năng quản lý bạn bè - 95

Bảng 5.11: Bảng mô tả chức năng quản lý TimeLine - 96

Bảng 5.12: Bảng mô tả chức năng quản lý bảo mật - 96

Bảng 5.13: Bảng mô tả chức năng hiện thị danh sách bạn bè của owner - 97

Bảng 5.14: Danh sách các bộ sưu tập - 97

Bảng 5.15: Thông số hệ thống máy thực nghiệm ứng dụng - 105

Trang 12

Bảng 5.16: Kết quả đăng ký mới tài khoản thực hiện trên MongoDB - 106

Bảng 5.17: Kết quả đăng ký mới tài khoản thực hiện trên SQL Server 2014 - 106

Bảng 5.18: Kết quả đọc tài khoản từ dữ liệu CSDL MongoDB - 107

Bảng 5.19: Kết quả đọc tài khoản từ dữ liệu CSDL SQL Server - 107

Bảng 5.20: Kết quả thêm bài viết MongoDB - 108

Bảng 5.21: Kết quả thêm bài viết SQL Server 2014 - 108

Bảng 5.22: Kết quả đăng tải album vào hệ thống CSDL MongoDB - 109

Bảng 5.23: Kết quả đăng tải album vào hệ thống CSDL SQL Server 2014 - 109

Trang 13

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 2.1: iểu đồ tăng trưởng dữ liệu 19

Hình 2.2: Sơ đồ thiết kế hệ thống database Master –Slave 21

Hình 2.3: Các thuộc tính của CAP 25

Hình 2.4: Mở rộng quy mô với cơ sở dữ liệu quan hệ 29

Hình 2.5: Công nghệ mở rộng ra ngoài của NoSQL 30

Hình 3.1: Các loại cơ sở dữ liệu NoSQL 35

Hình 3.2: Ví dụ về cấu trúc của cơ sở dữ liệu cặp khoá – giá trị 36

Hình 3.3Column family 40

Hình 3.4 : Cơ sở dữ liệu đồ thị 43

Hình 3.5: Ví dụ minh hoạ cơ sở dữ liệu đồ thị 43

Hình 3.6: Cơ sở dữ liệu hướng tài liệu 45

Hình 3.7: Ví dụ về sự tương đồng giữa key values store và document store 45

Hình 3.8: Quan hệ giữa các loại dữ liệu NoSQL 51

Hình 4.1: Mô hình dữ liệu của MongoDB 55

Hình 4.2: Ví dụ về một collection 55

Hình 4.3 : Ví dụ về sự lưu trữ linh hoạt của collection 56

Hình 4.4: Ví dụ về tài liệu trong MongoDB 57

Hình 4.5: Sự đa dạng trong lưu trữ của tài liệu 57

Hình 4.6: Thêm một tài liệu vào bộ sưu tập 58

Hình 4.7: Minh hoạ hoạt động của MongoDB 58

Hình 4.8: Ví dụ về trường dữ liệu trong MongoDB 58

Hình 4.9: Tương quan giữa các khái niệm của SQL và MongoDB 59

Trang 14

Hình 4.10 : Mô tả các thành phần trong mô hình dữ liệu MongoDB 59

Hình 4.11: Minh họa mô hình dữ liệu nhúng 60

Hình 4.12: Minh họa mô hình dữ liệu tham chiếu 61

Hình 4.13: Mô tả chỉ mục đơn 67

Hình 4.14: Mô tả chỉ mục hỗn hợp 68

Hình 4.15: Mô tả chỉ mục đa khóa 69

Hình 4.16 Mô hình replica- set 3 thành phần 72

Hình 4.17 :Secondary thay thếprimary gặp sự cố 73

Hình 4.18: Mô hình replica- set có thành phần Arbiter 73

Hình 4.19: Minh họa mô hình sharding 75

Hình 4.20 : Mô hình một cụm sharded 75

Hình 4.21: Khóa phân mảnh theo phạm vi ảnh hưởng 76

Hình 4.22: Khóa phân mảnh dựa vào bản băm 77

Hình 4.23: Minh họa chia nhỏ trong phân tán dữ liệu cân bằng 77

Hình 4.24: Minh họa cân bằng trong phân tán dữ liệu cân bằng 78

Hình 5.1: Sơ đồ phân rã chức năng của friend 88

Hình 5.2: Sơ đồ phân rã chức năng của owner 89

Hình 5.3: Use case của Owner 90

Hình 5.4 : Usecase của Friends 90

Hình 5.5: Danh sách các bộ sưu tập của ứng dụng 100

Hình 5.6: Mô hình nhân rộng của ứng dụng 100

Hình 5.7: Giao diện đăng ký tài khoản mới 101

Hình 5.8: Giao diện đăng nhập hệ thống 101

Hình 5.9: Giao diện thông báo Timeline 102

Trang 15

Hình 5.10: Giao diện quản lý kết bạn 102

Hình 5.11: Giao diện them mới trạng thái 103

Hình 5.12: Giao diện thêm mới album ảnh 103

Hình 5.13: Giao diện hiển thị album ảnh 104

Hình 5.14: Giao diện bình luận về ảnh 104

Hình 5.15: Giao diện bình luận về trạng thái 105

Hình 5.17: Biểu đồ thời gian đáp ứng khi thêm mới tài khoản 106

Hình 5.18: Biểu đồ thời gian đọc tài khoản người dùng từ dữ liệu 107

Hình 5.19: Biểu đồ thời gian thêm bài viết vào trang mạng xã hội 108

Hình 5.20: Biểu đồ thời gian đáp ứng khi thêm album 109

Trang 16

Chương 1: TỔNG QUAN

Chúng ta đang sống trong một thời đại mới, thời đại phát triển rực rỡ của CNTT Tác động của CNTT đối với xã hội loài người vô cùng to lớn Sự phát triển và ứng dụng của Internet đã làm thay đổi mô hình và cách thức hoạt động kinh doanh của doanh nghiệp.CNTT đã ở một bước phát triển cao, đó là số hóa tất cả các dữ liệu thông tin, luân chuyển mạnh mẽ và kết nối tất cả chúng ta lại với nhau

Mọi loại thông tin, số liệu âm thanh, hình ảnh có thể được đưa về dạng kỹ thuật

số để bất kỳ máy tính nào cũng có thể lưu trữ, xử lý và chuyển tiếp cho nhiều người Đồng thời cùng với sự phát triển của mạng xã hội, đã cho phép người dùng tự do tạo các nội dung trên mạng xã hội, tốc độ tăng trưởng dữ liệu tràn lan đến chóng mặt do sự phát triển của công nghệ hàng ngày số lượng dữ liệu về hình ảnh, blog, cập nhật mạng

xã hội hàng ngày, tài liệu điện tử, tập tin nhạc và video được phát triển với một tốc độ nhanh chóng Dẫn đến dữ liệu tăng lên rất nhanh, vượt qua giới hạn xử lý của các hệ quản trị cơ sở dữ liệu truyền thống Việc lưu trữ và khai thác lượng dữ liệu khổng lồ này để lọc ra được những dữ liệu hữu dụng quả là một thử thách lớn nhất mà nhân loại gặp phải trong xã hội hiện đại

1.1 Tính khoa học và tính mới của đề tài

Các hệ cơ sở dữ liệu quan hệ (RDBM) hiện tại bộc lộ những yếu kém trong những tác

vụ như đánh chỉ mục một lượng lớn dữ liệu, phân trang, hoặc phân phối luồng dữ liệu media (phim, ảnh, nhạc ) CSDL quan hệ được thiết kế cho những mô hình dữ liệu không quá lớn trong khi các dịch vụ mạng xã hội lại có một lượng dữ liệu cực lớn và cập nhật liên tục do số lượng người dùng quá nhiều

CSDL NoSQL đặc biệt thích hợp cho các ứng dụng cực lớn (dịch vụ tìm kiếm, mạng xã hội ,… và nhỏ,giảm thiểu tối đa các phép tính toán, tác vụ đọc-ghi liên quan kết hợp với xử lý theo lô batch processing đảm bảo được yêu cầu xử lý dữ liệu của các dịch vụ mạng xã hội Hệ CSDL này có thể lưu trữ, xử lý từ lượng rất nhỏ đến hàng petabytes dữ liệu với khả năng chịu tải, chịu lỗi cao nhưng chỉ đòi hỏi về tài nguyên phần cứng thấp

Trang 17

Có rất nhiều hệ quản trị cơ sở dữ liệu NoSQL, tính đến thời điểm này có khoản

150 loại cơ sở dữ liệu NoSQL Tuy cùng mang những đặc điểm chung của NoSQL nhưng mỗi CSDL NoSQL cũng có những đặc điểm riêng và vì thế thường được dùng cho những dự án khác nhau đây trong phạm vi khóa luận, để tìm hiểu sâu hơn về các cơ sở dữ liệu hiện đại NoSQL, tôi xin tìm hiểu chi tiết hệ quản trị cơ sở dữ liệu đặc trưng là MongoD

MongoDB là 1 hệ thống CSDL mã nguồn mở được phát triển và hỗ trợ bởi 10gen, là CSDL NoSQL hàng đầu được hàng triệu người sử dụng Hiện nay MongoDB đang được sử dụng tại một số công ty lớn như: MTV Networks, Craigslist, Foursquare… MongoD là một cơ sở dữ liệu đang có tốc độ phát triển tốt và được sử dụng cho rất nhiều dự án công nghệ hiện nay Với ưu điểm là một hệ cơ sở dữ liệu mã nguồn mở, nên tiềm năng ứng dụng phát triển của MongoDB là rất lớn

MongoD thường được sử dụng cho các ứng dụng tầm trung và lớn, thường là các trang mạng xã hội Để mô phỏng các ứng dụng cơ sở dữ liệu NoSQL và hệ quản trị MongoDB Tôi tiến hành xây dựng một trang mạng xã hội được viết trên ngôn ngữ lập trình ASP.NET kết hợp cùng hệ quản trị cơ sở dữ liệu MongoDB Trang mạng xã hội được xây dựng thực hiện các chức năng cơ bản như: Tạo tài khoản, đăng nhập, kết bạn, cập nhật trạng thái, hình ảnh, bình luận về ảnh, bình luận về trạng thái, theo dõi bạn

bè, đăng tải thông tin trên trang chủ, thông báo khi có bình luận, tùy chỉnh bảo mật trạng thái, hình ảnh

1.2 Lý do chọn đề tài

Do những nhu cầu của thời đại, nên việc tìm hiểu và xây dựng các ứng dụng sử dụng

NoSQL là hết sức cần thiết, tôi quyết định chọn đề tài khóa luận “Tìm hiểu NoSQL –

MongoDB và xây dựng ứng dụng mạng xã hội” Đây là một đề tài rất hợp với su thế, sự

phát triển của công nghệ thông tin Khóa luận đóng một vai trò quan trọng trong việc cung cấp một cái nhìn mới về một cơ sở dữ liệu mang tính thời thượng, giúp phát triển các ứng dụng có lượng dữ liệu tầm trung hay cao, đặc biệt đối với các trang mạng xã hội

Trang 18

1.3 Mục tiêu nghiên cứu

Hiểu được các đặc điểm của NoSQL và sự khác biệt giữa NoSQL và SQL Nắm được kiến trúc lưu trữ của NoSQL, các loại cơ sở dữ liệu NoSQL, ưu và khuyết điểm của NoSQL Từ những đặc điểm riêng của các hệ quản trị NoSQL, từ đó có thể sử dụng các hệ quản trị NoSQL phù hợp với từng ứng dụng thích hợp Tìm hiểu MongoD và

so sánh với các hệ quản trị cơ sở dữ liệu khác Cũng như tìm hiểu các đặc trưng, cách thiết kế lược đồ, chỉ mục, sao chép và cách truy vấn trên hệ quản trị MongoD Từ những kiến thức trên, tiến hành xây dựng trang mạng xã hội minh họa với các tính năng cơ bản như: Tạo tài khoản, đăng nhập, kết bạn, đăng tải trạng thái, hình ảnh, bình luận thông báo khi có bình luận, tùy chỉnh bảo mật trạng thái, hình ảnh ằng ngôn ngữ lập trình SP.NET kết hợp với hệ quản trị cơ sở dữ liệu MongoD

1.4 Đối tượng nghiên cứu

Tìm hiểu tổng quan về cơ sở dữ liệu NoSQL, kiểm nghiệm và so sánh, đánh giá NoSQL với mô hình cơ sở dữ liệu quan hệ truyền thống (SQL Server) Tìm hiểu hệ quản trị MongoDB và so sánh với các hệ quản trị cơ sở dữ liệu NoSQL khác, từng bước tiến tới việc xây dựng một ứng dụng mạng xã hội minh họa dựa trên hệ quản trị

cơ sở dữ liệu NoSQL –MongoDB

1.5 Phạm vi nghiên cứu

Tìm hiểu về NoSQL và hệ quản trị cơ sở dữ liệu MongoD đồng thời tiến hành xây dựng ứng dụng mạng xã hội bằng để minh họa bằng MongoDB và ASP.NET

1.6 Phương pháp thực hiện:

- Tìm hiểu cơ sở dữ liệu NoSQL, các hệ quản trị cơ sở dữ liệu của NoSQL

- Tìm hiểu hệ quản trị cơ sở dữ liệu MongoDB, so sánh với các hệ quản trị cơ sở

dữ liệu NoSQL khác

- Phân tích, thiết kế trang mạng xã hội minh họa

- Xây dựng trang mạng xã hội thực hiện các chức năng cơ bản như: Tạo tài khoản, đăng nhập, kết bạn, cập nhật trạng thái, hình ảnh, bình luận về ảnh, bình luận về trạng thái, theo dõi bạn bè, đăng tải thông tin trên trang chủ

- Kiểm định, thí nghiệm trang mạng xã hội

Trang 19

- Đánh giá trang mạng xã hội, cho chạy thử và lấy ý kiến chuyên gia

1.7 Dự kiến kết quả đạt được:

Hiểu tổng quan về cơ sở dữ liệu NoSQL, kiểm nghiệm và so sánh, đánh giá NoSQL với mô hình cơ sở dữ liệu quan hệ truyền thống(SQL Server) Hiểu hệ quản trị MongoDB, trang mạng xã hội từng bước tiến tới việc xây dựng một ứng dụng mạng xã hội minh họa dựa trên hệ quản trị cơ sở dữ liệu NoSQL –MongoDB

1.8 Dự kiến cấu trúc luận văn sẽ thực hiện:

- Chương 1 : Tổng quan

- Chương 2: Cơ sở dữ liệu NoSQL Trình bày khái niệm cơ bản về khái niệm,

mục đích, cấu trúc, thành phần của cơ sở dữ liệu NoSQL Các loại hệ quản trị cơ

sở dữ liệu, kiến trúc và Kỹ thuật CAP

- Chương 3: Các loại cơ sở dữ liệu NoSQL

- Chương 4: Hệ quản trị cơ sở dữ liệu MongoDB

- Chương 5: Phân tích và xây dựng trang mạng xã hội Kết quả thu được là

trang mạng xã hội thực hiện các chức năng cơ bản như: Tạo tài khoản, đăng nhập, kết bạn, cập nhật trạng thái, hình ảnh, bình luận về ảnh, bình luận về trạng thái , theo dõi bạn bè, đăng tải thông tin trên trang chủ

- Chương 6:Kết luận và hướng phát triển

Trang 20

Chương 2: CƠ SỞ DỮ LIỆU NOSQL

2.1 NoSQL à g

NoSQL – Not Only SQL( không chỉ SQL , một thế hệ cơ sở dữ liệu mới không sử dùng mô hình dữ liệu quan hệ để quản lý dữ liệu NoSQL cólược đồ tự do schema-free Được thiết kế cho các mô hình lưu trữ dữ liệu phân tán với lượng dữ liệu khổng

lồ lên đến hàng petabytes Theo Eric Evans “trọng điểm của NoSQL là giải quyết các vấn đề mà RD MS không thể giải quyết được” 21 NoSQL là một thế hệ CSDL mới với các đặc điểm nổi bật như: không ràng buộc Non relation , phân tán Distribute),mã nguồn mở open source , có khả năng mở rộng theo chiều ngang Horizontal scalable , lược đồ tự do free schema , PI đơn giản Có thể lưu trữ xử lý dữ liệu từ một lượng rất nhỏ cho đến hàng petabytes trong một hệ thống chịu tải, chịu lỗi cao và đáp ứng thời gian thực [1][2][17]

NoSQL bao gồm hàng loạt các công nghệ CSDL khác nhau đã được phát triển để đáp ứng với nhu cầu gia tăng khối lượng dữ liệu, tần số truy cập và hiệu xuất xử lý, cùng với khả năng lưu trữ tiết kiệm Cơ sở dữ liệu quan hệ không được thiết kế để đáp ứng những thách thức về quy mô lưu trữ và khả năng xử lý nhanh nh n của các ứng dụng hiện đại này.[17]

Hình 2.1: iểu đồ tăng trưởng dữ liệu

Chú thích : Nguồn nghiên cứu UNECE

Trang 21

2.2 Lịch S

NoSQL đã có rất nhiều động lực thúc đ y sự phát triển, nhưng thật ra NoSQL không phải là một điều mới m hoàn toàn Thuật ngữ NoSQL đã được sử dụng bởi Carlo Strozzi trong năm 1998 như là tên của tập tin dựa trên cơ sở dữ liệu mà ông đang làm

Đó là tên gọi chung cho các cơ sở dữ liệu quan hệ nguồn mở nhỏ( lightweight open source relational database nhưng không sử dụng SQL cho truy vấn Đây là một cơ sở

dữ liệu quan hệ mà không có một giao diện SQL Như vậy nó không thực sự là một phần của phong trào NoSQL của chúng ta ngày nay.[12][1][3]

Thuật ngữ này lại nổi lên vào năm 2009 khi Eric Evans nhân viên của Rackspace, được u thác dự án Cassandra, giới thiệu lại thuật ngữ NoSQL khi Johan Oskarsson của Last.fm muốn tổ chức một hội thảo về cơ sở dữ liệu nguồn mở phân tán Eric Evans đã sử dụng “NoSQL” để đặt tên cho các đột biến hiện nay trong cơ sở dữ liệu phi quan hệ, thuật ngữ NoSQL thường được sử dụng với ý nghĩa là "không chỉ SQL"

để mô tả sự gia tăng của các dự án và sản ph m mới.[12]

2.3 Kiến tr c ƣu trữ của NoSQL

2.3.1 Sơ ƣợc

Các cơ sở dữ liệu quan hệ hiện tại đã bộc lộ những yếu kém trong việc đánh chỉ mục một lượng lớn dữ liệu, phân trang hoặc phân phối luồng dữ liệu media (phim, ảnh, nhạc Cơ sở dữ liệu quan hệ được thiết kế cho những mô hình dữ liệu nhỏ thường xuyên đọc viết trong khi các dịch vụ mạng xã hội Social Network Services lại có một lượng dữ liệu cực lớn và cập nhật liên tục do số lượng người dùng quá nhiều ở một thời điểm Thiết kế phân tán của NoSQL giảm thiểu tối đa các phép tính toán và nhập xuất liên quan, kết hợp với xử lý hàng loạt đủ để đảm bảo được yêu cầu xử lý dữ liệu của các mạng dịch vụ dữ liệu cộng đồng Facebook, Amazon là những ví dụ điển hình

về mạng xã hội[7][8] Về cơ bản, các thiết kế của NoSQL lựa chọn mô hình lưu trữ các tập dữ liệu theo cặp khoá - giá trị Bảng 2.1 ví dụ cặp khóa giá trị

Trang 22

ảng 2.1: ảng ví dụ minh họa về cặp khóa giá trị

hệ thống xử lý lượng lớn dữ liệu, thông thường người ta sẽ tách biệt cơ sở dữ liệu ra làm hai hoặc nhiều cơ sở dữ liệu như sơ đồ dưới đây:

Hình 2.2: Sơ đồ thiết kế hệ thống database Master –Slave

Ghi chú: Nguồn alexwilliams.ca

Một cơ sở dữ liệu (CSDL) phụ thuộc slave database đảm bảo vào ra liên tục, khi đạt tới ngưỡng thời gian hoặc dung lượng nhất định, CSDL phụ thuộc sẽ được gộp lại merge vào CSDL chủ(Master Database) có thiết kế tối ưu cho tác vụ đọc (read operation Mô hình đó cho phép tăng cường hiệu suất I/O - một trong những nguyên nhân chính khiến hiệu suất trở nên kém.[7][27]

Trang 23

2.3.2 Một số đặc điểm

- Tính mềm dẻo của dữ iệu

Cơ sở dữ liệu NoSQL cho phép bạn tự do thêm các trường JSON, mà không cần phải xác định những thay đổi Định dạng của dữ liệu được đưa vào có thể được thay đổi bất

cứ lúc nào, mà không làm gián đoạn ứng dụng

 Quản lý các lược đồ liên tục phát triển và siêu dữ liệu cho dữ liệu bán cấu trúc

và không cấu trúc, được tạo ra bởi nhiều nguồn khác nhau, là một vấn đề phức tạp Các giải pháp về dữ liệu lớn của NoSQL là một bước tiến đầu tiên trong việc xử lý dữ liệu thay đổi theo kích thước và độ lớn

2.3.3 Kiến tr c ƣu trữ

Cơ sở dữ liệu hướng cột Column Oriented database được xây dựng bằng các kiểu dữ liệu của cơ sở dữ liệu phi quan hệ non-relational database) Nó trở nên nổi tiếng là nhờ các kỹ sư của Google, facebbok, LinkedIn, mà ta có thể xem là nó là một cuộc cách mạng NoSQL.Tạo ra một sự nghi ngờ về vấn đề gom cụm không tốn kém phần cứng mà vẫn có thể nắm giữ một lượng lớn thông tin NoSQL trở nên thực tế và hiệu quả với những cơ sở dữ liệu thời gian, có 3 chức năng chính mà nó hiện rõ: dữ liệu được lưu trữ trong tập tin mạng hệ thống, nó có thể mở rộng cho nhiều máy, tập tin của

nó có thể rất lớn và được lưu trữ trong nhiều nút, chạy trên các máy tính riêng biệt Dữ liệu được lưu trữ theo cấu trúc cung cấp nhiều tiện ích hơn cấu trúc dữ liệu quan hệ truyền thống Lược đồ lưu trữ cần tính đến những hiệu quả của việc lưu trữ số lượng

Trang 24

lớn của dữ liệu được chia nhỏ Cung cấp cho việc thay đổi lược đồ mà không thay đổi bất kỳ cấu trúc nào bên dưới.[16][17]

- Làm việc với Column-Oriented Database Google‟s igtable và pache H ase,

một phần của Hadoop là hai phần của dữ liệu hướng đối tượng, nó là Hypertable và Cloudata, cách mỗi data lưu trữ rất đa dạng nhưng nó cũng có những nền tảng chung Những nhà phát triển hiện tại đã ăn sâu vào các hệ thống với những ràng buộc dữ liệu, được dạy trong trường học, dùng trong công việc, thường xuyên bàn luận và viết về nó, nền tảng về quan hệ dữ liệu RD MS được hình dung như một thực thể và ràng buộc dữ liệu trở nên không thể tách rời trong dữ liệu, do đó giải thích (column-oriented databases) từ những luận điểm của RDBMS Mọi người sẽ

cảm thấy dễ chịu như đang làm một RDBMS vậy [11][16]

- S dụng tab e và co oumn trong cơ sở dữ liệu quan hệ.Trong RDBMS, thuộc

tính được lưu trữ trong các bảng và cột, các cột định nghĩa ở trước và dữ liệu được

lưu trữ trong tất cả các cột cho tất cả các yếu tố hoặc hàng trong bảng [17]

2.4 Các thuật ngữ cơ bản

2.4.1 Phi ƣợc đồ Schema ess

Là một trong những lý do chính để chọn dùng cơ sở dữ liệu NoSQL Sự không tương thích giữa các mô hình quan hệ và cấu trúc bộ nhớ của dữ liệu đã đạt đỉnh điểm Các nhà phát triển đã chuyển hướng sang một hệ quản trị cơ sở dữ liệu hoàn toàn mới, bởi

vì cơ sở dữ liệu quan hệ không đủ linh hoạt.[11]

NoSQL cho phép lưu trữ bất kỳ dữ liệu nào Mặc dù cơ sở dữ liệu quan hệ có thể có chứa dữ liệu phi cấu trúc,nó vẫn không thể đáp ứng được nhu cầu Việc tối ưu hóa truy vấn thất bại khi sự tăng trưởng dữ liệu vượt mọi dự báo của các nhà phát triển Trong NoSQL, các nhà phát triển có thể biến các cơ sở dữ liệu thành một nơi để đổ dữ liệu

Dễ dàng sử dụng, điều này đã trở thành một giải pháp thay thế cho các cơ sở dữ liệu quan hệ, chiếm được cảm tình của người dùng và do đó nó là rất dễ dàng để có được

sự chấp nhận của các doanh nghiệp Các ứng dụng hỗ trợ NoSQL được phát triển nhanh hơn, không trở ngại với lưu lượng người dùng ngày càng nhiều hơn và hỗ trợ thực hiện các module mới hiệu quả hơn so với mô hình quan hệ Tại bất kỳ thời điểm

Trang 25

nào một module ứng dụng có thể được mở rộng bằng cách giới thiệu các kiểu dữ liệu

tự do Phát triển, thậm chí có thể cung cấp cho người sử dụng kiểm soát nhiều hơn dữ liệu của họ bằng cách giới thiệu các tùy chỉnh Phi lược đồ được NoSQL hỗ trợ vào các phút cuối cùng trước khi giới thiệu rộng khắp Nhưng điều này dẫn đến các lỗ hổng bảo mật trong việc kiểm soát truy cập của mô hình quan hệ đã bị bỏ qua NoSQL thiếu một

cơ chế bảo mật nghiêm ngặc Điều mà cơ sở dữ liệu đã làm rất tốt 7 8 [11]

Cấu trúc phi lược đồ vẫn có một lược đồ ngầm Cần phải có một số giả định về cấu trúc của dữ liệu sẽ được tạo ra, chẳng hạn như tên của các lĩnh vực Bất kỳ dữ liệu

mà không phù hợp với sơ đồ ngầm này sẽ không được thao tác đúng cách, dẫn đến sai sót Định nghĩa một lớp xác định các trường một cách hợp lý có thể sử dụng để chỉnh sửa nó Đây là một cách hiệu quả trong lược đồ.[8]

2.4.2 L thuyết CAP

Lý thuyết C P được giới thiệu bởi Tiến sĩ rewer đại học California vào năm 2000, trong bài phát biểu "addressing the trade-os in distributed systems và sau đó đã được công bố chính thức bởi Gilbert và Lynch[3] Theo lý thuyết C P trong một hệ thống lưu trữ dữ liệu phân tán chỉ có thể thoả mãn hai trong 3 thuộc tính sau :

- T nh s n c Availability ) trong mọi trường hợp khách hàng luôn luôn có thể đọc

và ghi dữ liệu trong cùng một khoảng thời gian

- Nhất quán Consistency )

- Khả năng chịu i ph n v ng( Partition tolerance ) Một cơ sở dữ liệu có khả năng

chịu lỗi phân vùng thoải mái đối với các vấn đề kết nối tạm thời và cho phép phân vùng các nút được tách ra

Một hệ thống có khả năng chịu lỗi phân vùng chỉ có thể cung cấp nhất quán mạnh

mẽ với việc cắt giảm tính sẵn có của nó, bởi vì nó có để đảm bảo rằng mỗi tác vụ viết, chỉ kết thúc nếu dữ liệu được nhân rộng đến tất cả các nút cần thiết, có thể không phải lúc nào cũng có một môi trường phân tán do lỗi kết nối hay các lỗi phần cứng

Trang 26

Hình 2.3: Các thuộc tính của C P

Phân loại trên CAP

Các hệ thống rất lớn sẽ phân vùng P tại một điểm nào đó Vì vậy việc xem xét chọn C

và A rất cần thiết Thông thường các hệ quản trị cơ sở dữ liệu truyền thống ưu tiên thuộc tính C hơn là A và P, tuy nhiên phần lớn các ứng dụng Web chọn A CAP phân loại các cơ sở dữ liệu NoSQL thành các cặp cơ bản: CA, AP và CP Với mỗi cặp có

những ưu điểm và nhược điểm nhất định Tương ứng với mỗi cặp sẽ có một số hệ thống được phát triển trên đó[7] Bảng 2.2 các tình huống lựa chọn các yếu tố CAP

ảng 2.2 : Lựa chọn các yếu tố C P thích hợp cho từng tình huống

Trang 27

- Các hệ thống CA (Consistent, Available Systems): Thiếu thuộc tính P, nên gặp vấn

đề về phân vùng (Partition) và việc tạo các bản sao (Replication)

- Một số hệ thống CA: Traditional RDBMSs like Postgres, MySQL, Aster Data ,

Greenplum, Vertica (column-oriented)

- Các hệ thống CP (Consistent, Partition-Tolerant Systems : Đảm bảo được tính nhất quán cũng như khả năng chịu lỗi phân vùng Tuy nhiên việc thiếu thuộc tính A sẽ

dễ dàng gặp vấn đề về tính sẵn có của hệ thống Một số hệ thống CP: igTable,

Hypertable, H ase kiểu cơ sở dữ liệu hướng cột MongoD , Terrastore cơ sở dữ liệu hướng tài liệu Redis, Scalaris, MemcacheD , erkeley D cơ sở dữ liệu cặp khoá – giá trị

- Các hệ thống AP (Available, Partition-Tolerant Systems : Đảm bảo được tính sẵn

dùng và khả năng chịu lỗi phân vùng Tuy nhiên tính nhất quán sẽ chịu một độ trễ

nhất định “eventually consistency” Một số hệ thống AP: Dynamo, Voldemort,

Tokyo Cabinet, K I kiểu cơ sở dữ liệu cặp khoá – giá trị Cassandra, CouchD , SimpleD , Riak cơ sở dữ liệu hướng tài liệu

2.4.3 Base và ACID

ACID là viết tắt của cụm từ Atomicity (nguyên tử), Consitency (nhất quán), Isolation (Cô lập), và Durability (Lâu bền).Trong cơ sở dữ liệu NoSQL, các nguyên tắc của các

mô hình ACID là quá mức cần thiết, trên thực tế nó đã cản trở hoạt động của các cơ sở

dữ liệu Xây dựng một CSDL với các đặt tính của CID là vô cùng khó khăn Đó là lý

do mà Consistency và Isolation bị thu hồi 3 6 7 8 Thay vào đó, NoSQL dựa vào một mô hình nh nhàng hơn, thích hợp hơn, và kết quả là chúng ta có phương pháp tiếp cận mới SE gồm ba nguyên tắc:

- Tính sẵn có cơ bản( Basic Availability)

- Trạng thái mềm( Soft State )

- Tính nhất quán cuối ( Eventual Consistency)

Tóm lại các thuộc tính ase như sau: một ứng dụng làm việc cơ bản tất cả thời gian (basically available), không phải là nhất quán tất cả các thời gian (soft-state nhưng sẽ đạt được trạng thái cuối nhất quán eventual consistency 3 Hệ thống SE cơ bản

Trang 28

đáp ứng được tính sẵn có và nhất quán cuối Mô hình này rất linh hoạt được cung cấp bởi NoSQL và là cách tiếp cận tương tự để quản lý và dữ liệu phi cấu trúc Các mô hình BASE không thích hợp cho mọi tình huống, nhưng nó chắc chắn là một lựa chọn linh hoạt thay thế cho các mô hình CID khi cơ sở dữ liệu không cần phải tuân thủ nghiêm ngặt như mô hình quan hệ Bảng 2.3 so sánh sự khác nhau giữa ACID và BASE

ảng 2.3: So sánh CID và SE

- Nhất quán mạnh - Nhất quán yếu

- Cô lập - Tính sẵn có đầu tiên

- Tập trung vào “commit” - Đơn giản

- Tính sẵn có yếu - Nhanh chóng

- Giải pháp khó áp dụng - Giải pháp dễ áp dụng

2.4.4 Nhất quán cuối Eventual consistency)

Theo lý thuyết C P cơ sở dữ liệu phân tán có thể là mạnh về tính nhất quán hoặc tính sẵn có.Do đó, hầu hết các cơ sở dữ liệu NoSQL chỉ có thể cung cấp tính nhất quán cuối Tính nhất quán cuối là Trong một trạng thái ổn định, hệ thống sẽ dần dần trả về kết quả tác vụ ghi cuối cùng 3 , không đảm bảo rằng các tiến trình có thể thấy cùng một phiên bản của các tập dữ liệu Ngay cả những tiến trình ghi các giá trị có thể có được thực hiện trên một phiên bản cũ trong cửa sổ không nhất quán Hành vi này thường được gây ra bởi sự sao chép của các dữ liệu trên các nút dữ liệu khác nhau[6][7][11]

2.4.5 Điều hiển đồng thời đa phi n bản MVCC

Kiểm soát đồng thời đa phiên bản Multiversion Concurrency Control) MVCC là một

phương pháp hiệu quả để cho nhiều tiến trình truy cập vào cùng một dữ liệu, một cách song song mà không làm phát sinh lỗi dữ liệu và khả năng deadlocks Đây là một thay

Trang 29

thế cho các phương pháp tiếp cận dựa vào khóa, nơi mọi quá trình đầu tiên đã yêu cầu một khóa duy nhất trên một mục dữ liệu, trước khi nó có thể được đọc hoặc cập nhật

MVCC được sử dụng ở một số cơ sở dữ liệu quan hệ và nhất là trong cơ sở dữ liệu phân tán Thay vì để cho mỗi quá trình truy cập các dữ liệu dành riêng trong một khoản thời gian nhất định, MVCC các tiến trình có thể đọc dữ liệu song song, thậm chí nếu một tiến trình cập nhật dữ liệu Để duy trì tính nhất quán, mỗi mục dữ liệu có một

số loại thời gian tạm hoặc sửa đổi Nếu một tiến trình đọc một mục dữ liệu, nó không chỉ nhận được giá trị của mục dữ liệu, tiến trình này cũng tiến hành rà soát mục lưu trữ sửa đổi của dữ liệu Nếu việc sửa đổi thực tế tại các cơ sở dữ liệu là như nhau, thì giá trị mới được viết và sửa đổi tại các mục dữ liệu được tăng lên Nhưng nếu việc sửa đổi trong cơ sở dữ liệu là không giống như các phiên bản đọc bởi tiến trình viết, sau đó phải có một tiến trình cập nhật các mục dữ liệu trong lúc đó

2.4.6 Khả năng mở rộng và hiệu suất

Các dữ liệu được lưu trữ trong một CSDL quan hệ với một cấu trúc cứng nhắc bởi cách

bố trí của các bảng, các mối quan hệ được thiết kế trước giữa các bảng và các kiểu dữ liệu của các cột Nếu cần thiết phải mở rộng quy mô một CSDLquan hệ, có thể chạy nó trên máy chủ mạnh mẽ hơn và chuyên biệt,các tổ chức thường mua các máy chủ tùy chỉnh, để thực hiện mở rộng cơ sở dữ liệu quan hệ của họ Tuy nhiên, quy mô vượt quá giới hạn nhất định, các cơ sở dữ liệu phải được phân phối trên nhiều máy chủ Ngoài

ra, CSDL quan hệ không được thiết kế để hoạt động với các phân vùng dữ liệu, vì vậy phân phối chức năng của họ là rất t nhạt Theo như phát biểu của Jon Travis, kỹ sư tại SpringSource “Dữ liệu ngày càng trở nên vô cùng to lớn, điều này làm chúng ta tìm kiếm các công nghệ khác” 18 Để đối phó với sự gia tăng sử dụng đồng thời và số lượng dữ liệu (Big Data), các ứng dụng và cơ sở dữ liệu cơ bản của họ cần phải có quy

mô sử dụng một trong hai lựa chọn: mở rộng qui mô scale up hoặc mở rộng phạm vi (scale out ) Mở rộng qui mô hàm ý một phương pháp tập trung liên quan đến máy chủ với công suất lớn hơn Nhân rộng ra ngụ ý một cách tiếp cận phân phối đó thúc đ y nhiều tiêu chu n, vật lý hoặc máy chủ ảo

Trang 30

Mở rộng quy mô là sự lựa chọn tự nhiên trong các ứng dụng với mô hình quan hệ.Sự lựa chọn này bị ảnh hưởng về cơ bản tập trung, chia s tất cả mọi thứ kiến trúc của cơ sở dữ liệu quan hệ Những đặc điểm của một cơ sở dữ liệu quan hệ làm cho việc

mở rộng ít khả thi hơn Để mở rộng quy mô các quản trị cơ sở dữ liệu phải thực sự c n thận về cách tạo và tổ chức các lược đồ và cấu trúc, tất cả những đặc điểm riêng liên quan đến một cơ sở dữ liệu quan hệ và các kết quả cuối cùng trong việc duy trì và triển khai theo cấp số nhân phức tạp hơn và ít có khả năng khôi phục lại Các RDBMS quy

mô đến thời điểm nhất định phải bổ sung thêm các máy chủ cơ sở dữ liệu phức tạp và gây ra một sự gia tăng mạnh chi phí hệ thống và giảm hiệu suất ứng dụng

Hình 2.4: Mở rộng quy mô với cơ sở dữ liệu quan hệ

Chú thích :Nguồn [35]

Cơ sở dữ liệu NoSQL đã được hình thành với mục tiêu đạt được phân tán, mở rộng

cơ sở dữ liệu.Sử dụng một cụm máy chủ tiêu chu n, vật lý hay ảo để lưu trữ dữ liệu và các hoạt động cơ sở dữ liệu hỗ trợ Để mở rộng, các máy chủ được thêm vào các cụm

dữ liệu và các hoạt động cơ sở dữ liệu được lan truyền trên khắp các cụm lớn hơn NoSQL sử dụng một cách tiếp cận dễ dàng hơn và cho các tuyến mở rộng cơ sở dữ Với sự gia tăng của người sử dụng, NoSQL chỉ cần thêm các máy chủ cơ sở dữ liệu mới vào các cụm khi đạt đến một ngưỡng nhất định Nó thường là một phần của cơ chế

cơ sở dữ liệu và do đó trừu tượng đi từ lớp ứng dụng Ứng dụng tiếp tục phục vụ người

sử dụng mà không gặp bất kỳ trở ngại hoặc thời gian chết Các ứng dụng luôn luôn nhìn thấy một hệ thống duy nhất (phân phối) không có vấn đề về số lượng vòng lặp

Trang 31

Mở rộng theo cách tiếp cận phân phối là ít tốn kém giữa hai lựa chọn thay thế Các máy chủ để hỗ trợ nhân rộng với yêu cầu khả năng chịu lỗi rất phức tạp trong thiết kế

và thường được tùy chỉnh được thực hiện để phục vụ kinh doanh cá thể Cơ sở dữ liệu NoSQL là thường là mã nguồn mở và chỉ chi một ít cho phí bảo trì, chạy liên tục ở thiết lập phân tán và tương đối r tiền Một cơ sở dữ liệu NoSQL tự động phân tán dữ liệu trên máy chủ, mà không yêu cầu ứng dụng tham gia và ảnh hưởng đến việc thiết kế các dữ liệu hoặc quá trình.Các máy chủ có thể được thêm vào hoặc lấy ra từ các lớp dữ liệu trên đường đi mà không gây gián đoạn dịch vụ

Hình 2.5: Công nghệ mở rộng ra ngoài của NoSQL

Chú thích :Nguồn [35]

Cơ sở dữ liệu NoSQL cũng hỗ trợ sao chép dữ liệu để đảm bảo tính sẵn sàng cao và

hỗ trợ khắc phục sự cố và sharding để tạo điều kiện ghi với quy mô lớn Đối với một số

cơ sở dữ liệu NoSQL ví dụ MongoD các sharding có thể được lập trình để cân bằng tải chỉ bắt đầu di chuyển dữ liệu khi một ngưỡng xác định trước được đáp ứng Điều này thúc đ y giám sát và làm cho quá trình dễ dàng hơn Couchbase tuyên bố "Một hệ thống cơ sở dữ liệu NoSQL được quản lý đúng cách nên không bao giờ được thực hiện offline, vì lý do nào, hỗ trợ các hoạt động liên tục 24x365 của các ứng dụng"

2.5 Đặc điểm của cơ sở dữ iệu NoSQL

Hầu hết các CSDL NoSQL điều có chung một số đặc điểm nổi bật Tất nhiên, NoSQL

là một khái niệm rất rộng và có rất nhiều hệ quản trị CSDL khác nhau, nhưng chúng

Trang 32

điều có nhiều hoặc ít hơn các đặc điểm này Tuy nhiên, có thể nói CSDL NoSQL có thể mang các đặc điểm như sau:

- M h nh dữ iệu phi quan hệ Non-relational): Bao gồm các mô hình dữ liệu

khác nhaunhưng nhìn chungcác mô hình này không có mối quan hệ ràng buộc lẫn nhau Có thể có những cấu trúc dữ liệu phức tạp hơn, nhưng nó không cứng nhắc như mô hình dữ liệu quan hệ Non-relational là khái niệm không sử dụng các ràng buộc dữ liệu cho nhất quán dữ liệu ở NoSQL database

- Lưu trữ ph n tán Distributed storage ): Hệ thống CSDL NoSQL được phân tán

sang nhiều máy tính khác nhau, để cung cấp dữ liệu cho người dùng Mỗi phần dữ liệu sau đó sẽ được nhân rộng trên một số lượng nhất định máy dự phòng với tính sẵn sàng đáp ứng cao Mô hình lưu trữ phân tán các tập tin hoặc dữ liệu ra nhiều máy tính khác nhau trong mạng LAN hoặc Internet dưới sự kiểm soát của phần mềm quản lý

- Nhất quán cuối( Eventual consistency): Tính nhất quán của dữ liệu không cần

phải đảm bảo ngay tức khắc sau mỗi tác vụ ghi Một hệ thống phân tán chấp nhận những ảnh hưởng theo phương thức lan truyền và sau một khoảng thời gian (không phải ngay tức khắc , thay đổi sẽ đi đến mọi điểm trong hệ thống, tức là cuối cùng (eventually) dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán

- Khả năng mở rộng chiều dọc ( Vertical scalable): Khi dữ liệu lớn về

lượng, phương pháp tăng cường khả năng lưu trữ và xử lý bằng việc cải tiến phần mềm và cải thiện phần cứng trên một máy tính đơn l được gọi là khả năng mở rộng chiều dọc

- Khả năng mở rộng chiều ngang ( Horizontal scalable): Khi dữ liệu lớn về lượng,

phương pháp tăng cường khả năng lưu trữ và xử lý là dùng nhiều máy tính phân tán Phân tán dữ liệu được hỗ trợ bởi phần mềm tức cơ sở dữ liệu Trong khi giá thành phần cứng ngày càng giảm, tốc độ xử lý, bộ nhớ ngày càng tăng thì mở rộng chiều ngang là một lựa chọn đúng đắn Hàng trăm máy tính nhỏ được gộp lại tạo thành một hệ thống tính toán mạnh hơn nhiều so với vi xử lý RISC truyền thống đơn l Mô hình này tiếp tục được hỗ trợ bởi các công nghệ kết nối Myrinet và

Trang 33

InfiniBand Từ đó chúng ta có thể quản lý, bảo trì từ xa, xây dựng batch procession (xử lý đồng loạt tập lệnh) tốt hơn Do những đòi hỏi về tốc độ xử lý I O cao, lượng cực lớn dữ liệu Mở rộng theo chiều ngang sẽ thúc đ y các công nghệ lưu trữ mới phát triển giống như object storage devices OSD

- Phi cấu tr c SchemaFree ) : Không cần thiết kế các bảng, các cấu trúc như của

SQL Thay vào đó chỉ cần lưu trữ các giá trị mới vào CSDL, không cần phải xác định cấu trúc trước

- Không hỗ trợ SQL

- Dữ liệu lớn Big Data)

- Dùng SE thay thế cho CID

- Triển hai inh hoạt Deployment Flexibility ): Việc bổ sung loại bỏ các node,

hệ thống sẽ tự động nhận biết để lưu trữ mà không cần phải can thiệp bằng tay Hệ thống cũng không đòi hỏi cấu hình phần cứng mạnh, đồng nhất.[7][8][11]

2.6 Điểm hác biệt giữa NoSQL và SQL

CSDL NoSQL giảm thiểu tối đa các phép tính toán, tác vụ đọc - ghi liên quan kết hợp với xử lý theo lô batch processing đảm bảo được yêu cầu xử lý dữ liệu của các dịch

vụ mạng xã hội Hệ CSDL này có thể lưu trữ, xử lý từ lượng rất nhỏ đến hàng petabytes dữ liệu với khả năngchịu tải, chịu lỗi cao nhưng chỉ đòi hỏi về tài nguyên phần cứng thấp

NoSQL thiết kế đơn giản, nh , gọn hơn so với RDBMs Ngoài bộ nhớ đệm, dung lượng thấp Các NoSQL dạng này đặc biệt thích hợp cho thiết bị cầm tay, nơi mà bộ nhớ và tốc độ xử lý hạn chế hơn so với máy tính thông thường Khi khối lượng dữ liệu cần lưu trữ và lượng dữ liệu vào/ra cực lớn, RD M đòi hỏi khắt khe và cao về phần cứng, chi phí thiết lập,chi phí vận hành đắt thì các mô hình lưu trữ phân tán trong NoSQL trở nên vượt trội Thiết kế đặc biệt tối ưu về hiệu suất các tác vụ đọc-ghi, ít đòi hỏi về phần cứng mạnh và đồng nhất, dễ dàng thêm bớt các node không ảnh hưởng tới toàn hệ thống Cùng khảo sát bảng tóm tắt sự khác biệt NoSQL và SQL trong bảng 2.4

Trang 34

ảng 2.4: ảng tóm tắt sự khác biệt giữa NoSQL và SQL

Các hệ CSDL

điển hình

Microsoft SQL Server, MySQL, Postgre, Oracle Database

MongoDB, Cassandra, Hbase, Neo4j

Mô hình dữ liệu Cấu trúc lưu trữ xây dựng trước khi lưu trữ dữ liệu

Không cần xây dựng sẵn cấu trúc lưu trữ, việc cần làm là tiến hành lưu trữ dữ liệu vào

Khả năng mở

rộng

Chỉ có thể mở rộng theo chiều dọc

Có thể mở rộng theo chiều dọc, chiều ngang đồng thời hỗ trợ công nghệ điện toán đám mây

Mã nguồn Cả đống và mở Chỉ có mã nguồn mở

H trợ Hỗ trợ tốt cho khách hàng Hỗ trợ trong một số trường với với một

mức độ nhất định

Thao tác với dữ

liệu Ngôn ngữ truy vấn SQL Thông qua các PI hướng đối tượng

Tính nhất quán Tính nhất quán cao

Một số sản ph m cung cấp tính nhất quán mạnh(MongoDB), một số cung cấp nhất quán cuối (Cassandra)

2.7 Ƣu và nhƣợc điểm

2.7.1 Ƣu điểm:

- Đáp ứng được sự tăng trưởng của dữ liệu lớn ig Data

- Truy xuất dữ liệu lớn với tốc độ cao

- Dữ liệu đa dạng, có cấu trúc, bán cấu trúc hoặc phi cấu trúc

- Dữ liệu phức tạp, được lưu trữ và quản lý tại các trung tâm lưu trữ khác

- Cần ít tài nguyên và phần cứng của máy chủ để triển khai

Trang 35

 MongoDB và Redis là những lựa chọn tốt cho việc lưu trữ các dữ liệu thống kê

ít được đọc mà lại được viết thường xuyên

 Hadoop, một CSDL dạng tự do, phân tán làm tốt công việc lưu trữ các dữ liệu lớn như các con số thống kê thời tiết hoặc công việc phân tích nghiệp vụ

 Memcache, một CSDL nhất thời chóng tàn, tuyệt vời trong lưu trữ các phiên làm việc web, các khóa, và các con số thống kê ngắn hạn

 Cassandra và Riak các lưu trữ dư thừa, tự động tạo bó cluster) làm tốt trong các môi trường với các ứng dụng có tính sẵn sàng cao, khi thời gian sống tối đa là mang tính sống còn

- NoSQL được các hãng lớn sử dụng: Các công ty như mazon, C, Facebook và Google dựa vào các CSDL NoSQL

- NoSQL phù hợp với công nghệ đám mây: NoSQL và đám mây là một sự trùng khớp tự nhiên, chúng có khả năng tận dụng được việc cung cấp mềm d o của đám mây

- Các CSDL NoSQL hầu hết sử dụng bộ nhớ qua ổ đĩa như là vị trí ghi đầu tiên - vì thế ngăn ngừa được sự thực thi không ổn định của I/O

2.7.2 Nhƣợc điểm:

- Hỗ trợ không đồng đều cho các doanh nghiệp

- Sự tin tưởng chưa cao đối với nhiều doanh nghiệp

- Những hạn chế về hiểu biết nghiệp vụ: Các CSDL NoSQL không có nhiều sự liên

hệ tới các công cụ I thường được sử dụng, trong khi những yêu cầu và phân tích hiện đại đơn giản nhất thì cũng liên quan khác nhiều tới sự tinh thông về lập trình

- Tính mới m của NoSQL có nghĩa là không có nhiều lập trình viên và người quản trị mà biết công nghệ này

- Những vấn đề về tính tương thích: Mỗi CSDL NoSQL có các giao diện lập trình ứng dụng API riêng của mình, các giao diện truy vấn độc nhất vô nhị, và những sự riêng biệt

- Khó khăn trong việc lưu trữ các dữ liệu mang nội dung nghiệp vụ phức tạp

Trang 36

Chương 3: CÁC LOẠI CSDL NOSQL

Tính đến thời điểm này có đến 150 loại CSDL NoSQL chia thành 13 mô hình lưu trữ

dữ liệu khác nhau, trong đó có 4 loại CSDL NoSQL thông dụng như: CSDL hướng cột (Wide Column Store/ColumnFamilies), CSDL cặp khoá – giá trị Key –Value Store/Tuple Store),CSDL đồ thị Graph Database ), CSDL hướng tài liệu Document Store )[1] Trong mỗi loại mô hình có các hệ quản trị CSDL đặc trưng như:

Hình 3.1: Các loại cơ sở dữ liệu NoSQL

Ghi chú: Trích nguồn [38]

Trong chương này, tôi sẽ trình bày 4 loại cơ sở dữ liệu đặc trưng của NoSQL: CSDL hướng cột, CSDLcặp khoá – gía trị, CSDLđồ thị, CSDLhướng tài liệu Cùng với các ưu và khuyết điểm của mỗi loại, cuối cùng là cách chọn một hệ quản trị cơ sở dữ liệu NoSQL phù hợp với mục đích sử dụng

3.1 Cơ sở dữ iệu cặp hoá – giá trị Key value store)

3.1.1 Giới thiệu

Cơ sở dữ liệu cặp khoá – giá trị tương tự như kiểu lược đồ hay từ điển, trong đó dữ liệu được xác định bằng một khoá duy nhất Giá trị (value) là một mảng byte chưa được

Trang 37

biên dịchvà được lưu dưới dạng BLOB (Binary large object), nó hoàn toàn không thểnhìn thấy trong hệ thống Khoá (key) là cách duy nhất lấy được giá trị đã lưu trữ.Các giá trị hoàn toàn tách biệt và không phụ thuộc vào nhau, quan hệ của chúng được quản lý bởi các ứng dụng logic Do cấu trúc dữ liệu rất đơn giản nêncơ sở dữ liệu cặp khoá – giá trị hoàn toàn không có lược đồ Giá trị mới có thể được thêm vào trong lúc hệ thống đang chạy mà không gây ra bất cứ xung đột dữ liệu nào và không ảnh hưởng đến hệ thống Việc sưu tập các cặp khoá –giá trị có thể thêm một số cấu trúc dữ liệu vào mô hình dữ liệu Cơ sở dữ liệu cặp khoá – giá trị hữu ích cho các xử lý đơn giản, chỉ phụ thuộc vào thuộc tính khoá [27]

Hình 3.2: Ví dụ về cấu trúc của cơ sở dữ liệu cặp khoá – giá trị

Một cơ sở dữ liệu cặp khoá – giá trị có hiệu suất rất tốt bởi vì mô hình truy cập dữ liệu được chú trọng rất nhiều vào việc tối ưu hóa, bất kể có bao nhiêu máy dùng để lưu trữ dữ liệu và dữ liệu có độ lớn như thế nào thì mô hình này vẫn đáp ứng được yêu cầu

3.1.2Khảo sát cơ sở dữ iệu NoSQL Dynamo

Khảo sát cơ sở dữ liệu NoSQL Dynamo để có cái nhìn tổng quan cho cơ sở dữ liệu cặp khóa- giá trị.Dynamo là một hệ cơ sở dữ liệu khoá – giá trị phân tán, được giới thiệu bởi mazon và được dùng trong các dịch vụ của hãng này Dynamo cung cấp PI truy vấn đơn giản, cho phép người dùng có thể tìm lại giá trị cho khoá và đặt chúng vào cặp khoá – giá trị để lưu trữ, kích thước hệ thống phải nhỏ hơn một megabyte

Hệ thống được thiết kế để làm việc trong một mạng lưới các nút, được xây dựng

từ phần cứng và giả lập rằng tại mỗi nút và mỗi kết nối mạng có thể lỗi bất cứ lúc nào

Nguyễn Văn , 28 16/10/2001 Đại Học CNTT

16789273

167297311

167829919

Trang 38

Mạng lưới các nút phải được tăng cường với những nút mới, và các nút cũ có thể bị thay thế.Khối lượng công việc được phân bổ t lệ thuận với khả năng của các nút Mỗi nút trong hệ thống sẽ có trách nhiệm như nhau, nên sẽ không có các nút chuyên dụng cho việc định tuyến, thay thế hay thiết lập

Để có thể tránh được tác hại từ các sự cố ảnh hưởng đến một số dữ liệu trung tâm,mỗi cặp khoá –giá trị sẽ được nhân rộng và lưu trữ phân tán trong các trung tâm dữ liệu toàn cầu Dynamo có thể hiệu chỉnh để đáp ứng giữa tính sẵn sàng, nhất quán, chi phí và hiệu năng để phù hợp với các loại hình dịch vụ khác nhau Cũng giống như một

số cơ sở dữ liệu phân tán, Dynamo dùng MVCC để đảm bảo tính nhất quán cuối Để đáp ứng được tất cả yêu cầu này, Dynamo phải kết hợp các công nghệ hiện có từ cơ sở

dữ liệu phân tán, mạng peer to peer và hệ thống mạng phân tán.[7][13][27]

Dynamo có 2 chức năng PI để truy vấn dữ liệu:

- Get key : Trả về một đối tượng có giá trị tương ứng với khoá hoặc một danh sách các đối tượng context và giá trị tương ứng của chúng Các đối tượng context có thể lưu trữ các metadata như giá trị

- Put key, context,value : Lưu dữ liệu được đính kèm theo khoá

Ƣu điểm

- Một lợi ích lớn nhất cho hầu hết các giải pháp NoSQL là có thể mở rộng theo chiều ngang (horizontal scalable)

- Lack- Schema: cho phép thay đổi dữ liệu khi cần, linh hoạt hơn

- Hỗ trợ nhất quán cuối Eventual Consistency , tính năng trong ứng dụng không cần

hỗ trợ đầy đủ CID

Khuyết điểm

Truy vấn đơn giản dùng các khoá trong cơ sở dữ liệu cặp khoá – giá trị thì rất dễ dàng,

vì nó đã được lập chỉ mục Tuy nhiên các truy vấn phức tạp hơn, gây rất nhiều khó khăn cần phải có sự hỗ trợ mã hoá từ các nhà phát triển ứng dụng

3.1.3 Các sản ph m ti u biểu của cơ sở dữ iệu cặp hoá – giá trị

- DynamoDB

Trang 39

- Azure Table Storage

- Oracle NOSQL Database

3.2 Cơ sở dữ iệu hướng cột Wide Column Store/column Families)

3.2.1 Giới thiệu

Cơ sở dữ iệu hướng cột Column Families Store hay Column Oriented Store) hệ cơ

sở dữ liệu cho phép truy xuất ngẫu nhiên, tức thời, với khả năng lưu trữ một lượng lớn

dữ liệu có cấu trúc Dữ liệu tồn tại dưới dạng bảng với hàng t bảng ghi và mỗi bảng ghi có thể chứa hàng triệu cột dữ liệu Cơ sở dữ liệu hướng cột được biết đến nhiều nhất thông qua triển khai igtable của Google với dự án “ Distributed storage system for managing structured data that is designed to scale to a very large size” igtable được sử dụng trong hơn 60 dự án của Google đòi hỏi cơ sở dữ liệu có hiệu suất cao và

độ trễ thấp

Hệ thống được triễn khai từ vài trăm cho đến hàng nghìn thiết bị, dẫn đến khả năng lưu trữ lên đến hàng petabyte nhưng vẫn đảm bảo hiệu suất cao Mô hình dữ liệu thưa thớt, phân tán, ánh xạ đa chiều bền vững Trong mô hình dữ liệu này một số lượng các cặp giá trị có thể được lưu trữ tuỳ ý trong các dòng, vì giá trị không được định nghĩa trong hệ thống, mối quan hệ giữa các bộ dữ liệu và kiểu dữ liệu chỉ là các chuỗi

và không được hỗ trợ Tương tự như với cơ sở dữ liệu cặp khoá – giá trị, các tính năng

bổ sung chỉ được thực hiện trong các ứng dụng logic

Do định dạng của các bảng, hàng, cột nên nhìn chung cơ sở dữ liệu hướng cột có nhiều điểm tương đồng với cơ sở dữ liệu quan hệ, nếu nhìn từ bên ngoài, nhưng thật sự

có nhiều khác biệt lớn từ bên trong Điểm khác biệt chính nằm ở việc xử lý giá trị

“null”.Khi xem xét nhiều trường hợp khác nhau của thuộc tính, cơ sở dữ liệu quan hệ

sẽ lưu trữ giá trị “null” trong mỗi cột một tập dữ liệu không có giá trị Ngược lại, cơ sở

Trang 40

dữ liệu hướng cột chỉ chứa một cặp giá trị trong mỗi dòng, nếu bộ dữ liệu cần nó Đây

là “sparse” theo Google, nó làm cho cơ sở dữ liệu hướng cột rất hiệu quả trong việc quản lý số lượng lớn dữ liệu với các thuộc tính khác nhau và được lưu trữ thành các cụm lớn

Ngoài ra, một trong những khác biệt đó chính khác là việc lưu trữ dữ liệu theo dòng trong cơ sở dữ liệu quan hệ) so với việc lưu trữ dữ liệu theo cột (trong column family databases Nhưng sự khác biệt lớn là ở chính khái niệm của nó Chúng ta không thể áp dụng cùng một giải pháp mà chúng ta sử dụng trong cơ sở dữ liệu quan

hệ vào trong cơ sở dữ liệu hướng cột Đó là bởi vì cơ sở dữ liệu cột (column family database) phi quan hệ.[17][22][27]

3.2.2 Cấu tr c của cơ sở dữ iệu hướng cột

- Columns & Column Families

Các thông tin được trình bày dưới đây là dựa theo cơ sở dữ liệu NoSQL Cassandra, và thuật ngữ có thể khác đôi chút giữa các phần khác nhau của phần mềm Tuy nhiên khái niệm chung là như nhau bất kể là hệ quản trị cơ sở dữ liệu hướng cột nào Một cột (column) là đơn vị cơ bản trong một hệ quản trị cơ sở dữ liệu hướng cột, một cột bao gồm một cặp khoá và giá trị

í dụ: Một cột có thể có giá trị “Tên” là khoá và giá trị là một chuỗi đại diện cho tên

người nào đó

Khóa Giá trị

Tên Nhi Trần Trong hầu hết các hệ thống, sẽ có thành phần thứ ba của dữ liệu để hỗ trợ cho cột

dữ liệu: một dấu thời gian sẽ được dùng để lưu lại thời gian khi thêm, xoá, sửa dữ liệu

và thời gian lưu lại sẽ là mốc thời gian gần nhất Chúng ta có thể bỏ qua dấu thời gian

để đơn giản hoá Không giống như với cơ sở dữ liệu quan hệ truyền thống, một cột trong cơ sở dữ liệu cơ sở dữ liệu hướng cột không được xác định trước, mà nó sẽ được tạo ra khi bạn thêm dữ liệu vào hệ thống

Ngày đăng: 23/12/2018, 06:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Đại học Khoa học Tự nhiên, Giáo trình H Cơ d li u Phân tán, Đại học Quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Giáo trình H Cơ d li u Phân tán
2. Nguyễn Ngọc Dũng, Nghiên cứu v NoSQL và ứngdụng t ong m i t ường h th ngl n, Trường ĐHCN– ĐHQGHN Sách, tạp chí
Tiêu đề: Nghiên cứu v NoSQL và ứngdụng t ong m i t ường h th ngl n
3. Nguyễn Thị Khuê ,Nghiên cứu phương ph p xây dựng storage engine cho h qu n tr cơ d li u MySQL,Trường ĐHCN– ĐHQGHN.Tài liệu tiếng Anh Sách, tạp chí
Tiêu đề: Nghiên cứu phương ph p xây dựng storage engine cho h qu n tr cơ d li u MySQL
2. Zambrano Brian (December, 2010),Building a Social Network with MongoDB, MongoSV Sách, tạp chí
Tiêu đề: Building a Social Network with MongoDB
3. Christof Strauch (2011), NoSQL Databases,University Hochschule der Medien, Stuttgart (Stuttgart Media University) Sách, tạp chí
Tiêu đề: NoSQL Databases
Tác giả: Christof Strauch
Năm: 2011
4. Opeyemi Michael Ajayi ( 2014 ), ARCHITECTURE PERSPECTIVE OF NOSQL - User Experience and Scalability of Cassandra and MongoDB , TURKU UNIVERSITY OF APPLIED SCIENCES Sách, tạp chí
Tiêu đề: Opeyemi Michael Ajayi ( 2014 ), "ARCHITECTURE PERSPECTIVE OF NOSQL - User Experience and Scalability of Cassandra and MongoDB
6. Keith W. HareKeith W. Hare , A Comparison of SQL and NoSQL Databases Sách, tạp chí
Tiêu đề: Keith W. HareKeith W. Hare
7. K. Orend (2010), "Analysis and Classification of NoSQL Databases and Evaluation of their Ability to Replace an Object-relational Persistence Layer," Master Thesis, Technical University of Munich, Munich Sách, tạp chí
Tiêu đề: Analysis and Classification of NoSQL Databases and Evaluation of their Ability to Replace an Object-relational Persistence Layer
Tác giả: K. Orend
Năm: 2010
8. Motahera Shermin, An Access Control Model for NoSQL Databases, The University of Western Ontario Sách, tạp chí
Tiêu đề: An Access Control Model for NoSQL Databases
9. MongoDB Documentation Project(Dec, 2014), Data Model Design for MongoDB,MongoDB, Inc Sách, tạp chí
Tiêu đề: Data Model Design for MongoDB
10. M. Adam (2011), "The NoSQL Ecosystem," in The Architecture of Open Source Applications Sách, tạp chí
Tiêu đề: The NoSQL Ecosystem
Tác giả: M. Adam
Năm: 2011
11. Robin Hecht and Stefan Jablonski, NoSQL Evaluation, University of Bayreuth Bayreuth, Germany, 2011 Sách, tạp chí
Tiêu đề: Robin Hecht and Stefan Jablonski, NoSQL Evaluation
12. R. Cattell, Scalable SQL and NoSQL Data Stores, ACM SIGMOD Record, vol. 39, December 2010 Sách, tạp chí
Tiêu đề: Scalable SQL and NoSQL Data Stores
13. PETTER NÄSHOLM, Extracting Data from NoSQL Databases A Step towards Interactive Visual Analysis of NoSQL Data, Department of Computer Science and Engineering Gửteborg - Chalmers University of Technology University of Gothenburg Sách, tạp chí
Tiêu đề: Extracting Data from NoSQL Databases A Step towards Interactive Visual Analysis of NoSQL Data
14. Yousaf Muhammad, Evaluation and Implementationof Distributed NoSQL Databasefor MMO Gaming Environment, Department of Information Technology- Uppsala universitet Sách, tạp chí
Tiêu đề: Evaluation and Implementationof Distributed NoSQL Databasefor MMO Gaming Environment
35. scale-up-vs-scale-out, http://blog.clustrix.com/2013/01/24/scale-up-vs-scale-out/ , accessed 23 Oc 2015 Sách, tạp chí
Tiêu đề: http://blog.clustrix.com/2013/01/24/scale-up-vs-scale-out/
15. A Brief History of NoSQL, http://blog.knuthaugen.no/2010/03/a-brief-history-of-nosql.html, 16 March 2010 Link
16. COLUMN ORIENTED DATABASES ,http://data-magnum.com/lesson-7-column-oriented-databases-aka-big-table-or-wide-column/ , accessed July 24, 2014 Link
17. Column (Family) Databases, http://ayende.com/blog/4500/that-no-sql-thing-column-family-databases , accessed July 24, 2014 Link
18. Computerworld: No to SQL? Anti-database movement gains steam. June 2009. – http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam Link

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w