ПРОЕКТИРОВАНИЕ ТЕМАТИЧЕСКОЙ СОЦИАЛЬНОЙ СЕТИ «ВРИТМЕ» - Студенческий научный форум

V Международная студенческая научная конференция Студенческий научный форум - 2013

ПРОЕКТИРОВАНИЕ ТЕМАТИЧЕСКОЙ СОЦИАЛЬНОЙ СЕТИ «ВРИТМЕ»

Кузина Е.И. 1
1Московский технический университет связи и информатики
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В статье кратко изложены результаты анализа предметной области связанные с разработкой тематической социальной сети. Это направление является темой дипломной работы для специалитета (научн.рук. проф.Воронова Л.И.) и обусловлено актуальностью и высокой востребованностью развития социальных интернет-сервисов и ресурсов.

Социальные сети, являясь непревзойдённым средством общения и объединения людей, набирают всё большую популярность. Они являются неотъемлемой частью Web 2.0 (методика проектирования систем, которые путём учёта сетевых взаимодействий становятся тем лучше, чем больше людей ими пользуются), и их дальнейшее развитие в значительной степени определяет и перспективы развития самого Интернета. На конец 2009 года в социальных сетях было зарегистрировано 917 млн. пользователей или 13,3 % населения мира. Ожидается, что к 2015 году количество зарегистрированных в социальных сетях пользователей увеличится до 2 млрд. (27 % населения мира). Что касается России, то по данному показателю наша страна занимает одно из лидирующих мест в Европе. По данным компании J'son & Partners Consulting, число пользователей социальных сетей в России составляет 25 миллионов человек, что сравнимо с их общим количеством во всех странах Восточной Европы и государствах СНГ.

Огромную аудиторию имеет социальная сеть ВКонтакте[1]. Основанная в 2006 году, сеть занимает третье место в мировом рейтинге социальных сетей. Возможности вконтакте схожи по функционалу с ведущими мировыми социальными сетями. Пользователи могут объединяться в тематические группы, общаться, знакомиться, обмениваться фото, играть в игры и т.д. Из минусов можно выделить обилие спама. Существует возможность создания группы Вконтакте о сайте, раскрутить его, «пиарить» сайт с помощью этой группы, добавив ее виджет на сайт. Возможно воспользоваться кнопкой вконтакте или добавить комментария вконтакте на свой сайт. Обязательно указание своего номера мобильного, с тем чтобы в дальнейшем именно восстановление страницы могло произойти с его помощью.

Тематическая социальная сеть Steptodance[2] посвящена танцам. Пользователи могут найти школы танцев, с адресами и направлениями, их участников. В разделе Афиша отображаются танцевальные события происходящие по всей России. Видео, блоги, музыка способствует занятиями танцами, знакомству с новыми стилями. Сеть позволяет новичкам общаться с более опытными танцорами, делится опытом.

Аналогом разрабатываемой социальной сети «ВРитме» является сеть Spurtup[3]. В ней собраны статьи посвященные здоровому образу жизни, тренировкам. Адреса бассейнов, фитнес-клубов, катков, боулинг-клубов и т.п. в России, Беларуси и на Украине. Спортивные события, состязания, соревнования. Для зарегистрированных пользователей, кроме общения с друзьями и в тематических группах, существует возможность оформить анкету, где они смогут указывать свои тренировки, советоваться с профессиональными тренерами и добиваться поставленных целей. Последняя услуга является платной.

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

Предполагается, что проектируемая социальная сеть «ВРитме» будет отвечать всем необходимым требованиям. В функциональность сети будет входить:

  • система личных сообщений – внутренняя почта для зарегистрированных пользователей с уведомлением на email;

  • система массовых рассылок, позволяющую руководителям фитнес-клубов и пользователям информировать целевую аудиторию о новых возможностях, акциях и т.п.;

  • система друзей – возможность установки связи между зарегистрированными пользователями;

  • система личных статусов - пользователи проекта могут устанавливать свой личный статус (послание) для своего профиля (система микро-блогов). При использовании в проекте ленты активности, личные статусы пользователей попадаю в неё;

  • ленты активности — позволяет пользователям, находящимся в связи отслеживать события друг друга;

  • система закладок — зарегистрированные пользователи соц. сети имеют возможность добавлять понравившиеся материалы к себе в закладки с возможность в дальнейшем знакомиться со всем списком своих закладок и управлять ими;

  • система праздников и событий — уведомление и обзор пользователей о проходящих и предстоящих праздниках, событиях, условленных встречах;

  • форум – позволяет пользователям создавать обсуждения по интересам;

  • система фотоальбомов – кроме свих фотографий, пользователи обладают возможностью создания альбома для отслеживания своих результатов и успехов;

  • система аудиоальбомов;

  • система видеоальбомов;

  • система пользовательских профилей;

  • система комментирования;

  • система регистрации/авторизации пользователей;

  • система восстановления паролей;

  • система присутствия на сайте – пользователи находящиеся на сайте, отмечаются статусом «online»;

  • система обмена – пользователи могут делиться фотографиями, документами и т.п.;

  • система часто задаваемых вопросов.

Социальная сеть «ВРитме» разрабатывается на платформе Joomla – система управления содержимым, написанная на языках PHP и JavaScript, использующая в качестве хранилища базы данных СУБД MySQL.

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

Как известно, существует два подхода к проектированию БД.

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

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

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

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

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

> SELECT name FROM groups WHERE group_title IN (SELECT DISTINCT group_title FROM groups WHERE name='Иванова Лена')

Но предположим, что мы хотим получить все имена пользователей, которые состоят в одной группе с кем-то, кто есть в группе с Ивановой Леной. И тут появляются еще одни JOIN. Если же добавить еще и третью степень, то запрос будет становиться все более сложным, трудоёмким и менее производительным.

Приведенный пример может быть легко смоделирован следующим образом: каждый пользователь и группа являются узлами, а участие в группе – отношения, идущие от пользователя к группе. Задача поиска оптимизирована.

Граф, связанный с БД социальной сети будет храниться в двух таблицах. Чтобы одинаковые связи не повторялись, создается уникальный индекс по полям с указателем на начальную вершину и указателем на конечную вершину. [4][5]

Рис. 1. Простой граф, связанный с реляционной БД социальной сети

При этом, граф, представленный на рис.1, будет описываться таблицами 1 и 2.

a

 

1

3

2

1

2

4

3

4

3

5

3

6

4

7

5

1

5

6

6

1

Таблица 1. Таблица 2.

Узлы Ребра

node

name

feat1

feat2

1

node1

x

y

2

node2

x

w

3

node3

x

w

4

node4

z

w

5

node5

x

y

6

node6

x

z

7

node7

x

y

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

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

Список использованных источников и литературы

  1. Социальная сеть ВКонтакте http://vk.com/

  2. Танцевальная социальная сеть Steptodance http://www.steptodance.ru/

  3. Спортивная социальная сеть Spurtup http://spurtup.com/

  4. Статья «Реляционные базы данных в социальных сетях» http://devel.ownport.net/2010/06/blog-post_07.html

  5. Статья «Graphs in the database^ SQL meets social networks» http://techportal.inviqa.com/2009/09/07/graphs-in-the-database-sql-meets-social-networks/

Просмотров работы: 2338