Моделирование пользовательских типов данных
При моделировании базы данных разработчикам иногда приходится создавать собственные типы данных (домены), которые будут применяться к определенным атрибутам. Для этого в инструментальном средстве IBM InfoSphere Data Architect есть возможность на уровне логической модели базы данных создавать новые типы данных или отделить типы данных (доменов) в отдельную модель, выделив тем самым отдельный репозиторий и физический файл, ориентированный только на хранение сведений о пользовательских типах данных.
Создание модели типов данных реализуется через контекстное меню папки "Data Models" (Модели данных) при выборе пункта "New/Domain Model" (Новый/Модель доменов). В результате разработчик, аналогично созданию логической модели, должен определить размещение и шаблон создаваемой модели и специфицировать эту модель по дополнительным свойствам, определяющим авторство и владельца модели.
Набор пользовательских типов данных предполагает реализацию трех видов:
• Atomic Domain (атомарный тип данных) — тип определяется установлением дополнительных ограничений на предустановленный простой тип данных;
• List Domain (списковый тип данных) тип определяет, помимо стандартных ограничений па простой тип данных, указание списка возможных значений, контроль которых должен осуществляться при вводе сведений в поля таблиц такого типа;
• Union Domain (объединенный тип данных) — тип представляет собой объединение нескольких простых типов данных в единую структуру, формируя агрегатное представление данных но атрибутам такого типа.
Описание свойств каждого пользовательского типа данных выполняется через область "Properties" (свойства), где группы свойств разделены вертикально представленными закладками. Для создания нового типа данных (Domain) разработчику необходимо в области модели доменов "Package..." через контекстное меню, используя пункт меню "Add Data Object" (добавить объект данных), выбрать создаваемый вид домена (типа данных).
Выбрав создаваемый домен, разработчик определяет основные характеристики домена (рис. 3.45), указывая:
- Name (наименование) — имя домена, по которому он будет использоваться при его указании для описания атрибута сущности;
- Base Туре (базовый тип данных) — тип данных, свойства которого используются в качестве предустановленных;
— Length (длина) — характеристика, используемая преимущественно для символьных типов данных и определяющая количество символов в строке данных, определяемых соответствующим типом данных.
Определение этих базовых свойств формирует основные сведения но новому типу данных и указывается для любого вида типов данных. Однако новый тип данных требует указания дополнительных характеристик, определяющих, например, ограничения на данные в виде указания минимальных и максимальных размерностей данных, фиксированных значений хранимых данных, свойства сохраняемых значений.
В случае указания ограничений (Constraint) для тина данных, в зависимости от выбранного базовою типа данных, разработчику предлагается определить максимальные и минимальные значения. Так, для символьных типов данных необходимо указать ограничения по размерности текстовых строк в виде точного размера (Length) или минимального и максимального значения. Для числовых данных и даты разработчиком указываются диапазоны, в которые должны попадать сохраняемые значения. При этом могут указываться диапазоны, не включающие и включающие границы. Это позволяет строить достаточно точные ограничения на возможные значения, учитывая максимальное количество вариантов. Также разработчиком могут быть определены фиксированные значения, которые должны использоваться при применении атрибута соответствующего типа. Определение этих значений реализуется в закладке "Constraints" в рамках области "Enumeration Values".
Закладка "Data Privacy" дает разработчику возможность формализовать определенные значения (рис. 3.46) в соответствии с различными форматами данных и правилами использования.
Puc. 3.46. Область определения формализации значений
Среди параметров формализации значений можно выделить следующие:
• Enforcement (правообладание) — возможность применения пустых значений для атрибута, специфицированного данным типом данных;
• Privacy Policy Туре (персональный тип политики) — вид данных предметных областей, для которых определены правила использования;
• Privacy Policy (персональные политики) — правила формирования значения.
Указание политики значений позволяет разработчику заранее определить возможные значения и особенности накладываемых на них ограничений. Так, например, для электронной почты (e-mail) определяется необходимость указания случайного адреса с вариантами представления заглавными или строчными символами. То же применяется и для других вариантов правил формализации и представления значений.
Аналогично создается списковый тип данных, для которого нет необходимости специфицировать многие характеристики. Это объясняется тем, что данный тип данных предполагает использование явно заданных значе- ний, которые могут быть представлены для атрибута такого типа данных. Для таких типов данных определяются только ограничения па возможные значения, что также применяется достаточно редко.
Особо выделяется объединенный тип данных, который формирует совокупность множества типов данных, формирующих возможное представление данных (рис. 3.47). Для спецификации этого типа данных разработчиком определяется не один базовый тип данных, а множество типов, что реализуется перемещением выбранных типов данных из области "Available" (доступные) в область "Current" (выбранные) блока характеристик "Member Types". При этом в закладке "Constraints" (ограничения) никакие дополнительные характеристики, кроме указания явно заданных возможных значений, разработчиком не могут быть указаны.
Рис. 3.47. Базовые свойства объединенного типа данных |
Учитывая, что ограничений на значения типов данных может быть достаточно большое количество, инструментальное средство через контекстное меню определяемого типа данных дает возможность их создать и специфицировать. В зависимости от выбранного базового типа данных разработчику предоставляется возможность указать определенные характеристики. Так, например, если выбрать базовым типом данных "Date" (дата) и создать ограничение для минимального значения, то разработчику будет предложено указать, помимо наименования ограничения, его значение в соответствующем формате даты (рис. 3.48).
Рис. 3.48. Определение минимального значения для даты |
В итоге разработчиком может быть определено достаточно большое количество типов данных, которые часто применяются в проектируемой базе данных и не описаны предустановленными простыми типами данных.