Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pis_lect.docx
Скачиваний:
24
Добавлен:
28.10.2018
Размер:
2.55 Mб
Скачать

5.3. Определение и установление индексов. (вопрос 50)

Важным параметром при проектировании таблиц является индексирование полей таблиц. Установление индексов полей (создание индексных массивов) существенно повышает скорость поиска и доступа к записям базы данных. Однако при этом соответственно замедляется ввод и добавление данных из-за необходимости переупорядочения индексных массивов при обновлении, удалении или добавлении записей. Поэтому при проектировании таблиц нужно проанализировать, насколько часто при эксплуатации банка данных потребуется поиск или выборка строк-записей таблицы по значениям тех или иных полей, исходя из функций и задач АИС.

По результатам анализа определяются те поля и таблицы, для которых необходимо создать индексы. К примеру, в таблице “Сотрудники” базы данных по документообороту поле “ФИО” целесообразно определить индексируемым, поскольку именно по значению этого поля наиболее часто будет требоваться доступ к записям. Практика использования индексов в базе данных позволяет заключить, что если в одной таблице установлено более 10 индексов, то это означает, что-либо недостаточно продумана структура базы данных (таблицы), либо недостаточно обоснованно определены вопросы обработки данных исходя из задач АИС.

Ключевые поля, как правило, являются индексируемыми автоматически, так как поиск и доступ к записям в базе данных осуществляется именно по значениям ключевых полей.

5.4. Создание списков (словарей) для полей с перечислительным характером значений данных. (вопрос 51)

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

Например, поле “Образование” является не просто текстовым, а текстово-списочным, ибо набор его значений составляет унифицированный список: “Начальное”, “Среднее”, “Среднеспециальное”, “Среднетехническое”, “Высшее”. Другой пример – перечень специальностей в организации.

Некоторые СУБД обеспечивают возможность построения и привязки этих списков-словарей к соответствующим полям.

Установление этих списков значений (словарей) позволяет упростить ввод данных в записях по таким полям путем выбора соответствующего значения из словаря и, кроме того, унифицировать ввод одинаковых значений в различных записях. Так, при ручном наборе значения “Среднее”, помимо различия из-за возможных орфографических ошибок, могут быть также и регистровые значения (Среднее, среднее, СРЕДНЕЕ), что в дальнейшем приведет к ошибкам поиска, фильтрации и выборки записей.

Списки (словари) значений могут быть фиксированными и не меняться в процессе эксплуатации банка данных, или динамическими. Фиксированные списки “привязываются” к соответствующим полям через специальные механизмы конкретной СУБД, а динамические размещаются в системных таблицах в соответствующей части базы данных, которые называются системным каталогом. Многие СУБД хранят списки пользователей и ролей (наборы привилегий), списки таблиц, индексов, триггеров, процедур и др., а также сведения кто ими владеет – это все примеры системных таблиц, располагающихся в системном каталоге. Пользователи-абоненты не имеют доступа к системному каталогу.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]