Пример проектирования базы данных "Библиотека"

Доклад - Компьютеры, программирование

Другие доклады по предмету Компьютеры, программирование

>

Срок Целое, Дата_возврата Дата )

ОГРАНИЧЕНИЯ ( Значения полей Ном_билета и Ном_переплета должны

принадлежать набору значений соответствующих полей таблиц

Читатели и Переплеты; при нарушении вывод сообщения

"Такого читателя нет" или "Такого переплета нет" );

Теперь следует проверить, не нарушены ли в данном прокете какие-либо принципы нормализации (п. 4.6), т.е. что любое неключевое поле каждой таблицы:

  • функционально зависит от полного первичного ключа, а не от его части (если ключ составной);
  • не имеет функциональной зависимости от другого неключевого поля.
  • Сущности Авторы, Составители, Редакторы, Художники и Переиздания, не имеющие неключевых полей, безусловно нормализованы. Нормализованы и сущности Создатели, Характеры, Заглавия, Вид_издания и Аннотации, состоящие из несоставного ключа и единственного неключевого поля.

Анализ сущностей Переводчики, Размещение и Выдача, состоящих из составного ключа и неключевых полей, показал, что в них нет функциональных связей между неключевыми полями. Последние же не зависят функционально от какой-либо части составного ключа.

Наконец, анализ сущностей Издания, Переплеты, Места, Читатели и Языки, показал, что единственной "подозрительной" сущностью является стержень Языки, имеющий два функционально связанных неключевых поля: Язык и Сокращение.

Поле Язык стало неключевым из-за ввода цифрового первичного ключа Код_языка, заменяющего текстовый возможный ключ Язык. Это позволило уменьшить объем хранимых данных в таблице Переводчики, затраты труда на ввод множества текстовых значений и возможной противоречивости, которая часто возникает из-за ввода в разные поля ошибочных дубликатов (например, "Английский", "Англиский", "Анлийский", "Англйский" и т.п.). Если мы вспомним рекомендации п. 4.5 о замене на время нормализации цифровыз заменителей первичных ключей (Код_языка) на исходный ключ (Язык) или воспользуемся формулировкой НФБК, то окажется, что таблица Языки нормализована.

Для завершения проекта необходимо было бы ввести в описания таблиц дополнительные сведения об ограничениях целостности (выше указан лишь минимальный их набор) и дать описание некоторых таблиц, но ограниченнный объем публикации не позволяет включать эти подробности, не являющиеся принципиальными для иллюстрации процедуры проектирования.

ЛИТЕРАТУРА

  1. Атре Ш. Структурный подход к организации баз данных. М.: Финансы и статистика, 1983. 320 с.
  2. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. М.: Финансы и статистика, 1989. 351 с.
  3. Дейт К. Руководство по реляционной СУБД DB2. М.: Финансы и статистика, 1988. 320 с.
  4. Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. -М.: Мир, 1991. 252 с.
  5. Кириллов В.В. Структуризованный язык запросов (SQL). СПб.: ИТМО, 1994. 80 с.
  6. Мартин Дж. Планирование развития автоматизированных систем. М.: Финансы и статистика, 1984. 196 с.
  7. Мейер М. Теория реляционных баз данных. М.: Мир, 1987. 608 с.
  8. Тиори Т., Фрай Дж. Проектирование структур баз данных. В 2 кн., М.: Мир, 1985. Кн. 1. 287 с.: Кн. 2. 320 с.
  9. Ульман Дж. Базы данных на Паскале. М.: Машиностроение, 1990. 386 с.
  10. Хаббард Дж. Автоматизированное проектирование баз данных. М.: Мир, 1984. 294 с.
  11. Цикритизис Д., Лоховски Ф. Модели данных. М.: Финансы и статистика, 1985. 344 с.