Ответы:
Оба эти парня написали несколько книг, но я собираюсь дать ссылку на их блоги, если вы хотите что-то более непосредственное.
Луи Дэвидсон: http://drsql.org
Пол Нильсен: http://www.sqlserverbible.com/
SQL Antipatterns стоит прочитать для некоторых советов о том, что вы не должны делать и почему нет (и при каких обстоятельствах эти правила могут быть законно проигнорированы).
Подробная база данных: реляционная теория для практиков. Автор CJ Date - отличное, краткое и очень информативное введение в проектирование баз данных.
Важно различать концептуальный, логический и физический уровни дизайна.
Два превосходных и дополнительных ресурса:
Реляционная модель отличается от всех других моделей данных тем, что она представляет собой логическую модель, которая описывает логическую структуру для представления данных (отношение), набор операторов для управления этой логической структурой (реляционная алгебра) и набор правил целостности данных, чтобы гарантировать, что данные, хранящиеся в СУБД, являются максимально точным представлением реального мира. Три отличных ресурса для изучения логического проектирования баз данных:
Физический уровень является единственнымместо, где живут производительность, структуры хранения на диске и памяти и масштабируемость. Я не специализируюсь в этой области, но могу сказать, что освоение этого уровня - это прежде всего попытка освоить ту СУБД, с которой вы работаете. СУБД является настолько сложным программным обеспечением, что вы обманываете себя, если думаете, что можете освоить все это, а тем более освоить больше, чем одно. По этой причине я бы порекомендовал придерживаться концептуальных и логических уровней и создать надежный логический дизайн базы данных, а затем работать с действительно хорошим администратором баз данных, который специализируется на целевой СУБД, для разработки физического проекта. Однако один действительно хороший источник для физического проектирования, в котором излагаются основные темы и варианты, общие для большинства СУБД, - это Сэм Лайтсон, Тоби Теори и Физический проект базы данных Тома Надо .
Еще один хороший:
SQL и реляционная теория: как написать точный код SQL - CJ Date (2009)
Предварительный просмотр доступен в Google Книгах .
Прежде чем погрузиться в литературу, вы можете найти эту статью полезной:
Все за одного, один за всех , CJ Date
Цель [этой статьи] - определить точную природу отношений один-к-одному, многие-к-одному, один-ко-многим и многие-ко-многим. В частности, он пытается дать точные определения для этих понятий [потому что] обзор литературы, безусловно, выдает путаницу и отсутствие систематического мышления в этой области.