4. Projeto de Banco de Dados
Projetar adequadamente um Banco de Dados (BD) é crucial para que a aplicação que se vale dos dados nele armazenados tenha seu desempenho garantido. A atividade de projeto de um BD está essencialmente centrada na construção de modelos de bancos de dados.
Devemos lembrar que um modelo de banco de dados é uma descrição formal da estrutura de um banco de dados. De acordo com a intenção do modelador, um banco de dados pode ser modelado em vários níveis de abstração.
No projeto de banco de dados, normalmente são considerados dois níveis de abstração de modelo de dados, o do modelo conceitual e o do modelo lógico.
O modelo conceitual é um modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. Neste curso estudamos o modelo Entidade-Relacionamento (ER), ilustrado na Figura 1 por um diagrama ER simples.

Devemos refrescar nossa memória quanto as seguintes conceitos do modelo ER:
- Entidade: é uma coisa ou objeto do mundo real que pode ser identificada de forma unívoca em relação aos outros objetos. Ex: pessoa, empresa, conta de banco, etc.
- Conjunto de entidades: conjunto que abrange entidades do mesmo tipo que compartilham as mesmas propriedades (atributos). Ex: clientes de um banco, bancos de um país, etc.
- Atributos: são propriedades que descrevem cada membro de um conjunto de entidades. As entidades possuem valores similares para os atributos, mas cada entidade pode ter seu próprio valor. Ex: para a entidade Livro atributos: título, autor, editora, ano, ISBN, etc.; para a entidade Autor atributos: nome, data de nascimento, nacionalidade, gênero, etc.
- Chave primária: é a chave candidata escolhida que melhor identifica uma entidade dentro do seu conjunto de entidades, lembrando que quaisquer duas entidades individuais em um conjunto não podem ter, simultaneamente, mesmos valores em seus atributos chaves. Ex: matrícula.
- Domínio: conjunto de valores possíveis para um atributo. Ex: domínio de título conjunto de textos (string) de um certo tamanho; domínio de ano conjunto dos inteiros de 1900 a 9999.
- Relacionamento: é uma associação entre uma ou várias entidades. Ex: associação entre a entidade Livro e a entidade Autor. Diz-se que o Livro “Memórias Póstumas de Brás Cubas” foi escrito pelo Autor “Machado de Assis”.
- Cardinalidade: expressa o número de entidades às quais outra entidade pode estar associada via um conjunto de relacionamentos. Ex: Uma entidade cliente pode estar associada a quantas entidades agências?
O modelo lógico é um modelo de dados que representa a estrutura de um banco de dados conforme vista pelo usuário do SGBD, menos abstrato que o modelo conceitual mencionado acima. Neste curso,00000000000000 estudamos o Modelo Relacional.
Conceitos que precisamos lembrar a cerca do Modela Relacional:
- Um banco de dados relacional é composto por tabelas ou relações;
- Uma tabela é conjunto não ordenado de linhas (tuplas);
- Cada linha é composta por uma série de campos (atributo);
- Cada campo é identificado por um nome de campo (nome de atributo);
- O conjunto de todas as linhas, de campos homônimos, de uma tabela, forma uma coluna.
A Figura 2 abaixo ilustra os conceitos enumerados acima:

É importante lembrar que, no projeto de banco de dados, faz-se primeiro o modelo ER e depois, através de técnicas de mapeamento, cria-se o modelo Relacional.
Ao fazer este mapeamento, temos de considerar os seguintes objetivos:
- bom desempenho;
- simplificação do desenvolvimento e manutenção das aplicações;
- ocupação de pouco espaço em disco.
Além disso, temos de tomar algumas precauções:
- evitar junções: ter os dados necessários a uma consulta em uma única linha;
- diminuir o número de chaves: evitar a criação de índices sem necessidade;
- evitar campos opcionais: evitar que os campos opcionais sejam controlados pela aplicação.