Tải bản đầy đủ (.ppt) (48 trang)

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO Mô hình CSDL NoSQL và Ứng dụng

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 (897.32 KB, 48 trang )

Mô hình CSDL NoSQL
và Ứng dụng
Giảng viên : Nguyễn Hà Nam
Trình bày : Nguyễn Thành Trung
Nguyễn Minh Hà
Hà Nội, 29/02/2012
1/48
Nội dung

Giới thiệu NoSQL

Các vấn đề liên quan

NoSQL

Demo mô hình NoSQL

Nhận xét và đánh giá

Hỏi và đáp
2/48
Giới thiệu NoSQL

Bài toán

Làm sao đáp ứng nhu cầu dữ liệu ngày càng tăng?

Lịch sử phát triển

Năm 1988, Carlo Strozzi đưa ra tên gọi NoSQL


Năm 2009, Eric Evans giới thiệu lại NoSQL

Năm 2011, UnQL
3/48
Các vấn đề liên quan

Điện toán đám mây

Cloud Database
4/48
Điện toán đám mây
Là một dịch vụ hơn là một sản phẩm !!!
5/48
Điện toán đám mây

Cấu trúc gồm 2 phần
6/48
Điện toán đám mây

Phân thành các tầng
Tầng dịch vụ
Tầng hệ thống
Tầng cơ sở hạ
tầng
7/48
Cloud Database

Chạy trên nền tảng điện toán đám mây

Hai mô hình triển khai


Dùng cơ chế máy ảo

Dùng như một dịch vụ

Sử dụng hai mô hình dữ liệu

SQL

NoSQL
8/48
Cloud Database
Virtual Machine Deployment Database as a Service
SQL Data Model

Oracle Database
[1][9]

IBM DB2
[10]

Ingres (database)
[11]

PostgreSQL
[12]

MySQL
[13]


Amazon Relational Database Service (MySQL)

Microsoft SQL Azure (MS SQL)
[14]

Heroku PostgreSQL as a Service (shared and
dedicated database options)
[15]

Xeround Cloud Database - MySQL front-end
[2]

EnterpriseDB Postgres Plus Cloud Database
[16]
NoSQL Data Model

CouchDB on Amazon EC2
[17]

Hadoop on Amazon EC2
[18]

Apache Cassandra on Amazon EC2
[19]

Neo4J on Amazon EC2
[20]
or Microsoft Azure
[21]


MongoDB on Amazon EC2
[22]
or Microsoft Azure
[23]

Amazon SimpleDB

Database.com by SalesForce
[24]

Google App Engine Datastore

CouchDB Hosted Database
[25]

MongoDB Database as a Service (several
options)
[26]
9/48
NoSQL

Định nghĩa

Kiến trúc

Tính chất

Phân loại
10/48
Định nghĩa

“Cơ sở dữ liệu thế hệ tiếp theo chủ yếu giải
quyết một trong số các điểm: là một cơ sở dữ
liệu không có ràng buộc, phân tán, mã nguồn
mở, và có khả năng mở rộng theo chiều ngang
có thể lưu trữ, xử lý một lượng rất nhỏ cho tới
hàng petabytes dữ liệu trong hệ thống có thể
chịu tải, chịu lỗi cao với những đòi hỏi về tài
nguyên phần cứng thấp”
11/48
Kiến trúc

Không đánh chỉ mục, phân trang, phân
luồng dữ liệu đa phương tiện

Được dùng cho lượng dữ liệu lớn, cập
nhật liên tục

Giảm thiểu phép tính toán liên quan I/O
kết hợp xử lý theo lô
12/48
Kiến trúc

Lưu trữ dữ liệu theo cặp giá trị key/value

Sử dụng khái niệm “Node” trong quản lý dữ
liệu phân tán

Một request dữ liệu được gửi đến nhiều máy
một lúc


Một database nhỏ đảm bảo tính vào ra liên
tục, khi đạt tới ngưỡng thời gian hoặc dung
lượng thì gộp lại thành database lớn hơn
13/48
Tính chất

High Scalability

Gần như không có một giới hạn cho dữ liệu và
người dùng trên hệ thống.

High Availability

Do chấp nhận sự trùng lặp trong lưu trữ nên nếu
một node nào đó bị chết cũng không ảnh hưởng
tới toàn bộ hệ thống.

Atomicity

Độc lập trạng thái dữ liệu trong các hành động
14/48
Tính chất

Consistency

Chấp nhận tính nhất quán yếu, cập nhật mới
không đảm bảo rằng các truy xuất sau đó thấy
ngay được sự thay đổi. Sau một khoảng thời gian
lan truyền thì tính nhất quán cuối cùng của dữ liệu
mới được đảm bảo.


Durability

Dữ liệu có thể tồn tại trong bộ nhớ máy tính
nhưng đồng thời cũng được lưu trữ lại đĩa cứng.
15/48
Tính chất

Deployment Flexibility

Việc bổ sung thêm/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.

Modeling flexibility

Key-Value pairs, Hierarchical data (dữ liệu cấu trúc),
Graphs.

Query Flexibility

Multi-Gets, Range queries (load một tập giá trị dựa vào
một dãy các khóa).
16/48
Tính chất
So sánh giữa MongoDB và SQL Server 2008
17/48
Phân loại


Có rất nhiều tiêu chí phân loại như:

Interfaces, Logical Data Models, Data Distribution
Model, Data Persistence

Logical Data Model

Wide Column Store / Column Families

Document Store Internal

Key-Value Store

Graph Database
18/48
Wide Column Store / Column
Families

Hệ cơ sở dữ liệu phân tán 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 cực
lớn dữ liệu có cấu trúc. Dữ liệu có thể tồn tại dạng
bảng với hàng tỷ bản ghi và mỗi bản ghi có thể chứa
hàng triệu cột

Ứng dụng sử dụng cấu trúc lưu trữ dạng cột:
Hadoop/HBase – Apache, BigTable – Google,
Cassandra - Facebook/Apache, Hypertable - Zvents
Inc/Baidu, Cloudera, SciDB, Mnesia, Tablets,…
19/48
Wide Column Store / Column

Families
Một ví dụ về cơ sở dữ liệu quan
hệ
Khi dữ liệu tăng theo thời gian
20/48
Wide Column Store / Column
Families

Column – Family

Không phải là một cột là mà một tập hợp các cột
(co thể có quan hệ logic với nhau) nhóm lại thành
một bó

Các thành viên của cùng một Column – Family thì
được lưu trữ vật lý cùng nhau

Ví dụ về column-family trên gồm: name,
location và preference
21/48
Wide Column Store / Column
Families

Column – Family

Chứa bất kỳ số cột, và mỗi cột có thể chứa bất kỳ
một loại dữ liệu nào (có thể hiểu như là một mảng
các bytes dữ liệu)

Mỗi hàng chỉ lưu các giá trị hợp lệ (là các giá trị

khác Null)
22/48
Wide Column Store / Column
Families
Ví dụ về mô hình RDBMs sẽ có dạng Column-Family như trên
23/48
Wide Column Store / Column
Families

Trong lưu trữ vật lý

Dữ liệu dạng cột được thiết kế để có thể dễ dàng thay đổi
kích thược hoặc thêm hàng triệu các cột hoặc hàng tỷ các
hàng dữ liệu mới.

Một bảng có thể được kéo dài trên nhiều máy tính.

Một row-key duy nhất để xác định một hàng trong dữ liệu
dạng cột.

Các hàng được sắp xếp và chia thành từng bó, chứa các giá
trị liền nhau như là sự phát triển của dữ liệu
24/48
Wide Column Store / Column
Families
Tổ chức trong Lưu trữ vật lý
25/48

×