Você está na página 1de 22

Criação de Banco de

Dados – SQL (DDL)


Banco de Dados
Introdução
• Para a criação de um Banco de Dados, transforma-se o modelo
lógico, representado pelo modelo Entidade x Relacionamento
Normalizado, no modelo físico (No caso do DBDesign por ex, já se
projeta o modelo físico).
• Paraa criação de um Banco de Dados em um SGBD, usa-se a
Linguagem de Definição de Dados (DDL – Data Definition
Language).
• Basicamente atribui-se tipo de dados e tamanho para cada
atributo das tabelas.
• Obs: Deve-se observar as sintaxes dos SGBD, por ex normalmente
os mesmos não são case sensitive, mas o conteúdo das colunas
normalmente é sensível.
Desnormalização de Dados
• As vezes é necessário a redundância em algum(ns) campos numa
tabela (desnormalização).
• Ex:Uma empresa emite cerca de 20 mil notas fiscais, em uma
semana mais de 100 mil NF, no final do mês mais de 400 mil NF.
Aplicando-se a 3ª FN elimina-se a coluna Valor total, que é igual
ao somatorio dos valores dos itens da nota, se cada nota tem 5
itens, chega-se a mais de 2 milhões de registros consultados
mensalmente.
• Em um caso como esse, seria mais eficiente incluir o campo
valor total. Mas é preciso que o Banco de Dados tenha
mecanismos de controle de transações (ex: triggers) para
manter a integridade dos dados.
Tipos de Dados
Os tipos de dados numéricos inteiros são :
Tipo Tamanho Faixa
smallint 2 bytes -32768 to +32767
Integer (ou Int) 4 bytes -2147483648 to +2147483647
-9223372036854775808 to
bigint 8 bytes
9223372036854775807

Os tipos de dados números fracionários são:


Tipo Tamanho Faixa
Decimal (float alguns SGBD) variable no limit
numeric variable no limit
Real / double 4 bytes 6 decimal digits precision
double precision 8 bytes 15 decimal digits precision
Tipos de Dados
Os tipos de dados caracteres são:

Tipo Descrição

character varying(n) ou varchar(n) comprimento variável com limite

character(n) ou char(n) comprimento fixo, completado com brancos

text comprimento variável não limitado

Tipo Descrição
Bit (Binary) Armazena número fixo de bits

Bit varying (Varbinary) Igual ao Bit, permitindo armazenar


valores maiores. Usado para armazenar
imagens.
Blob (binary large objects) Armazena binários longos
Tipos de Dados
Os tipo de dados data e hora são:

Tipo Descrição
Timestamp without Time Zone tanto data quanto hora
Timestamp with Time Zone tanto data quanto hora
Interval intervalos de tempo
Date somente datas

Time without Time Zone somente a hora do dia


Time with Time Zone somente a hora do dia
Tipos de Dados
Tipo Booleano:
* Os valores literais válidos para verdadeiro é:
* ‘t’, ‘true’, ‘y’, ‘yes’, ‘1’
* Os valores literais válidos para falso é:
* ‘f’, ‘false’, ‘n’, ‘no’, ‘0’
Criação de tabelas
• Astabelas ficam armazenadas em tabelas internas do
SGBD.
• As categorias de tabelas são:
• Permanentes: Ficam armazenadas até que sejam
explicitamente excluídas.
• Temporárias globais: Usadas para armazenamento temporário
de informações durante algum processamento específico e
em seguida eliminadas. Visíveis em todo o banco.
• Temporárias Locais: semelhantes às globais, mas são visíveis
apenas em um módulo específico em que foram criadas.
• Comando para criar tabelas: Create Table.
Integridade Referencial - Constraints

• Constraints são regras agregadas a colunas ou tabelas


• Pode-se definir como obrigatório o preenchimento de uma
coluna que tenha algum valor-padrão quando uma linha for
incluída na tabela ou quando aceitar apenas alguns valores
predefinidos.
• Nocaso de regras aplicadas a tabelas, tem-se a definição de
chaves primárias e estrangeiras.
Integridade Referencial - Constraints
• Create Table. Sintaxe:
• CREATE TABLE nome_tabela (nome_coluna1 tipo-de-dado_coluna1
coluna1-constraint, nome_coluna2 tipo-de-dado_coluna2 coluna2-
constraint, nome_colunan tipo-de-dado_colunan colunan-constraint,
constraint da tabela)

• Ex: Create Table CD (


Codigo_CD Integer not null,
Codigo_Gravadora Integer Null,
Nome_CD Varchar(60) Null,
Preco_Venda Float(16, 2) Null,
Data_Lancamento Date Default Sysdate,
CD_Indicado Integer Null,
Primary Key (Codigo_CD), Foreing Key (Codigo_Gravadora) REFERENCES
Gravadora (Codigo_Gravadora), Check (Preco_Venda) > 0);
Tipos de Constraints mais comuns

• Chave Primária: Coluna ou grupo de colunas que permite


identificar um registro único numa tabela.
• Palavrachave: Primary Key seguida do nome da coluna.
Preferencialmente é definida como Constraint da tabela.
• EX: Primary Key (IDCliente)
Tipos de Constraints mais comuns

• Chave Estrangeira: Campo que estabelece o relacionamento entre


duas tabelas. Uma coluna (ou mais) de uma tabela corresponde a
mesma coluna que é chave primária de outra tabela. Deve-se
especificar na tabela que contém a chave estrangeira quais são
essas colunas e a qual tabela está relacionada. O BD vai verificar
se todos os campos que fazem referência à tabela estão
especificados.
• Os relacionamentos criados pelas chaves estrangeiras garantem a
integridade da informação. Proporcionam a segurança da
informação em caso de acesso ao BD por alguém mal intencionado.
• Palavra chave: Foreign Key nome_da_chave-estrangeira (lista-de-
colunas) REFERENCES nome-tabela (lista-de-coluna).
ON UPDATE ‘ação’
ON DELETE ‘ação’
Tipos de Constraints mais comuns

• Chave estrangeira (Continuação)


• Ação: Determina o que o BD deve fazer quando for
excluída ou alterada uma linha da tabela que contém
referência a chave. Pode ser:
• Set Null (altera o conteúdo da coluna para nulo.
Eliminando inconsistências).
• Set Default (altera o conteúdo para o valor especificado na
cláusula Default, se houver)
• Cascade: Exclui ou altera todos os registros que se
relacionam com eles.
• No action: Não modifica os valores que relacionados
• Restrict: Não permite a exclusão da chave primária.
Tipos de Constraints mais comuns

• Ex:
• Foreign Key pedido_cliente_fk (id_cliente) REFERENCES
cliente
ON UPDATE Cascade
ON DELETE Restrict
Tipos de Constraints mais comuns

• DEFAULT
• Atribui um conteúdo padrão a uma coluna da tabela, sempre
que for incluída uma nova linha na tabela. Especifica-se a
palavra-chave DEFAULT, seguida do conteúdo-padrão.
• Ex: quant Integer Default 1
• NOT NULL
• Indica que o conteúdo de uma coluna não poderá ser nulo.
• Ex: Nome_Cliente Varchar(50) Not Null
Tipos de Constraints mais comuns

• UNIQUE
• Indicaque não poderá haver repetição no conteúdo da
coluna. É diferente do conceito de Chave primária, esta
além de não permitir repetição, não pode conter valores
nulos. No caso da cláusula Unique, todos os valores não
nulos devem ser exclusivos.
• Ex: CPF Numeric (11) Unique
Tipos de Constraints mais comuns

• CHECK – Definição de Domínio


•É uma expressão de valores possíveis para o conteúdo de
uma coluna. Usa-se a palavra Check seguida da condição.

• Ex:Sexo Char(1) Check (Upper(Sexo) = ‘M’ or Upper(sexo)


=‘F’)
Tipos de Constraints mais comuns

• Assertivas
• É usada para estabelecer restrição no banco de dados com
base em dados de uma ou mais tabelas.
• Sintaxe: CREATE ASSERTION nome
CHECK (Expressao lógica);
• Ex: Create Assertion tem_cd
Check (Exists select codigo_cd from CD)
Alterando na Estrutura de Tabela

• Comando Alter Table


• Acrescentar novas colunas:
Alter Table tabela
ADD nome-coluna tipo-de-dado constraints [,...]
Ex: Alter Table cliente
Add email varchar(80) Unique
• Acrescentar novas Constraints
Alter Table tabela
Add (Constraints)
Ex: Alter Table Cliente
Add Primary Key (idCliente)
Alterando na Estrutura de Tabela

• Modificar colunas:
Alter Table tabela
MODIFY/Alter (nome-coluna tipo-de-dado constraints)
Ex: Alter Table cliente
MODIFY email varchar(100) Not Null
• Excluindo Elementos
Alter Table tabela
Delete (ou Drop) elemento
Ex:
Alter Table gravadora
DROP Telefone
Alterando na Estrutura de Tabela

• Trocar nome de elementos


Alter Table tabela
Rename nome-tabela
Ex: Alter Table cliente
Rename clientes

• Alterando nome de coluna


Alter Table tabela
Rename coluna-velha TO coluna-nova
Ex:
Alter Table gravadora
Rename Telefone To Tel
Alterando na Estrutura de Tabela

• Eliminando uma tabela:


• Comando Drop Table

• Ex: Drop Table cliente

• Alguns bancos possuem restrições para excluir tabelas.

Você também pode gostar