Nghiên cứu DMBS MySQL và Apache Cassandra trong Phát triển Ứng dụng Ngân hàng

Khám phá hệ quản trị cơ sở dữ liệu CO3021 với nghiên cứu về DBMS MySQL và Apache Cassandra, cùng phát triển ứng dụng ngân hàng dựa trên MySQL.

Người đăng

Ẩn danh

Thể loại

bài tập lớn

2024

63
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. CHƯƠNG 1: PHÂN CÔNG CÔNG VIỆC

1.1. Đánh giá chung

1.2. Từng giai đoạn

2. CHƯƠNG 2: GIỚI THIỆU ĐỀ TÀI

3. CHƯƠNG 3: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL VÀ CASSANDRA

3.1. Hệ Quản trị Cơ sở Dữ Liệu MySQL

3.1.1. Tổng quan về MySQL

3.1.2. Tổng quan về Storage Engine: InnoDB

3.2. Hệ Quản trị Cơ sở Dữ Liệu Cassandra

4. CHƯƠNG 4: DATA STORAGE & MANAGEMENT

4.1. Storage engine trong MySQL - InnoDB

4.1.1. In-memory structures

4.1.2. On-disk structures

4.1.3. Double-write Buffer

4.1.4. Redo & Undo Logs

4.2. Storage engine trong Apache Cassandra

4.2.1. Chỉ mục đơn mức

4.2.1.1. Chỉ mục sơ cấp (Primary Index)
4.2.1.2. Chỉ mục cụm (Clustering Index)
4.2.1.3. Chỉ mục thứ cấp (Secondary Index)

4.2.2. Chỉ mục đa mức

4.2.3. Indexing trong InnoDB (MySQL)

4.3. Index trong Memory của Storage Engine

4.3.1. Multiple-Column Index

4.3.2. Indexing trong Cassandra

4.3.2.1. Storage-Attached Indexing (SAI)

4.3.3. Indexing giữa MySQL và Cassandra trong ngữ cảnh Ứng dụng Ngân hàng

4.3.3.1. Tính toàn vẹn dữ liệu (ACID)
4.3.3.2. Các loại chỉ mục hỗ trợ
4.3.3.3. Hiệu năng đọc dữ liệu
4.3.3.4. Hiệu năng ghi dữ liệu
4.3.3.5. Sử dụng Index trong ứng dụng Ngân hàng

4.4. Bảng Loan Payments

4.5. Giới thiệu về Query Processing

4.5.1. Query Processing trong MySQL

4.5.2. Query Processing trong Apache Cassandra

4.5.3. So sánh và đánh giá

4.6. Giới thiệu về transaction

4.6.1. Transaction trong SQL

4.6.1.1. Minh họa trong MySQL

4.6.2. Transaction trong NoSQL

4.6.2.1. Minh họa trong Cassandra

4.6.3. So sánh và đánh giá

4.7. Giới thiệu về concurrency control

4.7.1. Những trường hợp cụ thể về dữ liệu bị hư hại hoặc không đồng nhất

4.7.2. Concurrency control trong innoDB (MySQL)

4.7.2.1. Minh họa trong MySQL

4.7.3. Concurency trong NoSQL

4.7.3.1. Minh họa trong Cassandra
4.7.3.1.1. Read - write concurrency
4.7.3.1.2. Write - write concurrency

9. CHƯƠNG 9: HIỆN THỰC ỨNG DỤNG NGÂN HÀNG

9.1. Các yêu cầu chức năng đã hiện thực

9.2. ERD Hệ thống

9.3. Các loại query thường xuyên được sử dụng

9.4. Giao diện ứng dụng

10. CHƯƠNG 10: TỔNG KẾT

11. CHƯƠNG 11: SOURCE CODE

Tài liệu tham khảo

Tóm tắt

I. Giới thiệu về Nghiên cứu Ứng dụng Ngân hàng Dựa trên MySQL và Apache Cassandra

Trong bối cảnh công nghệ số hiện nay, việc phát triển ứng dụng ngân hàng dựa trên cơ sở dữ liệu là rất quan trọng. MySQL và Apache Cassandra là hai hệ quản trị cơ sở dữ liệu phổ biến, mỗi loại có những ưu điểm riêng. Nghiên cứu này sẽ phân tích cách thức mà hai hệ thống này có thể được áp dụng trong lĩnh vực ngân hàng.

1.1. Tổng quan về MySQL và Apache Cassandra

MySQL là hệ quản trị cơ sở dữ liệu quan hệ, trong khi Apache Cassandra là cơ sở dữ liệu NoSQL. Mỗi hệ thống có cách thức lưu trữ và quản lý dữ liệu khác nhau, phù hợp với các nhu cầu khác nhau của ứng dụng ngân hàng.

1.2. Tầm quan trọng của dữ liệu trong ngân hàng

Dữ liệu là tài sản quý giá trong ngành ngân hàng. Việc quản lý và phân tích dữ liệu hiệu quả giúp ngân hàng đưa ra quyết định chính xác và nâng cao trải nghiệm khách hàng.

II. Vấn đề và Thách thức trong Ứng dụng Ngân hàng

Mặc dù MySQL và Apache Cassandra có nhiều ưu điểm, nhưng việc triển khai chúng trong ứng dụng ngân hàng cũng gặp phải nhiều thách thức. Các vấn đề như bảo mật dữ liệu, hiệu suất truy vấn và khả năng mở rộng là những yếu tố cần được xem xét kỹ lưỡng.

2.1. Bảo mật dữ liệu trong ngân hàng

Bảo mật dữ liệu là một trong những ưu tiên hàng đầu trong ngành ngân hàng. Việc sử dụng MySQL và Apache Cassandra cần đảm bảo rằng dữ liệu được bảo vệ khỏi các mối đe dọa bên ngoài.

2.2. Hiệu suất truy vấn và quản lý dữ liệu

Hiệu suất truy vấn là yếu tố quan trọng trong ứng dụng ngân hàng. Cần có các phương pháp tối ưu hóa để đảm bảo rằng các truy vấn được thực hiện nhanh chóng và hiệu quả.

III. Phương pháp Giải quyết Vấn đề với MySQL và Apache Cassandra

Để giải quyết các thách thức trong ứng dụng ngân hàng, cần áp dụng các phương pháp và kỹ thuật phù hợp với từng hệ quản trị cơ sở dữ liệu. Việc tối ưu hóa truy vấn và quản lý dữ liệu là rất cần thiết.

3.1. Tối ưu hóa truy vấn trong MySQL

MySQL cung cấp nhiều công cụ để tối ưu hóa truy vấn, bao gồm việc sử dụng chỉ mục và cấu trúc dữ liệu hợp lý. Điều này giúp cải thiện hiệu suất truy vấn trong ứng dụng ngân hàng.

3.2. Quản lý dữ liệu phân tán với Apache Cassandra

Apache Cassandra cho phép quản lý dữ liệu phân tán hiệu quả, giúp ứng dụng ngân hàng có thể mở rộng mà không gặp phải vấn đề về hiệu suất.

IV. Ứng dụng Thực tiễn và Kết quả Nghiên cứu

Nghiên cứu đã chỉ ra rằng việc áp dụng MySQL và Apache Cassandra trong ứng dụng ngân hàng có thể mang lại nhiều lợi ích. Các kết quả thực tiễn cho thấy hiệu suất và khả năng mở rộng của hệ thống được cải thiện đáng kể.

4.1. Kết quả từ việc triển khai MySQL

Việc triển khai MySQL trong ứng dụng ngân hàng đã cho thấy sự cải thiện về tốc độ truy vấn và khả năng quản lý dữ liệu hiệu quả.

4.2. Lợi ích từ việc sử dụng Apache Cassandra

Apache Cassandra đã giúp ứng dụng ngân hàng xử lý khối lượng dữ liệu lớn với độ trễ thấp, đồng thời đảm bảo tính sẵn sàng cao.

V. Kết luận và Tương lai của Nghiên cứu Ứng dụng Ngân hàng

Nghiên cứu này đã chỉ ra rằng MySQL và Apache Cassandra đều có thể được áp dụng hiệu quả trong lĩnh vực ngân hàng. Tương lai của ứng dụng ngân hàng sẽ phụ thuộc vào khả năng tích hợp và tối ưu hóa các hệ thống này.

5.1. Xu hướng phát triển trong ngành ngân hàng

Ngành ngân hàng đang chuyển mình mạnh mẽ với sự phát triển của công nghệ. Việc áp dụng các hệ quản trị cơ sở dữ liệu hiện đại sẽ là xu hướng tất yếu.

5.2. Đề xuất cho nghiên cứu tiếp theo

Cần tiếp tục nghiên cứu sâu hơn về cách thức tối ưu hóa và bảo mật dữ liệu trong ứng dụng ngân hàng, đặc biệt là trong bối cảnh dữ liệu lớn và phân tán.

09/07/2025
Hệ quản trị cơ sở dữ liệu co3021 đề tài nghiên cứu dmbs mysql và apache cassandra và phát triển ứng dụng ngân hàng dựa trên mysql

Trích đoạn nội dung tài liệu

CHƯƠNG 1 PHÂN CÔNG CÔNG VIỆC 1.1 Đánh giá chung STT Họ và tên MSSV Tổng số công việc Đánh giá 1 Lê Nguyên Chương 2112945 7 100% 2 Kim Nhật Thành 2112292 7 100% 3 Vũ Xuân Mai Trung 2115129 7 100% 4 Nguyễn Minh Điềm 2111056 7 100% 5 Phạm Châu Thanh Tùng 2115235 7 100% 1.2 Từng giai đoạn 1.1 Giai đoạn 1 Giai đoạn 1 Tìm hiểu công nghệ và lý thuyết Lê Nguyên Kim Nhật Vũ Xuân Nguyễn Minh Phạm Châu Công việc Chương Thành Mai Trung Điềm Thanh Tùng Thiết kế giao diện người dùng 1 1 Thiết kế database và ERD 1 Xây dựng source 1 1 Tìm hiểu công nghệ 1 1 1 1 1 Tổng 2 2 2 2 2 • Mục đích Phân chia công việc, xác định application domain và chọn DBMS để thực hiện ứng dụng • Ngày, giờ họp Chủ Nhật, 01-12-2024 vào lúc 20:00 • Thành viên tham dự – Lê Nguyên Chương – Kim Nhật Thành – Vũ Xuân Mai Trung – Nguyễn Minh Điềm – Phạm Châu Thanh Tùng • Nội dung cuộc họp Bài tập lớn Hệ Quản trị Cơ sở Dữ Liệu (CO3021) - Học kì 241 Trang 6/62 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học & Kỹ Thuật Máy Tính – Phân chia công việc cho mỗi thành viên trong nhóm. Yêu cầu mỗi thành viên chọn 1 trong 6 topic được đưa ra trong yêu cầu đề BTL – Xác định application domain cho hệ thống và công nghệ sử dụng – Chọn giữa SQL và NoSQL để hiện thực ứng dụng, đối với nhóm chọn giữa MySQL và Apache Cassandra • Kết quả – Mỗi thành viên được phân chia topic như sau: ∗ Lê Nguyên Chương: Data storage & management ∗ Kim Nhật Thành: Indexing ∗ Vũ Xuân Mai Trung: Query processing ∗ Nguyễn Minh Điềm: Transaction ∗ Phạm Châu Thanh Tùng: Concurrency control – Application domain của hệ thống: Hệ thống banking – Công nghệ sử dụng ∗ Backend: Node.js, NestJS, Docker, MySQL (Database) ∗ Frontend: Vite, React, TypeScript, shadcn – DBMS được sử dụng để hiện thực ứng dụng: MySQL • Công việc sắp tới – Tìm hiểu lý thuyết về topic đã được phân chia – Xây dựng source cho chương trình 1.2 Giai đoạn 2 Giai đoạn 2 Hiện thực ứng dụng Lê Nguyên Kim Nhật Vũ Xuân Nguyễn Minh Phạm Châu Công việc Chương Thành Mai Trung Điềm Thanh Tùng Hiện thực frontend 1 1 Hiện thực backend 1 1 Hiện thực database 1 Tổng 1 1 1 1 1 1.3 Giai đoạn 3 Giai đoạn 2 Làm báo cáo và thuyết trình Lê Nguyên Kim Nhật Vũ Xuân Nguyễn Minh Phạm Châu Công việc Chương Thành Mai Trung Điềm Thanh Tùng Hoàn chỉnh báo cáo 1 1 1 1 1 Chuẩn bị nội dung thuyết trình 1 1 1 1 1 Hoàn chỉnh slide thuyết trình 1 1 1 Quay video thuyết trình 1 1 1 1 1 Chỉnh sửa và xuất video 1 1 thuyết trình Tổng 4 4 4 4 4 • Mục đích Hoàn chỉnh báo cáo và phân công thuyết trình • Ngày, giờ họp Thứ ba, 17-12-2024 vào lúc 22:00 • Thành viên tham dự Bài tập lớn Hệ Quản trị Cơ sở Dữ Liệu (CO3021) - Học kì 241 Trang 7/62 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học & Kỹ Thuật Máy Tính – Lê Nguyên Chương – Kim Nhật Thành – Vũ Xuân Mai Trung – Nguyễn Minh Điềm – Phạm Châu Thanh Tùng • Nội dung cuộc họp – Hoàn chỉnh báo cáo chung của nhóm – Phân chia công việc cho buổi thuyết trình • Kết quả – Thống nhất ngày giờ báo cáo thuyết trình – Cả nhóm đọc sơ qua bài báo cáo • Công việc sắp tới – Sửa lỗi trong hệ thống – Mỗi thành viên tự hoàn chỉnh phần nội dung của mình trong bài báo cáo – Mỗi thành viên chuẩn bị nội dung và thiết bị để quay video báo cáo thuyết trình – Một thành viên trong nhóm đứng ra tổng hợp các video thuyết trình của nhóm, chỉnh sửa và gộp lại thành một video duy nhất để nộp Bài tập lớn Hệ Quản trị Cơ sở Dữ Liệu (CO3021) - Học kì 241 Trang 8/62 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học & Kỹ Thuật Máy Tính CHƯƠNG 2 GIỚI THIỆU ĐỀ TÀI Trong thời đại công nghệ số hiện nay, dữ liệu đóng vai trò ngày càng quan trọng , được xem là nguồn tài nguyên cốt lõi giúp các tổ chức và doanh nghiệp ra quyết định chính xác, hiệu quả. Việc thu thập, lưu trữ và phân tích dữ liệu giúp xác định xu hướng, cải thiện quy trình hoạt động và tạo ra lợi thế cạnh tranh. Tuy nhiên, để quản lý khối lượng dữ liệu khổng lồ một cách an toàn và hiệu quả, Hệ Quản trị Cơ sở Dữ Liệu trở thành công cụ không thể thiếu.

Hệ Quản trị Cơ sở Dữ Liệu cung cấp nền tảng cho việc tổ chức, lưu trữ và truy xuất dữ liệu một cách có hệ thống, đồng thời đảm bảo tính toàn vẹn, bảo mật và khả năng truy cập dữ liệu nhanh chóng. Với sự hỗ trợ của Hệ Quản trị Cơ sở Dữ Liệu, các doanh nghiệp có thể tối ưu hóa quy trình làm việc, nâng cao chất lượng dịch vụ và đáp ứng tốt hơn nhu cầu của người dùng. Trong các Hệ Quản trị Cơ sở Dữ Liệu hiện nay, có hai loại đang phổ biến hơn cả đó là SQL và NoSQL. Cả hai loại đều có khả năng đáp ứng các nhu cầu khác nhau trong quản lý và xử lý dữ liệu.

Hệ Quản trị Cơ sở Dữ Liệu SQL hoạt động dựa trên mô hình bảng với dữ liệu được tổ chức thành các hàng và cột. Việc tổ chức dữ liệu dữ liệu thành các bảng dữ liệu giúp Hệ Quản trị Cơ sở Dữ Liệu SQL cung cấp khả năng truy vấn mạnh mẽ, đảm bảo tính toàn vẹn và nhất quán của dữ liệu thông qua việc tuân thủ các nguyên tắc ACID. Bên cạnh đó, Hệ Quản trị Cơ sở Dữ Liệu NoSQL được thiết kế để xử lý dữ liệu phi cấu trúc hoặc bán cấu trúc với khả năng mở rộng linh hoạt; nhờ vào lợi thế schema linh hoạt, không cố định, cho phép lưu trữ dữ liệu dưới nhiều dạng như document-based (ví dụ: MongoDB), key-value (ví dụ: Redis), column-family (ví dụ: Cassandra) và graph-based (ví dụ: Neo4j). Tùy vào tính chất của dữ liệu và nhu cầu cụ thể của dự án, việc lựa chọn giữa SQL và NoSQL sẽ giúp tối ưu hóa hiệu quả quản lý và khai thác dữ liệu.

Để có thể làm rõ hơn điều này, Bài tập lớn của nhóm chúng em sẽ đi vào phân tích cụ thể về các khía cạnh của Hệ Quản trị Cơ sở Dữ Liệu SQL và NoSQL thông qua 2 Hệ Quản trị Cơ sở Dữ Liệu cụ thể, đó là MySQL cho Hệ Quản trị Cơ sở Dữ Liệu SQL và Cassandra cho Hệ Quản trị Cơ sở Dữ Liệu NoSQL. Ngoài ra, Bài tập lớn cũng sẽ dựa trên những phân tích lý thuyết ở trên để sử dụng một Hệ Quản trị Cơ sở Dữ Liệu để phát triển cho một ứng dụng cụ thể - Ứng dụng Ngân hàng. Bài tập lớn Hệ Quản trị Cơ sở Dữ Liệu (CO3021) - Học kì 241 Trang 9/62 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học & Kỹ Thuật Máy Tính CHƯƠNG 3 TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL VÀ CASSANDRA Chương này sẽ giới thiệu tổng quan về MySQL và Cassandra. Thông tin của chương này được tham khảo từ [2] và [3] 3.1 Hệ Quản trị Cơ sở Dữ Liệu MySQL 3.1 Tổng quan về MySQL MySQL là một hệ quản trị cơ sở dữ liệu SQL mã nguồn mở phổ biến nhất, được phát triển, phân phối và hỗ trợ bởi Oracle Corporation.

MySQL có các đặc điểm sau: • Là một Hệ Quản trị Cơ sở Dữ Liệu: Là nơi lưu trữ, tập hợp dữ liệu có cấu trúc, có thể đơn giản như danh sách mua sắm hoặc phức tạp như dữ liệu lớn trong mạng lưới doanh nghiệp. • Cơ sở dữ liệu trong MySQL là Cơ sở dữ liệu quan hệ: MySQL lưu trữ dữ liệu dưới dạng các bảng riêng biệt và tổ chức cấu trúc nhằm tối ưu tốc độ. MySQL sử dụng SQL (Structured Query Language), ngôn ngữ chuẩn hóa để truy cập và quản lý cơ sở dữ liệu. • Là phần mềm mã nguồn mở: Bất kỳ người dùng nào cũng đều có thể tải xuống, sử dụng và chỉnh sửa phần mềm mà không cần phải trả bất kỳ chi phí nào.

Ngoài ra, MySQL có khá nhiều kiểu Storage Engine khác nhau do kiến trúc mà MySQL sử dụng là "Pluggable Storage Engine". Trong phạm vi Bài tập lớn, ta chỉ đề cập và sử dụng loại Storage Engine mặc định của MySQL là InnoDB.2 Tổng quan về Storage Engine: InnoDB InnoDB là động cơ lưu trữ mặc định trong MySQL 8.4, hỗ trợ tính toàn vẹn giao dịch (ACID), bảo vệ dữ liệu người dùng qua commit, rollback, and crash-recovery sau sự cố. Nó sử dụng khóa cấp dòng và các chỉ mục phân cụm để cải thiện hiệu suất và khả năng xử lý. Đồng thời, InnoDB cũng hỗ trợ các ràng buộc FOREIGN KEY để bảo vệ tính toàn vẹn dữ liệu.

Bài tập lớn Hệ Quản trị Cơ sở Dữ Liệu (CO3021) - Học kì 241 Trang 10/62 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học & Kỹ Thuật Máy Tính Lược đồ sau biểu thị kiến trúc của InnoDB Storage Engine.1: Lược đồ kiến trúc của InnoDB 3.2 Hệ Quản trị Cơ sở Dữ Liệu Cassandra Apache Cassandra là một cơ sở dữ liệu NoSQL phân tán mã nguồn mở sử dụng mô hình lưu trữ dạng cột. Cassandra ban đầu được thiết kế tại Facebook sử dụng kiến trúc Staged Event-Driven (SEDA) để triển khai sự kết hợp giữa kỹ thuật lưu trữ và sao chép phân tán Dynamo của Amazon và mô hình dữ liệu và động cơ lưu trữ Bigtable của Google. Dynamo và Bigtable đều được phát triển để đáp ứng các yêu cầu mới nổi về hệ thống lưu trữ có thể mở rộng, đáng tin cậy và sẵn sàng cao, nhưng mỗi hệ thống đều có những hạn chế khác nhau. Cassandra được thiết kế như một sự kết hợp của cả hai hệ thống để đáp ứng các yêu cầu lưu trữ quy mô lớn, cả về kích thước dữ liệu và khối lượng truy vấn.

Khi các ứng dụng bắt đầu có nhu cầu về sao chép dữ liệu đầy đủ, kèm theo đó là khả năng đọc và ghi với độ trễ thấp, việc thiết kế một mô hình cơ sở dữ liệu mới trở nên cấp thiết vì các hệ thống cơ sở dữ liệu quan hệ thời đó gặp khó khăn trong việc đáp ứng các yêu cầu mới của các ứng dụng quy mô toàn cầu.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ