Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
03 (1).docx
Скачиваний:
15
Добавлен:
10.04.2015
Размер:
1.93 Mб
Скачать

Оптимизация источников для подстановочных полей

Почему в таблице «ТипДокумента» два столбца: идентификатор и название типа? Может быть, размер БД уменьшится, если в этой таблице будут храниться только названия типов документов (текстовое поле с размером 25 символов)? Проведем несложные расчеты.

При подстановке текстовых названий столбец «Тип» в таблице «Письма» также должен быть текстовым полем размером 25 байт. Суммарный объем данных в связанных столбцах таблиц V1:

V1 = 25 *M+ 25 *N,

где M – количество строк в таблице «Письма»,

N – количество строк в таблице «ТипДокумента».

В исходном варианте таблица «ТипДокумента» имеет 2 столбца: счетчик 4 байта и текстовый 25 байтов. Поле «Тип» в таблице «Письма» - длинное целое, 4 байта. Суммарный объем данных в связанных столбцах таблиц V2:

V2 = 4 * М + (4 + 25) *N= 4 *M+ 29 *N.

Рассмотрим, при каком условии V1 <V2:

25 * M+ 25 *N< 4 *M+ 29 *N, или

N> 5, 25 *M.

То есть, количество типов документов Nдолжно быть не менее чем в 5 раз больше, чем количество самих документов, что маловероятно и возможно лишь в первые дни эксплуатации БД. Таким образом, второй вариант подстановки в подавляющем большинстве случаев более экономично использует дисковую память. Кроме того, во втором случае выше быстродействие БД при выполнении запросов, так как сравнение целых чисел выполняется компьютером значительно быстрее, чем сравнение текстовых строк. Последнее будет заметно для пользователя, как только в таблице «Письма» накопится несколько тысяч строк.

Контроль целостности на уровне записей таблицы

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

Рисунок 26 – окно (страница) свойств таблицы

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

Контроль выполняется после ввода данных в текущую строку таблицы. Если найдена ошибка, то выдается описанное Вами сообщение (рисунок 27), Accessне сохраняет ошибочные данные в БД и не позволяет перейти к вводу другой записи.

Рисунок 27 - действие контроля целостности на уровне записи таблицы

Практическое задание

  • Откройте файл «Борей 2007»;

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

  • Откройте свой файл БД, создайте связи между таблицами в режиме «Схема данных», определите каскадное действие связи.

  • Если какая-либо связь не устанавливается, проверьте соответствие данных в связываемых столбцах (типы и значения), исправьте ошибки.

  • Для внешних ключей опишите группу свойств «Подстановка».

  • Введите несколько строк в родительские таблицы.

  • Проверьте, работает ли контроль ссылочной целостности при вводе записей в дочерние таблицы.

  • Создайте ER-диаграмму БД с помощью AccessиVisio.

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