---
title: Business Driving Key Link
description: A Business Driving Key Link is a Business Vault link with a second hash key, DrivingKeyLink_HK, calculated from the relationships marked as driving key.
---

[Skip to content](https://knowledge.bigenius-x.com/business-driving-key-link#main-content)

[Contact us](https://knowledge.bigenius-x.com/kb-tickets/new?hsLang=en) [Go to Customer Portal](https://knowledge.bigenius-x.com/customer-portal?hsLang=en)

[![TRI\_Logo\_biGENIUS\_2020\_RGB\_s](https://knowledge.bigenius-x.com/hs-fs/hubfs/Marketing/TRI_Logo_biGENIUS_2020_RGB_s.png?width=150&height=42&name=TRI_Logo_biGENIUS_2020_RGB_s.png)](https://www.bigenius-x.com/)

Open main navigation

Close main navigation

- [Contact us](https://knowledge.bigenius-x.com/kb-tickets/new)
- [Go to Customer Portal](https://knowledge.bigenius-x.com/customer-portal)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [biGENIUS-X Knowledge Base](https://knowledge.bigenius-x.com/?hsLang=en)
2. [Generators](https://knowledge.bigenius-x.com/generators?hsLang=en)
3. [Model Object Type](https://knowledge.bigenius-x.com/generators?hsLang=en#model-object-type)

# Business Driving Key Link

**Applies to**  
Platform: Microsoft SQL Server · Snowflake · Snowflake dbt · Databricks · Databricks dbt · Fabric Lakehouse · Fabric Warehouse · Oracle  
Architecture: Data Vault

A Business Driving Key Link is a Business Vault link with a second hash key, `DrivingKeyLink_HK`, calculated from the relationships marked as driving key. Use it when a business rule derives from Raw Vault data which relationship a driving key has, for example the job function of an employee. After each load, the table holds every relationship that the source delivered, each with the load that first delivered it.

A Business Driving Key Link works like a [Driving Key Link](https://knowledge.bigenius-x.com/create-a-driving-key-link?hsLang=en). It differs in its sources, its layer, its relationship targets and the `BDV_` prefix of its objects. It is available since Generator 2.0.

### Sources and relationships

A Business Driving Key Link reads the result views of Raw Vault objects, in one or more dataflows: Hubs, all Link types, PITs, RawVault Composites, Current Views, History Views and the satellite types Satellite, Link Satellite, Effectivity Satellite, Effectivity Link Satellite, Record Tracking Link Satellite, Non-Historized Satellite (no article yet) and Non-Historized Link Satellite. It also reads [BusinessVault Composites](https://knowledge.bigenius-x.com/create-a-business-vault-composite?hsLang=en).

It has at least two relationships to [Hubs](https://knowledge.bigenius-x.com/create-a-hub?hsLang=en) or [Business Hubs](https://knowledge.bigenius-x.com/create-a-business-hub?hsLang=en). The relationship property [Driving Key](https://knowledge.bigenius-x.com/driving-key-relationship?hsLang=en) marks the driving side; its default is true, so set it to false on the other relationships. The foreign-key terms are the business keys of the Business Driving Key Link. Business Current View, Business History View, Business PIT and [Vault Out](https://knowledge.bigenius-x.com/create-a-vault-out?hsLang=en) can read it as a source.

### Create the model object

- With the wizard: open the menu of a Raw Vault Hub, Link, PIT, Current View, History View or satellite, or of a BusinessVault Composite. Choose **Automate** and then **Create Business Driving Key Link**. Multi-Active Satellites and Record Tracking Satellites do not offer it. Its steps are [Create Model Object](https://knowledge.bigenius-x.com/wizard-step-create-model-object?hsLang=en), [Create Dataflow](https://knowledge.bigenius-x.com/wizard-step-create-dataflow?hsLang=en), Create Relations Driving, Define Role Driving, Create Relations Not Driving, Define Role Not Driving, [Map Foreign Key Terms](https://knowledge.bigenius-x.com/wizard-step-map-foreign-key-terms?hsLang=en) and [Add to View](https://knowledge.bigenius-x.com/wizard-step-add-to-view?hsLang=en). The relation steps are described in [Wizard step - Create Relations Driving or Not Driving](https://knowledge.bigenius-x.com/wizard-step-create-relations-driving-or-not-driving?hsLang=en). See [Create a Model Object with the wizard](https://knowledge.bigenius-x.com/create-a-model-object-with-the-wizard?hsLang=en).
- Manually: [create a model object](https://knowledge.bigenius-x.com/create-a-model-object?hsLang=en) of type Business Driving Key Link in the Business Vault layer, [add a relationship](https://knowledge.bigenius-x.com/add-a-relationship?hsLang=en) to each Hub or Business Hub and set Driving Key, [create a dataflow set](https://knowledge.bigenius-x.com/create-a-data-flow-set?hsLang=en), [add the source model object](https://knowledge.bigenius-x.com/add-a-model-object-into-a-data-flow-set?hsLang=en) and [map the foreign-key terms](https://knowledge.bigenius-x.com/map-a-source-term-with-a-target-term?hsLang=en).

A Business Driving Key Link holds only foreign-key terms and Default Terms. Validation reports an error for any other term.

### Properties

- [Implementation Type](https://knowledge.bigenius-x.com/implementation-type-model-object?hsLang=en): `Permanent` only.
- [Foreign Key Mode](https://knowledge.bigenius-x.com/foreign-key-mode-model-object?hsLang=en): whether the table gets foreign keys to the Hub tables. With `Create Disabled`, the default, they are created and disabled.
- [Load Caching](https://knowledge.bigenius-x.com/load-caching-model-object?hsLang=en): empty (default) or `Hashing`, which stores the hashing view in a table before the loader runs.
- [Custom Singleton Values](https://knowledge.bigenius-x.com/custom-singleton-values-model-object?hsLang=en): values of the unknown-member row.
- [Deduplication Method](https://knowledge.bigenius-x.com/deduplication-method-model-object?hsLang=en) and [Sort Order within Partition](https://knowledge.bigenius-x.com/deduplication-partition-model-object?hsLang=en), per dataflow.
- [Driving Key](https://knowledge.bigenius-x.com/driving-key-relationship?hsLang=en), per relationship: `true` (default) or `false`.
- Use Embryo Loader, per relationship: inserts business keys that the Hub or Business Hub does not hold yet. See [Embryo Loader](https://knowledge.bigenius-x.com/embryo-loader?hsLang=en).

### Default Terms

- [`Link_HK`](https://knowledge.bigenius-x.com/link_hk?hsLang=en): hash of the business keys of all relationships and primary key of the table.
- [`DrivingKeyLink_HK`](https://knowledge.bigenius-x.com/drivingkeylink_hk?hsLang=en): hash of the business keys of the driving relationships. With one driving relationship to a Hub, it equals that Hub's key.
- [`DVLINK_ForeignKey_Identity`](https://knowledge.bigenius-x.com/dvlink_foreignkey_identity?hsLang=en): names one hash-key column per relationship, `<Hub name>_<role>_HK`, with the key of the related Hub row.
- [`BG_LoadTimestamp`](https://knowledge.bigenius-x.com/bg_loadtimestamp?hsLang=en) and [`BG_SourceSystem`](https://knowledge.bigenius-x.com/bg_sourcesystem?hsLang=en): the load that inserted the row and its source system, empty unless you map it.
- [`BG_DataQuality_ID`](https://knowledge.bigenius-x.com/bg-dataquality-id?hsLang=en), [`BG_ErrorCount`](https://knowledge.bigenius-x.com/bg_errorcount?hsLang=en) and [`BG_ErrorDescription`](https://knowledge.bigenius-x.com/bg_errordescription?hsLang=en): hidden terms of the data quality objects.

See [How biGENIUS-X builds hash values](https://knowledge.bigenius-x.com/how-bigenius-x-builds-hash-values?hsLang=en).

### Generated objects

These are the names on Microsoft SQL Server for the Business Driving Key Link `load_bdkl` with one dataflow:

| Role | Generated name | Purpose |
| --- | --- | --- |
| Source | `BDV_BDKLNK_load_bdkl_Source` | Reads the sources |
| Deduplication | `BDV_BDKLNK_load_bdkl_Deduplication` | Removes duplicate rows |
| Hashing | `BDV_BDKLNK_load_bdkl_Hashing` | Calculates the hash keys |
| HashingStorage | `BDV_BDKLNK_load_bdkl_HashingTable` | Stores the hashed rows |
| HashingLoader | `BDV_BDKLNK_load_bdkl_HashingLoader` | Fills the hashing table |
| EmbryoLoader | `BDV_BDKLNK_load_bdkl_EmbryoLoader` | Adds missing Hub keys |
| Delta | `BDV_BDKLNK_load_bdkl_Delta` | Selects new key combinations |
| Loader | `BDV_BDKLNK_load_bdkl_Loader` | Inserts the new rows |
| Storage | `BDV_BDKLNK_load_bdkl` | Business Driving Key Link table |
| Result | `BDV_BDKLNK_load_bdkl_Result` | Query view |

- Loaders are stored procedures; the Business Driving Key Link table and the hashing table are tables; all other objects are views.
- The deduplication view exists only with a Deduplication Method other than `None`.
- The hashing table and hashing loader exist only with Load Caching `Hashing`. The delta view then reads the hashing table.
- The embryo loader exists only when Use Embryo Loader is true on a relationship. It runs before the loader.
- With several dataflows, all objects except the table and the result view exist once per dataflow, with the dataflow name in their names, for example `BDV_BDKLNK_load_bdkl_Dataflow1_HashingTable`.
- The table script inserts the unknown-member row with hash keys of zeros. The result view hides it.
- When no other model object has a relationship to the Business Driving Key Link, its result view shows only the latest row per `DrivingKeyLink_HK`.
- The result view always exists, independent of [Create Result Views](https://knowledge.bigenius-x.com/create-result-views-project?hsLang=en).

With the default settings, a load runs this chain:

```
Raw Vault _Result views -> _Source -> _Hashing -> _Delta
_Delta -> _Loader -> BDV_BDKLNK_load_bdkl -> _Result
_Result -> _Delta (key combinations in the result view)
```

The source view reads the result views of its sources. The hashing view calculates `Link_HK`, `DrivingKeyLink_HK` and one Hub key per relationship. The delta view keeps the rows whose `Link_HK` is not in the result view, and the loader inserts them with the load timestamp. The loader never updates or deletes rows, so the table keeps the earlier relationship of a driving key as well. With the optional objects, `_Deduplication` sits between `_Source` and `_Hashing`, `_HashingLoader` fills `_HashingTable` before the delta view reads it, and `_EmbryoLoader` writes missing keys to the Hub tables.

### Example

The Business Driving Key Link `load_bdkl` on Microsoft SQL Server reads the current versions of the Link Satellite `load_employee_dklsat_1`, joined with its Driving Key Link `load_dkl`. The dataflow filters on `BG_ValidToTimestamp` of End of Universe, so it delivers one job function per employee. The relationship to the Hub `common_employee` (role `EMPLOYEE`) is driving; the one to the Hub `common_jobfunction` (role `JOBFUNCTION`) is not. The Raw Vault and then the Business Driving Key Link load four times:

- Load 1 on 2026-10-28 08:00: employee 101 with job function 10, employees 102 and 103 with job function 20.
- Load 2 on 2026-10-29 08:00: employee 102 moves to job function 30, and employee 104 is new with job function 10.
- Loads 3 and 4 on 2026-10-30 and 2026-10-31 08:00: no change of job function.

### Check the result

Query the table, here in the schema `p3b`. The filter on `Link_HK` leaves out the unknown-member row:

```
SELECT FK_common_employee_EMPLOYEE_EMPLOYEE_ID AS EMPLOYEE_ID,
       FK_common_jobfunction_JOBFUNCTION_JOBFUNCTION_ID AS JOB_ID,
       Link_HK, DrivingKeyLink_HK, BG_LoadTimestamp
FROM p3b.BDV_BDKLNK_load_bdkl
WHERE Link_HK <> 0x00
ORDER BY EMPLOYEE_ID, BG_LoadTimestamp;
```

This is the result after load 4, with hash keys shortened to their first four bytes:

```
EMPLOYEE_ID  JOB_ID  Link_HK     DrivingKeyLink_HK  BG_LoadTimestamp
101          10      0xF5A3FB96  0x6348AE9A         2026-10-28 08:00
102          20      0x7253958A  0x8887BDD9         2026-10-28 08:00
102          30      0xBF5A86A3  0x8887BDD9         2026-10-29 08:00
103          20      0x30ED23FA  0x9D4E8CB4         2026-10-28 08:00
104          10      0x542F37C7  0x01656192         2026-10-29 08:00
```

- Employee 102 has two rows with the same `DrivingKeyLink_HK`: job function 20 from load 1 and job function 30 from load 2.
- Loads 3 and 4 inserted no row.

No other model object has a relationship to the Business Driving Key Link, so its result view shows the latest row per `DrivingKeyLink_HK`:

```
SELECT FK_common_employee_EMPLOYEE_EMPLOYEE_ID AS EMPLOYEE_ID,
       FK_common_jobfunction_JOBFUNCTION_JOBFUNCTION_ID AS JOB_ID,
       BG_LoadTimestamp
FROM p3b.BDV_BDKLNK_load_bdkl_Result
ORDER BY EMPLOYEE_ID;
```

```
EMPLOYEE_ID  JOB_ID  BG_LoadTimestamp
101          10      2026-10-28 08:00
102          30      2026-10-29 08:00
103          20      2026-10-28 08:00
104          10      2026-10-29 08:00
```

### Platform differences

- Snowflake: names are in capitals, and the loader is a stored procedure. A load control task calls it. The dataflow properties [Use Stream](https://knowledge.bigenius-x.com/use-stream-model-object?hsLang=en) and Warehouse Placeholder Variable Name apply.
- Databricks and Fabric Lakehouse: table and view names are in lowercase, and the loader is the notebook `BDV_BDKLNK_<model object name>_Loader`. The properties [File Format](https://knowledge.bigenius-x.com/file-format-model-object?hsLang=en), [Optimization Method](https://knowledge.bigenius-x.com/optimization-method-model-object?hsLang=en), [Optimization Method Columns](https://knowledge.bigenius-x.com/optimization-method-columns-model-object?hsLang=en) and [Use Sequential Dataflow Execution](https://knowledge.bigenius-x.com/use-sequential-dataflow-execution-model-object?hsLang=en) apply. Fabric Lakehouse allows only Foreign Key Mode `None`.
- Databricks dbt and Snowflake dbt: the Business Driving Key Link becomes the dbt models `bdv_bdklnk_<model object name>_source` and `bdv_bdklnk_<model object name>`. The model `bdv_bdklnk_<model object name>_result` exists only when Create Result Views is true; the default on dbt is false. Load Caching and Use Embryo Loader are not available.
- Fabric Warehouse: the same objects as on Microsoft SQL Server, deployed by notebooks.
- Oracle: names are in capitals, and the loader is a PL/SQL package. The tablespaces and the statistics properties apply.

### Limitations

- A Business Driving Key Link has at least two relationships and no terms other than foreign keys and Default Terms.
- A dataflow that delivers the same key combination twice in one load makes the loader fail with a primary key violation. A Deduplication Method removes such duplicates before hashing.

### Release differences

- Generator 2.0: the Business Driving Key Link type and its wizard are available.
- Generator 2.2: Use Embryo Loader is available.
- Generator 2.3: Custom Singleton Values is available.
- Generator 2.4.1: with Load Caching `Hashing` and several dataflows, each dataflow has its own hashing table, named with the dataflow.

### Related articles

- Previous: [Hub](https://knowledge.bigenius-x.com/create-a-hub?hsLang=en), [Business Hub](https://knowledge.bigenius-x.com/create-a-business-hub?hsLang=en), [Driving Key Link](https://knowledge.bigenius-x.com/create-a-driving-key-link?hsLang=en)
- Next: [Business Current View](https://knowledge.bigenius-x.com/create-a-business-current-view?hsLang=en), [Business PIT](https://knowledge.bigenius-x.com/create-a-business-pit?hsLang=en)
- Reference: [DrivingKeyLink\_HK](https://knowledge.bigenius-x.com/drivingkeylink_hk?hsLang=en), [Link\_HK](https://knowledge.bigenius-x.com/link_hk?hsLang=en), [DVLINK\_ForeignKey\_Identity](https://knowledge.bigenius-x.com/dvlink_foreignkey_identity?hsLang=en), [Driving Key (Relationship)](https://knowledge.bigenius-x.com/driving-key-relationship?hsLang=en), [Foreign Key Mode (Model Object)](https://knowledge.bigenius-x.com/foreign-key-mode-model-object?hsLang=en), [Load Caching (Model Object)](https://knowledge.bigenius-x.com/load-caching-model-object?hsLang=en), [Custom Singleton Values (Model Object)](https://knowledge.bigenius-x.com/custom-singleton-values-model-object?hsLang=en), [Create Result Views (Project)](https://knowledge.bigenius-x.com/create-result-views-project?hsLang=en)
- See also: [Business Link](https://knowledge.bigenius-x.com/create-a-business-link?hsLang=en), [Embryo Loader](https://knowledge.bigenius-x.com/embryo-loader?hsLang=en), [How biGENIUS-X builds hash values](https://knowledge.bigenius-x.com/how-bigenius-x-builds-hash-values?hsLang=en), [Create a Model Object with the wizard](https://knowledge.bigenius-x.com/create-a-model-object-with-the-wizard?hsLang=en), [Model a Data Vault Solution](https://knowledge.bigenius-x.com/model-a-data-vault-solution?hsLang=en)

- [Getting started](https://knowledge.bigenius-x.com/getting-started?hsLang=en#main-content)

    - [Guidelines](https://knowledge.bigenius-x.com/getting-started?hsLang=en#guidelines)
    - [Start working](https://knowledge.bigenius-x.com/getting-started?hsLang=en#start-working)
    - [Account](https://knowledge.bigenius-x.com/getting-started?hsLang=en#account)
- [General overview](https://knowledge.bigenius-x.com/general-overview?hsLang=en)
- [Artificial Intelligence](https://knowledge.bigenius-x.com/artificial-intelligence?hsLang=en)
- [Application Modules](https://knowledge.bigenius-x.com/application-modules?hsLang=en#main-content)

    - [Administration](https://knowledge.bigenius-x.com/application-modules?hsLang=en#administration)
    - [Solutions](https://knowledge.bigenius-x.com/application-modules?hsLang=en#solutions)
    - [Global Features](https://knowledge.bigenius-x.com/application-modules?hsLang=en#global-features)
    - [Projects](https://knowledge.bigenius-x.com/application-modules?hsLang=en#projects)
    - [Branches](https://knowledge.bigenius-x.com/application-modules?hsLang=en#branches)
    - [Data Connections](https://knowledge.bigenius-x.com/application-modules?hsLang=en#data-connections)
    - [Dataflow Modeling - Overview](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-overview)
    - [Dataflow Modeling - Wizard Steps](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-wizard-steps)
    - [Dataflow Modeling - Terms](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-terms)
    - [Dataflow Modeling - Term Mapping](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-term-mapping)
    - [Dataflow Modeling - Relationships](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-relationships)
    - [Dataflow Modeling - Data Quality](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-data-quality)
    - [Dataflow Modeling - Indexes](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-indexes)
    - [Relationship Modeling](https://knowledge.bigenius-x.com/application-modules?hsLang=en#relationship-modeling)
    - [Generate Artifacts](https://knowledge.bigenius-x.com/application-modules?hsLang=en#generate-artifacts)
    - [Project Settings](https://knowledge.bigenius-x.com/application-modules?hsLang=en#project-settings)
    - [Data Marketplace](https://knowledge.bigenius-x.com/application-modules?hsLang=en#data-marketplace)
- [Generators](https://knowledge.bigenius-x.com/generators?hsLang=en#main-content)

    - [Fabric Warehouse](https://knowledge.bigenius-x.com/generators?hsLang=en#fabric-warehouse)
    - [Fabric Lakehouse](https://knowledge.bigenius-x.com/generators?hsLang=en#fabric-lakehouse)
    - [Databricks](https://knowledge.bigenius-x.com/generators?hsLang=en#databricks)
    - [Snowflake](https://knowledge.bigenius-x.com/generators?hsLang=en#snowflake)
    - [Microsoft SQL Server](https://knowledge.bigenius-x.com/generators?hsLang=en#microsoft-sql-server)
    - [Artifacts](https://knowledge.bigenius-x.com/generators?hsLang=en#artifacts)
    - [Replace Placeholders](https://knowledge.bigenius-x.com/generators?hsLang=en#replace-placeholders)
    - [Target solution environment](https://knowledge.bigenius-x.com/generators?hsLang=en#target-solution-environment)
    - [Deployment](https://knowledge.bigenius-x.com/generators?hsLang=en#deployment)
    - [Deployment with an Azuze DevOps pipeline](https://knowledge.bigenius-x.com/generators?hsLang=en#deployment-with-an-azuze-devops-pipeline)
    - [Delta Deployment](https://knowledge.bigenius-x.com/generators?hsLang=en#delta-deployment)
    - [Load control environment](https://knowledge.bigenius-x.com/generators?hsLang=en#load-control-environment)
    - [Load data with a native load control](https://knowledge.bigenius-x.com/generators?hsLang=en#load-data-with-a-native-load-control)
    - [Load data with Apache Airflow](https://knowledge.bigenius-x.com/generators?hsLang=en#load-data-with-apache-airflow)
    - [Model Object Type](https://knowledge.bigenius-x.com/generators?hsLang=en#model-object-type)
    - [Properties](https://knowledge.bigenius-x.com/generators?hsLang=en#properties)
    - [Default Terms](https://knowledge.bigenius-x.com/generators?hsLang=en#default-terms)
- [Discovery application](https://knowledge.bigenius-x.com/discovery-application?hsLang=en#main-content)

    - [Discovery configurations](https://knowledge.bigenius-x.com/discovery-application?hsLang=en#discovery-configurations)
- [Best practices](https://knowledge.bigenius-x.com/best-practices?hsLang=en#main-content)

    - [Modeling Approaches](https://knowledge.bigenius-x.com/best-practices?hsLang=en#modeling-approaches)
    - [Use Cases](https://knowledge.bigenius-x.com/best-practices?hsLang=en#use-cases)
    - [Business Rules](https://knowledge.bigenius-x.com/best-practices?hsLang=en#business-rules)
    - [Data Quality Rules](https://knowledge.bigenius-x.com/best-practices?hsLang=en#data-quality-rules)
- [FAQs](https://knowledge.bigenius-x.com/faqs?hsLang=en)
- [Product Release Notes](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#main-content)

    - [SaaS Application](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#saas-application)
    - [Discovery application](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#discovery-application)
    - [Generators](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#generators)
- [Legal Documents](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#main-content)

    - [Current legal docs](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#current-legal-docs)
    - [Software Product and Limits](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#software-product-and-limits)

- [Contact us](https://knowledge.bigenius-x.com/kb-tickets/new?hsLang=en)
- [Customer Portal](https://knowledge.bigenius-x.com/customer-portal)
- [Sign in](https://knowledge.bigenius-x.com/_hcms/mem/login)

[![biGENIUS logo](https://knowledge.bigenius-x.com/hubfs/TRI_Logo_biGENIUS_2020_RGB-1.svg "biGENIUS logo")](https://www.bigenius-x.com)

<https://www.linkedin.com/company/bigenius> <https://www.youtube.com/@biGENIUS_DWA>

All rights reserved © 2025, biGENIUS AG