Проектирование и разработка базы данных и веб-приложения по учету занятости актеров театра
Определение функциональных требований и разработка спецификаций к автоматизированной системе. Рассмотрение процесса создания хранимых процедур и триггеров на базах данных, запросов к базе данных. Исследование основ управления привилегиями пользователей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 08.06.2018 |
Размер файла | 3,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Название поля |
Тип |
Условия видимости |
Условия доступности |
Описание |
|
Логотип |
Ссылка |
Виден всем |
Доступен всем |
Ссылка на сайт actors.ru |
|
Меню |
Ссылка |
Набор ссылок на другие страницы сайта |
|||
Фамилия |
Текстовое поле |
Виден не всем |
Доступен не всем |
Поле для ввода фамилии |
|
Имя |
Текстовое поле |
Поле для ввода имени |
|||
Отчество |
Текстовое поле |
Поле для ввода отчества |
|||
Дата рождения |
Текстовое поле |
Виден не всем |
Доступен не всем |
Поле для задания даты рождения |
|
Пол |
Радиокнопка |
Радиокнопка для задания пола |
|||
Стаж работы |
Текстовое поле |
Поле для ввода стажа работы |
|||
|
Текстовое поле |
Поле для ввода адреса электронной почты |
|||
Загрузка фотографии |
Поле для загрузки файла |
Поле для загрузки фотографии |
|||
ОК |
Кнопка |
Кнопка для сохранения измененных данных |
Макет графического интерфейса страниц с премьерами спектаклей (для актера и для директора) представлен на рисунке 28.
Рисунок 28 - Макет графического интерфейса страниц
Элементы управления пользовательского интерфейса страницы с премьерами спектаклей для актера представлены в таблице 8.
Таблица 8 - Элементы управления пользовательского интерфейса страниц
Название поля |
Тип |
Условия видимости |
Условия доступности |
Описание |
|
Логотип |
Ссылка |
Виден всем |
Доступен всем |
Ссылка на сайт actors.ru |
|
Меню |
Ссылка |
Набор ссылок на другие страницы сайта |
|||
Начальная дата |
Текстовое поле |
Виден не всем |
Доступен не всем |
Поле для ввода начальной даты премьеры спектакля |
|
Конечная дата |
Текстовое поле |
Поле для ввода конечной даты премьеры спектакля |
|||
Список премьер за определенный период |
Кнопка |
Виден не всем |
Доступен не всем |
Кнопка позволяющая просмотреть таблицу премьер за определённый период |
|
Картинка-ссылка «Открыть мини-аудио плеер» |
Ссылка |
Ссылка для прослушивания музыкальных произведений в мини-аудио плеере в новом окне |
|||
Все премьеры |
Кнопка |
Кнопки навигации по странице(ам) |
|||
Далее |
Кнопка |
||||
Назад |
Кнопка |
||||
Очистить форму |
Кнопка |
Кнопка для очистки текстовых полей |
Макет графического интерфейса страницы чата, страниц доступных только для администратора, кроме главной страницы предназначенной для администратора и страницы «Список премьер спектаклей» представлен на странице 29. Количество элементов управления на разных страницах может отличаться.
Рисунок 29 - Макет графического интерфейса страниц
Элементы управления пользовательского интерфейса страницы с премьерами спектаклей для актера представлены в таблице 9.
Таблица 9 - Элементы управления пользовательского интерфейса страниц
Название поля |
Тип |
Условия видимости |
Условия доступности |
Описание |
|
Логотип |
Ссылка |
Виден всем |
Доступен всем |
Ссылка на сайт actors.ru |
|
Меню |
Ссылка |
Набор ссылок на другие страницы сайта |
|||
Номер контракта |
Выпадающий список |
Виден не всем |
Доступен не всем |
Список контрактов |
|
Название роли |
Выпадающий список |
Список ролей |
|||
Все контракты |
Кнопка |
Кнопка для просмотра таблицы контрактов заключенных на определенные роли определенными актерами которые присутствуют в базе данных |
|||
Далее |
Кнопка |
Кнопки навигации по странице(ам) |
|||
Назад |
Кнопка |
||||
Удалить |
Кнопка |
Кнопка для удаления |
|||
Поиск |
Текстовое поле |
Поле для поиска |
|||
Найти |
Кнопка |
Кнопка для поиска |
|||
Очистить форму |
Кнопка |
Кнопка для очистки текстовых полей |
Макет графического интерфейса страницы «Список премьер спектаклей» (доступна только для администратора) представлен на рисунке 30.
Рисунок 30 - Макет графического интерфейса страницы «Список премьер спектаклей»
Элементы управления пользовательского интерфейса страницы «Список премьер спектаклей» представлены в таблице 10.
Таблица 10 - Элементы управления пользовательского интерфейса страницы «Список премьер спектаклей»
Название поля |
Тип |
Условия видимости |
Условия доступности |
Описание |
|
Логотип |
Ссылка |
Виден всем |
Доступен всем |
Ссылка на сайт actors.ru |
|
Меню |
Ссылка |
Набор ссылок на другие страницы сайта |
|||
Картинка-ссылка «Открыть мини-аудио плеер» |
Ссылка |
Виден не всем |
Доступен не всем |
Ссылка для прослушивания музыкальных произведений в мини-аудио плеере в новом окне |
|
Начальная дата |
Текстовое поле |
Поле для задание начальной даты премьеры спектакля |
|||
Конечная дата |
Текстовое поле |
Поле для задание конечной даты премьеры спектакля |
|||
Список премьер за определенный период |
Кнопка |
Кнопка для таблицы премьер за определенный период |
|||
Название спектакля |
Выпадающий список |
Список с названиями спектаклей |
|||
Место проведения премьеры |
Текстовое поле |
Поле для ввода названия места проведения премьеры |
|||
ИО режиссера |
Текстовое поле |
Поле для ввода ИО режиссера |
|||
Название композиции |
Текстовое поле |
Поле для ввода названия композиции для музыкального сопровождения |
|||
ОК |
Кнопка |
Кнопка для добавления новых данных |
|||
Удалить |
Кнопка |
Кнопка для удаления старых данных |
|||
Все премьеры |
Кнопка |
Кнопка для просмотра таблицы всех премьер спектаклей |
|||
Далее |
Кнопка |
Кнопки навигации по странице «Список премьер спектаклей» |
|||
Назад |
Кнопка |
||||
Поиск… |
Текстовое поле |
Поле для поиска |
|||
Найти |
Кнопка |
Кнопка для поиска |
|||
Очистить форму |
Кнопка |
Кнопка для очистки текстовых полей |
Макет графического интерфейса главной страницы для администратора представлен на рисунке 31.
Рисунок 31 - Макет графического интерфейса главной страницы для администратора
Элементы управления пользовательского интерфейса главной страницы для администратора представлены в таблице 11.
Таблица 11 - Элементы управления пользовательского интерфейса главной страницы для администратора
Название поля |
Тип |
Условия видимости |
Условия доступности |
Описание |
|
Логотип |
Ссылка |
Виден всем |
Доступен всем |
Ссылка на сайт actors.ru |
|
Меню |
Ссылка |
Набор ссылок на другие страницы сайта |
|||
Разослать письма актерам |
Кнопка |
Виден не всем |
Доступен не всем |
Кнопка для рассылки писем всем актерам |
|
Разослать письма актерам, заключивших контракт |
Кнопка |
Кнопка для рассылки писем всем актерам, заключившим контракты |
|||
Фамилия |
Текстовое поле |
Поле для ввода фамилии актера |
|||
Имя |
Текстовое поле |
Поле для ввода имени актера |
|||
Отчество |
Текстовое поле |
Поле для ввода отчества актера |
|||
Дата рождения |
Текстовое поле |
Поле для ввода даты рождения актера |
|||
Пол актера |
Радиокнопка |
Радиокнопка для выбора пола актера |
|||
Опыт работы |
Текстовое поле |
Текстовое поле для ввода опыта работы актера |
|||
Дата рождения |
Текстовое поле |
Поле для ввода даты рождения актера |
|||
Электронная почта |
Текстовое поле |
Виден не всем |
Доступен не всем |
Текстовое поле для ввода адреса электронной почты актера |
|
Загрузка фотографии |
Поле для загрузки файла |
Поле для загрузки фотографии актера |
|||
Все актеры |
Кнопка |
Кнопка для просмотра таблицы актеров |
|||
Далее |
Кнопка |
Кнопки навигации по странице для администратора |
|||
Назад |
Кнопка |
||||
Добавить |
Кнопка |
Кнопка для добавления данных |
|||
Удалить |
Кнопка |
Кнопка для удаления данных |
|||
Очистка |
Кнопка |
Кнопка для очистки текстовых полей |
|||
Поиск… |
Текстовое поле |
Поле для поиска |
|||
Найти |
Кнопка |
Кнопка для поиска |
|||
Очистить форму |
Кнопка |
Кнопка для очистки текстовых полей |
Макет графического интерфейса страницы мини-аудио плеера на рисунке 32.
Рисунок 32 - Макет графического интерфейса страницы мини-аудио плеера
Элементы управления пользовательского интерфейса страницы мини-аудио плеера представлены в таблице 12.
Таблица 12 - Элементы управления пользовательского интерфейса страницы мини-аудио плеера
Название поля |
Тип |
Условия видимости |
Условия доступности |
Описание |
|
Включить |
Кнопка |
Виден всем, кроме забаннего пользователя |
Доступен всем, кроме забаннего пользователя |
Кнопка для прослушивания песен из спектакля |
|
Далее |
Кнопка |
Кнопки для навигации по блоку со списком песен |
|||
Назад |
Кнопка |
||||
Показать плей-лист |
Кнопка |
Кнопка для просмотра плейлиста всех песен присутствующих в мини-аудио плеере |
|||
Блок со списком песен |
Ссылка |
Набор ссылок для навигации по списку песен в плейлисте |
Вышеперечисленные макеты графического интерфейса страниц наглядно демонстрируют страницы расположенные на сайте.
2.5 Разработка модели данных
2.5.1 Концептуальное проектирование
В данной предметной области были выделены сущности: актер, контракт, роль, премьера и спектакль как показано на рисунке 33.
Рисунок 33 - Предварительная схема базы данных
Cвязи между сущностями определены в таблице 13.
Таблица 13 - Связи между сущностями
Сущность |
Связь, мощность / ранг |
Сущность |
|
Актер |
1-N |
Контракт |
|
Контракт |
N-N |
Роль |
|
Премьера |
1-N |
Контракт |
|
Спектакль |
1-N |
Премьера |
|
Спектакль |
1-N |
Роль |
Связь между таблицами Контракт и Роль была преобразована с добавлением новой сущности Контракт_роль в соответствие с таблицей 14.
Таблица 14 - Преобразование связей
Сущность |
Связь, мощность / ранг |
Сущность |
|
Актер |
1-N |
Контракт |
|
Контракт |
1-N |
Контракт_роль |
|
Роль |
1-N |
Контракт_роль |
|
Премьера |
1-N |
Контракт |
|
Спектакль |
1-N |
Премьера |
|
Спектакль |
1-N |
Роль |
Полученная схема изображена на рисунке 34.
Рисунок 34 - Предварительная схема базы данных
В ходе концептуального проектирования были выделены атрибуты сущностей в соответствие с таблицей 15.
Таблица 15 - Атрибуты сущностей
Сущность |
Атрибуты |
|
Актер |
Фамилия |
|
Актер |
Имя |
|
Актер |
Отчество |
|
Актер |
Пол |
|
Актер |
Дата_рождения |
|
Актер |
Стаж_работы |
|
Актер |
Награды |
|
Актер |
Количество наград |
|
Актер |
Фото_актера |
|
Контракт |
Номер_контракта |
|
Контракт |
Дата_заключения |
|
Контракт |
Стоимость_актеров |
|
Роль |
Название_роли |
|
Премьера |
Место |
|
Премьера |
Дата |
|
Премьера |
Режиссер |
|
Премьера |
Музыкальная_постановка |
|
Спектакль |
Бюджет |
|
Спектакль |
Название |
|
Спектакль |
Год |
|
Спектакль |
Жанр |
Из атрибута Награды сущности Актер была выделена отдельная сущность Премия и между этими двумя сущностями была определена связь «1-ко-многим», также еще была определена связь «1-ко-многим» между сущностями «Премия» и «Роль» как показано на рисунке 35.
Рисунок 35 - Предварительная схема базы данных
На первом этапе проектирования была получена концептуальная схема базы данных как показано на рисунке 36.
Рисунок 36 - Концептуальная схема базы данных
Концептуальная модель данных была создана исходя из изучения предметной области.
2.5.2 Логическое проектирование
Для каждой сущности были установлены первичные и внешние ключи. Были добавлены новые таблицы (сущности) «Пользователь» (user), «Бан-лист» (banlist) и «Сообщения» (messages). Схема логического проектирования представлена на рисунке 37.
Рисунок 37 - Логическая схема базы данных
При логическом проектировании концептуальная схема становится логической моделью, независимой от особенностей используемой в дальнейшем СУБД для физической реализации базы данных.
2.5.3 Физическое проектирование
Были определены свойства и типы данных атрибутов таблиц для реализации в MySQL Workbench в соответствии с таблицей 16.
Таблица 16 - Свойства и типы данных атрибутов
Таблица |
Атрибуты |
Тип данных |
Обязательный к заполнению |
Значение по умолчанию |
Домен |
Описательный / ключевой |
|
actor |
pk_actor |
smallint |
да |
A_I |
нет |
ключевой |
|
second_name |
varchar (20) |
да |
нет |
нет |
описательный |
||
nameActor |
varchar (20) |
да |
нет |
нет |
описательный |
||
middle_name |
varchar (30) |
да |
нет |
нет |
описательный |
||
birthday |
date |
да |
нет |
нет |
описательный |
||
gender |
enum('М', 'Ж') |
да |
нет |
'male', 'female' |
описательный |
||
work_expirence |
varchar (35) |
да |
нет |
нет |
описательный |
||
countOfrewards |
tinyint |
да |
1 |
нет |
описательный |
||
photo_of_actor |
blob |
да |
нет |
нет |
описательный |
||
|
varchar(30) |
да |
нет |
нет |
описательный |
||
reward |
pk_reward |
smallint |
да |
A_I |
нет |
ключевой |
|
fk_actor |
smallint |
нет |
нет |
нет |
ключевой |
||
size |
decimal (7,2) |
да |
нет |
нет |
описательный |
||
period |
varchar (85) |
да |
нет |
нет |
описательный |
||
numberOfreward |
tinyint |
да |
1 |
нет |
описательный |
||
fk_role |
smallint |
нет |
нет |
нет |
ключевой |
||
contract |
pk_contract |
smallint |
да |
A_I |
нет |
ключевой |
|
fk_premiere |
smallint |
нет |
нет |
нет |
ключевой |
||
fk_actor |
smallint |
нет |
нет |
нет |
ключевой |
||
number_of_contract |
varchar (25) |
да |
нет |
нет |
описательный |
||
date_of_contract |
timestamp |
нет |
CURRENT_TIMESTAMP |
нет |
описательный |
||
price_of_actors |
decimal (7,2) |
да |
нет |
нет |
описательный |
||
contract_role |
fk_contract fk_role |
smallint |
да |
нет |
нет |
составной |
|
role |
pk_role |
smallint |
да |
A_I |
нет |
ключевой |
|
fk_show |
smallint |
нет |
нет |
нет |
ключевой |
||
nameRole |
varchar (50) |
да |
нет |
нет |
описательный |
||
premiere |
pk_ premiere |
smallint |
да |
A_I |
нет |
ключевой |
|
fk_show |
smallint |
нет |
нет |
нет |
ключевой |
||
place |
varchar (50) |
да |
нет |
нет |
описательный |
||
date |
timestamp |
нет |
CURRENT_TIMESTAMP |
нет |
описательный |
||
director |
varchar (55) |
да |
нет |
нет |
описательный |
||
musical_accompaniment |
varchar (50) |
да |
нет |
нет |
описательный |
||
show |
pk_show |
smallint |
да |
A_I |
нет |
ключевой |
|
nameShow |
varchar (60) |
да |
нет |
нет |
описательный |
||
budget |
decimal (7,2) |
да |
нет |
нет |
описательный |
||
genre |
varchar (65) |
да |
нет |
нет |
описательный |
||
year |
year |
да |
нет |
нет |
описательный |
||
user |
pk_user |
smallint |
да |
A_I |
нет |
ключевой |
|
fk_actor |
smallint |
нет |
нет |
нет |
ключевой |
||
login |
varchar(30) |
да |
нет |
нет |
описательный |
||
pass |
varchar(255) |
да |
нет |
нет |
описательный |
||
role |
set('ththr_actor', 'ththr_director', 'ththr_admin') |
да |
нет |
'ththr_actor', 'ththr_director', 'ththr_admin' |
описательный |
||
dateOfReg |
timestamp |
нет |
CURRENT_TIMESTAMP |
нет |
описательный |
||
banned |
boolean (true/false) |
нет |
нет |
нет |
описательный |
||
banlist |
pk_banlist |
smallint |
да |
A_I |
нет |
ключевой |
|
fk_user |
smallint |
нет |
нет |
нет |
ключевой |
||
reason |
varchar(90) |
да |
нет |
нет |
описательный |
||
date_of_ban |
timestamp |
нет |
CURRENT_TIMESTAMP |
нет |
описательный |
||
messages |
pk_message |
smallint |
да |
A_I |
нет |
ключевой |
|
fk_user |
smallint |
нет |
нет |
нет |
ключевой |
||
author |
text |
да |
нет |
нет |
описательный |
||
message |
text |
да |
нет |
нет |
описательный |
Также были определены ссылочные параметры связей между таблицами как показано в таблице 17.
Таблица 17 - Параметры связей
Сущность |
При удалении |
При обновлении |
Ранг связи |
Сущность |
|
Актер |
SET NULL |
CASCADE |
1-N |
Премия |
|
Актер |
SET NULL |
CASCADE |
1-N |
Контракт |
|
Актер |
SET NULL |
CASCADE |
1-N |
Пользователь |
|
Премьера |
SET NULL |
CASCADE |
1-N |
Контракт |
|
Контракт |
NO ACTION |
CASCADE |
1-N |
Контракт_роль |
|
Роль |
NO ACTION |
CASCADE |
1-N |
Контракт_роль |
|
Роль |
SET NULL |
CASCADE |
1-N |
Награда |
|
Спектакль |
SET NULL |
CASCADE |
1-N |
Роль |
|
Спектакль |
SET NULL |
CASCADE |
1-N |
Премьера |
|
Пользователь |
SET NULL |
CASCADE |
1-N |
Бан-лист |
|
Пользователь |
SET NULL |
CASCADE |
1-N |
Сообщения |
В ходе физического проектирования была получена схема базы данных для реализации в СУБД MySQL как показано на рисунке 38. Для построения использовалась инструментальная CASE-среда MySQL Wokbench.
Рисунок 38 - Физическая схема базы данных
Физическое проектирование базы данных сводится к реализации базы данных в конкретной СУБД, в данном случае в СУБД MySQL.
2.6 Разработка компонентов АИС
2.6.1 Логика, вынесенная на сервер баз данных
Элементы логики, вынесенные с сервера приложений трехзвенной структуры приложения на сервер баз данных, представлены хранимыми процедурами, триггерами и представлениями.
Реализованные в базе данных процедуры представлены в таблице 18, триггеры - в таблице 19, а представления - в таблице 20.
Таблица 18 - Хранимые процедуры базы данных «Занятость актеров театра»
Название процедуры |
Входные параметры |
Выходные параметры |
Описание |
Применение |
|
1. amountIsntLoginElTheatre |
нет |
Значение (smallint) |
Число актеров, не зарегистрированных на сайте |
Вариант использования «Просмотр информации по конкретным параметрам» |
|
2. amountOfActorsWithoutReward |
нет |
Значение (smallint) |
Число актеров, не имеющих премий (наград) |
Вариант использования «Просмотр информации по конкретным параметрам» |
|
3. arw |
Номер актера |
Значение (smallint) |
Число наград у конкретного актера |
Вариант использования «Просмотр информации по конкретным параметрам» |
|
4. del_actor |
Номер актера |
нет |
Запрос на удаление конкретного актера из базы данных |
Вариант использования «Удаление» |
|
5. insContrRole |
Номер контракта, Номер роли |
нет |
Запрос на добавление уже существующего контракта на роль в спектакле |
Вариант использования «Добавление» |
|
6. insReward |
Все поля таблицы reward, кроме номера награды и количества награды |
нет |
Запрос на добавление награды актеру |
Вариант использования «Добавление» |
|
7. insRole |
Все поля таблицы role, кроме номера роли |
нет |
Запрос на добавление роли в конкретном спектакле |
Вариант использования «Добавление» |
|
8. isLoginElTheatre |
ФИО актера, адрес его электронной почты |
Boolean (false / true) |
Запрос на проверку существования актера в базе данных |
Вариант использования «Регистрация» |
|
9. isnCntrct |
Все поля таблицы contract кроме номера контракта и даты заключения контракта |
нет |
Запрос на добавление контракта в базу данных |
Вариант использования «Добавление» |
|
10. isnPrmr |
Все поля таблицы premiere кроме номера премьеры и даты премьеры |
нет |
Запрос на добавление премьеры в базу данных |
Вариант использования «Добавление» |
|
11. regElTheatre |
Логин, пароль, номер актера |
нет |
Запрос на добавление пользователя в базу данных |
Вариант использования «Регистрация» |
|
12. regTheatre |
Все данные актера кроме его номера и количества наград |
нет |
Запрос на добавление актера в базу данных |
Вариант использования «Добавление» |
|
13. rewMoreThan50000 |
нет |
Все поля таблицы reward |
Запрос информации о наградах стоимостью от 50000 руб. |
Вариант использования «Просмотр информации по конкретным параметрам» |
|
14. rlswthcnrt |
нет |
Значение (smallint) |
Число ролей на которые не были заключены контракты |
Вариант использования «Просмотр информации по конкретным параметрам» |
|
15. viewSizeofRewards |
нет |
ФИО актера, сумма размера премий (наград) |
Запрос информации о сумме наград |
Вариант использования «Просмотр информации по конкретным параметрам» |
Таблица 19 - Триггеры базы данных «Занятость актеров театра»
Таблица, на которой срабатывает событие |
Событие |
Таблица |
Описание |
Реализация |
Применение |
|
reward |
AFTER INSERT (после вставки) |
actor |
После того как была добавлена награда актеру, то количество его наград увеличивается на единицу. |
При добавлении записи в таблицу reward, находится запись с соответствующим номером актера, увеличивается значение поля countOfrewards увеличивается на 1. |
Вариант использования «Добавление» |
|
reward |
AFTER DELETE (после удаления) |
actor |
После того как была удалена награда у актера, то количество его наград уменьшается на единицу. |
При удалении записи из таблицы reward, находится запись с соответствующим номером актера pk_actor, увеличивается значение поля countOfrewards уменьшается на 1. |
Вариант использования «Удаление» |
|
ban_upd |
AFTER UPDATE (после обновления) |
banlist |
После того как пользователь был заблокирован, то информация о нем вносится в таблицу бан-листа, а если он разблокирован, соответственно информация автоматически удаляется из таблицы бан-листа. |
При обновлении записи из таблицы user, находится запись с соответствующем номером пользователя pk_user, добавляется запись о пользователе в таблицу banlist - если пользователь был заблокирован, а если разблокирован - то соответственно удаляется запись о пользователе из таблицы banlist. |
Варианты использования «Бан пользователей» и «Снятие бана с пользователей» |
Таблица 20 - Представления базы данных «Занятость актеров театра»
Входные параметры |
Выходные параметры |
Описание |
Применение |
|
Номер актера |
Поля из объединенных таблиц user, show, actor, contract_role, contract, role и show |
Вывод таблицы ролей и спектаклей в которых играет конкретный актер |
Вариант использования «Поиск информации по конкретным параметрам» |
|
Номер актера |
Поля из объединенных таблиц user, show, actor, contract_role, contract, role и show |
Вывод таблицы спектаклей в которых играет конкретный актер |
Вариант использования «Поиск информации по конкретным параметрам» |
|
Номер актера |
Поля из объединённых таблиц reward, role и show |
Вывод таблицы наград которые получил конкретный актер за конкретную роль |
Вариант использования «Поиск информации по конкретным параметрам» |
2.6.2 Логика, выполняющаяся на сервере приложения
Элементы логики, выполняющиеся на сервере приложений, представлены запросами к базе данных, представлены в таблице 21.
Таблица 21 - Запросы к базе данных «Занятость актеров театра»
Входные параметры |
Выходные параметры |
Описание |
Применение |
|
Номер пользователя, причина бана |
нет |
Ввод причины бана для конкретного пользователя |
Вариант использования «Бан пользователей» |
|
Причина бана, номер пользователя |
нет |
Обновление таблицы бан-листа |
Вариант использования «Бан пользователей» |
|
нет |
Поля из объединенных таблиц actor, show, role, premiere |
Поиск информации по актерам сыгравшим в определенных спектаклях которые уже являются премьерами и ролям которые они играют в этих спектаклях |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из таблицы actor |
Поиск информации по актерам |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет / Номер актера |
Поля из объединенных таблиц actor, role, show, contract |
Поиск информации по контрактам которые заключили актеры |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединенных таблиц role, contract_role, contract |
Поиск по контрактам которые заключили актеры на определенные роли |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединенных таблиц show и premiere |
Поиск по премьерам спектаклей |
Вариант использования «Поиск информации по конкретным параметрам» |
|
неи |
Поля из объединённых таблиц user, actor |
Поиск по зарегистрированным на сайте актерам |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединенных таблиц actor и reward |
Поиск по актерам и наградам которые они получили |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединённых таблиц actor, role, show |
Поиск по спектаклям и ролям которые играют различные актеры |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из таблицы show |
Поиск по спектаклям |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединённых таблиц banlist и user |
Просмотр пользователей которые находятся в бан-листе |
Вариант использования «Просмотр бан-листа» |
|
Номер актера |
нет |
Редактирование информации об актере |
Вариант использования «Редактирование» |
|
Поля из таблицы actor |
нет |
Обновление информации об актере |
Вариант использования «Редактирование» |
|
Номер сообщения |
нет |
Редактирование сообщения |
Вариант использования «Редактирование сообщений» |
|
Поля из объединенных таблиц messages и user |
нет |
Обновление сообщения |
Вариант использования «Редактирование» |
|
Поля из объединенных таблиц actor, show, contract |
нет |
Редактирование информации о конкретном контракте |
Вариант использования «Редактирование» |
|
Номер контракта |
нет |
Обновление информации о контракте |
Вариант использования «Редактирование» |
|
Поля из объединенных таблиц premiere и show |
нет |
Редактирование информации о конкретной премьере спектакля |
Вариант использования «Редактирование» |
|
нет |
Поля из объединенных таблиц role, contract_role, contract |
Поиск по контрактам которые заключили актеры на определенные роли |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет / Номер актера |
Поля из объединенных таблиц show и premiere |
Поиск по премьерам спектаклей |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединённых таблиц user, actor |
Поиск по зарегистрированным на сайте актерам |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединенных таблиц actor и reward |
Поиск по актерам и наградам которые они получили |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединённых таблиц actor, role, show |
Поиск по спектаклям и ролям которые играют различные актеры |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из таблицы show |
Поиск по спектаклям |
Вариант использования «Поиск информации по конкретным параметрам» |
|
нет |
Поля из объединённых таблиц banlist и user |
Просмотр пользователей которые находятся в бан-листе |
Вариант использования «Просмотр бан-листа» |
|
Номер актера |
нет |
Редактирование информации об актера |
Вариант использования «Редактирование» |
|
Поля из таблицы actor |
нет |
Обновление информации об актере |
Вариант использования «Редактирование» |
|
Номер сообщения |
нет |
Редактирование сообщения |
Вариант использования «Редактирование сообщений» |
|
Поля из объединенных таблиц messages и user |
нет |
Обновление сообщения |
Вариант использования «Редактирование» |
|
Номер контракта |
нет |
Редактирование информации о контракте |
Вариант использования «Редактирование» |
|
Поля из объединенных таблиц actor, show, contract |
нет |
Обновление информации о конкретном контракте |
Вариант использования «Редактирование» |
|
Номер премьеры |
нет |
Редактирование информации о конкретной премьере спектакля |
Вариант использования «Редактирование» |
|
Поля из объединенных таблиц premiere и show |
нет |
Обновление информации о конкретной премьере спектакля |
Вариант использования «Редактирование» |
|
Номер награды |
нет |
Редактирование информации о конкретной награде актера |
Вариант использования «Редактирование» |
|
Поля из объединенных таблиц actor и reward |
нет |
Обновление информации о конкретной награде актера |
Вариант использования «Редактирование» |
|
Номер роли |
нет |
Редактирование информации о конкретной роли |
Вариант использования «Редактирование» |
|
Поля из объединенных таблиц role и show |
нет |
Обновление информации о конкретной роли |
Вариант использования «Редактирование» |
|
Номер спектакля |
нет |
Редактирование информации о конкретном спектакле |
Вариант использования «Редактирование» |
|
Поля из таблицы show |
нет |
Обновление информации о конкретном спектакле |
Вариант использования «Редактирование» |
2.7 Защита и поддержание целостности базы данных
Избирательная схема управления доступом реализована на уровне приложения.
Когда пользователь регистрируется на сайте, то подразумевается, что он входит под какой-то учетной записью. Для того чтобы определить его учетную запись нужны уровни доступа (роли). Они определены в базе данных, в таблице user. После регистрации на сайте пользователь имеет право войти на него. Уровни доступа (роли) записываются в сессию которая открывается функцией session_start() в начале PHP-скрипта.
При авторизации пользователя на сайте в его сессию записывается роль, под которой он входит на сайт. В соответствии с его ролью он может войти либо в личный кабинет (если он вошел под учетной записью актера), либо на страницу, предназначенную только для администратора (если он вошел под учетной записью администратора), либо на страницу, предназначенную только для директора (если он вошел под учетной записью директора). В базе данных «Занятость актеров театра» определены три уровня доступа (роли): актер, директор и администратор.
В базе данных пароли пользователей хранятся в хэшированном виде. Для этого используется API хэширования паролей в PHP:
- функция BCRYPT - алгоритм по умолчанию, основанный на шифре Blowfish с заданием стоимости вычисления;
- функция повторного хэширования в случае изменения алгоритма или стоимости вычисления.
Поддержание целостности базы данных реализовано соответствием структуры базы данных третьей нормальной форме и заданием параметров связей между таблицами.
Первая нормальная форма (1НФ) предопределяет атомарность всех данных, содержащихся в столбцах. Слово "атом" происходит от латинского "atomis", что буквально означает "не подлежащий разделению". 1НФ задает существование в каждой позиции, определяемой строкой и столбцом, только одного значения, а не массива или списка значений.
Ко Второй нормальной форме (2НФ) можно перейти от таблицы, которая уже соответствует 1НФ. Дополнительно должно выполняться следующее условие: каждое неключевое поле должно полностью зависеть от первичного ключа.
Считается, что таблица соответствует Третьей нормальной форме (3НФ), если она соответствует 2НФ и все не ключевые столбцы взаимно независимы.
Столбец, значения которого получаются вычислением на основе данных из других столбцов, представляет собой один из примеров зависимости. [20]
Из методов борьбы с инъекциями использовались возможность подготовки запросов в PDO (prepared statement), а также контроль вводимых данных.
trim -- удаляет пробелы (или другие символы) из начала и конца строки. [21]
htmlspecialchars -- преобразует специальные символы в HTML-сущности. [22]
Длина - это количество знакомест, в которых будет размещено все число при его передаче, а знаки - это количество знаков после десятичной точки, которые будут учитываться. [23]
Регулярные выражения (сокращенно -- regex) представляют собой последовательности символов, которые формируют шаблоны поиска. В основном они используются в шаблонах сопоставления со строками. [24]
Любой загружаемый файл будет помещен в специальную директорию для временного хранения, а связанная с ним информация добавлена в суперглобальный массив $_FILES. Если не переместить файл в другое место, после завершения скрипта произойдет его бесследное удаление. Директория временного хранения определяется настройкой upload_tmp_dir конфигурационного файла php.ini.
Если вместе с текущим запросом были загружены файлы, PHP-интерпретатор автоматически заполнит суперглобальный массив $_FILES соответствующей информацией. Его структура довольно проста. Элементы массива соответствуют именам параметров HTTP-запроса.
Содержимое массива $_FILES:
- $_FILES['поле-запроса']['name'] -- реальное имя файла, которое он имел до отправки.
- $_FILES['поле-запроса']['size'] -- размер загруженного файла в байтах.
- $_FILES['поле-запроса']['type'] -- MIME-тип файла.
- $_FILES['поле-запроса']['tmp_name'] -- содержит имя файла, которое назначил ему интерпретатор при размещении во временную директорию;
- $_FILES['поле-запроса']['error'] -- код ошибки, возникшей при загрузке. Если всё нормально, элемент будет иметь значение «0».
Поле веб-формы может иметь атрибут multiple, позволяющий осуществлять множественный выбор файлов. В таком случае элементы name, size, type, tmp_name и error будут являться массивами. Например, загружены два файла через поле формы с именем test-file. Получить имя первого файла можно в $_FILES['test-file']['name'][0], а второго $_FILES['test-file']['name'][1]. [25]
Функция getimagesize() определяет размер изображения GIF, JPG, PNG, SWF, PSD, TIFF или BMP и возвращает размеры, тип файла и высоту/ширину текстовой строки, используемой внутри нормального HTML-тэга IMG. [26]
2.8 Программа и методики испытаний АИС
Для АИС устанавливают следующие основные виды испытаний:
- предварительные;
- опытная эксплуатация;
- приемочные.
Предварительные испытания АИС проводят для определения ее работоспособности и решения вопроса о возможности приемки AИC в опытную эксплуатацию.
В ходе предварительных испытаний выполняются следующие проверки функциональности АИС:
- автономные испытания;
- комплексные испытания.
2.8.1 Средства и порядок испытаний
Для проведения предварительных испытаний АИС должно использоваться следующее программное обеспечение:
- web-сервер: Apache версии 2.4;
- система управления базами данных: MySQL версии 5.6;
- язык программирования PHP версии 5.5.
На рабочей станции клиентов для работы с системой должны быть установлены браузер Microsoft Internet Explorer версии 8 и выше или Mozilla Firefox версии 23 и выше, Google Chrome, Opera, Android Browser, Safari, Яндекс.Браузер и пр.
Для обеспечения работы всех функций АИС необходимо разрешить выполнение браузером JavaScript.
Рабочее место: ПК с установленной ОС Windows и веб-браузером Mozilla Firefox версии 23 или выше.
Испытания системы проводятся в условиях нормального функционирования систем электропитания.
В ходе курсового проекта документированию испытаний АИС подлежит подсистема «Общение в чате».
Последовательно будут проводиться компонентное и интеграционное тестирование. При компонентном тестировании подсистемы испытываются процедуры и запросы к БД. При интеграционном тестировании - вся подсистема в целом на соответствие требованиям и внутренние взаимодействия отдельных компонентов.
Для проведения тестирования используется веб-браузер.
Для проведения функционального тестирования подсистемы «Общение в чате» были произведены подготовительные действия по наполнению базы данных, результаты представлены в Приложении Б.
Испытания АИС проводятся в объеме и последовательности, представленной в методике проведения испытаний, представленных в п. 2.8.2.
Оценки правильности реализации функционала системы получаются посредством анализа реакции системы на выполнение теста. При сравнении полученного и ожидаемого результатов используется шкала оценки результатов испытаний (Таблица 22). Результаты выполнения тестов фиксируются (Приложение В).
Таблица 22 - Критерии оценки результатов тестов
Оценка результатов |
Критерии выставления оценки |
|
соответствует |
Ожидаемый и полученный результат идентичны, тестовый пример пройден без замечаний |
|
соответствует с замечаниями |
Полученный результат соответствует ожидаемому результату, однако при выполнении тестового примера возникли замечания по реализации функционала |
|
не соответствует |
Не удалось выполнить тест, либо ожидаемый и полученный результаты существенно отличаются |
2.8.2 Методы испытаний
Тестовый случай (Test Case) - это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части. [27]
Компонентное тестирование (также известное как модульное) занимается поиском дефектов и верификацией функционирования программных модулей, программ, объектов, классов и т.п., которые можно протестировать изолированно. Это может быть сделано изолированно от остальной части системы, в зависимости от контекста жизненного цикла разработки и системы. В процессе могут быть использованы заглушки, драйвера и эмуляторы. Компонентное тестирование может включать как тестирование функциональности и специфичных нефункциональных характеристик, таких как поведение ресурсов (например, поиск утечки памяти) или тестирование надежности, так и структурное тестирование (например, покрытие кода). [28]
Интеграционное тестирование позволяет произвести тестирование логики взаимосвязей между более крупными частями приложения и выявить дефекты, возникшие при объединении модулей.
Интеграционное тестирование позволяет убедиться в том, могут ли объединенные модули работать без ошибок. Как правило, интеграционное тестирование проводят после модульного тестирования. [29]
Функциональное тестирование -- это часть процесса проверки соответствия поведения системы первоначально заявленным функциональным требованиям. Цель проведения функционального тестирования -- подтвердить, что система реализована в соответствии с предъявленными к ней функциональными требованиями и полностью готова к работе. [30]
Программа и методика испытаний - это документ, входящий в комплект конструкторской документации, составляемой на автоматизированную систему или программу на стадии разработки. Программа методики испытаний призвана установить технические данные, которые подлежат проверке во время испытаний всей системы в целом или ее отдельных компонентов. Этим документом устанавливается порядок опытов и способы контроля их результатов. [31]
SQL является стандартом ANSI (American National Standards Institute) для систем доступа к базам данных. Выражения SQL применяются для получения и обновления данных в базе данных. [32]
SQL - это структурированный язык запросов, созданный для управления реляционными БД. Он обладает широким перечнем возможностей, например, создать таблицу, редактировать и удалять данные, производить запросы из таблиц и многое другое. [33]
Команды языка SQL, условно, можно разделить на группы:
- DCL (Data Control Language) - язык управления данными. Команды языка предназначены для управления доступом к информации, хранящейся в БД;
- DDL (Data Definition Language) - язык определения данных. Его команды используются для создания и изменения структуры объектов БД;
- DML (Data Manipulation Language) - язык манипулирования данными. Используется для манипулирования информацией, содержащейся в объектах БД;
- DQL (Data Query Language) - язык запросов к данным. Наиболее часто используемая группа, состоящая всего из одного оператора SELECT, предназначенного для формирования запросов к БД;
- TCL (Transaction Control Language) - язык управления транзакциями;
- CCL (Cursor Control Language) - язык управления курсором. [34]
Таблица 23 - Тест-кейс #1 - Отрицательный тест-кейс
1. Проверка фильтрации спама / флуда в чате |
||||
Подсистема |
Вариант использования |
Действия |
Ожидаемое поведение |
|
Общение в чате |
Добавление сообщений |
1. Открыть сайт actors.ru 2. Войти под любой учетной записью, если она не является заблокированной. 3. Перейти на ссылку-вкладку «Чат». 4. Написать в текстовое поле: «???? Добро пожаловать ?????Only 24/7?https://discord.gg/Hw5yfr2?». 5. Нажать кнопку «Отправить» |
Фильтрация спама / флуда, вывод сообщения о том что на сайте нельзя спамить |
Таблица 24 - Тест-кейс #2 - Положительный тест-кейс
2. Проверка фильтрации нецензурных слов в чате |
||||
Подсистема |
Вариант использования |
Действия |
Ожидаемое поведение |
|
Общение в чате |
Добавление сообщений |
1. Открыть сайт actors.ru 2. Войти под любой учетной записью, если она не является заблокированной. 3. Перейти на ссылку-вкладку «Чат». 4. Написать в текстовое поле: «очень плохое слово». 5. Нажать кнопку «Отправить» |
Фильтрация нецензурных слов, вывод сообщения о том что на сайте нельзя выражаться нецензурной бранью |
Таблица 25 - Тест-кейс #3 - Положительный тест-кейс
3. Проверка работоспособности чата и отображения сообщений |
||||
Подсистема |
Вариант использования |
Действия |
Ожидаемое поведение |
|
Общение в чате |
Просмотр сообщений |
1. Открыть сайт actors.ru 2. Войти под любой учетной записью, если она не является заблокированной. 3. Перейти на ссылку-вкладку «Чат». |
Корректный вывод ранее отправленных сообщений в чате |
|
Добавление сообщений |
1. Написать в текстовое поле: «Доброго всем дня.». 2. Нажать кнопку «Отправить» |
Корректная отправка сообщения и корректный вывод отправленного сообщения в чате |
Таблица 26 - Тест-кейс #4 - Отрицательный тест-кейс
4. Проверка работоспособности чата и отображения сообщений |
||||
Подсистема |
Вариант использования |
Действия |
Ожидаемое поведение |
|
Общение в чате |
Просмотр сообщений |
1. Открыть сайт actors.ru 2. Войти под любой учетной записью, если она не является заблокированной. 3. Перейти на ссылку-вкладку «Чат». |
Корректный вывод ранее отправленных сообщений, обычные слова присутствующие в тексте сообщения не помечаются как нецензурные |
|
Добавление сообщений |
1. Написать в текстовое поле: «Добрый всем день!». 2. Нажать кнопку «Отправить» |
Корректная отправка сообщения и корректный вывод отправленного сообщения в чате, обычные слова присутствующие в тексте сообщения не помечаются как нецензурные |
Результаты испытаний представлены в Приложении В.
Структурированный язык запросов SQL реализуется в следующих формах:
- Интерактивный SQL;
- Статический SQL;
- Динамический SQL;
- Встроенный SQL.
Интерактивный SQL позволяет конечному пользователю в интерактивном режиме выполнять SQL-операторы. Все СУБД предоставляют инструментальные средства для работы с базой данных в интерактивном режиме. Например, СУБД Oracle включает утилиту SQL*Plus, позволяющую в строчном режиме выполнять большинство SQL-операторов.
Статический SQL может реализовываться как встроенный SQL или модульный SQL. Операторы статического SQL определены уже в момент компиляции программы.
Динамический SQL позволяет формировать операторы SQL во время выполнения программы.
Встроенный SQL позволяет включать операторы SQL в код программы на другом языке программирования (например, С++). [35]
Заключение
В ходе курсового проектирования я приобрела и закрепила полученные теоретические знания и практические умения, опыт с разработкой:
- основного алгоритма решения;
- базы данных на СУБД MySQL;
- веб-приложения на языке PHP;
- пользовательского интерфейса веб-приложения;
- диаграмм использования и диаграмм последовательности.
Я изучала предметную область, связанную с занятостью актеров театра, определяла функциональные требования и разработала спецификации к автоматизированной системе, спроектировала пользовательский интерфейс для этой автоматизированный системы, закрепила основные принципы построения концептуальной, логической и физической модели данных, построила схему базы данных в инструментальной CASE-среде MySQL Wokbench, создавала объекты базы данных в СУБД MySQL, использовала средства заполнения базы данных. Также я создавала хранимые процедуры и триггеры на базах данных, выполняла запросы к базе данных, разрабатывала автоматизированную систему на базе данных, разработала пользовательский интерфейс для этой автоматизированной системы и применяла стандартные методы для защиты объектов базы данных. В целом я разрабатывала объекты базы данных, реализовала базу данных в популярной системе управления базами данных (СУБД) MySQL, решала вопросы администрирования базы данных и реализовывала методы и технологии защиты информации в базе данных. Для реализации базы данных в системе управления базами данных MySQL мне пришлось выбрать архитектуру и типового клиента доступа в соответствии с технологией разработки базы данных и выбрать технологию разработки базы данных исходя из её назначения. Также я определила вид и архитектуру сети, в которой находится база данных и определила модель автоматизированной системы, связанной с занятостью актеров театра.
Я сформировала знания, умения и навыки профессиональных компетенций, профессионально значимые личностные качества, мотивационно-целостное отношение к профессиональной деятельности, развила профессиональной интерес и изучила такие технологии как CSS и JavaScript, тем самым пополнив свой практический опыт по написанию веб-приложений.
Список литературы
1. Театральный словарь [Электронный ресурс] // Режим доступа: http://theaterorel.ru/visit/theater_etiquette/dictionary/ (Дата обращения: 02.06.2018)
2. Профессиограмма - Актер [Электронный ресурс] // Режим доступа: https://sevtrud.ru/professiograms/detail/b2396270-8bd9-478b-a81e-e1bec5dfcd05 (Дата обращения: 02.06.2018)
3. Руководители театра [Электронный ресурс] // Режим доступа: http://www.glossary.ru/cgi-bin/gl_sch2.cgi?R1dQzquiukxyiu (Дата обращения: 02.06.2018)
4. Архитектура информационной системы [Электронный ресурс] // Режим доступа: https://spravochnick.ru/bazy_dannyh/bazy_dannyh_vvedenie/arhitektura_informacionnoy_sistemy/ (Дата обращения: 02.06.2018)
5. Трёхуровневая архитектура -- PL Engineering [Электронный ресурс] // Режим доступа: https://clck.ru/DW7BU (Дата обращения: 02.06.2018)
6. Модели баз данных | Системы управления базами данных [Электронный ресурс] // Режим доступа: http://www.internet-technologies.ru/articles/modeli-baz-dannyh-sistemy-upravleniya-bazami-dannyh.html (Дата обращения: 02.06.2018)
7. Общая характеристика языка UML [Электронный ресурс] // Режим доступа: http://www.informicus.ru/default.aspx?SECTION=6&id=73&subdivisionid=2 (Дата обращения: 02.06.2018)
8. Проектирование программного обеспечения [Электронный ресурс] // Режим доступа: https://habr.com/post/74330/ (Дата обращения: 02.06.2018)
9. Теория и практика UML. Диаграмма последовательности [Электронный ресурс] // Режим доступа: http://it-gost.ru/articles/view_articles/94 (Дата обращения: 04.06.2018)
10. Настройка сервера баз данных MySQL в операционной системе Windows [Электронный ресурс] // Режим доступа: https://netbeans.org/kb/docs/ide/install-and-configure-mysql-server_ru.html (Дата обращения: 02.06.2018)
11. Что такое веб сервер Apache, описание и настройки [Электронный ресурс] // Режим доступа: http://hostgid.net/baza-znanii/hosting/chto-takoe-apache.html (Дата обращения: 02.06.2018)
12. Что такое браузер? 5 популярных браузеров [Электронный ресурс] // Режим доступа: http://masterservis24.ru/71-chto-takoe-brauzer-5-populyarnyh-brauzerov.html (Дата обращения: 02.06.2018)
13. Что такое PHP? [Электронный ресурс] // Режим доступа: http://php.net/manual/ru/intro-whatis.php (Дата обращения: 02.06.2018)
14. HTML [Электронный ресурс] // Режим доступа: http://ep-z.ru/stroitelstvo/sayt/html (Дата обращения: 02.06.2018)
15. Что такое CSS [Электронный ресурс] // Режим доступа: http://css.manual.ru/articles/what_is_css (Дата обращения: 02.06.2018)
16. Что такое JavaScript и для чего он используется? [Электронный ресурс] // Режим доступа: http://juice-health.ru/programming/439-javascript (Дата обращения: 02.06.2018)
17. jQuery | WebReference [Электронный ресурс] // Режим доступа: https://webref.ru/layout/advanced-html-css/jquery (Дата обращения: 02.06.2018)
18. jQuery UI Учебник [Электронный ресурс] // Режим доступа: http://www.wisdomweb.ru/JQ/ui.php (Дата обращения: 03.06.2018)
19. Основы работы с MySQL Workbench: быстрый старт, управление схемой данных [Электронный ресурс] // Режим доступа: http://mithrandir.ru/professional/soft-and-hardware/mysql-workbench-basics.html (Дата обращения: 03.06.2018)
20. Системы автоматизированной обработки информации [Электронный ресурс] // Режим доступа: http://www.gaps.tstu.ru/win-1251/lab/sreda/saoi/lect_g2.html (Дата обращения: 02.06.2018)
21. PHP: trim - Manual [Электронный ресурс] // Режим доступа: http://php.net/manual/ru/function.trim.php (Дата обращения: 02.06.2018)
22. PHP: htmlspecialchars - Manual [Электронный ресурс] // Режим доступа: http://php.net/manual/ru/function.htmlspecialchars.php (Дата обращения: 02.06.2018)
23. Поля и их типы в MySQL [Электронный ресурс] // Режим доступа: http://www.php.su/mysql/?fields (Дата обращения: 02.06.2018)
24. Регулярные выражения в PHP [Электронный ресурс] // Режим доступа: http://www.internet-technologies.ru/articles/regulyarnye-vyrazheniya-v-php.html (Дата обращения: 02.06.2018)
25. Загрузка файлов в PHP [Электронный ресурс] // Режим доступа: https://coder-booster.ru/learning/php-practice/uploading-files-to-the-server (Дата обращения: 02.06.2018)
26. Загрузка файлов на сервер с помощью PHP. Основные уязвимости и способы их избежать [Электронный ресурс] // Режим доступа: https://biznesguide.ru/coding/119.html (Дата обращения: 02.06.2018)
27. Про Тестинг - Тестирование - Тестовый случай [Электронный ресурс] // Режим доступа: http://www.protesting.ru/testing/testcase.html (Дата обращения: 02.06.2018)
28. Тестирование ПО [Электронный ресурс] // Режим доступа: http://testingcourse.ru/docs/testing-levels (Дата обращения: 02.06.2018)
29. Интеграционное тестирование [Электронный ресурс] // Режим доступа: https://xbsoftware.ru/testirovanie-po/polnij-tsykl/integratsionnoe-testirovanie/ (Дата обращения: 02.06.2018)
30. Функциональное тестирование мобильных приложений, прикладного программного обеспечения [Электронный ресурс] // Режим доступа: http://getbug.ru/funktsionalnoe-testirovanie/ (Дата обращения: 02.06.2018)
31. Программа и методика испытаний [Электронный ресурс] // Режим доступа: http://www.swrit.ru/programma-i-metodika-ispytanij.html (Дата обращения: 02.06.2018)
32. Школы консорциума W3C [Электронный ресурс] // Режим доступа: http://xml.nsu.ru/sql/sql_intro.xml (Дата обращения: 02.06.2018)
33. Что такое база данных MySQL? [Электронный ресурс] // Режим доступа: http://blogwork.ru/chto-takoe-baza-dannyx-mysql/ (Дата обращения: 03.06.2018)
34. Группы операторов. Типы данных [Электронный ресурс] // Режим доступа: http://baumanki.net/lectures/10-informatika-i-programmirovanie/362-proektirovanie-baz-dannyh-na-sql/4889-19-gruppy-operatorov-tipy-dannyh.html (Дата обращения: 07.06.2018)
35. Язык доступа к базам данных: Основы SQL [Электронный ресурс] // Режим доступа: http://datasql.ru/sqlandpol/2.htm (Дата обращения: 07.06.2018)
Приложения
Приложение А
Спецификации требований
А.1 Описание варианта использования «Регистрация»
Рисунок А.1 - Диаграмма последовательности для варианта использования «Регистрация»
Незарегистрированный пользователь заходит на страницу с регистрацией и сначала он попадает на страницу, где отображается окно с содержимым пользовательского соглашения, содержащее правила сайта, и отметить галочкой, что он согласен с правилами сайта и обязуется их выполнять, а после отметки незарегистрированный пользователь перенаправляется на предрегистрационную страницу. Если же он не отметил галочку, то ему выводится сообщение о том, что ему нужно галочку обязательно пометить. Он вводит там свои данные, которые отправляются в качестве ответа на сайт, с сайта на веб-сервер, а с веб-сервера в базу данных. Вначале проверяется корректность введенных данных на сайте (если данные были некорректно введены - то актеру отображается сообщение об этом), а затем с базы данных приходит ответ: зарегистрирован ли такой пользователь в базе данных и этот ответ направляется веб-серверу, потом сайту, а затем уже и самому актеру. В случае если пользователь был найден, то сайт отображает ему уже регистрационную страницу, где он может ввести свои логин и пароль. В противном случае ему отображается сообщение о том, что он не был найден в базе данных АИС УЗАТ. Затем после того, как пользователь нажал кнопку «Зарегистрироваться», то сайт проверяет корректность введенных данных заново, отправляет запрос веб-серверу, а веб-сервер перенаправляет этот запрос базе данных. Затем с базы данных приходит ответ об успешной регистрации на сайте и этот ответ направляется веб-серверу, затем перенаправляется сайту, а на сайте выводится сообщение о том, что актер был успешно зарегистрирован на сайте. В противном же случае ему выводится сообщение о том, что его учетная запись уже была зарегистрирована на сайте ранее.
Регистрация на сайте позволяет получить доступ к функциям сайта: для директора это функции просмотра и поиска информации, а также проверки ее на корректность, для администратора это функции администрирования информации размещенной на сайте, такие как редактирование, удаление и добавление информации связанной с театральной деятельностью (то есть всей информации которая связана с актерами, спектаклями, премьерами спектаклей, ролями, наградами для конкретных актеров и зарегистрированными на сайте актерами), а для актера это функции редактирования информации связанной с ним (то есть информации которая содержит список ролей которые он играет в конкретных спектаклях, например), а также просмотра и поиска информации интересующей актера.
А.2 Описание варианта использования «Авторизация»
Рисунок А.2 - Диаграмма последовательности для варианта использования «Авторизация»
Пользователь нажимает на ссылку «Войти» в меню сайта и попадает на страницу с авторизацией. Там он вводит свои логин и пароль. Сайт проверяет их на корректность.
Также сайт проверяет - нужно ли повторное хэширование пароля в базе данных. Если нужно, то сайт отправляет веб-серверу запрос, смысл которого заключается в том что нужно произвести повторное хэширование пароля, пароль хэшируется, веб-сервер отправляет захэшированный пароль базе данных и пароль снова хэшируется, только уже по-другому. Если же повторное хэширование не нужно, то проверяется соответствие пароля уже существующему хэшу в базе данных. Если пароль соответствует этому хэшу, то пользователь попадает на свою страницу (личный кабинет / страница для администратора / страница для директора). В противном случае пользователю выводится сообщение на экран, которое уведомляет его об этом (в случае если пользователь ввел неправильный пароль / логин). Также сайт перед тем как допустить пользователя на определенную страницу, он проверяет его права: администратор имеет право доступа только к разделу «Для администратора» из меню сайта, в другие разделы он попасть не может, директор имеет право доступа только к разделу «Для директора», а актер тем временем имеет право доступа к разделу «Личный кабинет».
А.3 Описание варианта использования «Связь с администратором»
Рисунок А.3 - Диаграмма последовательности для варианта использования «Связь с администратором»
Вначале пользователь (это может быть актер или директор либо забаненный пользователь) в главном меню сайта нажимает на ссылку «Связаться с администратором по email», заполняет текстовые поля на странице на которую он попадает при нажатии этой ссылки и отправляет письмо администратору нажатием кнопки «Отправить форму». Если одно поле или оба не заполнены - ему выводится сообщение об ошибке и о том, что ему следует заполнить оба поля, в противном же случае ему выводится сообщение о том, что письмо было успешно отправлено.
Связь с администратором (обратная связь) -- это необходимая функция, так как если директор или актер обнаружили какие-то неточности в представленных на сайте данных, то они могут об этом сообщить администратору. А забаненный пользователь может отправить администратору письмо о том, что он хотел бы чтобы его разблокировали и он обещает вести себя в соответствии с правилами сайта, то есть он обещает, что он будет подчиняться правилам сайта АИС УЗАТ которые указаны в пользовательском соглашении которое должен прочесть любой пользователь который хочет зарегистрироваться на сайте перед регистрацией. Также можно оставить отзыв о сайте, написать какие-нибудь пожелания по поводу расширения функционала сайта АИС УЗАТ. Пользователю не нужно вводить свой адрес электронной почты, чтобы связаться с администратором: ему достаточно ввести свое имя и написать в сообщении то, что ему необходимо (например оставить свой отзыв о сайте, указать на неточности в представленной информации на сайте, попросить администратора разблокировать его учетную запись, если она была забанена по каким-то причинам и т.д). На сайте АИС УЗАТ реализована функция фильтрации нецензурной брани, напоминающая о том, чтобы пользователь старался не выражаться нецензурной бранью, так как это нарушает правила сайта АИС УЗАТ.
Подобные документы
Определение функциональных зависимостей. Разработка структуры базы данных. Организация запросов к базе данных. Использование триггеров для поддержки данных в актуальном состоянии. Разработка хранимых процедур и функций. Ограничения ведения базы данных.
курсовая работа [113,2 K], добавлен 17.06.2014Проектирование баз данных, реализация ее серверной части, методика создания таблиц, различных триггеров, хранимых процедур, клиентского приложения. Процедура поиска данных, фильтрации данных, вывода отчета, ввода SQL запросов и вывода хранимых процедур.
контрольная работа [50,1 K], добавлен 30.10.2009Проектирование модели разрабатываемой базы данных гостиниц. Разработка триггеров, хранимых процедур, запросов. Создание пользовательского интерфейса. Автоматизация работы по регистрации, учету, поиску, а также по формированию отчетности о работодателях.
курсовая работа [4,7 M], добавлен 29.11.2015Задачи системы SQL Server. Организация одновременного доступа к данным большого количества пользователей. Манипуляция информацией в базах данных (БД). Инфологическое, логическое и физическое проектирование БД. Разработка запросов, процедур, триггеров.
курсовая работа [3,1 M], добавлен 11.05.2012Проектирование базы данных для автоматизированной системы "Склад". Разработка концептуальной модели (ER-диаграмма). Преобразование в реляционную модель и ее нормализация. Разработка запросов к базе данных на языке SQL. Скрипт для создания базы данных.
курсовая работа [161,8 K], добавлен 07.10.2013Информационные задачи и круг пользователей системы. Выработка требований и ограничений. Разработка проекта базы данных. Программная реализация проекта базы данных. Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных.
курсовая работа [706,2 K], добавлен 17.06.2012Разработка информационной базы данных "Поликлиника" с возможностью просмотра, редактирования, добавления сведений и получения результатов запросов. Создание механизмов управления данными при помощи триггеров. Проектирование пользовательского приложения.
курсовая работа [2,0 M], добавлен 21.06.2011Программные продукты, используемые при проектировании базы данных. Разработка базы данных "Библиотека" с использование программного проекта Microsoft SQL Server. Создание таблиц, триггеров, пользователей, репликации, запросов, функций, процедур.
курсовая работа [897,6 K], добавлен 21.11.2011Понятие базы данных. Разработка таблиц, форм ввода и вывода информации, основных запросов, хранимых процедур и триггеров базы "Доска объявлений". Подготовка для вывода на печать. Анализ необходимости администрирования, средств защиты информации.
курсовая работа [629,5 K], добавлен 20.09.2015Характеристика версионной архитектуры, требований к аппаратному обеспечению, версий, лицензирования кроссплатформенной системы управления базами данных Firebird. Рассмотрение особенностей создания таблиц, триггеров, генераторов, хранимых процедур.
курсовая работа [1,4 M], добавлен 14.03.2010