1. Trang chủ
  2. » Luận Văn - Báo Cáo

Các thuật toán biến đổi thuật toán lược đồ quan hệ và ứng dụng

47 387 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 569,59 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một số thuật toán tốt theo nghĩa độ phức tạp tính toán giới hạn ở các hàm tuyến tính hoặc đa thức theo chiều dài dữ liệu vào đã được công bố như thuật toán tính bao đóng của tập thuộc tí

Trang 1

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Trang 2

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: PGS.TSKH NGUYỄN XUÂN HUY

THÁI NGUYÊN - 2013

Trang 3

LỜI CAM ĐOAN

Học viên cam đoan luận văn này là do bản thân tự nghiên cứu và thực hiện

theo sự hướng dẫn khoa học của thầy giáo PGS TSKH Nguyễn Xuân Huy

Học viên hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa học của luận văn này

Thái Nguyên, ngày 10 tháng 11 năm 2013

Người cam đoan

Phạm Ngọc Toán

Trang 4

LỜI CẢM ƠN

Trước tiên học viên bày tỏ lời cảm ơn chân thành đến các Thầy, cô giáo

đã giảng dạy, hướng dẫn và giúp đỡ học viên trong thời gian học tập và nghiên cứu hoàn thành luận văn này

Xin được bày tỏ lòng biết ơn sâu sắc tới Thầy giáo PGS.TSKH Nguyễn Xuân Huy đã tận tình hướng dẫn, giúp đỡ và đóng góp nhiều ý kiến

quí báu để hoàn thành luận văn này

Xin chân thành cảm ơn các Thầy, cô giáo Trường Đại Học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên, giúp đỡ và tạo điều kiện thuận lợi cho em trong thời gian học tập

Học viên xin chân thành cảm ơn đến Ban giám hiệu, các đồng nghiệp trường Trung học Nghiệp vụ quản lý LTTP, các bạn học viên lớp Cao học khóa 2011 - 2013 đã giúp đỡ và tạo điều kiện thuận lợi trong quá trình học tập

và làm luận văn

Cuối cùng, xin chân thành cảm ơn gia đình và bạn bè đã động viên, quan tâm, giúp đỡ học viên hoàn thành khóa học và luận văn

Trang 5

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT v

DANH MỤC CÁC HÌNH vi

MỞ ĐẦU 1

1 Lý do chọn đề tài 1

2 Đối tượng và phạm vi nghiên cứu 1

3 Hướng nghiên cứu của đề tài 1

4 Phương pháp nghiên cứu 2

5 Ý nghĩa khoa học của đề tài 2

6 Tên đề tài 2

7 Bố cục luận văn 2

Chương 1 CÁC KHÁI NIỆM VỀ LƯỢC ĐỒ QUAN HỆ 3

1.1 Quan hệ và bộ 3

1.2 Phụ thuộc hàm, hệ tiên đề Armstrong, lược đồ quan hệ 3

1.2.1 Phụ thuộc hàm 3

1.2.2 Hệ tiên đề Armstrong 4

1.2.3 Lược đồ quan hệ 4

1.3 Bao đóng của tập thuộc tính 4

1.4 Phủ của tập phụ thuộc hàm 8

1.5 Cơ sở của lược đồ quan hệ 10

1.6 Cách tính giao các cơ sở 12

1.7 Thuật toán tìm 2 cơ sở của LĐQH 13

Trang 6

Chương 2 PHÉP GIẢN LƯỢC CỦA LƯỢC ĐỒ QUAN HỆ 16

2.1 Phép biến đổi LĐQH 16

2.2 Thuật toán biến đổi LĐQH 17

2.3 Định lý cơ bản của phép biến đổi LĐQH 20

2.4 Dạng biểu diễn thứ nhất của cơ sở 23

2.5 Dạng biểu diễn thứ hai của cơ sở 24

Chương 3 CÀI ĐẶT CHƯƠNG TRÌNH 26

3.1 Giới thiệu 26

3.2 Các chức năng chính của chương trình 26

3.3 Giao diện chương trình 28

KẾT LUẬN VÀ ĐỀ NGHỊ 38

1 Kết luận 38

2 Đề nghị 38

TÀI LIỆU THAM KHẢO 39

Trang 7

DANH MỤC CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT

Khác Thuộc Không thuộc

Là tập con Suy ra

Phép giao tập hợp Phép hợp tập hợp Tương đương Tương đương

Chứa tập con Với mọi Tập rỗng

Trang 8

DANH MỤC CÁC HÌNH

Hình 3.1 Giao diện chính của chương trình 28

Hình 3.2 In số thuộc tính, phụ thuộc hàm trong tệp ld1 và tìm cơ sở 1 31

Hình 3.3 Tính bao đóng của mã số 1 3 (A, C) 31

Hình 3.4 Tìm cơ sở 2 32

Hình 3.5 Thu gon lược đồ 33

Hình 3.6 Thoát khỏi chương trình 33

Hình 3.7 In số thuộc tính, phụ thuộc hàm trong tệp luocdo2 và tìm cơ sở 1 36

Hình 3.8 Tính bao đóng mã số thuộc tính 3 và 5 36

Hình 3.9 Tìm cơ sở 2 37

Hình 3.10 Thu gọn lược đồ với mã số thuộc tính 1 4 6 (ADH) 37

Trang 9

MỞ ĐẦU

1 Lý do chọn đề tài

Ngày nay, Công nghệ Thông tin đang phát triển rất nhanh, được ứng dụng rộng rãi trong nhiều lĩnh vực của cuộc sống như: giáo dục, y tế, kinh tế, khoa học, xây dưng,… Việc dùng phương tiện tin học để tổ chức và khai thác

cơ sở dữ liệu đã được phát triển từ những năm 60 Trong những năm gần đây vai trò của máy tính trong việc lưu trữ thông tin ngày càng trở nên quan trọng

Vì vậy đã tạo ra những kho dữ liệu khổng lồ Quản lý các cơ sở dữ liệu lớn và phức tạp đòi hỏi nhiều thuật toán hữu hiệu để tính toán các đối tượng như bao đóng, khóa, phủ

Một số thuật toán tốt theo nghĩa độ phức tạp tính toán giới hạn ở các hàm tuyến tính hoặc đa thức theo chiều dài dữ liệu vào đã được công bố như thuật toán tính bao đóng của tập thuộc tính, thuật toán tìm một khóa, thuật toán xác định thành viên hay thuật toán xác định PTH suy dẫn, thuật toán tìm giao các khóa, thuật toán xác định một LĐQH có một khóa duy nhất

2 Đối tượng và phạm vi nghiên cứu

Luận văn tập trung tìm hiểu các thuật toán biến đổi lược đồ quan hệ và ứng dụng thông qua phép biến đổi của lược đồ quan hệ theo một tập thuộc tính X Tiếp tục phát triển dạng biểu diễn cơ sở thứ nhất và khảo sát biểu diễn

cơ sở dạng thứ 2 của lược đồ quan hệ Xây dựng một hệ trình minh họa và đánh giá các kết quả lý thuyết

3 Hướng nghiên cứu của đề tài

- Giới thiệu tổng quan về phép biến đổi của lược đồ quan hệ

- Các thuật toán biến đổi, giản lược lược đồ quan hệ

- Thuật toán biểu diễn cơ sở, tính bao đóng

- Cài đặt chương trình

Trang 10

4 Phương pháp nghiên cứu

- Phương pháp tổng hợp, phân tích các kết quả của các nhà nghiên cứu liên quan đến lĩnh vực nghiên cứu trên các tài liệu đã xuất bản, trên các bài báo, tạp chí khoa học, trên mạng Internet

- Giải quyết các vấn đề đặt ra trong phạm vi đề tài là tiên đề hóa Các

hệ tiên đề được xây dựng trên cơ sở một hệ suy dẫn hình thức với các tính chất cơ bản về các đối tượng cơ sở và các mối liên hệ giữa chúng Cơ sở toán học của các hệ tiên đề là định lý về tính xác đáng và đầy đủ cùng với các định

lý về điều kiện cần và đủ cho các hệ tiên đề tương đương

- Kết hợp chặt chẽ giữa lý thuyết và thực hành, sử dụng và phát triển các phần mềm nói chung và các phần mềm toán học nói riêng để kiểm định và thể hiện các kết quả lý thuyết

5 Ý nghĩa khoa học của đề tài

- Tổng hợp được lý thuyết về cơ sở của phép biến đổi của lược đồ quan hệ

- Vận dụng khái niệm, các thuật toán biến đổi lược đồ quan hệ và ứng dụng để giải quyết một số vấn đề trong quản lý ngữ nghĩa của dữ liệu như phụ thuộc dữ liệu, cơ sở, các dạng chuẩn của dữ liệu

- Các kết quả thu được có thể vận dụng cho các quy trình thiết kế các

cơ sở dữ liệu quan hệ dùng trong các hệ thống thông tin là:

+ Tính bao đóng của các tập thuộc tính,

+ Tìm cơ sở của lược đồ quan hệ

+ Biểu diễn cơ sở dạng thứ hai

CHƯƠNG 2 PHÉP GIẢN LƯỢC CỦA LƯỢC ĐỒ QUAN HỆ

CHƯƠNG 3 CÀI ĐẶT CHƯƠNG TRÌNH

Trang 11

Chương I

CÁC KHÁI NIỆM VỀ LƯỢC ĐỒ QUAN HỆ

1.1 Quan hệ và bộ [2]

Cho tập hữu hạn U = {A1, A2, , An} khác trống (n ≥ 1) Các phần tử của U được gọi là thuộc tính, ứng với mỗi thuộc tính Ai U, i = 1, 2, , n có một tập không rỗng dom(Ai) được gọi là miền trị của thuộc tính Ai (thập chí được giả thiết là chứa hơn 1 giá trị)

Một quan hệ R với các thuộc tính U = {A1, A2, , An}, ký hiệu là R(U),

là một tập các ánh xạ t: U D sao cho với mỗi Ai U ta có t(Ai) dom(Ai) Mỗi ánh xạ được gọi là một bộ của quan hệ R

Mỗi quan hệ R(U) có hình ảnh là một bảng, mỗi cột ứng với một thuộc tính, mỗi dòng là một bộ

Ta ký hiệu t(X) hoặc t.X là một bộ trên tập thuộc tính X

Một quan hệ rỗng, ký hiệu , là quan hệ không chứa bộ nào

Chú ý: Mỗi quan hệ là một tập các bộ nên trong quan hệ không có hai

Trang 12

Cho quan hệ R(U) và một PTH f: X Y trên U Ta nói quan hệ R thỏa PTH f (hay PTH f đúng trong quan hệ R), ký hiệu R(f), nếu hai bộ tùy ý trong

R giống nhau trên X thì cũng giống nhau trên Y, tức là:

R(X Y) u,v R: u.X = v.X u.Y = v.Y Cho quan hệ R(U) và tập PTH F trên tập thuộc tính U Ta nói quan hệ

R thỏa tập PTH F, ký hiệu R(F), nếu R thỏa mọi PTH trong F, tức là R(F)

Nếu X Y thì XZ YZ F3 Tính bắc cầu:

Nếu X Y và Y Z thì X Z Chú ý: Các PTH có vế trái chứa vế phải như mô tả trong F1 được gọi là tầm thường Các PTH tầm thường thoả trong mọi quan hệ

1.3 Bao đóng của tập thuộc tính [2]

Cho tập PTH F trên tập thuộc tính U và một tập con các thuộc tính X trong U Bao đóng của tập thuộc tính X, ký hiệu X+, là tập tất cả các thuộc tính

A U mà PTH X A có thể được suy diễn logic từ F nhờ hệ tiên đề Armstrong:

X+ = {A U | X A F+}

Trang 13

 Thuật toán tìm bao đóng của tập thuộc tính [2, 3]

Cho tập PTH F trên tập thuộc tính U và một tập con các thuộc tính X trong U Để xác định bao đóng của tập thuộc tính X , ký hiệu X+

xuất phát từ tập X và bổ sung dần cho X các thuộc tính thuộc vế phải của các PTH L R

F thoả điều kiện L X Thuật toán sẽ dừng khi không thể bổ sung thêm thuộc tính nào cho X

Algorithm Closure

Input: - Tập thuộc tính X U

- Tập PTH F Output: X+ = {A U|X A F+}

Method

Y: = X ;

Repeat

Z: = Y ; For each FD L R in F do

If L Y then Y: = Y R ;

Enddif ;

Endfor ;

Trang 14

)

Ví dụ 1: Cho lƣợc đồ quan hệ R = (U,F)

U = ABCDEGH F= {AB C, D EG, ACD B, C A, BE C, CE AG,

Trang 15

c Tính (DE)+

X0 = DE

1 X1 = DEG (áp dụng D EG)

2 X2 = DEGH (áp dụng G H) Vậy (DE)+ = DEGH

Ví dụ 2: Cho lƣợc đồ quan hệ R = (U,F)

Trang 16

c Tính (AEG)+

X0 = AEG

1 X1 = AEGBC (áp dụng AEG BC)

2 X2 = AEGBCD (áp dụng BG CD) Vậy (AEG)+ = ABCDEG

1.4 Phủ của tập phụ thuộc hàm [2, 3]

Cho hai tập PTH F và G trên cùng một tập thuộc tính U Ta nói F suy dẫn được ra G, ký hiệu F╞ G nếu g G: F╞ g

Ta nói F tương đương với G, ký hiệu F G, nếu F╞ G và G╞ F

Nếu F G ta nói G là một phủ của F

Ký hiệu: F !╞ G: F không suy dẫn ra được G

F ! G có nghĩa là F và G không tương đương

Cho tập PTH F trên tập thuộc tính U và X là tập con của U, ta dùng ký hiệu XF+

trong trường hợp cần chỉ rõ bao đóng của tập thuộc tính X lấy theo tập PTH F

 Phủ thu gọn tự nhiên

Cho hai tập PTH F và G trên cùng một thuộc tính U G là phủ thu gọn

tự nhiên của F nếu:

1 G là phủ của F, và

2 G có dạng thu gọn tự nhiên theo nghĩa sau:

Trang 17

a Hai vế trái và phải của mọi PTH trong G rời nhau (không giao nhau)

Z := R \ L;

If Z then

If there is an FD L Y in G then

Replace L Y in G by L YZ Else Add L Z to G;

Endif Endif

Endfor Return G;

End Natural_Reduced

Trang 18

Độ phức tạp của thuật toán trên là O(mn), trong đó m là số lượng PTH trong tập F, n là số lượng thuộc tính trong tập U Để ý rằng mn là chiều dài dữ liệu vào của thuật toán

1.5 Cơ sở của lược đồ quan hệ [2, 3]

Cho LĐQH p = (U, F) Tập thuộc tính B U được gọi là cơ sở của

Thuộc tính A U được gọi là thuộc tính cơ sở (nguyên thủy hoặc cơ sở) nếu A có mặt trong một cơ sở nào đấy A được gọi là thuộc tính không cơ

sở (phi nguyên thủy hoặc thứ cấp) nếu A không có mặt trong bất kỳ cơ sở nào Ký hiệu UB là tập các thuộc tính cơ sở của LĐQH p và U0 là tập các thuộc tính không cơ sở của p

Chú ý: Trong một số tài liệu, thuật ngữ cơ sở được dùng theo nghĩa

siêu cơ sở và thuật ngữ cơ sở tối tiểu được dùng theo nghĩa cơ sở

 Thuật toán tìm một cơ sở của LĐQH

Tư tưởng: Xuất phát từ một siêu cơ sở B tuỳ ý của LĐQH, duyệt lần lượt các thuộc tính A của B, nếu bất biến (B\{A})+

= U được bảo toàn thì A loại khỏi B Có thể thay kiểm tra (B\{A})+

= U bằng kiểm tra A (B\{A})+Algorithm Base

Function: Tìm một cơ sở của LĐQH

Input: - Tập thuộc tính U

Trang 19

- Tập PTH F

Output: Cơ sở B U thoả

i) B+ = U ii) A B : (B\{A})+ U Method

Dễ thấy rằng, LĐQH p có cơ sở B = C, vì thoả mãn hai điều kiện:

Trang 20

Tìm cơ sở của LĐQH đã cho?

Ta thấy, LĐQH P có cơ sở B = A, vì thoả mãn 2 điều kiện:

(i) B+ = A+ = ABCDE = U

(ii) A tối tiểu ( theo nghĩa (B \ {A})+ U )

Mặt khác, tương tự như trên, ta cũng dễ thấy rằng LĐQH P còn cơ sở thứ 2, đó là B = DE

Để trả lời cho câu hỏi: Lược đồ có trên một cơ sở hay không, ta đi tìm giao các cơ sở

Cho LĐQH p = (U,F) với n thuộc tính trong U và m PTH trong F Gọi

M là giao các cơ sở của p Khi đó có thể xác định giao các cơ sở bằng một thuật toán tuyến tính theo mn qua công thức: 

F R L

L R U

F R L

L R U

M \ ( \ )

Method

M:=U;

For each FD L R in F do

Trang 21

Ta có, giao của các cơ sở là UI = ABCDE\BCD = AE

UI+ = (AE)+ = AE U nên p có hơn một cơ sở Vì UI là giao các cơ sở nên ta có thể bổ sung cho UI một số thuộc tính để thu được các cơ sở

Dễ xác định được p có hai cơ sở là B1 = ABE và B2 = ADE Tập các thuộc tính cơ sở là UB = ABDE, tập các thuộc tính không cơ sở là U0 = C

1.7 Thuật toán tìm 2 cơ sở của LĐQH [2]

Bước 1: Tính giao các cơ sở

Bước 2: Tính M+

Nếu M+ = U Lược đồ có 1 cơ sở M là duy nhất

M+ U Lược đồ có trên 1 cơ sở Gọi thuật toán Base 1 – Tìm cơ sở 1

Gọi thuật toán Base 2 – Tìm cơ sở 2

 Thuật toán tìm cơ sở thứ hai của LĐQH

Tư tưởng: Xuất phát từ tập thuộc tính M = U, trước hết duyệt các thuộc tính A của B, nếu bất biến (M\{A})+

= U được bảo toàn thì loại A khỏi M Sau đó duyệt tương tự với các thuộc tính trong U\B

Trang 22

Output: Cơ sở thứ hai, nếu có, M U thoả

i) M+ = U ii) A M : (M\{A})+ U Nếu không có cơ sở thứ 2:

Trang 23

c P có còn cơ sở nào khác ngoài B1 không ? Vì sao ?

d Xác định tập các thuộc tính không cơ sở U0 của P

Giải

a Xác định phần giao của các cơ sở trong P

UI = U\vế phải của F = ABCDE – ABDE = C

Vậy cơ sở B1 của P là: CD

c P còn cơ sở khác ngoài cơ sở B1 vì:

M+ = C+ = C U nên lƣợc đồ có hơn một cơ sở

Vậy ngoài cơ sở B1, lƣợc đồ còn có cơ sở B2 = BC vì thoả 2 điều kiện sau:

(i) B+ = (BC)+ = ABCDE = U (ii) BC tối tiểu ( theo nghĩa (B \ {BC})+

U )

d Xác định tập các thuộc tính không cơ sở U0của P

- Thuộc tính cơ sở là thuộc tính có mặt trong mọi cơ sở, ký hiệu là UB

- Thuộc tính không cơ sở là thuộc tính không có mặt trong bất cứ cơ sở nào, ký hiệu U0

Ta có: UB = ABCD U0 = E

Trang 24

Nếu sau khi thực hiện phép thu gọn theo M cho LĐQH p ta thu được LĐQH q thì ta viết q = p\M

Thao tác loại bỏ M được thực hiện trên lược đồ p = (U,F) để thu được lược đồ q = (V,G) như sau:

1 Tính V = U\M có độ phức tạp O(n) với n là số lượng thuộc tính trong U

2 Mỗi PTH X Y trong F ta tạo ra PTH X\M Y\M cho G Thủ tục này ký hiệu là G = F\M Tính F\M đòi hỏi độ phức tạp O(mn) với m là số lượng PTH trong F

Như vậy q = p\M = (U\M,F\M) được thực hiện với độ phức tạp O(mn), tức là tuyến tính theo chiều dài dữ liệu vào (của LĐQH p)

Sau khi thực hiện thủ tục G = F\M nếu:

- G chứa PTH tầm thường (dạng X Y, X Y) thì ta loại các PTH này khỏi G

Trang 25

Giải Bước 1: Tính V = U \ M = ABCDEFG \ CFG = ABDE

Vậy V = ABDE Bước 2: Tính G = F\M = { AB DE,

p\XY = (p\X)\Y = (p\Y)\X

2.2 Thuật toán biến đổi LĐQH [2, 3]

Trang 26

Với M = ADH, hãy xác định q = (V,G) = p\M ?

Áp dụng thuật toán trên:

Bước 1: Tính V = U\M = ABCDEH\ADH = BCE

Trang 27

Để tìm tập cơ sở Base (p) của lược đồ p chúng ta xây dựng một lược

đồ q bằng cách xoá khỏi lược đồ p các thuộc tính A,D,H

Ta được lược đồ q = (V,G) qua phép thu gọn lược đồ p theo thuộc tính ADH như sau:

Bước 1: Tính V = U \ ADH = ABCDEH \ ADH = BCE

Vậy Base (p) = {AHBC, AHE} Dù F đã là tập PTH tối ưu theo nghĩa chứa ít ký hiệu nhất, nhưng G còn chứa ít ký hiệu hơn F

Trang 28

2.3 Định lý cơ bản của phép biến đổi LĐQH [2]

Cho LĐQH a=(U, F) và hai tập con rời nhau X và Y trong U Khi đó (XY)+F = XY+F\X

Chứng minh Đặt V=U\X và G=F\X Do X Y= và X không xuất hiện trong V và

G nên theo định nghĩa bao đóng của tập thuộc tính ta có X Y+

G = Chứng minh bằng quy nạp theo số bước xây dựng các dãy (XY)(h)

Y(h), h =0,1, theo thuật toán bao đóng của các tập thuộc tính XY và Y tương ứng với các tập PTH F và G Cụ thể ta chứng minh bất biến

Ngày đăng: 18/11/2014, 22:35

HÌNH ẢNH LIÊN QUAN

Hình 3.1 Giao diện chính của chương trình - Các thuật toán biến đổi thuật toán lược đồ quan hệ và ứng dụng
Hình 3.1 Giao diện chính của chương trình (Trang 36)
Hình 3.3 Tính bao đóng của mã số 1 3 (A, C) - Các thuật toán biến đổi thuật toán lược đồ quan hệ và ứng dụng
Hình 3.3 Tính bao đóng của mã số 1 3 (A, C) (Trang 39)
Hình 3.2 In số thuộc tính, phụ thuộc hàm trong tệp ld1 và tìm cơ sở 1 - Các thuật toán biến đổi thuật toán lược đồ quan hệ và ứng dụng
Hình 3.2 In số thuộc tính, phụ thuộc hàm trong tệp ld1 và tìm cơ sở 1 (Trang 39)
Hình 3.5 Thu gon lƣợc đồ - Các thuật toán biến đổi thuật toán lược đồ quan hệ và ứng dụng
Hình 3.5 Thu gon lƣợc đồ (Trang 41)
Hình 3.7 In số thuộc tính, phụ thuộc hàm trong tệp luocdo2 và tìm cơ sở  1 - Các thuật toán biến đổi thuật toán lược đồ quan hệ và ứng dụng
Hình 3.7 In số thuộc tính, phụ thuộc hàm trong tệp luocdo2 và tìm cơ sở 1 (Trang 44)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm