6.2 RESTRIÇÕES DO MODELO RELACIONAL
Até aqui vimos características de uma única tabela em um banco de dados, normalmente haverá muitas relações e as tuplas se relacionamento de diversas maneiras. Há muitas restrições em um Banco de dados para seus valores reais.
Vamos ver algumas restrições no Banco de dados Relacional:
Restrição de Domínio:
Como já foi apresentado no item anterior, cada coluna de uma tabela é representada por um atributo. Quando uma tabela é definida, em cada coluna serão atribuídos valores para os campos. Ao conjunto de valores atribuídos chamamos de domínio do campo.
Para especificação de domínio, podemos:
| Tipo de Dado | Descrição |
| INTEGER ou INT | Número positivo ou negativo inteiro. O número de bytes que pode ser utilizado varia em função do banco de dados utilizado. |
| SMALLINT | Mesma função do INTEGER, mas ocupa cerca da metade do espaço. |
| NUMERIC | Número positivo ou negativo de ponto flutuante. Normalmente, deve¬ se informar o tamanho total do campo e definir quantas casas decimais devem ser armazenadas após a vírgula. |
| DECIMAL | Semelhante ao NUMERIC, mas, em alguns bancos de dados, poderá ter uma maior precisão após a vírgula. |
| REAL | Número de ponto flutuante de simples precisão. A diferença básica é que os valores serão armazenados em representação exponencial, portanto serão arredondados para o nível mais próximo de precisão. |
| DOUBLE PRECISION | Número de ponto flutuante de dupla precisão. Comporta-se como o REAL, mas permite maior aproximação de resultados. |
| FLOAT | Número de ponto flutuante em que você define o nível de precisão (número de dígitos significativos). |
| BIT | Armazenamento de um número fixo de bits. O número de bits deve ser indicado, do contrário o padrão será 1. |
| BIT VARYING | Igual ao BIT, permitindo armazenar valores maiores. Normalmente, utiliza-se para armazenamento de imagens. |
| DATE | Permite armazenar datas. |
| TIME | Permite armazenar horários. |
| TIMESTAMP | Permite armazenar uma combinação de data e hora. |
| CHARACTER ou CHAR | Permite armazenar cadeias de caracteres (letras, símbolos e números). 0 tamanho deve ser informado e será fixo, ou seja, mesmo que não utilizado totalmente, será ocupado o espaço fisicamente. O valor definido será o tamanho máximo da cadeia armazenada. |
| CHARACTER VARYING ou VARCHAR | Permite armazenar cadeias de caracteres, mas com tamanho variável. Nesse caso, especifica-se o tamanho máximo da coluna. Se for utilizado menos espaço que o máximo definido, o espaço restante não será ocupado. |
| INTERVAL | Intervalo de data ou hora. |
RESTRIÇÃO DE CHAVE E VALORES NULL
Restrição de Chave
No item 5, apresentamos as chaves primárias, estrangeira e candidata. Estas chaves especificam uma restrição de unicidade, na qual duas linhas diferentes serão distinguidas pela chave atribuída.
Valores Nulos
Outro exemplo de restrição é a especificação de valores nulos. Podemos especificar, com isso que um campo não poderá ser nulo.
Integridade da Entidade
Uma entidade integra estabelece os valores de chave primária não podem ser nulos, caso isso ocorra não poderemos distinguir as linhas através da chave primária.