Mục đích nghiên cứu Nghiên cứu về lĩnh vực phương pháp điểm chuẩn Benchmark, xác định tầm quan trọng, vai trò của điểm chuẩn trong kỹ thuật phần mềm và các vấn đề liên quan đến cơ sở dữ
Trang 1CHƯƠNG TRÌNH QUẢN LÝ LHS LÀO
LUẬN VĂN THẠC SĨ KỸ THUẬTCHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
Hà Nội – 2018
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
PEUNGNHOTHOUNG Tavansai
PHƯƠNG PHÁP ĐÁNH GIÁ HIỆU NĂNG PHẦN MỀM QUẢN TRỊ CƠ
SỞ DỮ LIỆU VÀ ỨNG DỤNG THỬ NGHIỆM TRONG CHƯƠNG TRÌNH
Hà Nội – 2018
Trang 3LỜI CÁM ƠN
Trước tiên, tôi xin được bày tỏ sự trân trọng và lòng biết ơn sâu sắc đối với Thầy PGS.TS Huỳnh Quyết Thắng, người đã trực tiếp hướng dẫn tôi trong toàn bộ quá trình thực hiện đề tài, dù rất bận với công việc giảng dạy nhưng Thầy vẫn dành nhiều thời gian quý báu và tận tình chỉ bảo, hướng dẫn tôi trong việc nghiên cứu, thực hiện luận văn
Xin cảm ơn các thầy cô giáo ở Viện Công nghệ thông tin và Truyền thông – Trường Đại học Bách khoa Hà Nội đã giúp đỡ tôi trong quá trình học tập và thực hiện luận văn.
Xin cảm ơn toàn thể các bạn bè, đồng nghiệp, những người đã giúp đỡ tôi rất nhiều và đặc biệt là các thành viên trong gia đình đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ tôi trong suốt quá trình học tập vừa qua
Mặc dù đã nỗ lực hết mình nhưng do thời gian có hạn, năng lực bản thân còn nhiều hạn chế và một số khó khăn nhất định trong việc nghiên cứu nên luận văn không thể không có những thiếu sót Tôi rất mong được các thày cô và các bạn góp ý kiến thêm
Xin trân trọng cám ơn!
Hà Nội, ngày 04 tháng 04 năm 2018
TÁC GIẢ
PEUNGNHOTHOUNG Tavansai
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của PGS TS Huỳnh Quyết Thắng Tôi cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cám ơn và các thông tin trích dẫn trong luận văn này đã được chỉ rõ nguồn gốc
Hà Nội, ngày 04 tháng 04 năm 2018
TÁC GIẢ
PEUNGNHOTHOUNG Tavansai
Trang 5MỤC LỤC
DANH MỤC CÁC KÍ HIỆU VÀ VIẾT TẮT 1
DANH MỤC CÁC BẢNG 3
DANH MỤC HÌNH VẼ 4
MỞ ĐẦU 5
1 Lý do chọn đề tài 5
2 Mục đích nghiên cứu 5
3 Nhiệm vụ nghiên cứu 5
4 Phạm vi nghiên cứu và giới hạn 5
5 Phương pháp nghiên cứu 6
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT VỀ HIỆU NĂNG, GIÁ TRỊ TÍNH NĂNG PHẦN MỀM VÀ ĐO LƯỜNG HỆ THỐNG 7
1.1 Tổng quan về hiệu năng phần mềm và ứng dụng 7
1.2 Các khái niệm cơ bản trong đo lường hiệu năng 8
1.3 Hệ thống xử lý sự kiện EP 10
1.3.1 Tổng quan EP 10
1.3.2 Chức năng xử lý sự kiện 11
1.4 Khái niệm và phân loại Điểm chuẩn 13
1.4.1 Điểm chuẩn vi mô 15
1.4.2 Điểm chuẩn vĩ mô 16
1.5 Tiểu kết chương 17
CHƯƠNG 2 LÝ THUYẾT CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ KỸ THUẬT PHÂN TÁN DỮ LIỆU 18
2.1 Khái niệm và định nghĩa cơ sở dữ liệu phân tán 18
2.1.1 Tổng quan cơ sở dữ liệu phân tán 18
2.1.2 Khái niệm xử lý phân tán 18
2.2 Khái niệm và sự cần thiết phân mảnh dữ liệu 19
2.3 Các quy tắc phân mảnh 19
2.3.1 Tính đầy đủ 19
2.3.2 Tính phục hồi 19
2.3.3 Tính tách biệt 20
2.4 Kỹ thuật phân mảnh ngang dữ liệu 20
2.4.1 Khái niệm phân mảnh ngang dữ liệu 20
2.4.2 Thông tin cần thiết của phân mảnh ngang 20
2.5 Kỹ thuật phân mảnh dọc dữ liệu 23
2.5.1 Khái niệm phân mảnh dọc 23
2.5.2 Thông tin cần thiết của phân mảnh dọc 24
Trang 62.6.1 Khái niệm 27
2.6.2 Bài toán phân bố 28
2.6.3 Thông tin cần thiết cho bài toán phân bố 29
2.6.4 Mô hình phân bố dữ liệu 30
2.7 Xử lý truy vấn phân tán dữ liệu 32
2.7.1 Vấn đề xử lý truy vấn 33
2.7.2 Mục đích của việc xử lý truy vấn 38
2.7.3 Ph ân rã truy vấn 38
2.7.4 Xây dựng câu truy vấn phân tán 39
2.8 Tiểu kết chương 40
CHƯƠNG 3 XÂY DỰNG MÔ HÌNH DỮ LIỆU PHÂN TÁN CHO PHẦN MỀM QUẢN LÝ LHS LÀO 41
3.1 Mô hình hệ thống phần mềm Quản lý LHS Lào 41
3.1.1 Thống kê số lượng sinh viên của Bộ giáo dục và thể thao Lào năm 2015 41
3.1.2 Yêu cầu quản lý 43
3.2 Thiết kế cơ sở dữ liệu Quản lý LHS Lào 45
3.2.1 Kỹ thuật thiết kế 45
3.2.2 Quy trình thiết kế dữ liệu phân tán 46
3.2.3 Phân bố dữ liệu phân tán 46
3.2.4 Mẫu dữ liệu 48
3.2.5 Mẫu quan hệ giữa các bảng 52
3.3 Tiểu kết chương 53
CHƯƠNG 4 ÁP DỤNG THỬ NGHIỆM ĐÁNH GIÁ HIỆU NĂNG TRÊN PHẦN MỀM QUẢN LÝ LHS LÀO 54
4.1 Triển khai thử nghiệm 54
4.1.1 Mô hình hệ thống phân tán 54
4.1.2 Quy trình xử lý dữ liệu phân tán 54
4.1.3 Nền tảng công nghệ sử dụng 56
4.2 Thực nghiệm đo đánh giá các giá trị tính năng Điểm chuẩn vi mô 57
4.3 Thực nghiệm đo đánh giá các giá trị tính năng Điểm chuẩn vĩ mô 62
4.4 Một số nhận xét và khuyến cáo 63
KẾT LUẬN 64
Trang 7DANH MỤC CÁC KÍ HIỆU VÀ VIẾT TẮT
ASG Association of Separated Group
Benchmark Phương pháp điểm chuẩn
BGDTT Lào Bộ giáo dục và thể thao Lào
DDBMS Distributed database management system
Macro-Benchmark Điểm chuẩn vĩ mô
Trang 8RESP Responsibility
SPE Software Performance Engineering
SPEC Standard Performance Evaluation Corporation SPEM Systems Process Engineering Metamodel
Trang 9DANH MỤC CÁC BẢNG
Bảng 1.1: Tóm tắt điểm chuẩn vi mô 16
Bảng 2.1: Một ví dụ về ma trận giá trị sử dụng thuộc tính 25
Bảng 2.2: Ma trận lực hút thuộc tính 27
Bảng 3.1: Thống kê số lượng LHS Lào đi học, đang học và về nước 42
Bảng 3.2: So sánh các phương pháp nhân bản 47
Bảng 3.3: Các bảng mẫu dữ liệu 48
Bảng 4.1: Kết quả giá trị tính năng trên 2 may khi sử dụng công cụ Server Profiler 60
Bảng 4.2: Kết quả giá trị tính năng trên 2 máy khi sử dụng công cụ Database Engine Tuning Advisor 62
Trang 10DANH MỤC HÌNH VẼ
Hình 1.1: Một phần phổ biến của thời gian phản hồi [3] 8
Hình 1.2: Mối quan hệ giữa thời gian phản hồi, thông lượng và sử dụng tài nguyên với khối lượng công [3] 9
Hình 1.3: Cấu trúc của một ứng dụng xử lý sự kiện [4] 12
Hình 1.4: Các kiểu kiểm thử hiệu năng và Điểm chuẩn khác nhau [3] 14
Hình 2.1: Mô tả mối quan hệ giữa các quan hệ bởi các đường nối 21
Hình 2.2: Các giải pháp truy vấn tương đương 36
Hình 2.3: Ví dụ về cây đại số quan hệ 40
Hình 3.1: Biểu đồ phân cấp chức năng của hệ Quản lý LHS Lào 43
Hình 3.2: Giao diện Quản lý thông tin cá nhân 44
Hình 3.3: Giao diện Quản lý thông tin nơi học 44
Hình 3.4: Giao diện Tra cứu và tìm kiếm 45
Hình 3.5: Giao diện Thống kê tổng hợp 45
Hình 4.1: Mô hình hệ thống xử lý phân tán của BGDTT Lào và ĐSQ Lào ở Việt Nam 54
Hình 4.2: Lược đồ phân tầng tổng quát để xử lý truy vấn phân tán 56
Hình 4.3: Giao diện phần mềm Server Profiler 57
Hình 4.4: Kết quả Selection, Projection và Join trên máy ảo 59
Hình 4.5: Kết quả Selection, Projection và Join trên máy PC 60
Hình 4.6: Công cụ Database Engine Tuning Advisor 61
Hình 4.7: Kết quả Database Engine Tuning Advisor trên máy ảo 61
Hình 4.8: Kết quả Database Engine Tuning Advisor trên máy PC 62
Hình 4.9: Kết quả hiệu năng CPU và Memory trên máy ảo 63
Hình 4.10: Kết quả hiệu năng CPU và Memory trên máy PC 63
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Với sự phát triển mạnh mẽ của tất cả các lĩnh vực dẫn đến lượng thông tin cần
xử lý tăng lên rất nhanh Đây cũng là một trong những nhân tố dẫn đến số người dùng mạng Internet ngày càng tăng Thực tế các hệ thống tập trung có những nhược điểm như việc tăng khả năng lưu trữ thông tin khó khăn và bị giới hạn, bởi khả năng tối đa của một máy cụ thể, khả năng phục vụ không đảm bảo khi
số lượng người dùng tăng lên đáng kể Bên cạnh những yếu tố như giao diện, khả năng tương thích, chức năng của ứng dụng và bảo mật, thì yếu tố hiệu năng
là một trong những vấn đề rất quan trọng để đánh giá hệ thống và khả năng mở rộng của ứng dụng đáp ứng yêu cầu người dùng, mức tải đáp ứng, là điều kiện cần thiết trong việc phát triển và mở rộng ứng dụng
Ở Lào, sự phát triển của mỗi ngành không thể thiếu ứng dụng công nghệ thông tin trong các lĩnh vực quan trọng và cuộc sống hiện đại được
2 Mục đích nghiên cứu
Nghiên cứu về lĩnh vực phương pháp điểm chuẩn (Benchmark), xác định tầm quan trọng, vai trò của điểm chuẩn trong kỹ thuật phần mềm và các vấn đề liên quan đến cơ sở dữ liệu phân tán
Nghiên cứu bộ công cụ giám sát, giới thiệu một số khung giám sát, đánh giá hiệu năng phần mềm và điểm chuẩn hệ thống Mô hình hệ thống phần mềm quản trị cơ sở dữ liệu trong bài toán Quản lý LHS lào
3 Nhiệm vụ nghiên cứu
Trong luận văn này em xin đề ra 3 nhiệm vụ cụ thể như sau:
Nhiệm vụ thứ nhất: Tổng hợp tìm hiểu cơ sở lý thuyết về hiệu năng, giá trị tính năng, đo lường phần mềm và lý thuyết cơ sở dữ liệu phân tán
Nhiệm vụ thứ hai: Tìm hiểu phương pháp đo lường giá trị và điểm chuẩn (Benchmarking) tính năng của hệ thống cơ sở dữ liệu phân tán
Nhiệm vụ thứ : Áp dụng thử nghiệm phương pháp đo lường giá trị ba trên phần mềm Quản lý LHS lào
4 Phạm vi nghiên cứu và giới hạn
Luận văn này nghiên cứu phương pháp điểm chuẩn (Benchmark) để đánh giá,
đo lường hiệu năng hoạt động của phần mềm và ứng dụng Mô hình xây dựng phần mềm Quản lý LHS lào trên máy ảo
Công cụ thực nghiệm dựa trên một số công cụ của Microsoft như: VMware workstation, VB.NET, SQL Server, Server Profiler và Performane Monitor
Trang 125 Phương pháp nghiên cứu
Các phương pháp nghiên cứu sau được sử dụng trong quá trình thực hiện luận văn :
- Phương pháp nghiên cứu tài liệu: Sử dụng để nghiên cứu các phương pháp đánh giá hiệu năng phần mềm điểm, nghiên cứu một số khung giám sát, đánh giá hiệu năng phần mềm và điểm chuẩn hệ thống
- Phương pháp điều tra, khảo sát thực tế: Sử dụng để khảo sát yêu cầu quản
lý lưu học sinh của Lào và xác định các yêu cầu quản lý
- Phương pháp thực nghiệm: Sử dụng để xây dựng hệ thống quản lý cơ sở
dữ liệu lưu học sinh của Lào và thử nghiệm đánh giá hiệu năng của phần mềm này
Trang 13C HƯƠNG 1 CƠ SỞ LÝ THUYẾT VỀ HIỆU NĂNG, GIÁ TRỊ TÍNH
NĂNG PHẦN MỀM VÀ ĐO LƯỜNG HỆ THỐNG
1.1 Tổng quan về hiệu năng phần mềm và ứng dụng
Việc xác định số người dùng tối đa, sức tải công việc cũng như thời gian xử
lý các giao tác của các ứng dụng là rất quan trọng trong quá trình phát triển và xây dựng ứng dụng và cơ sở dữ liệu
Hiệu năng là một trong những thuộc tính có tính chất và các yêu cầu phi chức năng quan trọng nhất đối với các hệ thống phần mềm Trong thời gian gần đây, qua các nghiên cứu và khảo sát, hiệu năng của hệ thống phần mềm và các phép
đo hiệu năng vẫn là một trong những thách thức quan trọng nhất trong kỹ thuật phần mềm
Hiệu năng ứng dụng là một trường hợp đặc biệt của hiệu năng phần mềm nói chung Do đó, các định nghĩa cho hiệu năng phần mềm cũng có thể áp dụng cho hiệu năng ứng dụng
Hiệu năng phần mềm: là mức độ mà một hệ thống hoặc một bộ phận đạt được tiêu chí chức năng của nó trong những ràng buộc nhất định như tốc độ, độ chính xác hoặc bộ nhớ sử dụng Một trong những đặc điểm chính ảnh hưởng đến chất lượng phần mềm là hiệu quả hoạt động, được chia thành ba đặc tính : hành vi thời gian (Time behavior), sử dụng tài nguyên (Resource utilization) và công suất (Capacity) Theo tiêu chuẩn ISO/IEC 25010: 2011 [9]:
Hành vi thời gian : Mức độ đáp ứng và thời gian xử lý, tốc độ thông lượng của một sản phẩm đạt yêu cầu
Sử dụng tài nguyên : mức độ mà tổng số và loại tài nguyên được sử dụng bởi một sản phẩm đạt yêu cầu
Công suất : Mức độ giới hạn tối đa của một sản phẩm đáp ứng yêu cầu
Định nghĩa này về hiệu năng phần mềm là toàn diện trong đó bao gồm việc sử dụng tài nguyên và công suất, nhưng bỏ qua tương quan hành vi thời gian với việc sử dụng tài nguyên và công suất Tương tự định nghĩa được đưa ra bởi Jain trong khi Smith và Williams [3] cung cấp một định nghĩa tập trung vào hành vi thời gian như sau :
Hiệu năng phần mềm : là mức độ mà một hệ thống hoặc thành phần phần mềm đáp ứng các mục tiêu của nó cho kịp thời
Theo định nghĩa của Smith và Williams [3], tính kịp thời có thể được đo bằng thời gian đáp ứng và thông lượng với việc đo khả năng đáp ứng và mở rộng của hai chiều Khả năng mở rộng là khả năng đáp ứng các yêu cầu này với nhu cầu ngày càng tăng
Trang 14Cần lưu ý rằng bất kỳ chỉ số hiệu năng nào được sử dụng trong các định nghĩa này đều cầu các phép đo làm cơ sở Những phép đo này có thể quan tâm hành vi thời gian hoặc sử dụng tài nguyên của ứng dụng Định nghĩa đo lường và các thuật ngữ liên quan được đưa ra trong phần tiếp theo.
1.2 Các khái niệm cơ bản trong đo lường hiệu năng
Có nhiều định nghĩa trong đo lường hiệu năng Đo lường hiệu năng là hành động kiểm định, đánh giá phần mềm, một thành phần hoặc phần cứng có đúng với yêu cầu về hiệu năng và tối ưu hóa hiệu năng của nó
Một cách định nghĩa khác của đo hiệu năng là xác định thời gian phản hồi (Responsiveness), thông lượng (throughput), công suất (Capacity) của hệ thống theo khối lượng công việc (workload)
Thời gian phản hồi: là khoảng thời gian giữa yêu cầu của người sử dụng và phản hồi của một hệ thống
Hình 1.1: Một phần phổ biến của thời gian phản hồi [3]
Định nghĩa này phù hợp nhất cho các hệ thống phân tán, chẳng hạn như các dịch vụ dựa trên web
Loại đo lường đầu cuối này thường là một điểm khởi đầu tốt trong việc phân tích hiệu năng của hệ thống phần mềm Các phương pháp đo khác, chẳng hạn như giám sát (trong phần tiếp theo), cung cấp một cái nhìn sâu hơn các hệ thống
và yêu cầu các định nghĩa khác nhau của đo thời gian đáp ứng
Thông lượng hệ thống: Là một phép đo quan trọng khác cho hiệu năng của một hệ thống phần mềm Nó được định nghĩa là số lượng yêu cầu có thể được
xử lý trong khoảng thời gian cố định Ví dụ, trong trường hợp một ứng dụng
Đã gửi yêu cầu
Đã nhận
yêu cầu
Bắt đầu thực hiện
Đã gửi yêu cầu
Đã nhận
yêu cầu
Thời gian
Thời gian Thời gian
phục vụ
Thời gian
Thời gian
Thời gian đáp ứng
Trang 15web, nó thường được định nghĩa là các yêu cầu trang web trong mỗi giây Thời gian đáp ứng và thông lượng tạo thành một mối quan hệ, đó là một thời gian phản ứng thấp thường dẫn đến một thông lượng cao, trong khi thời gian đáp , ứng cao gây ra lượng thông lượng thấp.
Khối lượng công việc: Bên cạnh thời gian phản hồi, thông lượng của một hệ thống phụ thuộc vào khối lượng công việc Khối lượng công việc của một hệ thống là số yêu cầu được thực hiện trong một khoảng thời gian nhất định, ví dụ:
số lượng người dùng đồng thời trên mỗi giây yêu cầu một trang web Một mặt,một khối lượng công việc thấp, ít yêu cầu cho hệ thống, kết quả trong thông lượng thấp, mặt khác, một khối lượng công việc quá cao dẫn đến sử dụng nguồn lực cao và kết quả thời gian đáp ứng cao hơn dẫn đến thông lượng cũng thấp hơn
Hình 1.2: Mối quan hệ giữa thời gian phản hồi, thông lượng và sử dụng tài
nguyên với khối lượng công [3]
Một phép đo quan trọng nữa là việc sử dụng tài nguyên Tài nguyên trong một hệ thống phần mềm có thể là tài nguyên phần cứng, chẳng hạn như thời gian CPU hoặc bộ nhớ có sẵn, nhưng cũng có thể là tài nguyên phần mềm,
Trang 16dữ liệu tự do Với khối lượng công việc ngày càng tăng, các tài nguyên trở nên ngày càng được sử dụng, cho đến khi một hoặc nhiều tài nguyên được sử dụng
và không thể phục vụ các yêu cầu tiếp theo, do đó tạo ra một nút cổ chai (bottleneck)
Công suất của một hệ thống là số lượng các nguồn lực sẵn có trong quan hệ
với khối lượng công việc, khối lượng công việc có thể mà không có bất kỳ tác động bất lợi trên thời gian đáp ứng hoặc thông lượng của hệ thống
Các mối quan hệ đã đề cập giữa thời gian phản ứng, thông lượng (Đường số 2), và sử dụng tài nguyên (Đường số 1) trên một trục và tăng khối lượng công việc trên trục khác được minh họa trong Hình 1.2 Miễn là khối lượng công việc được miêu tả công suất của hệ thống, các tỷ lệ đo xấp xỉ bằng tuyến tính với khối lượng công việc tăng Khi việc sử dụng tài nguyên đạt đến mức tối đa của
nó, thời gian đáp ứng (Đường số 3) bắt đầu tăng theo số mũ và thông lượng giảm
Theo định nghĩa của Smith và Williams [3 ], một hệ thống có khả năng đáp ứng tốt nếu nó đáp ứng các yêu cầu về hiệu năng về mặt thông lượng và thời gian đáp ứng cho một khối lượng công việc nhất định
1.3 Hệ thống xử lý sự kiện EP
1.3.1 Tổng quan EP
Trước khi tìm hiểu cụ thể hơn giá trị tính năng của hệ thống phần mềm, chúng
ta nghiên cứu, tìm hiểu về các nội dung liên quan đến hệ thống xử lý sự kiện EP,
từ đó nhằm mục đích nghiên cứu, so sánh, cải thiện hiệu năng và khả năng mở rộng của các hệ thống EP
Về cơ bản, các hệ thống xử lý sự kiện cố gắng trả lời một câu hỏi: "Điều gì đang xảy ra trong kinh doanh / cơ sở hạ tầng / hệ thống thông tin của tôi ngay bây giờ? Ý tưởng là sử dụng thông tin chứa trong hàng ngàn hoặc hàng triệu sự kiện xảy ra trên một môi trường để có được cái nhìn sâu sắc về tình trạng hiện tại của nó và sau đó phản ứng một cách thích hợp
Trang 17Hình 1.3: Tổng quan về xử lý sự kiện [4]
Từ quan điểm của một hệ thống EP, một sự kiện có thể được xem như là một đối tượng phải được xử lý trong máy tính Đối tượng này bao gồm một bản ghi, với một số thuộc tính, chứa thông tin về sự xuất hiện, giống như một hàng trong một cơ sở dữ liệu quan hệ
1.3.2 Chức năng xử lý sự kiện
Một bộ lõi của các hoạt động xử lý sự kiện được yêu cầu của gần như tất cả ứng dụng và được hầu hết các sản phẩm hỗ trợ Bao gồm:
Filtering: quá trình trích xuất thông tin từ các luồng sự kiện thường bắt đầu
bằng cách chọn phần nào của đầu vào bản ghi phải tiến hành xử lý Quá trình này có thể được tiến hành theo chiều ngang, loại bỏ toàn bộ các sự kiện và chỉ giữ lại những gì thỏa mãn một vị từ cụ thể, hoặc theo chiều dọc, bằng cách loại
bỏ một số thuộc tính của từng sự kiện Lưu ý rằng hai hoạt động tương ứng
)
Luồng thông tin liên tục
D ữ liệu lưu lượng
Nguồn cấp dữ liệu thị trường
Dư liệu môi trương
C ảnh báo , thông báo , đánh giá …
N gười tiêu dùng sự kiện
Bảng điều khiển và cổng thông tin web N hà quản lý, Quản trị viên CNTT dịch vụ khẩn cấp
Trang 18Moving Aggregations and Windowing: một khả năng phổ biến khác của hệ
thống xử lý sự kiện là để tính tập hợp di chuyển trên các luồng sự kiện Các hoạt động (Σ) thường được áp dụng kết hợp với các cửa sổ đang di chuyển - các cấu trúc dữ liệu chỉ lưu giữ những tài liệu mới nhất sự kiện của một luồng Di chuyển cửa sổ cho phép giới hạn số lượng đối tượng (hoặc khoảng thời gian) để được xem xét khi tính toán các chức năng tổng hợp thay vì hơn là sử dụng toàn
bộ các sự kiện nhận được từ khi bắt đầu thực hiện
Correlation/Enrichment: Một tình huống phổ biến là tham gia (⋈) thông tin
thời gian thực hiện bởi sự kiện với dữ liệu lịch sử được lưu trữ trong cơ sở dữ liệu hoặc kho dữ liệu, với mục đích làm giàu các bộ dữ liệu đến hoặc xác định
độ lệch từ hành vi quan sát lịch sử
Event Pattern Matching: một trong những tính năng cơ bản nhất được cung
cấp bởi nền tảng xử lý sự kiện bao gồm việc phát hiện các trình tự các sự kiện cùng nhau đại diện cho một tình huống quan tâm Truy vấn mẫu sự kiện thường
là một câu lệnh xác định một tập hợp các sự kiện cấu thành, thứ tự tương đối của chúng và khoảng thời gian trong đó các sự kiện cùng xảy ra
Integration: các ứng dụng hướng sự kiện cần một số hình thức tích hợp với
các hệ thống hiện có để nhận các sự kiện từ các nguồn bên ngoài và nguồn cấp
dữ liệu, và kết quả đầu ra cho người dùng Để giải quyết nhu cầu này, hầu hết các sự kiện xử lý nền tảng đi kèm với bộ điều hợp đầu vào và đầu ra cho phép chúng truyền thông thông qua các công nghệ và giao thức đa dạng
Lưu ý rằng mặc dù được trình bày ở đây một cách riêng biệt, các hoạt động nói trên là thường kết hợp trong một ứng dụng hướng sự kiện Trên thực tế, phần lớn các ứng dụng có thể được xem như là một chuỗi các hoạt động cơ bản, qua đó các luồng sự kiện, như minh họa trong Hình 1.3
Hình 1.3: Cấu trúc của một ứng dụng xử lý sự kiện [4]
Trang 19Trong suốt quá trình, các sự kiện được chuyển đổi, loại bỏ, và các sự kiện mới được tạo ra, cho đến khi các câu trả lời quan tâm được tạo ra, và được chuyển đến nơi thích hợp điểm đến.
Như vậy, hiệu năng tổng thể của một ứng dụng dựa trên sự kiện chạy ở một máy EP sẽ phụ thuộc vào mức độ hiệu quả của những hoạt động cơ bản được thực hiện Ngoài ra, các thông số về khối lượng công việc như kiểu cửa sổ và kích thước, và độ chọn lọc thuộc tính sẽ quyết định công việc của EP phải làm việc như thế nào để trả lời các yêu cầu Cuối cùng, các yếu tố bên ngoài như tài nguyên có sẵn, dữ liệu đến và số lượng và loại truy vấn và các quy tắc có thể tích cực hoặc tiêu cực ảnh hưởng đến hiệu năng của hệ thống
1.4 Khái niệm và phân loại Điểm chuẩn
Giá trị Điểm chuẩn được sử dụng để so sánh các nền tảng, công cụ hoặc kỹthuật khác nhau trong các thực nghiệm Chúng xác định các phép đo chuẩn để cung cấp các kết quả có thể lặp lại, khách quan và có thể so sánh được Trong khoa học máy tính, Điểm chuẩn được sử dụng để so sánh, ví dụ, hiệu năng của CPU, hệ thống quản lý cơ sở dữ liệu, hoặc các thuật toán truy xuất thông tin Ngoài các đánh giá hiệu năng, Điểm chuẩn trong khoa học máy tính có thể cũng
sử dụng các phép đo khác nhau Theo đó, một số tổ chức và tiêu chuẩn cung cấp các định nghĩa khác nhau của tiêu chuẩn chung
Tiêu chuẩn ISO/IEC 25010: 2011 cung cấp một định nghĩa chung của Benchmark [9 ]:
Điểm chuẩn là một tiêu chuẩn để kết quả có thể được đo lường hoặc đánh
giá
Các định nghĩa tương tự được cung cấp bởi hệ thống IEEE và ISO/IEC/IEEE
24765 [9 ]:
1 Một tiêu chuẩn mà các phép đo hoặc so sánh có thể được thực hiện
2 Một thủ tục, vấn đề hoặc kiểm thử có thể được sử dụng để so sánh các hệ thống hoặc các thành phần với nhau hoặc theo tiêu chuẩn
Một định nghĩa tập trung hơn vào hiệu năng các hệ thống máy tính được cungcấp bởi Standard Performance Evaluation Corporation (SPEC):
Điểm chuẩn là việc kiểm thử, hoặc tập hợp việc kiểm thử, được thiết kế để so sánh hiệu năng của một hệ thống máy tính với hiệu năng của những hệ thống
khác
Một định nghĩa tương tự, tập trung vào việc đo hiệu năng phần mềm được xây dựng trong [3] và [ ] Vì vậy, Điểm chuẩn là quá trình đo hiệu năng của một hệ 4 thống với sự hỗ trợ của một Điểm chuẩn [3,4]:
Trang 20Điểm chuẩn là một hệ thống phần mềm chuẩn (Benchmark system) được sử dụng để đo hiệu năng của một nền tảng hoặc một hệ thống khác (nền tảng / hệ thống được kiểm thử (SUT)) tương tác với nó
Benchmark system là định nghĩa của các cách đo và các phép đo được sử dụng để xác định hiệu năng Platform/system under test (SUT) tương tác với Benchmark system có thể là phần cứng hoặc nền tảng phần mềm, một thành phần cấu thành trong phần mềm, hoặc thậm chí là một hoạt động đơn lẻ Tương
tự như Benchmark system, độ phức tạp của nó có thể là bất cứ điều gì từ một câu lệnh bổ sung duy nhất cho toàn bộ hệ thống lớn Các chi tiết bổ sung về việc xây dựng Điểm chuẩn và các yêu cầu thiết kế được cung cấp trong các phần tiếp theo
Hình 1.4: Các kiểu kiểm thử hiệu năng và Điểm chuẩn khác nhau [3]
Như đã đề cập như trên, Điểm chuẩn là một trường hợp đặc biệt của kiểm thử hiệu năng Như vậy, chúng ta có thể áp dụng một phân lớp cho các kiểu kiểm thử hiệu năng
Utting và Legeard [3] sử dụng ba chiều để phân loại kiểm thử: tính năng đang được kiểm thử, quy mô của SUT và các thông tin được sử dụng để thiết kế kiểm thử Trong trường hợp đo lường Điểm chuẩn chúng ta có thể tập trung trên hai trục còn lại trong Hình 1.4 Tương tự, thông tin được sử dụng để thiết kế các phép kiểm thử tương ứng với thông tin được sử dụng để thiết kế các Điểm chuẩn Do đó, chúng ta có thể phân loại các Điểm chuẩn theo sự phức tạp của chúng
Điểm chuẩn có thể được phân thành hai loại: Điểm chuẩn vi mô MicroBenchmarks và Điểm chuẩn vĩ mô Macro benchmarks Điểm chuẩn vi mô được -thiết kế để đánh giá hiệu năng của một mô hình cụ thể, thường là một phần nhỏ của một hệ thống phần mềm Điểm chuẩn vĩ mô thường là hệ thống điểm chuẩn
Trang 21-phức tạp, được thiết kế để mô phỏng một hệ thống thực hoặc một một phần của
nó
1.4.1 Điểm chuẩn vi mô
Hầu hết Điểm chuẩn vi mô, còn được gọi là sự kết hợp; phổ hẹp, hạt nhân, hoặc benchmark đơn giản; được thống nhất để so sánh các khái niệm cơ bản, chẳng hạn như một thao tác đơn lẻ, hoặc các khía cạnh hẹp của một hệ thống lớn hơn Ví dụ điển hình của các Điểm chuẩn này là so sánh các thuật toán phân loại khác nhau hoặc hiệu năng của một hoạt động trên các nền tảng phần cứng khác nhau Tùy thuộc vào kích cỡ của các Benchmark, các hạng mục khác của các Điểm chuẩn được sử dụng [3 ]
Các Điểm chuẩn vi mô thường tương ứng với góc dưới bên phải của Scale và trục thông tin trong Hình 1.4 Họ đang tập trung vào một phần nhỏ và cụ thể của một hệ thống Ngoài ra, họ thường sử dụng phương pháp hộp trắng trong thiết
kế của họ, nghĩa là chúng được thiết kế với hệ thống đang được kiểm thử thực tế
Về lý thuyết, Điểm chuẩn vi mô vượt trội thực hiện nhiệm vụ của chúng trong việc so sánh các đặc tính nhỏ được miêu tả Do đó, Điểm chuẩn vi mô rất hạn chế trong ứng dụng thực tế Hạn chế lớn và nguy cơ của Điểm chuẩn vi mô là kết quả đơn giản Chúng thường bỏ qua các yếu tố ảnh hưởng khác và chỉ tập trung vào một khía cạnh của các tương tác phức tạp của một hệ thống Điều này
có thể dẫn đến sai kết quả và điều chỉnh, nâng cao hiệu năng cho Điểm chuẩn vi
mô
Sử dụng một bộ lõi hoạt động được sử dụng trong hầu hết các kịch bản, có sẵn trong tất cả các sản phẩm, bao gồm [3,4]: Filtering (Selection/Projection); Correlation/Enrichment (Join); Windowing; Pattern Detection; Aggregation Mục đích của các chuẩn vi mô được giới thiệu trong chương này là để đánh giá hiệu năng của máy EP trong việc xử lý các hoạt động xử lý sự kiện lõi và định lượng tác động mà các yếu tố tải công việc khác nhau có trên hiệu năng của chúng Ngoài ra, đánh giá mức độ phù hợp của các máy với sự thay đổi tỷ lệ xuất hiện sự kiện và quy mô đối với số lượng các truy vấn đồng thời Bảng 1.1 tóm tắt các thực nghiệm thực hiện
Trang 22Query Factors under analysis Metrics
- count based: 500 to 500K tuples
time based: 10 minutes to 12 hours
Window expiration: [sliding, jumping]
Aggregation function: [SUM, MAX, STDEV]
Injection Rate (events/sec): 500 to100K
Throughput
Memory consumption
Recovery Time
Post-peak latency variation ratio
Scalability Number of queries: [1, 4, 16, 64]
Window size: 400k to 500k events
Throughput
Memory consumption
Bảng 1.1: Tóm tắt điểm chuẩn vi mô
1.4.2 Điểm chuẩn vĩ mô
Điểm chuẩn vĩ mô được sử dụng để khắc phục những yếu tố thiếu sót của Điểm chuân vi mô Điểm chuẩn vĩ mô ứng với góc trên bên trái của trục quy mô
và trục thông tin trong Hình 1.4 Chúng đại diện cho phần lớn hệ thống hoặc là
Trang 23hệ thống hoàn chỉnh Hơn nữa, chúng thường có cách tiếp cận hộp đen (blackbox), nghĩa là chúng không được thiết kế với một hệ thống cụ thể theo, mà là với một yêu cầu kỹ thuật tổng quát hơn.
-Trong trường hợp tốt nhất, điểm chuẩn vĩ mô là hệ thống thử nghiệm thực tế với một ví dụ mẫu thực tế, ví dụ như của một cửa hàng trực tuyến có thể là một minh họa mới của hệ thống cửa hàng, được triển khai trên phần cứng và phần mềm tương đương, và được sử dụng với các ví dụ thực tế Trong trường hợp của một iểm chuẩn hiệu năng, khối lượng công việc tạo ra bởi các mẫu cụ thể có đthể cao hơn khối lượng công việc dự kiến để iểm chuẩn cho tắc nghẽn hoạt đđộng Trong hầu hết các trường hợp, điểm chuẩn vĩ mô là các đại diện của các
hệ thống thực Bên cạnh việc thay đổi phần cứng và phần mềm chạy điểm chuẩn, bản thân điểm chuẩn vĩ mô giảm bớt hệ thống thực
Ngoài sự phức tạp cao hơn, và do đó thường có chi phí cao hơn của Điểm chuẩn vĩ mô, nó thường khó xác định nguyên nhân thực tế của các vấn đề được phát hiện bằng những Điểm chuẩn này Do bao gồm rất nhiều các yếu tố ảnh
hưởng, những yếu tố có liên quan khó xác định hơn Tuy nhiên, trái với Điểm
chuẩn vi mô, nguy cơ này ít bị phát hiện.
1.5 Tiểu kết chương
Trong chương này, chúng ta đã tìm hiểu về một số các thông số liên quan đến đánh giá hiệu năng của phần mềm như: responsiveness, throughput, resource utilization, capacity, workload; giới thiệu mô hình để theo dõi và hiệu chỉnh hiệu năng trong quá trình phát triển phần mềm Nghiên cứu các nội dung cơ bản về các khái niệm và đặc điểm chính của hệ thống xử lý sự kiện ô tả chức năng Mcủa hệ thống EP và nghiên cứu giá trị Điểm chuẩn trong kỹ thuật phần mềm phục vụ để đo hiệu năng của một nền tảng hoặc một hệ thống khác Trong đó có phân chia thành 2 loại: Điểm chuẩn vi mô và Điểm chuẩn vĩ mô
Trang 24C HƯƠNG 2 LÝ THUYẾT CƠ SỞ DỮ LIỆU PH N T Â ÁN VÀ KỸ
THUẬT PHÂN TÁN DỮ LIỆU 2.1 Khái niệm và định nghĩa cơ sở dữ liệu phân tán
2.1.1 Tổng quan cơ sở dữ liệu phân tán
Nguyên lý các hệ cơ sở dữ liệu phân tán được xây dựng dựa trên sự hợp nhất của hai hướng tiếp cận quá trình xử lý dữ liệu, đó là lý thuyết các hệ cơ sở dữ liệu và công nghệ mạng máy tính
Một trong những động lực thúc đẩy sử phát triển nhanh việc sử dụng các hệ
cơ sở dữ liệu là nhu cầu tích hợp các loại dữ liệu tác nghiệp, cung cấp đa dạng các loại dịch vụ và các dịch vụ đa phương tiện chia sẻ tài nguyên thông tin chung cho nhiều người cùng sử dụng, khai thác có hiệu quả tài nguyên thông tin, nâng cao khả năng tích hợp và trao đổi các loại dữ liệu giữa các thành phần trên mạng
Nhu cầu thu thập, lưu trữ, xử lý và trao đổi thông tin ngày càng tăng, các hệ thống xử lý dữ liệu tập trung đã có những nhược điểm như sau:
• Tăng khả năng lưu trữ thông tin trên các thiết bị nhớ rất khó khăn, bở vì bị giới hạn tối đa dung lượng của thiết bị nhó
• Độ sẵn sàng của cơ sở dữ liệu không cao khi số người sử dụng tăng
• Khả năng tính toán của các máy tính đơn lẻ dang dần tới giới hạn vật lý
• Mô hình tổ chức lưu trữ, xư lý dữ liệu tập trung không còn phù hợp đối với những tổ chức kinh tế, xã hội có các hoạt động trên phạm vi rộng lớn,
đa quốc gia, trền nhiều vùng lãnh thổ khác nhau
Những nhược điểm này đã được khắc phục nhiều trong các hệ phân tán Những sản phẩm của các hệ thống phân tán đã xuất hiện nhiều trên thị trường và từng bước chứng minh tính ưu việt của nó hơn hẳn các hệ thống xử lý dữ liệu tập trung truyền thống Các hệ thống phân tán sẽ thay thế dần các hệ thống tập trung
2.1.2 Khái niệm xử lý phân tán
Thuật ngữ xử lý phân tán thường được sử dụng để chỉ các hệ thống bao gồm nhiều loại thiết bị khác nhau như hệ đa bộ xử lý, xử lý dữ liệu phân tán, mạng máy tính… Có thể hiểu hệ xử lý phân tán là một tập các phần xử lý tự trị (không đồng nhất) được kết nối lại với nhau bởi một mạng máy tính và chúng cùng phối hợp thực hiện những công việc theo chức năng Các phần tử xử lý tự trị có thể là một thiết bị tính toán có khả năng thực hiện được các chương trình trên nó
Có hai khái niệm xử lý phân tán liên quan với nhau
o Khái niệm liên quan đến việc tính toán trên Client/Server Trong đó ứng dụng được chia ra thành hai phần, phần của Server và phần của Client và
Trang 25được vận hành ở hai nơi Trong tính toán phân tán này, dữ liệu được phép truy nhập trực tiếp và xử lý dữ liệu trên Server và phần của Client
o Khái niệm thứ hai là việc thực hiện các giao dịch được xử lý phức tạp trên nhiều hệ thống Không gian nhớ và bộ xử lý của nhiều máy cùng hoạt động chia nhau giao dịch xử lý Máy trung tâm sẽ giám sát và quản lý các tiến trình Hàng nghìn máy cùng xử lý một giao dịch trên mạng Internet
2.2 Khái niệm và sự cần thiết phân mảnh dữ liệu
Phân mảnh là chia CSDL thành các mảnh dữ liệu (Fragement) nhỏ hơn và xử
lý mỗi mảnh nhận được như một CSDL độc lập tức là như một quan hệ, phân – mảnh chỉ được thực hiện khi nó tăng hiệu quả, và có độ tin cậy Có hai kiểu phân mảnh cơ bản là phân mảnh ngang (Horizontal fragmentation) và phân mảnh dọc (Vetical fragmentation)
o Phân mảnh ngang làm cho CSDL được phân hoạch thành các CSDL con, mỗi CSDL con là một tập hợp các bộ thỏa mãn một số tính chát nào đó
o Phân mảnh dọc cũng chia CSDL thành các CSDL con gồm một tập hợp con các thuộc tính cùng với các giá trị của chúng có trong tập các thuộc tính của CSDL đã cho
Khi CSDL được phân mảnh, phải có cách xử lý các câu vấn tin của người sử dụng, các truy vấn này phải được thực hiện trên các mảnh Tức là phải dịch câu truy vấn toàn cục (Global query) thành nhiều câu truy vấn theo các mảnh Như vậy vấn đề vô hình phân mảnh là vấn đề vô hình xử lý các câu truy vấn
2.3 Các quy tắc phân mảnh
Các nguyên tắc để đảm bảo cơ sở dữ liệu khi phân mảnh sẽ đảm bảo tính không thay đổi về ngữ nghĩa, toàn vẹn dữ liệu và đảm bảo tính độc lập dữ liệu Dưới đây là ba qui tắc phải tuân thủ khi phân mảnh cơ sở dữ liệu quan hệ
2.3.1 Tính đầy đủ
Quan hệ R được phân rã thành các mảnh R1, R2 … Rn, thì mỗi mục dữ liệu có trong quan hệ R sẽ được chứa trong ít nhất một mảnh Ri (i=1, ,n) Quy tắc này đảm bảo cho các mục dữ liệu trong R được ánh xạ hoàn toàn vào các mảnh và không bị mất Mục dữ liệu có thể hiểu là bộ trong phân mảnh ngang và thuộc tính trong phân mảnh dọc [2]
2.3.2 Tính phục hồi
Nếu một quan hệ R được phân rã thành tập các mảnh quan hệ
FR =: {R1, R2,…,Rn }; khi đó: R =∇ Ri, ∀ Ri∈ FR Toán tử ∇ có thể là:
o Phép kết nối tự nhiên, nếu thực hiện phân mảnh dọc
Trang 26o Phép hợp các quan hệ khả hợp, nếu thực hiện phân mảnh ngang Nói cách khác, khả năng phục hồi quan hệ gốc từ các mảnh quan hệ sẽ đảm bảo không xẩy ra tổn thất thông tin và bảo toàn các phụ thuộc [2]
2.3.3 Tính tách biệt
Nếu quan hệ R được phân rã ngang thành các mảnh Ri, i=1, n và mục dữ liệu
di nằm trong một mảnh Ri thì nó sẽ không nằm trong mảnh Rk , (k≠j) Quy tắc này đảm bảo các mảnh phân rã rời nhau Trong trường hợp phân mảnh dọc, khóa chính của quan hệ phải được lập lại trong tất cả các mảnh Vì vậy tính tách biệt trong phân mảnh dọc được hiểu không liên quan gì đến khóa chính của quan
hệ [2]
2.4 Kỹ thuật phân mảnh ngang dữ liệu
2.4.1 Khái niệm phân mảnh ngang dữ liệu
Phân mảnh ngang chính là việc chia quan hệ thành nhiều mảnh quan hệ khả hợp Mỗi mảnh quan hệ bao gồm nhóm bộ dữ liệu của một điều kiện logic Kết quả của quá trình phân mảnh ngang là các mảnh quan hệ khả hợp, số lượng các mảnh quan hệ phụ thuộc vào điều kiện ràng buộc của các thuộc tính Các bộ trong các mảnh quan hệ là tách biệt nhau, rời nhau, theo nghĩa giao của hai mảnh quan hệ bất kỳ luôn luôn bằng rỗng Tóm lại, phương pháp phân mảnh ngang thực chất là thực hiện các phép chọn quan hệ thỏa mãn một biểu thức điều kiên cho trước
2.4.2 Thông tin cần thiết của phân mảnh ngang
a) Thông tin về cơ sở dữ liệu: là các thông tin về lược đồ khái niệm toàn cục của hệ cơ sở dữ liệu Trong mô hình quan hệ, các mối quan hệ giữa các thực thể được mô tả như là những quan hệ Trong mô hình quan hệ thực thể (ER), các mối liên hệ giữa các đối tượng cơ sở dữ liệu được mô tả rõ ràng hơn Nhìn chung mối quan hệ giữa các đối tượng trong cơ sở dữ liệu thường mô tả bằng các mối quan hệ một một, một nhiều và mối quan hệ nhiều nhiều Với mục - - - đích cho thiết kế phân tán, các mối quan hệ cũng phải được mô hình hóa bằng khung quan hệ Như vậy trong mô hình này, các mối quan hệ sẽ được biểu diễn bằng các cung có hướng giữa các quan hệ có quan hệ với nhau qua một phép kết nối bằng (Equijoin)
Ví dụ 2.1: Quan hệ PAY có mối quan hệ với quan hệ EMP qua phép kết nối
bằng nhau Có nhiều nhân viên (Employee) cùng giữ một chức danh (Title) Hiển nhiên mối quan hệ này là mối quan hệ môt nhiều được biểu diễn bằng - một đường nối có hướng L1 trỏ từ quan hệ PAY đến EMP Quan hệ EMP và PROJ kết nối bằng nhau trên các thuộc tính ENO và PNO Một nhân viên có thể tham gia nhiều dự án và ngược lại, một dự án có thể có nhiều người tham gia
Trang 27Mối quan hệ này là mối quan hệ nhiều được trỏ từ các quan hệ EMP và PROJ đến quan hệ ASG được biểu diễn bằng hai đuờng nối L2 và L3.
Hình 2.1: Mô tả mối quan hệ giữa các quan hệ bởi các đường nối
Quan hệ tại điểm cuối của đường nối được gọi là quan hệ chủ (quan hệ đích )
và các quan hệ tại điểm đầu được gọi là các quan hệ thành viên (quan hệ nguồn)
Ký hiệu lực lượng (Cardinality) của mỗi quan hệ R là Card (R)
b) Thông tin về ứng dụng: Để thực hiện việc phân mảnh một quan hệ, cần
phải có thông tin định tính và thông tin định lượng Thông tin định tính hướng dẫn cho hoạt động phân mảnh, thường là thông tin về lực lượng quan hệ Card (R) Thông tin định lượng chủ yếu sử dụng trong các mô hình cấp phát
Thông tin định tính cơ bản gồm các vị từ dùng trong câu truy vấn Sau đây là các định nghĩa về vị từ đơn giản (Simple Predicate) và vị từ hội sơ cấp (Minterm Predicate) như sau:
o Vị từ đơn giản (Simple Predicate):
Cho quan hệ R trên các thuộc tính Ω:= {A1 , A2 , …, An }, Ai là thuộc tính bất kỳ của Ω và Dom( Ai) miền xác định của Ai , i=1 n Khi đó:
P được gọi là một vị từ đơn giản trên R, có dạng:
P : Ai θ Value
Trong đó θ∈{=, <, ≠, ≤, >, ≥}
Ai ∈ Ω là thuộc tính bất kỳ
Value là một giá trị của Dom( Ai)
Ký hiệu Pr là tập tất cả các vị từ đơn giản được định nghĩa trên quan hệ R
Pr := { P: Aiθ Value }
Ví dụ 2.2 Cho quan hệ PROJ
PNAME = “Maintenance”,
Trang 28o Vị từ hội sơ cấp (Minterm Predicate):
Cho tập Pri = {pi1, pi2, , pim} là một tập các vị từ đơn giản trên quan hệ Ri
Ký hiệu: Mi =: {mi1, mi2, , mim} được gọi là vị từ hội sơ cấp, trong đó:
Trong đó, hoặc
Mỗi một vị từ đơn giản có thể xuất hiện dưới dạng tự nhiên hoặc dạng phủ định của nó Các dạng phủ định của một vị từ có thể:
Phủ định của Attribute = Value, không có
Phủ định của Attribute ≤ Value là Attribute > Value
Phủ định của Cận_dưới ≤Attribute_1 là ¬(Cận_dưới ≤ Attribute_1)
Phủ định của Attribute_1 ≤ Cận_trên là ¬(Attribute_1 ≤ Cận_trên)
Phủ định của Cận_dưới ≤ Attribute_1 ≤ Cận_trên là
¬(Cận_dưới ≤ Attribute_1 ≤ Cận_trên)
Ví dụ 2.3: Xét một số vị từ đơn giản định nghĩa trên quan hệ PAY
p1: TITLE = “Elect.Eng”
p2: TITLE = “Syst Anal”
p3: TITLE = “Mech Eng”
Các vị từ hội sơ cấp được định nghĩa dựa trên các vị từ đơn giản:
m1: TITLE = “Elect.Eng” ^ SAL ≤ 30000
m2: TITLE = “Elect.Eng” ^ SAL > 30000
m3: ¬(TITLE = “Elect.Eng”) ^ SAL ≤ 30000
m4: ¬(TITLE = “Elect.Eng”) ^ SAL > 30000
m5: TITLE = “Programmer” ^ SAL ≤ 30000
m6: TITLE = “Programmer” ^ SAL > 30000
MPAY = {m1, m2, m3, m4, m5, m6}
Trang 29PAY
Elect.Eng 40000Mech.Eng 27000Programmer 24000Syst.Anal 34000Lưu ý rằng, không phải tất cả các vị từ hội sơ cấp đều có thể được định nghĩa trên quan hệ PAY Một số vị từ hội sơ cấp có thể vô nghĩa với ngữ nghĩa của quan hệ PAY và trong một số trường hợp có thể được sửa lại
Ví dụ
m3: ¬(TITLE = “Elect.Eng”) ^ SAL ≤ 30000 sửa lại là
m3: (TITLE ≠ “Elect.Eng”) ^ SAL ≤ 30000
c) Thông tin định tính về các ứng dụng cần phải có:
• Độ tuyển hội sơ cấp (Minterm Selectivity): là số bộ của quan hệ sẽ được chọn theo vị từ hội sơ cấp cho trước Ký hiệu chọn của hội sơ cấp m là sel(m) Ví dụ, không có bộ nào được chọn trong PAY thoả mãn vị từ hội
sơ cấp m1, chỉ có 1 bộ thoả hội sơ cấp m2
• Tần số ứng dụng người sử dụng truy xuất dữ liệu Nếu Q = {q1, q2, … ,
qq} là tập truy vấn, ký hiệu acc(qi) là tần số truy xuất của truy vấn qi trong một khoảng thời gian đã cho
• Tần số truy xuất hội sơ cấp là tần số truy xuất của hội sơ cấp m, ký hiệu là acc(m)
2.5 Kỹ thuật phân mảnh dọc dữ liệu
2.5.1 Khái niệm phân mảnh dọc
Cho R là một quan hệ trên tập các thuộc tính Ω ={A1, A2,…,An} Khi đó phân mảnh dọc quan hệ R sinh ra các mảnh R1, R2, , Rr, sao cho mỗi mảnh là một quan hệ chứa một tập con các thuộc tính của quan hệ R và khoá của nó, tức là Ω
sẽ được phân mảnh sao cho Ω = Ω1 ∪ Ω2 ∪ Ω3 … ∪ ∪ Ωk, trong đó Ri là mảnh quan hệ trên các thuộc tính Ωi , i=1 k Mục đích của phân mảnh dọc là phân chia quan hệ R thành tập các quan hệ nhỏ hơn để có nhiều ứng dụng có thể chỉ cần thực hiện trên một mảnh Mảnh tối ưu là mảnh sinh ra một lược đồ phân mảnh cho phép giảm tối thiểu thời gian thực hiện của ứng dụng trên mảnh đó
Kỹ thuật phân mảnh dọc phức tạp hơn so với kỹ thuật phân mảnh ngang, vì số lựa chọn phân hoạch rất lớn Trong phân mảnh ngang, nếu số vị từ đơn giản
Trang 30Mặt khác, một số vị từ hội sơ cấp có thể mâu thuẫn với các phép kéo theo Vì vậy sẽ làm giảm số lượng các mảnh dự tuyển cần được xem xét Trong trường hợp phân mảnh dọc, nếu quan hệ có m thuộc tính không phải là khoá chính, thì
số mảnh có thể có là mm
Để có được các lời giải tối ưu cho bài toán phân mảnh dọc là rất khó, không hiệu quả Vì vậy cần phải sử dụng các phương pháp khám phá (Heuristic) cho phân mảnh dọc các quan hệ toàn cục Có hai phương pháp Heuristic:
o Nhóm thuộc tính: bắt đầu gán mỗi thuộc tính cho một mảnh và trong mỗi
bước, nối một số mảnh lại với nhau cho đến khi thỏa điều kiện phân mảnh
o Tách mảnh: bắt đầu bằng một quan hệ và quyết định cách phân chia quan hệ
dựa trên hành vi truy xuất của các ứng dụng trên các thuộc tính
Trong các phần tiếp theo, chỉ thảo luận về kỹ thuật tách mảnh vì nó thích hợp với phương pháp thiết kế cơ sở dữ liệu phân tán từ trên xuống Các mảnh không gối chồng lấn lên nhau (không phải là khoá chính) Ngược lại, với phương pháp nhóm thuộc tính thường tạo ra các mảnh gối chồng lên nhau Trong các hệ cơ sở
dữ liệu phân tán, các mảnh không gối chồng lên nhau được quan tâm, nghiên cứu
2.5.2 Thông tin cần thiết của phân mảnh dọc
Phân mảnh dọc đặt các thuộc tính thường được truy xuất chung vào một mảnh Vì vậy cần phải định nghĩa một giá trị để đo về mức độ truy xuất chung
Số đo này được gọi là tụ lực hay còn gọi là lực hút của các thuộc tính
a) Ma trận giá trị sử dụng thuộc tính: Gọi Q = {q1, q2, , qq} là tập các câu truy vấn của người sử dụng, hay còn gọi là các ứng dụng của người sử dụng Các câu truy vấn Q sẽ chạy trên quan hệ R(A1, A2,…, An) Khi đó định nghĩa một ma trận gọi là ma trận giá trị sử dụng thuộc tính có q hàng và n cột Các phần tử của ma trận được ký hiệu là giá trị câu vấn tin qi , i=1 q sử dụng thuộc tính Aj , j=1 n Ký hiệu ma trận giá trị sử dụng thuộc tính là use(qi, Aj) được định nghĩa như sau:
Trang 31PNO PNAME LOGP1 Instrumentation MontrealP2 Database Develop New York
Giả sử có các ứng dụng sau được sử dụng trên quan hệ PROJ:
q1: Cho biết kinh phí của một dự án khi biết mã dự án
SELECT BUDGET
WHERE PNO=Value q2: Liệt kê tên và kinh phí của tất cả các dự án
SELECT BUDGET, PNAME
b) Ma trận lực hút AA( Attribute Affinity Matrix ) của thuộc tính: Hầu hết các
thông tin cho phân mảnh dọc có mối quan hệ mật thiết với các ứng dụng Giá trị
Trang 32thường được truy xuất chung với nhau, cần phải định nghĩa một giá trị để chỉ ra mức độ liên đới giữa các thuộc tính, được gọi là sự hút (Affinity) của thuộc tính.Cho R(A1,A2,…,An) là một quan hệ trên tập các thuộc tính Ω={A1,A2,…,An} Gọi k là số mảnh của quan hệ R cần phải được phân tán trên mạng máy tính, tức là: R = R1 R∪ 2 … R∪ ∪ k Ký hiệu Q={q1,q2,…,qq} là tập các ứng dụng (câu truy vấn) trên quan hệ R Đăt Q(A,B) là tập các ứng dụng q ∈ Q, sao cho use(q,A).use(q,B)=1 Trong đó A, B là các thuộc tính bất kỳ của Ω:
Dựa vào bảng 2.1, có: Q(A1,A1)={q1}, Q(A2,A2)={q2,q3}, Q(A3,A3)={q1,q3, q4}, Q(A4,A4)={q3, q4}, Q(A1,A1)= ∅, Q(A1,A2)={q 1}, Q(A2,A3)={q2}…
Số đo lực hút Aff (Ai, Aj) là một đại lượng biểu thị cho cầu nối (Bond) giữa hai thuộc tính Ai và Aj của quan hệ R(A1,A2,…,An) }, được định nghĩa như sau:
Trong đó refl (qk) là số lần truy xuất các thuộc tính (Ai,Aj) cho qk tại vị trí Sl
và accl (qk) là số đo tần số truy xuất ứng dụng qk tại vị trí Sl Kết quả tính toán
là một ma trận vuông cấp n x n, các phần tử (i, j) là số đo lực hút của các thuộc tính Ai, Aj
Giả sử refl(qk) =1 cho tất cả qk và Sl Nếu tần số ứng dụng là:
acc1(q1)=15 acc2(q2)=20 acc3(q1)=10
acc1(q2)=5 acc2(q2)=0 acc3(q2)=0
acc1(q3)=25 acc2(q3)=25 acc3(q3)=25
acc1(q4)=3 acc2(q4)=0 acc3(q4)=0
Khi đó số đo sự lực hút giữa thuộc tính A1 và A3 có thể đo bằng:
Vì ứng dụng duy nhất truy xuất đến cả hai thuộc tính này là q1, tức là Q(A1,A3)={q1} và số mảnh k=3 Vì vậy ma trận lực hút thuộc tính đầy đủ được trình bày trong bảng 2.2 Chú ý rằng để cho đầy đủ ,các giá trị ở đường chéo cũng được tính dù rằng chúng hoàn toàn vô nghĩa
Trang 33ma trận giá trị sử dụng các thuộc tính Sau đây thuật toán tụ nhóm còn được là gọi là thuật toán năng lượng nối BEA (Bond Energy Algorithm) của Hoffer, Severance và Navathe [2]
o Thuật toán xác định các nhóm gồm các mục tương tự, trái ngược với một sắp xếp thứ tự tuyến tính của các mục, nghĩa là nó gom các thuộc tính có số đo lực hút lại với nhau và những thuộc tính có giá trị lực hút nhỏ lại với nhau
o Kết quả thuật toán không bị ảnh hưởng bởi thứ tự các mục của thuật toán
o Thời gian thực hiện thuật toán có thể chấp nhận được: O(n2), Ω = n
o Mối liên hệ qua lại giữa các nhóm thuộc tính tụ có thể xác định được
2.6 Bài toán phân bố dữ liệu
2.6.1 Khái niệm
Phân bố tài nguyên cho các node mạng máy tính là một bài toán đã được nhiều người quan tâm nghiên cứu Tuy nhiên, phần lớn các kết quả nghiên cứu không tiếp cận bài toán thiết kế cơ sở dữ liệu phân tán, mà chỉ quan tâm đến việc cài đặt các file riêng lẻ trên mạng máy tính Vì sao có sự khác biệt giữa hai vấn đề này Đơn giản nhất người ta xem mỗi mảnh như là một tệp riêng biệt Tuy nhiên cách giải quyết vấn đề không thuận lợi vì các lý do sau:
o Các mảnh được mô hình hóa không thích hợp hoàn toàn như các tệp riêng
o Số mảnh nhiều hơn so với các quan hệ toàn cục Nhiều mô hình phân tích không thể tính toán các giải pháp với quá nhiều biến
o Thực hiện đơn giản trên các mô hình ứng dụng trong tập hệ thống chỉ có các
Trang 34Các vấn đề nêu trên chưa được giải quyết Vì vậy vấn đề đặt ra là phân bố dữ liệu sao cho tối ưu đối với các ứng dụng Điều này yêu cầu tối ưu các giải pháp phân bố dữ liệu cho các ứng dụng quan trọng Trước hết cần định nghĩa bài toán phân bố một cách chính xác hơn.
2.6.2 Bài toán phân bố
Giả sử có một tập các mảnh dữ liệu F = {F1, F2, …, Fn} và một mạng máy tính bao gồm các tập các site S = {S1, S2, …, Sm} trên đó có một tập các ứng dụng Q = {q1, q2, …, qq} đang chạy Bài toán phân bố dữ liệu được phát biểu
như sau: “Tìm một phân phối cho tập các mảnh F cho các vị trí S sao cho khi
thực hiện các ứn g dụng Q là tối ưu” Tính tối ưu phân bố có thể được định nghĩa như sau:
o Chi phí nhỏ nhất: Hàm chi phí bao gồm chi phí lưu trữ mảnh Fi tại node Sj, chi phí truy vấn Fi tại vị trí Sj, chi phí cập nhật Fi tại tất cả các node lưu trữ
nó và chi phí trao đổi thông tin Mục tiêu của bài toán phân bố là xác định một lược đồ phân bố với hàm chi phí nhỏ nhất
o Hiệu năng: Chiến lược phân bố phải nhằm duy trì hiệu năng Làm giảm thời
gian đáp ứng và tăng tối đa lưu lượng hệ thống tại mỗi node mạng
Cần xây dựng một lược đồ phân bố sao cho trả lời các truy vấn trong thời gian ngắn nhất mà vẫn duy trì được chi phí xử lý thấp nhất Thời gian đáp ứng thấp và tăng tối đa lưu lượng Đây là bài toán phân bố tổng quát, không đơn giản Độ phức tạp là NP đầy đủ (NP – Complete), vì thế chỉ có một số giải thuật Heuristic được nghiên cứu để giải bài toán tối ưu Các mô hình đã được phát triển chỉ xét một số giả thiết đơn giản và dễ ứng dụng trên một số trường hợp cụ thể
Để bài toán đơn giản hơn, giả sử có một tập các mảnh dữ liệu F và một tập các site S trên đó có một tập các ứng dụng Q đang chạy trên một mảnh Fk:
o Giả sử tập các ứng dụng Q chỉ có khả năng vấn tin cập nhật (Update Query)
và vấn tin chỉ đọc (Retrieval only Query) trên mảnh Fk Ký hiệu:
T = {t1, t2, …, tm}, với ti là lưu lượng chỉ đọc Fk tại Si
U = {u1, u2, , um}, với ui là lưu lượng cập nhật Fk tại Si
o Giả sử chi phí trao đổi thông tin giữa hai vị trí Si và Sj là cố định đối với một đơn vị truyền Giả sử rằng chi phí truyền khi cập nhật và truy xuất dữ liệu là khác nhau Ký hiệu:
C(T) = {c12, c13, …, c1m, …, cm-1,m}, với cij là chi phí cho một đơn vị truyền cho các yêu cầu chỉ đọc giữa node Si và Sj
C’(U) = {c’12, c’13, …,c’1m, …, c’m-1,m} với c’ij là chi phí cho một đơn
vị truyền cho các yêu cầu cập nhật giữa các node Si và Sj
Trang 35o D = {d1, d2, …, dm} là chi phí lưu trữ mảnh Fk tại mọi vị trí.Gọi chi phí lưu trữ mảnh Fk tại vị trí Si là di
o Không có ràng buộc về khả năng lưu trữ cho các vị trí hoặc cho đường truyền
Khi đó, bài toán phân bố có thể được đặc tả như là một bài toán cục tiểu hoá chi phí trong đó tìm tập các vị trí I S nơi lưu trữ các bản sao của mảnh F⊆ k
Bài toán phát biểu như sau: Giả sử có một tập các mảnh dữ liệu F và một mạng máy tính bao gồm các tập các site S trên đó có một tập các ứng dụng Q đang chạy
“Tìm một tập các vị trí I ⊆S nơi lưu trữ các bản sao của mảnh Fk ∈F sao cho
khi thực hiện các ứng dụng Q là tối ưu”
Ký hiệu xj là biến quyết định (Decisio Variable) chọn vị trí để đặt sao lưu:
Nếu mảnh Fk được đặt tại vị trí SjTrong trường hợp ngược lại
Khi đó đặc tả chính xác như sau:
tổng chi phí lưu tất cả các bản sao của mảnh Fk
Đặc tả trên là đơn giản và không thích hợp cho việc thiết kế cơ sở dữ liệu phân tán, có độ phức tạp là NP đầy đủ Không có mô hình Heuristic tổng quát nào nhận một tập các mảnh và sinh ra một chiến lược phân bố gần tối ưu với các ràng buộc ở trên Bài toán phân bố tối ưu hoá chi phí sẽ được trình bày dưới dạng một mô hình tổng quát và một số Heuristic có thể sử dụng để giải quyết bài toán này
2.6.3 Thông tin cần thiết cho bài toán phân bố
Cần xác định các thông tin về cơ sở dữ liệu, thông tin về các ứng dụng, cấu
Trang 36a) Thông tin về cơ sở dữ liệu: Trên cơ sở của định nghĩa độ tuyển hội sơ cấp
trong phân mảnh ngang, người ta mở rộng định nghĩa này cho phân mảnh dọc như sau
o Ký hiệu seli(Fj) là độ tuyển của mảnh Fj ứng với truy vấn qi, là số lượng các
bộ của Fj cần được truy xuất để xử lý qi
o Ký hiệu size(Fj) = card(Fj) * length(Fj) là kích thước của một mảnh Fj Trong đó length(Fj) là chiều dài (tính theo byte) của một bộ trong mảnh Fj và card(Fj) là số bộ của mảnh Fj
b) Thông tin về ứng dụng:
o Ký hiệu RRij là số lần truy xuất đọc do truy vấn qi thực hiện trên mảnh Fj
o Ký hiêu URij tương ứng với RRij là số lần truy xuất cập nhật trên mảnh F j
o Ma trận UM gồm các phần tử tương ứng uij như sau:
Nếu truy vấn qi có cập nhật mảnh FjTrong trường hợp ngược lại
o Ma trận RM gồm các phần tử tương ứng rij như sau:
Nếu mảnh Fi được lưu tại vị trí Sj Ngược lại
o Một vectơ O gồm các giá trị o(i) mô tả vị trí đưa ra câu truy vấn qi
c) Thông tin về vị trí: Cần phải biết khả năng lưu trữ và xử lý của mỗi một vị
trí lưu trữ trên mạng Những giá trị này có thể tính được bằng các hàm thích hợp hoặc bằng các phương pháp đánh giá đơn giản Chi phí đơn vị
để lưu trữ dữ liệu tại vị trí Sk được ký hiệu là USC k Chi phí xử lý một đơn
vị công việc tại vị trí Sk là LPCk Đơn vị công việc phải giống với đơn vị của RR và UR
d) Thông tin về mạng: Giả sử bài toán xét trên một mạng máy tính đơn giản Chi phí truyền được định nghĩa theo đơn vị khung dữ liệu (Frame) Ký
hiệu gij là chi phí truyền một khung giữa hai vị trí Si và Sj Hàm fsize() là hàm kích thước tính theo byte của một khung dữ liệu
2.6.4 Mô hình phân bố dữ liệu
Mục tiêu của mô hình phân bố là giảm tối thiểu tổng chi phí xử lý và lưu trữ, đáp ứng được các đòi hỏi về thời gian đáp ứng Mô hình có dạng sau:
min(Total Cost) Ứng với ràng buộc thời gian đáp ứng, ràng buộc lưu trữ và ràng buộc xử lý Biến quyết định xij được định nghĩa là:
Nếu truy vấn qi có cập nhật mảnh F j Trong trường hợp ngược lại