terça-feira, 3 de dezembro de 2019

Constraint no Banco de Dados





Vamos falar sobre algumas propriedades dos bancos de dados no que tange a sua confiabilidade.
As dados contidos nos banco de dados devem seguir algumas regras para que eles tenham alguma utilidade para um sistema. Todo os SGBDs ( Sistema de Gerenciamento de Banco de Dados) possuem uma série de restrições para evitar que os dados fiquem “bagunçados” nas tabelas, vou mostrá-los abaixo:

  • Primary key 
  • Foreing key
  • Unique
  • Check 
  • Valor default
  • Not null


Primary key


 A Primary key ( chave primária) garante que nas nossas tabalas não tenham números sequenciais duplicados, pode-se inserir manualmente, nesse caso é preciso se atentar a pegar o último e acrescentar mais 1 ou deixar o banco gerenciar. A chave primária deve ser um atributo único na tabela, e não é recomendado usar números externos, isto é que não sejam controlados pela instituição, por exemplo um sistema de universidade utilizar o CPF ao invés da matrícula, caso haja mudança na composição do CPF, implicaria em mudar todas as chaves do sistema ocasionando problemas de integridade e fora o trabalho que teria para fazer esse procedimento.


Foreing key


A Foreing key ( chave estrangeira) é utilizado para fazer o relacionamento entre tabelas, com isso o próprio SGBD cria os índices que serão suportados na consulta dos registros agilizando o processo de busca além de  mantém a integridade dos dados evitando que hajam linhas órfãs nas tabelas, no artigo que falarei sobre os comandos SQL estarei mostrando como juntar várias tabelas.


Unique


A unique é um tipo de restrição para evitar duplicidade na tabela, pode-se agrupar os campos para manter uma única referência. Por exemplo: 
Nesse sistema de universidade, podemos ter um unique de matrícula + nome do aluno, caso seja inserido um registro que contenha uma informação já existente no banco ocasionaria erro evitando assim linhas repetidas dentro da tabela.

Check


A restrição check, pode-se dizer que muitas vezes precisamos colocar numa coluna somente valores definidos. Por exemplo, tem-se a coluna gênero de uma tabela de cadastro de usuário e precisamos limitar que sejam inseridos somente F ou M, nesse caso ao criar essa coluna teria que usas regras.


Valor default


A restrição valor default, é utilizada quando queremos ao inserir um valor específico quando não for definido um valor para a coluna, há várias situações em que pode ser adequada a sua utilização, por exemplo um campo data de inclusão que utiliza a data do dia para cada linha incluída, em uma tabela de logs esse tipo de informação é bastante relevante.


Not Null


A restrição Not null, é utilizada quando não queremos que na coluna tenha valores NULL,  nesse caso ao criar uma coluna, em geral ela permite a marcação NULL, se numa operação de insert eu colocar essa marcação o valor acaba sendo inserido. Colocando Not Null ao fazer a mesma operação é exibida mensagem de erro impedindo que a inclusão de Null.

Como vimos para manter a integridade do banco é necessário que sigamos algumas regras com isso vamos evitar problemas futuros, principalmente quando o banco contiver mais dados.

domingo, 1 de dezembro de 2019

Como Ajustar o Horário de Verão no Java




Como este ano não estamos tendo horário de verão, poderemos ter algum problema em nossas aplicações java com relação ao horário.

A JVM possui uma funcionalidade chamada Daylight Saving Time ou DST que consiste em um gerenciamento do horário de verão interno, em muitos países existe o procedimento de alteração do horário. Como neste ano de 2019 não tivemos o adiantamento dos relógios, podemos encontrar algum problema com horário em nossas aplicações caso utilizemos alguma classe de Date/Time da API do Java.

A Oracle disponibilizou uma ferramenta que possamos atualizar as definições do timezone da JVM do Java. Através deste link link: https://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html, iremos fazer o download da ferramenta, figura 1.

Figura 1 - Site da Oracle com a ferramenta.



Também precisaremos baixar uma base de dados com as devidas atualizações, nesse caso basta acessar esse site: https://www.iana.org/time-zones e escolhemos  o seguinte arquivo com a descrição Data only Distribuition, figura 2.


Figura 2 - Site com a Base da Dados dos TimeZones.


Após o download dos arquivos, colocá-los em uma pasta qualquer (exemplo c:\temp no Windows) e extrair o arquivo tzupdater.jar, em seguida deveremos abrir um terminal, CMD no Windows e Terminal no Linux e Mac os para podermos executar o programa como administrador da máquina, código 1.

java -jar c:\temp\tzupdater.jar -v -f -l file:c:\temp\tzdata2019c.tar.gz

Código 1 - código no a ser executado.