PHẦN MỞ ĐẦU Cơ sở dữ liệu CSDL là một trong những lĩnh vực được tập trung nghiên cứu và phát triển của công nghệ thông tin, nhằm giải quyết các bài toán quản lý, tìm kiếm thông tin tron
Trang 1Số hóa bởi Trung tâm Học liệu /
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
PHẠM THỊ CHI LÊ
TỐI ƯU HÓA TRUY VẤN
CƠ SỞ DỮ LIỆU SUY DIỄN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2013
Trang 2Số hóa bởi Trung tâm Học liệu /
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
PHẠM THỊ CHI LÊ
TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU
SUY DIỄN
Chuyên ngành : Khoa học máy tính
Mã số : 60.48.01
LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐOÀN VĂN BAN
Thái Nguyên - 2013
Trang 3Số hóa bởi Trung tâm Học liệu /
LỜI CAM ĐOAN
Tôi 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 PGS.TS Đoàn Văn Ban
Tôi 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 tháng năm 2013
Người Cam Đoan
Phạm Thị Chi Lê
Trang 4Số hóa bởi Trung tâm Học liệu /
1
LỜI CẢM ƠN
Trước tiên tôi 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 đỡ tôi 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.TS Đoàn Văn
Ban đã tận tình hướng dẫn, giúp đỡ và đóng góp cho tôi 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 & truyền thông Thái Nguyên và Viện Công nghệ thông tin đã giảng dạy, giúp đỡ và tạo điều kiện thuận lợi cho tôi trong thời gian học tập tại Trường
Tôi xin gửi lời cảm ơn đến các bạn đồng nghiệp và các bạn học viên lớp Cao học K10A khóa 2011 – 2013 đã giúp đỡ và tạo điều kiện thuận lợi cho tô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 đỡ tôi hoàn thành khóa học và luận văn
PHẦN MỞ ĐẦU
Cơ sở dữ liệu (CSDL) là một trong những lĩnh vực được tập trung nghiên cứu và phát triển của công nghệ thông tin, nhằm giải quyết các bài toán quản
lý, tìm kiếm thông tin trong những hệ thống lớn, đa dạng, phức tạp cho nhiều người sử dụng trên máy tính điện tử Cùng với sự ứng dụng mạnh mẽ công nghệ thông tin vào đời sống xã hội, kinh tế, quốc phòng Việc nghiên cứu CSDL đã và đang phát triển ngày càng phong phú và hoàn thiện
Tuy nhiên CSDL kinh điển không có khả năng suy dẫn ra sự kiện mới, khả năng tiềm ẩn không được khai thác hết nên từ những năm 1970-1980 có một
Trang 5Số hóa bởi Trung tâm Học liệu /
2
trào lưu sôi nổi muốn đưa vào CSDL quan hệ những cơ chế suy diễn, những tri thức tổng quát CSDL suy diễn là một lĩnh vực khá mới mẻ, trong thời gian qua người ta đã tập trung nghiên cứu và cho nhiều kết quả thú vị cả lĩnh vực
lý thuyết và ứng dụng CSDL suy diễn có khả năng sử dụng các tính năng của lập trình logic để thực hiện các suy diễn nhằm tạo ra thông tin mới dựa trên các luật suy diễn và dữ liệu được lưu trữ trong cơ sở dữ liệu
CSDL suy diễn, một sự mở rộng CSDL quan hệ, không những chỉ có các nguyên tố nền tương ứng với các bộ của các quan hệ trong CSDL quan hệ mà còn có các quy tắc tổng quát (gồm các quy tắc suy diễn và các ràng buộc toàn vẹn) Những quy tắc này tạo thành phần mở rộng So với các hệ CSDL quan
hệ, các hệ CSDL suy diễn thừa nhận một kiểu lý thuyết chứng minh, nghĩa là
nó được xem xét như một lý thuyết bao gồm một tập các công thức cấp một, còn việc thực hiện một câu truy vấn hoặc làm thoả mãn một ràng buộc toàn vẹn có thể xem như chứng minh một công thức cấp một là hệ quả logic của lý thuyết đã cho
Sức mạnh biểu diễn của CSDL suy diễn là thật sự quan trọng trong nhiều lĩnh vực khác nhau Các ứng dụng tiêu biểu của CSDL bao gồm hệ chuyên gia, hệ hỗ trợ quyết định, phân tích tài chính, phân tích ngôn ngữ, cú pháp Tuy vậy, trong lĩnh vực CSDL suy diễn, mặc dù đã có nhiều kết quả có giá trị nhưng cũng có nhiều vấn đề cần nghiên cứu tiếp, đặc biệt là các vấn đề về ngữ nghĩa của phủ định và tối ưu hoá câu hỏi (truy vấn)
Luận văn nghiên cứu các kỹ thuật tối ưu câu truy vấn trên CSDL suy diễn
Có ba kiểu tiếp cận khác nhau trong việc định giá câu truy vấn: Các phương pháp trên xuống, các phương pháp dưới lên và các phương pháp có sự kết hợp các đặc trưng của phương pháp trên xuống và dưới lên Các phương pháp trên xuống (còn gọi là suy luận đích hoặc kết xâu lùi) có điểm khởi đầu của việc tính toán là từ đích truy vấn và chúng sẽ không tính các sự kiện không thích
Trang 6Số hóa bởi Trung tâm Học liệu /
3
hợp với câu truy vấn Tuy nhiên quá trình tính toán có thể kéo dài vô hạn Các phương pháp dưới lên đảm bảo tính kết thúc trong quá trình tìm lời giải của câu truy vấn, nhưng điều này không có nghĩa là nó hiệu quả Chúng thường không định hướng đích, nhiều sự kiện không thích hợp với câu truy vấn cũng được tính Các chiến lược dưới lên không xem xét câu truy vấn trong suốt quá trình định giá, tức là việc tính toán không được gắn liền với câu truy vấn như thường xảy ra trong các phương pháp trên xuống
Trong thời gian gần đây, một số phương pháp mở rộng để trả lời câu truy vấn được đề xuất nhằm mục đích tạo ra một chiến lược tìm kiếm hướng đích, đồng thời có tính hiệu quả là đảm bảo kết thúc quá trình tính toán câu trả lời truy vấn Điển hình đó là phép biến đổi ma tập (magic set transformation) và định giá bảng Các phương pháp này được đánh giá là một trong những kỹ thuật tối ưu câu truy vấn có hiệu quả trong CSDL suy diễn Nó đã kết hợp được các ưu điểm của kỹ thuật định giá theo kiểu trên xuống và dưới lên, do
đó giảm thiểu được số các sự kiện cần tính và tìm kiếm trên CSDL
Ý tưởng chính của phép biến đổi ma tập là mô phỏng sự lan truyền các trị ràng buộc được tạo ra trong phương pháp định giá câu truy vấn theo kiểu trên xuống Sự lan truyền này nhận được bằng cách viết lại chương trình gốc ban đầu Trong mỗi quy tắc gốc một điều kiện mới được thêm vào để hạn chế việc tính toán trên quy tắc Các điều kiện này được xem là các quan hệ lọc Một quy tắc mới được tạo ra để mô phỏng sự lan truyền các trị ràng buộc
Luận văn gồm phần mở đầu, ba chương nội dung, phần kết luận, tài liệu tham khảo và phần phụ lục
Chương 1: Trình bày khái quát về Cơ sở dữ liệu suy diễn và ngữ nghĩa chương trình logic
Chương 2: Trình bày các phương pháp tối ưu câu truy vấn trong cơ sở dữ liệu suy diễn
Trang 7Số hóa bởi Trung tâm Học liệu /
4
Chương 3: Cài đặt chương tr
Phần phụ lục giới thiệu về Swi-Prolog và hướng dẫn cách thức làm việc với Swi-Prolog
Trang 8Số hóa bởi Trung tâm Học liệu /
5
CHƯƠNG 1 CƠ SỞ DỮ LIỆU SUY DIỄN VÀ NGỮ NGHĨA
CHƯƠNG TRÌNH LOGIC
Chương 1 trình bày kiến thức cơ bản về cơ sở dữ liệu suy diễn với các khái niệm, cấu trúc, mô hình, mục đích, chức năng cơ bản của cơ sở dữ liệu suy diễn và giới thiệu một số hệ quản trị cơ sở dữ liệu suy diễn như hệ LDL, hệ Anditi, hệ Coral; giới thiệu về chương trình logic với các khái niệm cơ bản như logic vị từ, hạng thức, công thức đóng, bộ kí tự .và ngữ nghĩa của chương trình logic; cuối chương giới thiêu về cơ sở dữ liệu Horn với các khái niệm, định lý, hệ quả, ngữ nghĩa của cơ sở dữ liệu Horn và các ví dụ để minh chứng cho phần lý thuyết
1.1 Giới thiệu về cơ sở dữ liệu suy diễn
Tính từ thời điểm xuất hiện các hệ quản trị cơ sở dữ liệu đầu tiên (khoảng những năm 1960) đến nay, công nghệ CSDL đã tiến triển nhanh chóng, và đã thu được rất nhiều thành tựu trong các lĩnh vực ứng dụng khác nhau của công nghệ thông tin Một đặc điểm chung của các hệ CSDL là khả năng quản lí những khối lượng lớn dữ liệu, tuy nhiên thường chỉ thực hiện các thao tác đơn giản để xử lí dữ liệu Vì vậy, việc nghiên cứu cơ sở dữ liệu suy diễn được đặt
ra như một yêu cầu thiết thực
Mặt khác, song song với sự phát triển của các hệ quản trị CSDL, các hệ chuyên gia đã được phát triển để trợ giúp quá trình ra quyết định trong các lĩnh vực chuyên ngành hẹp Đặc điểm chính của các hệ chuyên gia là cung cấp khả năng suy luận nhằm hỗ trợ việc ra quyết định, nhưng chúng thường không có khả năng quản lí các khối lượng lớn thông tin
Từ các yếu tố trên, các hệ CSDL suy diễn đã được đề xuất, xem như một giải pháp khắc phục những hạn chế của các hệ CSDL truyền thống bằng cách
Trang 9Số hóa bởi Trung tâm Học liệu /
6
phối hợp, theo một cách nào đó, các đặc trưng nổi trội được cung cấp bởi các
hệ chuyên gia
Do đó, các hệ CSDL suy diễn có thể được xem là một tích hợp của dữ liệu (như trong một hệ quản trị CSDL) và tri thức (như trong một hệ chuyên gia)
Hình trên đây minh hoạ sự tiến triển song song của các hệ CSDL và các hệ chuyên gia
Khái niệm về CSDL suy diễn cũng được nhiều nhà nghiên cứu đề cập theo
hướng phát triển các kết quả mà Green đã đạt được vào năm 1969 về các hệ
thống hỏi – đáp Xuất phát từ quan điểm lý thuyết, các CSDL suy diễn có thể
Có khả năng quản lí các khối
lượng lớn dữ liệu
Có các khả năng suy luận
- Dữ liệu ngoại diên: các sự kiện
- Tính toàn vẹn, khôi phục, tối
ưu hoá câu hỏi
- Được bảo trì bởi những nhà
quản trị
- Tri thức nội hàm: các luật
- Biểu diễn tri thức
- Được bảo trì bởi các chuyên gia
Cần những khả năng suy luận
bên trong cơ sở dữ liệu
Cần một hệ thống hoàn thiện để quản lí các khối lượng lớn thông tin
Các hệ CSDL Các hệ chuyên gia
Cơ sở dữ liệu suy
diễn
Hình 1.1 Sự tiến triển song song của các hệ CSDL và các hệ chuyên
gia
Trang 10Số hóa bởi Trung tâm Học liệu /
7
được coi như các chương trình logic với sự khái quát hoá khái niệm về CSDL
quan hệ Đó là cách tiếp cận của Brodie và Manola vào năm 1989, của Codd vào năm 1970, của Date vào năm 1986, của Gardarin và Valdurier vào năm
1989 và của Ullman vào năm 1984 [2]
Như vậy, CSDL suy diễn có thể được coi như các chương trình logic với
sự khái quát hóa khái niệm về CSDL quan hệ bằng cách hỗ trợ các khung nhìn đệ qui và dữ liệu không nguyên tử Điều này làm cho viêc lập trình CSDL dễ hơn nhiều đối với các ứng dụng
1.1.1 Cơ sở dữ liệu suy diễn (CSDLSD) là gì
CSDL truyền thống không suy diễn các sự kiện mới, ví dụ không thể suy
ra được là Vân là cha của ai nếu dựa vào quan hệ parent(X, Y)
Cơ sở dữ liệu suy diễn là cơ sở dữ liệu (CSDL) có khả năng suy diễn ra một số sự kiện mới từ những sự kiện, các luật được lưu trữ trong CSDL
Mô hình cơ sở dữ liệu suy diễn (CSDLSD) là sự tích hợp của mô hình cơ
sở dữ liệu và lập trình logic Cơ sở lý thuyết của mô hình cơ sở dữ liệu suy diễn là logic vị (tân) từ cấp một: lưu trữ, tìm kiếm, suy luận và điều khiển thực thi chương trình ứng dụng [1], [20]
Lập trình logic có thế mạnh là khả năng biểu diễn tri thức và thể hiện được ràng buộc toàn vẹn thông tin CSDLSD là một sự kết hợp giữa trí tuệ nhân tạo (AI) và CSDL
Cơ sở dữ liệu có khả năng quản trị dữ liệu, bảo mật dữ liệu
Cơ sở dữ liệu suy diễn có khả năng sử dụng các tính năng của lập trình logic để thực hiện các suy diễn nhằm tạo ra thông tin mới dựa trên các luật suy diễn và dữ liệu được lưu trữ trong cơ sở dữ liệu
Cấu trúc của một CSDL suy diễn
Một CSDL suy diễn là một bộ gồm ba tập hữu hạn:
Trang 11Số hóa bởi Trung tâm Học liệu /
8
- Tập các sự kiện (facts): cho phép biểu diễn thông tin cơ sở được biết là đúng trong CSDL
- Tập các luật suy diễn (deductive rules): cho phép suy dẫn các sự kiện mới
từ các sự kiện được lưu trữ trong CSDL
- Tập các ràng buộc toàn vẹn (integrity constrains): tương ứng với các điều kiện mà mỗi trạng thái của CSDL phải thỏa mãn
Ví dụ 1.1 Một CSDL suy diễn mô tả các mối quan hệ gia tộc
- Sự kiện
Bố(Dương, Tân)
Mẹ(Mai, Bách)
Bố(Phát, Mai)
- Các luật suy diễn
Cha_mẹ(x, y) ← Bố(x, y)
Cha_mẹ(x, y) ← Mẹ(x, y)
Bà(x, y) ← Mẹ(x, z) ^ Cha_mẹ(z, y)
Tổ_tiên(x, y) ← Cha_mẹ(x, y)
Tổ_tiên(x, y) ← Cha_mẹ(x, z) ^ Tổ_tiên(z, y)
- Các rằng buộc toàn vẹn
IC1(x) ← Cha_mẹ(x, x)
IC2(x) ← Bố(x, y) ^ Mẹ(x,y)
Tóm lại, một CSDL suy diễn là một bộ ba (F, DR, IC), trong đó F là một tập hữu hạn các sự kiện cơ sở, DR là một tập hữu hạn các luật suy diễn, và IC
là một tập hữu hạn các rằng buộc toàn vẹn Tập F các sự kiện được gọi là phần ngoại diên của CSDL (còn gọi là CSDL ngoại diên – EDB), còn tập DR
và IC làm thành nội hàm của CSDL (còn gọi là CSDL nội hàm – IDB) [10], [16], [20]
Các tân từ CSDL được chia thành các tân từ cơ sở (ngoại diên) và các tân
từ dẫn xuất (còn gọi là nội hàm hay khung nhìn)