Differences between key, superkey, minimal superke

2020-01-30 02:11发布

I'm new to MySQL, and I'm really confused about the different terms that I've encountered. I tried googling the answer but the results are really confusing and when I try and understand it just seems like they are the same thing.

What exactly are the differences among key, superkey, minimal superkey, candidate key and primary key?

9条回答
闹够了就滚
2楼-- · 2020-01-30 03:15

Superkey

A superkey is a combination of attributes that can be uniquely used to identify a 
database record. A table might have many superkeys.Candidate keys are a special subset
of superkeys that do not have any extraneous information in them.

Examples: Imagine a table with the fields <Name>, <Age>, <SSN> and <Phone Extension>.
This table has many possible superkeys. Three of these are <SSN>, <Phone Extension, Name>
and <SSN, Name>.Of those listed, only <SSN> is a **candidate key**, as the others
contain information not necessary to uniquely identify records.
查看更多
【Aperson】
3楼-- · 2020-01-30 03:16

Here I copy paste some of the information that I have collected

Key A key is a single or combination of multiple fields. Its purpose is to access or retrieve data rows from table according to the requirement. The keys are defined in tables to access or sequence the stored data quickly and smoothly. They are also used to create links between different tables.

Types of Keys

Primary Key The attribute or combination of attributes that uniquely identifies a row or record in a relation is known as primary key.

Secondary key A field or combination of fields that is basis for retrieval is known as secondary key. Secondary key is a non-unique field. One secondary key value may refer to many records.

Candidate Key or Alternate key A relation can have only one primary key. It may contain many fields or combination of fields that can be used as primary key. One field or combination of fields is used as primary key. The fields or combination of fields that are not used as primary key are known as candidate key or alternate key.

Composite key or concatenate key A primary key that consists of two or more attributes is known as composite key.

Sort Or control key A field or combination of fields that is used to physically sequence the stored data called sort key. It is also known s control key.

A superkey is a combination of attributes that can be uniquely used to identify a database record. A table might have many superkeys. Candidate keys are a special subset of superkeys that do not have any extraneous information in them.

Example for super key: Imagine a table with the fields <Name>, <Age>, <SSN> and <Phone Extension>. This table has many possible superkeys. Three of these are <SSN>, <Phone Extension, Name> and <SSN, Name>. Of those listed, only <SSN> is a candidate key, as the others contain information not necessary to uniquely identify records.

Foreign Key A foreign key is an attribute or combination of attribute in a relation whose value match a primary key in another relation. The table in which foreign key is created is called as dependent table. The table to which foreign key is refers is known as parent table.

查看更多
We Are One
4楼-- · 2020-01-30 03:16

Largely based on the accepted answer, but with a few tweaks to fit better the definitions taught in some courses:

  • Key: A set of ≥ 1 columns.
  • Superkey: A key that ⊇ a candidate key.
    • Therefore, a superkey must contain > 1 columns.
    • Minimal Super keyCandidate Key: A key that can uniquely identify each row in a table.
    • Primary Key: The chosen Candidate Key for doing that.
    • Secondary key / Alternate key: A Candidate Key not chosen for doing that.
  • Search Key: A key used for locating records.
  • Composite key or concatenate key: A key with > 1 columns.
    • Usually implies "composite primary key", although "composite alternate key" is also a thing.
  • Sort or control key: A key used to physically sequence the stored data.
  • Foreign Key A key in one table that matches the Primary Key of another table.
    • The table in which foreign key resides is called as dependent table.
    • The table to which foreign key refers is known as parent table.
查看更多
登录 后发表回答