SQL: 2011 - SQL:2011

SQL: 2011 ou ISO / IEC 9075: 2011 (sob o título geral "Tecnologia da informação - linguagens de banco de dados - SQL") é a sétima revisão do padrão ISO (1987) e ANSI (1986) para a linguagem de consulta de banco de dados SQL . Foi formalmente adotado em dezembro de 2011. O padrão consiste em 9 partes que são descritas em detalhes no SQL . A próxima versão é SQL: 2016 .

Novas características

Um dos principais novos recursos é o suporte aprimorado para bancos de dados temporais . Os aprimoramentos de linguagem para definição e manipulação de dados temporais incluem:

  • As definições de período de tempo usam duas colunas de tabela padrão como o início e o fim de um período de tempo nomeado, com semântica fechada-aberta. Isso fornece compatibilidade com modelos de dados, código de aplicativo e ferramentas existentes
  • Definição de tabelas de período de aplicação (em outro lugar chamadas tabelas de tempo válidas ), usando a PERIOD FORanotação
  • Atualização e exclusão de linhas de tempo de aplicativo com divisão automática de período de tempo
  • Chaves primárias temporais que incorporam períodos de tempo de aplicação com restrições opcionais não sobrepostas por meio da WITHOUT OVERLAPScláusula
  • Restrições de integridade referencial temporal para tabelas de tempo de aplicação
  • Tabelas de tempo de aplicação são consultados usando a sintaxe de consulta regular ou usando novos predicados temporais para períodos de tempo, incluindo CONTAINS, OVERLAPS, EQUALS, PRECEDES, SUCCEEDS, IMMEDIATELY PRECEDES, e IMMEDIATELY SUCCEEDS(que são versões modificadas as relações de intervalo de Allen )
  • Definição de tabelas com versão do sistema (também chamadas de tabelas de tempo de transação ), usando a PERIOD FOR SYSTEM_TIMEanotação e o WITH SYSTEM VERSIONINGmodificador. Os períodos de tempo do sistema são mantidos automaticamente. As restrições para tabelas com versão do sistema não precisam ser temporais e são aplicadas apenas nas linhas atuais
  • Sintaxe para consultas em fatias de tempo e sequenciadas nas tabelas de tempo do sistema por meio das cláusulas AS OF SYSTEM TIMEeVERSIONS BETWEEN SYSTEM TIME ... AND ...
  • O tempo do aplicativo e o controle de versão do sistema podem ser usados ​​juntos para fornecer tabelas bitemporais

Suporte em DBMS

SAP HANA 2.0 SP03 oferece suporte a tabelas com versão do sistema usando a sintaxe de seleção padrão FOR SYSTEM_TIME AS OF '<timestamp1>' SAP HANA 2.0 SP04 adiciona suporte (parcial) para controle de versão de tempo de aplicativo

O IBM DB2 versão 10 afirma ser o primeiro banco de dados a ter uma implementação adequada desse recurso no que eles chamam de "Consultas de viagem no tempo", embora usem a sintaxe alternativa FOR SYSTEM_TIME AS OF.

O Oracle Oracle 12c oferece suporte à funcionalidade temporal em conformidade com SQL: 2011. As versões 10g e 11g implementam as consultas em fatias de tempo no que chamam de Flashback Queries , usando a sintaxe alternativa AS OF TIMESTAMP. Notavelmente, ambas as implementações do Oracle dependem do log de transações do banco de dados e, portanto, só permitem consultas temporais em relação às alterações recentes que ainda estão sendo retidas para backup.

Microsoft SQL Server (versão 2016) implementa tabelas temporais com SYSTEM_VERSIONING.

MariaDB 10.3 implementa tabelas com versão do sistema.

O PostgreSQL requer a instalação da extensão temporal_tables . A extensão de tabelas temporais suporta apenas as tabelas temporais de período do sistema.

Ebean ORM suporta consultas de histórico AS OF e VERSIONS BETWEEN em Postgres e MySql usando gatilhos, tabelas de histórico e visualizações .

O CockroachDB oferece suporte a AS OF SYSTEM TIMEconsultas desde pelo menos a v1.0.7 .

Veja também

Referências

links externos