Tài liệu TÌM HIỂU CONTEXT CATRIDGE TRONG ORACLE 8 - Pdf 89

TRƯỜNG ĐẠI HỌC KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
Đề tài :
• TÌM HIỂU CONTEXT CATRIDGE TRONG ORACLE 8
• VIẾT CHƯƠNG TRÌNH QUẢN LÝ LVTN
Giáo viên hướng dẫn : TRẦN QUANG
Học viên thực hiện : NGUYỄN THANH GIANG
Lớp : KS2 - K6
Niên khoá : 1996-1999
Tháng 7-1999
MỤC LỤC
I.GIỚI THIỆU CHUNG
II.TÌM HIỂU CONTEXT CARTRIDGE TRONG ORACLE 8
1.Các khái niệm cơ bản của Oracle
1.1.Giới thiệu Oracle
1.2.Cấu trúc cơ sở dữ liệu (CSDL) :
1.2.1. Tablespaces & Data files
1.2.2. Schema Objects (đối tượng CSDL)
1.2.3. Datatypes
1.2.4. Data Integrity (ràng buộc dữ liệu)
1.2.5. Từ điển dữ liệu
1.3. Data Access
1.3.1. SQL & PL/SQL
1.3.2. Transaction (giao dịch)
1.4. Programmatic Constructs
1.4.1.Procedures & Packages
1.4.2.Database Triggers
2.Context Cartridge
2.1.Giới thiệu

Trong cuộc sống hàng ngày Quản lý là một công việc người ta luôn phải làm. Các công
việc quản lý xảy ra trong mọi lĩnh vực. Có rất nhiều bài toán quản lý : Quản lý nhân sự, quản lý
vật tư, … Trong lĩnh vực quản lý, việc xử lý các thông tin nhận được là một vấn đề rất phức tạp vì
lượng thông tin nhận được ngày càng lớn và thường xuyên. Để giải phóng công việc của người
làm công tác quản lý thì cần đến sự trợ giúp của máy tính rất nhiều.
Bài toán quản lý các thông tin dạng không có cấu trúc (văn bản, hình ảnh, …) luôn luôn là một bài
toán rất phức tạp, nhất là trong việc tổ chức Cơ sở dữ liệu. Đề tài nhận được ở đây là "Tìm hiểu
Context Cartridge - Viết chương trình quản lý luận văn tốt nghiệp" , đã đưa ra một hướng giải
quyết bài toán này. Dựa trên một số công cụ và chức năng mạnh của Oracle 8, Đề tài đã giải quyết
tốt vấn đề tổ chức, lưu trữ và tra cứu các dữ liệu không có cấu trúc, mà cụ thể là các luận văn tốt
nghiệp, giúp cho việc tra cứu các luận văn tốt nghiệp được thực hiện chính xác, nhanh chóng và dễ
dàng.
Ngoài ra với ưu thế của Hệ Cơ sở dữ liệu Oracle là cơ chế bảo mật dữ liệu rất chặt chẽ giúp cho
Hệ thống hoạt động rất tốt và rất an toàn trong việc cập nhật và truy cập dữ liệu, tránh được việc
mất dữ liệu.
III-5
CHƯƠNG II
TÌM HIỂU CONTEXT CARTRIDGE TRONG
ORACLE 8
III-6
1.CÁC KHÁI NIỆM CƠ BẢN CỦA ORACLE
1.1.Giới thiệu Oracle
Oracle bao gồm một tập hợp hoàn thiện các sản phẩm xây dựng ứng dụng và người dùng
cuối được trang bị các giải pháp kỹ thuật thông tin hoàn hảo. Các ứng dụng Oracle tương thích với
hầu hết các hệ điều hành từ các máy tính cá nhân đến các hệ thống xử lý song song lớn.
Oracle cung cấp một hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) uyển
chuyển : Oracle Server để lưu giữ và quản lý các thông tin dùng trong các ứng dụng. Phiên bản
Oracle 7 quản lý cơ sở dữ liệu với tất cả các ưu điểm của cấu trúc CSDL quan hệ cộng thêm khả
năng lưu giữ và thực thi các đối tượng CSDL như các procedure và các trigger.
Oracle Server là một hệ quản trị CSDL điều khiển :

Một CSDL Oracle được lưu giữ trong một hoặc nhiều đơn vị nhớ logic gọi là tablespace.
Mỗi tablespace được lưu giữ thành một hoặc nhiều file vật lý gọi là Data file.
1.2.2. Schema Objects (đối tượng CSDL):
III-7
Schema Objects là cấu trúc logic lưu trữ dữ liệu. Schema Objects bao gồm tables, views,
sequences, synonyms, indexes, clusters, database links, procedures, packages.
-Tables :
Là đơn vị nhỏ nhất của việc lưu trữ dữ liệu trong một CSDL Oracle. Dữ liệu được lưu thành dòng
và cột. Mỗi table được định nghĩa bằng 1 table name và tập các cột. Mỗi cột (field) có một tên cột,
kiểu, và độ lớn. Mỗi dòng là tập hợp những thông tin của các cột gọi là 1 record.
-Views :
View tương tự như Window mà qua đó dữ liệu trong table có thể được xem hoặc biến đổi. Một
view chỉ được lưu giữ dưới dạng câu lệnh SELECT. View là một dạng table ảo nghĩa là table
không thực sự tồn tại mà chỉ xuất hiện để user xem. Một view tự nó không có dữ liệu mà sẽ tương
tác dữ liệu dựa vào các table cơ sở.
View giới hạn việc xâm nhập dữ liệu, cho phép các users nhập các câu truy vấn đơn giản để lấy
kết quả từ các câu truy vấn phức tạp thông qua 1 view, cung cấp dữ liệu độc lập cho nhiều người
sử dụng hay các chương trình ứng dụng.
View được chia thành 2 loại : view đơn và view phức. View đơn là view chỉ truy xuất dữ liệu từ 1
table và không chứa bất kỳ hàm hay GROUP dữ liệu nào, ngược lại gọi là view phức.
-Synonyms :
Synonym là một bí danh của một table, view, sequence, procedure , function hay một package.
Synonym được sử dụng cho việc bảo mật và tiện lợi trong truy xuất dữ liệu. Có 2 loại synonym :
Public và Private.
-Index (chỉ mục) :
Index của Bảng được tạo ra nhằm tăng tốc độ truy xuất, tăng hiệu quả của tính duy nhất trên một
hoặc một tập của cột.
Chỉ mục của Oracle có 2 mục đích chính là : tăng tốc độ lấy dữ liệu thông qua khóa đặc thù
(particular key) , bắt buộc giá trị duy nhất trên cột, thường là khóa chính.
1.2.3. Datatypes

1.2.5. Từ điển dữ liệu
Từ điển dữ liệu là một trong những phần quan trọng nhất của Oracle DBMS. Từ điển dữ liệu bao
gồm một tập hợp các table và view cung cấp các hướng dẫn tham khảo chỉ đọc về CSDL. Từ điển
dữ liệu chứa đựng :
-Tên username của người sử dụng Oracle
-Các quyền và tập quyền được cấp.
-Tên của các đối tượng CSDL (table, view, index, synonym,…)
-Các ràng buộc được cấp cho table.
-Các thông tin cập nhật.
Từ điển dữ liệu được tạo ra khi ta tạo 1 CSDL. Từ đó bất cứ lúc nào CSDL đang hoạt động thì từ
điển dữ liệu cũng luôn được Oracle RDBMS cập nhật.
Từ điển dữ liệu là một tham khảo đến toàn bộ CSDL người dùng. Đây là một tài nguyên có giá trị
đối với người dùng cuối, người thiết kế ứng dụng và người quản trị CSDL. Các hoạt động của
RDBMS cũng dựa trên từ điển dữ liệu để lưu và kiểm tra các thông tin về CSDL.
1.3. Data Access
1.3.1. SQL & PL/SQL
SQL:
Một hệ quản trị CSDL cần có một ngôn ngữ cho phép các người sử dụng truy xuất dữ liệu. Ngôn
ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ được dùng trong hầu hết các hệ CSDL quan hệ.
-SQL là 1 ngôn ngữ tựa tiếng Anh.
-SQL là 1 ngôn ngữ phi thủ tục : bạn chỉ rõ thông tin gì bạn cần mà không cần chỉ ra cách thực
hiện như thế nào. Nói cách khác, SQL không yêu cầu bạn chỉ phương pháp truy xuất dữ liệu.
-SQL xử lý các tập hợp mẫu tin hơn là một mẫu tin đơn lẻ ở 1 thời điểm. Dạng chung nhất của tập
các mẫu tin là một bảng.
-SQL có thể được dùng bởi nhiều người sử dụng bao gồm người quản trị dữ liệu, các người lập
trình ứng dụng, người quản lý, người dùng cuối.
-SQL cung cấp nhiều lệnh cho nhiều công việc khác nhau :
+truy vấn dữ liệu
+thêm vào, cập nhật và hủy bỏ các hàng của bảng
+tạo lập, thay đổi và hủy bỏ các đối tượng CSDL

Oracle cho phép truy xuất và xử lý thông tin CSDL bằng cách sử dụng các đối tượng CSDL thủ
tục , gọi là các đơn vị chương trình PL/SQL. Ví dụ như ta có :Procedure, Function, Package.
-Oracle có thể thực hiện procedure và function giống như thực hiện một câu lệnh SQL riêng lẻ.
Procedure hoặc function là một đối tượng dữ liệu, gồm tập hợp các câu lệnh, được lưu trong
CSDL, được thực thi như một unit để giải quyết một vấn đề nào đó hoặc thực hiện một số công
việc có liên quan.
-Procedure và function rất giống nhau, chỉ khác là function thì luôn luôn trả về giá trị cho chương
trình gọi nó, còn procedure thì không. Thông thường người ta gọi chung procedure và function là
"procedure".
-Procedure cung cấp một số thuận lợi trong các mặt sau :
+Security : bảo mật dữ liệu
+Perfomance :
+Memory allocation : sử dụng share memory
+Productivity : thuận tiện cho việc thiết kế application
+Integrity : bảo đảm được những ràng buộc và tính trong suốt
Package cung cấp phương pháp tập hợp các procedure, function như một unit trong CSDL.
Package cung cấp một số thuận lợi trong các mặt sau :
+Nhóm các procedure và các variable
+phân biệt định nghĩa package và thân package
+khai báo các procedure, variable, constant và cursor
1.4.2.Database Triggers
Oracle cho phép định nghĩa các procedure, được tự động thực thi khi có một câu lệnh INSERT,
UPDATE hoặc DELETE được thực hiện vào bảng. Các procedure này được gọi là các database
trigger.
-Trigger tương tự như procedure, có thể chứa một số câu lệnh SQL và PL/SQL, được thực thi như
một unit và có thể gọi các procedure khác. Tuy nhiên procedure và trigger khác nhau ở cách chúng
được gọi. Trong khi procedure được gọi bởi user hoặc application thì trigger được thực thi trực
tiếp bởi Oracle khi có 1 lệnh INSERT, UPDATE hoặc DELETE (đã có trigger) được thực hiện,
không phân biệt user nào đang nối kết hay application nào đang thực thi.
-Một trigger có 3 phần chính :

lưu dưới dạng văn bản với những dạng khác nhau : letters, memos, reports, notes, e-mail, …
Những dạng tài liệu này thường khó tìm kiếm, phục hồi và thường không thể tóm tắt được. Oracle
giải quyết vấn đề quản lý văn bản với ConText. ConText quản lý dữ liệu không có cấu trúc cũng
nhanh và dễ dàng như dữ liệu có cấu trúc.
2.2.Một số khái niệm :
-Documents : Text & Document được định nghĩa gần giống nhau. Tuy nhiên , Text là khái niệm
tổng quát hơn, xác định tập hợp dữ liệu không có cấu trúc được lưu trữ trong một cột CSDL hoặc
trong 1 file hệ thống.
Trong môi trường ConText , document là một văn bản được lưu trong một cột của một dòng của
CSDL hoặc là một con trỏ chỉ tới một file hệ thống.
-Text Storage : có 2 cách
+internal : document được lưu trong 1 text column.
+external : document được lưu trong những file của hệ điều hành.
-Search options :
+Từ đơn hoặc câu
+Tổ hợp các từ và các câu
+Tìm gần đúng, tìm từ phát âm giống, tìm từ sử dụng thay thế.
-Query Expressions : được tạo nên bởi những từ và những câu cùng với những toán tử và những
ký tự đặc biệt khác tạo ra tiêu chí tìm kiếm.
-Hitlists : Khi query được thực hiện, ConText tạo ra danh sách tất cả document thỏa tiêu chí tìm
kiếm cùng với score . Đó là hitlist.
-Scoring : là cách để ConText đánh giá document nào trong hitlist quan hệ nhiều nhất đến cái mà
user cần dựa trên tiêu chí tìm kiếm.
-Result Tables : là vùng nhớ để lưu các output từ những truy vấn của user. Những bảng này được
cấp phát bởi chương trình ứng dụng hoặc thủ tục và tồn tại cho đến khi được xóa bởi ứng dụng.
III-12
2.3.Text Query
Text Query tìm kiếm những cột văn bản trong các bảng truy vấn theo điều kiện đã được
đặc tả (những từ hoặc những câu), và trả về tất cả các dòng (các tài liệu) có chứa những từ hay
những câu này.

ctxsys/ctxsys : user name / password
ctx.log : tên file lưu thông tin context
*Tạo Policy (Định nghĩa cột văn bản)
-Định nghĩa một cột dữ liệu như là một cột văn bản. Cột văn bản là một cột mà policy đã được tạo
cho nó.
-Một policy xác định cột để chứa văn bản, phương pháp lưu văn bản và những options khác để
Context tạo index cho cột.
-Để tạo policy cho một cột, sử dụng thủ tục CTX_DDL.CREATE_POLICY với các thông số sau :
policy name, tên cột cho policy.
Ví dụ :
Exec ctx_ddl.create_policy('ctx_docs' , 'ctxdev.docs.text');
III-13
Ctx_docs : tên policy
Ctxdev : tên user
Docs : tên table
Text : tên cột tạo policy
*Tạo Text index cho cột văn bản
-Để tạo text index cho cột văn bản ta gọi thủ tục CREATE_INDEX trong CTX_DDL PL/SQL
Package và đặc tả policy cho cột.
Ví dụ :
Exec ctx_ddl.create_index('ctx_docs');
Ctx_docs : tên policy đã được tạo trước đó
-Sau khi tạo text index cho cột , Context server với Query personality có thể thực hiện quá trình
text query.
*Tạo bảng kết quả (two-step query)
-Để thực hiện two-step query, cần phải tạo bảng kết quả (result table) để lưu danh sách các
textkeys và scores của những tài liệu thỏa điều kiện query.
-Bảng kết quả có thể có tên bất kỳ , nhưng nó phải có cấu trúc như sau :
+TEXTKEY varchar2(64) : Lưu textkeys của những dòng thỏa query
+SCORE number : lưu score của mỗi dòng

Sử dụng các thủ tục trong package CTX_QUERY như : OPEN_CON , CLOSE_CON ,
FETCH_HITS.
OPEN_CON mở 1 cursor trong buffer query và thực hiện query. Kết quả query được lưu trong
buffer. FETCH_HIT cho xem kết quả, và CLOSE_CON xóa cursor đi.
Ví dụ :
Declare
Score char(5);
Pk char(5);
Title char(40);
Curid number;
Begin
Curid:= ctx_query.open_con( policy_name => 'ctx_docs' ,
Text_query => 'oracle' ,
Score_sorted => true ,
Other_cols => 'title' );
While (ctx_query.fetch_hit (curid , pk , score , title) > 0)
Loop
Dbms_output.put_line(score || pk || substr(title,1,50)) ;
End loop;
Ctx_query.close_con(curid);
End;
2.4.Theme Query
Theme Query tìm kiếm những cột văn bản của những bảng truy vấn theo những chủ đề (đề mục)
được đặc tả trước và trả về tất cả những dòng (những tài liệu) có những chủ đề này. Một theme
diễn tả một chủ đề chính hoặc một đề tài được triển khai trong tài liệu.
Để thực hiện được theme query chúng ta phải thực hiện các công việc sau:
+Tạo theme index cho text column
+Tạo Bảng kết quả (đối với two-step query).
Mỗi tài liệu được trả về bởi Theme Query có 1 score. Score trong theme query biểu diễn sự liên
quan của tài liệu đối với query, mỗi score là trọng số của theme trong tài liệu.

Ctxdev.docs.text : user -tên bảng - tên cột văn bản
*Tạo theme index cho cột văn bản
-Để tạo theme index cho cột , ta gọi thủ tục CREATE_INDEX trong CTX_DDL và miêu tả theme
index policy cho cột đó.
-Ví dụ :
exec ctx_ddl.create_index ('ctx_thidx')
ctx_thidx : tên policy
-Sau khi thực hiện theme index cho cột , Context server với personality Query có thể thực hiện
theme query.
*Tạo bảng kết quả (two-step query)
-Cấu trúc của bảng kết quả cho theme query và phương pháp tạo bảng kết quả giống như bảng kết
quả trong text query.
-Ví dụ :
create table ctx_theme_temp
(textkey varchar2(64) ,
score number ,
conid number );
*Thực hiện theme query
-Các phương pháp để thực hiện theme query :
+Two-step Query
+One-step Query
+In-memory Query
-Two-step query
Trong bước thứ nhất , gọi thủ tục CONTAINS trong package CTX_QUERY để điền vào bảng kết
quả (đã được tạo ra trước đó). Bước thứ hai, truy vấn bảng kết quả để trả về danh sách các tài liệu.
Ví dụ :
1.Begin
Ctx_query.contains('ctx_thidx' , 'oracle' , 'ctx_theme_temp');
III-16
End;

Loop
Dbms_output.put_line(score || pk || substr(title,1,50)) ;
End loop;
Ctx_query.close_con(curid);
End;
2.5.Query Methods
ConText có 3 phương pháp khác nhau để thực hiện truy vấn :
-Two-step query : trong bước thứ nhất , sử dụng thủ tục PL/SQL để tạo ra 1 hitlist và lưu kết quả
vào 1 bảng kết quả. Bước thứ hai, dùng lệnh SELECT để chọn kết quả từ bảng kết quả.
-One-step query : tạo một câu lệnh SQL, sử dụng chức năng truy vấn của Context để tìm kiếm và
trả về một tập hợp những dòng và cột trong bảng được chọn trực tiếp cho user.
-In-memory query : sử dụng một bộ đệm và một cursor chỉ tới bộ đệm trả về kết quả truy vấn, kết
quả được ghi vào bộ đệm. Chúng ta tìm kết quả và đóng cursor.
Mỗi phương pháp truy vấn đều có những ưu điểm và khuyết điểm của mình. Chúng ta cần phải
chọn lựa cho đúng khi phát triển ứng dụng của mình.
III-17
2.6.Linguistic services
ConText Linguistic được sử dụng để phân tích nội dung các tài liệu tiếng Anh. ConText Linguistic
cho phép xem xét document ở nhiều khía cạnh khác nhau, cho phép người sử dụng có thể nhanh
chóng duyệt qua nội dung của tài liệu và lấy được nội dung mà họ quan tâm.
Kết quả của ConText Linguistic có thể là một trong các dạng sau :
+Theme : những khái niệm chính của tài liệu
+Generic Gist : những đoạn tài liệu chứa những nội dung chính.
+Point-of-view Gist : những đoạn tài liệu chứa một chủ đề cho trước.
Để có thể sử dụng được ConText Linguistic , cần phải :
+Text được lưu trong 1 cột
+Cột phải có 1 policy
+ConText Server chạy với Linguistic Personality.
Các bước thực hiện Linguistic services (Hình 3)
-Khởi động Context Servers

thống giúp người sử dụng có thể tra cứu các luận văn tốt nghiệp nhanh chóng, có thể tìm được các
luận văn có nội dung mong muốn. Hệ thống cũng giúp người Quản trị quản lý tốt Cơ sở dữ liệu về
các luận văn tốt nghiệp, sửa chữa và cập nhật thông tin dễ dàng.
Việc Quản lý luận văn tốt nghiệp bao gồm việc quản lý CSDL về luận văn tốt nghiệp và việc tra
cứu, tìm kiếm thông tin trên CSDL này.
Chức năng chính của Hệ thống là tìm kiếm các luận văn tốt nghiệp trong Cơ sở dữ liệu có nội
dung cho trước. Nội dung cần tìm có thể là từ đơn, cụm từ hoặc là những tổ hợp từ (AND, OR).
Sau khi tìm kiếm Hệ thống có thể hiển thị danh sách các luận văn có chứa nội dung cần tìm cũng
như hiển thị lại nội dung của những luận văn này.
III-23
1.2. Các chức năng của Hệ thống
Hệ thống "Quản lý luận văn tốt nghiệp" sẽ thực hiện các chức năng sau:
-Tra cứu các luận văn theo nội dung
-Tìm kiếm các luận văn theo các điều kiện
-Nạp thêm các luận văn mới vào CSDL
-Quản lý CSDL về sinh viên, giáo viên, luận văn
Chức năng chính của Hệ thống là tra cứu các luận văn tốt nghiệp trong CSDL có nội dung
cho trước. Nội dung cần tìm có thể là từ đơn, cụm từ hoặc là những tổ hợp từ. Sau khi tìm kiếm Hệ
thống có thể hiển thị danh sách các luận văn có chứa nội dung cần tìm cũng như hiển thị lại nội
dung của những luận văn này.
Để giải quyết được vấn đề này , trong hệ thống ta sử dụng các chức năng CONTEXT QUERY
(gồm TEXT QUERY và THEME QUERY) của ORACLE 8 để thực hiện.
Ngoài ra, Hệ thống cho phép tìm kiếm các luận văn tốt nghiệp theo các điều kiện khác nhau :
+Tên đề tài
+Sinh viên thực hiện
+Giáo viên hướng dẫn
+Thời gian bảo vệ
Sau khi tìm kiếm có thể hiển thị lại nội dung các luận văn tốt nghiệp tìm được.
Hệ thống cũng cho phép quản lý CSDL về sinh viên, giáo viên, luận văn, lớp, … để có thể thêm,
bớt, điều chỉnh các dữ liệu trên . Hệ thống tự động cập nhật lại CSDL về luận văn tốt nghiệp khi ta


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status