Como usar o sql: momentos e períodos de 2011

Embora versões do padrão SQL antes de SQL: 2011 prevista ENCONTRO, TEMPO, TIMESTAMP, e INTERVALO tipos de dados, eles não abordou a idéia de um período do tempo com uma hora de início definido e um tempo final definido.

Uma forma de abordar esta necessidade é para definir um novo PERÍODO tipo de dados. SQL: 2011 no entanto, não faz isso. Para introduzir um novo tipo de dados em SQL nesta fase final no seu desenvolvimento iria causar estragos com o ecossistema que construiu-se em torno de SQL. cirurgia de grande porte para praticamente todos os produtos de banco de dados existentes seria necessário para adicionar um novo tipo de dados.

SQL: 2011 resolve o problema adicionando definições de época como metadados de tabelas. Uma definição período é um componente tabela chamada, a identificação de um par de colunas que capturar o início do período eo tempo final do período. o CRIAR A TABELA e ALTERAR A TABELA declarações utilizadas para criar e modificar tabelas foram atualizados com a nova sintaxe para criar ou destruir os períodos criados por estas novas definições de época.

UMA PERÍODO é determinada por duas colunas: a coluna de partida e uma coluna final. Estas colunas são convencionais, assim como as colunas dos tipos de dados data existentes, cada um com seu próprio nome. Como mencionado anteriormente, uma definição período é um componente tabela chamada. Ele ocupa o mesmo espaço de nomes como nomes de coluna, por isso não deve duplicar qualquer nome de coluna existente.

SQL segue um modelo fechado-aberto para períodos, o que significa que um período inclui o tempo de início, mas não o tempo do fim. Para qualquer linha da tabela, um tempo final do período deve ser maior do que o seu horário de início. Esta é uma restrição que é imposta pelo DBMS.

Há duas dimensões de tempo que são importantes quando se lida com dados temporais:

Tempo válido é o período de tempo durante o qual uma linha em uma tabela corretamente reflete a realidade.



  • tempo de transação é o período de tempo durante o qual uma linha tem o compromisso de ou gravado em um banco de dados.

  • O tempo válido e o tempo de transação para uma linha em uma tabela não precisa ser o mesmo. Por exemplo, em um banco de dados de negócios que registra o período durante o qual um contrato está em vigor, as informações sobre o contrato pode ser (e provavelmente é) inserida antes da hora de início do contrato.

    Em SQL: 2011, mesas separadas podem ser criadas e mantidas para acomodar os dois tipos diferentes de tempo, ou um único, mesa bitemporal pode servir ao propósito. informações tempo de transação é mantido em tabelas de versão do sistema, que contêm o período de sistema de tempo, denotado pela palavra-chave SYSTEM_TIME.

    informações em tempo válido, por outro lado, é mantido em tabelas que contêm um período de tempo de aplicação. Você pode dar um período de tempo de aplicação o nome que quiser, desde que o nome não é já utilizado para outra coisa. Você está autorizado a definir no máximo, um período de sistema de tempo e um período de tempo de aplicação.

    Video: SQL e Banco de Dados para Iniciantes

    Embora o suporte de dados temporal em SQL está sendo introduzida pela primeira vez no SQL: 2011, as pessoas tiveram que lidar com dados temporais muito antes de as construções temporais de SQL: 2011 foram incluídos em quaisquer produtos de banco de dados. Este foi tipicamente feito definindo duas colunas da tabela, uma para a data e hora de início e o outro para a data e hora final.

    O fato de que o SQL: 2011 não define um novo PERÍODO tipo de dados, mas sim usa definições de época como metadados, significa que as tabelas existentes com tais colunas de início e fim pode ser facilmente atualizado para incorporar a nova capacidade. A lógica para fornecer informações período pode ser removido a partir de aplicações existentes, simplificando-os, acelerá-los, e torná-los mais confiável.


    Publicações relacionadas