Temporal Databases (Managing time varying data) Rob Squire - UK Consulting

advertisement
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?
Transaction (logged) Time
Valid (stated) Time
The 2 dimensions of time
What are temporal databases?
Transaction (logged) Time
Valid (stated) Time
Granularity of the time axis
Chronons can be days,
Seconds, milliseconds
depending on the
application domain
What are temporal databases?
Transaction (logged) Time
Valid (stated) Time
The moving point ‘now’
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 nontemporal 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
Fix Valid Time
Now
SUPPLIER
Demonstration
Fix Valid Time
Timestamp or
Now + 2 days
SUPPLIER
Demonstration
Fix Transaction Time
SUPPLIER
Now
Demonstration
Fix Transaction Time
SUPPLIER
Timestamp or
Now - 2 days
Demonstration
Fix Transaction and Valid Time
SUPPLIER
Demonstration
Demo 01
Generating, populating and querying
TNF
Demonstration
Non Temporal Schema (SP)
TNF Temporal Schema (TSP)
SUPPLIER
SUPPLIER
PART
Example schema taken from
Temporal Data and the Relational Model
by CJ Date, H Darwin, NA Lorentzos (2003)
Demonstration
Non Temporal Schema (SP)
TNF Temporal Schema (TSP)
SUPPLIER
SUPPLIER
Generate
SUPPLIER
PART
SUPPLIER
PART
Demonstration
Record Timestamp 1
03-NOV-05 15.45.23.125990000
Demonstration
Non Temporal Schema (SP)
TNF Temporal Schema (TSP)
SUPPLIER
SUPPLIER
Populate
SUPPLIER
PART
Insert as
Select * from
SUPPLIER
PART
t0(now)
Transaction time = now
DEMO 1
t1(now)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
Demonstration
Fix Valid Time
timestamp1
SUPPLIER
t2(timestamp1)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
Demonstration
Un Fix Valid Time
Now
SUPPLIER
t3 (now)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
Demonstration
Fix Valid Time
Now + 2 days
SUPPLIER
t4 (now+2days)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
delete
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
Demonstration
Un Fix Valid Time
Now
SUPPLIER
t5 (now)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
eovt
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
t6 (now)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
Demonstration
Record Timestamp 2
03-NOV-05 15.57.04.334588000
Demonstration
Fix Valid Time
Now + 30 seconds
SUPPLIER
t7(now+30 seconds)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
delete
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
Demonstration
Un Fix Valid Time
Now
SUPPLIER
t8(now)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
t9(now)
S1
S2
S3
S4
S5
Transaction time = now
DEMO 1
Demonstration
Demo 02
Fixing transaction time
t10(now)
33
S1
S2
S3
S4
S5
Transaction time = now
DEMO 2
t11(now)
45
S1
S2
S3
S4
S5
Transaction time = now
DEMO 2
t12(now)
65
S1
S2
S3
S4
S5
Transaction time = now
DEMO 2
Demonstration
Fix Transaction Time
SUPPLIER
Timestamp 2
t13(now)
171000
S1
S2
S3
S4
S5
Transaction time < t7
DEMO 2
t14(now)
170900
S1
S2
S3
S4
S5
Transaction time < t7
DEMO 2
t15(now)
170800
S1
S2
S3
S4
S5
Transaction time < t7
DEMO 2
Lifetime >2 days
S1
S2
S3
S4
S5
Transaction time < t7
DEMO 2
Demonstration
UnFix Transaction Time
SUPPLIER
Now
t16(now)
Lifetime 1 hour
S1
S2
S3
S4
S5
Transaction time = now
DEMO 2
Demonstration
Demo 03 (part1)
DML not allowed when transaction
time is fixed
Demonstration
Fix Transaction Time
SUPPLIER
Current Timestamp
t17(now)
ORA-20001: S: Cannot
insert while system Y
time is set.
Transaction time <> now DEMO 3
Demonstration
UnFix Transaction Time
SUPPLIER
Now
Demonstration
Demo 03 (part 2)
Updating in TNF
Demonstration
Fix Valid Time
Now – 10 days
SUPPLIER
t18(now-10days)
London
Paris
Paris
London
Athens
Transaction time = now
DEMO 3
Demonstration
Fix Valid Time
Now – 8 days
SUPPLIER
t19(now-8days)
London
Paris
Lyons
Paris
Lyons
London
Athens
Transaction time = now
DEMO 3
Demonstration
Fix Valid Time
Now – 6 days
SUPPLIER
t20(now-6days)
London
Paris
Lyons
Paris
Lyons
London
Athens
Transaction time = now
Corinth
DEMO 3
Demonstration
Fix Valid Time
Now – 4 days
SUPPLIER
t21(now-4days)
Manchester
London
Paris
Lyons
Paris
Lyons
London
Manchester
Athens
Transaction time = now
Corinth
DEMO 3
Demonstration
Un Fix Valid Time
Now
SUPPLIER
t22(now)
Manchester
London
Paris
Lyons
Paris
Lyons
London
Manchester
Athens
Transaction time = now
Corinth
DEMO 3
t18
t19
t20
t21
Manchester
London
Paris
Lyons
Paris
Lyons
London
Manchester
Athens
Transaction time = now
Corinth
DEMO 3
Demonstration
Demo 04 (part1)
Maintaining Referential Integrity
Demonstration
Un Fix Valid Time
Now
SUPPLIER
t23(now)
S
SP
ORA-20001: :Integrity
Constraint violated –
parent key not found
Transaction time = now
DEMO 4 (showing one S relvar)
t23(now)
S
SP
Transaction time = now
DEMO 4 (showing one S relvar)
t23(now)
S
SP
Transaction time = now
DEMO 4 (showing one S relvar)
Demonstration
Demo 04 (part2)
Foreign Key Rules for TNF
Demonstration
Fix Valid Time
Now – 10 days
SUPPLIER
t24(now-10days)
S1
Transaction time = now
DEMO 4 (showing one S relvar)
Demonstration
Un Fix Valid Time
Now
SUPPLIER
t25(now)
S1
Transaction time = now
DEMO 4 (showing one S relvar)
Demonstration
Fix Valid Time
Now – 5 days
SUPPLIER
t26(now-5days)
S1
S1,P1
ORA-20001: :Integrity
Constraint violated –
parent key not found
Transaction time = now
DEMO 4 (showing one S relvar)
t26(now-5days)
S1
delete
restrict
S1,P1
Delete rule on foreign
key constraint SP_S_FK
is RESTRICT
Transaction time = now
DEMO 4 (showing one S relvar)
t26(now-5days)
S1
delete
cascade
S1,P1
Delete rule on foreign
key constraint SP_S_FK
is CASCADE
Transaction time = now
DEMO 4 (showing one S relvar)
Demonstration
Un Fix Valid Time
Now
SUPPLIER
t27(now)
S1
S1,P1
Transaction time = now
DEMO 4 (showing one S relvar)
Demonstration
Demo 05
A more complex example
Demonstration
UnFix Transaction Time
SUPPLIER
Now
Demonstration
Fix Valid Time
Now – 100 days
SUPPLIER
S1,P1
S1,P2
S1,P3
S2,P4
S2,P5
S2,P6
S3,P1
S3,P3
S3,P6
S1,P4
S1,P5
Transaction time = now
DEMO 5 (showing all SP relvars)
S1,P1
S1,P2
S1,P3
S1
S2
S3
S2,P4
S2,P5
S2,P6
S1
S3,P1
S3,P3
QUERY A – Page 74
S3,P6
List of dates each
S1,P4
supplier was able to
S1,P5
supply at least one part
Transaction time = now DEMO 5 (showing all SP relvars)
S1,P1
S1,P2
S1,P3
S1
S1
S1
S2,P4
S2,P5
S2,P6
S2
S3
S2
S3
S3,P1
S3,P3
QUERY B – Page 75
S3,P6
List of dates each
S1,P4
supplier was unable to
S1,P5
supply at least one part
Transaction time = now DEMO 5 (showing all SP relvars)
Demonstration
Demo 06 (part1)
The classic Employee Department
schema example
Demonstration
Un Fix Valid Time
Now
SUPPLIER
Demonstration
UnFix Transaction Time
SUPPLIER
Now
t28(now)
Dept 10, Sales, New York
Transaction time = now
DEMO 6 (showing Dept relvar)
t29(now)
Dept 10, Sales, New York
Dept 20, Finance, New York
Transaction time = now
DEMO 6 (showing Dept relvars)
t30(now)
Dept 10, Sales, New York
Dept 20, Finance, New York
Emp 1, John, Clerk,…,Dept 10
Transaction time = now
DEMO 6 (showing Dept/Emp relvars)
Demonstration
Fix Valid Time
Now + 20 days
SUPPLIER
t31(now+20)
Dept 10, Sales, New York
Dept 20, Finance, New York
Emp 1, John, Clerk,…,Dept 10
Transaction time = now
DEMO 6 (showing Dept/Emp relvars)
Demonstration
Un Fix Valid Time
Now
SUPPLIER
t32(now)
Dept 10, Sales, New York
Dept 20, Finance, New York
delete
restrict
Emp 1, John, Clerk,…,Dept 10
ORA-20001: :Integrity
Constraint violated –
parent key not found
Transaction time = now
DEMO 6 (showing Dept/Emp relvars)
t33(now)
Dept 10, Sales, New York
Dept 20, Finance, New York
delete
cascade
Emp 1, John, Clerk,…,Dept 20
Transaction time = now
DEMO 6 (showing Dept/Emp relvars)
Demonstration
Demo 06 (part2)
Non Transferable foreign keys
t33(now)
Dept 10, Sales, New York
Dept 20, Finance, New York
transferable
Emp 1, John, Clerk,…,Dept 20
Transaction time = now
DEMO 6 (showing Dept/Emp relvars)
t34(now)
Dept 10, Sales, New York
Dept 20, Finance, New York
Non
transferable
Emp 1, John, Clerk,…,Dept 20
ORA-20001: :Illegal
attempt to modify nontransferable foreign
key.
Transaction time = now
DEMO 6 (showing Dept/Emp relvars)
t34(now)
Dept 10, Sales, New York
Dept 20, Finance, New York
Non
transferable
Emp 1, John, Clerk,…,Dept 20
Transaction time = now
DEMO 6 (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
expertservices_uk@oracle.com
www.oracle.com/uk/expert_services
QUESTIONS
ANSWERS
Rob Squire UK Consulting
rob.squire@oracle.com
Related documents
Download