Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
405,29 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT ĐỀ TÀI : NGHIÊN CỨU CƠ SỞ DỮ LIỆU SUY DIỄN VÀ ỨNG DỤNG TP.HCM 18/08/2012 Gi ng viên h ng d n : PGS.TS Phúcả ướ ẫ Đỗ H c viên th c hi n : oàn V Ng c Duyọ ự ệ Đ ũ ọ MSSV : CH1101010 2 I. Chương I : MỞ ĐẦU Suy diễn Logic, lập luận bằng suy diễn hay suy diễn là lập luận mà trong đó kết luận được rút ra từ các sự kiện được biết trước theo kiểu: nếu các tiền đề là đúng thì kết luận phải đúng. Nghĩa là các sự kiện cho trước đòi hỏi rằng kết luận là đúng. Kiểu lập luận này khác với lập luận loại suy và lập luận quy nạp, trong đó các tiền đề có thể tiên đoán một xác suất cao của kết luận nhưng không đảm bảo kết luận là đúng. Suy diễn còn được định nghĩa là kiểu suy luận từ trường hợp tổng quát hơn tới trường hợp cụ thể hơn, hay là suy luận mà trong đó kết luận có độ xác tính ngang bằng với các tiền đề 1. Móc phát triển của lập luận Logic Logic hay luận lý học, từ tiếng Hy Lạp cổ điển λόγος (logos), nghĩa nguyên thủy là từ ngữ, hoặc điều đã được nói, (nhưng trong nhiều ngôn ngữ châu Âu đã trở thành có ý nghĩa là suy nghĩ hoặc lập luận hay lý trí). Logic thường được nhắc đến như là một ngành nghiên cứu về tiêu chí đánh giá các luận cứ, mặc dù định nghĩa chính xác của logic vẫn là vấn đề còn đang được bàn cãi giữa các triết gia. Tuy nhiên khi môn học được xác định, nhiệm vụ của nhà logic học vẫn như cũ: làm đẩy mạnh tiến bộ của việc phân tích các suy luận có hiệu lực và suy luận ngụy biện để người ta có thể phân biệt được luận cứ nào là hợp lý và luận cứ nào có chỗ không hợp lý. Theo truyền thống, logic được nghiên cứu như là một nhánh của triết học. Kể từ giữa thế kỉ 19 logic đã thường được nghiên cứu trong toán học và luật. Gần đây nhất logic được áp dụng vào khoa học máy tính và trí tuệ nhân tạo. Là một ngành khoa học hình thức, logic nghiên cứu và phân loại cấu trúc của các khẳng định và 3 các lý lẽ, cả hai đều thông qua việc nghiên cứu các hệ thống hình thức của việc suy luận và qua sự nghiên cứu lý lẽ trong ngôn ngữ tự nhiên. Tầm bao quát của logic do vậy là rất rộng, đi từ các đề tài cốt lõi như là nghiên cứu các lý lẽ ngụy biện và nghịch lý, đến những phân tích chuyên gia về lập luận, chẳng hạn lập luận có xác suất đúng và các lý lẽ có liên quan đến quan hệ nhân quả. Ngày nay, logic còn được sử dụng phổ biến trong lý thuyết lý luận. Qua suốt quá trình lịch sử, đã có nhiều sự quan tâm trong việc phân biệt lập luận tốt và lập luận không tốt, và do đó logic đã được nghiên cứu trong một số dạng ít nhiều là quen thuộc đối với chúng ta. Logic Aristotle chủ yếu quan tâm đến việc dạy lý luận thế nào cho tốt, và ngày nay vẫn được dạy với mục đích đó, trong khi trong logic toán học và triết học phân tích (analytical philosophy) người ta nhấn mạnh vào logic như là một đối tượng nghiên cứu riêng, và do vậy logic được nghiên cứu ở một mức độ trừu tượng hơn. Các quan tâm về các loại logic khác nhau giải thích rằng logic không phải là được nghiên cứu trong chân không. Trong khi logic thường có vẻ tự cung cấp sự thúc đẩy chính nó, môn học này phát triển tốt nhất khi lý do mà chúng ta quan tâm đến logic được đặt ra một cách rõ ràng Một trong những tác phẩm logic sớm nhất còn tồn tại đến ngày nay là của Aristotle. Logic của Aristotle được chấp nhận rộng rãi trong khoa học và toán học và vẫn còn được sử dụng rộng rãi ở phương Tây đến đầu thế kỷ 19. Hệ thống logic của Aristotle phù hợp cho việc giới thiệu suy diễn giả định, và logic quy nạp. Ở Châu Âu, trong cuối thời kỳ trung đại, có nhiều nỗ lực nhằm chứng tỏ những tư tưởng của Aristotle tương thích với niềm tin Cơ Đốc. Trong suốt thời kỳ Trung kỳ Trung cổ, logic trở thành đề tài chính của các nhà triết học, những người muốn tham gia vào những cuộc tranh luận triết học về phân tích logic học. 4 Logic trong triết học Hồi giáo, đặc biệt là logic của Avicennia, chịu ảnh hưởng lớn từ logic của Aristotle. Tại Ấn Độ, những đổi mới trong trường phái triết học, gọi là Nyaya, tiếp diễn từ thời cổ đại đến đầu thế kỷ 18 với trường phái Navya-Nyaya. Đến trước thế kỷ 16, nó đã phát triển những lý thuyết giống với logic hiện đại 2. Nhu cầu về cơ sở dữ liệu suy diễn Cơ sở dữ liệu suy diễn có mục tiêu tổ chức dữ liệu, truy cập và cập nhật những khối lượng lớn dữ liệu một cách thuận lợi, an toàn và hiệu quả. Hai thế hệ đầu CSDL suy diễn đã đáp ứng được nhu cầu thu thập và tổ chức các dữ liệu của các cơ quan, xí nghiệp và tổ chức kinh doanh, các ứng dụng trong suy diễn ngữ nghĩa , logic để có thể giải các bài toán đơn giản hơn. Tuy nhiên, với sự phát triển nhanh chóng của công nghệ truyền thông và sự bành trướng mạnh mẽ của mạng Internet, cùng với xu thế toàn cầu hoá trong mọi lĩnh vực, đặc biệt là về thương mại, đã làm nảy sinh nhiều ứng dụng mới trong đó phải quản lý những đối tượng có cấu trúc phức tạp (văn bản, âm thanh, hình ảnh) và động (các chương trình, các mô phỏng). Trong những năm 1990 đã xuất hiện một thế hệ thứ ba các hệ quản trị cơ sở dữ liệu, các hệ "hướng đối tượng", có khả năng hỗ trợ các ứng dụng đa phương tiện (multimedia). Mục đích của đề tài nghiên cứu CSDL suy diễn là nhằm trình bày các khái niệm và thuật toán cơ sở của CSDL bao gồm : các mô hình dữ liệu và các hệ CSDL tương ứng, các ngôn ngữ CSDL, tổ chức lưu trữ và tìm kiếm, xử lý và tối ưu hoá câu hỏi, quản lý giao dịch và điều khiển tương tranh, thiết kế các CSDL thế hệ 3 Tuy đã cố gắng, nhưng đề tài nghiên cứu này không thể được những sai sót. Rất mong nhận được ý kiến đóng góp của thầy cô để hoàn chỉnh hơn 5 II. Chương II : LẬP TRÌNH LOGIC 1. Giới thiệu về lập trình Logic Trong lập trình logic, ta có thể sử dụng các vị từ để định nghĩa các khái niệm của tất cả các môn khoa học khác. Ví dụ định nghĩa một số nguyên tố: Số nguyên tố N là một số nguyên lớn hơn 1, chỉ chia hết cho 1 và chính nó. Để xét xem số N có phải là số nguyên tố hay không, người ta thường sử dụng dấu hiệu nhận biết : Số nguyên tố là một số nguyên dương, không chia hết cho mọi số nguyên tố nhỏ hơn nó và 2 là số nguyên tố nhỏ nhất. Dấu hiệu này có thể mô tả bằng các vị từ như sau: • 2 là một số nguyên tố. • N là một số nguyên tố nếu N > 0, M là số nguyên tố nào đó, M < N và N không chia hết cho M. Khi mô tả bài toán dưới dạng logic vị từ, ta có thể yêu cầu hệ thống tìm kiếm các lời giải liên quan đến các khai báo đó. Bài toán cần giải được xem là “mục tiêu” mà hệ thống phải chứng minh trên cơ sở các tri thức đã được khai báo. Như thế, toàn bộ các ký hiệu của ngôn ngữ lập trình suy về một công thức đặc biệt : • Phát sinh từ một yêu cầu. • Nhằm chứng minh một mục tiêu. Để trả lời cho câu hỏi đó hệ thống xem nó như là một “đích” và cố chứng minh “đích” đó bằng cách tạo những suy diễn trên cơ sở các tri thức đã khai báo. Một ngôn ngữ logic có thể được dùng trong giai đoạn đặc tả yêu cầu của quy trình xây dựng một sản phẩm phần mềm. Hơn thế nữa, logic vị từ cho phép biểu diễn hầu hết các khái niệm và các định lý trong các bộ môn khoa học 2. Ngôn ngữ prolog 6 1) Prolog là ngôn ngữ lập trình Logic Prolog là ngôn ngữ được sử dụng phổ biến nhất trong dòng các ngôn ngữ lập trình Logic (Prolog có nghĩa là Programming in logic). Ngôn ngữ Prolog do giáo sư người Pháp Alain Colmerauer và nhóm nghiên cứu của ông đề xuất lần đầu tiên tại trường Đại học Marseille đầu những năm 1970. Đến năm 1980, Prolog nhanh chóng được áp dụng rộng rãi ở châu Âu, được người Nhật chọn làm ngôn ngữ phát triển dòng máy tính thế hệ 5. Prolog đã được cài đặt trên các máy vi tính Apple II, IBM-PC, Macintosh. Prolog còn được gọi là ngôn ngữ lập trình ký hiệu (symbolic programming) tương tự các ngôn ngữ lập trình hàm (functional programming), hay lập trình phi số (non- numerical programming). Prolog rất thích hợp để giải quyết các bài toán liên quan đến các đối tượng (object) và mối quan hệ (relation) giữa chúng. Prolog được sử dụng phổ biến trong lĩnh vực trí tuệ nhân tạo. Nguyên lý lập trình Logic dựa trên các mệnh đề Horn (Horn logíc). Một mệnh đề Horn biễu diễn một sự kiện hay một sự việc nào đó là đúng hoặc không đúng, xảy ra hoặc không xảy ra (có hoặc không có, v.v ). Ví dụ sau đây là một số mệnh đề Horn : 1. Nếu một người già mà (và) khôn ngoan thì người đó hạnh phúc. 2. Jim là người hạnh phúc. 3. Nếu X là cha mẹ của Y và Y là cha mẹ của Z thì X là ông của Z. 4. Tom là ông của Sue. 5. Tất cả mọi người đều chết (hoặc Nếu ai là người thì ai đó phải chết). 6. Socrat là người. Trong các mệnh đề Horn ở trên, các mệnh đề 1, 3, 5 được gọi là các luật (rule), các mệnh đề còn lại được gọi là các sự kiện (fact). Một chương trình Logic có thể được xem như là một cơ sở dữ liệu gồm các mệnh đề Horn, hoặc dạng luật, hoặc dạng sự kiện, chẳng hạn như tất cả các sự kiện và luật từ 1 đến 6 ở trên. Người sử 7 dụng (NSD) gọi chạy một chương trình Logic bằng cách đặt câu hỏi (query/ question) truy vấn trên cơ sở dữ liệu này, chẳng hạn câu hỏi : Socrat có chết không ? (tương đương khẳng định Socrat chết đúng hay sai ?) Một hệ thống Logic sẽ thực hiện chương trình theo cách «suy luận» & tìm kiếm dựa trên vốn «hiểu biết» đã có là chương trình cơ sở dữ liệu, để minh chứng câu hỏi là một khẳng định, là đúng (Yes) hoặc sai (No). Với câu hỏi trên, hệ thống tìm kiếm trong cơ sở dữ liệu khẳng định Socrat chết và «tìm thấy» luật 5 thoả mãn (vế thì). Vận dụng luật 5, hệ thống nhận được Socrat là người (vế nếu) chính là sự kiện 5. Từ đó, câu trả lời sẽ là : Yes ( có nghĩa sự kiện Socrat chết là đúng ) 2) Cú pháp Prolog a) Các thuật ngữ Một chương trình Prolog là một cơ sở dữ liệu gồm các mệnh đề (clause). Mỗi mệnh đề được xây dựng từ các vị từ (predicat). Một vị từ là một phát biểu nào đó về các đối tượng có giá trị chân đúng (true) hoặc sai (fail). Một vị từ có thể có các đối là các nguyên Logic (logic atom). Mỗi nguyên tử (nói gọn) biểu diễn một quan hệ giữa các hạng (term). Như vậy, hạng và quan hệ giữa các hạng tạo thành mệnh đề. Hạng được xem là những đối tượng “dữ liệu” trong một trình Prolog. Hạng có thể là hạng sơ cấp (elementary term) gồm hằng (constant), biến (variable) và các hạng phức hợp (compound term). Các hạng phức hợp biểu diễn các đối tượng phức tạp của bài toán cần giải quyết thuộc lĩnh vực đang xét. Hạng phức hợp là một hàm tử (functor) có chứa các đối (argument), có dạng 8 Tên_hàm_tử (Đối_1, , Đối_n) Tên hàm tử là một chuỗi chữ cái và/hoặc chũ số được bắt đầu bởi một chữ cái thường. Các đối có thể là biến, hạng sơ cấp, hoặc hạng phức hợp. Trong Prolog, hàm tử đặc biệt “.” (dấu chấm) biểu diễn cấu trúc danh sách (list). Kiểu dữ liệu hàm tử tương tự kiểu bản ghi (record) và danh sách (list) tương tự kiểu mảng (array) trong các ngôn ngữ lập trình mệnh lệnh (C, Pascal ). Ví dụ 2 : f(5, a, b). student(robert, 1975, info, 2, address(6, 'mal juin', 'Caen')). [a, b, c] Mệnh đề có thể là một sự kiện, một luật (hay quy tắc), hay một câu hỏi. Prolog quy ước viết sau mỗi mệnh đề một dấu chấm để kết thúc như sau : • Sự kiện : < >. (tương ứng với luật < > :- true. ) • Luật : < > :- < >. • Câu hỏi ?- < >. (ở chế độ tương tác có dấu nhắc lệnh) b) Các kiểu dữ liệu Prolog Hình 1.1. biểu diễn một sự phân lớp các kiểu dữ liệu trong Prolog gồm kiểu dữ liệu sơ cấp và kiểu dữ liệu có cấu trúc. Sự phân lớp này nhận biết kiểu của một đối tượng nhờ bề ngoài cú pháp. 9 Cú pháp của Prolog quy định mỗi kiểu đối tượng có một dạng khác nhau. Prolog không cần cung cấp một thông tin nào khác để nhận biết kiểu của một đối tượng. Trong Prolog, NSD không cần khai báo kiểu dữ liệu. Hình I.1. Các kiểu dữ liệu trong Prolog Các kiểu dữ liệu Prolog được xây dựng từ các ký tự ASCII : • Các chữ cái in hoa A, B, , Z và chữ cái in thường a, b, , z. • Các chữ số 0, 1, , 9. • Các ký tự đặc biệt, chẳng hạn + - * / < > = : . & _ ~. Chú thích Trong một chương trình Prolog, chú thích (comment) được đặt giữa hai cặp ký hiệu /* và */ (tương tự ngôn ngữ C). Ví dụ : /*************************/ /*** Đây là một chú thích ***/ /*************************/ 10 [...]... quả Cơ chế suy diễn dùng trong CSDL suy diễn để tính toán trả lời không được tổng quát như trong lập trình logic Ngoài việc dùng logic để diễn tả các câu CSDL, người ta còn dùng logic để diễn tả những câu hỏi và các điều kiện toàn vẹn.ệu quan hệ do E.F Codd đề xuất vào năm 1970 22 2 Cơ sở dữ liệu suy diễn 1) Mô hình cơ sở dữ liệu suy diễn Mô hình dữ liệu gồm: • Kí pháp toán học để mô tả hình thức dữ liệu. .. trị CSDL suy diễn (Deductive DBMS) Hệ quản trị CSDL cho phép suy diễn các n_bộ của vị từ theo mục đích bằng bằng cách sử dụng các luật logic Các chức năng của hệ quản trị CSDL suy diễn được mô tả như sau: Câu hỏi Các vị từ theo mục đích Các luật Datalog Các vị từ cơ sở Cập nhật 33 CSDL suy diễn được xây dựng dựa trên các quan hệ cơ sở và quan hệ suy diễn Hệ quản trị CSDL này được gọi là suy diễn bởi... phép và Logic) : mother(X, Y) :- parent(X, Y), woman(X) 21 III 1 Chương III : CƠ SỞ DỮ LIỆU SUY DIỄN Giới thiệu chung Xuất phát từ quan điểm lý thuyết, các CSDL suy diễn có thể đượ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 Da te vào năm 1986, của Gardarin và Valdurier vào năm 1989 và. .. (xn=yn) → (y1, y2, , yn)) 5) Nhìn nhận cơ sở dữ liệu suy diễn Ở đây chỉ nhìn nhận lý thuyết chứng minh áp dụng cho CSDL suy diễn Ngôn ngữ L của CSDL (D, L) được xây dựng chỉ bằng các kí hiệu xuất hiện trong D, và người ta có thể dùng bất kì ngữ nghĩa thủ tục nào trong ngữ cảnh của chương trình logic như công cụ để tìm các câu trả lời bằng cách suy diễn từ lý thuyết chứng minh T, lý thuyết T đảm bảo ngữ... mô hình, hay quan điểm cấu trúc quan hệ, và quan điểm lý thuyết chứng minh Hai quan điểm trên đã được hình thức hoá thành khái niệm tương ứng của cơ sở dữ liệu thông thường và CSDL suy diễn Tư tưởng đằng sau quan điểm lý thuyết chứng minh của CSDL(D,L) là o Xây dựng một lý thuyết T, gọi là lý thuyết chứng minh của (D,L), bằng cách dùng các câu D và ngôn ngữ L, và o Trả lời các câu hỏi trong CSDL Nhìn... hình thức dữ liệu và các quan hệ • Kỹ thuật để xử lý dữ liệu như trả lời các câu hỏi, kiểm tra điều kiện toàn vẹn Ngôn ngữ bậc một được dùng như kí pháp toán học để mô tả dữ liệu trong mô hình CSDL suy diễn và dữ liệu được xử lý trong các mô hình như vậy nhờ việc đánh giá công thức logic Tiếp cận của logic bậc một như nền tảng lý thuyết của các hệ thống CSDL suy diễn Tuy nhiên để dễ biểu diễn hình thức... đó: P là tên của quan hệ cơ sở hay quan hệ suy diễn Mỗi Ai (i=1,2,…,n) là hằng số hay tên biến Một luật trong DATALOG có dạng: P(X1, X2,…, Xn) ← Q1(X11, X12,…,X1,m1), Q2(X21, X22,…,X2,m2),…,Qr(Xr1, Xr2,…,Xr,mr), e Trong đó: • P là tên của quan hệ suy diễn • Mỗi Qi là tên của quan hệ cơ sở hay quan hệ suy diễn • E là biểu thức vị từ số học đối với các biến xuất hiện trong P và tất cả các Qi (mỗi biến... vào năm 1989 và của Ullman vào năm 1984 Lập trình logic là mảng công việc trước tiên khi chứng minh định lý cơ học Sự thật thì việc chứng minh định lý đã tạo nên cơ sở cho hầu hết hệ thống lập trình logic hiện nay Tư tưởng cơ bản của lập trình logic là sử dụng logic toán học như ngôn ngữ lập trình Điều này được đề cập trong tài liệu của Kowaski năm 1970, và được Colmerauer đưa vào thực hành năm 1975 trong... luận đúng Đối với nhu cầu thực hành CSDL suy diễn xử lý các câu không phức tạp như các câu trong hệ thống lập trình logic Số các luật, tức là số các câu với các điều kiện không trống trong CSDL suy diễn nhỏ hơn số các sự kiện, tức các câu với điều kiện rỗng Một khía cạnh khác nhau nữa giữa CSDL suy diễn và lập trình logic là các hệ thống lập trình logic nhấn mạnh các chức năng, trong khi CSDL suy diễn. .. quản trị CSDL này được gọi là suy diễn bởi lẽ nó cho phép suy ra các thông tin từ các dữ liệu đã lưu trữ theo cơ chế suy diễn logic Các thông tin là các vị từ theo mục đích, các thông tin này có được khi người ta tương tác với vị từ theo mục đích hoặc cập nhật vị từ cơ sở Định nghĩa : Câu hỏi Datalog (Datalog Query) Một câu hỏi trong CSDL suy diễn gồm có: • Một chương trình Datalog, tức là một tập hữu . diễn Cơ sở dữ liệu suy diễn có mục tiêu tổ chức dữ liệu, truy cập và cập nhật những khối lượng lớn dữ liệu một cách thuận lợi, an toàn và hiệu quả. Hai thế hệ đầu CSDL suy diễn đã đáp ứng được. đề tài nghiên cứu CSDL suy diễn là nhằm trình bày các khái niệm và thuật toán cơ sở của CSDL bao gồm : các mô hình dữ liệu và các hệ CSDL tương ứng, các ngôn ngữ CSDL, tổ chức lưu trữ và tìm. QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT ĐỀ TÀI : NGHIÊN CỨU CƠ SỞ DỮ LIỆU SUY DIỄN VÀ ỨNG DỤNG TP.HCM 18/08/2012 Gi ng viên h ng d n : PGS.TS Phúcả ướ ẫ Đỗ H c viên