Проектирование БД «Библиотека» ведется для упрощения работы библиотекаря со всем ассортиментом предложенных книг и учебных пособий, а также для учёта взятых и оставшихся в наличии книг.
Программа должна обеспечивать выполнение следующих функций:
-ввод информации о читателях;
-ввод информации о книгах;
-добавление, удаление и редактирование информации.
Актуальность разработки программы заключается в следующем:
- приложение «Библиотека» представляет собой программу для управления базой данных;
- программа полностью автоматизирует труд оператора ПЭВМ: автоматически заносит вводимые пользователем данные в таблицы базы данных, изменяет структуру таблиц (добавление/удаление записей);
- при использовании программы значительно снижается трудоёмкость ведения базы данных взятых и оставшихся книг.
При проектировании информационной системы будем использовать концепцию функциональных зависимостей.
Процесс разбиения отношения с целью уменьшения вероятности возникновения аномалий называется декомпозицией. Ключевой для осуществления декомпозиции логическим методическим путём является концепция функциональных зависимостей между атрибутами в рассматриваемом отношении.
Функциональная зависимость (ФЗ) определяется следующим образом: если даны два атрибута А и В, то говорят, что В функционально зависит от А, если для каждого значения А существует ровно одно связанное с ним значение В. А и В могут быть составными, то есть они могут представлять собой не единичные группы, состоящие из двух и более атрибутов.
С практической точки зрения смысл данного определения состоит в том, что если В функционально зависит от А, то каждый из картежей, имеющих одно и то же значение А, должен иметь также одно и то же значение. Значит А и В могут изменяться время от времени, но при этом они должны изменяться так, чтобы каждое уникальное значение А имело только одно значение В, связанное с ним.
В конкретной ситуации функциональная зависимость определяется путём детализации свойств всех атрибутов в отношении и выводе заключения о том, как атрибуты соотносятся между собой. Функциональные зависимости могут быть доказаны путём простого просмотра отдельного экземпляра отношений и нахождения двух атрибутов, имеющих те же значения в более чем в одном картеже. Это может служить ключом к тому, в каком направлении следует вести поиск функциональных зависимостей, но не доказательством. Функциональную зависимость необходимо получить исходя из базовых свойств самих атрибутов.
При проектировании базы данных для работников библиотеки понадобятся следующие данные о книгах: Название, Автор, Жанр, Год выпуска, Издательство, Количество страниц, Описание и Шифр книги. Потребуется информация о читателях: ID-номер, Фамилия, Отчество, Дата рождения, Адрес (Улица, Дом, Квартира) и Телефон читателей; Дата выдачи книги, Дата возврата книги и Шифр выдачи.
В результате работы информационной системы должна формироваться учётная карточка по каждой книге. Каждая книга выдаётся на руки читателю сроком на 7 дней. Если по истечению данного срока читатель не возвращает книгу, то ему начисляются пени (за каждый просроченный день начисляется пени в размере 25 рублей).
Для создания, редактирования и работы с таблицами в базе данных используются следующие поля, которые представлены в таблице 1.
Таблица 1 – Определение атрибутов универсального отношения
| Имя поля | Комментарии |
| Шифр | Шифр книги. Является ключевым полем. Тип данных: Текстовый. Поле из таблицы «Книги». |
| Название | Название книги. Тип данных: Текстовый. Поле из таблицы «Книги». |
| Автор | Автор книги. Тип данных: Текстовый. Поле из таблицы «Книги». |
| Жанр | Жанр книги. Тип данных: Текстовый. Поле из таблицы «Книги». |
| Год | Год издания книги. Тип данных: Текстовый. Поле из таблицы «Книги». |
| Издательство | Название издательства книги. Тип данных: Текстовый. Поле из таблицы «Книги». |
| Кол-во страниц | Количество страниц в книге. Тип данных: Текстовый. Поле из таблицы «Книги». |
| Описание | Поле, которое содержит описание содержимого книги. Тип данных: Поле MEMO. Поле из таблицы «Книги». |
| Обзор | Поле содержит в себе изображение обложки книги. Тип данных: Поле объекта OLE. Поле из таблицы «Книги». |
| Наличие | Поле, в котором содержится информация о наличии книги библиотеке. Тип данных: Логический. Поле из таблицы «Книги». |
| ID-номер | Индивидуальный номер читателя. Является ключевым полем. Тип данных: Числовой. Поле из таблицы «Список читателей». |
| Фамилия | Фамилия читателя. Тип данных: Текстовый. Поле из таблицы «Список читателей». |
| Имя | Имя читателя. Тип данных: Текстовый. Поле из таблицы «Список читателей». |
| Отчество | Отчество читателя. Тип данных: Текстовый. Поле из таблицы «Список читателей». |
| Дата рождения | Дата рождения читателя. Тип данных: Дата/Время. Поле из таблицы «Список читателей». |
| Улица | Улица, на которой живёт читатель. Тип данных: Текстовый. Поле из таблицы «Список читателей». |
| Дом | Дом, в котором живёт читатель. Тип данных: Текстовый. Поле из таблицы «Список читателей». |
| Квартира | Квартира, в которой живёт читатель. Тип данных: Числовой. Поле из таблицы «Список читателей». |
| Телефон | Номер мобильного телефона читателя. Тип данных: Текстовый. Поле из таблицы «Список читателей». |
| Дата выдачи | Дата, когда выдали книгу читателю. Тип данных: Дата/Время. Поле из таблицы «Выдача книг». |
| Дата возврата | Дата, когда должен читатель вернуть взятые книги. Тип данных: Дата/Время. Поле из таблицы «Выдача книг». |
| Ш_выдачи | Шифр выдачи. Является ключевым полем. Тип данных: Счётчик. Поле из таблицы «Выдача книг». |
Определим функциональную зависимость между атрибутами универсального отношения и представим их в таблицах 3, 4 и 5 и рисунках 1, 2, 3 и 4.
![]() | |||
![]() | |||



Рисунок 1 – Диаграмма функциональных зависимостей отношения R
Переход от универсального отношения к набору НФБК-отношений:
Таблица 2 – Определение возможных ключей отношения R1
| Детерминанты | Возможные ключи | |
| ID-номер | ID-номер | |
| Фамилия | ||
| Имя | ||
| Отчество | ||
| Дата рождения | ||
| Телефон | ||
| Улица | ||
| Дом | ||
| Квартира | ||
| Шифр выдачи | ||
R1
![]() | |||
![]() |

Рисунок 2 – Диаграмма функциональных зависимостей отношения R1
Таблица 3 – Определение возможных ключей отношения R2
| Детерминанты | Возможные ключи |
| Шифр книги | Шифр книги |
| Название | |
| Автор | |
| Жанр | |
| Издательство | |
| Количество страниц | |
| Год издания | |
| Обзор | |
| Описание | |
| Наличие |

R2
![]() |
Рисунок 3 – Диаграмма функциональных зависимостей отношения R2
Таблица 4 – Определение возможных ключей отношения R3
| Детерминанты | Возможные ключи |
| Шифр выдачи | Шифр выдачи |
| ID-номер | |
| Дата выдачи | |
| Дата возврата | |
| Фактическая дата возврата | |
| Пени |
R3


Рисунок 4 – Диаграмма функциональных зависимостей отношения R3
Оценка полученных в НФБК отношений:
R1 «Список читателей» (ID-номер, Фамилия, Имя, Отчество, Дата рождения, Улица, Дом, Квартира, Телефон);
R2 «Книги» (Шифр_к, Название, Автор, Издательство, Жанр, Количество страниц, Наличие, Описание, Обзор);
R3 «Выдача книг» (Шифр выдачи, ID-номер, Дата выдачи, Дата возврата, Фактическая дата возврата, Пени).
R1
ID-номер
| Фами-лия | Имя | Отчест-во | Дата рождения | Улица | Дом | Квар-тира | Теле-фон |
R2
| Шифр_к | Название | Автор | Изда-тельст-во | Жанр | Коли-чество стра-ниц | Нали-чие | Описа-ние | Обзор |

R3
| Шифр выдачи | ID-номер | Шифр_к | Дата Выдачи | Дата возврата | Фактическая дата возврата | Пени |
Рисунок 5 – Схема связей между отношениями





ID-номер






