SQL:2011 or ISO/IEC 9075:2011 (under the general title "Information technology – Database languages – SQL") is the seventh revision of the ISO (1987) and ANSI (1986) standard for the SQL database query language. It was formally adopted in December 2011. The standard consists of 9 parts which are described in detail in SQL. The next version is SQL:2016
One of the main new features is improved support for temporal databases. Language enhancements for temporal data definition and manipulation include:
- Time Period definitions use two standard table columns as the start and end of a named time period, with closed-open semantics. This provides compatibility with existing data models, application code, and tools
- Definition of application time period tables (elsewhere called valid time tables), using the
- Update and deletion of application time rows with automatic time period splitting
- Temporal primary keys incorporating application time periods with optional non-overlapping constraints via the
- Temporal referential integrity constraints for application time tables
- Application time tables are queried using regular query syntax or using new temporal predicates for time periods including
IMMEDIATELY PRECEDES, and
IMMEDIATELY SUCCEEDS(which are modified versions of Allen’s interval relations)
- Definition of system-versioned tables (elsewhere called transaction time tables), using the
PERIOD FOR SYSTEM_TIMEannotation and
WITH SYSTEM VERSIONINGmodifier. System time periods are maintained automatically. Constraints for system-versioned tables are not required to be temporal and are only enforced on current rows
- Syntax for time-sliced and sequenced queries on system time tables via the
AS OF SYSTEM TIMEand
VERSIONS BETWEEN SYSTEM TIME ... AND ...clauses
- Application time and system versioning can be used together to provide bitemporal tables
Support in DBMS
IBM DB2 version 10 claims to be the first database to have a conforming implementation of this feature in what they call "Time Travel Queries", although they use the alternative syntax
FOR SYSTEM_TIME AS OF.
Oracle Oracle 12c supports temporal functionality in compliance with SQL:2011. Versions 10g and 11g implement the time-sliced queries in what they call Flashback Queries, using the alternative syntax
AS OF TIMESTAMP. Notably both of Oracle's implementations depend on the database transaction log and so only allow temporal queries against recent changes which are still being retained for backup.
Microsoft SQL Server (version 2016) implements temporal tables with
MariaDB 10.3 implements system-versioned tables.
- Paulley (December 16, 2011), "SQL:2011 is published", IA, Sybase, archived from the original (blog) on July 11, 2012
- Zemke, Fred. "What's new in SQL:2011". ACM SIGMOD Record 41.1 (2012): 67-73
- Kulkarni, Krishna, and Jan-Eike Michels. "Temporal features in SQL: 2011". ACM SIGMOD Record 41.3 (2012): 34-43
- "SQL:2011", Catalogue (webshop), ISO.
- Part 1: Framework (SQL/Framework) (draft; PDF), JTC1SC32, 2011-08-06.
- Part 14: XML-Related Specifications (SQL/XML) (draft; PDF), JTC1SC32, 2011-08-06.
- List of further freely available Final Committee Drafts (search), Google.
- Oracle 11g Total Recall Whitepaper (PDF), Oracle, 2009-09-01.