1. Trang chủ
  2. » Công Nghệ Thông Tin

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

48 1,7K 3

Đ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 48
Dung lượng 2,05 MB

Nội dung

Đị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 ngan

Trang 1

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à

Trang 3

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

Trang 4

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

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

• Cloud Database

Trang 5

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

Là một dịch vụ hơn là một sản phẩm !!!

Trang 6

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

• Cấu trúc gồm 2 phần

Trang 7

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

Trang 8

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

Trang 9

 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]

Trang 11

Đị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”

Trang 13

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

Trang 14

• Atomicity

– Độc lập trạng thái dữ liệu trong các hành động

Trang 15

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.

Trang 17

Tính chất

So sánh giữa MongoDB và SQL Server 2008

Trang 18

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

Trang 19

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

Trang 20

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

Trang 21

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

Trang 22

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)

Trang 23

Wide Column Store / Column

Families

Ví dụ về mô hình RDBMs sẽ có dạng Column-Family như trên

Trang 24

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

Trang 25

Wide Column Store / Column

Families

Tổ chức trong Lưu trữ vật lý

Trang 26

Wide Column Store / Column

Families

Trang 27

Document Store

• Tài liệu được đóng gói và mã hóa dươi các định dạng chuẩn như: XML, YAML, JSON và BSON và dạng nhị phân như PDF, Microsoft Office Document

• Các document được đánh địa chỉ bởi các khóa duy nhất tham chiếu đến nó Thông thường, các khóa này sẽ là chuỗi ký tự

Ví dụ:

FirstName:"Bob", Address:"5 Oak St.", Hobby:"sailing".

FirstName:"Jonathan", Address:"15 Wanamassa Point Road", Children:[{Name:"Michael",Age:10}, {Name:"Jennifer", Age:8}, {Name:"Samantha", Age:5}, {Name:"Elena", Age:2}].

Trang 28

Document Store

• Tài liệu được đóng gói và mã hóa dươi các định dạng chuẩn như: XML, YAML, JSON và BSON và dạng nhị phân như PDF, Microsoft Office Document

• Các document được đánh địa chỉ bởi các khóa duy nhất tham chiếu đến nó Thông thường, các khóa này sẽ là chuỗi ký tự

Ví dụ:

FirstName:"Bob", Address:"5 Oak St.", Hobby:"sailing".

Trang 29

Graph Database

• Định nghĩa: “Là bất kỳ một hệ thống lưu trữ cung cấp sự tự do cho việc đánh chỉ mục các thành phần liền kề Điều đó có nghĩa, tất cả các phần tử đều chứa một con trỏ có hướng tới các thành phần liền kề và việc tra cứu chỉ mục là không cần thiết”

Trang 30

Graph Database

• Hệ cơ sở dữ liệu đồ thị có ưu điểm:

– Nhanh hơn đối với tập dữ liệu có liên kết với nhau và ánh

xạ trực tiếp tới cấu trúc của ứng dụng hướng đối tượng – Nó có thể thay đổi kích thước tự nhiên đối với các tập dữ

liệu lớn và không yêu cầu toán tử Join và phụ thuộc ít vào

các lược đồ cứng nhắc, do đó phù hợp với quản lý các lược

đồ có sự tăng theo thời gian.

– Cơ sở dữ liệu đồ thì là một công cụ mạnh cho việc truy vấn

dữ liệu đồ thị, ví dụ tính toán khoảng cách nhỏ nhất giữa 2 đỉnh của một đồ thị.

Trang 31

Graph Database

Ví dụ về cơ sở dữ liệu đồ thị

Trang 32

Mongo DB

Nguyễn Minh Hà

Trang 33

Mongo DB : Nội dung chính

• Khái niệm về mongo DB

• Cài đặt và chạy thử nghiệm

• Các đặc điểm chính của mongo DB

• Chương trình demo kết nối PHP với mongo DB

Trang 34

Tổng quan về Mongo DB

• MongoDB là một cơ sở dữ liệu theo dạng

hướng tài liệu của hệ thống cơ sở dữ liệu No SQL, không phải mô hình cơ sở dữ liệu quan hệ

Trang 35

Cài đặt và chạy thử nghiệm

 Giải nén MongoDB tải về (Ví dụ ở ổ C)

 Tạo thư mục data/db (ví dụ C:/data/db) (cổng 28017)

Trang 36

Các đặc điểm chính của mongo DB

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

 Tốc độ truy vấn và xử lý dữ liệu nhanh

 Mã nguồn mở

 Không có mô hình cụ thể

• MongoDB phù hợp với tất cả các hệ điều hành

• Không có quan hệ giữa các bảng

• Tập trung vào tốc độ, hiệu năng, tính linh hoạt và khả năng

mở rộng

• Linh hoạt khi kết hợp với các ngôn ngữ lập trình

Trang 37

Đặc điểm của mongo DB

Trang 38

Đặc điểm của mongo DB

• Mỗi document có một khóa đặc biệt (_id), nó là duy nhất

trong một collection

– Khóa không được chứ ký tự null (\0)

– Khóa không chưa ký tự và $ được sử dụng cho một vài lý do đặc biệt

– Khóa bắt đầu với ký tự _

• MongoDB phân biệt chữ viết hoa và viết thường

• Collection dưới dạng lược đồ tự do

– 2 documents {“greeting” : “hello world”}, {“foo”:5}

• Có 6 loại dữ liệu cơ sở

– Null , Boolean, 32-bit integer, 64-bit integer , 64-bit floating point

number, String

– Ngoài ra còn 1 số kiểu khác : Array, Date, Embedded documents, ObjectId

Trang 39

Đặc điểm của mongo DB

• Bất kỳ trường nào trong một tài liệu MongoDB có thể

được lập chỉ mục (tương tự như CSDL quan hệ) Chỉ số thứ cấp cũng có sẵn.

• Một số chức năng cho quản trị : Công cụ tập

hợp(Aggregation), tạo bản sao cơ sở dữ liệu (Replication),

Sharding cho phép bạn thêm nhiều hơn

máy móc để xử lý tăng tải trọng và kích thước dữ liệu

Trang 40

Một số lệnh truy vấn trong Mongo

DB

 Sử dụng môt db : > use mydb

 Insert dữ liệu vào 1 collection : > db.mydb.save ( {name :

“mongo”, content :”hello, world”})

 Select dữ liệu trong 1 collection : > db.mydb.find()

 Select dữ liệu theo điều kiện: > db.mydb.find({name:”mongo”})

 Update dữ liệu:db.mydb.update({name:”mongo”},{content:”hello aa”})

 Xóa dữ liệu : > db.mydb.remove({name:”mongo”})

Trang 41

So sánh giữa Mongo DB và SQL

Server 2008

• Mô hình CSDL

chung

Trang 42

Kết quả chạy

Trang 43

So sánh kết quả chạy

Trang 44

Demo giữa PHP và Mongo DB

• Chương trình demo việc thêm, sửa, xóa dữ

liệu thể hiện việc tương tác giữa PHP và

Mongo DB

Trang 45

Tổng kết về NoSQL

Trang 46

Tổng kết về NoSQL

• NoSQL : CSDL không sử dụng mô hình dữ liệu quan hệ, mô hình lưu

trữ cặp giá trị - khóa và hệ thống lưu trữ phân tán

• NoSQL tốt hơn: Các hệ CSDL quan hệ (RDBMs) 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, v.v.)

• NoSQL thiết kế : đơn giản, nhẹ, gọn hơn so với RDBMs Ngoài

memory cached, dữ liệu nhỏ,… các NoSQL dạng này đặc biệt thích hợp cho thiết bị cầm 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

• NoSQL có nhiều ứng dụng: 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.v.) và nhỏ Với những

Trang 47

Câu hỏi và giải đáp

Trang 48

Xin ch©n thµnh c¸m ¬n sù theo dâi

Ngày đăng: 08/07/2015, 16:08

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w