3 Проектирование базы данных
3.1 Описание структуры данных
Описание таблиц базы данных
-
Название поля
Тип поля
Ключевое поле
создатели
Код создателей
Числовой
Ф И О
Текстовый
издательства
Код издательства
Числовой
Название
Текстовый
Город
Текстовый
Вид издания
Вид издания
Числовой
Название вида
Текстовый
Языки
Код языка
Числовой
Язык
Текстовый
Сокращение
Текстовый
Места
Код места
Числовой
Номер комнаты
Числовой
Номер стелажа
Числовой
Номер полки
Числовой
Читатели
Номер предмета
Числовой
Фамилия
Текстовый
Имя
Текстовый
Отчество
Текстовый
Адрес
Текстовый
Телефон
Текстовый
Издание
Код издания
Числовой
Код заглавия
Текстовый
Вид издания
Текстовый
Номер тома
Числовой
Авторский знак
Текстовый
Библиотечный шифр
Текстовый
Повторность
Числовой
Код издательства
Числовой
Год издания
Числовой
Переплеты
Номер переплета
Числовой
Код издания
Числовой
Цена
Денежный
Дата приобретения
Дата
Переводчики
Код создателя
Числовой
Код издания
Числовой
Размещение
Код места
Числовой
Номер переплета
Числовой
Дата размещения
Дата
Дата изъятия
Дата
Выдача
Номер билета
Числовой
Номер переплета
Числовой
Дата выдачи
Дата
Срок
Числовой
Дата возврата
Дата
Теперь следует проверить, не нарушены ли в данном проекте какие-либо принципы нормализации, т.е. что любое неключевое поле каждой таблицы:
функционально зависит от полного первичного ключа, а не от его части (если ключ составной);
не имеет функциональной зависимости от другого неключевого поля.
Сущности Авторы, Составители, Редакторы, Переиздания, не имеющие неключевых полей, безусловно нормализованы. Нормализованы и сущности Создатели, Характеры, Заглавия, Вид_издания, состоящие из несоставного ключа и единственного неключевого поля.
Анализ сущностей Переводчики, Размещение и Выдача, состоящих из составного ключа и неключевых полей, показал, что в них нет функциональных связей между неключевыми полями. Последние же не зависят функционально от какой-либо части составного ключа.
Наконец, анализ сущностей Издания, Переплеты, Места, Читатели и Языки, показал, что единственной "подозрительной" сущностью является стержень Языки, имеющий два функционально связанных неключевых поля: Язык и Сокращение.
Поле Язык стало неключевым из-за ввода цифрового первичного ключа Код_языка, заменяющего текстовый возможный ключ Язык. Это позволило уменьшить объем хранимых данных в таблице Переводчики, затраты труда на ввод множества текстовых значений и возможной противоречивости, которая часто возникает из-за ввода в разные поля ошибочных дубликатов (например, "Английский", "Англиский", "Анлийский", "Англйский" и т.п.). Если мы вспомним рекомендации п. о замене на время нормализации цифровыз заменителей первичных ключей (Код_языка) на исходный ключ (Язык) или воспользуемся формулировкой НФБК, то окажется, что таблица Языки – нормализована.
Для завершения проекта необходимо было бы ввести в описания таблиц дополнительные сведения об ограничениях целостности (выше указан лишь минимальный их набор) и дать описание некоторых таблиц, но ограниченнный объем публикации не позволяет включать эти подробности, не являющиеся принципиальными для иллюстрации процедуры проектирования.
