官术网_书友最值得收藏!

Entity integrity constraint

In the relational model, a relation is defined as a set of tuples. This means that all the tuples in a relation must be distinct. The entity integrity constraint is enforced by having a primary key, which is an attribute/set of attributes with the following characteristics:

  • The attribute should be unique
  • The attributes should be not null

Each relation must have only one primary key, but can have many unique keys. A candidate key is a minimal set of attributes that can identify a tuple. All unique, not null attributes can be candidate keys. The set of all attributes form a super key. In practice, we often pick up a single attribute to be a primary key instead of a compound key (a key that consists of two or more attributes that uniquely identify a tuple) to simplify the joining of the relations with each other.

If the primary key is generated by the DBMS, then it is called a surrogate key or synthetic key. Otherwise, it is called a natural key. The surrogate key candidates can be sequences and universal unique identifiers (UUIDs). A surrogate key has many advantages such as performance, requirement change tolerance, agility, and compatibility with object-relational mappers. The chief disadvantage of surrogate keys is that it makes redundant tuples possible. 

A sequence is a number generator that is used to generate a series of numbers based on the current number's value. This term is used mainly in PostgreSQL and Oracle databases. PostgreSQL also has an  identity column, which is mainly used to generate series of numbers. More about this topic is explained in Chapter 4, PostgreSQL Advanced Building Blocks.
主站蜘蛛池模板: 互助| 任丘市| 富锦市| 吴堡县| 德惠市| 泰州市| 东乌珠穆沁旗| 抚顺市| 泉州市| 东乌珠穆沁旗| 漠河县| 靖边县| 宜宾市| 武夷山市| 山东省| 民丰县| 毕节市| 阳谷县| 潍坊市| 碌曲县| 海盐县| 施秉县| 磐安县| 资阳市| 彩票| 南充市| 巴马| 杭锦后旗| 大邑县| 施秉县| 玉溪市| 甘泉县| 内丘县| 武平县| 廊坊市| 综艺| 灯塔市| 南昌市| 南康市| 延津县| 易门县|