Реляционные базы данных: Ключи таблиц
Ключ, или индекс, как само название указывает, открывает доступ к таблицам. Если вы знаете ключ, вы знаете, как идентифицировать конкретные записи и связи между таблицами.
Каждый ключ состоит из одного или нескольких полей или префиксов полей. Порядок столбцов в индексе имеет значение. Каждый ключ имеет имя.
Кандидатный ключ — это поле или комбинация полей, которые однозначно идентифицируют запись. Он не может содержать значение NULL, и его значение должно быть уникальным. (При дублировании вы уже не сможете идентифицировать уникальную запись).
Основной ключ (PK) — это кандидатный ключ, который был обозначен для идентификации уникальных записей в таблице во всей структуре базы данных.
Заместительный ключ — это основной ключ, который содержит уникальные значения, автоматически генерируемые системой базы данных — обычно целочисленные значения. У заместительного ключа нет смысла, кроме уникальной идентификации записи. Это наиболее распространенный тип основного ключа.
Например, см. следующую таблицу:
| Customer_code | First_name | Surname | Telephone_number |
|---|---|---|---|
| 1 | Ariane | Edison | 448-2143 |
| 2 | Georgei | Edison | 448-2142 |
| 3 | Abbas | Edison | 9231-5312 |
На первый взгляд для этой таблицы есть два возможных кандидатных ключа. Достаточно либо customer_code, либо комбинация first_name, surname и telephone_number. Всегда лучше выбирать кандидатный ключ с наименьшим количеством полей для основного ключа, поэтому в данном примере вы выберете customer_code (обратите внимание, что это заместительный ключ). После размышления существует также возможность, что вторая комбинация не будет уникальной. Комбинация first_name, surname и telephone_number теоретически может дублироваться, например, если у отца и сына одинаковое имя и одинаковый номер телефона. Эта система должна явным образом исключить такую возможность, чтобы эти три поля могли рассматриваться в качестве основного ключа.
Может быть много Ариан Эдисонов, но вы избегаете путаницы, присвоив каждому уникальное число. После создания основного ключа оставшиеся кандидаты классифицируются как альтернативные ключи.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/relational-databases-table-keys/