- •Приложение 3.
- •2. Анализ и описание предметной области
- •3. Цели и задачи создания базы данных «библиотека»
- •Читатель
- •Экземпляр
- •Книга (Шифр книги, Название, Автор, Издательство, Город издания, Год издания, Количество страниц, Количество экземпляров в библиотеке, Цена, Номер области знаний, Название области знаний)
- •Библиотека
- •Библиотекарь
- •Читатель
- •Библиотекарь
- •Форма11.
- •Запрос 21.
- •Запрос32.
- •Отчет32.
Инвентарный номер экземпляра Место размещения Вкладыш
Экземпляр
Рис.1. Инфологическая модель предметной области «Библиотека»
Сущность «Книга» содержит информацию обо всех книгах, имеющихся в библиотеке. Отдельный экземпляр этой сущности соответствует не конкретному экземпляру книги, а описанию книги в целом. Каждая же книга может присутствовать в библиотеке в нескольких экземплярах, поэтому вводится сущность «Экземпляр». Каждый экземпляр сущности «Экземпляр» содержит информацию о конкретном экземпляре книги. Между сущностью «Книга» и сущностью «Экземпляр» существует связь типа «1:М», обязательная с обеих сторон (если есть информация о книге, то есть хотя бы один экземпляр этой книги, если есть экземпляр книги, то должна быть информация о книге). Сущность «Читатель» содержит информацию о читателях. Отдельный экземпляр этой сущности содержит информацию об одном читателе. Существует связь между сущностью «Читатель» и сущностью «Экземпляр» типа «1:М», не обязательна с обеих сторон (читатель может не держать на руках ни одной книги, также экземпляр книги может не быть на руках у читателя). Определяются ключи – уникальные идентификаторы экземпляров каждой сущности: для сущности «Книга» - это шифр книги, для сущности «Экземпляр» - инвентарный номер экземпляра книги, для сущности «Читатель» - номер читательского билета.
4.3. Выбор СУБД
Обосновать выбор той или иной СУБД, например, СУБД Microsoft Access 2000. Дать описание СУБД и ее основных характеристик, желательно в сравнении с другими СУБД.
Даталогическое проектирование базы данных
Выполнить датологическое проектирование реляционной базы данных и нормализацию отношений. Нарисовать даталогическую модель базы данных и связи между отношениями.
Даталогическим (логическим) проектированием называют проектирование логической структуры БД в среде конкретной СУБД. Выберем в качестве модели данных реляционную базу данных (РБД).
Существуют разные способы проектирования логической структуры РБД. Рассмотрим способ проектирования, основанный на анализе инфологической модели и переходе от нее к реляционным отношениям.
Для РБД проектирование логической структуры заключается в том, чтобы разбить всю информацию по отношениям, а также определить состав атрибутов для каждого из этих отношений. От ER-модели перейдем к реляционной модели данных (описать правила перехода).
В результате получили следующие отношения:
Книга (Шифр книги, Название, Автор, Издательство, Город издания, Год издания, Количество страниц, Количество экземпляров в библиотеке, Цена, Номер области знаний, Название области знаний)
Экземпляр (Инвентарный номер книги, Шифр книги, Место размещения,
№ читательского билета, Дата выдачи, Дата возврата)
Читатель (№читательского билета, Фамилия И.О., Дата рождения, Домашний адрес, Место работы, Телефон(рабочий), Телефон (домашний)).
Нормализация отношений
Следующим шагом в проектировании РБД является нормализация отношений (определить функциональные зависимости, определить ключи и привести отношения к 3-ей нормальной форме, дать определения нормальных форм).
Рассмотрим отношение «Книги». Каждая книга может относиться к многим областям знаний , т.е. атрибуты номер области знаний и название области знаний – сложные, а это значит, что нарушена 1-ая нормальная форма. Чтобы привести к 1-ой нормальной форме добавим к ключу еще один атрибут – номер области знаний.
Функциональные зависимости между атрибутами отношений после приведения отношения «Книги» к первой нормальной форме приведены на рис.2. Отношения «Читатель» и «Экземпляр» находятся в 1-ой нормальной форме, т.к. не имеют сложных атрибутов.
Поскольку отношения «Читатель» и «Экземпляр» имеют простые ключи, они уже во 2-ой нормальной форме. В отношении «Книги» 2-ая нормальная форма нарушена, т.к. есть неключевые атрибуты, зависящие только от части ключа, а не от всего составного ключа. Приведем это отношение ко 2-ой форме, разделив отношение на три отношения по зависимости от ключа или части ключа. Результат представлен на рис.3.
Назовем новые отношения: «Книги», «Области знаний», «Принадлежность книги к области знаний».
В результате мы получили 5 отношений: «Книги», «Экземпляр»,
«Области знаний», «Принадлежность книги к области знаний», «Читатель» .
Отношение «Книги»
шифр книги
номер области знаний
название области знаний
название
фамилии авторов
издательство
город издания
год издания
количество страниц в книге
цена книги
количество экземпляров в библиотеке
Отношение «Читатели»
№читательского билета
Фамилия, имя, отчество
дата рождения
адрес
место работы
телефон домашний
телефон рабочий
Отношение «Экземпляры»
инвентарный номер книги
место размещения
дата выдачи
дата возврата
№читательского билета
шифр книги
Рис.2. Функциональные зависимости отношений
Отношение «Книги»
шифр книги
название
фамилии авторов
издательство
город издания
год издания
количество страниц в книге
цена книги
количество экземпляров в библиотеке
Отношение «Области знаний»
номер области знаний
название области знаний
Отношение «Принадлежность книги к области знаний»
шифр книги
номер области знаний
Рис.3. Приведение отношения «Книги» ко 2-ой нормальной форме.
Даталогическая модель нормализованных отношений представлена на рис 4. Но в эту модель добавили еще одно отношение «Статистика», которая позволяет учитывать, как часто запрашивается читателем та или иная книга. Конечно, можно было просто добавить поле «Количество запросов» в отношение «Книга» и обойтись без дополнительной таблицы. Но мы решили организовать отдельную таблицу для учета статистики т.к. она будет корректироваться очень часто и делать это с большой и довольно стабильной таблицей неудобно и не эффективно.
Книга Уникальный
шифр книги Название Авторы Издательство Город
издания Год
издания Количество
страниц Кол_
экземпл._в_ библиот Цена Читатель
№читат.билета Фамилия И.О. Дата
рождения Телефон
(рабочий) Телефон
(домашний) Место
работы Домашний
адрес
1
1 1 1
М
Принадлежность книги
к области знаний
Номер
области знаний Шифр
книги
Экземпляр Инвентарный номер экземпляра Уникальный
шифр книги Место размещения Вкладыш с
указанием №чит_бил. Дата_выдачи_и_дата_возврата
М
Области
знаний Номер
области знаний Название
области знаний
Статистика Уникальный
шифр книги Количество запросов
книги
1
Рис.4. Даталогическая модель базы данных «Библиотека»
Реляционная база данных «Библиотека». Физическое проектирование.
Выполним физическое проектирование в среде СУБД Microsoft Access 2000. Поименуем таблицы и атрибуты, определим типы данных и размерность атрибутов. В таблицах выберем первичные ключи и индексированные поля (представить структуру таблиц, например фрагмент описания структуры таблицы Книги представлен в таблице 1).
Таблица 1. Структура таблицы «Книга» РБД «Библиотека»
Название таблицы |
Имя поля |
Тип данных |
Размер поля |
Первичный ключ / вторичный ключ / индексированное поле |
Книга |
Шифр книги |
Текстовый |
15 |
Первичный ключ |
|
Название |
Текстовый |
50 |
|
|
Авторы |
Текстовый |
50 |
|
|
Издательство |
Текстовый |
20 |
|
|
Город издан. |
Текстовый |
20 |
|
|
Год издания |
Текстовый |
4 |
|
|
Кол_страниц |
Числовой |
|
|
|
Количество экз. в библ. |
Числовой |
|
|
|
Цена |
Денежный |
|
|
Аналогичным образом необходимо представить структуру остальных таблиц.
Связи между таблицами в базе данных «Библиотека» представлены на рис.5
Рис.5. Связи между таблицами в базе данных
АВТОМАТИЗИРОВАННАЯ ИНФОРМАЦИОННАЯ СИСТЕМА НА ОСНОВЕ БАЗЫ ДАННЫХ «БИБЛИОТЕКА»
Структура информационной системы
Для определения структуры информационной системы. необходимо распределить задачи, решаемые в АИС, по пользователям системы: библиотекарь, читатель, администратор.
Библиотекарь выполняет следующие задачи:
Запись читателя в библиотеку
Поиск и выдача книги читателю
Отметка о возврате книг читателем
Закрытие абонента читателя
Пополнение книжного фонда
Систематизация книг по каталогам
Списание книг
Подготовка списка книг по разделам
Подготовка сведений о книгах по авторам
Подготовка сведений о читателях – должниках, с указанием суммы
взыскания
Подготовка списка книг на списание
Подготовка списка книг на закупку библиотекой, с указанием необходимой суммы для их приобретения.
Читатель решает следующие задачи:
Подготовка списка книг по разделам
Подготовка сведений о книгах по авторам
Администратор:
Подготовка сведений о читателях – должниках, с указанием суммы
взыскания
Подготовка списка книг на списание
Подготовка списка книг на закупку библиотекой, с указанием необходимой суммы для их приобретения.
Информационную систему «Библиотека» можно представить в виде 3-х подсистем (рис.6):