객체 지향 데이터베이스에서는 클래스와 하위 클래스가 계층 구조로 조직되어 있기 때문에, 객체의 일부 속성이나 메서드는 해당 클래스에 직접 정의되어 있지 않고 상위 클래스로부터 상속됩니다. 그렇다면 이렇게 상속된 속성도 데이터 일반화의 대상이 될 수 있을까요? 결론부터 말하면 가능합니다. 아래에서 그 원리를 단계별로 살펴보겠습니다.
객체 식별자의 일반화 과정
객체 식별자(object identifier)는 다음과 같은 방식으로 일반화됩니다. 먼저 객체 식별자를 해당 객체가 속한 가장 낮은 수준의 하위 클래스(subclass) 식별자로 일반화합니다. 이어서 이 하위 클래스의 식별자를 클래스/하위 클래스 계층 구조를 따라 상위로 거슬러 올라가며, 더 높은 수준의 클래스/하위 클래스 식별자로 일반화할 수 있습니다.
마찬가지로 하나의 클래스나 하위 클래스도 자신이 속한 계층 구조를 따라 올라감으로써 대응되는 상위 클래스(superclass), 즉 슈퍼클래스로 일반화될 수 있습니다.
상속된 속성의 일반화
객체 지향 데이터베이스는 클래스/하위 클래스 계층 구조로 구성되므로, 객체 클래스의 일부 속성이나 메서드는 클래스 안에 명시적으로 선언되지 않고 상위 수준의 클래스에서 상속됩니다. 일부 객체 지향 데이터베이스 시스템은 다중 상속(multiple inheritance)을 지원하기도 하는데, 이 경우 클래스/하위 클래스 '계층'이 격자(lattice) 형태로 구성되어 둘 이상의 상위 클래스로부터 동시에 속성을 상속받을 수 있습니다.
객체의 상속된 특징들은 질의 처리(query processing) 과정에서 변경될 수 있습니다. 그러나 데이터 일반화 관점에서 보면, 어떤 데이터가 클래스 내부에 저장된 것인지, 아니면 상위 클래스로부터 상속된 것인지를 구분할 필요가 없습니다.
질의 처리를 통해 작업 관련 데이터 집합이 수집되기만 하면, 데이터 마이닝 프로세스는 상속된 데이터를 객체 클래스에 직접 저장된 데이터와 동일하게 취급하고 그에 따라 일반화를 수행합니다.
메서드에 대한 일반화
메서드(method)는 객체 지향 데이터베이스의 필수적인 구성 요소이며, 객체에 의해 상속될 수도 있습니다. 객체의 여러 행동 데이터(behavioral data)는 메서드의 적용을 통해 변경될 수 있습니다.
그런데 메서드는 일반적으로 연산 과정·함수 또는 추론 규칙의 집합으로 표현되기 때문에, 메서드 자체에 대해 일반화를 수행하는 것은 불가능합니다. 대신 메서드를 적용하여 도출된 데이터에는 일반화를 적용할 수 있습니다. 즉, 메서드의 실행 결과로 작업 관련 데이터 집합이 한 번 도출되면, 그 데이터들에 대해 일반화를 수행할 수 있는 것입니다.
클래스 합성 계층의 일반화
객체의 속성은 다른 객체로 구성되거나 정의될 수 있으며, 그 객체의 일부 속성 역시 또 다른 객체들로 구성되거나 표현될 수 있습니다. 이렇게 하면 클래스 합성 계층(class composition hierarchy)이 형성됩니다.
클래스 합성 계층에 대한 일반화는 중첩된 구조화 데이터(nested structured data) 집합의 일반화로 볼 수 있습니다. 특히 중첩이 재귀적일 경우 이 데이터 집합은 무한해질 수도 있다는 점에 유의해야 합니다.
개별 객체가 아닌 클래스 단위의 분석
객체 데이터베이스에서 데이터 일반화와 다차원 분석은 개별 객체가 아니라 객체의 클래스를 대상으로 수행됩니다. 한 클래스에 속한 객체들은 많은 속성과 메서드를 공유할 수 있으며, 각 속성과 메서드의 일반화에는 일련의 일반화 연산자가 순차적으로 적용될 수 있습니다.
따라서 핵심 과제는 클래스 내 여러 속성과 메서드 사이에서 일반화 프로세스가 서로 협력하도록(cooperate) 설계하고 개발하는 것입니다. 이를 통해 상속된 데이터든 직접 저장된 데이터든 일관된 방식으로 효율적인 일반화와 다차원 분석이 가능해집니다.