Đồ án tốt nghiệp: Kiểm thử Database trên Oracle bằng DBeaver - Trần Thị Khánh (ĐH Mỏ - Địa chất)

Đồ án tốt nghiệp nghiên cứu phương pháp kiểm thử database trên Oracle bằng công cụ DBeaver. Nội dung bao gồm lý thuyết, quy trình và ứng dụng thực tế trong

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2021

97
1
0

Phí lưu trữ

35 Point

Tóm tắt

I. Tổng quan về kiểm thử Database trên Oracle

Kiểm thử Database trên Oracle là quy trình xác minh tính chính xác, toàn vẹn và hiệu suất của hệ cơ sở dữ liệu. Quá trình này đảm bảo dữ liệu được lưu trữ, truy xuất và xử lý đúng theo yêu cầu nghiệp vụ. Kiểm thử Database bao gồm nhiều loại khác nhau. Kiểm thử cấu trúc dữ liệu xác minh các bảng, view, index và stored procedure hoạt động đúng. Kiểm thử toàn vẹn dữ liệu đảm bảo các ràng buộc khóa chính, khóa ngoại và ràng buộc duy nhất được thực thi. Kiểm thử logic nghiệp vụ kiểm tra các trigger, function và procedure xử lý dữ liệu chính xác. Kiểm thử hiệu năng đánh giá thời gian phản hồi của các truy vấn SQL. Kiểm thử bảo mật xác minh quyền truy cập và phân quyền người dùng. Đối với sinh viên Công nghệ thông tin, kiểm thử Database là kỹ năng quan trọng. Đồ án tốt nghiệp về chủ đề này giúp nắm vững quy trình kiểm thử chuyên nghiệp. Công cụ DBeaver hỗ trợ đắc lực cho việc kết nối và kiểm thử Oracle Database một cách trực quan, hiệu quả.

1.1. Khái niệm kiểm thử Database là gì

Kiểm thử Database là quá trình kiểm tra và xác minh tính chính xác của dữ liệu trong hệ cơ sở dữ liệu. Quá trình này bao gồm kiểm tra cấu trúc bảng, ràng buộc dữ liệu, trigger, stored procedure và các truy vấn SQL. Mục tiêu đảm bảo dữ liệu được lưu trữ và xử lý đúng theo yêu cầu nghiệp vụ. Kiểm thử Database khác biệt so với kiểm thử giao diện người dùng. Kiểm thử GUI tập trung vào hiển thị và tương tác. Kiểm thử Database tập trung vào tầng dữ liệu bên dưới. Các kiểm thử viên cần có kiến thức SQL vững chắc. Họ phải hiểu rõ cấu trúc cơ sở dữ liệu quan hệ. Công cụ hỗ trợ như DBeaver giúp đơn giản hóa quá trình này đáng kể.

1.2. Giới thiệu cơ sở dữ liệu Oracle

Oracle Database là hệ quản trị cơ sở dữ liệu quan hệ hàng đầu thế giới. Oracle được phát triển bởi tập đoàn Oracle Corporation. Hệ thống này sử dụng kiến trúc đa mô hình, hỗ trợ xử lý事务 hiệu suất cao. Oracle phù hợp cho các ứng dụng doanh nghiệp lớn cần độ tin cậy cao. Hệ thống cung cấp các tính năng mạnh mẽ như PL/SQL, stored procedure, trigger và view. Oracle hỗ trợ quản lý quyền truy cập chi tiết đến cấp độ cột dữ liệu. Các phiên bản phổ biến bao gồm Oracle 11g, 12c, 19c và 21c. Sinh viên thường sử dụng Oracle Express Edition miễn phí cho mục đích học tập và nghiên cứu đồ án tốt nghiệp.

II. Các vấn đề trong kiểm thử Database Oracle

Kiểm thử Database Oracle đối mặt với nhiều thách thức phức tạp. Vấn đề đầu tiên là tính toàn vẹn dữ liệu. Dữ liệu phải tuân thủ các ràng buộc khóa chính, khóa ngoại và ràng buộc kiểm tra. Vi phạm ràng buộc dẫn đến dữ liệu không nhất quán. Vấn đề thứ hai là hiệu suất truy vấn. Các câu SQL viết sai cách tạo ra thời gian phản hồi chậm. Điều này ảnh hưởng nghiêm trọng đến trải nghiệm người dùng cuối. Vấn đề thứ ba là bảo mật dữ liệu. Hệ thống phải kiểm soát quyền truy cập chặt chẽ. Rò rỉ dữ liệu gây hậu quả nghiêm trọng cho doanh nghiệp. Vấn đề thứ tư là tính đồng thời. Nhiều phiên bản truy cập cùng lúc có thể gây xung đột dữ liệu. Vấn đề thứ năm là kiểm thử migration dữ liệu. Khi nâng cấp hoặc di chuyển hệ thống, dữ liệu phải được kiểm tra kỹ lưỡng. Việc thiếu công cụ kiểm thử phù hợp làm tăng thời gian và chi phí kiểm thử. DBeaver ra đời nhằm giải quyết các vấn đề trên một cách trực quan.

2.1. Thách thức về toàn vẹn dữ liệu

Toàn vẹn dữ liệu là thách thức lớn nhất trong kiểm thử Database Oracle. Hệ thống phải đảm bảo dữ liệu không bị trùng lặp, không có giá trị NULL ngoài ý muốn và tuân thủ đúng ràng buộc. Kiểm thử viên cần xác minh các ràng buộc entity integrity với khóa chính. Referential integrity với khóa ngoại phải được kiểm tra kỹ. Domain integrity đảm bảo dữ liệu nằm trong phạm vi cho phép. User-defined integrity kiểm tra các ràng buộc nghiệp vụ tùy chỉnh. Các trigger và stored procedure cũng cần được kiểm tra logic xử lý. Lỗi toàn vẹn dữ liệu gây ra hậu quả nghiêm trọng cho toàn bộ ứng dụng.

2.2. Vấn đề hiệu suất và bảo mật

Hiệu suất và bảo mật là hai vấn đề then chốt trong kiểm thử Database. Về hiệu suất, các câu truy vấn SQL cần được tối ưu hóa. Sử dụng index đúng cách giúp tăng tốc truy vấn đáng kể. Kiểm thử hiệu năng đo thời gian thực thi của các câu SQL phức tạp. Về bảo mật, hệ thống phải ngăn chặn các cuộc tấn công SQL injection. Quản lý quyền truy cập phải tuân thủ nguyên tắc least privilege. Kiểm thử bảo mật bao gồm xác minh quyền SELECT, INSERT, UPDATE, DELETE. Oracle cung cấp Virtual Private Database và Label Security để tăng cường bảo mật. Công cụ DBeaver hỗ trợ kiểm tra quyền truy cập trực quan trên giao diện.

III. Sử dụng DBeaver để kiểm thử Database Oracle

DBeaver là công cụ quản lý Database miễn phí, mã nguồn mở, hỗ trợ đa nền tảng. Công cụ này hoạt động trên Windows, macOS và Linux. DBeaver kết nối với Oracle Database thông qua JDBC driver. Quy trình kiểm thử Database bằng DBeaver gồm nhiều bước rõ ràng. Bước đầu tiên là thiết lập kết nối đến Oracle Database. Người dùng nhập thông tin hostname, port, SID và thông tin xác thực. Bước thứ hai là khám phá cấu trúc Database. DBeaver hiển thị cây thư mục gồm tablespaces, schemas, tables, views và procedures. Bước thứ ba là thực thi các câu lệnh SQL kiểm thử. DBeaver cung cấp editor SQL với tính năng autocomplete tiện lợi. Bước thứ tư là phân tích kết quả truy vấn. Công cụ hiển thị dữ liệu dạng bảng, hỗ trợ xuất file CSV, Excel. Bước cuối cùng là ghi nhận kết quả kiểm thử. DBeaver giúp sinh viên thực hiện đồ án tốt nghiệp hiệu quả hơn. Giao diện trực quan giảm thời gian học tập so với dòng lệnh SQL*Plus.

3.1. Cài đặt và kết nối Oracle với DBeaver

Cài đặt DBeaver đơn giản và nhanh chóng. Truy cập trang chủ dbeaver.io để tải phiên bản Community Edition miễn phí. Chọn phiên bản phù hợp với hệ điều hành đang sử dụng. Quá trình cài đặt chỉ cần vài bước next đơn giản. Sau khi cài đặt, cần tải Oracle JDBC driver từ trang Oracle. Mở DBeaver, chọn New Database Connection và tìm Oracle. Nhập các thông số kết nối gồm Host, Port và SID. Thông thường Oracle sử dụng port 1521 mặc định. Nhập username và password của tài khoản Oracle. Nhấn Test Connection để kiểm tra kết nối thành công. DBeaver sẽ xác nhận kết nối hoạt động đúng.

3.2. Các thao tác kiểm thử thực tế trên DBeaver

DBeaver hỗ trợ nhiều thao tác kiểm thử Database thực tế. Kiểm thử cấu trúc bảng bằng cách mở tab Properties của bảng. Xác minh các cột, kiểu dữ liệu, ràng buộc và index hiển thị đúng. Kiểm thử dữ liệu bằng cách chạy câu SELECT với các điều kiện khác nhau. Sử dụng hàm COUNT, SUM, AVG, MIN, MAX để kiểm tra dữ liệu tổng hợp. Kiểm thử INSERT INTO bằng cách thêm dữ liệu mẫu vào bảng. Kiểm tra ràng buộc UNIQUE và PRIMARY KEY khi nhập dữ liệu trùng. Kiểm thử UPDATE và DELETE để xác minh trigger hoạt động đúng. Sử dụng GROUP BY và ORDER BY để kiểm tra phân nhóm dữ liệu. DBeaver lưu lại lịch sử truy vấn方便 kiểm tra lại kết quả.

IV. Kết luận và ứng dụng kiểm thử Database

Kiểm thử Database trên Oracle bằng DBeaver mang lại nhiều lợi ích thiết thực. Quá trình này đảm bảo hệ cơ sở dữ liệu hoạt động chính xác và ổn định. DBeaver là công cụ hiệu quả hỗ trợ sinh viên thực hiện đồ án tốt nghiệp. Công cụ này cung cấp giao diện trực quan, dễ sử dụng cho người mới bắt đầu. Các tính năng nổi bật bao gồm kết nối đa Database, editor SQL mạnh mẽ và quản lý dữ liệu trực quan. Kiểm thử Database giúp phát hiện lỗi sớm trong quy trình phát triển phần mềm. Việc phát hiện lỗi sớm giúp giảm chi phí sửa chữa đáng kể. Kiểm thử Database cần được thực hiện xuyên suốt vòng đời dự án. Đội ngũ phát triển nên xây dựng bộ test case chi tiết cho từng module. Tự động hóa kiểm thử giúp tăng năng suất và giảm sai sót con người. Kiến thức kiểm thử Database là kỹ năng cần thiết cho nghề kiểm thử phần mềm. Sinh viên nên rèn luyện kỹ năng SQL và sử dụng thành thạo công cụ DBeaver.

4.1. Lợi ích của kiểm thử Database chuyên nghiệp

Kiểm thử Database chuyên nghiệp mang lại nhiều lợi ích cho dự án phần mềm. Đầu tiên là đảm bảo chất lượng dữ liệu lưu trữ trong hệ thống. Dữ liệu chính xác giúp ứng dụng hoạt động đúng kỳ vọng của khách hàng. Thứ hai là giảm thiểu rủi ro bảo mật thông tin. Kiểm thử bảo mật Database ngăn chặn các lỗ hổng tiềm ẩn. Thứ ba là tối ưu hóa hiệu suất hệ thống. Phát hiện các câu SQL chậm giúp cải thiện thời gian phản hồi. Thứ tư là tăng độ tin cậy của ứng dụng khi triển khai thực tế. Cuối cùng là tuân thủ các tiêu chuẩn chất lượng phần mềm quốc tế như ISO 25010.

4.2. Ứng dụng thực tế và hướng phát triển

Kiểm thử Database có ứng dụng rộng rãi trong ngành phần mềm hiện nay. Các công ty phần mềm lớn đều có đội ngũ kiểm thử Database chuyên trách. Ngành tài chính, ngân hàng đặc biệt coi trọng kiểm thử Database. Dữ liệu giao dịch phải chính xác tuyệt đối để tránh tổn thất tài chính. Ngành y tế cũng cần kiểm thử nghiêm ngặt để bảo vệ thông tin bệnh nhân. Hướng phát triển bao gồm kiểm thử tự động hóa với Selenium kết hợp DBeaver. Kiểm thử hiệu năng Database với công cụ JMeter chuyên dụng. Kiểm thử Database trên môi trường Cloud với Oracle Cloud Infrastructure. Học viên nên cập nhật công nghệ mới liên tục để nâng cao năng lực chuyên môn.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

28/05/2026

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

CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ 1. Các khái niệm về kiểm thử và một số khái niệm liên quan 1. Kiểm thử là gì? Kiểm thử hay còn gọi là testing, là quá trình đánh giá một hệ thống hay các thành phần của nó với mục đích tìm xem liệu hệ thống có đáp ứng các yêu cầu được đã được chỉ định hay không. Nói một cách đơn giản, kiểm thử được thực hiện trên một hệ thống để xác định bất kỳ lỗ hổng, các lỗi hoặc các yêu cầu đang bị thiếu hay trái ngược với các yêu cầu thực tế đã được đề ra.

Theo tiêu chuẩn ANSI / IEEE 1059, kiểm thử có thể được định nghĩa là quá trình phân tích các thành phần của phần mềm để phát hiện sự khác biệt giữa những điều kiện của phần mềm đang tồn tại thực tế và những điều kiện được yêu cầu (đó là defects/ errors/ bugs) và từ đó có thể đánh giá được chất lượng của chất lượng của phần mềm. Một số khái niêm liên quan - Bug (Lỗi): là một khiếm khuyết trong một thành phần hoặc hệ thống mà nó có thể làm cho thành phần hoặc hệ thống này không thực hiện đúng chức năng yêu cầu của nó, ví dụ như thông báo sai hoặc định nghĩa dữ liệu không đúng. - Testcase (Kịch bản kiểm thử) có nghĩa là: test là kiểm tra, cases là các tình huống. Tức là các tình huống, các trường hợp cần kiểm tra, kiểm tra các chức năng của phần mềm hoạt động đúng hay sai.

Được viết dựa trên tài liệu giải pháp hay còn gọi là tài liệu SRS + Mô tả dữ liệu đầu vài định test cái gì + Hành động hay mô tả các bước để test (Step) + Và một kết quả mong đợi để xác định một chức năng của ứng dụng phần mềm hoạt động đúng hay không. - Re-test: Đồng nghĩa với confirmation testing (kiểm tra xác nhận), Là thực hiện test để kiểm tra xem bug mình đã post có được fixed hay chưa (kiểm tra lại xem đã hết Trần Thị Khánh 12 Báo cáo thực tập tốt nghiệp bị lỗi mà mình đã gặp chưa). Nếu đã được sửa xong thì mình báo cáo Close bug. Ngược lại, nếu vẫn còn lỗi thì báo cáo re-open để DEV sửa lại.

Yêu cầu khách hàng Hệ thống được phát triển dựa trên nhu cầu của khách hàng. Chính vì lẽ đó, các chức năng của hệ thống được xây dựng dựa trên việc thu nhập, phân tích, khảo sát nhu cầu khách hàng thông qua những yêu cầu cụ thể. Đối với hệ thống, yêu cầu thường được tổng hợp từ phí khách hàng, các tổ chức có mức độ chuyên môn 1. Tài liệu Đặc tả yêu cầu (SRS document) Tài liệu đặc tả yêu cầu là những yêu cầu chính thức về những gì cần phải thực hiện của đội phát triển phần mềm.

Tài liệu đặc tả yêu cầu nên bao gồm tất cả các định nghĩa về yêu cầu của người sử dụng và đặc tả yêu cầu của hệ thống. Các khái niệm về lỗi đã nói ở trên cũng chính là đề cập đến việc phần mềm sau khi xây dựng hoạt động không đúng với bản đặc tả yêu cầu phần mềm. Tài liệu đặc tả yêu cầu cũng cần cung cấp đầy đủ các thông tin về chi phí, rủi ro và lịch trình cho quá trình phát triển sản phẩm. Đặc tả yêu cầu được viết ra phục vụ rất nhiều đối tượng từ người dùng hệ thống, khách hàng đến các nhà phát triển và bảo trì phần mềm.

Do đó, tài liệu đặc tả nên được viết bằng ngôn ngữ tự nhiên, sử dụng biểu đồ, bảng biểu để đảm bảo tính dễ hiểu, dễ sử dụng cho tất cả các đối tượng trên. Trần Thị Khánh 13 Báo cáo thực tập tốt nghiệp 1. Quy trình kiểm thử Hình : TỔNG QUAN VỀ KIỂM THỬ. Quy trình kiểm thử Lập kế hoạch test (Test Plan): Test Plan chính là tài liệu tổng quan về việc kiểm thử 1 project: phạm vi kiểm thử, hướng tiếp cận, quy trình kiểm thử, tài nguyên và nhân lực test cần có, các chức năng, module cần được test, các công cụ và môi trường test cần có.

Bao gồm cả kế hoạch ai test chức năng nào, khi nào bắt đầu thực hiện viết và hoàn thành testcase; khi nào bắt đầu thực hiện test và khi nào hoàn thành test. Dựa vào kế hoạc chung của dự án để lên kế hoạch cho bên kiểm thử. Trong trường hợp khi làm thực tế thấy có khả năng không đúng như kế hoạch đã lên thì phải báo lại cho Test Lead hoặc người Quản trị dự án sớm. Thực hiện viết Testcase: Test case mô tả một dữ liệu đầu vào (input), hành động (action) và một kết quả mong đợi (expected response), để xác định một chức năng của ứng dụng phần mềm hoạt động đúng hay không.

Biểu mẫu Testcase gồm có 4 nội dung chính: Trần Thị Khánh 14 Báo cáo thực tập tốt nghiệp - Mục đích kiểm thử - Các bước thực hiện - Kết quả mong muốn (Hệ thống phải chạy đúng như kết quả mong muốn) - Kết quả thực thế (điền Pass/Fail) Thực hiện Test (Testing Execution): Thực hiện test trực tiếp trên hệ thống sau khi lập trình viên bàn giao. Dựa trên các test cases đã được viết trước đó để thực hiện test trên hệ thống. Thực hiện ghi nhận kết quả kiểm thử vào cột kết quả của tài liệu kịch bản kiểm thử. Nếu kết quả kiểm thử là thất bại thì nhóm kiểm thử ghi nhận lỗi lên hệ thống quản lý lỗi.

Nhóm kiểm thử, QTDA, nhóm lập trình, nhóm giải pháp tham gia vào quá trình quản lý/xử lý lỗi (bug/ defect) Lập báo cáo Kiểm thử (Test Report): Test Report có thể hiểu đơn giản là một bản tóm tắt, trong đó chứa mục tiêu kiểm thử, hoạt động kiểm thử và kết quả. Mục đích của test report là giúp những bộ phận liên quan như bộ phận dev, test, phân tích, v.v… đánh giá được chất lượng sản phẩm và liệu sản phẩm hay giải pháp đó đã có thể đưa vào vận hành được chưa. Tuy nhiên, test report không chỉ dùng để đánh giá chất lượng, mà còn được sử dụng để những nhà phát triển hiểu rõ hơn về quy trình của bài test. Test Report thường chứa các nội dung như: -Số lương test cases đã viết/ số lượng testcase đã test -Số lượng test cases passed/failed -Số lượng defects tìm ra và status, severity của defects -Số lượng defects trên từng module -Các vấn đề liên quan đến testing, bản build, tiến độ sửa lỗi… Trần Thị Khánh 15 Báo cáo thực tập tốt nghiệp 1.

Các kỹ thuật kiểm thử 1. Phương pháp kiểm thử hộp trắng (White Box Testing) Kiểm thử hộp trắng là phương pháp kiểm thử dựa vào cả giải thuật, cấu trúc code bên trong phần mềm. Là phương pháp kiểm thử mà các chuyên gia tester tập trung vào các dữ liệu đầu vào và ra, truy cập thẳng vào bên trong source code. Hình : TỔNG QUAN VỀ KIỂM THỬ.

White Box Testing Các loại white box testing: - API testing (application programming interface) – Kiểm thử ứng dụng bằng cách sử dụng các hàm API public và private. - Code coverage – Là việc tạo các trường hợp test để thỏa mãn một số điều kiện bao phủ code – code coverage (ví dụ như, người thiết kế test có thể tạo ra các trường hợp test sao cho tất cả các câu lệnh của chương trình đều được thực thi ít nhất 1 lần). - Fault injection methods – cải tiến bao phủ một trường hợp bằng cách đưa một số lỗi vào để test các đường dẫn code. - Mutation testing methods.

- Static testing – White box testing bao gồm tất cả các phương pháp kiểm thử tĩnh (ví dụ review code). Trần Thị Khánh 16 Báo cáo thực tập tốt nghiệp Với phương pháp kiểm thử này, kiểm thử viên không cần hiểu biết về mã lệnh để xử lý chức năng đó thế nào. Các kiểm thử viên sẽ căn cứ vào tài liệu đặc tả, bản prototype của phần mềm cũng như dựa trên các testcase đã viết để kiểm tra chức năng. Cả hai hình thức trên đề trả về một cách đo độ bao phủ code, sự đo lường được tính bằng phần trăm %.

Ưu điểm: Dễ dàng tự động hóa Cung cấp các quy tắc dựa trên kỹ thuật rõ ràng cho thời điểm ngừng thử nghiệm. Buộc các chuyên gia thử nghiệm phải suy luận cẩn thận về việc test lỗi vì vậy lỗi sẽ được triệt để. Nhược điểm: Khá tốn thời gian và công sức. Vẫn sẽ tồn tại lỗi.

Để kiểm tra được bằng phương pháp này cần có kinh nghiệm và trình độ chuyên sâu về kiểm thử. Phương pháp kiểm thử hộp đen (Black Box Testing) Kiểm thử hộp đen là phương pháp test dựa trên đầu vào và đầu ra của chương trình để test mà không quan tâm tới code bên trong. Chỉ test chức năng và giao diện dựa trên nghiệp vụ của hệ thống mà không cần quan tâm đến code bên trong Trần Thị Khánh 17 Báo cáo thực tập tốt nghiệp Hình : TỔNG QUAN VỀ KIỂM THỬ. Black Box Testing Ưu điểm: Rất phù hợp và hiệu quả khi mà số lượng các dòng lệnh của hệ thống là lớn.

Không cần truy cập vào các dòng lệnh. - Phân biệt được rõ ràng quan điểm của người dùng với quan điểm của nhà phát triển. Không cần đòi hỏi những kiến thức về ngôn ngữ lập trình ở các kiểm thử viên để có thể kiểm thử hệ thống. Nhược điểm: Bị giới hạn ở độ bao phủ của các trường hợp kiểm thử.

Sẽ không hiệu quả bởi thực tế các kiểm thử viên bị giới hạn kiến thức về hệ thống. Độ bao phủ sẽ bị thiếu vì kiểm thử viên không kiểm tra được các đoạn lệnh của hệ thống hoặc tập trung vào các dòng lệnh dễ xảy ra lỗi. Sẽ khó để có thể thiết kế đầy đủ các trường hợp kiểm thử. Phương pháp kiểm thử hộp xám (Gray Box Testing) Kiểm thử hộp xám là một phương pháp kiểm thử phần mềm được kết hợp giữa Phương pháp kiểm thử Black Box (Hộp đen) và White Box (Hộp trắng).

Trong kiểm Trần Thị Khánh 18 Báo cáo thực tập tốt nghiệp thử hộp xám, cấu trúc bên trong sản phẩm chỉ được biết một phần, tester có thể truy cập vào cấu trúc dữ liệu bên trong và thuật toán của chương trình với mục đích là để thiết kế testcase, nhưng khi test thì test như là người dùng cuối hoặc là ở mức hộp đen. Hình : TỔNG QUAN VỀ KIỂM THỬ. Gray Box Testing Ưu điểm: Là sự kết hợp của kiểm thử hộp đen và hộp trắng nên sẽ tối ưu hơn. Kiểm tra bằng phương pháp hộp màu xám có thể thiết kế kịch bản thử nghiệm phức tạp một cách thông minh hơn.

Nhược điểm: Rất khó để liên kết lỗi khi thực hiện kiểm tra hộp xám cho một ứng dụng có hệ thống phân tán.

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