Описание метода решения
Проектирование БД «Библиотека» ведется для упрощения работы библиотекаря со всем ассортиментом предложенных книг и учебных пособий, а также для учёта взятых и оставшихся в наличии книг.
Программа должна обеспечивать выполнение следующих функций:
-ввод информации о читателях;
-ввод информации о книгах;
-добавление, удаление и редактирование информации.
Актуальность разработки программы заключается в следующем:
- приложение «Библиотека» представляет собой программу для управления базой данных;
- программа полностью автоматизирует труд оператора ПЭВМ: автоматически заносит вводимые пользователем данные в таблицы базы данных, изменяет структуру таблиц (добавление/удаление записей);
- при использовании программы значительно снижается трудоёмкость ведения базы данных взятых и оставшихся книг.
При проектировании информационной системы будем использовать концепцию функциональных зависимостей.
Процесс разбиения отношения с целью уменьшения вероятности возникновения аномалий называется декомпозицией. Ключевой для осуществления декомпозиции логическим методическим путём является концепция функциональных зависимостей между атрибутами в рассматриваемом отношении.
Функциональная зависимость (ФЗ) определяется следующим образом: если даны два атрибута А и В, то говорят, что В функционально зависит от А, если для каждого значения А существует ровно одно связанное с ним значение В. А и В могут быть составными, то есть они могут представлять собой не единичные группы, состоящие из двух и более атрибутов.
С практической точки зрения смысл данного определения состоит в том, что если В функционально зависит от А, то каждый из картежей, имеющих одно и то же значение А, должен иметь также одно и то же значение. Значит А и В могут изменяться время от времени, но при этом они должны изменяться так, чтобы каждое уникальное значение А имело только одно значение В, связанное с ним.
В конкретной ситуации функциональная зависимость определяется путём детализации свойств всех атрибутов в отношении и выводе заключения о том, как атрибуты соотносятся между собой. Функциональные зависимости могут быть доказаны путём простого просмотра отдельного экземпляра отношений и нахождения двух атрибутов, имеющих те же значения в более чем в одном картеже. Это может служить ключом к тому, в каком направлении следует вести поиск функциональных зависимостей, но не доказательством. Функциональную зависимость необходимо получить исходя из базовых свойств самих атрибутов.
При проектировании базы данных для работников библиотеки понадобятся следующие данные о книгах: Название, Автор, Жанр, Год выпуска, Издательство, Количество страниц, Описание и Шифр книги. Потребуется информация о читателях: 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 – Схема связей между отношениями