- Ключовете играят важна роля в релационната база данни.
- Използва се за уникално идентифициране на всеки запис или ред от данни от таблицата. Използва се и за установяване и идентифициране на връзки между таблици.
Например, ID се използва като ключ в таблицата Student, защото е уникален за всеки студент. В таблицата PERSON номер_на_паспорт, номер_на_лиценза, SSN са ключове, тъй като са уникални за всяко лице.
Видове ключове:
1. Първичен ключ
- Това е първият ключ, използван за уникално идентифициране на едно и само едно копие на обект. Един обект може да съдържа множество ключове, както видяхме в таблицата PERSON. Ключът, който е най-подходящ от тези списъци, става първичен ключ.
- В таблицата EMPLOYEE ID може да бъде първичен ключ, тъй като е уникален за всеки служител. В таблицата EMPLOYEE можем дори да изберем License_Number и Passport_Number като първични ключове, тъй като те също са уникални.
- За всеки обект изборът на първичен ключ се основава на изискванията и разработчиците.
2. Кандидат ключ
- Кандидат ключът е атрибут или набор от атрибути, които могат уникално да идентифицират кортеж.
- С изключение на първичния ключ, останалите атрибути се считат за кандидат ключ. Кандидат ключовете са толкова силни, колкото първичния ключ.
Например: В таблицата EMPLOYEE id е най-подходящ за първичен ключ. Останалите атрибути, като SSN, Passport_Number, License_Number и др., се считат за кандидат ключ.
3. Супер ключ
Супер ключът е набор от атрибути, който може уникално да идентифицира кортеж. Супер ключът е надмножество на кандидат ключ.
Например: В горната таблица EMPLOYEE за (EMPLOEE_ID, EMPLOYEE_NAME) имената на двама служители могат да бъдат еднакви, но техният EMPLYEE_ID не може да бъде еднакъв. Следователно тази комбинация може да бъде и ключова.
Супер ключът ще бъде EMPLOYEE-ID (EMPLOYEE_ID, EMPLOYEE-NAME) и т.н.
4. Външен ключ
- Външните ключове са колоната на таблицата, използвана за сочене към първичния ключ на друга таблица.
- Всеки служител работи в конкретен отдел на компания, а служителят и отделът са две различни единици. Така че не можем да съхраняваме информацията за отдела в таблицата на служителите. Ето защо ние свързваме тези две таблици чрез първичния ключ на една таблица.
- Добавяме първичния ключ на таблицата DEPARTMENT, Department_Id, като нов атрибут в таблицата EMPLOYEE.
- В таблицата EMPLOYEE Department_Id е външният ключ и двете таблици са свързани.
5. Алтернативен ключ
Може да има един или повече атрибути или комбинация от атрибути, които уникално идентифицират всеки кортеж в релация. Тези атрибути или комбинации от атрибути се наричат кандидат ключове. Един ключ се избира като първичен ключ от тези кандидат ключове, а останалият кандидат ключ, ако съществува, се нарича алтернативен ключ. С други думи, общият брой на алтернативните ключове е общият брой кандидат ключове минус първичния ключ. Алтернативният ключ може да съществува или да не съществува. Ако има само един кандидат-ключ в релация, тя няма алтернативен ключ.
Например, Employee Relation има два атрибута, Employee_Id и PAN_No, които действат като кандидат ключове. В тази връзка Employee_Id е избран като първичен ключ, така че другият кандидат ключ, PAN_No, действа като алтернативен ключ.
какво е autowired в java
6. Композитен ключ
Всеки път, когато първичен ключ се състои от повече от един атрибут, той е известен като съставен ключ. Този ключ е известен още като конкатениран ключ.
Например, в отношенията със служителите приемаме, че на един служител могат да бъдат възложени множество роли и един служител може да работи по множество проекти едновременно. Така първичният ключ ще бъде съставен от трите атрибута, а именно Emp_ID, Emp_role и Proj_ID в комбинация. Така че тези атрибути действат като съставен ключ, тъй като първичният ключ съдържа повече от един атрибут.
7. Изкуствен ключ
Ключът, създаден с помощта на произволно присвоени данни, е известен като изкуствени ключове. Тези ключове се създават, когато първичният ключ е голям и сложен и няма връзка с много други отношения. Стойностите на данните на изкуствените ключове обикновено са номерирани в сериен ред.
Например, първичният ключ, който се състои от Emp_ID, Emp_role и Proj_ID, е голям в отношенията между служителите. Така че би било по-добре да добавите нов виртуален атрибут, за да идентифицирате уникално всеки кортеж в релацията.