Перейти к основному содержимому

О модели данных

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

В DevTools модель данных содержит следующие компоненты:

  • Классы: описывают объекты предметной области разрабатываемого приложения. В отличие от понятия класса в объектно-ориентированном программировании класс в DevTools не имеет методов для работы с объектами класса.

  • Атрибуты классов: описывают характеристики объектов предметной области разрабатываемого приложения.

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

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

  • Связи между классами: описывают связи экземпляров классов.

    Если несколько экземпляров одного класса связаны с одним экземпляром другого класса, используется связь многие-к-одному.

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

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

  • Перечисления: позволяют присваивать ограниченный набор значений атрибутам классов.

  • Пользовательские типы данных: описывают структуры данных, позволяющие хранить и обрабатывать однотипные и/или логически связанные данные.

    Примерами структур данных являются адрес проживания, координаты плоских и объемных объектов.

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

  • Индексы: позволяют повысить производительность поиска данных в базе данных приложения.

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

    Индекс может быть уникальным или неуникальным. Уникальный индекс обеспечивает уникальность каждого значения индексируемого атрибута. Составной индекс обеспечивает уникальность набора атрибутов. Например, при создании уникального индекса для атрибутов Имя и Фамилия сочетание имени и фамилии должно быть уникально, но дубли в имени или фамилии возможны. Неуникальный индекс допускает дублирование значений индексируемого атрибута или атрибутов в случае составного индекса.

  • Политики безопасности: определяют правила доступа к экземплярам класса. Правила доступа включают разрешение или запрет на создание, просмотр, изменение и удаление экземпляра класса.

Для создания и настройки модели данных приложения используется встроенный в DevTools Редактор Модели Данных.