Delphi 3 и создание приложений баз данных


Логическое разделение на ключи и индексы


В InterBase разделено понятие ключей и индексов. Это разделение, впрочем, имеет логическую окраску, то есть ценно при создании ТБД. Первичный (PRIMARY KEY) и внешний (FOREIGN KEY) ключи строятся для обеспечения ссылочной целостности реляционно связанных таблиц в БД. Первичный ключ, помимо этого, выполняет функции поддержания уникальности своих значений, что обусловлено его основным назначением - однозначно характеризовать запись в таблице БД. Для таких же целей может использоваться и просто уникальный ключ (UNIQUE).

"Обычные" индексы, создаваемые оператором CREATE INDEX, в отличие от ключей, служат для обеспечения сортировок и оптимизации доступа к данным.

С физической точки зрения, то, что логически при создании таблиц подразделялось на ключи и индексы, преобразуется в индексы. Однако, если "обычным" индексам можно назначить имя, то физические индексы, реализованные на основе определений ключей, строятся и именуются системой автоматически. Например, для таблицы SOTR будут построены два физических индекса - по первичному ключу и по "обычному" индексу DLJ:

CREATE TABLE SOTR (ID_SOTR INTEGER NOT NULL, OTDEL VARCHAR(lO) CHARACTER SET WIN1251

COLLATE PXW_CYRL, DOLJNOST CHAR(10) CHARACTER SET WIN1251

COLLATE PXW_CYRL, FIO VARCHAR(25) CHARACTER SET WIN1251

COLLATE PXW_CYRL, PRIMARY KEY (ID_SOTR)

) ;

CREATE INDEX DLJ ON SOTR (DOLJNOST) ;

но именоваться они будут следующим образом:

DLJ INDEX ON SOTR(DOLJNOST)

RDB$PRIMARY18 UNIQUE INDEX ON SOTR(ID_SOTR)

Заметим, что вывести определения всех индексов БД можно оператором SHOW INDEX;

А проделать то же для конкретной таблицы можно оператором SHOW INDEX <имя таблицы>;



Содержание раздела