Escolar Documentos
Profissional Documentos
Cultura Documentos
Banco de Dados
Projeto Lógico
• Após a realização da modelagem conceitual, a próxima
etapa é o projeto lógico
Linguagem SQL
• O modelo lógico nos bancos de dados
relacionais é expresso através da linguagem SQL
• Linguagem de pesquisa declarativa
• Não diferencia minúsculas e maiúsculas, mas
tradicionalmente usa-se maiúsculas para as
palavras reservadas
• Padrão internacional (SQL:2003), porém nem
sempre é seguido pelos fabricantes
Entidades e Atributos
• No banco de dados relacional, entidades e
atributos do diagrama ER são traduzidos para
tabelas e colunas respectivamente
• Nomes das tabelas e colunas diretamente
derivados dos nomes das entidades e atributos
• Nomes das tabelas normalmente são expressos
no singular
Chave Primária
• Toda tabela deve possuir um identificador único
ou chave primária
• É considerada uma boa prática a criação de uma
coluna específica (chave artificial) para atuar
como chave primária
• Tipicamente: nome ‘id’, tipo INTEGER, NOT NULL
• Normalmente omitida do diagrama ER, mas
aparece no banco relacional
Chave Primária
• O nome de uma pessoa é uma boa chave primária?
• RG (registro geral) é uma boa chave primária?
• RG pode se repetir em outros estados
• CPF é uma boa chave primária?
• Apesar de ser único para cidadãos brasileiros…
• … estrangeiros podem não ter CPF
• … crianças podem não ter CPF
• … CPF digitado errado não poderia ser alterado
Atributos
• Colunas devem ter um tipo especificado (muitas
vezes omitido no diagrama ER)
• Cada SGBD possui um conjunto diferente de
tipos, mas alguns são padronizados
• Também deve ser indicado se a coluna é
obrigatória (NOT NULL) ou não
• Chaves primárias (coluna id) são sempre do tipo
INTEGER e NOT NULL
Tipos de Dados
no Banco Relacional
• Números inteiros e valores booleanos
– Tipo: INTEGER
– Nem todos SGBDs possuem tipo BOOLEAN, assim
utilizamos INTEGER para verdadeiro (1) e falso (0)
• Números reais (com vírgula)
– Tipo: DECIMAL(M, N)
– M: total de dígitos
– N: casas depois da vírgula
– Exemplo: 999,99 ➔ M = 5, N = 2
Tipos de Dados
no Banco Relacional
• Textos
– Tipo VARCHAR(N): textos curtos (N = número máximo
de caracteres)
– Tipo TEXT: textos longos (exclusivo do MySQL)
• Datas
– Tipo DATE: datas simples (ano, mês e dia)
– Tipo DATETIME: data e hora
– Formato: 'YYYY-MM-DD HH:MM:SS’
Bibliografia
• HEUSER, C. Projeto de Banco de Dados. 6a
edição. Porto Alegre: Bookman, 2008. Capítulo
5.