# Domain-key normal form | DBMS

In this tutorial, we are going to learn about the **Domain-key normal form in the database management system** with domain constraints.

Submitted by Anushree Goswami, on August 16, 2019

A **domain-key normal form** is a normal form used in database normalization which needs particularly that the database contains no restrictions other than domain constraints and key constraints.

A **domain constraint** identifies clearly the permitted and enabled values for a given attribute, while a key constraint identifies clearly the attributes that distinctly identify a row in a given table or relation.

It is fundamentally a process in the database to arrange systematically data efficiently and effectively. Fundamentally, there are two targets of doing normalization, which are as follows,

- To eliminate repeated data or in other words, it can be said to eliminate redundant data.
- It is to make certain that there will be data dependencies.

The domain/key normal form is successfully reached when each constraint on the relation or table of the attribute is a logical consequence of the definition of keys and domains, and imposing key and domain restraints and conditions, which causes all constraints to be arranged. That's why it avoids all non-temporal anomalies. To achieve Normalization, the steps to be taken are,

- Eliminate repeating groups and remove repeating data.
- Eliminate those columns that are not considered to be dependent on Key.
- The multiple relationships should be separate independently.

It's very effortless to construct a database in the domain/key normal form than it is to change the form of lesser databases which may have in a great number of anomalies. Although, successfully constructing a domain/key normal form database continue to exist as a challenging task, even for experienced database programmers. Thus, in the duration of time the domain/key normal form removes the problems found in most databases, it inclined to be the most costly normal form to achieve. However, unsuccessful to achieve the domain/key normal form may carry long-term, hidden costs due to anomalies which become noticeable in databases attached only to lower normal forms over a period of time.

The fundamental scheme behind the domain/key normal form is to identify the normal form that takes into account all the possible dependencies and constraints.

In easily understood manner, the domain/key normal form define as a normal form utilized in database normalization which needs particularly that the database which have no constraints other than domain constraints and key constraints.

In other words, the domain/key normal form contain a relation schema only if all constraints and dependencies that should hold on the valid relation state can be imposed by easily imposing the domain constraint and key constraint on the relation or table of attributes. For a relation in the domain/key normal form, it becomes very straight forward to impose all the database constraints by simply examining so that each attribute value is a tuple is of the suitable domain and that every key constraint is imposed.

The reasons to utilize the domain/key normal form are in the following points,

- To avoid general constraints in the database those are not clear key constraints.
- Most databases can easily test or check key constraints on attributes.

A table is in Domain-Key normal form only if it is in 4NF, 3NF and other normal forms. It is based on constraints:

### Domain constraint

Values of an attribute had some set of values, for example, *EngineerID* should be four digits long:

EngineerID | Engineer Name | Engineer Age |
---|---|---|

0443 | Rakesh | 34 |

0546 | Kamal | 27 |

### Key constraint

An attribute or its combination is a candidate key.

### General constraint

Predicate on the set of all relations.

Although, because of the difficulty of including complicated constraints in the domain/key normal form relation its practical utility is limited means that they are not in practical use, as long as it may be quite difficult to identify general integrity constraints.

TOP Interview Coding Problems/Challenges

- Run-length encoding (find/print frequency of letters in a string)
- Sort an array of 0's, 1's and 2's in linear time complexity
- Checking Anagrams (check whether two string is anagrams or not)
- Relative sorting algorithm
- Finding subarray with given sum
- Find the level in a binary tree with given sum K
- Check whether a Binary Tree is BST (Binary Search Tree) or not
- 1[0]1 Pattern Count
- Capitalize first and last letter of each word in a line
- Print vertical sum of a binary tree
- Print Boundary Sum of a Binary Tree
- Reverse a single linked list
- Greedy Strategy to solve major algorithm problems
- Job sequencing problem
- Root to leaf Path Sum
- Exit Point in a Matrix
- Find length of loop in a linked list
- Toppers of Class
- Print All Nodes that don't have Sibling
- Transform to Sum Tree
- Shortest Source to Destination Path

Comments and Discussions

**Ad:**
Are you a blogger? Join our Blogging forum.

Learn PCB Designing: PCB DESIGNING TUTORIAL