
- •Аннотация
- •Содержание
- •Введение
- •Анализ предметной области и постановка задачи
- •Цель и направленность разрабатываемого веб-ресурса
- •Обзор аналогичных веб-ресурсов
- •Основные задачи разрабатываемого ресурса
- •Диаграмма прецедентов
- •Техническое задание на разработку веб-ресурса
- •Общие сведения
- •Назначение и цели создания веб-ресурса
- •Требования к веб-ресурсу
- •Источники разработки
- •Обоснование выбора технологий разработки
- •Описание средств для разработки клиентской части
- •Выбор языка программирования для разработки серверной части
- •Скорость разработки
- •Производительность
- •Безопасность
- •Масштабируемость
- •Популярность
- •Сравнительный анализ систем управления базами данных
- •Разработка веб-ресурса
- •Проектирование и разработка бд
- •Информационное и даталогическое проектирование
- •Физическое проектирование
- •Разработка базы данных
- •Разработка дизайна сайта
- •Разработка клиентской и серверной части веб-приложения
- •Архитектура веб-приложения
- •Логическая структура проекта
- •Особенности верстки проекта
- •Тестирование веб-ресурса
- •Заключение
- •Список использованных источников
- •Приложение а
Разработка веб-ресурса
Проектирование и разработка бд
Информационное и даталогическое проектирование
В качестве модели данных была выбрана реляционная модель данных. Следовательно, дальнейшее проектирование БД будет опираться на принципы разработки реляционных баз данных, вот основные из них:
Четкое определение таблиц: каждая таблица должна отражать объект или понятие, которые необходимо отслеживать в БД.
Определение уникальных ключей (primary key) в каждой таблице. Это позволяет идентифицировать каждую запись в таблице и предотвращает дублирование данных, обеспечивая целостность БД.
Использование внешних ключей (foreign key) для связывания таблиц. Это позволяет установить связь между записями в разных таблицах.
Использование нескольких небольших таблиц вместо одной большой. Это упрощает управление БД и повышает её производительность. Кроме того, мы можем добавлять и изменять данные только в одной таблице, не затрагивая остальные.
Первым этапом проектирования базы данных выступает анализ предметной области и построение инфологической модели. В ходе анализа предметной области «Веб-ресурс с развлекательными тестами» были выделены несколько сущностей: Пользователь, Модератор и Тест, а также определены их атрибуты и взаимодействия. Все эти данные отображены на модели предметной области, представленной на рисунке 3.1.
Рисунок 3.1 — Модель предметной области «Веб-ресурс с развлекательными тестами»
Реляционная база данных состоит из таблиц и связей между ними. В вершине иерархии этих таблиц стоит одна большая таблица, так как с помощью нее можно описать всю предметную область. На основании модели предметной области составим единую таблицу предметной области веб-ресурса «ТестРум».
Таблица 3.1 — Единая таблица предметной области «Веб-ресурс с развлекательными тестами».
Веб-ресурс с развлекательными тестами |
|
Пользователь |
Электронная почта |
Логин |
|
Пароль |
|
Модератор |
Электронная почта |
Логин |
|
Пароль |
Продолжение таблицы 3.1 — Единая таблица предметной области «Веб-ресурс с развлекательными тестами».
Тест |
Название |
|
Автор |
||
Описание |
||
Обложка |
||
Категория |
||
Рейтинг |
||
Вопросы |
||
Ответы |
||
Результаты |
Изображение |
|
Текст |
Далее следует разработать и нормализовать таблицы базы данных, опираясь на следующие пункты:
Первая нормальная форма (1NF):
В таблице не должно быть дублирующих строк;
В каждой ячейке таблицы хранится атомарное значение;
В столбце хранятся данные одного типа;
Отсутствуют массивы и списки в любом виде.
Вторая нормальная форма (2NF):
Таблица должна находиться в первой нормальной форме;
Таблица должна иметь ключ;
Все неключевые столбцы таблицы должны зависеть от полного ключа (в случае если он составной).
Третья нормальная форма (3NF):
Таблица должна находиться во второй нормальной форме;
Отсутствие транзитивной зависимости.
Транзитивная зависимость – зависимость неключевых столбцов от значений других неключевых столбцов.
Так как модератор обладает всеми атрибутами и поведением пользователя, было принято решение хранить информацию о модераторах и пользователях в одной таблице. Отличить их можно будет по значению ячейки «Роль».
Рисунок 3.2 — Третья нормальная форма таблицы «Информация о пользователях»
Сущность «Тест» была декомпозирована на таблицы «Информация о тесте», «Информация о категориях», «Информация о вопросах», «Информация об ответах» и «Информация о результатах», поскольку:
Каждый экземпляр сущности «Тест» может содержать в себе нефиксированное количество экземпляров атрибутов «Вопросы» и «Результаты»;
«Ответы» должны быть связаны с «Вопросы» и «Результаты» (каждый ответ относится к конкретному вопросу и подразумевает под собой определенный результат);
«Вопросы» и «Результаты» не являются атомарными;
«Категории» неизбежно будут повторяться в разных тестах, что приводит к избыточности данных.
Атрибут «Рейтинг» был разделен на атрибуты «Число лайков» и «Число дизлайков».
Рисунок 3.3 — Третья нормальная форма таблиц «Информация о тестированиях», «Информация о категориях», «Информация о вопросах», «Информация об ответах» и «Информация о результатах»
Для завершения даталогического проектирования БД необходимо обозначить связи между её сущностями.
Таблица 3.2 — Связи сущностей базы данных
Связи сущностей |
Тип связи |
Описание |
Категория - Тест |
1 ко многим |
Тест может принадлежать только к одной категории, но одна категория может иметь в себе множество тестов. |
Пользователь - Тест |
1 ко многим |
У теста может быть только один автор, но пользователь может создать множество тестов |
Тест - Вопросы |
1 ко многим |
У одного теста может быть множество вопросов |
Вопросы - Ответы |
1 ко многим |
У одного вопроса может быть множество ответов |
Результаты - Ответы |
1 ко многим |
У одного результата может быть множество ответов, но каждый ответ относится только к одному результату |
Продолжение таблицы 3.3 — Связи сущностей базы данных
Связи сущностей |
Тип связи |
Описание |
Тест - Результаты |
1 ко многим |
У одного теста может быть множество результатов |
На рисунке 3.4 представлена полная
даталогическая модель базы данных.
Рисунок 3.4 — Даталогическая модель базы данных