Tải bản đầy đủ (.docx) (27 trang)

Tìm hiểu về NoSQL MongoDB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.56 MB, 27 trang )

ĐỒ ÁN TÌM HIỂU NOSQL
MONGODB

GVHD: Nguyễn Huy Khánh
Sinh viên thực hiện:
-

Nguyễn Mạnh Hùng _1141363

-

Nguyễn Phước Duy _1142016

-

Nguyễn Anh Khoa _1141375


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

MỤC LỤC
-----------------------------------------------------------------------------------------

A_Báo cáo chi tiết nội dung tìm hiểu.....................................................................3
I.

Giới thiệu NoSQL....................................................................................................3

II. Đặc điểm NoSQL.....................................................................................................3
III.



Lợi ích của NoSQL...............................................................................................4

IV.

Những hạn chế của NoSQL..................................................................................5

V. Giới thiệu MongoDB...............................................................................................7
VI.

Hướng dẫn cài đặt MongoDB...............................................................................9

VII. Làm Việc với MongoDB.....................................................................................15
1) Trên Command line.........................................................................................15
a. Liệt kê các CSDL hiện hành.....................................................................15
b. Chọn CSDL sử dụng và xem CSDL đó có bao nhiêu bảng.......................15
c. Hiển thị dữ liệu từ CSDL..........................................................................16
d. Thêm dòng vào cơ sở dữ liệu hiện hành...................................................16
e. Cập nhật một dòng trong cơ sở dữ liệu hiện hành.....................................17
f.

Xóa một dòng trên cơ sở dữ liệu hiện hành..............................................17

2) Trên Visual studio C#......................................................................................18
a. Kết nối đến Server....................................................................................18
b. Tạo cơ sở dữ liệu (Tên CSDL, các bảng)..................................................18
c. Thêm vào CSDL (insert)...........................................................................18
d. Sửa các dòng trên CSDL (update).............................................................19
e. Xóa các dòng trên CSDL (Delete)............................................................19
1



Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL
VIII. So sánh MongoDB với cơ sở dữ liệu quan hệ.....................................................20
IX.

Viết các ứng dụng nhỏ minh họa.........................................................................21
 Ứng dụng.........................................................................................................21

B_Bảng điểm tự đánh giá......................................................................................24

2


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

A_Báo cáo chi tiết nội dung tìm hiểu
I.

Giới thiệu NoSQL
-

NoSQL, viết tắt của non - relational, hoặc theo cách hiểu khác thì có nghĩa là Not

only SQL (không chỉ là SQL). NoSQL đặc biệt nhấn mạnh đến mô hình lưu trữ cặp
giá trị - khóa và hệ thống lưu trữ phân tán.
- 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.

NoSQL thiết kế đơn giản, nhẹ, gọn hơn so với RDBMs, thiết kế đặc biệt tối ưu về
hiệu suất, 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,…
-

NoSQL lựa chọn mô hình lưu trữ tập dữ liệu theo cặp giá trị key-value. Khái niệm

node được sử dụng trong quản lý dữ liệu phân tán. Với các hệ thống phân tán, việc
lưu trữ có chấp nhận trùng lặp dữ liệu. Một request truy vấn tới data có thể gửi tới
nhiều máy cùng lúc, khi một máy nào nó bị chết cũng không ảnh hưởng nhiều tới
toàn bộ hệ thống. Để đảm bảo tính real time trong các hệ thống xử lý lượng lớn, thông
thường người ta sẽ tách biệt database ra làm 2 hoặc nhiều database. Một database nhỏ
đảm bảo vào ra liên tục, khi đạt tới ngưỡng thời gian hoặc dung lượng, database nhỏ
sẽ được gộp (merge) vào database lớn có thiết kế tối ưu cho phép đọc (read operation)

II. Đặc điểm NoSQL
-

Phi quan hệ (hay không ràng buộc): Các mối quan hệ giữa các bảng trong cơ sở
dữ liệu quan hệ (RDBM) sử dụng mô hình gồm 2 loại khóa: khóa chính và khóa
phụ (primary key + foreign key) để ràng buộc dữ liệu nhằm thể hiện tính nhất
quán dữ liệu từ các bảng khác nhau. 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.

-

Lưu trữ phân tán: 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
khác nhau trong mạng LAN hoặc Internet dưới sự kiểm soát của phần mềm. Nhất
quán cuối: 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
3



Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL
mỗi phép 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 để cuối cùng dữ liệu trên hệ thống sẽ trở lại
trạng thái nhất quán.
-

Triển khai đơn giản, dễ nâng cấp và mở rộng.

-

Mô hình dữ liệu và truy vấn linh hoạt.

-

Lưu trữ theo văn bản.

-

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

-

Hỗ trợ đánh chỉ mục tất cả các thuộc tính (Full Index Support )

-


Có khả năng nhân rộng cao. Hỗ trợ nhân rộng, phân tán giữa các máy chủ để phục
vụ tốt khi phình dữ liệu.

-

Quy mô theo chiều ngang qua một kiến trúc tự động sharding.

-

Thực hiện các câu lệnh hỏi (query) dựa trên cơ sở văn bản.

-

Nhanh chóng cập nhật tại chỗ.

-

Linh hoạt trong tập hợp và sử lí dữ liệu.

-

Lưu trữ file có dung lượng bất kì mà không làm phức tạp ngăn xếp.

III. Lợi ích của NoSQL
-

Là mã nguồn mở và miễn phí:
o Các sản phẩm nguồn mở đưa ra cho những người phát triển với một vài lợi ích
lớn lao, trong đó có tình trạng không có chi phí của chúng.
o Những lợi ích khác: Phần mềm nguồn mở có xu hướng sẽ là tin cậy hơn, an

ninh hơn và nhanh hơn để triển khai so với các lựa chọn thay thế sở hữu độc
quyền.
4


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

o Các

hệ quản trị cơ sở dữ liệu NoSQL là Cassandra, CouchDB, Hbase,

MongoDB và Redis.
-

Phù hợp với các công nghệ mới như công nghệ đám mây:
o NoSQL và đám mây là một sự trùng khớp tự nhiên. Các máy chủ ngày nay là
không đắt và có thể dễ dàng mở rộng phạm vi được theo yêu cầu có sử dụng
một dịch vụ như là Amazon EC2. Giống như tất cả công nghệ đám mây, EC2
dựa vào ảo hóa. Liên kết yếu của ảo hóa là sự thực thi của I/O, với bộ nhớ và
CPU các các kết nối mạnh.
o Các cơ sở dữ liệu 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. Và vì NoSQL
lưu trữ dữ liệu thường thúc đẩy được tính mở rộng phạm vi theo chiều ngang
thông qua việc ngăn chia, 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ác hãng lớn tin dùng như: Các công ty như Amazon, BBC, Facebook và

Google dựa vào các cơ sở dữ liệu NoSQL.

IV. Những hạn chế của NoSQL
-

Nguồn mở vì thế có thể sẽ hỗ trợ không đồng đều cho các doanh nghiệp:
o Trong khi các nhà cung cấp chủ chốt của RMBMS như Oracle, IBM hay
Sybase đưa ra sự hỗ trợ tốt nổi tiếng cho các khách hàng doanh nghiệp cỡ vừa,
thì các doanh nghiệp nhỏ hơn, thường là các nhà cung cấp nguồn mở mới
thành lập không thể được mong đợi cung cấp được sự hỗ trợ có thể so sánh
được.
o Nhà cung cấp nguồn mở trung bình thiếu sự tiếp cận toàn cầu, các dịch vụ hỗ

-

trợ và sự tin cậy của một Oracle hay IBM.
Chưa đủ chín chắn cho các doanh nghiệp:
o Dù những triển khai của chúng tại một số công ty lớn, thì các cơ sở dữ liệu
NoSQL vẫn đối mặt với một vấn đề về sự tin cậy chính với nhiều doanh
nghiệp. Điểm sống còn đối với sự thiếu của NoSQL về độ chín muồi và các
5


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL
vấn đề về tính không ổn định có thể, trong khi trích ra tính chín muồi, giàu

-

chức năng và ổn định của các RDBMS được thiết lập đã từ lâu.

Hạn chế về tri thức nghiệp vụ:
o Có một vài câu hỏi xung quanh những khả năng về tri thức nghiệp vụ (BI) của
các cơ sở dữ liệu NoSQL. Liệu các cơ sở dữ liệu này có thể cung cấp dạng
phân tích dữ liệu lớn và mạnh mà các doanh nghiệp đã quen với các RDBMS?
Cần bao nhiêu sự tinh thông về lập trình cần có để tiến hành những truy vấn

o

và phân tích hiện đại?
Các câu trả lời là không tích cực. Các cơ sở dữ liệu NoSQL không có nhiều sự
đeo bám tới các công cụ BI 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 có liên quan khác nhiều tới sự tinh thông về
lập trình. Tuy vậy, các giải pháp là sẵn sàng. Quest Software, ví dụ, đã tạo ra
Toad cho các cơ sở dữ liệu đám mây, mà nó phân phối các khả năng truy vấn

-

hiện đại tới một số cơ sở dữ liệu NoSQL.
Thiếu sự tinh thông:
o Tính rất 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 - là cho khó khăn cho các công ty tìm
người với sự tinh thông phù hợp. Đối lại, thế giới của RDBMS có hàng ngàn
những người đủ tư cách.

-

Những vấn đề về sự tương thích:

o Không giống như các cơ sở dữ liệu quan hệ, các cơ sở dữ liệu NoSQL chia sẻ ít
theo cách thức của các tiêu chuẩn. Mỗi cơ sở dữ liệu 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. Sự thiếu hụt các tiêu chuẩn có nghĩa là nó không có khả
năng để chuyển một cách đơn giản từ một nhà cung cấp này sang một nhà cung
cấp khác.

6


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

V. Giới thiệu MongoDB

- MongoDB là một mã nguồn mở "document-oriented" NoSQL.
- MongoDB là một phần mới của gia đình NoSQL hệ thống cơ sở dữ liệu. Thay vì
lưu trữ dữ liệu trong bảng được thực hiện trong các cơ sở dữ liệu quan hệ "cổ
điển" thì MongoDB lưu trữ dữ liệu theo cấu trúc JSON với "schemas" (MongoDB
gọi với định dạng là BSON), làm cho dễ dàng hơn và nhanh hơn quá trình tương

-

tác với dữ liệu trong các loại ứng dụng nhất định.
Phát triển MongoDB bắt đầu vào tháng Mười năm 2007 bởi 10gen. Nó bây giờ là
một cơ sở dữ liệu phong phú tính năng trưởng thành và sẵn sàng để sử dụng.

-

Nó được sử dụng bởi MTV Networks [1], Craigslist [2] hoặc Foursquare [3].
Những chương trình có sẵn cho Windows, Linux, OS X, và Solaris.
Để xem các đặc trưng chính của MongoDB vào trang chính:

/>
- Hiện tại MongoDB hỗ trợ cho các ngôn ngữ dưới đây:
C
C++
Erlang
Haskell
Java
Javascript
.NET (C# F#, PowerShell, etc)
Perl
PHP
Python
Ruby
Scala
Ngoài ra có thể xem thêm ở đây: />
7


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL
-

Mục tiêu là kết hợp các điểm mạnh của mô hình key-values nhanh mà tính mở rộng
cao với mô hình dữ liệu quan hệ giàu chức năng.

-

Mục tiêu chính của Mongo là giữ lại các thuộc tính thân thiện của SQL. Do đó các
câu truy vấn khá giống với SQL nên MongoDB khá thích hợp cho các lập trình
viên đã quen với ngôn ngữ truy vấn SQL. MongoDB có một khối lượng tính năng

lớn và hiệu năng cao.Với các loại dữ liệu phong phú, nhiều truy vấn và việc giảm
thời gian phát triển trong việc mô hình hóa các đối tượng.

-

MongoDB được sử dụng tốt nhất với nhu cầu cần truy vấn động, nếu ta muốn định
nghĩa chỉ mục mà không cần các hàm map/reduce. Đặc biệt nếu ta cần tốc độ
nhanh cho một cơ sở dữ liệu lớn vì MongoDB ngoài tốc độ đọc nhanh ra thì tốc độ
ghi của nó rất nhanh.

-

Các đặc điểm chính của mongoDB là:
o Các truy vấn Ad hoc: Mongo hỗ trợ việc tìm theo trường, khoảng kết quả tìm
và tìm theo cú pháp. Các truy vấn có thể trả về các trường được qui định 16
trong văn bản và cũng có thể bao gồm các hàm Javascript mà người dùng
chưa định nghĩa.
o Đánh chỉ mục: Bất cứ một trường nào trong MongoDB đều được đánh chỉ
mục (giống như chỉ mục bên RMDBs).
o Mô phỏng (nhân bản): Mongo hỗ trợ mô phỏng Master-slave.Một master có
thể điều khiển việc đọc và ghi. Một slave tạo bản sao sữ liệu từ master và chỉ
được sử dụng cho việc đọc và backup (không có quyền ghi).Slave có khả năng
chọn ra một master mới nếu master cũ bị hỏng.
o Cân bằng tải: Mongo mở rộng theo chiều ngang bằng cách sử dụng sharding.
Các lập trình viên chọn các khóa chia sẻ nhằm xác định dữ liệu sẽ được phân
tán như thế nào. Dữ liệu sẽ được tách thành các khoảng dựa vào khóa và phân
tán dọc theo các Shard.
8



Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL
o Lưu trữ file: Mongo lưu trữ bằng file hệ thống, rất tốt cho việc cân bằng tải và
nhân bản dữ liệu.Trong cá hệ thống nhiều máy, các file được phân phối và
được sao ra rất nhiều lần giữa các máy một cách trong suốt. Do đó rất hiệu
quả trong việc tạo ra một hệ thống cân bằng tải.

VI. Hướng dẫn cài đặt MongoDB

- Tải MongoDB tại />
9


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL
-

Sau khi tải xong copy và giải nén. Ở đây chọn ổ c:\mongodb\bin

- Vào c:\mongodb\bin sẽ nhìn thấy các file của MongoDB cung cấp cho ta.

10


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

-

Bước tiếp theo tiến hành tạo 1 thư mục để chứ các csdl của MongoDB.

Ở đây ta tạo tiếp ở ổ C:\mongodb
 Tiếp đó tạo thêm 1 thư mục con ở bên trong có tên là "data".

 Tạo thư mục tên là "db" bên trong "data"
 Và đây sẽ là nơi chứa các cơ sở dữ liệu. (c:\mongodb\data\db)

11


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

-

Bước tiếp theo rất quan trọng và sẽ là file mà ta phải chạy nó để MongoDB có thể
hoạt động. Ta tạo ở một trình soạn thảo bất ký bất kỳ như "notepad" của win. và
copy nội dung sau:
C:\mongodb\bin\mongod.exe --dbpath=C:/mongodb/data/db

-

PAUSE
Tên thư mục đường dẫn có thể thay đổi tùy theo người dùng. Cuối cùng lưu dưới
dạng đuôi mở rộng là .bat

-

Sau khi xong thì ta chạy file.bat mà ta vừa tạo đó lên. Xuất hiện màn hình Console
như hình dưới đây là ta đã cài đặt thành công.


12


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

-

Lưu ý: Đây là tập tin chạy dùng để kết nối cơ sở dữ liệu. Ta không được tắt nó đi
trong quá trình kết nối.

13


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

-

Tạo biến môi trường: Phải chuột tại My Computer -> Properties -> Advanced and
Settings -> chọn tag Advanced -> chọn Environment variables -> Chọn Path dưới
System variable -> ghi thêm vào c:\mongodb\bin

14


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

- Để kiểm tra ta mở 1 cửa sổ Console khác để thực hiện tạo 1 cơ sở dữ liệu test.

Chạy file.bat trước sau đó mở cmd và gõ: mongo. Nếu hiện như hình trên là đã kết
nối thành công.

15


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

VII. Làm Việc với MongoDB
- Các khái niệm mới trong NoSQL

 Fields - tương đương với khái niệm Columns trong SQL
 Document - thay thế khái niệm row trong SQL. Đây cũng chính là khái
niệm làm nên sự khác biệt giữa NoSQL và SQL, 1 document chứa số cột
(fields) không cố định trong khi 1 row thì số cột(columns) là định sẵn
trước.
 Collection - tương đương với khái niệm table trong SQL. Một collection là
tập hợp các document. Điều đặc biệt là một collection có thể chứa các
document hoàn toàn khác nhau.
 Key-value - cặp từ khóa - giá trị được dùng để lưu trữ dữ liệu trong NoSQL
 Cursor - tạm dịch là con trỏ. Chúng ta sẽ sử dụng cursor để lấy dữ liệu từ
database.

1) Trên Command line
a. Liệt kê các CSDL hiện hành
Show dbs

-


Có thể tham khảo thêm ở command line: Gõ help

b. Chọn CSDL sử dụng và xem CSDL đó có bao nhiêu bảng
Use dbs
Ví dụ: use QLHocSinh_NoSQL

Ở đây CSDL QLHocSinh có 2 bảng là bảng HocSinh và bảng Lop.
-

Có thể tham khảo thêm ở command line: Gõ db.help()
16


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

c. Hiển thị dữ liệu từ CSDL
db.TenCSDL.find()
Ví dụ: db.QLHocSinh_NoSQL.find();

db.QLHocSinh.Lop.find();

Hiển thị dữ liệu bên trong bảng HocSinh và bảng Lop
-

-

Ngoài ra còn nhiều kiểu để ta có thể lấy dữ liệu từ CSDL ra như:
 db.TenCSDL.find().count()
 db.TenCSDL.find().limit(n)

 db.TenCSDL.find().skip(n)
 db.TenCSDL.find().sort(…)
 db.TenCSDL.findOne([query]).
 db.TenCSDL.findAndModify( {update:…, remove…., bool [,
query: {}, sort: {}, ‘new’:false] } ).
Có thể tham khảo thêm ở command line: gõ db.mycoll.help()

d. Thêm dòng vào cơ sở dữ liệu hiện hành
db.TenBang.insert()
Ví dụ: Thêm vào bảng Lop một lớp nữa là “10A1”
Gõ: db.Lop.insert( {TenLop:”10A1”} )

Có thể dùng cách khác để insert dử liệu như sau:

17


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

- Có thể tham khảo thêm ở command line: gõ db.mycoll.help()
e. Cập nhật một dòng trong cơ sở dữ liệu hiện hành
db.TenBang.update( {_id: ‘…’, ‘TenThuocTinhThayDoi’ : ’TenCu’},
{$set: {‘TenThuocTinhThayDoi’ : ’Ten Moi’} }, {upsert:true} )
Ví dụ: Thay đổi Lớp “10A1” thành lớp “11A2”
Gõ: db.Lop.update( {_id : ‘50f789a355b3042d7e23a0’, ‘TenLop’ :
‘10A1’}. {$set: {‘TenLop’:’11A2’}}, {upsert:true } )

- Có thể tham khảo thêm ở command line: gõ db.mycoll.help()
f. Xóa một dòng trên cơ sở dữ liệu hiện hành

db.TenBang.remove( {TenCotCanXoa : ’TenCanXoa’} )
Ví dụ: Xóa Lớp “10A1” trong bảng Lop
Gõ: db.Lop.remove( {TenLop : ‘10A1’} )

- Có thể tham khảo thêm ở />18


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

2) Trên Visual studio C#

a. Kết nối đến Server
-

Import thư viện

-

Kết nối tới Server

Mongo mongo = new Mongo();
mongo.Connect();

b. Tạo cơ sở dữ liệu (Tên CSDL, các bảng)
Mongo mongo = new Mongo();
mongo.Connect();
var db = mongo.GetDatabase("QLHocSinh_NoSQL"); //Tên CSDL được tạo ra
IMongoCollection collHocsinh = db.GetCollection("HocSinh"); //Tạo bảng HocSinh


- Chú ý rằng bên cạnh dữ liệu ta insert, còn có thêm 1 field là _id. Mỗi
document có 1 giá trị _id riêng. MongoDB sẽ tự động tạo nó cho bạn nếu
bạn không làm việc đó. Field _id mặc định sẽ được tạo index

c. Thêm vào CSDL (insert)
Mongo mongo = new Mongo();
mongo.Connect();
var db = mongo.GetDatabase("QLHocSinh_NoSQL"); //Tên CSDL được tạo ra
IMongoCollection collHocsinh = db.GetCollection("HocSinh"); //Tạo bảng HocSinh
Document docHocSinh = new Document();
docHocSinh["_id"] = hocsinh.strMaHS;
docHocSinh["TenHS"] = hocsinh.strTenHS;
docHocSinh["GioiTinh"] = hocsinh.strGioiTinh;
docHocSinh["NgaySinh"] = hocsinh.dtNgaySinh;
docHocSinh["NoiSinh"] = hocsinh.strNoiSinh;
docHocSinh["SoDienThoai"] = hocsinh.strSoDienThoai;
docHocSinh["Email"] = hocsinh.strEmail;
docHocSinh["TenLop"] = hocsinh.strTenLop;
collHocsinh.Insert(docHocSinh); //Thêm học sinh

19


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

d. Sửa các dòng trên CSDL (update)
Mongo mongo = new Mongo();
mongo.Connect();
var db = mongo.GetDatabase("QLHocSinh_NoSQL"); //Tên CSDL được tạo ra

IMongoCollection collHocsinh = db.GetCollection("HocSinh"); //Tạo bảng HocSinh
Document docHocSinh = new Document();
docHocSinh["_id"] = hocsinh.strMaHS;
docHocSinh["TenHS"] = hocsinh.strTenHS;
docHocSinh["GioiTinh"] = hocsinh.strGioiTinh;
docHocSinh["NgaySinh"] = hocsinh.dtNgaySinh;
docHocSinh["NoiSinh"] = hocsinh.strNoiSinh;
docHocSinh["SoDienThoai"] = hocsinh.strSoDienThoai;
docHocSinh["Email"] = hocsinh.strEmail;
docHocSinh["TenLop"] = hocsinh.strTenLop;
collHocsinh.Update(docHocSinh); //Cập nhật học sinh

e. Xóa các dòng trên CSDL (Delete)
Document docHocSinh = new Document();
docHocSinh["_id"] = "a1";
collHocsinh.Delete(docHocSinh);

- Xóa document thỏa mãn 1 điều kiện nào đó. Ở đây là có Mã học sinh là “a1”

20


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

VIII. So sánh MongoDB với cơ sở dữ liệu quan hệ

Biểu đồ gây tranh cải vể việc MongoDB chèn dữ liệu nhanh hơn SQL Sever tới hơn 100 lần

 MongoDB

 Dễ sử dụng và triển khai
 Hiệu quả cao
 Truy vấn nhanh

 MongoDB nhanh hơn SQL khoảng 30 – 50 lần.
 MongoDB vượt trội hơn hẳn so với SQL về hiệu suất (khoảng 3 lần)

21


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

IX.

Viết các ứng dụng nhỏ minh họa

 Ứng dụng: Quản lý học sinh cấp 3
 Chương trình bao gồm các chức năng:
 Xem danh sách sinh viên theo lớp hiện tại

22


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

 Thêm sinh viên vào lớp học hiện tại

 Chỉnh sửa sinh viên trong lớp học hiện tại


23


Khoa CNTN – Trường Đại Học Khoa Học Tự Nhiên
Đồ án tìm hiểu NoSQL

 Xóa sinh viên khỏi lớp học hiện tại

24


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×