temporal databases (managing time varying data) rob squire - uk consulting

Post on 28-Mar-2015

215 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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• expertservices_uk@oracle.com• www.oracle.com/uk/expert_services

AQ&Q U E S T I O N SQ U E S T I O N S

A N S W E R SA N S W E R S

Rob Squire UK Consultingrob.squire@oracle.com

top related