Respostas:
Ambos foram os autores de vários livros, mas vou criar um link para os blogs deles, caso você queira algo mais imediato.
Louis Davidson: http://drsql.org
Paul Nielsen: http://www.sqlserverbible.com/
Os antipatterns do SQL merecem uma leitura para algumas dicas sobre o que você não deve fazer e por que não (e sob quais circunstâncias essas regras podem ser legitimamente ignoradas).
Banco de dados em profundidade: teoria relacional para profissionais , por CJ Date fornece uma introdução excelente, curta e altamente informativa ao design do banco de dados.
É importante distinguir entre os níveis conceitual, lógico e físico do design.
Dois recursos excelentes e complementares são:
O modelo relacional se diferencia de todos os outros modelos de dados, pois é um modelo lógico que descreve uma estrutura lógica com a qual apresentar dados (a relação), um conjunto de operadores para manipular essa estrutura lógica (a álgebra relacional) e um conjunto das regras de integridade de dados para garantir que os dados armazenados em um DBMS sejam uma representação o mais fiel possível do mundo real. Três excelentes recursos para aprender sobre o design de banco de dados lógico são:
O nível físico é o únicolocal onde residem o desempenho, as estruturas de armazenamento em disco e memória e a escalabilidade. Não sou especialista nessa área, mas posso dizer que dominar esse nível é principalmente um esforço para dominar o DBMS fornecido com o qual você está trabalhando. O DBMS é um software tão sofisticado que você se engana se pensa que pode dominar tudo, muito menos dominar mais de um. Por esse motivo, eu recomendaria manter os níveis conceituais e lógicos e criar um bom design de banco de dados lógico e, em seguida, trabalhar com um DBA realmente bom, especializado no DBMS de destino para desenvolver o design físico. Uma fonte realmente boa, no entanto, para o design físico que apresenta os tópicos e opções fundamentais comuns à maioria dos DBMS 'é Sam Lightstone, Toby Teorey e o Physical Database Design de Tom Nadeau .
Outro bom:
SQL e teoria relacional: como escrever código SQL preciso - data CJ (2009)
Visualização disponível no Google Livros .
Antes de mergulhar na literatura, você pode achar este documento útil:
Todos por um, um por todos em CJ Date
O objetivo deste artigo é determinar a natureza exata dos relacionamentos um a um, muitos a um, um a muitos e muitos a muitos. Em particular, ele tenta chegar a definições precisas para esses conceitos [porque] uma pesquisa da literatura certamente trai a confusão e a falta de pensamento sistemático nessa área.