Основни ключове, които правят управлението на базата данни лесно
Базите данни използват таблици за организиране на информация. Всяка таблица се състои от определен брой редове, всеки от които съответства на един запис в базата данни. И така, как базите данни поддържат тези записи прави? Това става чрез използването на ключове.
Първични ключове
Първият тип ключ, който ще обсъдим, е първичният ключ. В първичен ключ уникално идентифицира всеки запис в таблица. Всяка таблица на база данни трябва да има една или повече колони, определени като първичен ключ.
Пример за първичен ключ
Да приемем, че имаме таблица, наречена Служители, която съдържа информация за персонала за всеки служител в нашата фирма. Ще трябва да изберем подходящ първичен ключ, който да идентифицира уникално всеки служител. Първата ви мисъл може да е да използвате името на служителя. Това обаче няма да работи, защото е възможно да наемете двама служители с едно и също име. По-добър избор може да бъде да използвате уникалния идентификационен номер на служител, присвоен на всеки служител при наемане.
Някои организации използват социалноосигурителни номера (или подобни правителствени идентификатори) като основен ключ, тъй като всеки служител вече има такъв и е гарантирано, че са уникални. Въпреки това, използването на социалноосигурителни номера за тази цел е спорно поради опасения за поверителността.
Ако работите за правителствена организация, използването на социалноосигурителен номер може да не е законно съгласно Закона за поверителност от 1974 г. Поради тази причина повечето организации са преминали към използването на уникални идентификатори като идентификатор на служител или идентификатор на студент.
След като изберете първичен ключ и настроите базата данни, системата за управление на базата данни налага уникалността на ключа. Например, ако вмъкнете запис в таблица с първичен ключ, който дублира съществуващ запис, вмъкването ще бъде неуспешно.
Повечето бази данни също могат да генерират първични ключове. Microsoft Access, например, може да бъде конфигуриран да използва типа данни AutoNumber за присвояване на уникален идентификатор на всеки запис в таблицата. Макар и ефективно, това е лоша дизайнерска практика, защото ви оставя безсмислена стойност във всеки запис в таблицата. Вместо това използвайте това пространство, за да съхранявате нещо полезно.
Външни ключове
Друг тип ключ е външен ключ. Външният ключ създава естествени връзки между таблиците. Естествени връзки съществуват между таблиците в повечето структури на бази данни.
Пример за външен ключ
Връщайки се към нашата база данни за служители, представете си, че искаме да добавим таблица, съдържаща информация за отделите към базата данни. Тази нова таблица може да се нарича Отдели и ще съдържа голямо количество информация за отдела като цяло.
Бихме искали също да включим информация за служителите в отдела, но би било излишно да имаме една и съща информация в две таблици (Служители и Отдели). Затова вместо това ще създадем връзка между двете таблици.
Създаване на връзка между таблици
Да приемем, че таблицата Departments използва колоната Име на отдела като първичен ключ. За да създадем връзка между двете таблици, бихме добавили нова колона към таблицата Служители, наречена Отдел.
След това ще попълним името на отдела, към който принадлежи всеки служител. След това ще информираме система за управление на база данни че колоната "Отдел" в таблицата "Служители" е външен ключ, който препраща към таблицата "Отдели".
Няма ограничение за уникалност за външен ключ, защото например може да имаме повече от един служител, който принадлежи към един отдел. По същия начин, няма изискване запис в таблицата „Отдели“ да има съответен запис в таблицата „Служители“, тъй като можем да имаме отдел без служители.