Файл: Курсовая работа по дисциплине Базы и хранилища данных Разработка базы данных для предметной области Библиотека.docx
Добавлен: 04.12.2023
Просмотров: 39
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное
образовательное учреждение высшего образования
«Челябинский государственный университет»
(ФГБОУ ВО «ЧелГУ»)
Институт информационных технологий
Кафедра информационных технологий и экономической информатики
КУРСОВАЯ РАБОТА
по дисциплине «Базы и хранилища данных»
__________«Разработка базы данных для предметной области «Библиотека»_________
(тема)
Выполнил студент__ Аврамец С.А. ______
(Ф.И.О.)
группы_<номер группы>_____
заочной формы обучения
направления подготовки
_____<Название направления обучения> ____________________________________
(подпись)
«____» ____________ 20___г.
| Научный руководитель Фамилия, имя, отчество__Сичинский Д.А._ Должность____________________________ Ученая степень ________________________ Ученое звание _________________________ ______________________________________ (подпись) «___» _________ 20____г. |
Челябинск
2020
Задание
-
Провести анализ предметной области по следующему описанию:
Существует база данных, которая содержит информацию о работе библиотеки. Библиотека состоит из нескольких читальных залов (зал художественной литературы, зал технической литературы, зал иностранной литературы). Библиотекари выдают книги читателям. Необходимо вести учет книг, имеющихся в библиотеке и книг, выданных читателям. Необходимо вести учет посещений библиотеки читателями.
Перечень входных (первичных) документов.
название книги | название зала | Автор | Место издания | Издательство | Год издания | номер билета читателя | Область знаний |
Море | зал художественной литературы | Пушкин А.С | Москва | Альфа | 1951 | 1 | Живописные рассказы |
Принципы ООП | зал технической литературы | Буч | Челябинск | 2-комсомольца | 2000 | 2 | Программирование |
Продолжение таблицы:
количество страниц | Дата выдачи книги | Дата возврата | Фио читателя | Дата рождения | Телефон |
17 | 22/10/2014 | 22/11/2014 | Алешкин Иван Николаевич | 18/11/1991 | +7 (954) 1111111 |
188 | 21/10/15 | 05/12/15 | Бородкин Семен | 25/05/1928 | |
Ограничения предметной области:
-
Одна книга (Название, Автор, год издания) может быть в нескольких экземплярах. -
Один читатель не может взять более 5 книг. -
Один читатель не может взять 2 экземпляра (одинаковым названием, автором, год издания) одной книги. -
Дата выдачи, дата возврата и дата рождения хранятся в виде DD/MM/YYYY -
Телефон имеет вид +7 (111) 1765880 -
Области знаний бывают 3-х типов (любые). -
Читальных залы бывают 3-х типов (зал художественной литературы, зал технической литературы, зал иностранной литературы). -
Дата возврата книги не может быть раньше даты получения!
-
Выполнить концептуальное (инфологическое) проектирование. -
Выполнить даталогическое проектирование для реляционной базы данных. -
Выбрать СУБД (обосновав выбор) и выполнить физическое проектирование. -
Создать базу данных в выбранной СУБД с учетом ограничений предметной области. -
Реализовать следующие отчеты (запросы):
-
Посчитать за каждый месяц года, определенного пользователем, количество выдач книг. -
Вывести название и возраст книги самой старой книги в каждом из залов. -
Вывести читальный зал, в котором содержаться книги только заданных пользователем типов (типов при поиске может быть определено несколько) -
Вывести 5 лучших книг, которые за прошедший месяц пользовались наибольшим спросом.
-
Выбрать язык программирования и разработать приложение для работы с БД (формы ввода/редактирования данных и отчеты). -
Оформить пояснительную записку.
Содержание
Задание 2
Содержание 4
Концептуальная модель БД 6
Логическая модель БД 8
Физическая модель БД 12
Описание приложения для работы с БД 15
Заключение 24
Библиография 25
Приложение 1. SQL скрипты 26
Приложение 2. Код веб-приложения 30
Заказчик использует базу данных, которая содержит информацию о работе библиотеки.
Библиотека состоит из нескольких читальных залов (зал художественной литературы, зал технической литературы, зал иностранной литературы).
Библиотекари выдают книги читателям.
Требуемые функции системы, использующей базу данных:
-
Ведение учёта посетителей библиотеки -
Ведение учёта книг, имеющихся в библиотеке -
Ведение учёта посещений читателями библиотеки (регистрация выдачи книг на руки и их возврата)
База данных проектируется с учётом следующих особенностей:
-
Одна книга (Название, Автор, год издания) может быть в нескольких экземплярах. -
Один читатель не может взять более 5 книг. -
Один читатель не может взять 2 экземпляра (одинаковым названием, автором, год издания) одной книги. -
Дата выдачи, дата возврата и дата рождения хранятся в виде DD/MM/YYYY -
Телефон имеет вид +7 (111) 1765880 -
Области знаний бывают 3-х типов (любые). -
Читальных залы бывают 3-х типов (зал художественной литературы, зал технической литературы, зал иностранной литературы). -
Дата возврата книги не может быть раньше даты получения!
Концептуальная модель БД
На этом этапе необходимо выделить основные сущности, атрибуты сущностей и связи между сущностями, а так же построить ER-диаграмму в нотации Питера Чена.
Базовые сущности предметной области:
Таблица 1. Таблица сущностей
Наименование сущности | Описание сущности | Первичный ключ |
Книга | Книга, которую выдают на руки читателю | ID книги |
Читальный зал | Читальный зал, в котором может находиться книга | ID читального зала |
Область знаний | Сфера, о которой написана книга | ID области знаний |
Читатель | Читатель, который берет в библиотеке книги на время | ID читателя |
Теперь определим атрибуты для каждой сущности:
Таблица 2. Таблица атрибутов
Сущность | Наименование атрибута | Тип значения | Может ли быть пустым |
Книга | Название | VARCHAR | Нет |
Автор | VARCHAR | Нет | |
Год издания | INT | Нет | |
Количество страниц | INT | Нет | |
Место издания | VARCHAR | Нет | |
Издательство | VARCHAR | Нет | |
Читальный зал | Название | VARCHAR | Нет |
Область знаний | Название | VARCHAR | Нет |
Читатель | ФИО | VARCHAR | Нет |
Телефон | VARCHAR | Нет | |
День рождения | VARCHAR | Нет |
Между сущностями определены следующие связи:
Таблица 3. Таблица связей
Наименование связи | Тип связи | Атрибуты связи |
Книга : область знаний | Один к одному | Нет |
Книга : читальный зал | Один к одному | Нет |
Читатель : книга | Один ко многим | Дата выдачи |
Дата возврата | ||
Список книг |
Подобно тому, как выше рассмотрены атрибуты сущностей, рассмотрим атрибуты связей.
Таблица 4. Атрибуты связей
Связь | Наименование атрибута | Тип значения | Может ли быть пустым | Атомарность |
Читатель : книга | Дата выдачи | VARCHAR | Нет | Да |
Дата возврата | VARCHAR | Нет | Да |
Рисунок 1. Инфологическая диаграмма
На основе приведенного выше описания сущностей и связей составим ER-диаграмму.
Логическая модель БД
Основная задача данного этапа проектирования - переложить концептуальную модель на реляционную.
Для этого нужно определить все информационные единицы и связи между ними, задать их имена, а также некоторые количественные характеристики, например, длину элементов. Отношение представляется как определенным образом организованная таблица.
Результатом работы на этом этапе будет ER-диаграмма в нотации «воронья лапка».
Перед тем, как превращать модель базы в перечень таблиц в СУБД, необходимо избавиться от избыточности информации и аномалий исходных схем БД. Частично, эта работы была уже проведена на этапе инфологического проектирования - в отдельные сущности были выделены читальный зал и область знаний, которые изначально могли быть представлены в виде атрибутов книги.
Составим таблицы, соответствующие сущностям.
Таблица 5. readers - таблица с данными о читателях
наименование | описание |
id (int, PK, autoincrement) | уникальный идентификатор читателя |
name (varchar) | полное имя читателя |
phone (varchar) | номер телефона |
birthday (date) | дата рождения |
Таблица 6. types - области знаний
наименование | описание |
id (int, PK, autoincrement) | уникальный идентификатор области знаний |
name (varchar) | название типа области знаний |
Таблица 7. readrooms - читальные залы
наименование | описание |
id (int, PK, autoincrement) | уникальный идентификатор читального зала |
name (varchar) | название читального зала |
Таблица 8. books - книги
наименование | описание |
id (int, PK, autoincrement) | уникальный идентификатор книги |
name (varchar) | название книги |
phone (varchar) | автор книги |
year (int) | дата публикации книги |
pubplace (varchar) | город издания |
pubhouse (varchar) | издательство |
type (int, FK) | область знаний (идентификатор области из таблицы types) |
readroom (int, FK) | читальный зал (идентификатор зала из таблицы readrooms) |