либо системы представляет собой модель
Абстракция какой- либо системы представляет собой модель этой системы, в которой намеренно опущены некоторые детали. Выбор тех деталей, которые следует опустить, делается на основе анализа как преполагаемого приложения
этой абстракции, так и его пользователей. Цель состоит в том, чтобы дать возможность пользователя обращать внимание на те детали системы, которые существенны для данного приложения, а другие детали игнорировать.
В некоторых приложениях система может обладать слишком многими деталями, существенными для единственной абстракции, чтобы быть при этом интеллектуально управляемой. Такую управляемость можно обеспечить путем декомпозиции модели в иерархию абстракций. Иерархия позволяет вводить существенные детали управляемым образом. Абстракции на любом заданном уровне иерархии позволяют (временно) игнорировать многие существенные детали при понимании абстракций на следующем более высоком уровне.
Одно из преимуществ такой "иерархии абстракций" заключается в возможности доступа различных пользователей к модели на разных уровнях абстракции. Так, например, если основная система является коммерческим предприятием, пользователи-руководители могут иметь доступ к глобальной информации, а конторские служащие – к детализированной информации. Таким образом, единственная модель может совместно использоваться несколькими различными пользователями без нарушения их требований к доступу. Другим достоинством иерархии абстракций является повышенная стабильность модели в процессе развития приложения или самой системы. Изменение некоторой детали, игнорируемой на более высоких уровнях модели, не воздействует на эти уровни. Конечно, некоторые изменения при этом будут распространяться с нижнего уровня на верхний.
Отношение в реляционной схеме Кодда поддерживает две различные формы абстракции. Мы называем эти формы абстракции "агрегацией" и "обобщением". Агрегацией называется абстракция, в которой связь между объектами рассматривается как объект более высокого уровня.
При таком абстрагировании можно игнорировать многие детали этой связи. Например, некоторая связь между человеком, отелем и датой может быть абстрагирована как объект "бронирование". Можно при этом мыслить о "бронировании", не задумываясь о всех деталях базовой связи, например о номере комнаты, фамилии агента по бронированию или продолжительности бронирования.
Обобщением называется абстракция, в которой множество схожих объектов рассматривается как некоторый родовой объект. При таком абстрагировании можно игнорировать многие индивидуальные различия между объектами. Например, множество людей-служащих может быть абстрагировано как родовой объект "служащий". В такой абстракции не учитываются индивидуальные различия между служащими, например, те факты, что служащие имеют различные фамилии, возраст и служебные функции.
Если ввести соответствующую дисциплину структурирования, то реляционная схема Кодда может одновременно поддерживать как иерархии абстракций агрегации, так и иерархии абстракций обобщения. В предыдущей статье мы предложили дисциплину структурирования, пригодную для абстракций агрегации. В настоящей статье предлагается дисциплина структурирования для абстракций обобщения, и она интегрируется с дисциплиной, ранее предложенной для абстракций агрегации.
Польза от такой дисциплины структурирования заключается в следующем:
- можно эффективно интегрировать и согласованным образом поддерживать абстракции (иногда называемые представлениями), относящиеся к различным пользователям базы данных;
- при различных видах эволюционных изменений может обеспечиваться стабильность моделей (иногда называемая независимостью данных);
- без значительной утраты интеллектуальной управляемости могут поддерживаться сильно структурированные модели;
- может быть разработан более систематический подход к проектированию баз данных и, в частности, процедур баз данных;
- становятся возможными более эффективные реализации, поскольку может быть сделано больше предположений относительно структуры верхнего уровня.
В мы сопоставляли примитивы для выражения абстракций агрегации, которые обнаруживаются в языках программирования, с примитивами, требуемыми в базах данных. Мы показали, как можно адаптировать Хоаровскую структуру декартова произведения
, чтобы ее можно было использовать для определения реляционных моделей. Такая адаптация приводит к некоторому пониманию роли абстракций агрегации в базах данных. Настоящую работу можно рассматривать как попытку адаптации к реляционным моделям структуры размеченного объединения
(discriminated union)
Хоара . Эта адаптация, в свою очередь, приводит к пониманию роли абстракций обобщения в базах данных.
Исследования в области баз данных касались, главным образом, агрегации (например, для нормальных форм Кодда ), а обобщение при этом в значительной мере игнорировалось. Причина заключалась, вероятно, в том, что в простых моделях с обобщением можно обычно весьма удовлетворительно обходиться, выбирая каждый раз специальный подход, подходящий к данному конкретному случаю. Интересно, что исследования в области по базам знаний на основе подхода искусственного интеллекта, напротив, в основном касались обобщения (например, семантические сети Квиллиана ) в то время как агрегация совершенно не использовалась. Объединяя агрегацию и обобщение в единую дисциплину структурирования, мы взаимно обогащаем области баз данных и искусственного интеллекта.
В разрабатывается философия представления абстракций обобщения в реляционной схеме Кодда. Эта философия приводит к мощной родовой (generic) структуре для определения реляционных моделей. Такая структура описывается в . Далее в исследуется, каким образом родовая структура может использоваться для обработки различных ситуаций при моделировании. В обсуждаются пять свойств реляционной модели, которые должны оставаться инвариантными во время выполнения операций обновления. Эти инвариантные свойства представляют собой (частично) аксиоматическое определение введенной родовой структуры. На основе семантических соображений разрабатывается набор правил для поддержки этих инвариантов.В приводятся заключительные замечания, касающиеся некоторых аспектов родовой структуры, включая методы проектирования баз данных, техники реализации и языка доступа.