Управление данными. Громов Ю.Ю - 21 стр.

UptoLike

Очевидно, что, чем больше программного кода в виде триггеров и хранимых процедур содержит
база данных, тем сложнее её разработка и дальнейшее сопровождение.
Скорость операций обновления данных
(
вставка, обновление, удаление
). На уровне логическо-
го моделирования мы определяем реляционные отношения и атрибуты этих отношений. На этом уровне
мы не можем определять какие-либо физические структуры хранения (индексы, хеширование и т.п.).
Единственное, чем мы можем управлять это распределением атрибутов по различным отношениям.
Можно описать мало отношений с большим количеством атрибутов или много отношений, каждое из
которых содержит мало атрибутов. Таким образом, необходимо попытаться ответить на вопросвлияет
ли количество отношений и количество атрибутов в отношениях на скорость выполнения операций об-
новления данных. Такой вопрос, конечно, не является достаточно корректным, так как скорость выпол-
нения операций с базой данных сильно зависит от физической реализации базы данных. Тем не менее
попытаемся качественно оценить это влияние при одинаковых подходах к физическому моделирова-
нию.
Основными операциями, изменяющими состояние базы данных, являются операции вставки, об-
новления и удаления записей. В базах данных, требующих постоянных изменений (складской учёт, сис-
темы продаж билетов и т.п.), производительность определяется скоростью выполнения большого коли-
чества небольших операций вставки, обновления и удаления.
Рассмотрим операцию вставки записи в таблицу. Вставка записи производится в одну из свободных
страниц памяти, выделенных для данной таблицы. СУБД постоянно хранит информацию о наличии и
расположении свободных страниц. Если для таблицы не созданы индексы, то операция вставки выпол-
няется фактически с одинаковой скоростью независимо от размера таблицы и от количества атрибутов в
ней. Если в таблице имеются индексы, то при выполнении операции вставки записи индексы должны
быть перестроены. Таким образом, скорость выполнения операции вставки уменьшается при увеличе-
нии количества индексов у таблицы и мало зависит от числа строк в таблице.
Рассмотрим операции обновления и удаления записей из таблицы. Прежде чем обновить или уда-
лить запись, её необходимо найти. Если таблица не индексирована, то единственным способом поиска
является последовательное сканирование таблицы в поиске нужной записи. В этом случае скорость
операций обновления и удаления существенно повышается с увеличением количества записей в табли-
це и не зависит от количества атрибутов. Но на самом деле неиндексированные таблицы практически
никогда не используются. Для каждой таблицы обычно объявляется один или несколько индексов, со-
ответствующих потенциальным ключам. При помощи этих индексов поиск записи производится очень
быстро и практически не зависит от количества строк и атрибутов в таблице (хотя, конечно, некоторая
зависимость имеется). Если для таблицы объявлено несколько индексов, то при выполнении операций
обновления и удаления эти индексы должны быть перестроены, на что тратится дополнительное время.
Таким образом, скорость выполнения операций обновления и удаления также уменьшается при увели-
чении количества индексов у таблицы и мало зависит от числа строк в таблице.
Можно предположить, что, чем больше атрибутов имеет таблица, тем больше для неё будет объяв-
лено индексов. Эта зависимость, конечно, не прямая, но при одинаковых подходах к физическому мо-
делированию обычно так и происходит. Таким образом, можно принять допущение, что,
чем больше
атрибутов имеют отношения
, разработанные в ходе логического моделирования,
тем медленнее будут
выполняться операции обновления данных
, за счёт затраты времени на перестройку большего количе-
ства индексов.
Скорость операций выборки данных.
Одно из назначений базы данных предоставление инфор-
мации пользователям. Информация извлекается из реляционной базы данных при помощи оператора
SQL SELECT. Одной из наиболее дорогостоящих операций при выполнении оператора SELECT явля-
ется операция соединения таблиц. Таким образом, чем больше взаимосвязанных отношений было соз-
дано в ходе логического моделирования, тем больше вероятность того, что при выполнении запросов
эти отношения будут соединяться, и, следовательно, тем медленнее будут выполняться запросы. Таким
образом, увеличение количества отношений приводит к замедлению выполнения операций выборки
данных, особенно если запросы заранее неизвестны.