Một tùy chọn khác có thể là định dạng bảng bình thường với nhiều cột, một cột là tid và phần còn lại là các mặt hàng (items).
Đối với giao dịch với số lượng lớn các mặt hàng, định dạng đầu tiên sẽ có danh sách hữu hạn các mặt hàng như số lượng thực tế mà các mặt hàng tồn tại trong giao dịch. Đề tài lựa chọn cách thứ nhất là vì hai lý do:
1. Đầu tiên là chúng ta không biết số lượng của các mục trong mỗi giao dịch. 2. Ngoài ra cơ sở dữ liệu hiện tại trên thị trường có thể chỉ hỗ trợ số lượng nhất
định các cột cho một bảng. Nếu một trường hợp phát sinh trong đó có số lượng mặt hàng trong một giao dịch hơn mức cho phép của các cơ sở dữ liệu cơ bản, không có cách nào chúng ta có thể quản lý chính xác của dữ liệụ Cũng sẽ có
rất nhiều các giá trị null trong các hàng, các item không được sử dụng trong tất cả các giao dịch.
Dữ liệu ra: Đầu ra là một tập các bộ quy tắc, dữ liệu được trình bày theo hình thức bảng được đặt tên là RULES. Không phải luật kết hợp nào được sinh ra cũng cùng độ dài do đó chúng ta sẽ sử dụng độ dài tối đa để xác định số lượng các cột của bảng đầu rạ Một luật kết hợp được sinh ra cần phải có ít mặt hàng (item) hơn số lượng cột trong bảng. Những cột bổ sung cho luật kết hợp được sinh ra được gán giá trị 0. Cấu trúc bảng RULES (item1, item2, … ,itemk, nullm, rulem, confidence, support). Ở đây k là độ dài của tập phổ biến có độ dài lớn nhất. Cột nullm là cột có giá trị 0 đầu tiên, rulem là vị trí của „=>‟ trong luật kết hợp. Confidence và support lần lượt là độ tin cậy và độ hỗ trợ của luật kết hợp được sinh rạ
4.2 Sinh tập các ứng viên
4.2.1 Thực hiện phép nối giữa tập mục phổ biển Fk
Thuật toán Apriori đã được trình bầy trong chương 2, với mỗi k, tập ứng viên có độ dài k (Ck) có thể được sinh từ tất cả các tập mục phổ biến có độ dài bằng k-1 (Fk-1). Fk-1 sẽ có k-1 cột: Item1, Item2, …, Itemk-1, các giá trị lần lượt của tập mục phổ biến được sắp xếp theo thứ tự tăng dần.
(1) insert into Ck
(2) select I1.item1, … ,I1.itemk-1, I2.itemk-1
(3) from Fk-1 I1, Fk-1 I2
(4) where I1.item1 = I2.item1 and
(5) …
(6) I1.itemk-2 = I2.itemk-2 and
(7) I1.itemk-1 < I2.itemk-1