· Хранение всех необходимых данных в БД, т.е. централизация данных;
· Исключение избыточности данных;
· Уменьшение количества отношений в БД;
· Нормализация отношений для решения проблем, связанных с обновлением или удалением данных.
Первым шагом в процессе проектирования является определение перечня атрибутов (столбцов), которые должны храниться в БД.
На втором шагепринимается решение о том, сколько будет отношений и какие атрибуты будут храниться в каких отношениях.
Необходимо различать дублирование данных и дублирование с избыточностью:
Таблица 6.7 Пример дублирования данных.
Табельный номер
Номер лаборатории
В таблице 6.7 Числа 12 и 17
дублируются, но не избыточны.
Таблица 6.8 Пример избыточного дублирования данных.
Табельный номер
Номер лаборатории
Телефон лаборатории
В таблице 6.8 телефон лаборатории, как видно, дублируется, и это уже избыточное дублирование.
2-17
4-41
Третий шаг – устранение избыточности. Полученный файл после устранения избыточности следует считать неудовлетворительным. Во-первых, пустых полей в файле следует избегать, в такой структуре хранения для записей необходимо иметь процедуру поиска. Во-вторых, могут возникнуть серьезные проблемы с удалением информации. Если удалить работника 287, то исчезнет и соответствующий номер лаборатории.
Лучший способ устранения – разбиение отношения
“Служащий – лаборатория – телефон” (таблица 6.8) на два:
“Лаборатория – телефон” (таблица 6.9)
“Служащий – лаборатория” (таблица 6.10)
Таблица 6.9 “Лаборатория-телефон”.
Таблица 6.10 “Служащий-лаборатория”.
Номер лаборатории
Телефон лаборатории
Табельный номер
Номер лаборатории
2-17
4-41
Разбиение отношений на два или несколько – рабочая процедура проектирования.
Разбиение отношения на два или более приводит к увеличению числа файлов, хранящихся в БД, что порождает проблемы по обработке данных, в данном случае – замедление.
Некоторые отношения порождают серьезные проблемы по удалению и обновлению информации. Проектировщик БД должен уметь находить такие отношения и “нормализовать” их. Нормализация осуществляется путем разбиения отношения на два или более мелких отношения по определенным правилам.