Подтвердить что ты не робот

В чем разница между основными, уникальными и внешними ограничениями ключа и индексами?

В чем разница между ограничениями первичного, уникального и внешнего ключей и индексами?

Я работаю над Oracle 10g и SQL Server 2008

4b9b3361

Ответ 1

Первичный ключ и уникальный ключ - ограничения целостности объекта

Первичный ключ позволяет однозначно идентифицировать каждую строку в таблице и гарантирует, что не существует повторяющихся строк и не вводится нулевое значение.

Единственное ограничение ключа используется для предотвращения дублирования значений ключей в строках таблицы и допускает нулевые значения. (В oracle один null не равен другому null).

  • KEY или INDEX ссылается на обычный не уникальный индекс. Допустимы нечеткие значения для индекса, поэтому индекс может содержать строки с одинаковыми значениями во всех столбцах индекса. Эти индексы не применяют какую-либо структуру ваших данных, поэтому они используются только для ускорения запросов.
  • UNIQUE ссылается на индекс, где все строки индекса должны быть уникальными. То есть одна и та же строка может не иметь одинаковых значений, отличных от NULL, для всех столбцов этого индекса в качестве другой строки. Как и для ускорения запросов, UNIQUE-индексы могут использоваться для обеспечения структуры данных, поскольку система базы данных не допускает нарушения этого правила отдельных значений при вставке или обновлении данных. Ваша система базы данных может разрешать индекс UNIQUE для столбцов, которые допускают значения NULL, и в этом случае две строки могут быть идентичными, если оба они содержат значение NULL (NULL считается не равным самому себе), хотя это, вероятно, нежелательно в зависимости от вашего приложение.
  • PRIMARY действует точно так же, как индекс UNIQUE, за исключением того, что он всегда называется "PRIMARY", и может быть только один в таблице (и всегда должен быть один, хотя некоторые системы баз данных не применяют это). Индекс PRIMARY предназначен для уникальной идентификации любой строки в таблице, поэтому ее нельзя использовать ни в каких столбцах, которые допускают значения NULL. Ваш индекс PRIMARY всегда должен быть на наименьшем числе столбцов, достаточных для однозначной идентификации строки. Часто это всего лишь один столбец с уникальным автоматически увеличивающимся номером, но если есть что-то еще, что может однозначно идентифицировать строку, такую ​​как "код страны" в списке стран, вы можете использовать это вместо этого.
  • Индексы FULLTEXT отличаются от всех вышеперечисленных, и их поведение больше отличается от систем баз данных. В отличие от вышеприведенных трех, которые обычно являются b-деревом (позволяя выбирать, сортировать или диапазоны, начиная с самого левого столбца) или хеша (с учетом выбора, начиная с самого левого столбца), индексы FULLTEXT полезны только для полнотекстового поиска, выполненного с помощью Предложение MATCH()/AGAINST().

см. Различия между INDEX, PRIMARY, UNIQUE, FULLTEXT в MySQL?

Ответ 2

Основной ключ: однозначно идентифицировать каждую строку он не может быть нулевым. это не может быть дубликат.

Внешний ключ: создать связь между двумя таблицами. может быть нулевым. может быть дубликатом  

Ответ 3

Вот вам несколько ссылок:

Ограничение первичного и внешнего ключей.

Первичный ключ: первичный ключ - это поле или комбинацию полей, которые однозначно идентифицировать запись в таблице, чтобы может быть установлена ​​отдельная запись без путаницы.

Внешний ключ: внешний ключ (иногда называемый ссылочным ключом) является ключом используется для соединения двух таблиц вместе. Обычно вы берете первичный ключ поле из одной таблицы и вставить его в другую таблицу, где она становится внешний ключ (он остается основным ключ в исходной таблице).

Index, с другой стороны, является атрибутом, который можно применить к некоторым столбцам, чтобы поиск данных, сделанный на этих столбцы могут ускоряться.

Ответ 4

1) A primary key представляет собой набор из одного или нескольких атрибутов, который однозначно идентифицирует кортеж внутри отношения.

2) A foreign key представляет собой набор атрибутов из схемы отношений, которая может однозначно идентифицировать кортежи из другой схемы отношений.

Ответ 5

  • Первичный ключ - это столбец или набор столбцов, которые однозначно идентифицируют строку в таблице. Первичный ключ должен быть коротким, стабильным и простым. Внешний ключ - это поле (или набор полей) в таблице, значение которой требуется для соответствия значению первичного ключа для второй таблицы. Обычно внешний ключ находится в таблице, которая отличается от таблицы, первичный ключ которой должен соответствовать. Таблица может иметь несколько внешних ключей.
  • Первичный ключ не может принимать нулевые значения. Внешний ключ может принимать несколько.
  • В таблице может быть только один первичный ключ. Мы можем иметь более одного внешнего ключа в таблице.
  • По умолчанию основной ключ является кластеризованным индексом, а данные в таблице базы данных физически организованы в последовательности кластеризованного индекса. Внешний ключ автоматически не создает индекс, кластерный или некластеризованный. Вы можете вручную создать индекс для внешнего ключа.

Ответ 6

Ключ/индекс: ключ является аспектом проектирования базы данных LOGICAL, индекс является аспектом проектирования базы данных PHYSICAL. Ключ соответствует ограничению целостности, индекс - это метод физической регистрации значений, который может быть полезен при применении этих ограничений.

Первичный/внешний: ключ "primary" - это набор атрибутов, значения которых должны составлять уникальную комбинацию во всей таблице. Может быть более одного такого набора ( > 1 ключ), а слово "primary" - это остаток от предыдущих дней, когда разработчик был вынужден выбрать один из этих нескольких ключей как "самый важный/релевантный", Причина этого заключалась прежде всего в сочетании с внешними ключами:

Как и "первичный" ключ, "чужой" ключ также является набором атрибутов. Значения этих атрибутов должны формировать комбинацию, которая представляет собой существующее значение первичного ключа в таблице, на которую делается ссылка. Я не знаю точно, насколько строго это правило применяется в SQL сегодня. Терминология все равно осталась.

Уникальное: ключевое слово, используемое для указания того, что индекс не может принимать повторяющиеся записи. Уникальные индексы, очевидно, являются отличным средством для принудительного использования первичных ключей. В той степени, в которой слово "уникальный" используется в контексте логического дизайна, оно излишне, неаккуратно, ненужно и запутывает. Клавиши (первичные ключи, то есть) уникальны по определению.

Ответ 7

Основной ключ главным образом предотвращает дублирование и показывает уникальность столбцов Внешний ключ в основном показывает отношения на двух таблицах.