Integridade de dados – Parte 01

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (3)  (0)

Neste artigo será abordado a ótica da aplicação, mais precisamente da parte que depende do SGDB de integridade referencial, semântica e de domínio.



Fabricio Pimentel

Introdução

 

Nessa era da informação sob demanda não podemos nos contentar que os dados são apenas registros armazenados em um banco de dados. Sem a devida garantia de sua integridade também não é possível transformá-los em informação.

 

De nada adianta termos imensos bancos de dados armazenando incontáveis bytes de dados, que são constantemente inseridos, modificados, eliminados, se não podemos transformá-los em informação. E, de preferência, informação útil. E sem garantir que os dados armazenados estão íntegros, dificilmente conseguimos transformar esses bytes em informação real. Não importa quão avançada sejam suas ferramentas ou técnicas de aplicação em seu ambiente, nada irá adiantar se não houver um investimento na qualidade de seus dados.

 

Ao falarmos de integridade de dados, podemos citar alguns exemplos que podem e ajudam a garanti-la:

 

·                     Firewalls

·                     Sistema Gerenciador de Banco de Dados (SGDB)

·                     Revisão regular de privilegio aos dados

·                     Encriptação

·                     Controle na prevenção de corrupção de dados

·                     Compliance

·                     Fácil recuperação de dados e performance

·                     Integração com os sistemas de armazenamento (discos, fitas)

·                     Tráfego dos dados pela rede

·                     E mais...

 

Usando os exemplos citados acima, podemos dividir a integridade dos dados em dois grupos:

 

·                     Sob a ótica do sistema: integração com o hardware como discos, fitas; conexão de rede; firewalls; integração entre o SGDB (Sistema Gerenciador de Banco de Dados) e o sistema.

·                     Sob a ótica da aplicação: integridade referencial; triggers; lockings; controle de acesso aos dados.

 

Neste artigo será abordado a ótica da aplicação, mais precisamente da parte que depende do SGDB de integridade referencial, semântica e de domínio. Cada um desses itens será explicado no decorrer do texto.

O Sistema Gerenciador de Banco de Dados e a integridade dos dados

 

Os SQL statements INSERT, DELETE e UPDATE modificam as informações em um banco de dados existente. Toda vez que os dados são alterados existe a possibilidade da integridade lógica ser afetada. Por exemplo, a inserção de um produto inexistente em um pedido de cliente. E, ainda, um cliente pode ser eliminado mesmo tendo pedidos pendentes em seu nome. Em ambos os casos houve perda da integridade das informações.

 

A integridade de dados em SGDBs é uma combinação de:

 

·                     Integridade semântica: o dado de uma coluna sempre será do tipo de dado definido na criação da coluna

·                     Integridade de entidade: cada linha de uma tabela possui um indicador que garanta a unicidade da mesma

·                     Integridade referencial: os relacionamentos lógicos entre as entidades serão forçados pelos SGDB

·                     Integridade de domínio: domínio é um conjunto de valores previamente definido no qual uma coluna só poderá conter valores pertencentes a esse domínio

 

Quando bem definido um banco de dados, provavelmente estes quatro conceitos de integridade serão aplicados.

Integridade Semântica

 

A integridade semântica garante que o dado inserido em uma linha da tabela seja um valor válido. Para esse valor ser válido deve ser do mesmo tipo de dados definido na especificação da coluna na tabela. Por exemplo, um atributo de uma determinada entidade definido como DATA só conterá dados relativos a DATA. É a certeza que no campo DATA_CONTRATACAO só terá datas válidas. Caso um SGDB permita a inserção de um outro tipo de dado diferente do definido, a integridade semântica será violada.

 

A integridade semântica em um SGDB é aplicada com a utilização de constraints. Usarei o termo em inglês porque não há uma tradução apropriada em português e, ainda, como os SGDBs na sua maioria são escritos em inglês, esse é o termo mais conhecido pelo mercado.

Constraints

 

Constraint pode ser definido resumidamente como uma regra que limita o valor que pode ser inserido, modificado ou eliminado em uma tabela. Na linguagem SQL temos os seguintes tipos de constraints:

 

·                     Constraint de dados

·                     Constraint NOT NULL (não nulo)

·                     Constraint única

·                     Constraint de validação (check constraint)

 

Segue abaixo um resumo sobre esses tipos de constraints.

Constraint de dados

Esse tipo de constraint pode ser considerado o mais simples e por muitas vezes ignorado como um constraint. Ele é o que delimita o tipo de dado de cada coluna em uma tabela. Os tipos de informações disponíveis na maioria dos SGDBs existentes pode ser dividia em:

 

·                     Numérico

·                     Alfanumérico ou caracteres

·                     Data e tempo

·                     Grandes objetos

 

Tipos de dados numéricos mais comuns:

 

Tipo de Dados

Descrição

SMALLINT

Números inteiros pequenos

INTEGER

Números inteiros

DECIMAL

Números decimais. Contem a parte inteira e a decimal (13,2 por exemplo)

REAL

O número floating-point de precisão simples é um floating-point de 32 bit

FLOAT

O número floating-point de precisão dupla é um floating-point de 64 bit

Tabela 1 Tipos de dados numéricos mais comuns

 

Tipos de dados alfanumérico ou caracteres:

 

Tipo de Dados

Descrição

CHAR

Para cadeias fixas de caracteres alfanuméricos

VARCHAR

Para cadeias variáveis de caracteres alfanuméricos

Tabela 2 Tipos de dados alfanumérico mais comuns

 

Tipos de dados data e tempo:

 

Tipo de Dados

Descrição

DATE

Data com valores representando dia, mês e ano

TIME

Tempo com valores representando hora, minuto e segundo

TIMESTAMP

Data e Tempo juntos com valores que representam ano, mês, dia, hora, minuto, segundo e milisegundo

Tabela 3 Tipos de dados data e tempo mais comum

 

Observação: na perspectiva do usuário os tipos de dados, data e tempo parecem ser do tipo alfanumérico, porém fisicamente são armazenados como do tipo binário compactado.

 

Tipos de dados grandes objetos, tais como LOB (large object), armazenam grande quantidade de bytes e podem ser utilizados para armazenar objetos do tipo imagem ou som.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?