Skip to content

Модель данных

polinaKoroleva05 edited this page Oct 20, 2024 · 12 revisions

Реляционная модель.

er.png

Назначение сущностей.

Для дальнейшего расчета объема памяти, будем считать длину строк n = 150, т.к. строки фигурируют в полях с именем пользователя, логином, паролем, типом события, описанием события, адресом и названием склада, которые не требуют большой длины.

Склад.

Хранение информации о складе, на котором расположены ячейки. Поля:

  • int id_storage (4)
  • text Адрес (n)
  • text Название (n)

Ячейка.

Хранение информации о характеристиках и состоянии ячейки.

  • int id_cell (4)
  • int id_storage (4)
  • int Номер ячейки (4)
  • int Номер яруса (4)
  • bool Свободна (1)
  • datetime Время окончания аренды (8)
  • char Размер (1)

Событие.

Информация об изменении состояния ячейки, например: забронирована, освобождена, обслужена, выявлена неполадка.

  • int id_event (4)
  • int id_cell (4)
  • int id_user (4)
  • text Тип события (n)
  • text Описание (n)
  • datetime Время (8)

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

Информация о пользователях системы, к которым относятся клиенты сервиса, работники и администрация.

  • int id_user (4)
  • text ФИО (n)
  • int Роль (4)
  • text Логин (n)
  • text Пароль (n)
  • datetime Дата регистрации (8)
  • float Задолженность (4)

Оценка объема информации.

Рассчитаем размер каждой сущности:

  • Склад: 4 + 150*2 = 304 байта
  • Ячейка: 4*3 + 2 + 8 = 22 байта
  • Событие: 4*3 + 150*2 + 8 = 320 байт
  • Пользователь: 4*3 + 150*3 + 8 = 470 байт

Для расчета формулы, определим, что на каждом складе должно быть как минимум:

  • 100 ячеек
  • каждую ячейку нужно хотя бы раз обслужить, забронировать и освободить => 300 событий
  • 3 рабочих, 1 директор склада, 100 клиентов, 1 сис.админ => 105 пользователей

*владелец бизнеса не включен в формулу, т.к. он всегда 1.

Формула, зависящая от количества складов s:

$V(s) = ( 304 + 22*100 + 320*300 + 470*105 )*s = 147 854*s$

Избыточность.

Избыточные поля в модели:

  • id_storage в сущности Склад
  • id_storage, id_cell в сущности Ячейка
  • id_event, id_user в сущности Событие
  • id_user в сущности Пользователь

За вычетом избыточных полей, объем коллекции будет составлять:

$V_{чист}(s) = ( 300 + 14*100 + 312*300 + 466*105 )*s = 144 230 *s$

Отношение между фактическим объемом базы и чистым объемом составляет:

$\frac{V(s)}{V_{чист}(s)} = \frac{147 854*s}{144 230 *s} = 1.025$

Зависимость избыточности от кол-ва складов можно выразить формулой:

$V(s) - V_{чист}(s) = 147 854*s - 144 230 *s = 3 624 * s$

Направление роста модели.

Создание объекта одной сущности не требует создания объектов других сущностей. Поэтому скорость роста модели имеет простую зависимость от каждой сущности.

Ранжировка сущностей по влиянию на скорость роста модели:

  1. Пользователь (наибольший рост модели)
  2. Событие
  3. Склад
  4. Ячейка (наименьший рост модели)

Примеры данных.

Таблица Склад.

id_storage adress title
29031 г. Санкт-Петербург ул. Кузнецовская д. 16к1
19384 г. Воронеж ул. Генеральская д. 15

Таблица Ячейка.

Таблица Событие.

Таблица Пользователь.

Примеры запросов.

Нереляционная модель.

Назначение сущностей.

Оценка объема информации.

Избыточность.

Направление роста модели.

Примеры данных.

Примеры запросов.

Сравнение моделей.

Вывод.

Clone this wiki locally