Базы данных. Курс лекций. Учебное пособие. Рамиля Рамисовна Латыпова

Читать онлайн.
Название Базы данных. Курс лекций. Учебное пособие
Автор произведения Рамиля Рамисовна Латыпова
Жанр Техническая литература
Серия
Издательство Техническая литература
Год выпуска 0
isbn 9785392191512



Скачать книгу

между таблицами БД.

      Обычно в СУБД для реализации ссылочной целостности в дочерней таблице создают внешний ключ, ссылающийся на родительскую таблицу, и указывают вид каскадных воздействий.

      Внешний ключ создается в дочерней таблице. В него входят поля связи дочерней таблицы. Для связей типа «один-ко-многим» внешний ключ должен совпадать по составу полей с первичным ключом главной таблицы или с частью первичного ключа (в этом случае нормализация таблиц БД выполнена не полностью).

      При определении первичного и внешнего ключей СУБД автоматически строит индексы. Индекс, соответствующий внешнему ключу, строится для обеспечения связей родительской и дочерней таблиц [2].

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

      Использование индексов позволяет использовать не просто последовательный, а индексно-последовательный доступ.

      При последовательном доступе просматриваются все записи таблицы – от первой до последней, что неэффективно.

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

      Таким образом, во втором случае поиск ведется по индексу, а не по самой таблице. Таблица может быть неупорядоченна, а небольшой по объему индексный файл может быть легко отсортирован.

      Например, рассмотрим табл. 1.

      Таблица 1

      Отпуск товара

      Номер

      Дата

      Товар

      Количество

      1

      06.01.14

      Спички

      2

      2

      02.01.14

      Мыло

      100

      3

      03.01.14

      Мука

      5000

      4

      08.01.14

      Спички

      10

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

      Таблица 2

      Индексированные поля таблицы

      По дате прихода

      По наименованию

      По количеству

      Дата

      Номер записи

      Товар

      Номер записи

      Количество

      Номер записи

      02.01.14

      2

      Мука

      3

      5000

      3

      03.01.14

      3

      Мыло

      2

      100

      2

      06.01.14

      1

      Спички

      1

      10

      4

      08.01.14

      4

      Спички

      4

      2

      1

      Если несколько товаров имеет одно и то же наименование, то достаточно найти в индексе, построенном по столбцу «Наименование», первую запись, а затем повторить чтение подряд для всех товаров