Date post: | 28-Mar-2015 |
Category: |
Documents |
Upload: | arianna-coughlin |
View: | 215 times |
Download: | 2 times |
Temporal Databases(Managing time varying data)
Rob Squire - UK Consulting
Temporal Databases(Managing time varying data)
Rob Squire - UK Consulting
Temporal Databases
Am I a good guy or a bad guy?
Temporal Databases
Interval Data Type (Timestamps) 6NF (horizontal and vertical
decomposition aka TNF) Pack/UnPack (Collapsed form) No ‘special’ attributes SQL with no extensions
Temporal Databases
What are temporal databases? What is time varying data? Implementation Approaches Why now? Demonstration Questions and Answers
Temporal Databases
What are temporal databases? What is time varying data? Implementation Approaches Why now? Demonstration Questions and Answers
What are temporal databases?
Non Temporal– store only a single state of the real world,
usually the most recent state– classified as snapshot databases– application developers and database designers
need to code for time varying data requirements eg history tables, forecast reports etc
What are temporal databases?
Temporal– stores upto two dimensions of time i.e VALID
(stated) time and TRANSACTION (logged) time
– Classified as historical, rollback or bi-temporal
– No need for application developers or database designers to code for time varying data requirements i.e time is inherently supported
What are temporal databases?
Valid (stated) Time
Tra
nsa
ctio
n (
log
ged
) T
ime
The 2 dimensions of time
What are temporal databases?
Valid (stated) Time
Tra
nsa
ctio
n (
log
ged
) T
ime
Granularity of the time axis
Chronons can be days, Seconds, milliseconds depending on the application domain
What are temporal databases?
The moving point ‘now’
Valid (stated) Time
Tra
nsa
ctio
n (
log
ged
) T
ime
What are temporal databases?
We can use these two dimensions to distinguish between different forms of temporal database
A rollback database stores data with respect to transaction time e.g. Oracle 10g has flashback query
A historical database stores data with respect to valid time
A bi-temporal database stores data with respect to both valid time and transaction time.
Temporal Databases
What are temporal databases? What is time varying data? Implementation Approaches Why now? Demonstration Questions and Answers
What is time varying data?
You want a reprint of a customer's invoice of August 12, 1999.
What was the stock value of the Oracle shares on June 15th, last year?
What was the lowest stock quantity for every product last year? How much money will you save, if you keep the stocks at those levels?
Where do you enter the new address of this customer as from the first of next month?
What will your profits be next month, given the price list and cost prices by then?
What is time varying data?
And combinations of the situations can be very complex
You offered these goods to the customer on January 10 this year. What were the billing prices and what was his discount level when you sent him this offer? He has not accepted yet. Is it smart to offer him an actualized discount now?
Given the final settlements for all the insurance claims of the last three years, what will be the minimum insurance premium your customers have to pay next year?
What is time varying data?
Examples of application domains dealing with time varying data:
Financial Apps (e.g. history of stock market data) Insurance Apps (e.g. when were the policies in effect) Reservation Systems (e.g. when is which room in a
hotel booked) Medical Information Management Systems (e.g.
patient records) Decision Support Systems (e.g. planning future
contigencies) CRM applications (eg customer history / future) HR applications (e.g Date tracked positions in
hierarchies)
What is time varying data?
In fact, time varying data has ALWAYS been in business requirements – but existing technology does not deal with it elegantly!
What is time varying data?
Ask yourself two questions
Does your business need to know the situation as it was known at a particular date (e.g. the reprint of the customer's invoice)?
Does your business use information that was effective in the past or will become effective in the future (e.g. the new address of the customer)?
What is time varying data?
If you answer "Yes" on one or both of these questions then your data varies over time and you could consider adopting a temporal approach
Temporal Databases
What are temporal databases? What is time varying data? Implementation Approaches Why now? Demonstration Questions and Answers
Implementation Approaches
Several implementation strategies are available
Use a date type supplied in a non-temporal DBMS and build temporal support into applications (traditional)
Implement an abstract data type for time (object oriented)
Provide a program layer (api) above a non-temporal data model (stratum)
Implementation Approaches
Generalise a non-temporal data model into a temporal data model (Temporal Normal Form)
Re-design core database kernel (Temporal Database)
Implementation Approaches
Q: Why don’t temporal databases already exist?
A: Dealing with time-varying data is complex
Implementation Approaches
For example: Avoiding duplicates requires complex logic. Avoiding gaps in a time-varying data
requires complex logic. A simple join when applied to time-varying
data turns into many lines of code consisting of multiple FROM and WHERE clauses.
A simple update translates into several modification statements requiring many lines of code.
Temporal Databases
What are temporal databases? What is time varying data? Implementation Approaches Why now? Demonstration Questions and Answers
Why now? Plummeting cost of storage Widespread adoption of warehouse
technology has led to an increasing interest in temporal databases
The idea of maintaining and processing historical data has become not just a goal but a reality for many organisations
Why now?
DW vendors are themselves faced with temporal problems (slowly changing time dimension) and have begun to feel the need for a new solution
DB Vendors considering adding temporal support to existing product (Oracle flashback query) and applications (Oracle HR date tracking/payroll)
SQL bodies are beginning to think about adding syntax to the standard to support temporal features (SQL3, TSQL)
Temporal Databases
What are temporal databases? What is time varying data? Implementation Approaches Why now? Demonstration Questions and Answers
Demonstration
Temporal Normal Form (approach 4) Generate TNF for supplier, supplier part
schema Show select, insert, update and delete
operations Show Referential Integrity With a Temporal Data Dictionary Using simple standard SQL with no
extensions
Demonstration
SUPPLIER
Fix Valid Time Now
Demonstration
SUPPLIER
Fix Valid Time Timestamp or Now + 2 days
Demonstration
SUPPLIER
Fix Transaction Time
Now
Demonstration
SUPPLIER
Fix Transaction Time
Timestamp orNow - 2 days
Demonstration
Fix Transaction and Valid Time
SUPPLIER
Demonstration
Demo 01Generating, populating and querying TNF
Demonstration
SUPPLIER
SUPPLIERPART
Non Temporal Schema (SP) TNF Temporal Schema (TSP)
Example schema taken fromTemporal Data and the Relational Modelby CJ Date, H Darwin, NA Lorentzos (2003)
Demonstration
SUPPLIER
SUPPLIERPART
Non Temporal Schema (SP) TNF Temporal Schema (TSP)
SUPPLIER
SUPPLIERPART
Generate
Demonstration
Record Timestamp 1
03-NOV-05 15.45.23.125990000
Demonstration
SUPPLIER
SUPPLIERPART
Non Temporal Schema (SP) TNF Temporal Schema (TSP)
SUPPLIER
SUPPLIERPART
Populate
Insert as Select * from
DEMO 1
t0(now)
Transaction time = now
DEMO 1
t1(now)
S1
S2
S4
S3
S5
Transaction time = now
Demonstration
SUPPLIER
Fix Valid Time timestamp1
DEMO 1
t2(timestamp1)
S1
S2
S4
S3
S5
Transaction time = now
Demonstration
Un Fix Valid Time
SUPPLIER
Now
DEMO 1
t3 (now)
S1
S2
S4
S3
S5
Transaction time = now
Demonstration
SUPPLIER
Fix Valid Time Now + 2 days
DEMO 1
t4 (now+2days)
S1
S2
S4
S3
S5
Transaction time = now
DEMO 1
delete
S1
S2
S4
S3
S5
Transaction time = now
Demonstration
Un Fix Valid Time
SUPPLIER
Now
DEMO 1
t5 (now)
S1
S2
S4
S3
S5
Transaction time = now
DEMO 1
S1
S2
S4
S3
S5
eovt
Transaction time = now
DEMO 1
t6 (now)
S1
S2
S4
S3
S5
Transaction time = now
Demonstration
Record Timestamp 2
03-NOV-05 15.57.04.334588000
Demonstration
SUPPLIER
Fix Valid Time Now + 30 seconds
DEMO 1
t7(now+30 seconds)
S2
S4
S3
S5
S1
Transaction time = now
DEMO 1
delete
S1
S2
S4
S3
S5
Transaction time = now
Demonstration
Un Fix Valid Time
SUPPLIER
Now
DEMO 1
t8(now)
S1
S2
S4
S3
S5
Transaction time = now
DEMO 1
t9(now)
S1
S2
S4
S3
S5
Transaction time = now
Demonstration
Demo 02Fixing transaction time
DEMO 2
t10(now)
S1
S2
S4
S3
S5
33
Transaction time = now
DEMO 2
t11(now)
S1
S2
S4
S3
S5
45
Transaction time = now
DEMO 2
t12(now)
S1
S2
S4
S3
S5
65
Transaction time = now
Demonstration
SUPPLIER
Fix Transaction Time
Timestamp 2
DEMO 2
S2
S4
S3
S5
S1
171000t13(now)
Transaction time < t7
DEMO 2
S2
S4
S3
S5
S1
170900t14(now)
Transaction time < t7
DEMO 2
S2
S4
S3
S5
S1
170800t15(now)
Transaction time < t7
DEMO 2
S2
S4
S3
S5
S1
Lifetime >2 days
Transaction time < t7
Demonstration
SUPPLIER
UnFix Transaction Time
Now
DEMO 2
S2
S4
S3
S5
S1
Lifetime 1 hour
Transaction time = now
t16(now)
Demonstration
Demo 03 (part1)DML not allowed when transaction time is fixed
Demonstration
SUPPLIER
Fix Transaction Time
Current Timestamp
DEMO 3
t17(now)
Transaction time <> now
ORA-20001: S: Cannot insert while system Y time is set.
Demonstration
SUPPLIER
UnFix Transaction Time
Now
Demonstration
Demo 03 (part 2)Updating in TNF
Demonstration
SUPPLIER
Fix Valid Time Now – 10 days
DEMO 3
t18(now-10days)
London
Paris
London
Paris
Athens
Transaction time = now
Demonstration
SUPPLIER
Fix Valid Time Now – 8 days
DEMO 3
t19(now-8days)
London
Lyons
London
Athens
Transaction time = now
Paris
Paris Lyons
Demonstration
SUPPLIER
Fix Valid Time Now – 6 days
DEMO 3
t20(now-6days)
London
Lyons
London
Corinth
Transaction time = now
Paris
Paris Lyons
Athens
Demonstration
SUPPLIER
Fix Valid Time Now – 4 days
DEMO 3
t21(now-4days)
Lyons
Manchester
Corinth
Transaction time = now
Paris
Paris Lyons
Athens
London
London Manchester
Demonstration
Un Fix Valid Time
SUPPLIER
Now
DEMO 3
t22(now)
Lyons
Manchester
Corinth
Transaction time = now
Paris
Paris Lyons
Athens
London
London Manchester
DEMO 3
Lyons
Manchester
Corinth
Transaction time = now
Paris
Paris Lyons
Athens
London
London Manchester
t18 t19 t20 t21
Demonstration
Demo 04 (part1)Maintaining Referential Integrity
Demonstration
Un Fix Valid Time
SUPPLIER
Now
DEMO 4
S
Transaction time = now
SP
ORA-20001: :Integrity Constraint violated – parent key not found
(showing one S relvar)
t23(now)
DEMO 4
S
Transaction time = now
SP
(showing one S relvar)
t23(now)
DEMO 4
S
Transaction time = now
SP
(showing one S relvar)
t23(now)
Demonstration
Demo 04 (part2)Foreign Key Rules for TNF
Demonstration
SUPPLIER
Fix Valid Time Now – 10 days
DEMO 4
S1
Transaction time = now (showing one S relvar)
t24(now-10days)
Demonstration
Un Fix Valid Time
SUPPLIER
Now
DEMO 4
S1
Transaction time = now (showing one S relvar)
t25(now)
Demonstration
SUPPLIER
Fix Valid Time Now – 5 days
DEMO 4
S1
Transaction time = now (showing one S relvar)
t26(now-5days)
ORA-20001: :Integrity Constraint violated – parent key not found
S1,P1
DEMO 4
S1
Transaction time = now (showing one S relvar)
t26(now-5days)
Delete rule on foreign key constraint SP_S_FK is RESTRICT
S1,P1
deleterestrict
DEMO 4
S1
Transaction time = now (showing one S relvar)
t26(now-5days)
Delete rule on foreign key constraint SP_S_FK is CASCADE
S1,P1
deletecascade
Demonstration
Un Fix Valid Time
SUPPLIER
Now
DEMO 4
S1
Transaction time = now (showing one S relvar)
t27(now)
S1,P1
Demonstration
Demo 05A more complex example
Demonstration
SUPPLIER
UnFix Transaction Time
Now
Demonstration
SUPPLIER
Fix Valid Time Now – 100 days
DEMO 5
S1,P2
Transaction time = now (showing all SP relvars)
S1,P3
S2,P4
S2,P5
S2,P6
S3,P1
S3,P3
S3,P6
S1,P4
S1,P5
S1,P1
DEMO 5
S1,P2
Transaction time = now (showing all SP relvars)
S1,P3
S2,P4
S2,P5
S2,P6
S3,P1
S3,P3
S3,P6
S1,P4
S1,P5
S1,P1
QUERY A – Page 74
List of dates each supplier was able to supply at least one part
S1 S1
S3
S2
DEMO 5Transaction time = now (showing all SP relvars)
S2,P4
S2,P5
S2,P6
S3,P1
S3,P3
S3,P6
S1,P4
S1,P5
QUERY B – Page 75
List of dates each supplier was unable to supply at least one part
S1,P2
S1,P3
S1,P1
S1 S1 S1
S2S2
S3 S3
Demonstration
Demo 06 (part1)The classic Employee Department schema example
Demonstration
Un Fix Valid Time
SUPPLIER
Now
Demonstration
SUPPLIER
UnFix Transaction Time
Now
DEMO 6
Dept 10, Sales, New York
Transaction time = now (showing Dept relvar)
t28(now)
DEMO 6
Dept 10, Sales, New York
Transaction time = now (showing Dept relvars)
Dept 20, Finance, New York
t29(now)
DEMO 6
Dept 10, Sales, New York
Transaction time = now (showing Dept/Emp relvars)
Dept 20, Finance, New York
t30(now)
Emp 1, John, Clerk,…,Dept 10
Demonstration
SUPPLIER
Fix Valid Time Now + 20 days
DEMO 6
Dept 10, Sales, New York
Transaction time = now
Dept 20, Finance, New York
t31(now+20)
Emp 1, John, Clerk,…,Dept 10
(showing Dept/Emp relvars)
Demonstration
Un Fix Valid Time
SUPPLIER
Now
DEMO 6
Dept 10, Sales, New York
Transaction time = now
Dept 20, Finance, New York
t32(now)
Emp 1, John, Clerk,…,Dept 10
ORA-20001: :Integrity Constraint violated – parent key not found
deleterestrict
(showing Dept/Emp relvars)
DEMO 6
Dept 10, Sales, New York
Transaction time = now
Dept 20, Finance, New York
t33(now)
Emp 1, John, Clerk,…,Dept 20
deletecascade
(showing Dept/Emp relvars)
Demonstration
Demo 06 (part2)Non Transferable foreign keys
DEMO 6
Dept 10, Sales, New York
Transaction time = now
Dept 20, Finance, New York
t33(now)
Emp 1, John, Clerk,…,Dept 20
transferable
(showing Dept/Emp relvars)
DEMO 6
Dept 10, Sales, New York
Transaction time = now
Dept 20, Finance, New York
t34(now)
Emp 1, John, Clerk,…,Dept 20
Nontransferable
ORA-20001: :Illegal attempt to modify non-transferable foreign key.
(showing Dept/Emp relvars)
DEMO 6
Dept 10, Sales, New York
Transaction time = now
Dept 20, Finance, New York
t34(now)
Emp 1, John, Clerk,…,Dept 20
Nontransferable
(showing Dept/Emp relvars)
Demonstration
You have just seen A practical implementation of TNF Using Standard SQL Where existing data modelling techniques
for current view apply Providing bi temporal support Can underpin any application development
platform (forms, java, html etc)
Demonstration
Next Steps
• Gather feedback and responses on TNF from Oracle user organisations
• Contact Oracle Expert Services • 0870 550 3060• [email protected]• www.oracle.com/uk/expert_services