Классика баз данных - статьи
Определяются два вида абстракций, имеющих фундаментально важное значение для проектирования и использования баз данных. Агрегация – это абстракция, которая превращает связь между объектами в некоторый агрегированный объект. Обобщение – это абстракция, превращающая класс объектов в родовой объект. Предполагается, что для всех объектов (индивидуальных, агрегатных, родовых) следует обеспечивать унифицированную интерпретацию в моделях реального мира. В качестве примитива для определения таких моделей разработан новый тип данных, названный родовым. Модели, определяемые с помощью этого примитива, структурируются как некоторое множество иерархий агрегации, пересекающееся с некоторым множеством иерархий обобщения. В точках пересечения появляются абстрактные объекты. Такая высокоуровневая структура обеспечивает некоторую дисциплину для организации реляционных баз данных. Она, в частности, дает возможность:
- интегрировать и поддерживать важный класс представлений (view);
- обеспечивать при определенных эволюционных изменениях стабильность данных и программ;
- значительно легче понимать сложные модели и более естественным образом формулировать запросы;
- использовать более семантичный подход к проектированию баз данных;
- осуществлять дополнительную оптимизацию на более низких уровнях реализации.
Родовой тип формализуется множеством инвариантных свойств. Если абстракции должны сохраняться, то эти свойства должны удовлетворяться всеми отношениями в базе данных. Предлагается инициирующий механизм для автоматической поддержки таких инвариантов во время выполнения операций обновления. Дается простое отображение иерархий агрегации/обобщения на структуры наборов CODASYL.
Ключевые слова и фразы: модель данных, реляционная база данных, проектирование баз данных, агрегация, обобщение, абстракция данных, тип данных, ограничения целостности, представление знаний.