XỬ lý câu TRUY vấn BẰNG PHÉP TOÁN đại số kết hợp với THỜI GIAN

10 210 0
XỬ lý câu TRUY vấn BẰNG PHÉP TOÁN đại số kết hợp với THỜI GIAN

Đang tải... (xem toàn văn)

Thông tin tài liệu

LUẬN VĂN TỐT NGHIỆP 4- Xây dựng cơng cụ phục vụ q trình xử lý liệu : Các cơng cụ tốn tử phép tốn đại số liệt kê cụ thể sau : a- Tốn tử : - Các tốn tử thực q trình hình thành ngun mẫu : - Phép tốn T-Associate : Ta xây dựng phép tốn hàm với thơng số mà thơng số tên lớp đối tượng xác định sơ đồ EER Để thực phép tốn này, ta thực bước sau : (1) Xây dựng danh sách gồm thành phần, thành phần ID loại đối tượng với khoảng thời gian chung (2) Xem xét mơ hình đối tượng xây dựng sẵn đối tượng có quan hệ trực tiếp với khoảng thời gian trích lưu vào danh sách tạo bước - Phép tốn T-Complete : Ta xây dựng phép tốn hàm với thơng số mà thơng số tên lớp đối tượng xác định sơ đồ EER, phép tốn thực với bước sau : (1) Xây dựng danh sách gồm thành phần, thành phần ID loại đối tượng với khoảng thời gian chung (2) Thực việc kết lớp đối tượng (khai báo thơng số) dựa mơ hình đối tượng xây dựng sẵn theo quan hệ thời gian (3) Xây dựng lại phép tốn T-Associate giữ lớp đối tượng (4) Loại bỏ quan hệ có phép tốn T-Associate - Phép tốn T-Nonassociate : Ta xây dựng phép tốn hàm với thơng số A B mà A B tên lớp đối tượng xác định đồ thị đối tượng mà chúng có quan hệ trực tiếp với Để thực phép tốn này, ta sử dụng phép tốn T-Associate, T-Complete, TProject T-Difference, theo bước sau : (1) Thực phép tốn T-Associate lớp đối tượng A B kết lưu lớp đối tượng C (2) Thực phép tốn T-Project thuộc tính A lớp đối tượng C để tạo lớp đối tượng D (3) Áp dụng phép tốn T-Difference lớp đối tượng A D để tạo lớp đối tượng E (4) Ta thực lại bước lớp đối tượng B để tạo lớp đối tượng E’ (5) Cuối thực phép tốn T-Complete E E’ lớp đối tượng kết phép tốn T-Nonassociate - Các tốn tử thao tác mẫu : - Phép tốn T-Join : Phép tốn thực lớp đối tượng quan hệ phức tạp mà tạo từ lớp đối tượng Ta xây dựng phép tốn thành hàm bao gồm thơng số tên lớp đối tượng A B Để thực phép tốn ta theo bước sau : Xác định thành phần quan hệ lớp đối tượng A B (2) Ta thực phép kết A B theo thành phần quan hệ xác định bước theo khoảng thời gian chung - Phép tốn T-Project : Ta xây dựng phép tốn hàm với thơng số sau : Trang 57 LUẬN VĂN TỐT NGHIỆP Thơng số thứ : tên thành phần lớp đối tượng Thơng số thứ : lớp đối tượng cần thao tác Để thực phép tốn này, ta làm theo bước sau : (1) Xây dựng danh sách gồm thành phần, thành phần ID loại đối tượng với khoảng thời gian chung Dựa vào thơng số thứ để xác định thành phần lớp đối tượng lưu giữ.lớp đối tượng thao tác thuộc tính (nếu có) Kết tạo lớp đối tượng (2) Dựa vào thơng số thứ để xác định thành phần lớp đối tượng lưu giữ dựa vào thơng số thứ 2, ta duyệt lớp đối tượng để chọn thành phần lớp đối tượng lưu trữ danh sách xây dựng sẵn với khoảng thời gian - Phép tốn T-Select : Ta xây dựng phép tốn hàm bao gồm thơng số sau : a Thơng số thứ : tên thuộc tính đối tượng b Thơng số thứ : tốn tử so sánh ‘=‘, ‘>‘, ‘=‘, ‘ S1 hay khơng ? Hàm trả kiểu luận lý True ngược lại trả False BEFORE : Tương tự hàm AFTER, bao gồm thơng số [T1,T2], [S1,S2] Nếu T1 < S1 có nghĩa kết trả TRUE, ngược lại kết trả FALSE FOLLOWING : Đây hàm dùng để xác định thứ tự khoảng thời gian riêng biệt Hàm bao gồm thơng số khoảng thời gian T[T1,T2] S[S1,S2] Hàm trả kết kiểu Boolean, cụ thể S2 R|Z(B) (14) R -> start time stop (15) O -> string (16) D -> employee|department|project (17) U -> employee.id|employee.name|employee.dept_employee| employee.dept_manager|employee.proj_employee| employee.proj_manager|department.id| department.name|department.dept_employee| department.dept_manager|department.manage_proj| project.id|project.name|project.proj_employee| project.proj_manager|project.manage_proj (18) V -> number (19) Để kiểm sốt q trình nhập, ta xây dựng sẵn mẫu theo văn phạm G phục vụ q trình nhập câu truy vấn Người nhập nhập thơng qua mẫu Mỗi mẫu chứa đựng chuổi cố định khác để biểu diễn cho ký tự chưa kết thúc, ký tự kết thúc, tên lớp, thuộc tính, Ngồi để xử lý câu truy vấn, ta xây dựng thêm văn phạm G’ sau : G’ = (T,N,S,P) T= {+,-,*,/,when,where,display,before,after,following,precede, cross_following,cross_precede,tjoin,tintersect,tunion,tdifference, tassociate,tproject,tcomplete,tnonassociate,interval,first,last,bfirst,blast, time,and,tmax,tmin,employee,department,project,employee.id, employee.name,employee.dept_employee,employee.dept_manager, employee.proj_employee,employee.proj_manager,department.id, department.name,department.dept_employee,department.dept_manager,departme nt.manage_proj,project.id,project.name,project.proj_employee, project.proj_manager,project.manage_proj,number,string} N = {A,B,C,D,E,K,L,F,W,R,X,Y, O,U,V,Z,H,M,Q} S=A P: A -> display K B|display K B C (1) B -> C B|Z(B)|Q|employee|department|project (2) Trang 61 LUẬN VĂN TỐT NGHIỆP Q -> C Q|Z(Q)|Y Q Q|L employee department| L employee project|L department project (3) C -> when M|where E|when M where E (4) E -> E and E|W employee.salary F|W U O|X M (5) K -> employee.salary|employee.salary,K|U|U,K|D|D,K (6) Y -> tjoin|tintersect|tunion|tdifference (7) L -> tassociate|tcomplete|tnonassociate (8) F -> + F H|- F H|H|V (9) Z -> interval|first|last|bfirst|blast|tmax|tmin (10) W -> >|=| before|after|following|precede (12) H -> * H V|/ H V|(F)|V (13) M -> R|Z(B) (14) R -> time start stop (15) O -> string (16) D -> employee|department|project (17) U -> employee.id|employee.name|employee.dept_employee| employee.dept_manager|employee.proj_employee| employee.proj_manager|department.id| department.name|department.dept_employee| department.dept_manager|department.manage_proj| project.id|project.name|project.proj_employee| project.proj_manager|project.manage_proj (18) V -> number (19) Dưới ta phân tích số ví dụ sử dụng văn phạm G G’ : Ví dụ : Để nhập câu truy vấn sau : "Tìm kiếm lương người cơng ty mà làm việc vào thời điểm mà nhân viên EMP002 lần làm việc thuộc phòng DEP001" Câu u cầu chuyển đổi sang câu truy vấn : context Employee when first (employee tassociate department where employee.id = "emp002" and department.id = "dep001") display employee.salary Q trình triển khai câu nhập sau : (1) -> context B C display K {display K C B} (2) -> context employee C display K {display K C employee} (4) -> context employee when M display K{display K when M employee} (14) -> context employee when Z(B) display K{display K when Z(B) employee} (10) -> context employee when first (B) display K {display K when first (B) employee} (2) -> context employee when first (BC) display K {display K when first(CB) employee} (3) -> context employee when first (QC) display K {display K when first (CQ) employee} (3) -> context employee when first (employee L department C) display K Trang 62 LUẬN VĂN TỐT NGHIỆP {display K when first (C L employee department) employee} (8) -> context employee when first (employee tassociate department C) display K {display K when first (C tassociate employee department) employee} (4) -> context employee when first(employee tassociate department where E) display K {display K when first (where E tassociate employee department) employee} (5) -> context employee when first (employee tassociate department where E and E) display K {display K when first (where E and E tassociate employee department) employee} (5) -> context employee when first (employee tassociate department where U W O and E) display K {display K when first (where W U O and E tassociate employee department) employee} (18) -> context employee when first(employee tassociate department where employee.id U O and E) display K {display K when first(where W employee.id O and E tassociate employee department) employee} (11) -> context employee when first(employee tassociate department where employee.id = O and E) display K {display K when first(where = employee.id O and E tassociate employee department) employee} (16) -> context employee when first(employee tassociate department where employee.id = "emp002" and E) display K {display K when first (where = employee.id "emp002" and E tassociate employee department) employee} (5) -> context employee when first(employee tassociate department where employee.id = "emp002" and U W O) display K {display K when first (where = employee.id "emp002" and W U O tassociate employee department) employee} (18) -> context employee when first (employee tassociate department where employee.id = "emp002" and department.id W O) display K {display K when first (where = employee.id "emp002" and W department.id O tassociate employee department) employee} (11) -> context employee when first (employee tassociate department where employee.id = "emp002" and department.id = O) display K {display K when first (where = employee.id "emp002" and = department.id O tassociate employee department) employee} (16) -> context employee when first (employee tassociate department where employee.id = "emp002" and department.id = "dep001") display K {display K when first (where = employee.id "emp002" and = department.id "dep001" tassociate employee department) employee} (6) -> context employee when first (employee tassociate department where employee.id = "emp002" and department.id = "dep001") display employee.salary {display employee.salary when first (where = employee.id "emp002" and = department.id "dep001" tassociate employee department) employee} Từ ta xây dựng cú pháp sau : Trang 63 LUẬN VĂN TỐT NGHIỆP Để xử lý câu truy vấn trên, chương trình thực bước sau : Thực phép tốn Tassociate("employee","department") để tạo danh sách A Thực phép tốn Tselect("department.id","=","dep001",nil,A) để tạo danh sách B Thực phép tốn Tselect("employee.id","=","emp002",nil,B) để tạo danh sách C Thực phép tốn thời gian first(C) để tạo danh sách D chứa phần tử Thực phép tốn Tselect("","","",D,employee) để lọc nhân viên danh sách employee thỏa điều kiện thời gian danh sách D hình thành danh sách E Xuất hình phần tử danh sách E Ví dụ : Thực câu u cầu sau : "Cho biết phòng quản lý dự án ngắn năm 1999" Câu chuyển thành câu truy vấn sau : context tmin(department tassociate project when 1/1/99 time 31/12/99) display department Q trình triển khai sau : (1) -> context B display K {display K B} (2) -> context Z(B) display K {display K Z(B)} (2) -> context Z(BC) display K {display K Z(CB)} (10) -> context tmin(BC) display K {display K tmin(CB)} (2) -> context tmin(QC) display K {display K C tmin(CQ)} (3) -> context tmin(department L project C) display K {display K tmin(C L department project)} Trang 64 LUẬN VĂN TỐT NGHIỆP (8) -> context tmin(department tassociate project C)display K {display K tmin(C tassociate department project)} (4) -> context tmin(department tassociate project when M) display K {display K tmin(when M tassociate department project)} (14) ->context tmin(department tassociate project when R) display K {display K tmin(when R tassociate department project)} (15)-> context tmin(department tassociate project when "1/1/99" time "31/12/99") displayK {display K tmin(when time "1/1/99" "31/12/99" tassociate department project)} (6)-> context tmin(department tassociate project when "1/1/99" time "31/12/99") display D {display D tmin(when time "1/1/99" "31/12/99" tassociate department project)} (17)-> context tmin(department tassociate project when "1/1/99" time "31/12/99") display department {display department tmin(when time "1/1/99" "31/12/99" tassociate department project)} Từ ta xây dựng cú pháp sau : Để xử lý câu truy vấn trên, chương trình thực bước sau : Thực phép tốn Tassociate("department","project") để tạo danh sách A Thực lệnh Intime("1/1/99","31/12/99") để tạo danh sách B Thực phép tốn Tselect("","","",B,A) để tạo danh sách C Thực phép tốn thời gian tmin(C) để tạo danh sách D chứa phần tử Xuất hình phần tử danh sách D 6- Những khó khăn thực đề tài : - Vì dạng đề tài nên gặp khó khăn việc định hướng xây dựng chương trình nên chương trình có giới hạn tính tổng qt, uyển chuyển Mặt khác, thời gian thực Trang 65 LUẬN VĂN TỐT NGHIỆP đề tài có giới hạn nên việc tìm kiếm tài liệu liên quan để tìm hiểu, định hướng mở rộng đề tài bị hạn chế - Trong việc xây dựng văn phạm để tạo câu truy vấn đa dạng với kết hợp nhiều phép tốn lồng câu truy vấn, nên việc thử kiểm tra khơng tổng qt tồn diện thời gian ngắn Do khơng thể lường sai sót xảy Trang 66 ... kiện để chọn lựa e(T)-s(T) lớn 5- Thiết kế văn phạm để nhập câu lệnh truy vấn xử lý câu truy vấn : Để thuận tiện cho việc nhập câu truy vấn cú pháp ta xây dựng văn phạm G sau : G= T= N= S=A P: (T,N,S,P)... Trong việc xây dựng văn phạm để tạo câu truy vấn đa dạng với kết hợp nhiều phép tốn lồng câu truy vấn, nên việc thử kiểm tra khơng tổng qt tồn diện thời gian ngắn Do khơng thể lường sai sót xảy... bao gồm thơng số danh sách phần tử có chứa khoảng thời gian Để thực hàm ta dựa vào thời điểm kết thúc khoảng thời gian, so sánh để chọn thời điểm kết thúc trễ Tất hàm thứ tự có thơng số tên lớp

Ngày đăng: 03/12/2015, 04:22

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan