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

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.
主站蜘蛛池模板: 古丈县| 朝阳区| 河北区| 稻城县| 宜州市| 朝阳区| 城口县| 铁岭县| 雷州市| 六枝特区| 来安县| 崇阳县| 玛沁县| 敖汉旗| 常宁市| 肇庆市| 桂林市| 西乡县| 两当县| 德昌县| 冀州市| 虹口区| 社旗县| 建瓯市| 肇源县| 根河市| 城步| 拜城县| 县级市| 富宁县| 洛浦县| 西乌| 合江县| 老河口市| 武宁县| 榆社县| 仁布县| 平远县| 滕州市| 右玉县| 于田县|