Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проект / Лабы_Итог_Финал.docx
Скачиваний:
0
Добавлен:
12.03.2026
Размер:
3.87 Mб
Скачать

4. База данных

Составим сравнительную таблицу систем управления базами данных.

Таблица 7 – Сравнение СУБД на основе критериев

Критерий

MS SQL

SQLite

Oracle

MS Access

PostgreSQL

Максимальное количество одновременно поддерживаемых соединений

32767

1

32047

256

Ограничено ресурсами системы (default=100), у Amazon – 5000

Стоимость лицензирования

$0 (Express) – $15123 (Enterprise)

Бесплатно

$50000+ (Enterprise)

$180

Бесплатно

Максимальный объем базы данных

524 ПБ

281 ТБ

128 ТБ

2 ГБ

Не ограничен

Максимальное количество столбцов в таблице

1024

2000

1000

255

1600

Поддерживаемые операционные системы

Windows

Windows, Linux, macOS, iOS, Android

Windows, Linux, Solaris, IBM AIX, HP-UX

Windows

Windows, Linux, Solaris,

macOS, FreeBSD

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

4.1. Сущности мультимедийной информационной системы

В таблице 8 представлены сущности мультимедийной информационной системы.

Таблица 8 – Сущности мультимедийной ИС

п.п.

Наименование сущности

Описание

1

Пин

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

2

Доска

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

3

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

Человек, зарегистрированный в системе и взаимодействующий с мультимедийным контентом.

4

Автор

Пользователь, создавший пин и опубликовавший его в системе.

5

Комментарий

Текстовый отзыв пользователя, оставленный под пином.

6

Категория

Тематическая классификация пинов (дизайн, еда, мода, интерьер и др.).

7

Тег

Ключевое слово, используемое для поиска и фильтрации пинов.

8

Избранное

Связь пользователя с сохранёнными пинами.

4.2. Атрибуты сущностей

Каждая сущность хранит в себе информацию и имеет атрибуты, отражающие её характеристики.

Таблица 9 – Сущность «Пин»

Сущность

п.п.

Наименование атрибута

Краткое описание

Пин

1

Название пина

Наименование мультимедийного материала

2

Описание

Текстовое описание изображения или идеи

3

Медиафайл

Изображение или видео, прикреплённое к пину

4

URL медиафайла

Ссылка на файл, хранящийся в Object Storage

5

Категория

Тематическая принадлежность пина

6

Теги

Набор ключевых слов для поиска

7

Автор

Пользователь, создавший пин

8

Дата публикации

Дата и время создания пина

9

Рейтинг

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

10

Статус

Состояние пина (активен, скрыт, удалён)

Таблица 10 – Сущность «Доска»

Сущность

п.п.

Наименование атрибута

Краткое описание

Доска

1

Название доски

Название пользовательской коллекции

2

Описание

Краткое описание тематики доски

3

Владелец

Пользователь, создавший доску

4

Список пинов

Набор пинов, сохранённых в доске

5

Дата создания

Дата создания доски

6

Уровень доступа

Публичная или приватная доска

Таблица 11 – Сущность «Пользователь»

Сущность

п.п.

Наименование атрибута

Краткое описание

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

1

Логин

Уникальное имя пользователя

2

Пароль

Хэш пароля пользователя

3

Электронная почта

Адрес электронной почты

4

Роль

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

5

Дата регистрации

Дата создания учетной записи

6

Статус

Активен, заблокирован

7

Аватар

Изображение профиля

8

Описание профиля

Краткая информация о пользователе

Таблица 12 – Сущность «Комментарий»

Сущность

п.п.

Наименование атрибута

Краткое описание

Комментарий

1

Текст комментария

Содержание комментария

2

Автор

Пользователь, оставивший комментарий

3

Пин

Пин, к которому относится комментарий

4

Дата создания

Дата и время публикации

5

Статус

Активен или удалён

Таблица 13 – Сущность «Категория»

Сущность

п.п.

Наименование атрибута

Краткое описание

Категория

1

Название категории

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

2

Описание

Описание категории

Таблица 14 – Сущность «Тег»

Сущность

п.п.

Наименование атрибута

Краткое описание

Тег

1

Название тега

Ключевое слово

2

Частота использования

Количество пинов с данным тегом

Таблица 15 – Сущность «Автор»

Сущность

п.п.

Наименование атрибута

Краткое описание

Автор

1

Идентификатор автора

Уникальный идентификатор пользователя-автора

2

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

Ссылка на сущность «Пользователь»

3

Количество публикаций

Общее число опубликованных пинов

4

Дата первой публикации

Дата первого опубликованного пина

5

Статус автора

Активен, ограничен, заблокирован

Таблица 16 – Сущность «Избранное»

Сущность

п.п.

Наименование атрибута

Краткое описание

Избранное

1

Идентификатор записи

Уникальный идентификатор

2

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

Пользователь, добавивший пин

3

Пин

Сохранённый пин

4

Дата добавления

Дата и время добавления в избранное

5

Тип избранного

Лайк, сохранение, рекомендация

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

Связи между сущностями мультимедийной ИС «Аналог Pinterest»

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

Таблица 17 – Связи между сущностями

п.п.

Сущности, участвующие в связи

Описание

1

Пользователь – Автор

Все авторы являются пользователями системы, однако не каждый пользователь является автором. Связь реализуется по идентификатору пользователя.

2

Автор – Пин

Каждый пин создаётся только одним автором. Один автор может создать неограниченное количество пинов. Связь типа «один-ко-многим» по атрибуту идентификатора автора.

3

Пользователь – Пин (Избранное)

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

4

Пользователь – Комментарий

Один пользователь может оставить несколько комментариев. Каждый комментарий принадлежит только одному пользователю.

5

Пин – Комментарий

Один пин может иметь несколько комментариев. Каждый комментарий относится только к одному пину.

6

Пользователь – Доска

Один пользователь может создать несколько досок. Каждая доска принадлежит одному пользователю.

7

Доска – Пин

Одна доска может содержать несколько пинов, при этом один пин может находиться в нескольких досках. Связь типа «многие-ко-многим».

8

Пин – Категория

Каждый пин относится к одной категории. Одна категория может включать множество пинов.

9

Пин – Тег

Один пин может иметь несколько тегов, и один тег может относиться к нескольким пинам. Связь типа «многие-ко-многим».

Пояснение к связям

  • Связь «Пользователь – Автор» отражает ролевую модель доступа в системе.

  • Сущность «Избранное» используется как промежуточная таблица для реализации связи «многие-ко-многим» между пользователями и пинами.

  • Использование сущностей «Категория» и «Тег» обеспечивает удобную классификацию и поиск мультимедийного контента.

  • Сущность «Доска» позволяет пользователям группировать пины по тематическому признаку.

Хранение и управление контентом в мультимедийной ИС «Аналог Pinterest»

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

Ниже расписан общий подход к хранению контента.

Контент системы разделяется на два основных типа:

  1. Структурированные данные — метаданные, описывающие контент и пользователей.

  2. Неструктурированные данные — медиафайлы (изображения).

Для каждого типа данных используется специализированное хранилище.

Хранение структурированных данных

Место хранения: Структурированные данные хранятся в реляционной базе данных (PostgreSQL), расположенной на сервере уровня данных.

В базе данных хранятся:

  • учетные записи пользователей;

  • роли и права доступа;

  • информация об авторах контента;

  • метаданные пинов (название, описание, категория, теги);

  • связи между сущностями (избранное, комментарии, доски);

  • URL медиафайлов, связанных с пинами;

  • статистические данные (количество лайков, сохранений, комментариев).

Хранение медиафайлов (контента)

Место хранения: Изображения и хранятся в Object Storage (объектном хранилище), предназначенном для хранения больших бинарных объектов.

Каждый медиафайл:

  • сохраняется как отдельный объект;

  • имеет уникальный идентификатор или имя файла;

  • не хранится внутри базы данных;

  • доступен по уникальному URL.

Преимущества использования Object Storage

Использование объектного хранилища позволяет:

  • эффективно хранить большие объёмы мультимедийных данных;

  • масштабировать систему без изменения бизнес-логики;

  • сократить нагрузку на базу данных;

  • повысить отказоустойчивость хранения.

Процесс загрузки контента

  1. Пользователь загружает изображение через клиентское приложение.

  2. Запрос передаётся на сервер бизнес-логики.

  3. Сервер проверяет права доступа пользователя.

  4. Медиафайл сохраняется в Object Storage.

  5. Object Storage возвращает URL файла.

  6. URL сохраняется в базе данных как часть метаданных пина.

  7. Пользователю возвращается подтверждение успешной загрузки.

Процесс получения контента

  1. Пользователь запрашивает ленту или поиск изображений.

  2. Сервер бизнес-логики выполняет запрос к базе данных.

  3. Сервер возвращает клиенту метаданные и URL изображений.

  4. Клиент загружает изображения через Object Storage.

  5. Медиафайлы отображаются в пользовательском интерфейсе.