i
Lời cảm ơn
Trước tiên, tôi xin được gửi lời cảm ơn đến tất cả quý thầy cô đã giảng dạy
trong chương trình Cao học do Trường Đại học Công nghệ thông tin và truyền thông
tổ chức, những người đã truyền đạt cho tôi những kiến thức hữu ích về khoa học máy
tính làm cơ sở cho tôi thực hiện tốt luận văn này.
Tôi xin chân thành cảm ơn PGS. TS. Đỗ Trung Tuấn đã tận tình hướng dẫn cho
tôi trong thời gian thực hiện luận văn. Mặc dù trong quá trình thực hiện luận văn có
giai đoạn không được thuận lợi nhưng những gì Thầy đã hướng dẫn, chỉ bảo đã cho tôi
nhiều kinh nghiệm trong thời gian thực hiện đề tài.
Tôi cũng xin gửi lời cảm ơn đến tất cả các Thầy Cô đang làm việc tại Phòng
khám đa khoa trường Cao đẳng Y tế Phú Thọ đã tận tình giúp đỡ trong việc thu thập
thông tin, lấy số liệu về bệnh và thuốc làm cơ sở dữ liệu cho luận văn.
Sau cùng tôi xin gửi lời biết ơn sâu sắc đến các anh chị trong lớp và gia đình đã
luôn tạo điều kiện tốt nhất cho tôi trong suốt quá trình học cũng như thực hiện luận
văn.
Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận
văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Thầy/Cô và các anh chị
học viên.
Phú Thọ, tháng 7 năm 2015
Học viên
Vy Đại Nghĩa
ii
Lời cam đoan
2. 1. 2. Bài toán khai phá luật kết hợp...................................................... 16
2. 2. Khai thác tập phổ biến dựa trên ngôn ngữ truy vấn .................................. 17
2. 2. 1. Ngôn ngữ truy vấn ....................................................................... 17
2. 2. 2. Tìm tập phổ biến bằng K-way join............................................... 19
2. 2. 3. Kết quả thử nghiệm 3 phương pháp đếm độ hỗ trợ ...................... 26
iv
2. 2. 4. Phân tích các cải tiến của thuật toán k-way join ........................... 31
2. 2. 5. Phát sinh luật kết hợp .................................................................. 36
2. 2. 6. Rút ngọn luật kết hợp .................................................................. 40
2. 3. Kết luận chương ...................................................................................... 47
CHƯƠNG 3 .............................................................................................................. 48
ỨNG DỤNG TRONG TÍNH TOÁN THỬ NGHIỆM ............................................ 48
3. 1. Các bài toán............................................................................................. 48
3. 1. 1. Bài toán tìm luật kết hợp dạng X Y .......................................... 48
3. 1. 2. Bài toán tìm độ hỗ trợ và độ tin cậy của luật ................................ 49
3. 1. 3. Bài toán đánh giá độ tin cậy của luật theo ngưỡng ....................... 50
3. 1. 5. Giải pháp giúp thực hiện các bài toán .......................................... 51
3. 2. Chương trình thử nghiệm ........................................................................ 53
3. 2. 1. Cơ sở dữ liệu của bài toán............................................................ 54
3. 2. 2. Kết quả khai phá dữ liệu khi thực hiện các bài toán ..................... 55
3. 3. Kết luận chương ...................................................................................... 61
KẾT LUẬN .............................................................................................................. 63
PHỤ LỤC ................................................................................................................. 64
TÀI LIỆU THAM KHẢO ....................................................................................... 71
v
HQTCSDL
Hệ quản trị cơ sở dữ liệu
ISO
Tổ chức tiêu chuẩn hóa quốc tế
MOLAP
multidimensional OLAP
OLAP
Online Analysis Processing
ORACLE
Tên công ty ORACLE, tên hệ quản trị
cơ sở dữ liệu
ROLAP
Relational OLAP
SQL
Ngôn ngữ truy vấn
support
Hình 2. 154: Đồ thị tổng hợp thời gian thực thi của 3 thuật toán khi minsup nhỏ ....... 31
vii
Bảng 2. 3: Cơ sở dữ liệu ban đầu D ........................................................................... 42
Bảng 2. 4: Cơ sở dữ liệu sau khi chuyển đổi .............................................................. 42
Bảng 2. 5: Kết quả F1 ................................................................................................. 43
Bảng 2. 6: Kết quả F2 ................................................................................................. 43
Bảng 2. 7: Kết quả C3 ................................................................................................ 44
Bảng 2. 8: Kết quả Comb3 ......................................................................................... 45
Bảng 2. 9: Kết quả F3 ................................................................................................. 45
Bảng 2. 10: Kết quả C4 .............................................................................................. 46
Bảng 2. 11: Kết quả Comb4 ....................................................................................... 46
Bảng 2. 12: Kết quả F4 ............................................................................................... 47
Bảng 2. 13. Kết quả ................................................................................................... 47
Bảng 3. 1. Cấu trúc bảng dữ liệu ban đầu ................................................................... 52
Bảng 3. 2. Cấu trúc bảng dùng để khai phá dữ liệu .................................................... 53
Hình 3. 1. Mẫu đơn thuốc của Phòng khám đa khoa Trường cao đẳng Y Phú Thọ ..... 54
Hình 3. 2. Minh họa cấu trúc dữ liệu ban đầu............................................................. 54
Hình 3. 3. Cấu trúc dữ liệu dùng để khai phá ............................................................. 55
Hình 3. 4. Tính độ hỗ trợ và độ tin cậy của luật {Cefalecin} => {Paracetamol} ......... 57
Hình 3. 5. Tính độ hỗ trợ và độ tin cậy của một luật {Decolgen}=>{Vitamin C} ....... 58
Hình 3.6. Đánh giá độ tin cậy của luật {Decolgen}=>{Vitamin B1}.......................... 61
Hình 3.7. Đánh giá độ tin cậy của luật {Cefalecin}=>{Vitamin C}............................ 61
Hình PL1: Minh họa dữ liệu đầu vào ......................................................................... 64
1
Quá trình phân tích dữ liệu, khám phá dữ liệu và xây dựng mô hình dữ liệu
thường lặp lại khi bạn tập trung vào và nhận ra các thông tin khác nhau để bạn có
thể trích ra. Bạn cũng phải hiểu cách thiết lập quan hệ, ánh xạ, kết hợp và phân cụm
thông tin đó với dữ liệu khác để tạo ra kết quả. Quá trình nhận ra dữ liệu nguồn và
các định dạng nguồn, rồi ánh xạ thông tin đó tới kết quả đã cho của chúng tôi có thể
thay đổi sau khi bạn phát hiện ra các yếu tố và các khía cạnh khác nhau của dữ liệu.
Khai phá dữ liệu không phải là tất cả về các công cụ hay phần mềm cơ sở dữ
liệu mà bạn đang sử dụng. Bạn có thể thực hiện khai phá dữ liệu bằng các hệ thống
cơ sở dữ liệu bình thường và các công cụ đơn giản, bao gồm việc tạo và viết phần
mềm riêng của bạn hoặc sử dụng các gói phần mềm bán ngoài cửa hàng. Khai phá
dữ liệu phức tạp được hưởng lợi từ kinh nghiệm trong quá khứ và các thuật toán đã
định nghĩa với phần mềm và các gói phần mềm hiện có, với các công cụ nhất định
để thu được một mối quan hệ hoặc uy tín lớn hơn bằng các kỹ thuật khác nhau.
Liên quan đến xử lí dữ liệu trong các bài toán với dữ liệu lớn, trên các hệ
quản trị cơ sở dữ liệu như Oracle, DB2, người ta đã sử dụng tiếp cận nối K-way join
[10] để tăng tốc độ xử lí dữ liệu, và để thuận tiện cho việc phát hiện các mối quan
hệ giữa các dữ liệu, chẳng hạn như luật kết hợp. Do đó, tôi đã chọn đề tài về xử lí
3
dữ liệu y tế, trong cơ sở dữ liệu về y tế tại trường Cao đẳng Y tế Phú Thọ áp dụng kĩ
thuật của tiếp cận K-way join để phát hiện các mối quan hệ.
Trong luận văn này, tôi sử dụng ngôn ngữ truy vấn SQL và chọn cách tiếp
cận K-way join làm trọng tâm để đưa ra được các tri thức về thuốc theo nhiều bệnh
lý khác nhau nhằm hỗ trợ cho y, bác sỹ và người quản lý trong công việc khám
chữa bệnh, kinh doanh dược. . . . Dựa trên bài toán đề ra, tôi đã tính toán một bài
toán thực tế lấy dữ liệu từ các đơn thuốc của phòng khám trường Cao đẳng Y tế Phú
Thọ, đơn thuốc mẫu trong các tài liệu giáo trình của nhà trường theo các bệnh khác
nhau. . .
4. Đối tượng và phạm vi nghiên cứu
Tìm hiểu các khái niệm cơ bản về luật kết hợp, các cách tiếp cận khai phá
dữ liệu, đặc biệt là cách tiếp cận K-way join
Đề xuất phương pháp phát sinh và rút gọn luật kết hợp trên tập luật mẫu
Tính toán thử nghiệm để đưa ra các tri thức về thuốc cho trường Cao
đẳng Y tế Phú Thọ, so sánh và đánh giá hiệu năng, độ tối ưu của cách tiếp
cận K-way join với các cách tiếp cận khác.
5. Phương pháp nghiên cứu
Tìm hiểu các tài liệu về các vấn đề liên quan.
Tham gia thảo luận và trình bày xemina.
Tính toán thử nghiệm.
6. Bố cục luận văn
Luận văn bao gồm: mục lục, phần mở đầu, phụ lục.
Chương I: Tổng quan về phát hiện mối quan hệ giữa các dữ liệu trong cơ
sở dữ liệu.
Chương II: Một số mối quan hệ dữ liệu được phát hiện thông qua ngôn
ngữ truy vấn
Chương III: Ứng dụng trong tính toán thử nghiệm.
Kết luận và hướng phát triển.
6
CHƯƠNG 1
TỔNG QUAN VỀ PHÁT HIỆN MỐI QUAN HỆ GIỮA CÁC DỮ LIỆU
TRONG CƠ SỞ DỮ LIỆU
1. 1. Mục tiêu của việc phát hiện mối quan hệ giữa các dữ liệu
Mục tiêu của việc khai khác dữ liệu có các nhiệm vụ chính như sau [2]:
mẫu, . . . ), rời rạc hoá dữ liệu (dựa vào histograms, entropy, phân
7
khoảng, . . . ). Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn,
và được rời rạc hoá.
Biến đổi dữ liệu (data transformation): Là bước chuẩn hoá và làm mịn dữ
liệu để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật
khai thác ở bước sau.
Khai phá dữ liệu (data mining): Đây là bước quan trọng và tốn nhiều thời
gian nhất của quá trình khám phá tri thức, áp dụng các kỹ thuật khai phá
(phần lớn là các kỹ thuật của học máy) để khai phá, trích chọn được các
mẫu (pattern) thông tin, các mối liên hệ đặc biệt trong dữ liệu.
Đánh giá và biểu diễn tri thức (knowledge representation & evaluation):
Dùng các kỹ thuật hiển thị dữ liệu để trình bày các mẫu thông tin (tri
thức) và mối liên hệ đặc biệt trong dữ liệu đã được khai phá ở bước trên
biểu diễn theo dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu,
luật, . . . Đồng thời bước này cũng đánh giá những tri thức khám phá
được theo những tiêu chí nhất định.
Trong giai đoạn khai phá dữ liệu, có thể cần sự tương tác của người dùng để điều
chỉnh và rút ra các tri thức cần thiết nhất. Các tri thức nhận được cũng có thể được
lưu và sử dụng lại.
1. 3. Các dạng dữ liệu có thể khai phá
Khai phá dữ liệu có khả năng chấp nhận một số kiểu dữ liệu khác nhau điển
hình như sau [3, 4]:
Cơ sở dữ liệu quan hệ (relational databases): Là các dữ liệu tác nghiệp
được tổ chức theo mô hình dữ liệu quan hệ rất phổ biến trong hệ thống
báo chí.
Cơ sở dữ liệu đa phương tiện (Multimedia database): Là dạng dữ liệu âm
thanh (audio), hình ảnh (video), văn bản và WWW, . . . Dạng dữ liệu này
đang rất phổ biến trên Internet và lưu tại các web server của các đơn vị
trực thuộc doanh nghiệp hoặc tổ chức.
1. 4. Các hướng tiếp cận chính trong khai phá dữ liệu
Một số hướng tiếp cận chính của khai phá dữ liệu được phân chia theo chức
năng hay lớp các bài toán khác nhau [2, 4]:
Phân lớp và dự đoán (classification & prediction): Xếp đối tượng vào
một trong các lớp đã biết trước. Ví dụ: phân lớp loại cước hoặc loại dịch
vụ dựa trên số máy bị gọi của cuộc gọi, phân lớp khu vực dựa trên số máy
chủ gọi, phân lớp giờ cao điểm, thấp điểm dựa trên giờ bắt đầu đàm thoại.
. . . Phân lớp là một lĩnh vực rất quan trọng trong khai phá dữ liệu. Phân
lớp còn được gọi là học có giám sát (supervised learning), hướng tiếp cận
này thường sử dụng một số kỹ thuật của học máy như cây quyết định
(decision tree), mạng nơ ron nhân tạo (neural network). . .
Trong việc khai phá dữ liệu, một số kiến trúc đã được đề xuất cho việc tích
hợp tiến trình khai phá với hệ quản trị cơ sở dữ liệu (HQTCSDL). Những kiến trúc
này được biểu diễn như sau:
9
sử dụng các câu truy vấn SQL để khai phá. Bộ xử lý tối ưu của HQTCSDL
(query optimizer) được dùng để tối ưu các truy vấn phức tạp, những truy
vấn xử lý với thời gian dài dựa trên ngữ nghĩa. Khai phá được tính xử lý
song song những câu truy vấn SQL.
Hình 1. 5: Kiến trúc dựa trên truy vấn SQL
Cách tiếp cận tích hợp (Intergrated approach): Đây là kiến trúc chặt chẽ
nhất, không có giới hạn giữa việc truy vấn, OLAP, hay khai phá. Các toán
tử khai phá hay SQL được mở rộng cho việc khai phá được tối ưu dựa trên
hệ thống bên trong mà không có sự tác động của người dùng.
Khai phá mẫu tuần tự (sequential/temporal patterns): Tương tự như khai
phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian. Một luật mô
tả mẫu tuần tự có dạng tiêu biểu X Y phản ánh sự xuất hiện của biến cố
X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y. Hướng tiếp cận này có tính
dự báo.
Phân cụm (clustering/segmentation): Sắp xếp các đối tượng theo từng
cụm (số lượng và tên của cụm chưa được biết trước). Các đối tượng được
gom cụm sao cho mức độ tương tự giữa các đối tượng trong cùng một cụm
là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong các cụm
khác nhau là nhỏ nhất. Phân cụm còn được gọi là học không có giám sát
(unsupervised learning).
tác động của con người, và từ đó có thể cung cấp giải pháp xấp xỉ nhanh
hơn. Mạng nơ ron có khả năng tổng quát, không giới hạn, mạnh và học tốt
trong môi trường dữ liệu giàu (data-rich). thuật toán di truyền cung cấp
khả năng tìm các thuật toán để chọn mẫu từ các dữ liệu hỗn tạp dựa trên
một số hàm tiêu chuẩn/ mục tiêu thường dùng. Tập thô thì phù hợp cho
tìm ra các mẫu khác nhau của tình trạng không rõ ràng trong dữ liệu. Một
số yêu cầu khai phá dữ liệu cần phải áp dụng phương pháp tính toán mềm
(Tính toán mềm là sự kết hợp của các phương pháp logic mờ, thuật toán di
truyền, khám phá tri thức, mạng nơ ron, tính toán neuro- fuzzy, tập thô, rút
ra luật. )
1. 5. 2. Ứng dụng của khai phá dữ liệu
Khai phá dữ liệu có nhiều ứng dụng trong thực tế. Một số ứng dụng điển
hình như [3, 4]:
Bảo hiểm.
12
Tài chính và thị trường chứng khoán: phân tích tình hình tài chính và dự
báo giá của các loại cổ phiếu trong thị trường chứng khoán. Danh mục vốn
và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận.
Phân tích dữ liệu và hỗ trợ ra quyết định.
mối quan hệ dữ liệu, các bước chính khai phá tri thức, các dạng dữ liệu có thể khai
phá, các hướng tiếp cận, phân loại và ứng dụng khai phá dữ liệu. Giúp chúng ta có
cái nhìn tổng quan về các mối quan hệ trong cơ sở dữ liệu, từ đó làm cơ sở để phát
triển chương 2, chương 3 của luận văn.
Chương hai và chương ba của luận văn trình bày về thuật toán k-way join
tìm tập phổ biến, các đề xuất tối ưu để thuật toán chạy đạt hiệu quả cao hơn và ứng
dụng thử nghiệm đối với cơ sở dữ liệu y khoa.
13
CHƯƠNG 2
MỘT SỐ MỐI QUAN HỆ DỮ LIỆU ĐƯỢC PHÁT HIỆN THÔNG QUA
NGÔN NGỮ TRUY VẤN
2. 1. Luật kết hợp
2. 1. 1. Các khái niệm cơ bản
Khai phá luật kết hợp là một kỹ thuật quan trọng của khai phá dữ liệu. Mục
tiêu khai phá là phát hiện những mối quan hệ giữa các giá trị dữ liệu trong cơ sở dữ
liệu. Mô hình đầu tiên của bài toán khai phá luật kết hợp là mô hình nhị phân (hay
còn gọi là mô hình cơ bản) được R. Agrawal, T. Imielinski và A. Swami đề xuất
vào năm 1993, xuất phát từ nhu cầu phân tích dữ liệu của cơ sở dữ liệu giao tác,
phát hiện các mối quan hệ giữa các tập mục hàng hóa (Itemsets) đã bán được tại các
siêu thị [15]. Việc xác định các quan hệ này không phân biệt vai trò khác nhau cũng
như không dựa vào các đặc tính dữ liệu vốn có của các thuộc tính mà chỉ dựa vào sự
xuất hiện cùng lúc của chúng. Dưới đây là một số các khái niệm cơ bản của luật kết
hợp [6]:
2. 1. 1. 1. Cơ sở dữ liệu giao tác
Cho tập các mục (item) I i1 , i2 ,..., in . Một giao tác (transaction) T là một
tập con của I, TI. Cơ sở dữ liệu giao tác là một tập các giao tác
Ta có: 0 sup (X Y) 1 .
Độ tin cậy của luật: Độ tin cậy (Confidence) của một luật X Y , ký hiệu
conf ( X Y ) , là tỷ lệ phần trăm giữa số giao tác chứa X Y và số giao tác chứa
X trong cơ sở dữ liệu DB.
conf(X Y ) =
sup(X Y )
sup(X )
Độ tin cậy của luật kết hợp X Y chính là xác suất có điều kiện P(Y/X) :
P(Y / X )
{T DB | X T Y T } {T DB | X Y T } sup(X Y )
{T DB | X T }
{T DB | X T }
sup(X )
và ta có 0 conf(X Y ) 1.
Các luật thoả mãn cả hai ngưỡng độ hỗ trợ tối thiểu (minsup) và độ tin cậy tối thiểu
(minconf), tức thỏa mãn sup(X Y ) minsup và conf(X Y ) minconf ,
được gọi là luật kết hợp mạnh.
Tính chất cơ bản của tập phổ biến :
Cho cơ sở dữ liệu giao tác DB và ngưỡng độ hỗ trợ tối thiểu minsup. Tập
mục phổ biến có các tính chất sau:
(1) Nếu X, Y là các tập mục và X Y thì sup( X ) sup(Y ) .
Độ hỗ trợ 2% có nghĩa là 2% của tất cả các khách hàng mua máy tính
kèm theo phần mềm quản lý tài chính.
16
Độ tin cậy 60% có nghĩa là 60% các khách hàng mua máy tính cũng mua
phần mềm.
Chúng ta nhận thấy rằng tri thức đem lại bởi luật kết hợp ở dạng trên có sự
khác biệt cơ bản so với thông tin thu được từ các câu lệnh truy vấn dữ liệu thông
thường như ngôn ngữ SQL. Đó là những tri thức, những mối liên hệ chưa biết trước
và mang tính dự báo đang tiềm ẩn trong dữ liệu. Những tri thức này không đơn giản
chỉ là kết quả của phép nhóm, tính tổng hay sắp xếp mà là kết quả của một quá trình
tính toán khá phức tạp và tốn nhiều thời gian. Thông tin mà dạng luật này đem lại là
rất đáng kể và hỗ trợ không nhỏ trong quá trình ra quyết định. Tìm kiếm được các
luật kết hợp “quý hiếm” và mang nhiều thông tin từ Cơ sở dữ liệu tác nghiệp là một
trong những hướng tiếp cận chính của lĩnh vực khai phá dữ liệu.
2. 1. 2. Bài toán khai phá luật kết hợp
Cho cơ sở dữ liệu giao tác DB, ngưỡng độ hỗ trợ tối thiểu minsup và ngưỡng
độ tin cậy tối thiểu minconf.
Yêu cầu: Tìm tất cả các luật kết hợp X Y trên cơ sở dữ liệu DB sao cho
sup(X Y ) minsup và conf (X Y) minconf .
Bài toán khai phá luật kết hợp này được gọi là bài toán cơ bản hay bài toán
nhị phân, vì ở đây, giá trị của mục dữ liệu trong cơ sở dữ liệu là 0 hoặc 1 (xuất hiện
hay không xuất hiện).
và ISO (Cơ quan tiêu chuẩn quốc tế) và được rất nhiều các phần mềm Quản trị hệ
CSDL hỗ trợ cho ngôn ngữ này như Oracle, NGRESS, DB2, SYBASE, INFOMIC.
. . v. v.
2. 2. 1. 2. Các đặc điểm của ngôn ngữ SQL
Đây là một ngôn ngữ rất phù hợp cho CSDL phân tán theo mô hình ClientServer, nó cho phép nhiều người dùng cùng truy nhập đến một cơ sở dữ liệu với độ
an toàn ổn định và tính bảo mật cao. Ngôn ngữ SQL đảm bảo lưu lượng truyền
thông tin trên mạng tối thiểu vì Client chỉ gửi câu hỏi và nhận về kết quả từ Server
chứ không phải gửi cả CSDL đi để xử lý. Đặc biệt là do được các hệ quản trị CSDL
hỗ trợ nên phương thức chung để giao tiếp giữa các phần mềm quản trị CSDL (như
dùng ODBC) và điều này làm cho hệ thống có tính mở. Thật vậy, có thể sử dụng
một hệ quản trị CSDL tốt (đòi hỏi cấu hình phần cứng mạnh) nhưng có thể vẫn
dùng phần mềm yêu cầu phần cứng thấp trên các Client hoặc có thể dùng các máy
Net computer. Mặt khác cũng có thể dùng nhiều hệ quản trị CSDL trong cùng một
18
hệ thống để khai thác các thế mạnh của chúng, ví dụ có thể dùng Lotus Notes trên
các Client (giao diện người dùng thân thiện, ưu việt về truyền thông, xử lý tốt văn
bản) và kết nối vào CSDL Oracle trên Server (tính bảo mật cao, đa người dùng,
quản lý tốt các giao tác-Transaction).
Ngôn ngữ SQL còn có khả năng thực hiện được những câu hỏi phức tạp mà
các dạng ngôn ngữ khác không đáp ứng được và một câu lệnh SQL có thể thay thế
cho một tập hợp các câu lệnh lập trình CSDL thông thường.
Ngoài cơ cấu xử lý dữ liệu SQL còn có các công cụ để xây dựng các ứng
dụng WEB, có khả năng xử lý dữ liệu, tạo báo cáo, thiết kế mô hình dữ liệu và quản
trị hệ thống.
2. 2. 1. 3. Các loại câu lệnh SQL thao tác với dữ liệu
Trong ngôn ngữ SQL có hai loại lệnh thao tác với dữ liệu, đó là:
<=, >=, BETWEEN; (iii) Liên kết ngoài (Outer joins): Giả sử có 2 bảng
KháchHàng và HoáĐơn cùng có 2 cột là MãKháchHàng. Khi liên kết 2
bảng cho hiện lên tên của những khách hàng có số thứ tự trùng nhau. Nếu
muốn hiện lên cả những khách hàng không thoả mãn trong bảng
KháchHàng cũng được hiện lên thì cần dùng liên kết ngoài; (iv) Liên kết
với chính nó (Self joins): Đây là kiểu liên đặc biệt giữa một bảng với
chính nó như 2 bảng riêng biệt. Để làm được việc này thì bảng đó phải có
một tên quan hệ.
4. Tích Đề-các: là kết quả của việc nhân hai tập hợp.
5. Câu lệnh phức: Một câu lệnh phức như là một câu lệnh SELECT, INSER,
UPDATE, hoặc DELETE có chứa một câu lệnh SELECT khác (được gọi
là subquery).
6. Các query kết hợp: Một query kết hợp là một query có sử dụng các toán
tử tập hợp như UNION, UNION ALL, INTERSECT hoặc MINUS.
7. Câu lệnh sử dụng View: View là một bảng logic mà thực chất là một câu
lệnh SELECT mà có thể thao tác giống như đối với bảng.
8. Câu lệnh phân tán: nghĩa là câu lệnh truy nhập dữ liệu từ xa.
2. 2. 2. Tìm tập phổ biến bằng K-way join
2. 2. 2. 1. Cấu trúc bảng dữ liệu
Do số item trong một giao tác không thể biết trước và có thể khác nhau nên
cấu trúc bảng dạng D (tid, item1, item2, …, itemn) là không thực tế. Ngoài ra, trong
thực tế, số item tối đa trong một giao tác có thể vượt quá số cột mà HQTCSDL (Hệ
quản trị cơ sở dữ liệu) hỗ trợ. Chẳng hạn đối với SQL 2000/2005, số cột tối đa cho
phép trong một bảng là 1024. Trong trường hợp này, cấu trúc bảng có dạng D (tid,
item1, item2, …, itemn) là không khả thi vì n phải nhỏ hơn 1024. Ngoài ra, nếu lưu
trữ bảng có nhiều cột, thì rất có thể sẽ lãng phí bộ nhớ khi mà số item trong các giao
tác khác nhau qua nhiều. Do đó, để không phụ thuộc vào số item trong một giao tác,
không phụ thuộc vào giới hạn cột trong một bảng của HQTCSDL, và để tiết kiệm
bộ nhớ, cấu trúc dữ liệu đề xuất cho việc khai thác có dạng D (Tid, item) [8, 9, 10,
11]. Trong đó: