A distinção entre esquema e estado de banco de dados é muito importante. Quando definimos um novo banco de dados, especificamos seu esquema apenas para o SGBD. Nesse ponto, o estado do banco de dados correspondente é o estado vazio, sem dados. Obtemos o estado inicial do banco de dados quando ele é populado ou carregado com os dados iniciais. Daí em diante, toda vez que uma operação de atualização é aplicada, obtemos outro estado do banco de dados.
Em qualquer ponto no tempo, o banco de dados tem um estado atual. O SGBD é parcialmente responsável por garantir que todo estado do banco de dados seja um estado válido — ou seja, um estado que satisfaça a estrutura e as restrições especificadas no esquema. Logo, especificar um esquema correto para o SGBD é extremamente importante, e o esquema deve ser projetado com extremo cuidado
|
As rotinas de backup armazenam todos esses estados e permitem, por meio de restauração, recuperar o banco de dados a um estado válido em uma determinada data e horário desejados. O controle que permite gerenciar os estados de um banco de dados chama-se controle transacional. |
O SGBD armazena as descrições das construções e restrições do esquema — também denominadas metadados — no catálogo do SGBD, de modo que o software do SGBD possa recorrer ao esquema sempre que precisar. O esquema às vezes é chamado de intenção, e um estado do banco de dados é chamado de extensão do esquema.
Embora, como já mencionamos, o esquema não deva mudar com frequência, não é raro que as mudanças, ocasionalmente, precisem ser aplicadas ao esquema, à medida que os requisitos da aplicação mudam. Por exemplo, podemos decidir que outro item de dados precisa ser armazenado para cada registro em um arquivo, como a inclusão de data de nascimento ao esquema ALUNO. Isso é conhecido como evolução do esquema. A maioria dos SGBDs modernos possui algumas operações para evolução de esquema que podem ser aplicadas enquanto o banco de dados está em funcionamento.