База данных форума

ПРАВИТЕЛЬСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ 
Пермский филиал 
федерального государственного автономного образовательного

учреждения  высшего профессионального образования 
«Национальный исследовательский университет  
“Высшая школа экономики”»

Факультет бизнес-информатики

Кафедра информационных технологий в бизнесе

 

 

УДК 004.65

 

ТЕМА РАБОТЫ

“База данных форума”

 

Работу выполнил студент  
группы БИ- 10-1  
2 курса факультета бизнес-информатики

Архипов К.Б.

 

 

 

 

Научный руководитель:

доцент кафедры информационных технологий в бизнесе

Шестакова  Л.В.

 

Пермь 2012

Оглавление

 

 

 

 

 

 

1. Введение

 

Веб-форум — класс приложений  для организации общения посетителей  сайта. Форум предлагает набор разделов для обсуждения. Работа форума заключается в создании пользователями тем в разделах и последующим обсуждением внутри этих тем. Отдельно взятая тема, по сути, представляет собой тематическую гостевую книгу .Распространённая иерархия форума: Разделы → темы → сообщения. Обычно сообщения несут информацию «автор — тема — содержание — дата/время». Сообщение и все ответы на него образует «ветку» или «тему» (также употребляются кальки «топик», «топ» от англ. topic; «тред», «трэд» от англ. thread).

На сегодняшний день практически  каждый сайт предоставляет своим  посетителям возможность обсудить то, что он им предоставляет. Однако этот процесс требует управления, что бы пользователи держались установленных  рамок. Для этого существуют «  модераторы» - люди, следящие за соблюдением правил форума.  Они имеют права выдавать наказания и штрафы пользователям, которые того заслуживают. Ввиду того, что выдача наказания зачастую требует разбирательства, существуют база данных форума. В этой базе указывается вся информация о пользователях. На самом деле эта база имеет более широкий спектр назначений.  Пользователи тоже могут обращаться к некоторым её частям, например, просматривать друзей и некоторую информацию о собеседнике.

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

 

 2. Описание предметной области

  • 2.1 Краткая информация о форуме

  • Данная БД нацелена предоставление информации  о пользователях форума со свободной тематикой. Использоваться может для просмотра всех действий пользователя на форуме, с того момента, как он зарегистрировался. Помимо просмотра можно добавлять пользователей.  Этот процесс должен происходить  автоматически, основываясь на действиях форумчан, однако, так на самом деле этого форума не существует, это действие носит лишь наглядный характер.

     

    В данной базе присутствуют основные элементы среды форумов: пользователи, темы, сообщения, нарушения и другие. Полный список представлен в таблице объектов

  • Таблица объектов

  • Объект

    Описание

    1

    Пользователь

    Так как форумы предназначены для общения людей, «пользователь» является ключевым объектом базы.

    Имеет связь  практически со всеми остальными объектами Таблица «пользователь» содержит профильную информацию о участнике форума, начиная от ФИО, кончая текущем статусом.

    2

    Друзья пользователя

    Объект «Друг» обозначает близкую связь с «пользователем», настоящих форумах дает некоторые дополнительные привилегии, например, личная переписка и расширенные права просмотра профиля.

    3

    Нарушения пользователя

    Иногда пользователи отклоняются от установленных администратором  правил, поэтому существует система наказаний. Данный объект существует для того, что бы администратор знал прошлое «пользователя», а так же время и дату окончания наказании или вступления оного в силу.

    4

    Сессии пользователя

    Дополнительная  информация о пользователе. Позволяет просматривать историю онлайна. Это пригождается при взломах и других подобных разбирательствах.

    5

    Темы

    «Темы» создают  для того, что бы обсудить какую-то конкретную тему или новость или  что бы то  ни было, внутри специально подготовленного виртуального пространства.

    6

    Сообщения

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


     

  • 2.2 Описание справочников

  • Необходимые справочники:

      1. Страны: нужны для предоставления информации о странах, в которых живут пользователи.
      2. Статусы: нужны для предоставления информации о текущем статусе пользователя.

    3. Проектирование базы данных

    В базу данных должны быть включены следующие разделы:

      • информация о пользователе
      • информация о темах форума
      • информация о сообщениях форума
      • информация о нарушениях
      • информация об истории сессий
      • информация о друзьях пользователей

    В базе данных будут следующие атрибуты:

      • информация о пользователе
        • «ID» – уникальный ключ , однозначно идентифицирует соответствующий ему объект.
        • «ФИО», «Nickname» –  атрибуты определяющие личность пользователя в реальной жизни и на форуме.
        • «Адрес», «e-mail» - контактная информация.
        • «Пароль» -  личные данные, с помощью которых пользователь авторизируется на форуме.
        • «Страна», «Статус», «Дата регистрации» - характеристики пользователя. 
      • информация о темах форума
        • «ID» - уникальный ключ , однозначно идентифицирует соответствующий ему объект.
        • «Название» - название темы
        • «автор» - автор, создавший тему.
        • «Количество ответов», « Время», «Открыта\закрыта» - характеристики темы.
      • информация о сообщениях форума
        • «ID» - уникальный ключ, однозначно идентифицирует соответствующий ему объект.
        • «Автор» -  автор сообщения.
        • «Тема» - тема, в которой находится данное сообщение.
        • «Содержание» - текстовое поле, содержащее текст сообщения.
        • «Время» - время написания сообщения.
      • информация о нарушениях
        • «Пользователь» - Пользователь, совершивший нарушения.
        • «Тема» - тема, в которой совершено нарушение.
        • «Описание нарушения» -  краткое объяснение выдачи наказания.
        • «Содержание» - текстовое поле, содержащее текст сообщения.
        • «Время нарушения», « Окончание нарушения» - сроки действия наказания.
      • информация об истории сессий
        • «Код пользователя» - уникальный ключ , однозначно идентифицирует соответствующий ему объект.
        • «Время начала», «Время окончания» - характеризуют продолжительности сессий.
      • информация о друзьях пользователей
        • «Человек» - поле, содержащее уникальный ключ, однозначно идентифицирующий соответствующий ему объект.
        • «Друг» - nickname  пользователя являющего другом пользователю, идентифицируемому при помощи кода, находящимся в поле человек.

     

    • 3.1 Приведение к первой нормальной форме

    Рис 1

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

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

    • 3.2 Приведение ко второй нормальной форме

    Атрибуты, представляющие собой различные  названия и наименования, имеют тип  данных "строка" и, следовательно, их использование в качестве ключа неудобно, поэтому будут использоваться с целью однозначной идентификации соответствующих им объектов искусственные ключи типа «Код » и т.д.

    Будем считать, что:

    • «Код пользователя» будет однозначно определять все характеристики фирмы, такие как «ФИО», «Страна», «Nickname», «пароль», «e-mail», «дата регистрации», «адрес» и « статус» одного конкретного пользователя.
    • «Код  Темы» будет однозначно определять данные о теме, такие как «название», «количество ответов», «открыта/закрыта», «время» и « автор»
    • «Код сообщения» будет однозначно определять данные о сообщении, такие как « содержание», «тема», «время написания», «автор»

    Как следует из анализа приведенных  выше данных и установленных функциональных зависимостей, для того чтобы «попасть» в одну строку универсального отношения, необходимо задать значения минимум для следующих атрибутов, которые и представляют собой первичный ключ отношения: «Код Пользователя», «Код Сообщения», «Код темы».

    Предположим следующие  связи:

    Сообщений и  тем на форуме много, но каждое отдельное сообщение или тема е имеют единственного своего носителя, поэтому связь будет 1:N. Один у кода пользователя, много у поля и именем автора в других таблицах.

    Каждое сообщение  принадлежит какой-либо теме. Также  наказание совершается в одной из тем форума. Связь будет 1:N. Один у кода темы, много у полей с кодом темы в других таблицах.

    3.3 Приведение к третьей нормальной форме 
    (если есть необходимость – и к BCNF)

    После приведения ко второй нормальной форме, осталась последняя проблема – избавиться от единственной транзитивной функциональной  зависимости. Таб.2 

    В отношении существуют следующие функциональные зависимости: Нарушения→ Тема, Тема → Сообщение, Нарушение → Сообщение.

    Зависимость Нарушение → Сообщение является транзитивной, следовательно, отношение не находится в 3NF.

    Поэтому данная таблица разбивается 2 таблицы. Нарушения: Тема и Тема: Сообщения.

     

    Рис 2

     

    Таким образом мы имеем окончательный вид схемы:

    Рис 3

    4. Разработка приложения

    4.1 Описание Таблиц, Полей, условий ввода.

    • Таблица Пользователь:
        • ID– ключевое поле, счетчик
        • ФИО – тип string
        • Страна – тип Коллекция страна, ссылается на справочник стран. Не обязательное поле.
        • Nickname – тип string.
        • Пароль –  тип string.
        • E-mail – тип string.
        • Дата регистрации – тип date.
        • Адрес – тип string, не обязателен.
        • Статус – ссылается на справочник. Необязателен.
    • Таблица Темы:
        • ID – ключевое поле, счетчик.
        • Название – тип string.
        • Автор – поле для связи с таблицей пользователь, тип Коллекция пользователь.
        • Количество ответов – тип integer.
        • Открыта/закрыта – тип string.
        • Время – тип date.
    • Таблица Сообщения
        • ID – ключевое поле, счетчик.
        • Тема – поле для связи с темой, тип Коллекция тема.
        • Автор – поле для связи с пользователем, тип Коллекция пользователь.
        • Время – дата/время.
        • Содержание – т.к.  содержит текст сообщения целиком, может иметь весьма большие размеры, тип поля string.
    • Таблица Нарушения
        • Тема – поле для связи с темой, тип Коллекция тема.
        • Автор – поле для связи с пользователем, тип Коллекция пользователь.
        • Время нарушения – тип date.
        • Окончание наказания – тип date.
        • Описания нарушения  - текстовой.
    • Таблица История сессий
        • ID  – integer . Индексированное поле.
        • Время начала – дата/время.
        • Время окончания – дата/время.
        • Пользователь -  тип Коллекция пользователь, служит для связи с основной таблицей.
    • Таблица Друзья
        • Человек – Коллекция пользователь. Служит для связи с таблицей пользователь.
        • Друг – тип string. Cодержит никнейм друга.
    • Таблица Страна
        • ID – Ключевое поле. Счетчик.
        • Страна – текстовое поле.
    • Таблица Статус
        • ID – Ключевое поле. Счетчик.
        • Список статусов –  текстовое поле.
    • 4.2 Разработка экранов

    База состоит  из 8 простых экранов и еще 6 дополнительных. Простые экраны служат в качестве таблиц для изменения, однако по ним  можно создавать отчеты и сортировать  по полям, вот пример такого экрана:

    Рис 4

    Помимо изменяемых экранов, с помощью которых осуществляется заполнение таблиц, в базе присутствуют еще 2 сложных экрана: «Темы List Detail» и «Пользователи List Detail». Рис. 1 и Рис.

    Рис 5

    Рис 6

     

    Экранная форма «Темы List Detail» способна выдавать, помимо информации о самой теме,  список нарушений, которые были произведены в этой теме, а так же и авторов нарушений.

    Экранная форма «Пользователи List Detail», на ряду с информацией о пользователе, выводит список друзей пользователя. Рис. 3

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

    Рис 7

    • 4.3 Разработка запросов.

     

    В базе данных присутствуют 3 запроса с разными функциями. Так как в бесплатной версии Lightswitch невозможно делать сложные отчеты, они состоят всего из одной таблицы. Два из них С параметром и один с сортировкой.

    «Search Сессии Запрос» - Запрос с параметром, поиск осуществляется по никнейму (nickname).

    Рис 8

     

     

    «Search Пользователи» - Данный запрос осуществляет сортировки по полям «ФИО», «nickname», «mail», «дата регистрации». На данный момент отсортировано по ФИО. Так же Этот запрос может осуществлять функцию поиска, т.к построен на таблице поиска.

    Рис 9

    «Сообщения запрос List» - Запрос с параметром, поиск осуществляется по никнейму (nickname). Рис. 4 Выводит на экран все сообщения конкретного пользователя.

    Рис 10

    • 4.4 Отчеты

     

    Отчеты формируются  в Microsoft exel, с помощью специальной кнопки. Рис. 7

    Рис 11

     

    Заключение

     

    Данная БД, является пробной версией  Базы Данных форума. Однако в ней присутствуют основные необходимые данные для корректной работы.

    Подводя итог, данная БД позволяет :

      1. Просматривать и сортировать всю необходимую информацию о форуме.
      2. Использовать запросы, позволяющие  подробно просматривать всю  информацию о том или ином объекте.
      3. Создавать новых пользователей.
      4. Генерировать отчеты.
      5. Данная БД имеет интуитивный интерфейс. БД содержит несколько форм и вкладок, сгруппированных по смыслу.

     

    БД включает в себя

    • 6 основных таблиц
    • 2 справочника
    • 8 экранов для заполнения или изменения таблиц
    • 2 сводных экрана
    • 3 простых запросов
    • 3 экрана к запросам
    • Отчеты осуществляются за счет exel.
    • Имеется возможность добавлять пользователей

     

     

     

     

     

     

    Список литературы

    1. Лядова Л.Н. Основы СУБД  Access: учеб. – метод пособие /  Пермский Филиал ГУ-ВШЭ. – Пермь, 2009.
    2. Электронный ресурс http//ru.wikipedia.org/

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Приложение 1

     

     

     

    Техническое задание 

    на проведение работ  по теме: «Разработка базы данных форума»

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Пермь, 2012

     

     

     

    ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ

    БД

    База данных

    Форум

    Название базы данных

    Форумчанин

    Участник форума

    Топик\тема

    Тематический подраздел  форума. Тему задет создатель –  любой пользователь.


    1. ВВЕДЕНИЕ
      1. Наименование программы

    База данных пользователей  форума.

    Данная БД предназначена  для управления данными о пользователях форума и контентом внутри форума.

      1. Область применения

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

      1. Объект, в котором используют программу

    Абстрактный форум.

    1. ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ
      1. Документы, на основании которых ведется проектирование

    Основанием для разработки АС являются следующие документы  и нормативные акты:

      1. Индивидуальное задание на выполнение проекта курсовой работы
      2. Данный документ
      1. Организация, утвердившая документ, и дата утверждения

    Организация, утвердившая  документ: Национальный исследовательский  университет Высшая Школа Экономики, факультет Бизнес-информатики.

    Адрес организации: г. Пермь, бул. Гагарина 28б

    Дата утверждения документа: 31.03.2012

    1. НАЗНАЧЕНИЕ РАЗРАБОТКИ

    БД «Форум» предназначена  для работы с информацией о  форумчанах, людях, пользующихся форумом  и оставляющими там свои сообщения, а также для просмотра топиков ( тем), которые эти пользователи создали.

    К функциям данной БД относится:

      1. Добавление, удаление и редактирование  информации о форумчанах.
      2. Добавление, удаление и редактирование  информации о темах.
      3. Предоставление возможности просмотра отчета и работы с запросами к данной БД

     

    1. ТРЕБОВАНИЯ К ПРОГРАММЕ
      1. Требования к функциональным характеристикам
        1. Требования к составу выполняемых функций

    БД должна корректно  работать в среде Visual Studio 2010 Lightswitch,  помимо этого должны выполняться следующие функции:

    1. Функции для работы администратора с информацией о пользователе:
      1. Добавление и удаление необходимой информации.
      2. Редактирование существующей в БД информации.
      3. Просмотр результатов запущенных запросов.

    Информация, содержащаяся в БД «Форум», должна включать в себя общую информацию о пользователе (ФИО, Nickname, Страну жительства, Адрес); Пароль, под которым он заходит на форум; информацию о действия форумчанина с момента регистрации (Сессии, нарушения, сообщения),  Информацию о темах, созданных на форуме ( Количество сообщений, дата создания, список сообщений, количество ответов). Так же должна быть информация о друзьях пользователя и 2 справочника: страны и статусы. Помимо этого в данной БД должны присутствовать запросы и отчеты. Запрос для сортировки пользователей,  запрос на  сообщения написанные пользователем за все время, запрос с параметром на сессии пользователя. Структура БД

    БД состоит из следующих  частей:

      • Экран работы с общей средой. Место откуда вызываются все остальные экраны.
      • Таблицы, в которых содержится вся необходимая информация.
        • Пользователи
        • Друзья
        • Темы
        • Сообщения
        • Нарушения
        • История сессий
        • Статусы
        • Станы
      • Запросы.
        • Запрос на сортировку основных столбцов пользователя
        • Запрос с параметром на поиск всех сообщений пользователя
        • Запрос с параметром на сессии пользователя
      • Экраны, визуализирующие таблицы и запросы.
        • Сводная таблица пользователь-друзья «ПользователиListDetail»
        • Сводная таблица темы-нарушения «ТемыListDetail»
      • Экран добавления нового пользователя.
        • «CreateNewПользователь»

    :

      1. Условия эксплуатации

    Стандартные условия  эксплуатации программных продуктов. Необходимые сотрудники для обслуживания серверной части системы: системный администратор для обслуживания сервера.

     

      1. Требования к информационной и программной совместимости

    Модель системы должна работать, используя только ресурсы и сервисы  программного пакета Visual Studio 2010 Lightswitch.

    Основным языком программирования клиентской части является «C#».

     

      1. Требования к маркировке и упаковке

    Не предъявляются.

      1. Требования к транспортированию и хранению

    Не предъявляются.

      1. Специальные требования

    Не предъявляются.

    1. ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ

    Не предъявляются

    1. ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ

    Ориентировочная экономическая  эффективность не рассчитывается. Это  наглядный и упрощенный пример настоящий  БД форума. Имеет только образовательную  ценность. Аналоги отсутствуют.

    1. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ

    Ниже приведена таблица этапов разработки БД.

    Этап

    Срок

    Исполнители

    1

    Исследование целей  и возможностей проекта

    01.03.12

     

    2

    Выработка своего решения

    03.03.12

     

    3

    Выработка технического задания

    10.03.12

     

    4

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

    13.03.12

     

    5

    Создание экранов

    16.03.12

     

    7

    Кодирование клиентской части

    20.03.12

     

    9

    Тестирование частей проекта

    25.03.12

     

    10

    Отладка проекта

    27.03.12

     

    11

    Сдача проекта

    31.03.12

     

    1. ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ

    Испытание представленной БД и контроль качества ее работы провести на любом терминале, удовлетворяющем требованиям к клиентской части. Во время испытаний проверить работу системы по следующим позициям:

      1. Тестирование клиентской части:
        1. Добавление/редактирование/удаление информации пользователе и всем, что с ним связано
        2. Добавление/редактирование/удаление темах
        3. Работа с запросами
    База данных форума