Первичные ключи и индексы
В каждой таблице БД может существовать первичный ключ — поле или набор полей, однозначно идентифицирующий запись. Значение первичного ключа в таблице БД должно быть уникальным, то есть в таблице не должно существовать двух или более записей с одинаковым значением первичного ключа.
Первичные ключи облегчают установление связи между таблицами. В таблице покупателей таким ключом может быть одноименное поле. Установив связь по первичному ключу, мы можем выяснить, что, например, 10.12.99 со склада было отпущено 100 единиц книг «Borland С++ Builder 4» покупателю «Магазин № 1», который расположен по адресу: 107005, Москва, 2-я Бауманская ул., 12 (телефон для связи 273-00-14).
Поскольку первичный ключ должен быть уникальным, для него могут использоваться не все поля таблицы. В приведенном примере название покупателя вряд ли может быть уникальным («Магазин № 1» может существовать не только в Москве, но и в любом другом городе), поэтому поле Покупатель не может использоваться в качестве первичного ключа.
Если в таблице нет полей, значения в которых уникальны, для создания первичного ключа в нее обычно вводят дополнительное числовое поле, значениями которого СУБД может распоряжаться по своему усмотрению. Если, например, в таблицу покупателей добавить поле №, то она могла бы выглядеть так.
№ | Покупатель | Адрес | Телефон |
Магазин № 1 | 107005, Москва, 2-я Бауманская ул., 12 | 273-00-14 | |
Дом книги | 105066, Москва, Измайловский б-р, 18/11 | 165-18-99 |
Соответственно изменилась бы и связанная с ней таблица отпуска товаров.
Дата Название книги Покупатель Отпущено
10.12.99 Borland С++ Builder 4 1 100
10.12.99 Delphi 5. Учебный курс 1 100
12.12.99 В сетях Всемирной паутины 2 2000
Теперь в таблице отпуска товаров в поле Покупатель указывается значение первичного ключа, построенного по полю № таблицы покупателей, что позволяет установить однозначную связь между таблицами.
Индексы отличаются от первичных ключей тем, что не требуют непременной уникальности значений входящих в их состав полей. Они устанавливаются по полям, которые часто используются при поиске и сортировке данных: индексы помогут системе значительно быстрее найти нужные данные или отсортировать их в нужной последовательности.
Для быстрого доступа к своему содержимому, записи в таблице упорядочиваются по значению одного или нескольких полей. Список полей, задающий порядок записей, называется индексом (index), а сами поля – ключевыми (index fields). Для одной таблицы может существовать несколько способов упорядочивания записей, т.е. несколько индексов. Индексы имею большое значение при работе с таблицами, т.к. при их отсутствии при поиске информации пришлось бы перебирать подряд все записи таблицы.
Один из индексов является первичным (primary), он задает начальный порядок следования записей в таблице. Значение первичного индекса обязательно должно быть уникальным для каждой отдельной записи. Иначе говоря, в таблице не могут существовать две записи с одинаковыми значениями первичного индекса. Например, в таблице заказов первичный индекс правильно будет построить по полю «номер заказа», т.к. каждому заказу всегда назначается уникальный номер.
Дата добавления: 2015-04-15; просмотров: 979;