Criando banco e tabelas - Garantindo a integridade dos dados

Veja neste artigo fundamentos sobre a criação de tabelas, integridade dos dados (declarativa) e alguns exemplos práticos, para ajudar o entendimento sobre o assunto.

Primeiramente vamos iniciar com a criação de tabelas, para dar inicio execute o o SQL Server Management Studio, conecte-se na instância e clique no botão NEW QUERY, na parte superior esquerda da ferramenta, como mostra a figura 1:

Figura 1. Janela do Management Studio mostrando o botão NEW QUERY.

Depois de abrir a janela NEW QUERY, entre com o comando a seguir e execute:

Listagem 1: Código para verificar a existência do banco.

IF DB_ID ('TESTE_BANCO') IS NULL CREATE DATABASE TESTE_BANCO

Resumidamente este código verificará se o banco de dados existe (‘TESTE_BANCO’) e em seguida é criado o banco.

Para comprovar a existência do banco, veja no OBJECT EXPLORER o banco criado, como mostra a figura 2:

Figura 2. Janela do Management Studio, OBJECT EXPLORER, mostrando o banco criado.

Vamos prosseguir, em depois criar o banco de dados, vamos entrar no contexto do banco usando o seguinte código:

Listagem 2: Código para entrar no contexto do banco.

USE TESTE_BANCO

Depois de executar o comando acima, poderemos dar inicio a criação de tabelas, vamos criar uma tabela simples, com poucos campos, para melhor entendimento, digite e execute o código abaixo:

Listagem 3: Código para criação de tabela.

IF OBJECT_ID ('CLIENTES', 'U') IS NOT NULL DROP TABLE CLIENTES; CREATE TABLE CLIENTES ( COD INT NOT NULL, NOME VARCHAR (30), SOBRENOME VARCHAR (50), CPF INT NOT NULL ) GO

Sobre o primeiro bloco de comandos da Listagem 3, vamos detalhar os comandos, IF chama a instrução OBJECT_ID, que verifica se a tabela clientes já existe, a função OBJECT_ID aceita o nome (CLIENTES) e o tipo de objeto (U) como entradas.

Agora vamos dar inicio aos conhecimentos voltados a integridade dos dados (declarativa), veremos aqui as CONSTRAINTS: Primary Key, Unique Key, Foreign Key, Check Constraints.

Primary Key

A constraint Primary Key (chave primaria), não permite valores nulos e impõe a exclusividade de linhas. Veja abaixo o exemplo de definição de uma Primary Key, vamos usar a tabela criada e modifica-la.

Listagem 4: Código alterando a tabela CLIENTES, Primary Key.

ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (COD)

Para confirmar, expanda a pasta do banco, expanda a pasta TABLES e em seguida expanda pasta KEYS (TABELA CLIENTES), como mostra figura 3:

Figura 3. Janela do Management Studio, OBJECT EXPLORER, mostrando a chave primaria criada.

Unique Constraints

A Constraint Unique, também impõe a exclusividade de linhas, porem, é um pouco parecida com a primary key, podem existir varias Unique Constraints na mesma tabela. Veja o código abaixo:

Listagem 5: Código alterando a tabela CLIENTES, Unique Constraint.

ALTER TABLE CLIENTES ADD CONSTRAINT UNIQUE_CLIENTES_CPF UNIQUE (CPF)

Para confirmar, expanda a pasta do banco, expanda a pasta TABLES e em seguida expanda pasta KEYS (TABELA CLIENTES), como mostra figura 4:

Figura 4. Janela do Management Studio, OBJECT EXPLORER, mostrando a chave exclusiva.

Foreign Key

Uma Foreign key (chave estrangeira), impõe a integridade referencial, ela é definida em um conjunto de atributos em que é chamada de tabela de referencia e aponta para os atributos de chaves candidatas (primary key, unique constraint).

Agora vamos criar uma nova tabela, chamada PEDIDOS, veja o exemplo abaixo:

Listagem 6: Código de criação da tabela PEDIDOS.

CREATE TABLE PEDIDOS ( COD_PED INT NOT NULL, COD_CLI VARCHAR (30), NOME_PROD VARCHAR (50), QTD INT NOT NULL ) GO

Em seguida o código abaixo altera a tabela, incluindo a constraint Foreign Key:

Listagem 7: Código alterando a tabela PEDIDOS, Foreign Key.

ALTER TABLE PEDIDOS ADD CONSTRAINT FK_COD_CLI FOREIGN KEY (COD_CLI) REFERENCES CLIENTES(COD);

Para confirmar, expanda a pasta do banco, expanda a pasta TABLES e em seguida expanda pasta KEYS (TABELA PEDIDOS), como mostra figura 5:

Figura 5. Janela do Management Studio, OBJECT EXPLORER, mostrando a chave estrangeira.

Check Constraints

Uma Check Constraint (Constraint de verificação), como o próprio nome já diz, para inserir ou modificar dados, é necessário que alguns requisitos seja atendidos, obviamente se a tabela em questão utilizar a Check Constraint.

Vamos criar uma tabela de FUNCIONARIOS, por exemplo, apenas com três campos, veja o código abaixo:

Listagem 8: Código de criação da tabela de FUNCIONARIOS.

CREATE TABLE FUNCIONARIO ( COD_FUNC INT NOT NULL, NOME VARCHAR (30), SALARIO MONEY NOT NULL ) GO

Em seguida iremos utilizar a Check Constraint, vamos impedir que no campo SALARIO seja inserido valores negativos.

Listagem 9: Código alterando a tabela FUNCIONARIO, Check Constraint.

ALTER TABLE FUNCIONARIO ADD CONSTRAINT CHK_FUNCIONARIO_SALARIO CHECK (SALARIO > 0);

Para confirmar, expanda a pasta do banco, expanda a pasta TABLES e em seguida expanda pasta CONSTRAINTS (TABELA FUNCIONARIOS), como mostra figura 6:

Figura 6. Janela do Management Studio, OBJECT EXPLORER, mostrando Constraint de Verificação.

Tente inserir dados com valores negativos ou o valor zero, o sistema de banco de dados (SGBD) não irá permitir.

Com isso finalizo este artigo, espero que ele tenha sido bem claro nos seus objetivos.


Artigos relacionados