CS240A: Databases and Knowledge Bases Temporal Applications and SQL:1999 Carlo Zaniolo Department of Computer Science University of California, Los Angeles.

Slides:



Advertisements
Similar presentations
TSQL 2 : QUERY LANGUAGE FOR TEMPORAL DATA CS 224 : Advanced Topics in Data Management.
Advertisements

Customer ManagementCustomer Management Service/Project ManagementService/Project Management Contract ManagementContract Management Parts Inventory ManagementParts.
Office of SA to CNS GeoIntelligence Introduction Data Mining vs Image Mining Image Mining - Issues and Challenges CBIR Image Mining Process Ontology.
1 Efficient Temporal Coalescing Query Support in Relational Database Systems Xin Zhou 1, Carlo Zaniolo 1, Fusheng Wang 2 1 UCLA, 2 Simens Corporate Research.
7 Chapter 7 The University Lab: Conceptual Design Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
Advanced Databases Temporal Databases Dr Theodoros Manavis
M.S. Access Module CAS 133 Russ Erdman. M.S. Access Module Assignment Overview Two options for the unit: All students complete Units A, B and C In class.
91.309/310 Database I & II Prof. Cindy Chen. What is a database? A database is a very large, integrated collection of data. A database management system.
CS240A: Databases and Knowledge Bases Time Ontology and Representations Carlo Zaniolo Department of Computer Science University of California, Los Angeles.
Chapter 3 Database Management
Temporal Databases. Outline Spatial Databases Indexing, Query processing Temporal Databases Spatio-temporal ….
1 SYS366 Week 1 - Lecture 2 How Businesses Work. 2 Today How Businesses Work What is a System Types of Systems The Role of the Systems Analyst The Programmer/Analyst.
CS240A: Databases and Knowledge Bases A Taxonomy of Temporal DBs Carlo Zaniolo Department of Computer Science University of California, Los Angeles.
Ch1: File Systems and Databases Hachim Haddouti
Human resources management systems Human Resource Management Systems: Strategies, Tactics, and Techniques Ceriello, V.R. & Freeman, M.C. (1991) New York:
Lead Black Slide. © 2001 Business & Information Systems 2/e2 Chapter 11 Management Decision Making.
Money Management Skills
CS240A: Databases and Knowledge Bases Time Ontology and Representations Carlo Zaniolo Department of Computer Science University of California, Los Angeles.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Advanced Database Applications Database Indexing and Data Mining CS591-G1 -- Fall 2001 George Kollios Boston University.
Introduction to Database Systems
Payroll Definition Payroll is defined as a method of administrating employees’ salaries in the organizations. The process consists of calculation of salaries.
Data Warehousing: Defined and Its Applications Pete Johnson April 2002.
Chapter 11 Management Decision Making
Introduction to Management Information Systems I Overview of Business Processes.
CS462: Introduction to Database Systems. ©Silberschatz, Korth and Sudarshan1.2Database System Concepts Course Information Instructor  Kyoung-Don (KD)
1 CS222: Principles of Database Management Fall 2010 Professor Chen Li Department of Computer Science University of California, Irvine Notes 01.
Systems analysis and design, 6th edition Dennis, wixom, and roth
Module Title? DBMS Introduction to Database Management System.
Data Warehousing Seminar Chapter 5. Data Warehouse Design Methodology Data Warehousing Lab. HyeYoung Cho.
Introduction to Database Systems Motivation Irvanizam Zamanhuri, M.Sc Computer Science Study Program Syiah Kuala University Website:
ITOM 2308 Introduction to Databases Review Access Database Corporate Case Study ITOM 2308 Class 81.
1Mr.Mohammed Abu Roqyah. Introduction and Conceptual Modeling 2Mr.Mohammed Abu Roqyah.
CS461: Principles and Internals of Database Systems Instructor: Ying Cai Department of Computer Science Iowa State University Office:
1-1 System Development Process System development process – a set of activities, methods, best practices, deliverables, and automated tools that stakeholders.
Daniel J. Abadi · Adam Marcus · Samuel R. Madden ·Kate Hollenbach Presenter: Vishnu Prathish Date: Oct 1 st 2013 CS 848 – Information Integration on the.
Temporal DBMS JD Pack Software Architecture. Introduction  Conventional databases store “now” data  Can store huge amounts of data, but only data in.
1 Information Flows Tracey Murray. 2 THE PURPOSE OF INFORMATION The function of information in an organisation is to serve the needs of each department,
Fushen Wang, XinZhou, Carlo Zaniolo Using XML to Build Efficient Transaction- Time Temporal Database Systems on Relational Databases In Time Center, 2005.
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 2 Information System Building Blocks.
2-1 A Federation of Information Systems. 2-2 Information System Applications.
INTRODUCTION TO MANAGEMENT INFORMATION SYSTEM. INTRODUCTION Now a day, there are many companies, which depend on their computers for their day-to-day.
CHAPTER 2 TYPES OF BUSINESS INFORMATION SYSTEM. INTRODUCTION Information System support business operations by processing data related to business operation.
Database Management Systems CS 420. Topics Outline 1. Introduction 2. HTML Review 3. VBScript 4. Access DBMS 5. Relational Database 6. Design Process.
Position Control-Part 1 February 2010 Presenters: Rick Grunewald Pama Manoranjan.
Database Systems Lecture 1. In this Lecture Course Information Databases and Database Systems Some History The Relational Model.
What is a HRIS? A human resource information system is an integrated system providing information used by HR management in decision making. It allows a.
CSC 370 – Database Systems Introduction Instructor: Alex Thomo.
CS240A: Databases and Knowledge Bases Temporal Databases Carlo Zaniolo Department of Computer Science University of California, Los Angeles.
CS240A: Databases and Knowledge Bases Temporal Applications and SQL Carlo Zaniolo Department of Computer Science University of California, Los Angeles.
Temporal Data Modeling
CS240A: Databases and Knowledge Bases TSQL2 Carlo Zaniolo Department of Computer Science University of California, Los Angeles Notes From Chapter 6 of.
ASET 1 Amity School of Engineering & Technology B. Tech. (CSE/IT), III Semester Database Management Systems Jitendra Rajpurohit.
Classification and Compensation Delegation of “C/C Express” February 10,
CPT-S Advanced Databases 11 Yinghui Wu EME 49.
CS240A: Databases and Knowledge Bases Temporal Databases Carlo Zaniolo Department of Computer Science University of California, Los Angeles.
1Copyright © 2007 by Saunders, an imprint of Elsevier Inc. All rights reserved. Bank Deposits Prepared at the end of each day Prepared at the end of each.
HRIS( Human Resource Information System)
Chapter 1: Introduction
Chapter 1: Introduction
Why did you choose us? To address and provide a solution to the many problems associated with your current manual filing system -Problems include: -Lack.
EzyAccounting An Accounting Software An Accounting Software By: Delicate Software Solutions Dubai, Manage Your Business… Not Just Accounts.
9/22/2018.
Technology for School Leadership
Chapter 7 e-Business Systems.
Temporal Databases.
February 2011 Presenters: Rick Grunewald Pama Manoranjan
Terms: Data: Database: Database Management System: INTRODUCTION
CS240A: Databases and Knowledge Bases TSQL2
CS240A: Databases and Knowledge Bases A Taxonomy of Temporal DBs
Presentation transcript:

CS240A: Databases and Knowledge Bases Temporal Applications and SQL:1999 Carlo Zaniolo Department of Computer Science University of California, Los Angeles February 2003

Temporal Databases: Overview  Many applications  The problem is harder than what you think  Support for time in SQL: the good and the bad  A time ontology  Many approaches proposed  TSQL2  The physical level: efficient storage and indexing techniques.

An Introduction to Temporal Databases  Applications abound  A case study using SQL: Queries on time­varying data are hard to express in SQL.  Temporal databases provide built­in support for storing and querying time-varying information.

Applications Abound: Examples  Academic: Transcripts record courses taken in previous and the current semester or term and grades for previous courses  Accounting: What bills were sent out and when, what payments were received and when?  Delinquent accounts, cash flow over time  Money­management software such as Quickencan show e.g., account balance over time.  Budgets: Previous and projected budgets, multi­ quarter or multi­year budgets

Temporal DB Applications (cont.)  Data Warehousing: Historical trend analysis for decision support  Financial: Stock market data  Audit: why were financial decisions made, and with what information available?  GIS: Geographic Information Systems ()  Land use over time: boundary of parcels changeover time, as parcels get partitioned and merged.  Title searches  Insurance: Which policy was in effect at each point in time, and what time periods did that policy cover?

Temporal DB Applications (cont.)  Medical records: Patient records, drug regimes, lab tests.Tracking course of disease  Payroll: Past employees, employee salary history, salaries for future months, records of withholdingrequested by employees  Capacity planning for roads and utilities. Configuring new routes, ensuring high utilization  Project scheduling: Milestones, task assignments  Reservation systems: airlines, hotels, trains.  Scientific: Timestamping satellite images. Dating archeological finds

Temporal DBs Applications: Conclusion  It is difficult to identify applications that do not involve the management of temporal data.  These applications would benefit from built­in temporal support in the DBMS. Main benefits:  More efficient application development  Potential increase in performance

Reviewing the Situation  The importance of temporal applications has motivated much research on temporal DBs: but no satisfactory solution has been found yet:  SQL3 does not support temporal queries  Temporal DBs remain an open research problem.  The problem is much more difficult than it appears at first: we have become so familiar with the time domain that we tend to overlook its intrinsic complexity.  Some of the solutions proposed by researchers lack ease of use and amenability to efficient implementation

Case Study  University of Arizona's Office of Appointed Personnel has some information in a database. Employee(Name, Salary, Title)  Finding an employee's salary is easy.  The OAP wishes to add the date of birth Employee(Name, Salary, Title, DateofBirth DATE) SELECT Salary, DateofBirth FROM Employee WHERE Name = 'Bob'

Converting to a Temporal Database  Now the OAP wishes to computerize the employment history.  Adding validity periods to tuples: Employee (Name, Salary, Title, DateofBirth, Start DATE, Stop DATE)

Converting to a Temporal Database Example Employee (Name, Salary, Title, DateofBirth,Start DATE, Stop DATE) NameSalaryTitleDateofBirthStartStop Bob AssistantProvost 1945­04­ ­01­ ­06­01 Bob AssistantProvost 1945­04­ ­06­ ­10­01 Bob Provost 1945­04­ ­10­ ­02­01 Bob Professor 1945­04­ ­02­ ­01­01

Extracting the Salary  Find the employee's salary at a given time: e.g. the current one: SELECT Salary FROM Employee WHERE Name = 'Bob‘ AND Start <= CURRENT_TIMESTAMP AND CURRENT_TIMESTAMP <= Stop Instead of CURRENT_TIMESTAMP we could have given any time stamp or date

Distributing the Salary History  OAP wants to distribute to all employees their salary history.  Output: For each person, maximal intervals at each salary  Employee could have arbitrarily many title changes between salary changes. Name Salary Start Stop Bob ­01­ ­06­01 Bob ­06­ ­01­01

Extracting the Salary, cont. Alternative 1: Give the user a printout of Salary and Title information, and have user determine when his/her salary changed. Alternative 2: Use SQL as much as possible. Find those intervals that overlap or are adjacent and thus should be merged.

Bob’s Salary History in SQL CREATE TABLE Temp(Salary, Start, Stop) AS SELECT Salary, Start, Stop FROM Employee WHERE Name = 'Bob'; repeat UPDATE Temp AS T1 SET (T1.Stop) = (SELECT MAX(T2.Stop) FROM Temp AS T2 WHERE T1.Salary = T2.Salary AND T1.Start = T2.Start AND T1.Stop = T2.Start AND T1.Stop < T2.Stop) until no tuples updated;

Example  Initial table  After one pass  After two passes

Salary History (cont.)  Intervals that are not maximal must be deleted DELETE FROM Temp T1 WHERE EXISTS (SELECT * FROM Temp AS T2 WHERE T1.Salary = T2.Salary AND ( (T1.Start > T2.Start AND T1.Stop = T2.Start AND T1.Stop < T2.Stop) ) The loop is executed lgN times in the worst case, where N is the number of tuples in a chain of overlapping or adjacent, value­equivalent tuples. Then delete extraneous, non­ maximal intervals.

Alternative 3 : Entirely in SQL CREATE TABLE Temp(Salary, Start, Stop) AS SELECT Salary, Start, Stop FROM Employee WHERE Name = 'Bob'; SELECT DISTINCT F.Salary, F.Start, L.Stop FROM Temp AS F, Temp AS L WHERE F.Start < L.Stop AND F.Salary = L.Salary AND NOT EXISTS (SELECT * FROM Temp AS M WHERE M.Salary = F.Salary AND F.Start < M.Start AND M.Start < L.Stop AND NOT EXISTS (SELECT * FROM Temp AS T1 WHERE T1.Salary = F.Salary AND T1.Start < M.Start AND M.Start <= T1.Stop)) AND NOT EXISTS (SELECT * FROM Temp AS T2 WHERE T2.Salary = F.Salary AND ( (T2.Start < F.Start AND F.Start <= T2.Stop) OR (T2.Start < L.Stop AND L.Stop < T2.Stop)))

Alternative 4: Using More Procedural Code  Use SQL only to open a cursor on the table  Maintain a linked list of intervals, each with a salary; Initialize this linked list to empty; DECLARE emp_cursor CURSOR FOR SELECT Salary, Start, Stop FROM Employee; OPEN emp_cursor; loop: FETCH emp_cursor INTO :salary,:start,:stop; if no data returned then go to finished; find position in linked list to insert this information; go to loop; finished: CLOSE emp_cursor; iterate through linked list, printing out dates and salaries

A More Drastic Alternatives Reorganize the schema  Separate Salary, Title, and DateofBirth information: Employee1 (Name, Salary, Start DATE, Stop DATE) Employee2 (Name, Title, Start DATE, S top DATE)  Getting the salary information is now easy: SELECT Salary, Start, Stop FROM Employee1 WHERE Name = 'Bob‘  But what if we want a table with both salary and title?

Temporal Joins NameSalaryStartStop Bob ­01­011993­06­01 Bob ­06­011995­01­01 NameTitleStartStop BobAssistantProvost1993­01­011993­10­01 BobProvost1993­10­011994­02­01 BobFullProfessor1994­02­011995­01­01 NameSalaryTitleStartStop Bob60000AssistantProvost1993­01­011993­06­01 Bob70000AssistantProvost1993­06­011993­10­01 Bob70000Provost1993­10­011994­02­01 Bob70000FullProfessor1994­02­011995­01­01 Their Temporal Join: Employee 1 : Employee 2 :

Temporal Join in SQL SELECT E1.Name, Salary, Title, E1.Start, E1.Stop FROM Employee1 AS E1, Employee2 AS E2 WHERE E1.Name=E2.Name AND E2.Start <= E1.Start AND E1.Stop <= E2.Stop UNION ALL SELECT E1.Name, Salary, Title, E1.Start, E2.Stop FROM Employee1 AS E1, Employee2 AS E2 WHERE E1.Name = E2.Name AND E1.Start > E2.Start AND E2.Stop< E1.Stop AND E1.Start < E2.Stop UNION ALL SELECT E1.Name, Salary, Title E2.Start, E1.St FROM Employee1 AS E1, Employee2 AS E2 WHERE E1.Name = E2.Name AND E2.Start > E1.Start AND E1.Stop <= E2.Stop AND E2.Start < E1.Stop UNION ALL SELECT E1.Name, Salary, Title E2.Start, E2.Stop FROM Employee1 AS E1, Employee2 AS E2 WHERE E1.Name = E2 Name AND E2.Start => E1.Start AND E2.Stop <= E1.Stop AND NOT (E1.Start = E2.Start AND E1.Stop = E2.Stop)

Extracting the Salary History in TSQL2 SELECT Salary FROM Employee WHERE Name = 'Bob‘ There is no explicit mention of time in the query. By default the system returns the coalesced time history

Temporal Joins in TSQL2 SELECT E1.Name, Salary, Title FROM Employee1 AS E1, Employee2 AS E2 WHERE E1.Name = E2.Name

Summary  Coalescing and temporal joins are very difficult to express in SQL.  Solutions proposed …  Special operators for period-based representation  TSQL2: avoid explicit operations on periods (implicit model)  Point-Based Representation  Time stamp attributes rather than tuples (difficult on tables but not on structured XML documents)  Others,including combinations of above (more than 40 counted)

Operators on Periods  A new aggregate called coalesce  An overlap operator for joins: SELECT E1.Name, Salary, Title FROM Employee1 AS E1, Employee2 AS E2 WHERE E1.Name = E2.Name AND overlap(E1.Start,E1.End, E2.Start, E2.End ) Definition of overlap

Allen Operators on Intervals  Overlap,  Contains,  Meets,  Precedes, follows.  Contains is also applicable to sets of intervals.

Point-Based Model Employee1 (Name, Sal, Day ) Bob ­01­01 … Bob ­05­31 Bob ­05­31 … Bob ­12­31 Internally we might still use the period-based representation for point- based and TSQL2: NameSalaryStartStop Bob ­01­011993­06­01 Bob ­06­011995­01­01

Queries in Point Based  No coalescing needed in the query: e.g., project out salary: SELECT E1.Name, E1.Day FROM Employee1 AS E1  Temporal Joins are simple: SELECT E1.Name, Sal, Title FROM Employee1 AS E1, Employee2 AS E2 WHERE E1.Name = E2.Name AND E1.Day=E2.Day

Conclusions  Several alternatives, in terms of data model and SQL extensions to be used,  Internal representation often must be divorced from external one—adding to alternatives and complexity  New temporal clustering and indexing schemes should be used for maximum performance.