Файл: Проектирование БД для домашней библиотеки.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 16.02.2024

Просмотров: 56

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рисунок 22 – Форма добавления нового автора.

После ввода данных идет обработка данных с помощью вспомогательной страницы, которая не отображается пользователю, а переадресовывает сразу на стартовую страницу. Попробуем создать нового автора. На данный момент в БД записаны некоторые данные (Рисунок 23).

Рисунок 23 – Данные в таблице authors

Попробуем добавить нового автора – Наталью Мазуркевич. Вводим все известные данные о ней (Рисунок 24).

Рисунок 24 – Заполненная форма

Нажимаем кнопку «Добавить». Мы вновь оказываемся на стартовой странице. Проверяем в БД, что информация успешно записана (Рисунок 25).

Рисунок 25 – Данные в БД после добавления нового автора через сайт

Добавление новой книги организовано слегка сложнее. Ввод данных идет поэтапно, с помощью нескольких страниц. Это связано с тем, что существуют зависимые списки (жанр и поджанр, полки и шкафы), которые возможно реализовать только посредством javascript, что усложнит процесс разработки сайта и сделает его менее выгодным по затраченному времени.

Аналогичным образом можно изменить или добавить любые записи в БД, предусмотрено редактирование всех данных через интерфейс по аналогичной схеме. Запись новых данных происходит с помощью php-запроса:

$sql="insert into books ( name, auth) values('".$_SESSION['bookname']."', ".$_SESSION['auth_id'].")";

$result=sqlsrv_query($on_link, $sql);

Аналогично происходит обновление данных:

$sql="update books set [comment]=(select case when '".$_SESSION['comment']."'<>'' then '".$_SESSION['comment']."' else(select [comment] from books where id=".$_SESSION['book_id'].") end) where id=".$_SESSION['book_id'];

$result=sqlsrv_query($on_link, $sql);

Разработка интерфейса и реализация проекта

Какие же отчеты могут понадобиться пользователю? Конечно же выгрузка со всеми книгами в библиотеке и с указанием всех их характеристик. Далее, задаваясь вопросом, что бы почитать, можно пользоваться отдельной выгрузкой с непрочитанными книгами. И, чтобы порекомендовать книги друзьям, можно получить выгрузку с уже прочитанными книгами. И последний отчет – пользовательский, где пользователь сам отмечает какую информацию из таблиц он желает получить. Список отчетов так же находится на стартовой странице и разворачивается нажатием на заголовок (Рисунок 26).


Рисунок 26 – Список доступных отчетов

Выгрузка отчетов реализована с помощью запуска Job’а, который отрабатывает инструкции в PowerShell и грузит соответствующий файл отчета в папку на сервере. Далее, бразер переадресовывает страницу на этот файл, и файл появляется в загрузках.

Обработка данных осуществляется с помощью созданных View на каждый отчет. Так, для отчета со всеми книгами и характеристиками используется view с кодом создания, представленном в Приложении 4. Скрипт для PowerShell, в свою очередь, выглядит следующим образом:

sqlcmd -S . -d library -E -s',' -W -Q "SELECT * FROM view_rep_books"> \...\extracts\report_books.csv

Структура стандартных отчетов приведена ниже на рисунках 27-29.

Рисунок 27 - Структура отчета "Все книги"

Рисунок 28 - Структура отчета "Непрочитанные книги"

Рисунок 29 - Структура отчета "Прочитанные книги"

На странице пользовательского отчета необходимо отметить чекбоксы полей, которые необходимо включить в отчет (Рисунок 30). После этого, с помощью языка php идет объединение этих чекбоксов в запрос к базе, в результате которого выгружается отчет.

Рисунок 30 - Страница пользовательского отчета

Оценка экономической эффективности проекта

Для определения целесообразности реализуемого проекта необходимо рассмотреть затраты времени на создание БД и сайта и сопоставить их со временем, которое этот проект позволяет сэкономить. Ниже приведена таблица затрат времени.

Действие

Затраты

1

Установка и настройка MS SQL Server и сопутствующих приложений

3 часа

2

Создание базы данных, создание таблиц и связей

1,5 часа

3

Отрисовка графики (лого сайта)

1 час

4

Настройки php и драйверов для SQL

2 часа

5

Создание сайта

5 часов

6

Заполнение сайта исходными данными

1,5 часа

Получается, что всего на настройку сайта потребовалось 14 часов. В среднем, мне необходимо найти 3-4 книги в месяц, а так же просто просмотреть книги 5-7 раз в месяц. На поиск книги я трачу 5 минут, на просмотр всех книг 10-15 минут. Т.е. 4*5+7*15=125 минут в месяц. Сейчас же, чтобы найти книгу мне понадобится 1 минута, и 3 минуты на просмотр всех книг. 4*1+7*3=25. Значит в среднем я экономлю около 100 минут в месяц. За год я сэкономлю 1200 минут, а это 20 часов, что уже превышает время, потраченное мной на разработку БД и сайта.


ЗАКЛЮЧЕНИЕ

В рамках данной курсовой работы была изучена теория, определены основные понятия и технологии распределенной обработки данных. Проведена классификация БД и СУБД по различным признакам.

Был проведен анализ основных моделей БД, в результате которого была выбрана реляционная модель построения баз данных для дальнейшего использования.

Так же были рассмотрены особенности построения языка структурированных запросов SQL, который является информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. Использование синтаксиса языка SQL сводится, к формированию всевозможных выборок строк и совершению операций над всеми записями, входящими в набор.

Наличие стандартов и набора тестов для определения совместимости конкретной реализации SQL к общепринятому стандарту заметно способствует унификации языка. При этом программист имеет возможность "подсказывать" СУБД при формировании запроса, какие лучше использовать индексы и в каком порядке.

Так же был рассмотрен практический пример использования SQL в прикладном программировании на основании разработки веб - приложения, для которого была разработана и описана реляционная база данных, созданы SQL запросы по работе с базой данных и описан интерфейс.

В процессе выполнения курсовой работы решены следующие задачи:

1) раскрыты сущность понятий база данных, системы управления базами данных путем изучения классификации баз данных и СУБД по степени распределенности, по технологии хранения данных, по содержимому, по моделям построения;

3) проведен сравнительный анализ разных видов СУБД;

4) рассмотрен основной синтаксис языка SQL;

5) разработана и реализована база данных а так же web-приложение для управления данными в БД.

Учитывая, что все поставленные задачи курсовой работы решены, можно утверждать, что цель курсовой работы достигнута.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Новиков Б., Домбровская Г. Настройка приложений баз данных. – BHV, 2011. – С.22

2. Боуман Дж.С., Эмерсон С.Л., Дарновски М. Практическое руководство по SQL. – Вильямс, 2011. – С.56-90

3. Фейт С. TCP/IP. Архитектура, протоколы и реализация (включая IP версии 6 и IP Security) – Питер, 2011. С.


4. Дейт К. Введение в системы баз данных, 8-е издание. – Вильямс, 2006. – С.725

5. Дейт К. SQL и реляционная теория. Как грамотно писать код на SQL. – Символ-Плюс, 2010. – С.123

6. 102Дунаев В.В. Базы данных. Язык SQL. – СПб. : БХВ-Петербург, 2010. – С.88

7. Дейт К., Дарвен Х. Основы будущих систем баз данных. Третий манифест. – Янус-К, 2011. – С. 196

8. Дж. Кастаньетто, Х.Рават, С.Шуман, К.Сколло, Д.Велиаф «Профессиональное РНР программирование». – Пер. с англ. – СПб: Символ-Плюс, 2010. – С.76

10. Иванова Г.С. – «Основы программирования» Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2010. – С.156

12. Кренке Д. Теория и практика построения баз данных. – Питер, 2010. – С.206

13. Мирошниченко Г. Реляционные базы данных. Практические приемы оптимальных решений. – СПб. : БХВ-Петербург, 2011. – С.199

14. Астахова И.Ф., Толстобров А.П., Мельников В.М. SQL в примерах и задачах. – Мн.: Новое знание, 2011. – С.4

15. Советов Б.Я., Цехановский В.В., Чертовской В.Д. Базы данных. Теория и практика.– Высшая школа, 2010. – С.49

16. Скотт В. Эмблер, Прамодкумар Дж. Садаладж Рефакторинг баз данных. Эволюционное проектирование. – Вильямс, 2010. – C.36

17. Тоу Д. Настройка SQL. Для профессионалов. – Питер, 2011. – С.103

18. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. - Вильямс, 2010. – С.125

19. MySQL. Библиотека профессионала – Киев: Диалектика, 2012 – С.170-179

20. PHP/MySQL для начинающих – Кудиц-образ, 2010 – С.44-108

21. Теория и практика построения баз данных: Д. Крёнке. – Питер, 2011. – С.223-250

22. Базы данных. «Проектирование, реализация и сопровождение», Томас Конном, Королинг Берг – 2010. – С.102

28. Шкарина Л. Язык SQL: учебный курс. – СПб.: Питер, 2001 – С.23-96

29. https://www.php.net/manual/ru/funcref.php - Справочник функций, PHP

30. http://htmlbook.ru/ - Справочник по HTML и CSS

31. https://ru.wikipedia.org/wiki/База_данных – открытая библиотека Wikipedia, статья «Базы данных»

32. https://www.oracle.com/ru/ - официальный сайт Oracle в России, статьи по БД и СУБД.

33. https://site-do.ru/ - открытые уроки по SQL, БД и PHP

ПРИЛОЖЕНИЕ 1 – Структура тестовой БД.

pid

name

last_name

birthday

address

1

Александр

Иванов

01.06.1995

Москва

2

Светлана

Сидорова

20.02.1976

Самара

3

Мария

Крайнова

30.04.1992

Оренбург

4

Алиса

Селезнева

01.05.2001

Киев

5

Игорь

Верник

05.06.1989

Минск

6

Алексей

Сидоров

04.03.1996

Оренбург

7

Илья

Горный

02.01.2002

Екатеринбург

8

Марина

Клюкова

05.02.1998

Тамбов

9

Светлана

Смелая

04.05.1995

Самара

10

Олег

Павлов

01.06.2002

Москва

11

Ольга

Павлова

06.08.1965

Киев

12

Оксана

Кротова

07.04.1974

Москва

13

Ксения

Ветрова

04.09.1980

Санкт-Петербург


pid

emp_id

assign

offid

salid

manager

hire_date

6

1

Директор

1

6

 NULL

01.05.2010

5

2

Ассистент

2

2

1

05.06.2010

2

3

Менеджер по продажам

4

3

6

01.05.2010

9

4

Программист

3

1

7

01.05.2010

7

5

Специалист поддержки

1

7

6

05.06.2010

4

6

Директор офиса

2

5

1

15.06.2010

11

7

Директор офиса

4

5

1

15.06.2010

8

8

Переводчик

1

8

6

25.10.2011

13

9

Юрист

3

9

1

01.05.2010

1

10

Менеджер по продажам

1

3

6

05.06.2010

12

11

Специалист отдела кадров

4

10

1

01.05.2010

10

12

Бухгалтер

1

11

13

05.06.2010

3

13

Старший бухгалтер

2

4

7

01.05.2010

offid

address

city

name

1

Москва, Верхний проезд, 1Б

Москва

Центр

2

Самара, ул. Ленинградская, 34А

Самара

Орг

3

Киев, ул. Большая, 1, оф 314.

Киев

Укр

4

Москва, Садовое кольцо, 217, оф. 54

Москва

Мск-2

salid

curr

salary

tax

1

UAH

10000,00

10,00

2

RUB

45000,00

13,00

3

RUB

70000,00

13,00

4

RUB

349002,00

26,00

5

RUB

245213,00

13,00

6

RUB

4123522,00

13,00

7

RUB

23215,00

13,00

8

RUB

24356,00

13,00

9

UAH

12459,00

10,00

10

RUB

213953,00

26,00

11

RUB

243514,00

13,00