Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
030222_88368_otvety_na_voprosy_po_bd.doc
Скачиваний:
33
Добавлен:
27.03.2016
Размер:
212.99 Кб
Скачать

8. Ключи и индексы в реляционных базах данных

Ключ представляет собой комбинацию полей, данные в которых однозначно определяют каждую запись в таблице. Простой ключ состоит из одного поля, а составной (сложный) — из нескольких полей. Поля, по которым построен ключ, называют ключевыми. В таблице может быть определен только один ключ. Ключ обеспечивает:

  • однозначную идентификацию записей таблицы;

  • предотвращение повторения значений клюю

  • ускорение выполнения запросов к БД;

  • установление связи между отдельными таблицами БД;

  • использование ограничений ссылочной целостности.

Ключ также называют первичным ключом или первичным (главным) индексом.

Выбор ключевых полей не всегда является простой и очевидной задачей, особенно для таблиц с большим количеством полей. Удобным вариантом создания ключа является использование для него поля соответствующего типа (ключ, автоматически устанавливаемый СУБД и обеспечивающий под­держку уникальности значений ключевого поля). При определении ключа следует придерживаться следующих правил:

  • ключ должен быть уникальным (значение ключевого поля никогда не повторяются). У составного ключа значения отдельных полей (но не всех одновременно) могут повторяться;

  • ключ должен быть достаточным и неизбыточным, т. е. не содержать по­ля, которые можно удалить без нарушения уникальности ключа;

  • в состав ключа не могут входить поля некоторых типов, например, гра­фическое поле или поле комментария.

Индекс, как и ключ, строится по полям таблицы, однако он может допус­кать повторение значений составляющих его полей. Поля, по которым построен индекс, называют индексными. Простой индекс состоит из одного поля, а составной (сложный) — из нескольких полей.

Использование индекса обеспечивает:

  • увеличение скорости доступа (поиска) к данным;

  • сортировку записей;

  • установление связи между таблицами БД;

  • использование ограничений ссылочной целостности.

Использование индекса повышает скорость доступа к данным в таблице на основе того, что доступ выполняется не последовательным, а индексно-последовательным методом.

Сортировка представляет собой упорядочивание записей по полю или группе полей в порядке возрастания или убывания их значений. Индекс служит ля сортировки таблиц по индексным полям.

9. Связь между таблицами

В частном случае БД может состоять из одной таблицы. Однако обычно реляционная БД состоит из взаимосвязанных таблиц. Организация связи (отношений) между таблицами называется связыванием или соединением таблиц. Связи между таблицами могут устанавливаться в следующих вариантах:

  • при формировании схемы базы данных путем связывания таблиц создаваемой БД;

  • при построении запросов к созданной БД;

  • путем связывания таблицы создаваемой БД с таблицей другой базы данных.

Связывать можно две или несколько таблиц. В реляционных БД могут быть и отдельные таблицы, не связанные ни с одной другой таблицей.

Для связывания таблиц используются поля связи (иногда используется термин совпадающие поля). Поля связи должны быть индексированными. Связь между таблицами определяет отношение подчиненности, при котором одна таблица является главной, а вторая — подчиненной.

В подчиненной таблице для связи с главной таблицей берется индекс, который также называется внешним ключом. Состав полей этого индекса должен полностью или частично совпадать с составом полей индекса главной таблицы.

Работа со связанными таблицами имеет следующие особенности:

  • при изменении (редактировании) поля связи записи главной таблицы нужно соответственно изменять и значения поля связи всех подчиненных таблиц;

  • при удалении записи главной таблицы нужно удалять и соответствующие ей записи в подчиненной таблице (каскадное удаление);

  • при добавлении записи в подчиненную таблицу значение ее поля связи должно быть установлено равным значению поля связи главной таблицы.

Ограничения по установке, изменению полей связи и каскадному удалению записей могут быть наложены на таблицы при их создании. Эти ограничения входят в структуру таблицы и действуют для всех приложений, которые выполняют операции с БД.