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:
Depois de abrir a janela NEW QUERY, entre com o comando a seguir e execute:
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:
Vamos prosseguir, em depois criar o banco de dados, vamos entrar no contexto do banco usando o seguinte código:
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:
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.
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:
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:
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:
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:
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:
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:
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:
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.
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:
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
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo