Третий манифест Кристофера Дейта и Хью Дарвена



         

Третий манифест Кристофера Дейта и Хью Дарвена: предпосылки и обзор - часть 6


Очень строгие OO-суждения

  • Наследование типов
  • Типы и операции не связаны
  • Генераторы типов коллекций
  • Преобразование в отношения и из отношений
  • Одноуровневое хранение

    Объекты и отношения

    Введение

    Чтобы иметь возможность достаточно детально обсудить вопрос интеграции объектов и отношений, необходимо понять, какая концепция в реляционном мире является двойником концепции класса объектов в объектном мире. Этот вопрос имеет определяющее значение, поскольку именно класс объектов является фундаментальной концепцией объектного мира, и все остальные объектные понятия в большей или меньшей степени зависят от этой концепции.

    Можно предложить два возможных ответа на поставленный вопрос:

  • домен = объектный класс
  • отношение = объектный класс.

    В главе показывается, что первый ответ - правильный, а второй - нет.

    Что за проблему мы пытаемся решить?

    Исходным положением является то, что для будущих баз данных потребуются гораздо более сложные виды данных, чем те, которые поддерживаются в современных коммерческих базах данных. Возникает потребность хранить графические данные, аудио- и видеоданные и т.д. Каким образом можно поддерживать новые виды данных, оставаясь в классической реляционной среде? Д&Д принимают как аксиому то, что мы хотим остаться в классической реляционной среде; было бы неразумно забыть о результатах многолетних исследований и разработок в этой области.

    Отношения и relvars

    Прежде всего необходимо устранить недоразумение, существующее с начала реляционной эры. Рассмотрим отношение MMQ, показанное на рис. 1:

    MMQMAJOR_P# : P#MINOR_P# : P#QTY : QTY
     P1P25
     P1P33
     P2P32
     P2P47
     P3P54
     P4P68

    Рис. 1. Отношение инвентарной ведомости MMQ

    Как видно, каждое отношение состоит из двух частей - заголовка и тела, где заголовок - это множество пар имя-столбца:имя-домена, а тело - множество строк, соответствующих этому заголовку. Для отношения MMQ:

  • MAJOR_P#, MINOR_P#, QTY - имена столбцов;
  • P#, P#, QTY - имена соответствующих доменов;
  • Каждая строка включает значения MAJOR_P# (из домена P#), MINOR_P# (из домена P#) и QTY (из домена QTY).




    Содержание  Назад  Вперед