D- Tập giai đoạn 6 0-
B- Chuyển đổi đơn vị 6 5-
4.1.4.5 Trích chọn các trạng thái đối tượng 7 1-
Nếu một lớp đã được khai báo có ngữ nghĩa thời gian hiệu lực và/hoặc ngữ nghĩa thời gian giao dịch, những biểu thức được mô tả tại mục 4.1.4.1 có thể được sử dụng với những biểu thức có giá trị là một thể hiện của lớp.
Ví dụ: Nếu khai báo lớp Factory như sau:
interface Factory
(extent Factories
key Owner, Location)
//Đơn vị trạng thái hiệu lực giao dịch ngày đơn vị; // Các thuộc tính
attribute String Owner; attribute String Location; attribute String Manager;
relationship Product manufactures inverse Product::manufactured;
Sau đó các truy vấn
select (bitemporal state f)[valid at INSTANT '1995-01-01' DAY, current at INSTANT 'NOW' DAY]
from Factories as f
và
select (bitemporal state f)[current at INSTANT 'NOW' DAY, valid at PERIOD '[1995-01-01, 1995-06-01)' DAY]
from Factories as f
có thể sử dụng các trạng thái của các nhà máy, như được ghi vào trạng thái cơ sở dữ liệu hiện thời cho thời điểm ngày 01/01/1995 và giai đoạn là năm tháng đầu tiên của năm 1995. Như vậy, cú pháp để đưa ra một thao tác trích chọn trạng thái trên một đối tượng là:
(time_dimension state temporal_object)extraction_operation
trong đó time_dimension có thể là một trong những từ khóa valid, transaction và bitemporal, và extraction_operation phải là một toán tử kịch bản con có khả năng áp dụng trên các đối tượng được xác định các chiều thời gian.
Từ khóa valid có thể được sử dụng cho những đối tượng thời gian hiệu lực và bitemporal; từ khóa transaction thích hợp với những đối tượng thời gian giao
dịch, những đối tượng sự kiện bitemporal và đối tượng trạng thái bitemporal không chồng nhau của các nhãn thời gian hiệu lực; từ khóa bitemporal chỉ cho phép trên những đối tượng bitemporal.
Kiểu kết quả của một thao tác trích chọn trạng thái sẽ là một trạng thái đối tượng, hoặc một tập các cấu trúc, với mỗi cấu trúc giữ một trạng thái đối tượng và một nhãn thời gian (Hoặc hai nhãn thời gian), phụ thuộc vào số lượng trạng thái của biểu thức.
Những quy tắc để xác định số lượng các nhãn thời gian tương tự với những quy tắc mô tả tại mục 4.1.4.1 .
Những bổ nghĩa như: trạng thái time_dimension có thể đặt trước những đối tượng thời gian khi chúng được sử dụng như một tham số tới một trong số các hàm count, first và last.
Trong những trường hợp này, những hàm này trả lại tương ứng số lượng trạng thái trong đối tượng, trạng thái với nhãn thời gian nhỏ nhất và trạng thái với nhãn thời gian lớn nhất. Những hàm first và last có thể không được sử dụng khi time_dimension là tập bitemporal.