
- •Глава 1 Внешние модели данных
- •1.1. Общие положения
- •1.2. Иерархическая модель
- •1.3. Целостность иерархической модели
- •Уникальность
- •Обязательность и множественность
- •Кортежи
- •Виртуальные атрибуты
- •Правила активности
- •1.4. Построение иерархических моделей
- •Ориентация модели
- •Выбор ключевых атрибутов
- •3 Посвященному пользователю этот набор цифр — номер зачетной книжки — тоже может сказать кое-что; например, первые две цифры — о годе поступления студента.
- •1.5. Модель «гиперкуб данных»
Виртуальные атрибуты
Виртуальные (вычисляемые) атрибуты — это такие атрибуты, значения которых однозначно вычисляются на основании значений других атрибутов сущностей базы данных. Вообще говоря, такие атрибуты можно не хранить в базе данных, а вычислять их значения, как только они потребуются пользователю1.
Новая форма представления данных — простейший случай виртуальных атрибутов. Например, в базе данных атрибут «фио» содержит фамилию, имя и отчество студента («Сидоров Иван Петрович»), а в одной из автоматизированных функций пользователю эти данные нужны в форме
«инициалы-фамилия» («И.П.Сидоров»). Для удовлетворения этих информационных потребностей вводится виртуальный атрибут с именем, скажем, «иофам», вычисляемый на основе атрибута «фио» путем извлечения первых символов имени и отчества и сцепления их в нужном порядке с фамилией с добавлением точек, пробелов и т. д. В этом примере, таким образом, виртуальный атрибут задается на другом атрибуте того же экземпляра сущности. Аналогичным образом виртуальный атрибут может задаваться на нескольких атрибутах сущности, например, если фамилия, имя и отчество заданы отдельными атрибутами (см. рис. 1.4).
Пример. На рис. 1.11 приведена модель, в которой виртуальные атрибуты «колПр» и «срБалл» отражают вычисляемые значения количества сданных студентом предметов и средний балл студента соответственно. На диаграмме модели виртуальные атрибуты изображены в виде пунктирных овалов; пунктирная линия указывает на атрибуты, значения которых являются основой для вычислений. Количество предметов, сданных каким-либо студентом, подсчитывается как количество экземпляров агрегата «Предмет» в соответствующем экземпляре сущности «Студент». Средний балл студента определяется как среднее значение атрибута «оцен». усредненное по совокупности значений этого атрибута во всех экземплярах агрегата «Предмет» соответствующего экземпляра сущности «Студент».
'Однако этот вопрос решается не на концептуальном уровне проектирования базы данных, поскольку здесь сознательно не затрагиваются вопросы реализации. Сейчас нам нужно лишь указать, что те или иные атрибуты являются вычисляемыми и определить принципы их вычисления. Вполне возможно, что на этапе физического проектирования базы данных исходя из соображений производительности или безопасности будет принято решение о хранении тех или иных вычисляемых атрибутов в базе данных и о механизмах их обновления в изменяющихся условиях.