Bancos de dados são na maioria dos casos a parte mais valiosa de alguma empresa. É nele que estão todos os dados dos usuários e clientes, e é dele que podem ser extraídas informações para os mais devidos fins, seja para consulta ou mesmo traçar um perfil específico que ajude na tomada de decisão. Desta forma, os bancos de dados podem ser considerados a parte mais importante de uma empresa. É com estes dados que a grande maioria das operações são executadas dentro do sistema, e sabendo disso, é de extrema importância que a estrutura de banco de dados seja bem planejada.
Um banco de dados bem planejado, garante a integridade dos dados, permite a fácil manipulação dos registros quando necessário e além disso, torna o processo de pós-migração menos problemático. Diversas são os recursos disponíveis para criar um banco de dados coeso e com estrutura preparada para evitar futuros problemas. Um dos recursos ajudam nisso, são as constraints.
Constraints nada mais são do que restrições, ou regras, que impedem a inserção de registros que não estejam de acordo com as regras especificadas. Desta maneira garante-se que novos registros a serem inseridos contenham as informações exatamente da maneira esperada.
Existem diversas constraints, entre elas as mais comuns são NOT NULL, PRIMARY KEY, FOREIGN KEY, UNIQUE. No artigo de hoje, vamos falar sobre a constraint NOT NULL.
Como o próprio nome já diz, a constraint NOT NULL define que a coluna deve conter algum valor. Ao tentar realizar a inserção ou atualização de algum registro, a constraint será validada. Caso a constraint não seja obedecida, será gerado um erro.
Abaixo criamos uma tabela para exemplificar a validação da constraint.
Sripts para criação de uma tabela de usuários:
CREATE TABLE usuario ( usucodigo SERIAL NOT NULL PRIMARY KEY, usuemail CHARARACTER VARYING(30) NOT NULL );
Scripts para inserção de um registro de usuário, que passa o valor de email como nulo. e erro gerado por violar a validação da restrição:
INSERT INTO usuario ( usucodigo, usuemail) VALUES (DEFAULT, NULL);
Podemos observar que foi gerado um erro, informando que o valor da coluna usuemail está violando a constraint NOT NULL.
Desta maneira é garantido que sempre ao inserir um usuário, o mesmo irá conter um email.