Biên dịch câu truy vấn thời gian, thực thi trên hệ quản trị cơ sở dữ liệu
Khoa học - kó thuậät 37 * TÓM TẮT: Trong bài báo trước [9], chúng tôi đã đề xuất một tiểu ngôn ngữ truy vấn có yếu tố thời gian SubTSQL để truy vấn và thao tác dữ liệu trên cơ sở dữ liệu thời gian. Bài báo này chúng tôi sử dụng mã nguồn mở Lex và Yacc để xây dựng một trình biên dòch, trình biên dòch này làm công việc biên dòch câu truy vấn thời gian thành câu SQL trong Oracle. Một trình biên dòch như thế dễ dàng tạo lập và giảm tải cho người lập trình. ABSTRACT: In [9] we proposed the temporal query sublanguage SubTSQL that can work with temporal database. In this paper, we present to use Open source code Lex and Yacc that can support a complier so that the complier is easily built and reducing the working of programmer. This complier can convert temporal queries to Oracle SQL queries 1. GIỚI THIỆU Thực tế, nhiều ứng dụng trên cơ sở dữ liệu (CSDL), mà các đối tượng trong CSDL đó cần gắn thêm yếu tố thời gian [3]. Ví dụ: những ứng dụng như: ngân hàng, lòch chuyến bay, quản lý kho hàng, hồ sơ bệnh viện, thò trường chứng khoán v.v ., thì yếu tố thời gian gắn với đối tượng * Khoa Cơng nghệ Thơng tin, Trường Đại học Cơng nghiệp TP. HCM là một thực tế (đối tượng thay đổi dữ liệu theo thời gian), cần có nó để tăng mức phong phú và ngữ nghóa của dữ liệu trong CSDL [4], [5], [9]. Hiện tại, chưa có một hệ quản trò cơ sở dữ liệu (HQTCSDL) nào hỗ trợ một cách có hệ thống cho việc truy xuất hay thao tác dữ liệu trên CSDL hướng thời gian. Ngay cả Oracle 10g thì những câu lệnh có hỗ trợ thời gian cũng khá phức tạp, người dùng cần sử dụng nhiều hàm thư viện trong câu truy vấn, hơn nữa để có một phiên bản chính thức của Oracle 10g tốn chi phí rất cao. Câu truy vấn có yếu tố thời gian, nếu được viết theo cú pháp của một HQTCSDL thì phức tạp (xem câu truy vấn trong mục 4.1), ngay cả đối với lập trình viên chuyên nghiệp. Để người dùng dễ dàng viết câu truy vấn thời gian, cần xây dựng một trình biên dòch có tính hệ thống, cũng như dễ dàng mở rộng nó để biên dòch cho nhiều dạng câu truy vấn khác. Nếu viết một trình biên dòch như thế theo truyền thống, tốn kém nhiều chi phí. Do vậy, sử dụng phần mềm mã nguồn mở (PMMNM) là một phương pháp khả thi để xây dựng trình biên dòch. Hơn nữa, Thủ tướng chính phủ đã phê duyệt Dự án tổng thể ứng dụng và phát triển PMMNM tại Việt Nam giai đoạn 2004-2008 (Quyết đònh số 235/QĐ-TTg ngày 02/02/2004), một trong những nội dung quan trọng của dự án là đẩy mạnh BIÊN DỊCH CÂU TRUY VẤN THỜI GIAN, . dung quan trọng của dự án là đẩy mạnh BIÊN DỊCH CÂU TRUY VẤN THỜI GIAN, THỰC THI TRÊN HỆ QUẢN TRỊ CƠ SƠÛ DỮ LIỆU . đã đề xuất một tiểu ngôn ngữ truy vấn có yếu tố thời gian SubTSQL để truy vấn và thao tác dữ liệu trên cơ sở dữ liệu thời gian. Bài báo này chúng