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

Cơ sở dữ liệu phi quan hệ - NoSQL

10 2 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

Bài viết Cơ sở dữ liệu phi quan hệ - NoSQL giới thiệu 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. Các cơ sở dữ liệu này sử dụng mô hình dữ liệu đa dạng như tài liệu (document), đồ thị (graph), khóa – giá trị (key-value), cột (wide-column). Mời các bạn cùng tham khảo!

CƠ SỞ DỮ LIỆU PHI QUAN HỆ - NOSQL Đinh Nguyễn Thúy Nguyệt Khoa Công nghệ Thông tin, Trường Đại học Tài –Marketing Email: dntnguyet@ufm.edu.vn Tóm tắt: Cơ sở liệu (CSDL) quan hệ truyền thống cấu trúc liệu xác định trước, giới hướng đến liệu không cấu trúc, khối lượng liệu kiện mà hệ thống cần phải xử lý tăng nhanh cách đáng kể CSDL quan hệ trường hợp gây số cản trở lược đồ (schema) cứng nhắc, thiếu linh hoạt khiến chúng trở nên phù hợp với số loại ứng dụng Cơ sở liệu NoSQL cơng nhận rộng rãi khả dễ phát triển chức hiệu quy mô lớn Các sở liệu sử dụng mơ hình liệu đa dạng tài liệu (document), đồ thị (graph), khóa – giá trị (key-value), cột (wide-column) Từ khoá: sở liệu phi quan hệ, sở liệu NoSQL, NoSQL TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU NOSQL Cơ sở liệu NoSQL hay “Non-Relational” (phi quan hệ) thuật ngữ chung cho hệ sở liệu không sử dụng mô hình liệu quan hệ Dữ liệu mơ hình hóa phương tiện khác với quan hệ dạng bảng sử dụng sở liệu quan hệ Cơ sở liệu quan hệ hữu dụng việc xử lí liệu cấu trúc kỹ hỗ trợ tính ACID (Atomicity: tính nguyên tố) Một giao dịch có nhiều thao tác khác biệt tồn thao tác khơng thao tác hồn thành Consistency: tính quán Một giao dịch tạo trạng thái hợp lệ cho liệu, trường hợp có lỗi chuyển tồn liệu trạng thái trước thực thi giao dịch., Isolation: tính độc lập Một giao dịch thực thi chưa xác nhận phải bảo đảm tách biệt khỏi giao dịch khác Durability: tính bền vững Dữ liệu xác nhận hệ thống lưu lại cho trường hợp hỏng hóc có lỗi hệ thống, liệu đảm bảo trạng thái chuẩn xác) Ngồi ra, cịn có cộng đồng hỗ trợ vô mạnh mẽ Tuy nhiên, sở liệu quan hệ tồn hạn chế như:  Nếu chuẩn, hiệu bị chậm phải join nhiều bảng để lấy liệu Đó lý ta sử dụng “giảm chuẩn” để tăng hiệu suất cho hệ quản trị sở liệu quan hệ (RDBMS) 264  Khó mở rộng thay đổi cấu trúc bảng: việc thêm/xóa bảng thêm/xóa field kéo theo vô số source code thay đổi  Không làm việc với liệu khơng có cấu trúc (unstructure)  RDBMS thiết kế để chạy máy chủ Khi muốn mở rộng, khó chạy nhiều máy (clustering) Thuật ngữ NoSQL giới thiệu lần đầu vào năm 1998 Carlo Strozzi ông lập hệ sở liệu mở nhanh nhẹ không sử dụng SQL cho truy vấn Cho tới năm 2009, Eric Evans giới thiệu lại thuật ngữ NoSQL hội thảo sở liệu mã nguồn mở phân tán Thuật ngữ NoSQL đánh dấu bước phát triển hệ database mới: distributed (phân tán) + non-relational (không ràng buộc) NoSQL phát triển xuất phát từ yêu cầu cần CSDL có khả lưu trữ liệu với lượng cực lớn, truy vấn liệu với tốc độ cao mà khơng địi hỏi nhiều lực phần cứng tài nguyên hệ thống tăng khả chịu lỗi NoSQL bao gồm loạt công nghệ sở liệu khác phát triển để đáp ứng yêu cầu lưu trữ liệu có cấu trúc, bán cấu trúc, khơng cấu trúc hay đa hình ứng dụng đại Các đặc điểm sở liệu NoSQL: - Phi quan hệ: khơng có ràng buộc cho việc quán liệu; - Mơ hình lưu trữ phân tán tập tin liệu nhiều máy khác mạng LAN Internet kiểm soát phần mềm; - NoSQL lưu trữ liệu theo dạng cặp giá trị “key – value” Sử dụng số lượng lớn node để lưu trữ thơng tin; - Tính quán không theo thời gian thực: sau thay đổi sở liệu, không cần tác động đến tất sở liệu liên quan mà lan truyền theo thời gian; - Mơ hình liệu truy vấn linh hoạt; - Triển khai đơn giản, dễ nâng cấp mở rộng Một số khái niệm NoSQL: - Fields – tương đương với khái niệm Columns SQL 265 - Document – thay khái niệm row SQL Đây khái niệm làm nên khác biệt NoSQL SQL, document chứa số cột (fields) không cố định row số cột(columns) định sẵn trước - Collection – tương đương với khái niệm table SQL Một collection tập hợp document Điều đặc biệt collection chứa document hồn tồn khác - Key-value – cặp từ khóa – giá trị dùng để lưu trữ liệu NoSQL - Cursor – tạm dịch trỏ Chúng ta sử dụng cursor để lấy liệu từ database - Indexes ~ counterparts: Trong hệ sở liệu quan hệ, cột định nghĩa theo bảng cịn với hệ sở liệu khơng ràng buộc, cột định nghĩa document Bởi thế, document quản lí gần tất cả, collection khơng cần quản lí chặt chẽ xảy So sánh NoSQL sở liệu quan hệ: Cơ sở liệu quan hệ Cơ sở liệu phi quan hệ NoSQL Sử dụng ngôn ngữ truy vấn SQL Không sử dụng SQL, không khai báo ngôn ngữ truy vấn Dữ liệu có cấu trúc, có tổ chức Dữ liệu đa dạng, có cấu trúc, bán cấu trúc, khơng cấu trúc, đa hình, … Dữ liệu phi quan hệ khơng thể đốn trước Có định nghĩa schema cụ thể Không định nghĩa schema, cấu trúc linh hoạt Dữ liệu quan hệ lưu Document databases, Graph stores, Key- trữ bảng riêng biệt value stores, Wide-column stores Có tính chặt chẽ khó mở Ưu tiên cho hiệu năng, tính sẵn sàng cao rộng khả mở rộng, dễ dàng phân tán Hệ quản trị sở liệu: MySQL, Hệ quản trị sở liệu: MongoDB, PostGreSQL, RavenDB, Amazon DynamoDB, Riak, Microsoft SQL Server, Oracle, 266 Có số lợi thế, điểm mạnh làm việc với sở liệu NoSQL Những ưu điểm NoSQL khả mở rộng tính sẵn sàng cao  NoSQL DB có khả mở rộng theo chiều ngang cung cấp hiệu vượt trội, giải tốt số vấn đề mà RDBMS không giải như:  Vấn đề việc thay đổi liệu cách nhanh chóng với khối lượng lớn, cập nhật liên tục thời điểm, liệu có dạng cấu trúc, bán cấu trúc, khơng cấu trúc hay đa hình  Xử lý liệu đa dạng phức tạp với hiệu  Cung cấp thiết kế lược đồ linh hoạt dễ dàng thay đổi mà khơng có thời gian chết gián đoạn  Khi làm việc với mô hình Agile, sprints lặp lại nhanh cần push code thường xuyên  Lập trình hướng đối tượng, dễ dùng linh hoạt  Sử dụng kiến trúc quy mơ phân tán theo vị trí địa lý thay kiến trúc nguyên khối tốn  Không cần máy chủ hiệu cao chuyên dụng  Không giới hạn lưu trữ liệu người dùng hệ thống (High Scalability)  NoSQL chấp nhận lưu trữ liệu trùng lặp nên node (commodity machine) bị chết khơng ảnh hưởng tới tồn hệ thống (High Availability HA), khả tái tạo dễ dàng  Mơ hình hóa, truy vấn deploy linh hoạt, việc bổ sung thêm/loại bỏ node, hệ thống tự động nhận biết để lưu trữ mà không cần phải can thiệp thủ công  Thiết kế phân tán nên NoSQL giảm thiểu tối đa phép tính toán, I/O liên quan kết hợp với batch processing đảm bảo đủ xử lý yêu cầu liệu  Có thể đảm nhận vai trị nguồn liệu cho ứng dụng trực tuyến CÁC LOẠI CƠ SỞ DỮ LIỆU NOSQL Cơ sở liệu NoSQL phân loại thành bốn loại phổ biến nhất: Key-value pair, Column-oriented, Graph-based Document-oriented Mỗi loại có thuộc tính 267 hạn chế riêng Khơng có sở liệu cho tốt để giải tất vấn đề Người sử dụng nên chọn sở liệu dựa nhu cầu ứng dụng Cơ sở liệu khóa–giá trị (key – value databases): sở liệu NoSQL đơn giản Mỗi item sở liệu lưu trữ dạng tên thuộc tính (hoặc key) nhất, với giá trị nó, có dạng JSON, BLOB, string, Nó thiết kế theo cách để xử lý nhiều liệu tải nặng Key value stores giúp developer lưu trữ liệu khơng có schema Cơ sở liệu khóa–giá trị có khả phân mảnh cao cho phép thay đổi quy mô theo chiều ngang quy mô lớn mà loại hình sở liệu khác khơng thể làm Mơ hình liệu khóa–giá trị dùng cho trị chơi, cơng nghệ quảng cáo đặc biệt thích hợp cho IoT Một số hệ quản trị sở liệu key - value tiêu biểu gồm: DynamoDB, Riak, BerkeleyDB, Redis Cơ sở liệu dạng cột (Column-oriented databases/Column-family) Dữ liệu lưu database dạng cột, thay hàng SQL Mỗi hàng có key/id riêng Điểm đặc biệt hàng bảng có số lượng cột khác Câu lệnh truy vấn giống SQL Loại sở liệu có lợi ích sở liệu quan hệ phi quan hệ, xử lí liệu cấu trúc phi cấu trúc, đồng thời dễ dàng nâng cấp So với sở liệu quan hệ, khả mở rộng theo chiều ngang dễ dàng nhanh chóng Đặc trưng dạng NoSQL mang tới hiệu suất cao cho truy vấn tổng hợp dạng AVG, MIN, hay SUM, COUNT,… mà liệu có sẵn cột Cassandra số hệ quản trị sở liệu column-family phổ biến Ngồi cịn có số hệ quản trị sở liệu khác HBase, Hypertable Amazon DynamoDB Cassandra ban đầu tạo Facebook Sau tặng cho Quỹ Apache tháng năm 2010 nâng cấp lên thành dự án hàng đầu Apache Cassandra miêu tả nhanh khả mở rộng dễ dàng với thao tác viết thông qua cụm Các cụm node master, việc đọc ghi đểu xử lý node cụm 268 Cơ sở liệu tài liệu (document databases): ghép cặp key với cấu trúc liệu phức tạp gọi document Document chứa nhiều cặp key-value, cặp key-array khác nhau, chí documents lồng Loại document chủ yếu sử dụng cho hệ thống CMS, tảng blog, phân tích thời gian thực ứng dụng thương mại điện tử Document database không nên sử dụng cho giao dịch phức tạp yêu cầu nhiều hoạt động truy vấn dựa cấu trúc tổng hợp khác Các hệ quản trị sở liệu tài liệu tiêu biểu như: MongoDB, RavenDB, CouchDB, TerraStone, OrientDB MongoDB sở liệu NoSQL phổ biến với tính đáng giá Nó quảng bá tương lai hệ thống sở liệu có vị trí quan trọng trình phát triển ứng dụng đại Những tập đoàn lớn CISCO, SAP, IBM, Microsoft Salesforce có mặt cộng đồng phát triển MongoDB MongoDB hệ quản trị sở liệu mã nguồn mở, hướng tài liệu (document), liệu lưu trữ document kiểu JSON MongoDB phát triển MongoDB Inc cấp phép theo Giấy phép Công cộng phía Máy chủ (SSPL) Với sở liệu quan hệ có khái niệm bảng, sử dụng bảng để lưu liệu với MongoDB dùng khái niệm collection thay bảng So với RDBMS MongoDB collection ứng với table, document ứng với row , MongoDB dùng document thay cho row RDBMS Các collection MongoDB cấu trúc linh hoạt, cho phép liệu lưu trữ không cần tuân theo cấu trúc định Cơ sở liệu đồ thị (graph): sở liệu kiểu đồ thị lưu trữ thực thể mối quan hệ thực thể Thực thể lưu trữ dạng nút (node) với mối quan hệ cạnh (edge) Một cạnh biểu thị mối quan hệ node Mỗi node cạnh có mã định danh Cơ sở liệu đồ thị sử dụng để lưu trữ thông tin mạng liệu, chẳng hạn social connections, logistics, liệu không gian, Cơ sở liệu đồ thị có khả ngăn chặn gian lận tinh vi Với graph database, sử dụng mối quan hệ để xử lý giao dịch tài mua hàng thời gian gần thực (near-real time) Với truy vấn đồ thị nhanh, thấy rằng, chẳng hạn người mua tiềm sử dụng địa email thẻ tín dụng 269 trường hợp gian lận biết Cơ sở liệu đồ thị giúp dễ dàng phát mẫu quan hệ chẳng hạn nhiều người liên kết với địa email cá nhân nhiều người chia sẻ địa IP cư trú địa thực khác Cơ sở liệu đồ thị lựa chọn tốt cho ứng dụng gợi ý Với graph database, lưu trữ biểu đồ mối quan hệ danh mục thông tin sở thích khách hàng, bạn bè lịch sử mua hàng Bạn sử dụng sở liệu đồ thị có tính khả dụng cao để đưa đề xuất sản phẩm cho người dùng dựa sản phẩm mua người khác theo mơn thể thao có lịch sử mua hàng tương tự Hoặc, bạn xác định người có bạn chung chưa biết nhau, sau đưa đề xuất kết bạn Các hệ quản trị sở liệu tiêu biểu như: Neo4j, InfiniteGraph, OrientDB,… Neo4j sở liệu đồ thị hàng đầu giới, vừa nguồn mở vừa xây dựng Java Nó có ngơn ngữ riêng, gọi Cypher, tương tự ngôn ngữ SQL khai báo, tạo để phù hợp với đồ thị Nó hỗ trợ ngơn ngữ phổ biến bên cạnh Java, chẳng hạn Python, NET, JavaScript số ngôn ngữ khác Neo4j lý tưởng cho việc quản lý trung tâm liệu phát gian lận HẠN CHẾ CỦA NOSQL VÀ KHI NÀO NÊN SỬ DỤNG NOSQL Bên cạnh ưu điểm NoSQL Database có nhược điểm, không phù hợp với nhiều ứng dụng yêu cầu loại ràng buộc, tính quán biện pháp bảo vệ mà sở liệu SQL cung cấp Thiếu tính quán: NoSQL đánh đổi quán để ưu tiên tốc độ, hiệu suất hiệu Dữ liệu chèn vào cụm dù khả dụng toàn hệ thống, biết chắn khoảng thời gian Một số sở liệu NoSQL có chế để khắc phục điều Chẳng hạn MongoDB, hệ thống đảm bảo tính quán cho hoạt động riêng lẻ, cho toàn sở liệu Microsoft Azure CosmosDB cho phép bạn chọn mức độ quán cho yêu cầu, bạn chọn hành vi phù hợp với trường hợp sử dụng NoSQL lock-in: hầu hết hệ thống NoSQL tương tự khái niệm, nhiên, cách thực lại khác Mỗi hệ thống có chế truy vấn liệu quản lý 270 riêng Điều trở gây trở ngại xảy thay đổi hệ thống trình làm việc Ví dụ thay đổi hệ thống từ MongoDB sang CouchDB phải làm nhiều viêc di chuyển liệu Bạn phải điều hướng khác biệt truy cập liệu cách thức lập trình, nói cách khác, bạn phải viết lại phần ứng dụng truy cập sở liệu Kỹ non trẻ: Một hạn chế khác NoSQL người sử dụng thiếu kỹ chuyên môn mức tương đối Trong thị trường dành cho SQL phát triển NoSQL cịn non trẻ hệ thống biết cách sử dụng thành thạo Khối lượng danh sách công việc cho SQL, thông thường MySQL, Microsoft SQL Server, Oracle Database, cao tổng ba năm với khối lượng công việc cho MongoDB, Couchbase Cassandra Nhu cầu NoSQL tăng lên, phần nhỏ thị trường cho SQL Quản lý liệu: Mục đích công cụ liệu lớn làm cho việc quản lý lượng lớn liệu trở nên đơn giản Nhưng quản lý liệu NoSQL phức tạp nhiều so với sở liệu quan hệ Đặc biệt, NoSQL tiếng khó cài đặt chí để quản lý ngày tốn nhiều thời gian Sao lưu liệu: Sao lưu điểm yếu lớn số sở liệu NoSQL MongoDB Nó khơng có cách tiếp cận để lưu liệu cách qn Khơng có lược đồ: Ngay bạn lấy liệu dạng tự do, bạn cần áp đặt ràng buộc để làm cho hữu ích Với NoSQL, trách nhiệm chuyển từ sở liệu sang nhà phát triển, lập trình ứng dụng Tuy nhiên, với điểm mạnh mình, NoSQL database nên áp dụng trường hợp sau: Khi muốn lưu trữ, truy xuất lượng liệu khổng lồ cách nhanh chóng Lượng liệu mà hệ thống cần phải xử lý ngày lớn Ví dụ Google, Facebook phải lưu trữ xử lý lượng liệu cực lớn ngày NoSQL phát triển xuất phát từ yêu cầu cần database có khả lưu trữ liệu với lượng cực lớn, truy vấn liệu với tốc độ cao mà khơng địi hỏi nhiều lực phần cứng tài nguyên 271 hệ thống tăng khả chịu lỗi NoSQL bỏ qua tính quán liệu để đổi lấy hiệu suất nhanh khả mở rộng (scalability) Do đó, NoSQL ứng dụng nhiều dự án Big Data, dự án Real-time, với lượng liệu khổng lồ khơng có cấu trúc cụ thể Đây vấn đề mà relational database giải Khi cấu trúc liệu chưa hoàn chỉnh thay đổi theo thời gian Thực tế, thời gian cho vòng đời phần mềm (software) ngày rút ngắn Không thể cứng nhắc phải có Database Structure rõ ràng bắt đầu phát triển phần mềm Tùy vào đặc thù dự án để linh động giải vấn đề Hiện tại, table A định nghĩa column (4 field) Nhưng trình phát triển, ta cần thêm field nữa, khác biệt nhận thấy rõ SQL NoSQL, Nếu sử dụng SQL (Structure), có cấu trúc Tất nhiên phải ALTER table đó, tầm nhìn xa dùng column store Json Thay đổi Json Store Việc đáp ứng phức tạp Nếu sử dụng NoSQL, không ràng buộc mặt cấu trúc, ta thoải mái store node với field, node trước field Rõ ràng mà nói điểm mạnh NoSQL tốt cho ứng dụng có cấu trúc CSDL chưa hoàn chỉnh, điều chỉnh q trình sử dụng Khi khơng cần hỗ trợ ACID NoSQL không quán liệu giống SQL Trên thực tế, sở liệu SQL không ưu tiên hiệu suất khả mở rộng mà thường đẩy việc tuân thủ thuộc tính ACID đảm bảo độ tin cậy cho giao dịch lên trước, sở liệu NoSQL gần bỏ qua đảm bảo ACID để ưu tiên tốc độ khả mở rộng Mối quan hệ liệu lưu trữ không quan trọng Các ràng buộc logic xác thực không bắt buộc phải thực sở liệu KẾT LUẬN Cơ sở liệu quan hệ sở liệu phi quan hệ NoSQL có đánh đổi khác hệ thống Việc định lựa chọn công cụ cần phụ thuộc vào tính chất cơng việc thực tế Công nghệ NoSQL chủ yếu phát triển để xử lý liệu khối luợng lớn, phi cấu trúc Big Data Tuy nhiên, khơng thay hồn tồn sở liệu quan hệ, mục đích sử dụng thứ khác Nhiều tổ chức bắt đầu nhận thấy lợi đáng kể sử dụng sở liệu NoSQL cho dự án Bởi chu kỳ phát triển nhanh hơn, tổ chức đổi nhanh cung cấp trải nghiệm khách hàng 272 vượt trội với chi phí thấp Với ưu điểm trên, NoSQL sử dụng nhiều dự án Big Data, dự án Real-time, số lượng liệu nhiều TÀI LIỆU THAM KHẢO [1] https://quantrimang.com/co-so-du-lieu-phi-quan-he-nosql-160708 [2] https://chiasekinang.com/nosql-la-gi-mot-so-uu-diem-va-nhuoc-diem-can-biet-venosql/ [3] https://aws.amazon.com/vi/nosql/ [4] https://www.guru99.com/nosql-tutorial.html [5] https://smartfactoryvn.com/technology/internet-of-things/co-so-du-lieu-nosql-la-gi/ [6] Bắt đầu với NoSQL MongoDB (viblo.asia) [7] https://topdev.vn/blog/diem-manh-nosql-co-dang-de-thay-doi/ [8] https://viblo.asia/p/tim-hieu-ve-nosql-Zzb7vDNYMjKd [9] https://giaiphapso.com/graph-database-la-gi-va-hoat-dong-the-nao/ [10] https://tel4vn.edu.vn/blog/cac-loai-co-so-du-lieu/ 273 ... https://smartfactoryvn.com/technology/internet-of-things/co-so-du-lieu -nosql- la-gi/ [6] Bắt đầu với NoSQL MongoDB (viblo.asia) [7] https://topdev.vn/blog/diem-manh -nosql- co-dang-de-thay-doi/ [8] https://viblo.asia/p/tim-hieu-ve -nosql- Zzb7vDNYMjKd... sánh NoSQL sở liệu quan hệ: Cơ sở liệu quan hệ Cơ sở liệu phi quan hệ NoSQL Sử dụng ngôn ngữ truy vấn SQL Không sử dụng SQL, không khai báo ngôn ngữ truy vấn Dữ liệu có cấu trúc, có tổ chức Dữ liệu. .. https://chiasekinang.com /nosql- la-gi-mot-so-uu-diem-va-nhuoc-diem-can-biet-venosql/ [3] https://aws.amazon.com/vi /nosql/ [4] https://www.guru99.com /nosql- tutorial.html [5] https://smartfactoryvn.com/technology/internet-of-things/co-so-du-lieu -nosql- la-gi/

Ngày đăng: 31/12/2022, 12:11

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

TÀI LIỆU LIÊN QUAN

w