Skip to main content

Общие сведения о хранилище информационных объектов (CarabiDB)

Рекомендации по проектированию структуры данных

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

Общие сведения о хранилище информационных объектов (CarabiDB)

Роль хранилищ данных CarabiDB

Хранилища данных являются центральным компонентом всей информационной архитектуры РЕШЕНИЯ. Оно обеспечивает не только пользовательский доступ (т.е. определяя способ получения информации), но и выполняя функцию извлечения информации из информационных объектов (т.е. определяя, какие данные доступны). Объединение данных о финансовом состоянии компании, ее служащих, заказчиках и поставщиках в единое представление является сложнейшей задачей, и ее решение затрагивает, как правило, множество исходных систем. Например, в CRM-системе информация о сотруднике клиентской службы и его взаимосвязи с конкретным заказчиком (группой заказчиков) может быть отражена одним способом (по виду продукции). Та же самая информация в системе управления человеческими ресурсами или в финансовой системе будет представлена другим способом (по географии и по юридическому лицу соответственно). В рамках Хранилищ данных подобное несоответствие успешно разрешается. 

При размещении информации в Хранилищах интегрированная аналитика предоставляет в рамках РЕШЕНИЯ целый ряд дополнительных преимуществ:

  • предоставление полной и согласованной информация о финансах, заказчиках, сотрудниках и поставщиках;

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

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

  • повышение эффективности за счет устранения проблем согласования, а

  • также уменьшения количества используемых систем и интегрированных инструментов.

База данных, объект, экземпляр объекта, поля и значения полей

В харащение CarabiDB используются элементы объектного подхода и сетевая модель данных.

Хранилище  CarabiDB – это система специальным образом организованных данных, предназначенная для их накопления и использования. В базе данных отображается определенная часть реального мира (так называемая предметная область). Поэтому база данных обычно создается не для решения какой-то одной задачи, а для многоцелевого использования информации по определенной теме.

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

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

Понятие информационного объекта

Объект – это некоторая, относительно самостоятельная часть базы данных. В СУБД CARABI данные хранятся в объектах. Конкретный состав объектов и их связи между собой определяют структуру базы данных.

Объект содержит описание реальных объектов. Так, например, Лица являются реальными объектами. Информация об объектах (в данном случае о подростках) будет накапливаться в соответствии со структурой объекта данных. То есть структура объекта - это структура накапливаемой информации.

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

Каждая карточка содержала бы информацию о фамилии, имени, отчестве, гражданстве, дате рождения, контактном телефоне и т.д. В данном примере вся картотека соответствует всем экземплярам (реализациям) объектов в базе данных. А структура шаблона карточки – структуре объекта.

Экземпляр объекта (Документ в хранилище)

Данные состоят из конкретных реализаций объекта (экземпляр), точно также как картотеки состоят из карточек. В картотеке каждому инфорационному объекту (ИО) соответствует одна карточка. Следует отметить, что каждая реализация ИО в CarabiDB имеет системный номер. Он присваивается объекту автоматически и предназначен, для того чтобы система могла различать объекты между собой даже в тех случаях, когда они содержат одинаковые значения.

Реквизит (поле) объекта

Реквизит объекта – это структурная единица, т.е. составляющая объекта. Каждый экземпляр объекта содержит один и тот же набор Реквизитов(полей). Определить структуру объекта данных, означает, в частности, решить, какие поля будут входить в объект. Если в объекте накапливается, например, информация о физических лицах, то будет содержаться информация о фамилии, имени, отчестве, гражданстве, дате рождения и т.д. Это означает, что каждая реализация объекта будет состоять из полей «Фамилия», «Имя», «Отчество», «Гражданство», «Дата рождения» и т.д.

Значение реквизита (поля) – это конкретные данные, хранимые в каждом поле. В каждой реализации объекта содержится реквизит «Фамилия». Для каждой реализации объекта этот поле содержит свое значение, т.к. каждая реализация объекта соответствует некоторому конкретному Лицу. Для первой реализации объекта значение поля «Фамилия» – Иванов, для второй – Петров, для третьей – Зайцев и т.д.

Свойства поля (реквизита) ИО

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

Реквизит объекта содержит наименование, системное наименование, тип данных и его настройку, а также дополнительные параметры. Задав набор реквизитов, можно создавать объект выбранного типа. Список полей объектов расположен в правом верхнем окне Редактора полей.



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

Тип данных реквизита

Главным из свойств реквизита(поля) является тип данных реквизита. Тип данных реквизита зависит от того, значения какого рода будут храниться в этом поле, а также от того какие операции будут выполняться над этими значениями. Наиболее часто используется тип данных Текстовый, который применяется, например, для хранения данных о фамилии, имени и отчестве. Для хранения информации о дате рождения Лица применяется тип данных Дата. Количественные характеристики – это данные типа Числовой и т.д.

Разделение реквизитов по типам требуется для удобства выполнения конкретных операций над значениями реквизитов.

Например, требуется отобрать лиц с определенной датой рождения. Для этого система должна воспринимать значение поля «Дата рождения» именно как дату – обозначение конкретного дня месяца, а не как набор символов. Таким образом, эти реквизиты должны иметь тип Дата.

Перечень типов данных:

  •  Стандартный тип данных;
  •  Словарный тип данных;
  •  Выборка из таблиц;
  •  Медиа-данные;
  •  Счетчик;
  •  Прямая ссылка;
  •  Обратная ссылка;
  •  Отображение поля;
Множественность

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

Лучшим выходом в такой ситуации будет определить поле «Гражданство» как множественное (кратное). Тогда это поле будет содержать столько значений, сколько потребуется.

Обязательность

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

Стандартный тип данных

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

Наименование типа

Описание

Пример

Примечание

Числовые типы данных

Стандартная объект числа

Цифровое значение с произвольной точностью

1200


Интервал от…до

Интервал цифровых значений с произвольной точностью

от 100 до 1200


Число с допуском

Цифровое значение с допуском относительно базового значения

1200 +/- 1


Линейный размер

Размер в трехмерной системе координат (длина, ширина, высота)

X=…

Y=…

Z=…

100x100x1200


Цвет

Один из составляющих цвета CMYK (голубой, пурпурный, желтый, черный)

черный


Денежный

Денежное значение с высокой точностью

123,53


Дата

Полный
(ДД.ММ.ГГГГ ЧЧ:ММ:СС)

Дата и время с точностью до секунд

10 июля 2000г. 12:05:00


Время (ЧЧ:ММ:СС)

Только время с точностью до секунд

12:05:00


Дата (ДД.ММ.ГГГГ)

Только дата с точностью до дня

10 июля 2000г.


Дата (год и месяц)

Дата в формате
«Год – месяц»

Июль 2000г.


Дата (год)

Только год

2000г.


Дата (месяц)

Только месяц

июль


Время (час.: мин.)

Время в формате
«Час – мин» с точностью до минуты

12:05


Время (час)

Только час

12 час.


Временной интервал даты (с ДД.ММ.ГГГГ по ДД.ММ.ГГГГ)

Интервал даты без времени с точностью до дня

с 10 июля 2000г. по 18 июля 2000г.


Временной интервал времени (с ЧЧ:ММ по ЧЧ:ММ)

Интервал времени в пределах одних суток с точностью до минуты

с 12:05 по 12:20


Полный интервал даты
(с ДД.ММ.ГГГГ ЧЧ:ММ:СС по ДД.ММ.ГГГГ ЧЧ:ММ:СС)

Интервал даты и времени с точностью до секунды

с 10 июля 2000г. 12:05:00 по 18 июля 2000г. 10:36:00


Неделя

Неделя

11 нед.


Неделя года

Неделя указанного года

11 нед. 2000г.


Типы данных для хранения текстовой информации

Текстовый

Текстовое значение длиной до 2000 символов

текст

Для хранения больших объемов данных нужно использовать тип данных «Медиа»

Логические типы данных

Логический (да/нет)

Логическое значение (истина или ложь)

Да



Для того чтобы включить отображение единицы измерения, нужно включить поле [Отображать единицы измерения] и выбрать требуемую единицу измерения в списке.

При необходимости можно включить пункт [Допускает множественность значений]. В этом случае один поле может содержать несколько значений указанного типа.

Поле [Производить автоматический расчет по встроенной функции] позволяет связать формирование значения поля на основе расчета. 

Словарный тип данных

Одной из возможностей СУБД CARABI, существенно упрощающих работу с информацией, является создание и использование Словарного типа данных.

При использовании традиционной системы накопления информации, возникает множество ошибок, связанных в первую очередь с отсутствием стандартов на используемые понятия и ошибками человека (такими как описка, пропуск буквы и т.д.) Например, при описании гражданства можно использовать различные (из общепринятых!) названия стран: Россия и Российская Федерация и т.д. Вероятно, это может вызвать путаницу и создать некоторые проблемы при обработке информации. Можно назначить каждой стране некоторый уникальный код, но при его дублировании в новом объекте, вновь возникает вероятность ошибки, например из-за невнимательности человека (длинный числовой код не так-то просто ввести без ошибок). К сожалению, подобными ошибками грешат не только те системы, в которых информация хранится и обрабатывается на бумажных носителях. Работая с базой данных, Вы также можете столкнуться с описанными проблемами.

Однако как указано выше, в СУБД «Караби» реализована возможность создания словарей, в том числе иерархических. Словарь представляет собой список всех возможных значений некоторого поля, которое должно быть описано точно и однозначно. Например, такое поле как «Гражданство». При использовании словаря ввод значения данного поля сводится к простому выбору значения из списка, который выводится на экран. Такой список, т.е. словарь, предварительно заполнен только теми значениями, которые следует использовать.



В качестве списка значений Словарного типа данных используется один из словарей данных, подготовленных в Редакторе словарей. Настройка словарного типа подразумевает открытие окна настройки типа (см. выше), выбора в поле [Типа данных] значения «Выборка из словаря» и выбора требуемого словаря в списке существующих словарей.

Преимущества использования Словарного типа данных:

  • отсутствие ошибок при вводе данных оператором: данные выбираются из списка;

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

  • поиск по словарным значениям работает быстрее, так как не требует анализа данных.



Примечание. Для того чтобы создать словарь, нужно войти в Редактор словарей, нажать на кнопку [Добавить словарь] и ввести его описание. Ввод значений также осуществляется в редакторе словарей: для этого надо нажать на кнопку [Добавить значение] и ввести его значение.

После того как создан новый словарь, можно перейти в «Редактор типов» и нажать на кнопку [Обновить] на панели инструментов. Произойдет обновление данных, и, в том числе, обновление списка словарей. Затем можно настроить словарный тип данных, выбрав в окне настройки типа «Словарный» тип данных и вновь созданный словарь.

При необходимости можно включить пункт [Допускает множественность значений]. В этом случае один поле может содержать несколько значений указанного типа.

Поле [Производить автоматический расчет по встроенной функции] позволяет связать формирование значения поля на основе расчета.

Медиа-данные

Одной из универсальных возможностей хранения и обработки данных в поле объекта является использование типа «Медиа-данные». Этот тип данных позволяет хранить различные объекты в виде вложений, такие как презентации, «видеообъекты», музыку, графические объекты. Открытие их для просмотра и редактирования осуществляется при помощи стандартных функций операционной системы для работы с файлами сопоставленных типов. В СУБД CARABI это поле предназначено для хранения изображений (фотографий) и других данных. Размер медиа-файла ограничен лишь пропускной способностью канала связи, при этом данные, располагаемые в ядре системы, архивируются и шифруются.

Для того чтобы создать поле типа «Медиа-данные», нужно в окне настройки типов в поле «Тип данных» выбрать «Медиа». Дополнительных специфических настроек тип данных не требует.

Поле [Производить автоматический расчет по встроенной функции] позволяет связать формирование значения поля на основе расчета.

Счетчик

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

Прямая ссылка

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

На уровне настройки каждый поле типа данных «Прямая ссылка» может содержать ссылки на один или несколько типов объектов. Именно список типов и задается в настройке поля. При работе с объектом, при установке ссылок, выбирается (или создается) один из объектов указанных типов.

Поле может содержать ссылки на несколько объектов.

Поле [Производить автоматический расчет по встроенной функции] позволяет связать формирование связей поля на основе расчета.


Обратная ссылка

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

Поле [Производить автоматический расчет по встроенной функции] позволяет связать формирование связей поля на основе расчета.

Отображение поля

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

Поле [Производить автоматический расчет по встроенной функции] позволяет связать формирование значения поля на основе расчета.

Системное наименование поля

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

Системное наименование используется при:

  • подготовке системных функций при помощи Oracle SDK;

  • настройке отображения поля;

  • подготовке отчетов;

  • фильтрации объектов и проч.

Дополнительные настройки поля

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

  • возможность идентификации;

  • видимость;

  • кратность;

  • обязательность для заполнения.

Видимость поля

Одной из дополнительных настроек поля является установка видимости для поля. Видимость – возможность отключения отображения поля объекта для просмотра и редактирования в карточке объекта.

Кратность поля.

Одной из дополнительных настроек поля является установка кратности для поля. Кратность – возможность сохранения истории изменения данных для поля объекта. Кратность применяется, если требуется получать дополнительные сведения об изменении значений объекта, или производить поиск по устаревшим данным (находящимся в истории кратности).

Обязательность заполнения поля.

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

 

Пример настройки реквизитов ИО (ИО Клиент)

 

image.png