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