tài liệu csdl nâng cao

6
THỰC HÀNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 1 Thái Duy Quý – ITFac DLU – [email protected] Lab 2: Làm quen vi CSDL Logic I. Mục đích: - Giúp sinh viên làm quen vi dạng cơ sở dliu logic trên Datalog - Giúp sinh viên thc hin các câu truy vấn đơn giản trên datalog vi SQL II. Yêu cu: - Sinh viên thc hành nghiêm túc. - Làm và np bài theo yêu cu ca giáo viên III. Ni dung thc hin: A. Kiến thc lý thuyết. Datalog (DataBase Logic): là một ngôn ngữ tương tự như Prolog, cho phép lưu trữ và thực hiện các phép suy luận dưới dạng các mệnh đề. Để cài đặt Datalog, vào đường dẫn sau tải về: http://des.sourceforge.net/ Sau khi tải về, giải nén và chạy file des.exe (môi trường DOS) hoặc deswin.exe (môi trường Windows): Hướng dẫn chung: - Để kiểm tra xem trong datalog có những lệnh chỉ dẫn nào, ta sử dụng lệnh /help: - Trong thư mục DES/Examples có các ví dụ đi kèm. Để mở một ví dụ, ta dung lệnh consult. Ví dụ: /consult examples/family.dl

Upload: thamnguyenhong

Post on 17-Feb-2016

69 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tài liệu CSDL nâng cao

THỰC HÀNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG

1 Thái Duy Quý – ITFac DLU – [email protected]

Lab 2: Làm quen với CSDL Logic

I. Mục đích:

- Giúp sinh viên làm quen với dạng cơ sở dữ liệu logic trên Datalog

- Giúp sinh viên thực hiện các câu truy vấn đơn giản trên datalog với SQL

II. Yêu cầu:

- Sinh viên thực hành nghiêm túc.

- Làm và nộp bài theo yêu cầu của giáo viên

III. Nội dung thực hiện:

A. Kiến thức lý thuyết.

Datalog (DataBase Logic): là một ngôn ngữ tương tự như Prolog, cho phép lưu trữ và thực hiện các phép suy

luận dưới dạng các mệnh đề.

Để cài đặt Datalog, vào đường dẫn sau tải về: http://des.sourceforge.net/

Sau khi tải về, giải nén và chạy file des.exe (môi trường DOS) hoặc deswin.exe (môi trường Windows):

Hướng dẫn chung:

- Để kiểm tra xem trong datalog có những lệnh chỉ dẫn nào, ta sử dụng lệnh /help:

- Trong thư mục DES/Examples có các ví dụ đi kèm. Để mở một ví dụ, ta dung lệnh consult.

Ví dụ: /consult examples/family.dl

Page 2: Tài liệu CSDL nâng cao

THỰC HÀNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG

2 Thái Duy Quý – ITFac DLU – [email protected]

- Để xem các tập luật, ta dung lệnh listing:

Lưu ý: Có thể sử dụng lệnh cd để tới thư mục mình muốn. Ví dụ: DES> /cd examples.

- Cần truy vấn kết quả, ta đưa tham biến vào trong mỗi luật.

Ví dụ: Tìm quan hệ cha con: DES> father(X,Y). Kết quả:

- Để đưa thêm luật hoặc dữ liệu, ta dung lệnh assert.

Ví dụ 1:

Ví dụ 2:

Truy vấn kết quả:

- Để kết thúc việc sử dụng Datalog, ta gõ lệnh exit

B. Luyện tập

Page 3: Tài liệu CSDL nâng cao

THỰC HÀNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG

3 Thái Duy Quý – ITFac DLU – [email protected]

Trong Datalog, có 3 chế độ là:

- Datalog Mode: chế độ thuần prolog.

- SQL Mode: chế độ truy vấn bằng ngôn ngữ SQL

- Algebra Mode: chế độ truy vấn dạng gom nhóm dữ liệu.

Cách thực hiện: Có thể ghi các lệnh trực tiếp hoặc dung một trình biên tập text (NotePad, WordPad, …) để biên

tập thành các file .dl, sau đó dùng lệnh consult để biên dịch.

1. Datalog Mode

Đây là chế độ mặc định, để trở về chế độ này, có thể sử dụng lệnh DES>/datalog. Trong bài luyện tập này, ta sử

dụng các mệnh đề cho trước trong examples/relop.dl.

Sinh viên mở DES dưới môi trường DOS, lần lượt gõ các lệnh sau đây và cho biết kết quả trả về và giải thích

từng đoạn lệnh.

DES> /cd examples

DES> /consult relop.dl

DES> /listing

DES> a(X)

DES> /assert a(a4)

DES> a(X)

Lưu ý: Khi thêm các mệnh đề, các dữ liệu vào hệ thống, muốn lưu lại, ta sử dụng lệnh sau: DES> /save_ddb db.dl

DES> /abolish

DES> /restore_ddb db.dl

2. SQL Mode

Trong chế độ này, các truy vấn được gửi đến nhân của SQL. Các lệnh trong SQL Mode được kết thúc bằng dấu

chấm phẩy. Sinh viên mở DES dưới môi trường DOS, gõ lệnh sau đây: DES> /sql

/process examples/relop.sql

Dựa trên kết quả hiện ra, hãy đọc hiểu từng lệnh và thực hiện các câu sau:

- Vẽ mô hình quan hệ của các bảng trong relop.sql. ‘

- Thống kê dữ liệu của từng bảng.

- Cho biết các câu truy vấn và chức năng của từng câu trong bảng đó.

3. Relational Algebra Mode

Đây là chế độ dạng đại số quan hệ trong SQL. Để thực hiện ở chế độ này, ta gõ: DES> /ra, khi đó dấu nhắc

lệnh sẽ có dạng: DES-RA>.

Sinh viên gõ lệnh: /process examples/relop.ra.

Xem kết quả và giải thích các lệnh trong đó.

Phụ lục: Một số hàm trong chế độ RA:

Page 4: Tài liệu CSDL nâng cao

THỰC HÀNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG

4 Thái Duy Quý – ITFac DLU – [email protected]

count - COUNT(*)

count(V) - COUNT(C)

min(V) - MIN(C)

max(V) - MAX(C)

sum(V) - SUM(C)

avg(Var) -AVG(C)

group_by( group_by(

Relation, % FROM / WHERE

[Var_1,…,Var_n], % Grouping columns

Condition) % HAVING / Projection

Ví dụ:

Truy vấn trong bảng Employee:

IV. Bài tập Bài tập 1: Tạo bảng Father(X,Y) và Mother(X,Y) lưu trữ mối quan hệ như hình sau:

- Bổ sung các luật như sau, và lưu lại dưới dạng MSSV.dl

parent(X,Y) : - father(X,Y).

Page 5: Tài liệu CSDL nâng cao

THỰC HÀNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG

5 Thái Duy Quý – ITFac DLU – [email protected]

parent(X,Y): - mother(X,Y).

ancestor(X,Y) :- parent(X,Y).

ancestor(X,Y) : - parent(X,Z), ancestor(Z,Y).

Truy vấn: ancestor(tom,X).

- Chuyển sang chế độ SQL và tạo bảng tương ứng, thực hiện các truy vấn như hình sau:

Giải thích truy vấn này dung để làm gì ?

Bài tập 2: Cho cây như hình sau:

Hãy định nghĩa các bảng edge(X,Y) và lưu CSDL như trên.

Định nghĩa thêm các Path(X,Y) là tồn tại một đường dẫn từ X đến Y. Sau đó thực hiện các truy vấn:

- Có tồn tại đường đi từ nút a đến nút b không ?

- Từ nút a có thể đi đến nút nào ?

- Những nút nào có thể đến d ?

Bài tập 3: Xây dựng cơ sở dữ liệu dạng logic và dạng SQL, lưu trữ và xử lý bài toán Tháp Hà Nội.

Page 6: Tài liệu CSDL nâng cao

THỰC HÀNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG

6 Thái Duy Quý – ITFac DLU – [email protected]

Bài tập 4: Cho CSDL đề án như sau:

Sử dụng Datalog, thực hiện các câu truy vấn sau trên 2 chế độ Datalog và SQL.

1. Danh sách mã, họ tên phái của các nhân viên.

2. Tương tự 1, đối với các nhân viên thuộc phòng 5.

3. Đối với từng nhân viên, cho biết họ tên ngày sinh và tên của nv phụ trách trực tiếp nhân viên đó.

4. Danh sách nhân viên thuộc phòng 5 có tham gia đề án tên là ‘Sản phẩm X’.

5. Mỗi nv tham gia bao nhiêu đề án với tổng thời gian là bao nhiêu.

6. Cho biết lương trung bình của các phòng ban (mã, tên, lương TB).

7. Cho biết các phòng ban có lương trung bình > 2500.

8. Cho biết các phòng ban có chủ trì đề án số nhân viên > 3 và có lương trung bình lớn hơn 2500.

9. Cho biết nhân viên nào có lương cao nhất trong từng phòng ban.

10. Cho biết phòng ban nào có lương trung bình cao nhất.

11. Cho biết phòng ban nào có ít nhân viên nhất.

12. Cho biết phòng ban nào có đông nhân viên nữ nhất.

13. Danh sách mã, tên của các phòng ban có chủ trì đề án tên là “SPX” lẫn “SPY”.

=== Hết ===