Каква е разликата между primary
, unique
и foreign key constraints
и indexes
?
Работя върху Oracle 10g
и SQL Server 2008
Каква е разликата между primary
, unique
и foreign key constraints
и indexes
?
Работя върху Oracle 10g
и SQL Server 2008
Първичен ключ и уникален ключ са ограничения за целостта на обекта
Първичният ключ позволява всеки ред в таблицата да бъде уникално идентифициран и гарантира, че няма дублиращи се редове и не се въвеждат нулеви стойности.
Ограничението за уникален ключ се използва за предотвратяване на дублирането на ключови стойности в редовете на таблица и за разрешаване на нулеви стойности. (В Oracle една нула не е равна на друга нула).
вижте Разлики между INDEX, PRIMARY, UNIQUE, FULLTEXT в MySQL?
Първичен ключ: идентифицира уникално всеки ред, който не може да бъде нула. не може да е дубликат.
Външен ключ: създава връзка между две таблици. може да бъде нула. може да бъде дубликат
Ето малко справка за вас:
Ограничение за първичен и външен ключ.
Първичен ключ: Първичният ключ е поле или комбинация от полета, които уникално идентифицират запис в таблица, така че отделен запис да може да бъде локализиран без объркване.
Външен ключ: Външен ключ (понякога наричан референтен ключ) е ключ, използван за свързване на две таблици заедно. Обикновено вземате полето за първичен ключ от една таблица и го вмъквате в другата таблица, където то става външен ключ (остава първичен ключ в оригиналната таблица).
Индекс, от друга страна, е атрибут, който можете да приложите към някои колони, така че че извличането на данни, извършено в тези колони, може да се ускори.
Ключ/индекс: Ключът е аспект на ЛОГИЧЕСКИ дизайн на база данни, индексът е аспект на ФИЗИЧЕСКИ дизайн на база данни. Ключът съответства на ограничение за интегритет, индексът е техника за физическо записване на стойности, които могат да бъдат полезно приложени при налагането на тези ограничения.
Първичен/чужд : „Първичен“ ключ е набор от атрибути, чиито стойности трябва да образуват комбинация, която е уникална в цялата таблица. Може да има повече от един такъв набор (> 1 ключ) и думата „основен“ е остатък от по-ранните дни, когато дизайнерът след това е бил принуден да избере един от тези множество ключове като „най-важният/подходящият“ . Причината за това беше предимно в комбинация с външни ключове:
Подобно на "първичния" ключ, "чуждият" ключ също е набор от атрибути. Стойностите на тези атрибути трябва да образуват комбинация, която е съществуваща стойност на първичен ключ в референтната таблица. Не знам точно колко строго това правило все още се прилага в SQL днес. Така или иначе терминологията си остана.
Уникален: ключова дума, използвана за указване, че даден индекс не може да приема дублиращи се записи. Уникалните индекси очевидно са отлично средство за налагане на първични ключове. Доколкото думата „уникален“ се използва в контекста на ЛОГИЧНИЯ дизайн, тя е излишна, небрежна, ненужна и объркваща. Ключовете (т.е. първичните ключове) са уникални по дефиниция.
1) primary key
е набор от един или повече атрибути, които уникално идентифицират кортеж в релацията.
2) foreign key
е набор от атрибути от релационна схема, които могат да бъдат уникално идентифицирани кортежи от друга релационна схема.
Първичният ключ основно предотвратява дублирането и показва уникалността на колоните. Външният ключ показва основно връзката на две таблици