Cơ sở dữ liệu NoSQL là Cơ sở dữ liệu được xây dựng dành riêng cho mô hình dữ liệu và có sơ đồ linh hoạt để xây dựng các ứng dụng hiện đại.. Key-value database tiêu biểuRiak là một loại
Trang 1Chương 2
Cơ sở dữ liệu NoSQL
Trang 2Nhóm 2
Trang 3Cơ sở dữ liệu NoSQL là Cơ sở
dữ liệu được xây dựng dành riêng cho mô hình dữ liệu và
có sơ đồ linh hoạt để xây dựng các ứng dụng hiện đại Cơ sở
dữ liệu NoSQL được công nhận rộng rãi vì khả năng dễ phát triển, chức năng cũng như hiệu năng ở quy mô lớn.
Trang 4Các thành phần của hệ
thống cơ sở dữ liệu
NoSQL
Trang 5Mô hình dữ liệu truy cập và quản lý dữ liệu
Trang 6Hệ thống lưu trữ phân tán
Độ chịu tải cao
Độ chịu lỗi cao Yêu cầu về tài nguyên phần cứng thấp
Trang 74 loại hệ thống NoSQL phổ biến
Trang 8Các kỹ thuật lưu trữ dữ liệu
NoSQL
Trang 9Như trình bày ở trước, dữ liệu được lưu ở dạng cặp khoá/ giá trị được thiết kế xử lý nhiều dữ liệu và tải nặng.
2.1 Key-value database
Trang 10NoSQL API
Trang 11Lưu trữ thông tin
“1234” => “Thanh Huy,zxthanhhuy@gmail.com”
“1235” => “Minh Ánh,leminhanh@gmail.com,TP HCM”
“1236” => “Thanh Nghị” “1237” => “Trường Giang,Bình Thuận”
Đơn giản hơn rất nhiều trong việc xây dựng, khả năng mở rộng là cực kỳ linh động Khó khăn trong việc trong việc xử lý những dữ liệu phức tạp
HQT CSDL dạng Key-value là đơn giản hóa việc lưu trữ dữ liệu
Dễ dàng và nhanh chóng truy xuất được thông tin thông qua key
hiệu suất cho các thao tác truy vấn dữ liệu cũng cực nhanh.
Trang 13Key-value database tiêu biểu
DynamoDB là môt dịch vụ quản lý NoSQL có khả năng đáp ứng hiệu suất cao và
nhanh kèm theo khả năng mở rộng. Nếu bạn là một nhà phát triển, bạn có thể sử
dụng DynamoDB để tạo ra một bảng có khả năng lưu trữ và truy xuất bất kỳ số
lượng dữ liệu, mà vẫn có thể phục vụ cho bất kỳ mức độ request traffic
Trang 14Key-value database tiêu biểu
Riak là một loại cơ sở dữ liệu phân tán được xây dựng bởi Basho Technology
để có thể tối đa hóa quá trình chuyển dữ liệu tới người dùng qua nhiều
server
Trang 15Key-value database tiêu biểu
Redis (REmote DIctionary Server) là một mã nguồn mở được dùng để lưu trữ dữ liệu
có cấu trúc, có thể sử dụng như một database, bộ nhớ cache hay một message broker
Trang 16Dữ liệu được lưu trong database dưới dạng các cột, thay vì các hàng Các hàng trong một bảng sẽ có số lượng cột khác nhau Lệnh truy vấn của nó khá giống SQL.
2.2 Column-based database
Trang 17Colum Family
Trang 18Super Column
Trang 19Column
Trang 20Thuận lợi
Xử lý nhanh các query aggregation (COUNT, SUM, AVG, MIN, MAX)Hiệu quả cao khi nén, phân vùng, dễ scale và duy trì hệ thống
Trang 21Ứng dụng
Ghi một số lượng lớn dữ liệu, big data Ứng dụng trong ứng dụng ecommerce
Trang 22Column-based database tiêu biểu
Hypertable là một dự án phần mềm mã nguồn mở nhằm triển khai hệ thống quản lý cơ
sở dữ liệu lấy cảm hứng từ các ấn phẩm về thiết kế Bigtable của Google
Trang 23Column-based database tiêu biểu
Apache Cassandra là một hệ thống quản lý cơ sở dữ liệu NoSQL, miễn phí và mã nguồn mở, phân tán, được thiết kế để xử lý lượng lớn dữ liệu trên nhiều máy chủ, cung cấp tính sẵn sàng cao mà không có điểm lỗi nào.
Trang 24Document store, hay còn gọi là hệ thống database hướng document (document-oriented) là một kiểu database mà ở đó data được tổ chức một cách tự do không theo một lược đồ nào cả (schema-free) Mô hình là 1 loại lưu trữ key-value: mỗi document có 1 khóa định danh duy nhất và document chính là value.
2.3 Document store
Trang 25Mỗi document là một bản ghi (tương ứng với 1 row trong hệ quản trị cơ sở dữ liệu quan hệ), document có thể lưu dưới dạng JSON, XML…
2.3 Document store
Trang 26Trong thực tế, một định dạng tệp thường được sử dụng cho các tài liệu
và thông tin được sắp xếp theo một cấu trúc nhất định Điều này giúp làm việc với thông tin và cơ sở dữ liệu dễ dàng hơn
2.3 Document store
Có thể thực hiện các hành động tương tự trong cơ sở dữ liệu dựa
trên tài liệu như với CSDL quan hệ: thông tin có thể được thêm,
thay đổi, xóa và truy vấn
Trang 27Dữ liệu không schema cứng
như SQL, do đó ta có thể
thêm/sửa field, thay đổi table,
rất nhanh và đơn giản
Ưu điểm
Trang 28⮚ Document database thường đóng vai trò làm database cho các ứng dụng prototype, big data, e-commerce, CMS
⮚ Dùng để lưu log hoặc history
Ứng dụng
Trang 29Một số Document Database tiêu biểu
Apache Software Foundation đã phát hành phần mềm mã nguồn mở CouchDB Hệ thống quản lý cơ sở dữ liệu được viết bằng Erlang, sử
dụng JavaScript và được sử dụng trong các ứng dụng Ubuntu và Facebook cùng những ứng dụng khác
Trang 30MongoDB cho đến nay là cơ sở dữ liệu NoSQL phổ biến nhất Phần
mềm được viết bằng C ++ và sử dụng các tài liệu giống JSON
Một số Document Database tiêu biểu
Trang 31mây của công ty. Nhà cung cấp tính phí sử dụng.
Một số Document Database tiêu biểu
Trang 32Lưu trữ cả các thực thể lẫn các mối quan hệ Mỗi thực thể được là một node Mỗi cạnh là một mối quan hệ Mối quan hệ có thể là một chiều hoặc hai chiều Các node và cạnh có một mã định danh duy nhất.
Cơ sở dữ liệu Đồ thị có bản chất là đa quan hệ Mối quan hệ truyền tải nhanh chóng vì chúng đã được ghi lại vào DB và không cần phải tính toán chúng
2.4 Graph-Based database
Trang 33Có nhiều cách biểu diễn cấu
trúc dữ liệu của đồ thị như
Trang 34Với ma trận kề, ta phải biểu diễn 2 ma trận khác nhau, mỗi ma trận có kích thước NxN với N là số Node và giá trị (X,Y) thể hiện 1 mối quan hệ
Trang 35Một số dạng đồ thị khác
Trang 36⮚ Khi cần truy vấn các mối quan hệ, graph database truy vấn nhanh
và dễ hơn nhiều so với các loại database khác
⮚ Được dùng trong các hệ thống: mạng nơ ron, | chuyển tiền bạc, mạng xã hội (tìm bạn bè), giới thiệu sản phẩm (dựa theo sở thích/lịch sử mua sắm của người dung
: - Thiếu tính đồng thời hiệu suất cao (high performance
concurrency)
- Thiếu ngôn ngữ chuẩn
-Thiếu tính song song (parallelism)
Ứng dụng
Trang 37⮚ Thiếu tính đồng thời hiệu suất cao (high performance concurrency)
⮚ Thiếu ngôn ngữ chuẩn
⮚ Thiếu tính song song (parallelism)
Giới hạn
Trang 38FlockDB là một cơ sở dữ liệu đồ thị phân tán mã nguồn mở, có khả năng
chịu lỗi để quản lý các đồ thị mạng rộng nhưng nông
Một số Graph Database tiêu biểu
Trang 39Neo4j là hệ quản trị cơ sở dữ liệu đồ thị đầu tiên được giới thiệu vào năm 2007 và
công bố phiên bản 1.0 vào năm 2010 Hiện nay neo4j là một trong những hệ quản trị
cơ sở dữ liệu đồ thị được sử dụng nhiều nhất.
Một số Graph Database tiêu biểu
Trang 40Any questions?
Thanks!