Проектирование информационных систем с CA ERwin Modeling Suite 7.3. Горбаченко В.И - 118 стр.

UptoLike

118
7.4. Индексы
Индексэто особый объект, позволяющий решить проблему поиска
данных в таблице БД.
Индекс содержит отсортированную по колонке или нескольким колон-
кам информацию и указывает на строки, в которых хранится конкретное зна-
чение колонки.
Возникновение проблемы поиска данных связано с тем, что многие ре-
ляционные СУБД имеют страничную организацию, при
которой физически
таблица может храниться фрагментарно в разных областях диска, причем
строки таблицы располагаются на страницах неупорядоченно, т.к. данные
обычно хранятся в том порядке, в котором их ввели в таблицу.
Хотя такой способ хранения позволяет быстро вводить новые данные,
но для того, чтобы найти нужную строку, необходимо просмотреть всю
таб-
лицу. В промышленных системах каждая таблица может содержать миллио-
ны строк, поэтому простой перебор ведет к катастрофическому падению
производительности ИС.
Использование индексов позволяет существенно повысить эффектив-
ность информационных систем по обработке хранимых данных. Индекс по-
добен содержанию книги, которое указывает на все номера страниц, посвя-
щенных конкретной теме. Например, если
необходимо найти клиента по
имени, то можно создать индекс по колонке ClientName таблицы Client.
В индексе имена клиентов будут отсортированы в алфавитном порядке. Для
имени индекс будет содержать ссылку, указывающую, в каком месте табли-
цы хранится эта строка. Индекс можно создать для всех колонок таблицы, по
которым часто производится поиск
. Для поиска клиента серверу направляет-
ся запрос с критерием поиска (ClientName ="Иванов"). При выполнении
запроса СУБД просматривает индекс, а не все по порядку строки таблицы
Client. Поскольку значения в индексе хранятся в определенном порядке, то
просматривать нужно гораздо меньший объем данных, что значительно
уменьшает время выполнения запроса.
При генерации схемы
физической БД ERwin автоматически, по умол-
чанию создает отдельный индекс на основе первичного ключа каждой табли-
цы, а также на основе всех альтернативных ключей, внешних ключей и ин-
версных входов, поскольку эти колонки наиболее часто используются для
поиска данных.
Для повышения производительности системы ERwin позволяет создать
собственные индексы. При этом целесообразно создавать индексы
с различ-
ными колонками и порядком сортировки, предварительно проанализировав
наиболее часто выполняемые запросы.
ERwin автоматически генерирует имя индекса, созданного на основе
ключа по принципу: "X" + имя ключа + имя таблицы, где имя ключа – "РК"
для первичного ключа, "IFn" – для внешнего, "AKn" – для альтернативного,
"IEn" – для инверсионного входа. Например, по умолчанию при создании
     7.4. Индексы

      Индекс – это особый объект, позволяющий решить проблему поиска
данных в таблице БД.
      Индекс содержит отсортированную по колонке или нескольким колон-
кам информацию и указывает на строки, в которых хранится конкретное зна-
чение колонки.
      Возникновение проблемы поиска данных связано с тем, что многие ре-
ляционные СУБД имеют страничную организацию, при которой физически
таблица может храниться фрагментарно в разных областях диска, причем
строки таблицы располагаются на страницах неупорядоченно, т.к. данные
обычно хранятся в том порядке, в котором их ввели в таблицу.
      Хотя такой способ хранения позволяет быстро вводить новые данные,
но для того, чтобы найти нужную строку, необходимо просмотреть всю таб-
лицу. В промышленных системах каждая таблица может содержать миллио-
ны строк, поэтому простой перебор ведет к катастрофическому падению
производительности ИС.
      Использование индексов позволяет существенно повысить эффектив-
ность информационных систем по обработке хранимых данных. Индекс по-
добен содержанию книги, которое указывает на все номера страниц, посвя-
щенных конкретной теме. Например, если необходимо найти клиента по
имени, то можно создать индекс по колонке ClientName таблицы Client.
В индексе имена клиентов будут отсортированы в алфавитном порядке. Для
имени индекс будет содержать ссылку, указывающую, в каком месте табли-
цы хранится эта строка. Индекс можно создать для всех колонок таблицы, по
которым часто производится поиск. Для поиска клиента серверу направляет-
ся запрос с критерием поиска (ClientName ="Иванов"). При выполнении
запроса СУБД просматривает индекс, а не все по порядку строки таблицы
Client. Поскольку значения в индексе хранятся в определенном порядке, то
просматривать нужно гораздо меньший объем данных, что значительно
уменьшает время выполнения запроса.
      При генерации схемы физической БД ERwin автоматически, по умол-
чанию создает отдельный индекс на основе первичного ключа каждой табли-
цы, а также на основе всех альтернативных ключей, внешних ключей и ин-
версных входов, поскольку эти колонки наиболее часто используются для
поиска данных.
      Для повышения производительности системы ERwin позволяет создать
собственные индексы. При этом целесообразно создавать индексы с различ-
ными колонками и порядком сортировки, предварительно проанализировав
наиболее часто выполняемые запросы.
      ERwin автоматически генерирует имя индекса, созданного на основе
ключа по принципу: "X" + имя ключа + имя таблицы, где имя ключа – "РК"
для первичного ключа, "IFn" – для внешнего, "AKn" – для альтернативного,
"IEn" – для инверсионного входа. Например, по умолчанию при создании

                                   118