Hiện thực mô hình đa phiên bản hướng thời gian trên hệ quản trị cơ sở dữ liệu oracle

126 11 0
Hiện thực mô hình đa phiên bản hướng thời gian trên hệ quản trị cơ sở dữ liệu oracle

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LỜI CAM ðOAN Tơi cam đoan rằng, ngoại trừ kết tham khảo từ cơng trình khác ghi rõ luận văn, cơng việc trình bày luận văn chúng tơi thực chưa có phần nội dung luận văn ñược nộp ñể lấy cấp trường trường khác Tp.HCM, ngày 26 tháng năm 2009 ðỗ Thục ðoan i LỜI CẢM ƠN Trước tiên, tơi xin kính gửi lịng biết ơn sâu sắc ñến Thầy PGS.TS Dương Tuấn Anh ñã tận tình hướng dẫn tơi suốt thời gian thực luận án Tôi xin chân thành cảm ơn Thầy Cơ Khoa Khoa học Kỹ thuật máy tính truyền đạt cho tơi kiến thức khoa học q báu suốt khóa học Cảm ơn bạn anh chị học viên cao học Khoa học máy tính khóa 2006, anh chị đồng nghiệp Khoa Cơng Nghệ Thơng Tin trường ðại học Tơn ðức Thắng ñộng viên, giúp ñỡ thời gian thực luận văn Con xin cảm ơn Ba Mẹ gia đình ni nấng dạy dỗ cho có ngày hơm ii TĨM TẮT Có nhiều ứng dụng cần quản lý phiên khác ñối tượng thay ñổi thuộc tính mối quan hệ phiên theo thời gian, chẳng hạn ứng dụng thiết kế, sản xuất, xây dựng phần mềm có trợ giúp máy tính Việc xây dựng ứng dụng phức tạp khơng có hỗ trợ từ hệ quản trị sở liệu Hiện nay, hệ quản trị sở liệu có khả quản lý vấn đề việc xây dựng từ ñầu hệ quản trị phức tạp tốn ðể giải vấn ñề này, ñề nghị xây dựng lớp phần mềm hỗ trợ mơ hình quản lý vấn đề đa phiên hướng thời gian thích hợp, ngơn ngữ ñịnh nghĩa lớp, truy vấn thao tác liệu hệ quản trị sở liệu Qua khảo sát mơ hình có, đề tài chọn xây dựng Oracle lớp phần mềm hỗ trợ mơ hình đa phiên hướng thời gian Temporal Versions Model ñồng thời khắc phục hạn chế ngơn ngữ định nghĩa lớp, truy vấn thao tác liệu sẵn có Với lớp phần mềm này, người dùng định nghĩa lớp, truy vấn, thao tác với liệu, ñáp ứng yêu cầu ứng dụng cần quản lý phiên ñối tượng thay đổi thuộc tính mối quan hệ phiên theo thời gian iii ABSTRACT There are many applications that need to manage different versions of an object and any changes about attributes and relationships of those versions in chronological order, such as Computer Aided Design, Computer Aided Manufacturing, Computer Aided Software Engineering The development of these applications will be very complicated if it is not supported by an appropriate Database Management System At present, there is not any Database Management System that is able to manage that problem and the building of such a system from the beginning is very complicated and expensive To solve this problem, we suggest building a layer which supports an appropriate model can manage temporal and multiversion issues, class definition language, query language, data manipulation language on top of a commercial Database Management System After making a survey on the existing models, this thesis has decided to build a layer on Oracle in order to support the Temporal Versions Model and overcome the limitations of inherent class definition language, query language, data manipulation language at the same time With this layer, users can define, query and manipulate on data, satisfying requirement of applications that need to manage different versions of an object and any changes about attributes and relationships of those versions in chronological order iv MỤC LỤC LỜI CAM ðOAN i LỜI CẢM ƠN ii TÓM TẮT iii ABSTRACT iv MỤC LỤC v DANH MỤC HÌNH vii CHƯƠNG GIỚI THIỆU 1.1 Tổng quan 1.2 Kết ñạt ñược 1.3 Cấu trúc luận văn CHƯƠNG CƠ SỞ LÝ THUYẾT VÀ TỔNG QUAN VỀ CÁC CƠNG TRÌNH LIÊN QUAN 2.1 Cơ sở lý thuyết 2.2 Tổng quan cơng trình liên quan 12 CHƯƠNG CÁC CẢI TIẾN ðỀ NGHỊ 36 3.1 Xử lý mối quan hệ thành phần sở liệu 36 3.2 Xác ñịnh ràng buộc tồn vẹn thời gian vốn có mơ hình 43 3.3 Cải tiến ngôn ngữ 47 3.4 ðặc tả ngữ nghĩa tác vụ ngôn ngữ 54 3.5 Các hàm bổ sung 76 CHƯƠNG KIẾN TRÚC LỚP PHẦN MỀM 85 4.1 Kiến trúc ñề nghị 85 4.2 Module xử lý ñịnh nghĩa lớp 88 4.3 Module xử lý câu truy vấn 89 4.4 Module xử lý lệnh thao tác liệu 91 CHƯƠNG ỨNG DỤNG QUẢN LÝ CÔNG TY THIẾT KẾ NỘI THẤT 92 5.1 Mô tả ứng dụng 92 5.2 Sơ ñồ lớp 93 5.3 ðịnh nghĩa lớp 94 5.4 Thao tác liệu 96 5.5 Truy vấn 101 CHƯƠNG KẾT LUẬN 104 6.1 Kết ñề tài 104 v 6.2 Hướng phát triển 107 TÀI LIỆU THAM KHẢO 108 PHỤ LỤC A ÁNH XẠ MƠ HÌNH TVM VÀO CƠ SỞ DỮ LIỆU QUAN HỆ 112 PHỤ LỤC B ÁNH XẠ NGÔN NGỮ TVQL VÀO NGÔN NGỮ SQL 114 PHỤ LỤC C BẢNG THUẬT NGỮ VIỆT-ANH 118 vi DANH MỤC HÌNH Hình 2-1 Hệ thống kiểu TIGUKAT 16 Hình 2-2 Hệ thống kiểu bổ sung kiểu thời gian trừu tượng 16 Hình 2-3 Hệ thống phân cấp lớp sở mô hình TVM 26 Hình 2-4 Lược đồ trạng thái phiên 27 Hình 4-1 Kiến trúc lớp phần mềm ñược ñề xuất 86 Hình 4-2 Cách thức chuyển đổi lệnh định nghĩa lớp 89 Hình 4-3 Cách thức chuyển ñổi câu truy vấn TVQL 90 Hình 4-4 Cách thức chuyển đổi lệnh thao tác liệu 91 Hình 5-1 Sơ ñồ lớp ứng dụng 93 vii CHƯƠNG GIỚI THIỆU 1.1 Tổng quan Trong ứng dụng thiết kế có trợ giúp máy tính (Computer Aided Design - CAD), sản xuất có trợ giúp máy tính (Computer Aided Manufacturing CAM), cơng nghệ xây dựng phần mềm có trợ giúp máy tính (Computer Aided Software Engineering - CASE)…, người dùng cần xem xét phiên (version) khác ñối tượng Các phiên ñối tượng thể trạng thái trình phát triển thực thể mà đối tượng mơ hình thể biến thể khác ñối tượng Chẳng hạn, ứng dụng CASE, chương trình nguồn có nhiều phiên tương ứng với sản phẩm thương mại liên tiếp chương trình Ngồi ra, chương trình nguồn cịn có nhiều phiên ứng với biến thể chương trình hoạt ñộng hệ ñiều hành khác Việc quản lý vấn đề đa phiên (multiversion) thực mức ứng dụng mức hệ quản trị sở liệu (DataBase Management System - DBMS) Nếu vấn ñề ña phiên ñược giải mức DBMS nhà phát triển cần tập trung vào việc xây dựng ứng dụng Ngược lại, vấn đề đa phiên khơng giải mức DBMS gánh nặng đặt lên vai nhà phát triển lớn vừa xây dựng ứng dụng vừa phải tự quản lý vấn ñề ña phiên Thực tế đặt u cầu DBMS hỗ trợ loại ứng dụng ñặc biệt kể phải quản lý ñược vấn ñề ña phiên Thời gian yếu tố quan trọng ñối với tượng xảy giới thực, chẳng hạn kiện xảy thời ñiểm cụ thể, ñối tượng mối quan hệ ñối tượng tồn khoảng thời gian ñịnh Trong nhiều ứng dụng chăm sóc sức khỏe, bảo hiểm, tài chính, quản lý thơng tin cá nhân, ngân hàng…, cần phải lưu trữ quản lý thay ñổi liệu theo thời gian Nếu khơng có hỗ trợ từ DBMS nhà phát triển chương trình ứng dụng phải tự quản lý liệu thay ñổi theo thời gian ðối với ứng dụng cần quản lý phiên khác ñối tượng ñồng thời phải quản lý thay đổi thuộc tính mối quan hệ phiên theo thời gian độ phức tạp ứng dụng tăng khơng có hỗ trợ từ DBMS Hiện nay, vấn ñề ña phiên ñược SQL Server [6] Oracle [21] hỗ trợ mức / ñối tượng cho phép quản lý ñồng thời nhiều phiên khác hàng bảng Vấn ñề quản lý thời gian ñược Oracle hỗ trợ mức gán nhãn thời gian cho / ñối tượng, chưa quản lý ñược thay ñổi thuộc tính mối quan hệ theo thời gian [22] Như vậy, chưa có DBMS có khả hỗ trợ quản lý phiên khác ñối tượng thay ñổi thuộc tính mối quan hệ phiên ñó theo thời gian Việc xây dựng từ ñầu DBMS phức tạp tốn Vì vậy, hướng giải ñược ñặt xây dựng lớp phần mềm hỗ trợ mơ hình quản lý vấn đề đa phiên hướng thời gian thích hợp với ngơn ngữ định nghĩa lớp, truy vấn thao tác liệu DBMS ðã có nhiều nghiên cứu riêng cho loại mơ hình: mơ hình sở liệu đa phiên (multiversion database) quản lý ñồng thời nhiều phiên thành phần sở liệu mơ hình sở liệu hướng thời gian (temporal database) quản lý thay ñổi theo thời gian thành phần Tuy nhiên có nghiên cứu kết hợp hai mơ hình [8, 19, 28] Trong mơ hình, mơ hình đa phiên hướng thời gian (Temporal Versions Model – TVM) [19] thích hợp với u cầu so với mơ hình khác Mơ hình cho phép quản lý phiên đối tượng thay đổi thuộc tính phiên theo thời gian, ngơn ngữ định nghĩa lớp, truy vấn thao tác liệu thân thiện với người dùng Nhóm nghiên cứu trường Federal University of Rio Grande Sul (Brazil) ñang thực DB2 mơ hình TVM ngơn ngữ liên quan ñể giải vấn ñề ña phiên hướng thời gian, có xem xét tiến hóa lược đồ sở liệu Tuy nhiên, ngơn ngữ cịn hạn chế sau: • Các ngôn ngữ truy vấn cập nhật liệu xem xét thuộc tính, chưa xem xét mối quan hệ thành phần sở liệu • Cách xử lý mối quan hệ thừa kế (inheritance relationship) gây bất thường (anomaly) sở liệu • Chưa xử lý mối quan hệ bao gộp (aggregation relationship) mối quan hệ cấu thành (composition relationship) • Khơng thể xây dựng cấu hình có cấu trúc phức tạp • Chưa xem xét ràng buộc toàn vẹn thời gian vốn có mơ hình q trình thao tác liệu Mục tiêu ñề tài giải hạn chế trên, ñề xuất kiến trúc cho lớp phần mềm hỗ trợ mơ hình TVM, ngơn ngữ định nghĩa lớp, truy vấn, thao tác liệu Oracle ñể quản lý vấn ñề ña phiên thời gian ứng dụng 1.2 Kết ñạt ñược ðề tài ñã xây dựng ñược Oracle lớp phần mềm hỗ trợ mơ hình TVM, khắc phục hạn chế ngơn ngữ định nghĩa lớp, truy vấn thao tác liệu Với lớp phần mềm xây dựng, người dùng ñịnh nghĩa lớp, truy vấn, thao tác với liệu, ñáp ứng yêu cầu ứng dụng cần quản lý phiên ñối tượng thay ñổi thuộc tính mối quan hệ phiên theo thời gian Xem xét điều kiện mối quan hệ phiên ñối tượng, phiên ñối tượng ña phiên Ngôn ngữ truy vấn cung cấp cho người dùng hai khả chọn lựa truy xuất mối quan hệ phiên ñối tượng: truy xuất kết hợp quan trọng phiên ñã ñược lưu trữ sở liệu truy xuất kết hợp xảy phiên đối tượng thuộc hai lớp có quan hệ với để tìm kết hợp quan trọng cần lưu trữ Ngơn ngữ truy vấn bổ sung thêm toán tử so sánh thời ñiểm với thời khoảng, so sánh thời khoảng với ñể tăng cường linh hoạt cho ñiều kiện thời gian Người dùng cung cấp ñồng thời giá trị khoảng thời gian hợp lệ cho thuộc tính mối quan hệ thực thi lệnh INSERT Theo lệnh INSERT ban ñầu, phiên ñối tượng tự ñộng ñược tạo người dùng cập nhật đặc tính khơng đổi theo thời gian Cách làm vừa tạo nhiều phiên mà người dùng khơng kiểm sốt vừa khơng cung cấp đủ thơng tin cần thiết cho phiên Với ngôn ngữ cải tiến, người dùng định có tạo phiên hay khơng liệu cập nhật Ngồi ra, việc sử dụng cấu trúc tương tự tạo phiên ñầu tiên ñối tượng cung cấp ñầy ñủ thông tin tạo phiên Khi thực thi lệnh UPDATE, người dùng cập nhật ñồng thời giá trị khoảng thời gian hợp lệ cho thuộc tính mối quan hệ, cập nhật thời gian sống thực tế phiên Khi thực thi lệnh DELETE, người dùng xóa hồn tồn phiên đối tượng thơng thường, giúp giảm bớt kích thước cho sở liệu, xóa bỏ liệu 105 khoảng thời gian xác ñịnh thuộc tính mối quan hệ thay ñổi theo thời gian thuộc phiên ñối tượng ña phiên Giải ñược vấn ñề Các ngơn ngữ cải tiến xem xét mối quan hệ thành phần sở liệu Vấn ñề chưa ñược xử lý ngơn ngữ có Xử lý mối quan hệ bao gộp mối quan hệ cấu thành Cách xử lý mối quan hệ thừa kế vừa tiết kiệm ñược không gian lưu trữ vừa cho phép truy xuất liệu cách hồn tồn suốt mà khơng cần quan tâm ñến nơi lưu trữ thật liệu Cách quản lý việc xây dựng cấu hình cho phép người dùng xây dựng cấu hình theo yêu cầu mà ñảm bảo lưu trữ ñầy ñủ cấu hình quan trọng Xác ñịnh ñầy ñủ ràng buộc tồn vẹn thời gian vốn có mơ hình ðặc tả đầy đủ ngữ nghĩa tác vụ cho ngôn ngữ xem xét ràng buộc tồn vẹn thời gian q trình thao tác liệu Như vậy, với lớp phần mềm ñã xây dựng, người dùng định nghĩa lớp, truy vấn, thao tác với liệu, ñáp ứng yêu cầu ứng dụng cần quản lý phiên ñối tượng thay đổi thuộc tính mối quan hệ phiên theo thời gian Chương trình thực ngơn ngữ Java kết hợp với cơng cụ tạo trình biên dịch ANTLR, dài khoảng 20000 hàng lệnh, chạy máy tính có cấu hình Pentium IV 3.46Ghz, RAM 1GB, HDD 80GB, OS WinXP SP1, Oracle 10g Thời gian thực thi tương ñối nhanh chóng, ổn định 106 6.2 Hướng phát triển Hiện tại, người dùng thao tác thuộc tính mối quan hệ, chưa thể ñịnh nghĩa ñược tác vụ Vì vậy, hướng phát triển đặt lớp phần mềm nên bổ sung thêm tính ñể cho phép người dùng ñịnh nghĩa trực tiếp tác vụ lớp mà không cần sử dụng thêm cơng cụ lập trình khác Câu truy vấn xem xét cấu trúc select – from – where Các thành phần lại như: mệnh ñề (group by, having, order by), tác vụ tập hợp (union, intersection, difference), hàm nhóm (count, sum, avg, min, max)… câu truy vấn cần ñược bổ sung ñể hoàn thiện cấu trúc truy vấn Cho phép người dùng định nghĩa ràng buộc tồn vẹn để đảm bảo tính đắn sở liệu Các ràng buộc tận dụng ngơn ngữ xây dựng lớp phần mềm ngơn ngữ phát triển đặc biệt cho mơ hình đa phiên hướng thời gian Các phiên ràng buộc toàn vẹn nên ñược xem xét Chẳng hạn ứng dụng quản lý học vụ trường ñại học, yêu cầu sinh viên tốt nghiệp khóa thay đổi Ứng dụng cần quản lý đồng thời điều kiện khác sinh viên thuộc khóa tương ứng Mở rộng mơ hình để quản lý vấn ñề ña phiên cấp ñộ cao hơn, có xem xét tiến hóa lược đồ sở liệu, thêm, thay đổi hay xóa bỏ thuộc tính, mối quan hệ tác vụ lớp, thêm xóa lớp ðiều đặc biệt có ý nghĩa ứng dụng nhiều người tham gia xây dựng ñóng góp, có cấu trúc thay ñổi thường xuyên Chẳng hạn, ứng dụng quản lý học vụ trường ñại học cần thay ñổi chương trình học cho khóa khác nhau, ứng dụng quản lý quy trình xây dựng phần mềm qua phiên thương mại khác cần có tham gia nhiều người 107 TÀI LIỆU THAM KHẢO [1] Allen, J.F., 1983, Maintaining Knowledge about temporal intervals, in Communications of the ACM, pp 832-843 [2] Bertino, E et al., 1996, A Formal Temporal Object-Oriented Data Model, in Proceedings of the 5th International Conference on Extending Database Technology, Mar EDBT’06, pp 342-356 [3] Cellary, W and Jomier, G., 1990, Consistency of Versions in Object-Oriented Databases, in Proceedings of the 16th International Conference on Very Large Data Bases, VLDB 16, pp 432-441 [4] Cordeiro, R.L.F et al., 2004, Integrity Constraints for Temporal Versions Model: Classification, Modeling and Verification, Universidade Federal Rio Grande Sul, Instituto de Informática, Brazil [5] Cordeiro, R.L.F et al, 2006, TVCL – Temporal Versioned Constraint Language, Universidade Federal Rio Grande Sul, Instituto de Informática, Brazil [6] Database Concurrency and Row Level Versioning in SQL Server 2005 [7] Doucet, A et al, 1996, Integrity Constraints in Multiversion Databases, in Proceedings of the 14th British National Conference on Databases: Advances in Databases, Jul BNCOD 14, pp 56-73 [8] Doucet, A et al, 1997, Using Database Versions to Implement Temporal Integrity Constraints, Second International Workshop on Constraint Database Systems, Constraint Databases and Their Applications, Jan 1997, pp 219-233 108 [9] Doucet, A et al, 1997, Versions of Integrity Constraints in Multiversion Databases, in Proceedings of the 8th International Conference on Database and Expert Systems Applications, Sep DEXA ’97, pp 252-261 [10] Dương Tuấn Anh, 2006, Temporal databases, Lecture notes, Department of Computer Science and Engineering, HoChiMinh City University of Technology http://www.cse.hcmut.edu.vn/~dtanh/teaching.htm [11] Irani, B.B., 1993, Implementation of the TIGUKAT object model., Master's thesis, University of Alberta Technical Report, TR93-10 [12] Jensen, C.S et al., 1998, The Consensus Glossary of Temporal Database Concepts – February 1998 Version, Lecture Notes in Computer Science, ISSN 0302-9743 [13] Galante, R.M et al., 2003, Data Modification Language For Full Support Of Temporal Schema Versioning, Brazilian Symposium on Databases, Oct 2003 [14] Goralwalla, I.A and Ozsu, M.T., 1993, Temporal Extensions to a Uniform Behavioral Object Model, in Proceedings of the 12th International Conference of the Entity-Relationship Approach, Dec ER’93, pp 110-121 [15] Goralwalla, I.A et al., 1998, An Object-Oriented Framework for Temporal Data Models Aus: O Etzion, S Jajodia, S Sripada (Eds.) Temporal Databases: Research and Practice [16] Lomet, D et al, 2005, Immortal db: Transaction time support for sql server, in Proceedings of the 2005 ACM SIGMOD international conference on Management of data, pp 939-941 [17] Moro, M.M et al., 2001, Dynamic Systems Specification using Versions and Time, in Proceedings of the 5th International Database Engineering and Applications Symposium, IDEAS ‘01, pp 99-107 109 [18] Moro, M.M et al., 2001, Adding Time to an Object-Oriented Versions Model, in Proceedings of the 12th International Conference on Database and Expert Systems Applications, Sep DEXA ‘01, pp 805-814 [19] Moro, M.M et al., 2002, Temporal Versions Model, Universidade Federal Rio Grande Sul, Instituto de Informática, Brazil [20] Moro, M.M et al., 2002, TVQL – Temporal Versioned Query Language, in Proceedings of the 13th International Conference on Database and Expert Systems Applications, Sep DEXA ’02, pp 618-627 [21] Oracle Database Workspace Manager Developer’s Guide, 10g Release 1(10.1) No B10824-03 [22] Oracle flashback technology, [23] Ozsoyoglu, G and Snodgrass, R.T., 1995, Temporal and Real-Time Databases: A survey, IEEE Transactions on Knowledge and Data Engineering, Volumn 7, Issue 4, Aug 1995, pp 513-532 [24] Sciore, E., 1994, Versioning and Configuration Management in an ObjectOriented Data Model, VLDB Journal The International Journal on Very Large Data Base, Volumn 3, Issue 1, Jan 1994, pp 77-106 [25] Stantic, B., 1998, Access Methods for Bitemporal Databases, Griffith University, Australia, Jan 1998 [26] Talens, G and Oussalah, C., 1993, Versions of Simple and Composite Objects, in Proceedings of the 19th International Conference on Very Large Data Bases, VLDB ‘93, pp 62-72 110 [27] Theodoulidis, B et al., 1997, Review of Temporal Object-Oriented Approaches, Oct 1997, Department of Computation UMIST, TR-96-1 [28] Wuu, G.T.J and Dayal, U., 1993, A Uniform Model for Temporal and Versioned Object-oriented Databases, in Benjamin/Cummings, Temporal Databases: Theory, Design, and Implementation, pp.230-247 111 PHỤ LỤC A ÁNH XẠ MÔ HÌNH TVM VÀO CƠ SỞ DỮ LIỆU QUAN HỆ Quá trình ánh xạ hệ thống phân cấp lớp sở mơ hình TVM [20] tiến hành sau: Lớp Object ñược ánh xạ vào bảng tên với lớp Thuộc tính lớp ánh xạ vào cột bảng bao gồm: thuộc tính oid cho biết ñịnh danh ñối tượng Lớp TemporalObject ñược ánh xạ vào bảng tên với lớp Thuộc tính lớp ñược ánh xạ vào cột bảng bao gồm: thuộc tính alive cho biết đối tượng cịn tồn hay khơng Lớp TemporalVersion ánh xạ vào bảng tên với lớp Các thuộc tính lớp ñược ánh xạ vào cột bảng bao gồm: thuộc tính ascendant descendant cho biết phiên cha phiên phiên ñang xét, thuộc tính predecessor successor cho biết phiên dẫn xuất phiên ñang xét phiên ñược dẫn xuất từ phiên ñang xét, thuộc tính configuration cho biết phiên xét có phải cấu hình khơng, thuộc tính status cho biết trạng thái phiên ñang xét Lớp VersionedObjectControl ánh xạ vào bảng VOC Các thuộc tính lớp ñược ánh xạ vào cột bảng bao gồm: thuộc tính configurationCount cho biết số lượng cấu hình đối tượng, thuộc tính currentVersion, firstVersion, lastVersion cho biết phiên tại, phiên ñầu tiên phiên cuối ñối tượng, nextVersionNumber cho biết số thứ tự phiên ñối tượng, 112 userCurrentFlag cho biết phiên có phải người dùng định hay khơng, versionCount cho biết số lượng phiên đối tượng Q trình ánh xạ lớp ứng dụng mơ hình TVM thành bảng sở liệu quan hệ ñược tiến hành sau: Nếu lớp thông thường ñược ánh xạ vào bảng (main table) tên với lớp Các thuộc tính ánh xạ vào cột bảng khóa bảng oid Nếu lớp ña phiên hướng thời gian ñược ánh xạ vào bảng (main table) tên với lớp có đặc trưng sau: Các thuộc tính thừa kế từ lớp sở alive, configuration, status ñược ánh xạ vào cột bảng Các thuộc tính thừa kế từ lớp sở ascendant, descendant, predecessor, successor ñược ánh xạ vào bảng ñặc biệt AscDesc PredSucc lưu trữ cặp phiên nhãn thời gian Thuộc tính refVOC khóa ngoại tham khảo đến thuộc tính oid tương ứng bảng VOC Mỗi thuộc tính mối quan hệ thay ñổi theo thời gian ñược lưu trữ bảng riêng (auxiliary table) chứa thông tin lịch sử thay đổi giá trị Các bảng bao gồm cột sau: oid (khóa ngoại liên hệ với bảng main table), value (cùng kiểu với thuộc tính), itTime, ftTime, ivTime, fvTime (nhãn thời gian cho thời ñiểm bắt ñầu kết thúc giao tác, thời ñiểm bắt ñầu kết thúc hợp lệ) Khóa kết hợp oid, itTime ivTime Trong đó, bảng main table lưu trữ liệu bảng auxiliary table lưu trữ toàn lịch sử liệu 113 PHỤ LỤC B ÁNH XẠ NGÔN NGỮ TVQL VÀO NGƠN NGỮ SQL Q trình ánh xạ ngơn ngữ TVQL vào ngơn ngữ SQL [20] bắt đầu việc biểu diễn mệnh đề from, sau mệnh đề select cuối mệnh đề where Q trình chia làm hai bước: (1) ánh xạ lớp, thuộc tính mối quan hệ, (2) ánh xạ giới hạn liệu ðể minh họa cho việc chuyển ñổi câu truy vấn viết ngôn ngữ TVQL, mô hình TVM dùng để mơ hình hóa ứng dụng đơn giản: cơng ty thiết kế website (xem hình minh họa) Ngồi thiết kế khách hàng, cơng ty cịn lưu trữ thiết kế nhân viên Mỗi website ñược tạo thành từ nhiều trang web (webpage), số trang trang ñầu tiên (initial Page) website Mỗi website có mẫu trang (pagepattern) riêng quy định màu hình nền, biểu ngữ, đặc tả font chữ mặc ñịnh Các mẫu trang website thay ñổi theo mùa dịp lễ ñặc biệt năm 114 Bước 1: Ánh xạ lớp, thuộc tính mối quan hệ: lớp mệnh ñề from ñược ánh xạ vào bảng, thuộc tính mệnh ñề select ñược ánh xạ vào cột tương ứng bảng Nếu lớp thơng thường không cần phải ánh xạ Truy xuất liệu Ví dụ 1: Liệt kê tất kiểu kích thước font TVQL SELECT fontType, fontSize FROM Font; SQL SELECT t1.fontType, t1.fontSize FROM Font t1; Ví dụ 2: Liệt kê tất biểu ngữ hành Khi khơng có từ khóa versions liệu truy xuất liệu hành, bao gồm liệu từ phiên khơng tham khảo đến bảng VOC phiên hành có tham khảo đến bảng VOC Khi có từ khóa versions truy xuất liệu từ tất phiên TVQL SELECT banner FROM PagePattern; SQL SELECT t1.banner FROM PagePattern t1, VOC t2 WHERE (t1.refVOC = null) or (t1.refVOC = t2.oid and t1.oid = t2.currentVersion); Truy xuất toàn lịch sử liệu Nếu từ khóa ever dùng sau select bảng auxiliary table phải xem xét Nếu khơng có giới hạn mặt thời gian liệu liệu xem xét trạng thái sở liệu với giá trị thời ñiểm kết thúc giao tác null ngày ‘12/31/9999’ Ví dụ 3: Liệt kê tất biểu ngữ toàn lịch sử liệu tất phiên 115 TVQL SELECT EVER banner FROM PagePattern.versions; SQL SELECT t1.value FROM PagePattern_Banner t1 WHERE t1.ftTime = ‘12/31/9999’; Ví dụ 4: Liệt kê phiên tất đối tượng tồn lịch sử lớp PagePattern khoảng thời gian hợp lệ tương ứng TVQL SELECT EVER firstVersion, vInterval FROM PagePattern.versions; SQL SELECT t3.value, t3.ivTime || “ ” || t3.fvTime FROM PagePattern_Banner t1, VOC t2, VOC_FirstVersion t3 WHERE t1.refVOC = t2.oid and t2.oid = t3.oid and t3.ftTime = ‘12/31/9999’; Bước 2: Ánh xạ giới hạn liệu Nếu lớp thơng thường khơng cần phải ánh xạ ðiều kiện thời gian Ví dụ 5: Liệt kê biểu ngữ hành từ tất phiên thuộc lớp PagePattern với điều kiện lịch sử có thơng tin tên biểu ngữ bắt ñầu ký tự A TVQL SELECT banner FROM PagePattern.versions; WHERE EVER banner LIKE ‘A%’; SQL SELECT t1.value FROM PagePattern t1, PagePattern_Banner t2 WHERE t1.oid = t2.oid and t2.ftTime = ‘12/31/9999’ and t2.value like ‘A%’; Ví dụ 6: Liệt kê lịch sử tất biểu ngữ hành từ tất phiên thuộc lớp PagePattern với ñiều kiện tại, tên biểu ngữ bắt ñầu ký tự A TVQL SELECT EVER banner FROM PagePattern.versions; WHERE PRESENT (banner LIKE ‘A%’); SQL SELECT t2.value FROM PagePattern t1, PagePattern_Banner t2 WHERE t1.oid = t2.oid and t2.ftTime = ‘12/31/9999’ AND t1.value like ‘A%’; 116 ðiều kiện phiên Ví dụ 7: Liệt kê tên mẫu biểu ngữ phiên trạng thái ‘stable’ lớp PagePattern với ñịnh danh phiên ñược dẫn xuất từ phiên TVQL SELECT p1.patternName, p1.banner, p2.oid FROM PagePattern.versions p1, PagePattern.versions p2 WHERE p1.isStable and p1.isPredecessorOf(p2); SQL SELECT t1.patternName, t1.banner, t2.oid FROM PagePattern t1, PagePattern t2, PredSucc t3 WHERE t1.status = ‘S’ and t3.predecessor = t1.oid and t3.successor = t2.oid and t3.ftTime = ‘12/31/9999’; Truy xuất hai nhiều thuộc tính thay đổi theo thời gian Ví dụ 8: Liệt kê lịch sử tất ñường dẫn trang trạng thái online TVQL SELECT EVER url FROM WebSite.versions WHERE online = true and url.vInterval INTERSECT online.vInterval; SQL SELECT t1.value FROM WebSite_URL t1, WebSite_Online t2 WHERE t1.tvoid = t2.tvoid and t2.value = true and t1.ftTime = ‘12/31/9999’ and t2.ftTime = ‘12/31/9999’ and t1.ivTime = t2.ivTime 117 PHỤ LỤC C BẢNG THUẬT NGỮ VIỆT-ANH Tiếng Việt Tiếng Anh Cơ sở liệu song thời gian Bitemporal database Thời gian phân nhánh Branching time Cấu hình Configuration Liên tục Continuous Dày đặc Dense Rời rạc Discrete Sự mở rộng Extension Thời ñiểm Instant Thời gian tuyến tính Linear time ða phiên Multiversion Cơ sở liệu đa phiên Multiversion database Mơ hình lập phiên ñối tượng Object versioning Sự tinh chế Refinement Mơ hình lập phiên lược đồ Schema versioning 118 Cơ sở liệu hướng thời gian Temporal database Mật ñộ thời gian Time density Chiều thời gian Time dimension Phần tử thời gian Time element Khoảng thời gian Time interval Bậc thời gian Time order Nhãn thời gian Timestamp Thời gian giao tác Transaction time Cơ sở liệu thời gian giao tác Transaction time database Thời gian hợp lệ Valid time Cơ sở liệu thời gian hợp lệ Valid time database Phiên Version ðồ thị phiên Version graph Trạng thái phiên Version state ðối tượng ña phiên Versioned object 119 ... hợp sở liệu thời gian hợp lệ sở liệu thời gian giao tác Cơ sở liệu song thời gian ñược dùng ñể lưu trữ lịch sử thay ñổi kiện kèm theo thời gian hợp lệ thời gian giao tác Cơ sở liệu song thời gian. .. khoảng thời gian xử lý DBMS hướng thời gian Khi mơ hình sở liệu ña phiên ñược dùng ñể hỗ trợ sở liệu song thời gian ràng buộc tồn vẹn thời gian thực cách ánh xạ vào ràng buộc sở liệu ña phiên Với hướng. .. vẹn thời gian thực DBMS O2 2.2.5 Mơ hình đa phiên hướng thời gian TVM Moro Mơ hình ña phiên hướng thời gian [17, 18, 19] mơ hình hướng đối tượng cho phép quản lý vấn ñề thời gian ña phiên Phần

Ngày đăng: 08/03/2021, 23:43

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

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

Tài liệu liên quan