A data domain (domain) refers to a data model, such as student or course, and is defined by the parties responsible for data governance. The data domain defines the model schema and other attributes for that focus. Common examples of data domains are customers, students, employees, parts, and product orders.
...
Federated: Federated domains do not store their data in YOUnite but retrieve and update the data on the systems in which it resides. For example, MIS, ERP, or CRM systems. Federated domains require adaptors, metadata, and governance configurations and are covered in detail *TODO: TUTORIAL ON FEDERATED*
Domain Model Schemas
A domain Model Schema refers to the attributes (properties), format, and other metadata that defines how a specific domain should expect to store the data (either in the YOUnite Data Store or Federated), for the purposes of standardizing how data is exchanged between systems. The Data Governance Steward is responsible for configuring and maintaining domain model schemas. A domain model schema is a JSON object describing/defining the properties for the domain's schema. The root node of the model schema is the properties element. See Valid Property Names and Valid Types for ModelSchema Properties below.
...
property | required | valid values | description |
---|---|---|---|
name | yes | Must be between 2 to 128 characters long and must start with an alpha character. The | The domain name. Must be unique to the entire YOUnite deployment since domains are typically shared. |
description | no | 0 to 255 characters long. If longer it will be truncated. | A human readable description of the domain. |
zoneUuid | no | Owning zone's domain UUID | The zone that the domain, the domain's versions, and its data records will be tied to. If this is omitted the caller's current zone will be used. Note that the caller must have permissions to create a domain. |
domainType | no | MDM_DATA_STORE or FEDERATED | The domain type can be either: MDM_DATA_STORE, which is when the domain's data records are stored in YOUnite. This is used when the entire organization is comfortable or mandated to migrate a domain to a single store. MDM_DATA_STORE is optimal for reference data such as a list of states, countries, zip-codes, etc. FEDERATED domains do not store their data in YOUnite, but reference and update data on the systems in which it resides. Federated domains require adaptors, metadata, and governance configurations that are covered in detail. |
...
Code Block | ||
---|---|---|
| ||
{ "modelSchema": { "properties": { "<property-name>": { "type": "<property-type>", ...item1 properties.... }, "<property-name>": { ... } } }, "description": "<description>", "fastDuplicateDetectionProperties": "<property-name> [,<property-name2>, ....]" } |
11/16/17 Per Mark: THINGS HAVE CHANGED…. in the “Domain Version Properties Descriptions” and throughout the page.
- No more displayProperty, uniquenessRules: they got replaced with “fastDuplicateDetectionProperties” (FDDP). See the glossary. It has a good description of “Deterministic Uniqueness” , "De-Duplication” and "Probabilistic Uniqueness” — it also has a pretty good description of "Fast Duplicate Detection Properties”.
- Basically, we can’t have dupes so FDDP are the way we prevent them.
Domain Uniqueness: One of the functions of an MDM system is to detect, resolve and avoid duplicate data which is a significant problem in an organization dependent on many disparate systems. Uniqueness refers to a Data Record's (DR) state as being the only representation within that domain across the systems managed by MDM. For example; there should only be one student DR for any given student. Refer to Deterministic Uniqueness and Fast Duplicate Detection Properties for how CCCTC MDM manages uniqueness.
Deterministic Uniqueness: Deterministic Uniqueness is an MDM approach to detecting whether an MDR is unique for it's domain (refer to Uniqueness). When a transaction through MDM attempts to POST (add) a new record Deterministic Uniqueness combines one-to-many individual attributes (fields) that make up the MDR and queries the MDM stored values for that domain to make sure that they do not already exist. If they do than a process is initiated to resolve and/or report the duplication. The attirbutes that collectively define uniqueness for that domain are identified by the Zone Data Steward. The CCCTC MDM implements Deterministic Uniqueness.
Fast Duplicate Detection Properties: Fast Duplicate Detection Properties are attributes of a Domain and identify those fields that, when combined, MDM should use to detect whether the DR is unique. Refer to Domain Uniqueness, Deterministic Uniqueness, Duplicates and De-Duplication for more.
...
- .
Domain Version Properties Descriptions
property | required | valid values | description |
---|---|---|---|
modelSchema | yes | See Model Schema Properties and Post a Domain below for details. | A JSON model describing the schema for the data domain; it defines the properties that make up the domains schema. The root node of the model schema is the properties element. |
description | no | 0 to 255 characters long. If longer it will be truncated. | A human readable description of the domain version. |
fastDuplicateDetectionProperties |
Once the domain/version has been created you can POST data records to, and retrieve data records from, the domain.
Domain Properties Details
The information below provides further domain property details:
- fastDuplicateDetectionProperties
- Federated Domains: Uniqueness Rules & Required Properties
- Valid property names
- Valid property types
Fast Duplicate Detection Properties
Anchor | ||||
---|---|---|---|---|
|
Each domain must have a duplicate detection property (fastDuplicateDetectionProperties
). Fast Duplicate Detection Properties are attributes of a domain and identify those fields that, when combined, MDM should use to detect whether the data record is unique. Refer to Domain Uniqueness, Deterministic Uniqueness, and Probabilistic Uniqueness for more information.
...
Note: See Posting a Data Record and Retrieving a Data Record sections for further details on posting/retrieving data records.
Fast Duplicate Dectction Properites Rules
- The value provided for the
displayProperty
must be unique between all domain entries of a given domain type (e.g. each entry in the "state"
domain must have a uniquestateName
). - Only one property in a domain can be the
displayProperty
. If more than one property is required to ensure uniqueness see the Uniqueness Rules Property below. - Display properties are limited to type STRING.
- Properties designated as the
displayProperty
are required; i.e. null values are not allowed. - Display properties are case sensitive e.g. "California" is NOT equal to "california".
Valid Property Names
Anchor | ||||
---|---|---|---|---|
|
- Must start with a letter or "\_" (underscore).
- Can only contain digits, "-" (dash) and "\_" (underscore).
- Can be up to 64 characters in length.
- Are case in-sensitive.
- If two properties have the same name at the same level only one will be used. In Example 1 below, only one name "property" will be used. In Example 2, both will be used because "
name"
occurs at different levels in the JSON structure.
...
Code Block | ||
---|---|---|
| ||
{ "properties": { ... "owner": { "name": {...}, "phone": {...}, .... }, "pet": { "name": {...}, "classification": {...}, .... }, .... } } |
Valid Model Schema Types
Anchor | ||||
---|---|---|---|---|
|
Each property with the exception of a node, requires a type
property e.g.:
Code Block |
---|
"type": "string" |
Rules About Required and Default Values
Anchor | ||||
---|---|---|---|---|
|
- If a domain property has a
default
value defined in itsmodelSchema
, then any domain data records posted will use the default value if the property either does not include a value or is sent in with a null value.
...
- If both
required
anddefault
are used to define a given property, thendefault
is ignored and POSTing data must include the required property.
Node
A container-node item is a node that contains sub-properties. For example, "address"
is a container node with the sub-items "city"
and "state
."
...
Property | Description |
---|---|
required | A non-null value for this item must be provided (false by default). Items inside the container-node canoverride the parent container node's required setting. |
items | Contains the list of sub-properties in the node. This is required only if the "type", "required", and/or "description" properties are used. |
String
A string of characters variable. The following properties are applied when data is posted for this item:
Property | Description |
---|---|
min | Minimum string length. |
| Maximum string length. |
regex | String must match the regex pattern. |
default | If the item is not provided or is null, the default value is used. |
required | A non-null value for this item must be provided (false by default). |
description | A human-readable description of the property. |
Int
A numeric, whole number.
Property | Description |
---|---|
min | Minimum value allowed. |
| Maximum value allowed. |
default | If the item is not provided or is null, the default value is used. |
required | A non-null value for this item must be provided (false by default). |
description | A human-readable description of the property. |
Number
A numeric, decimal number with up to 15 bits of precision.
Property | Description |
---|---|
min | Minimum value allowed. |
| Maximum value allowed. |
default | If the item is not provided or is null, the default value is used. |
required | A non-null value for this item must be provided (false by default). |
description | A human-readable description of the property. |
Boolean
A Boolean, allowing only the two values of true
or false
Property | Description |
---|---|
default | If the item is not provided or is null, the default value is used. |
required | A non-null value for this item must be provided (false by default). |
description | A human-readable description of the property. |
Enum
Enumerations (enums) can be either a primitive type (string
, int
, or a number
) or, a cross-reference to an entire set or subset of data records in another domain.
Property | Description | ||||||
---|---|---|---|---|---|---|---|
enumType | Types of enums:
| ||||||
xrefLocation | If For example, if a version of a domain "countries"contains a list of data record values that represent all countries then a domain can reference it by specifying an enumeration type of
A subset of the data record values in the domain can be specified using the | ||||||
data | An array containing a comma-separated list of enum values. e.g. Is a three-item string enumeration. If the
Assuming the display values for Canada, the United States, and Mexico are those shown above in the data elements. | ||||||
default | If the item is not provided or is null, the default value is used. | ||||||
required | A non-null value for this item must be provided (false by default). | ||||||
description | A human-readable description of the property. |
URI
A properly formed Uniform Resource Locator (URL). A URL is a type of Uniform Resource Identifier (URI). By default, a property of type uri
can be any valid URI or it can be limited by a regex pattern or to a domain cross-reference (xrefLocation:"xref").
...
Property | Description |
---|---|
minItems | Minimum items allowed in the array. |
| Maximum items allowed in the array |
default | If the item is not provided or is null, the default value is used. |
items | Contains the list of sub-properties in the node. |
required | A non-null value for this item must be provided (false by default). |
description | A human-readable description of the property. |
&&&11/16/17 From Mark: double back and check the section titled "An Example of Creating a Domain in Two Steps” is accurate since some of the API options parameters may change.&&&
An Example of Creating a Domain in Two Steps
...