Guia Completo: Criação e Gerenciamento de Bancos de Dados SQL
Classificado em Computação
Escrito em em português com um tamanho de 5,95 KB
Criação de Banco de Dados: Do Modelo Lógico ao Físico
Para iniciar o trabalho de criação do banco de dados, deve-se inicialmente transformar o modelo lógico, representado pelo modelo Entidade-Relacionamento e pela normalização de dados, no modelo físico que será implementado. O processo básico consiste em simplesmente atribuir tipos de dados e tamanhos para cada um dos atributos identificados.
Desnormalização de Dados
Ocorre quando, ao idealizarmos o modelo de dados, utilizamos o conceito de processador perfeito, em que as informações são transmitidas sem custo e instantaneamente.
Definição de Tipos de Dados
- 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.
- 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.
- DOUBLE PRECISION: Número de ponto flutuante de dupla precisão.
- 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 número fixo de bits.
- BIT VARYING: 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).
- CHARACTER VARYING ou VARCHAR: Permite armazenar cadeias de caracteres, mas com tamanho variável. Nesse caso, especifica-se o tamanho máximo da coluna.
- INTERVAL: Intervalo de data ou hora.
Criação de Tabelas
As tabelas são as estruturas mais importantes de um banco de dados.
Tipos de Tabelas
- Tabelas Permanentes: Ficam permanentemente armazenadas no banco de dados, a menos que sejam explicitamente excluídas.
- Tabelas Temporárias Globais: Utilizadas para armazenamento temporário de informações durante algum processamento específico.
- Tabelas Temporárias Locais: Semelhantes às globais, são visíveis apenas em um módulo específico em que foram criadas.
Constraints (Restrições)
São regras agregadas a colunas ou tabelas. Pode-se definir como obrigatório o preenchimento de uma coluna que tenha um valor-padrão quando uma linha for incluída na tabela ou aceitar apenas alguns valores predefinidos.
Sintaxe CREATE TABLE
CREATE TABLE nome-tabela
Chave Primária (Primary Key)
É a coluna ou grupo de colunas que permite identificar um único registro na tabela.
Especificando a Chave Primária
PRIMARY KEY
Chave Estrangeira (Foreign Key)
É o campo que estabelece o relacionamento entre duas tabelas.
Especificando a Chave Estrangeira
FOREIGN KEY nome-chave-estrangeira (lista-de-colunas)
REFERENCES nome-tabela (lista-de-colunas)
ON UPDATE <ação>
ON DELETE <ação>
DEFAULT
Serve para atribuir um conteúdo padrão a uma coluna da tabela, sempre que for incluída uma nova linha na tabela.
Exemplo de DEFAULT
Uma coluna 'Quantidade' deve ter o conteúdo-padrão 1:
QUANTIDADE INTEGER DEFAULT 1
NOT NULL
Indica que o conteúdo de uma coluna não poderá ser nulo. Lembre-se: Em bancos de dados SQL, colunas sem valor atribuído possuem conteúdo NULO.
UNIQUE
Indica que não pode haver repetição no conteúdo da coluna.
Exemplo de UNIQUE
Especifica o número do CPF como campo de valor único:
CPF NUMERIC(11) UNIQUE
Definição de Domínio
É a expressão de valores possíveis para o conteúdo de uma coluna.
Assertivas
É utilizada para estabelecer restrição no banco de dados com base em dados de uma ou mais tabelas.
Alteração da Estrutura de Tabelas (ALTER TABLE)
Utilizamos o comando ALTER TABLE, dependendo do banco de dados.
Acrescentar Novas Colunas (ADD COLUMN)
ALTER TABLE tabela
ADD nome-coluna tipo-de-dado constraints [, nome-coluna tipo-de-dado constraints, ...]
Exemplo:
ALTER TABLE cliente
ADD email varchar(80) UNIQUE
Acrescentar Novas Constraints (ADD CONSTRAINT)
ALTER TABLE tabela
ADD (Constraint)
Modificar Colunas (MODIFY COLUMN)
ALTER TABLE tabela
MODIFY (nome-coluna tipo-de-dado constraints)
Eliminando Tabelas (DROP TABLE)
Utilizamos o DROP TABLE seguido do nome da tabela.
Índices (Indexes)
Serve para promover um acesso rápido às tabelas. É possível incluir uma ou mais colunas por onde o acesso é mais frequente.
Criação de Índices (CREATE INDEX)
O banco de dados deverá mantê-lo atualizado a cada nova inclusão, exclusão ou alteração dos dados.
CREATE [UNIQUE] INDEX nome
ON Tabela (coluna [, coluna, ... ] [ASC | DESC])
ASC (Ascendente)
Determina que a ordem de indexação é ascendente (opção padrão, caso não seja definido DESC).
DESC (Descendente)
Determina que a ordem de indexação é descendente.
Exclusão de Índices (DROP INDEX)
Serve para excluir um índice, utiliza-se o comando:
DROP INDEX nome