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

Entradas relacionadas: