CHƯƠNG 1: CƠ SỞ LÝ THUYẾT: Chương này trình bày cơ sở lý thuyết đồ thị tri thức và các công nghệ cần có để sử dụng triển khai hệ thống cho yêu cầu ở trên. Công nghệ được sử dụng cho hệ thống: neo4j – một nền tảng công nghệ cho phép lưu trữ 2 dữ liệu dưới dạng đồ thị tri thức, dữ liệu lưu trữ được không giới hạn mà chỉ phụ thuộc vào phần cứng; NodeJs-Express và ReactJs – môi trường phát triển ứng dụng, cung cấp thư viện hỗ trợ xây dựng nhanh API service, chạy ứng dụng trên nền web. CHƯƠNG 2: GIẢI PHÁP VÀ ĐÓNG GÓP NỔI BẬT: Chương này trình bày về nội dung giải pháp và đóng góp nổi bật bao gồm: thiết kế mô hình dữ liệu; xây dựng công cụ sinh dữ liệu mô phỏng tự động cho CSDL; lựa chọn mô hình dữ liệu tối ưu; xây dựng hệ thống lưu trữ thực thể quan hệ theo mô hình đã chọn; xây dựng công cụ hướng dẫn sử dụng để vận hành, bảo trì và triển khai cluster hệ thống. CHƯƠNG 3: THỰC NGHIỆM: Chương này trình bày cách thức thực nghiệm, đánh giá bốn mô hình và đánh giá truy vấn hiệu năng của hệ thống.
CHƯƠNG 4: KẾT LUẬN: Chương này đưa ra những kết luận của quá trình nghiên cứu cũng như đánh giá kết quả đạt được và định hướng nghiên cứu tiếp theo. TÀI LIỆU THAM KHẢO: Liệt kê các tài liệu mà luận văn tham khảo trên các nguồn khác nhau. CƠ SỞ LÝ THUYẾT Trước vấn đề đặt ra cần lưu trữ số lượng lớn các quan hệ thực thể được trích xuất từ các bài báo mạng và được xử lý từ dạng dữ liệu chưa có cấu trúc sang dạng dữ liệu có cấu trúc, lúc này yêu cầu lựa chọn cơ sở dữ liệu lưu trữ phù hợp. Tôi đã tìm hiểu, khảo sát, đánh giá các loại cơ sở dữ liệu đang được sử dụng phổ biến hiện nay và quyết định sử dụng đồ thị tri thức và loại cơ sở dữ liệu là DBMS Graph để giải quyết vấn đề lưu trữ dữ liệu.1 Đồ thị tri thức Sau khi trích xuất dữ liệu từ các bài báo mạng và được xử lý từ dạng dữ liệu chưa có cấu trúc sang dạng dữ liệu có cấu trúc.
Lúc này cần lựa chọn cơ sở dữ liệu lưu trữ phù hợp để khai thác nguồn dữ liệu này. Hiện nay có rất loại cơ sở dữ liệu như: (1) cơ sở dữ liệu quan hệ - RDBMS gồm: Oracle, MySQL, SQL Server, PostgreSQL,…; (2) cơ sở dữ liệu Key-value Store gồm: Redis, Amazon DynamoDB, Microsoft Azure Cosmos DB,…; (3) cơ sở dữ liệu Document Store gồm: MongoDB, Amazon DynamoDB, Databricks,…; (4) cơ sở dữ liệu đồ thị - DBMS Graph gồm: GraphDB, OrientDB, Cayley, MarkLogic, Titan, Oracle, Neo4J,… trong số chúng loại CSDL quan hệ được sử dụng rộng rãi và phổ biến nhất. Bởi vì đây là loại CSDL có lịch sử ra đời khá sớm bắt đầu từ những năm 60 của thế kỷ trước cho tới nay và vẫn đang tiếp tục; được nhiều tập đoàn công ty lớn cùng phát triển và sử dụng như: IBM, Microsoft, Oracle, SyBase,… và có cộng đồng sử dụng rộng lớn. Cơ sở dữ liệu quan hệ không chỉ có độ bao phủ khổng lồ mà hầu hết các bài toán lưu trữ đều thực hiện được; nhưng không phải lúc nào cũng tốt nhất.
So sách các loại cơ sở dữ liệu ở Bảng 1 bên dưới. Bảng so sánh giữa các loại cơ sở dữ liệu Loại cơ sở dữ liệu Quan hệ Key-Value Store Document Store Đồ thị (RDBMS) (DBMS Graph) DBMS đại Oracle, MySQL, SQL Server, Redis, Amazon DynamoDB, MongoDB, Amazon GraphDB, OrientDB, Cayley, diện PostgreSQL, … Microsoft Azure Cosmos DynamoDB, Databricks,… MarkLogic, Titan, Oracle, DB,… Neo4J,… Đặc điểm Lưu trữ dữ liệu dưới dạng - Key-value là kiểu lưu trữ - Document store được gọi là - Mô hình được thiết kế cho bảng quan hệ và được quản lý đơn giản nhất trong các loại các cơ sở dữ liệu hướng tài dữ liệu có quan hệ được biểu thông qua giao thức SQL – CSDL đồng thời cũng là kiểu liệu, một thiết kế riêng biệt diễn tốt dưới dạng biểu đồ và ngôn ngữ truy vấn cấu trúc lưu trữ cho toàn bộ các hệ cho việc lưu trữ tài liệu dạng có các yếu tố được liên kết với NoSQL. Quá trình thực hiện văn kiện JSON, BSON hoặc nhau, với số lượng quan hệ tìm kiếm dữ liệu đều thực hiện XML. không xác định giữa chúng.
thông qua key nên dẫn đến - CSDL dạng này có các cặp - Graph Store lưu trữ mối hạn chế về độ chính xác. khoá – giá trị nhưng cũng có quan hệ trên từng record riêng - Sử dụng cho dữ liệu được đính kèm các trị số siêu dữ biệt. truy xuất thường xuyên nhưng liệu (*metadata) giúp việc - Tương đối giống với không thường xuyên được cập truy vấn (*query) dễ dàng RDBMS ở điểm dữ liệu có nhật. cấu trúc nhưng giữa các bản 5 - Memcached chỉ được sử ghi của DBMS Graph không dụng cho bộ nhớ đệm, trong cố định và tên cột có thể biến khi Redis làm được nhiều điều động.
Memcached chỉ hỗ trợ strings, integers trong cấu trúc lưu trữ data, trong khi Redis hỗ trợ nhiều loại dữ liệu phức tạp như strings, hashes, lists, sets, sorted sets …. Ngoài ra, Redis có thể lưu dữ liệu vào đĩa để đảm bảo độ bền, còn Memcached thì không. Điểm Có kiến trúc dữ liệu chặt chẽ - Linh hoạt, xử lý nhiều loại - Xử lý tốt dữ liệu semi- - Mô hình Graph Store vừa mạnh và đảm bảo tính nhất quán cao dữ liệu một cách nhanh constricted hoặc mang đặc điểm của NoSQL - Tính nguyên tố (Atomicity): chóng. unconstristed, người dùng với đặc tính đơn giản, flexible Đảm bảo một giao dịch có - Các chìa khóa được dùng để không cần quan tâm đến của nó, kèm theo high nhiều thao tác thì hoặc là toàn truy xuất thẳng tới các giá trị dạng dữ liệu khi lưu trữ.
performance và highly scale- bộ thao tác được thực hiện tìm kiếm mà không cần thông - Người dùng có thể thiết kế out và vừa mang đặc điểm của hoặc là không thao tác nào qua quá trình index giúp quá cấu trúc cho một dữ liệu mà cơ sở dữ liệu có cấu trúc như được hoàn thành. trình tìm kiếm nhanh chóng. không ảnh hưởng đến loại dữ RDBMS. 6 - Tính nhất quán - Hỗ trợ chuyển từ hệ thống Thời gian ghi dữ liệu cũng rất - Không phụ thuộc vào tổng (Consistency): Một giao dịch này sang hệ thống khác mà nhanh.
kích thước của tập dữ liệu. hoặc là có trạng thái mới hoặc không cần code lại. - Mở rộng linh hoạt theo - Trong khi các cơ sở dữ liệu nếu có lỗi sẽ chuyển toàn bộ - Mở rộng theo chiều ngang chiều ngang. Quá trình khác tính toán các mối quan trạng thái về trước đó.
dễ dàng và chi phí vận hành sharding cũng dễ hiểu và dễ hệ tại thời điểm truy vấn - Tính độc lập (Isolation): Một thấp. thao tác hơn hệ CSDL quan thông qua các hoạt động JOIN giao dịch đang thực thi và hệ. tốn kém, thì cơ sở dữ liệu đồ chưa được xác nhận phải đảm thị lưu trữ các kết nối cùng báo tách biệt khỏi các giao với dữ liệu trong mô hình. - Biểu diễn quan hệ giữa các - Tính bền vững (Durability): node trực quan.
Dữ liệu sẽ được hệ thống lưu - Truy vấn thời gian thực lại ngay cả trong trường hợp nhanh chóng. hỏng hóc hoặc có lỗi hệ thống, đảm bảo dữ liệu vẫn trong trạng thái chuẩn xác. Điểm yếu - Điểm yếu lớn nhất của - Tính linh hoạt của CSDL CSDL dạng lưu trữ tài liệu hy - Thiếu tính đồng thời hiệu RDBMS là không xử lý được dạng key – value bị đánh đổi sinh các yếu tố ACID để đổi suất cao (high performance tốt các dữ liệu phi cấu trúc. bởi tính chính xác.
Hầu như lấy sự linh hoạt. Ngoài ra, concurrency): Trong nhiều - Tốc độ truy vấn chậm do hỗ rất khó để truy xuất giá trị việc truy vấn chỉ có thể được trường hợp, graph database trợ các đặc điểm ACID. chính xác từ CSDL dạng này thực hiện trong từng tài liệu, cung cấp các kiểu đọc và kiểu vì dữ liệu được lưu trữ theo ghi đơn, điều này cản trở sự 7 - Việc thay đổi cơ sở dữ liệu blob, nên kết quả trả về hầu không thể truy vấn dữ liệu đồng thời và hiệu suất, do đó khá khó do tính chặt chẽ của như đều theo blob. trên nhiều tài liệu khác nhau.
phần nào hạn chế tính song nó. - Khó khăn khi báo cáo số liệu song phân luồng (threaded parallelism). - Cấu trúc RDBMS làm phức hoặc cần chỉnh sửa một phần tạp hóa việc nâng cao mở rộng của các giá trị. - Thiếu ngôn ngữ chuẩn: Việc máy chủ theo chiều ngang thiếu sự thiết lập và một ngôn hoặc chiều dọc.
ngữ khai báo chuẩn là một vấn của NoSQL graph database. - Thiếu tính song song (parallelism): việc phân vùng một biểu đồ là một vấn đề. Hầu hết các graph database không cung cấp các truy vấn song song trên các biểu đồ lớn. Ứng dụng Các ứng dụng web với lượng - Caching - Dữ liệu phi cấu trúc hoặc - Các hệ thống yêu cầu dữ liệu giao dịch lớn và truy vấn phức - Quản lý HTTP session không có cấu trúc (video, với số lượng lớn các mối quan tạp.
media, photo, document…) hệ linh hoạt, yêu cầu cấu trúc - Dữ liệu phi cấu trúc như Dữ liệu tài chính, thông tin review sản phẩm, bình luận - Quản lý danh mục sản phẩm có thể mở rộng để thêm dữ người dùng, thông tin nhân của blog liệu mới, yêu cầu truy vấn các - Phân tích dữ liệu hành vi khẩu … mối quan hệ in real-time. khách hàng 8 - Khuyến nghị các sản phẩm / - Các hệ thống liên quan đến thông tin tương tự trao đổi dữ liệu cần sự linh - Thông tin và thiết lập người hoạt về truy xuất dữ liệu. dùng - Ứng dụng vào công cụ gợi ý, - Bộ đếm số lượt truy cập phát hiện gian lận, phân tích trang và duyệt các mối quan hệ giữa các dữ liệu được kết nối. - Kiểu lưu trữ hàng đợi cần hiệu suất cao - Cơ sở dữ liệu đồ thị chủ yếu được sử dụng cho mạng xã - Biên soạn số liệu thống kê hội, hậu cần, dữ liệu không gian Độ phổ Dẫn đầu với những cơ sở dữ Xếp thứ 3 Xếp thứ 2 Xếp thứ 6 biến 1 liệu như Oracle (1262 điểm), MySQL (1202 điểm), SQL Server (941 điểm), Postgre SQL (615 điểm),… 1 https://db-engines.com/en/ranking; https://db-engines.com/en/ranking_definition: sắp xếp theo tiêu chi: số lượng đề cập đến, mức độ quan tâm của cộng đồng phát triển, tần suất thảo luận về kỹ thuật, số lượng về lời mời việc làm, số lượng cấu hình trong các mạng chuyên nghiệp,.