D- Mở ộr ng ràng buộc áp dụng lớp đối tượng tới chi u t hề ời gia n 2 6-
B- Dữ liệu thời gian bên trong đối tượng 29
4.1.8 Toán tử ấ cu trúc lại 8 1-
Toán tử cấu trúc l i là ti n ích cho hình th c hoá các bi u di n tạ ệ ứ ể ễ ương đương khác nhau của dữ liệu thời gian. Hai toán tử cấu trúc l i ạ được cung c p, toán ấ
tử thứ nhất chuyển đổi period-timestamped tới các instant-timestamped, trong khi cấu trúc toán tử thứ hai cho phép chọn trục thời gian trên các nhãn thời gian cực đại được sinh ra. Các toán tử này được giới thiệu sau đây:
Chuyển đổi period-timestamped tới instant-timestamped Cú pháp đưa ra theo toán tử ổ t chứ ạc l i là:
temporal_object(partition time_axis as instant)
Trong đó time_axis là trục thời gian hoặc là valid hoặc transaction. Áp dụng toán tử cấu trúc l i (phân ho ch hi u l c nh th i i m) trên m t ạ ạ ệ ự ư ờ đ ể ộ đối tượng của kiểu T trạng thái hiệu lực G1 lịch biểu C1 (G1 đơn vị của timestamps hiệu lực) sinh ra một kết quả kiểu set<struct(Value: T, VT: Instant)>, với những thời đ ểi m có đơn vị G1 và lịch biểu C1.
Một phần tử (vr, vtr) thuộc về tập k t qu nế ả ếu m t phộ ương án (vvar, vtvar) xuất hiện trong đối tượng thời gian hiệu lực và nh ng i u ki n sau ữ đ ề ệ được tho ả
mãn :
vr = vvar vtvar ch a vtr ứ
Tương tự, áp dụng toán tử Phân hoạch giao dịch như thời đ ểi m trên một đối tượng kiểu giao dịch T, kết quả trong một set<struct(Value: T, TT: Instant)>. Một phần tử (vr, ttr) thuộc về tập kết quả nếu một phương án (vvar, ttvar) xuất hiện trong đối tượng thời gian giao dịch và những đ ềi u kiện sau được thoả :
vr = vvar ttvar ch a ttr ứ
Nếu cùng toán tử đó áp dụng trên một đối tượng bitemporal, thì mô hình kết quả mở rộng đển nh ng ph n t cữ ầ ử ủ ậa t p k t qu bao g m m t thành ph n m ế ả ồ ộ ầ ở
Ví dụ, truy vấn: Cho nhà máy sở hữu “Delta Dairy S.A.” t i “St.Stefanos”, ạ
Liệt kê giám đốc của mỗi tháng:
select MonthInfo from Factories as f,
(valid f->Manager)(partition valid as instant) as MonthInfo where f->Owner = "Delta Dairy S.A"
and f->Location = "St.Stefanos"
Từ giá trị của thành ph n Manager cho ầ đối tượng ch a thông tin v nhà máy ứ ề
sở hữu “Delta Dairy S.A.” tại “ St.Stefanos” là đối tượng trạng thái hiệu lực
{(value: 'Stefanou', VT: [1994-01, 1995-01)), (value: 'Nikou', VT: [1995-01, 1996-09)}
(xem mục 4.1.3), kết quả ủ c a truy vấn này có thể tương ng nhứ ư sau:
{(Value: 'Stefanou', VT: 1994-01), (Value: 'Stefanou', VT: 1994- 02), ..., (Value: 'Stefanou', VT: 1994-12),
Sinh ra nhãn thời gian cực đại.
Mô hình dữ li u có thệ ể chọn bất kỳ kiểu biểu diễn nào để lưu gi thông tin ữ
thời gian vào trong cơ sở dữ ệ li u, nh ng nh ng truy v n khác nhau có th c n ư ữ ấ ể ầ
có sự trình bày khác nhau, để sinh ra các kết quả đ úng. Toán tử ấ c u trúc thứ hai, có cú pháp là:
temporal_object(partition time_axis as period)
trong đó time_axis có thể hoặc hiệu lực hoặc giao dịch.
Khi các toán tửđược áp dụng tới một đối tượng của kiểu T trạng thái hiệ ựu l c G1 và lịch bi u C1 (G1 là ể đơn v cị ủa timestamps hi u l c), nó s a ệ ự ử đổi nh ng ữ
biến thể của đối tượng th i gian ờ để sinh s lố ần c c ự đại trên tr c xác ụ định và sản sinh một kết quả kiểu set<struct(Value: T, VT: period, TT: Period)>. Một phần tử (vres, vtres, ttres) xuất hiện trong tập kết quả, nếu một phương án với cùng giá trị và bằng timestamps xuất hiện trong thể thức cấu chức lại của
đối tượng thời gian.
Cú pháp chuyển đổi được giữ tối thi u gi a th th c ban ể ữ ể ứ đầu và th th c cu i ể ứ ố
đổi từ T tr ng thái hi u lạ ệ ực G1 l ch bi u C1 giao d ch ị ể ị set<struct(Value: T, VT: period, TT: period)> .