MDX의 주요 개념(MDX)
MDX(Multidimensional Expressions)를 사용하여 다차원 데이터를 쿼리하거나 큐브 내에서 사용할 MDX 식을 만들 수 있습니다. 그러나 이를 위해서는 먼저 Microsoft SQL Server Analysis Services 차원의 개념과 용어를 이해해야 합니다. 다음 섹션에는 기본적인 차원 모델링의 개념과 용어가 개략적으로 설명되어 있습니다. 뒷부분의 섹션에서는 이러한 개념을 적용하는 방법을 보여 줍니다.
차원 모델링 용어 및 개념
Microsoft SQL Server Analysis Services 큐브는 측정값, 차원 및 차원 특성을 기반으로 구성됩니다. 다음 표에서는 MDX 식 언어를 사용하기 위해 이해하고 있어야 하는 차원 모델링 용어 및 개념에 대해 설명합니다.
(All) 멤버
(All) 멤버는 특성 계층이나 사용자 정의 계층의 모든 멤버에 대해 계산된 값입니다.특성 계층
특성 계층은 다음 수준이 들어 있는 특성 멤버 계층입니다.각각의 고유 특성 멤버가 들어 있는 리프 수준. 리프 수준의 각 멤버는 리프 멤버라고도 합니다.
중간 수준(특성 계층이 부모-자식 계층인 경우)
특성 계층의 리프 멤버에 대한 집계 값이 들어 있는 선택적 (All) 수준(IsAggregatable=True). (All) 수준의 멤버는 (All) 멤버라고도 합니다.
기본적으로 특성 계층은 각 차원 특성에 대해 정의됩니다(AttributeHierarchyEnabled=True). 특성 계층은 기본적으로 표시됩니다(AttributeHierarchyVisible=True).
특성 관계
특성 관계는 특성 간의 일 대 다 관계입니다. 예를 들어 시/도 차원 특성과 구/군/시 차원 특성의 관계가 이에 해당합니다.균형 계층
균형 계층은 최상위 수준과 모든 리프 멤버 사이의 수준 수가 동일한 계층입니다.계산 멤버
계산 멤버는 쿼리할 때 정의 및 계산되는 차원 멤버입니다. 계산 멤버는 사용자 쿼리나 MDX 계산 스크립트에서 정의되고 서버에 저장될 수 있습니다. 계산 멤버는 해당 멤버가 정의된 차원의 차원 테이블에 있는 행에 대응됩니다.셀
큐브의 셀은 큐브에서 측정값 차원의 멤버와 각 특성 계층의 멤버가 교차하는 지점에 있는 공간입니다.측정값 차원의 멤버는 리프 멤버(개별 팩트)이거나 집계 멤버(예: 특정 연도의 매출 집계)일 수 있습니다.
차원의 멤버는 리프 멤버, 데이터 멤버, 부모 멤버 또는 (All) 멤버일 수 있습니다.
자식 멤버
자식 멤버는 계층에서 최상위 수준 아래에 있는 멤버입니다.큐브 차원
큐브 차원은 큐브 내의 데이터베이스 차원 인스턴스입니다.큐브 공간
큐브 공간은 큐브 특성 계층의 멤버와 큐브의 측정값을 곱하여 생성된 공간입니다.데이터 멤버
데이터 멤버는 부모-자식 계층에서 부모 멤버와 연결된 자식 멤버입니다. 데이터 멤버에는 부모의 자식에 대한 집계 값이 아니라 부모 멤버에 대한 데이터 값이 들어 있습니다.데이터베이스 차원
데이터베이스 차원은 키 특성과 관련이 있는 차원 특성의 컬렉션이며 키 특성은 측정값 차원의 팩트와 관련이 있습니다.차원 특성
차원 특성은 차원 테이블에 있는 하나 이상의 열에 바인딩되어 있으며 멤버를 포함합니다. 차원 특성에는 고객 이름, 월 이름, 제품 이름 등이 포함될 수 있습니다.세분성 특성
큐브 차원의 특성으로서, 차원을 측정값 차원의 측정값 그룹에 있는 팩트와 연결합니다. 세분성 특성과 키 특성이 다른 경우 키가 아닌 특성은 세분성 특성에 직접 또는 간접적으로 연결되어야 합니다. 큐브 내에서 세분성 특성은 차원 세분성을 정의합니다.키 특성
데이터베이스 차원의 키 특성은 해당 차원에서 키가 아닌 모든 특성이 직접 또는 간접적으로 연결된 특성입니다. 키 특성은 세분성 특성이 되는 경우도 있습니다.리프 멤버
리프 멤버는 계층에서 자식이 없는 멤버입니다.측정값
측정값은 팩트 테이블의 값으로, 팩트라고도 합니다. 측정값 차원의 값은 일반적으로 멤버라고도 합니다. 측정값은 일반적으로 숫자 값이지만 문자열 값일 수도 있습니다.측정값 그룹
측정값 그룹은 SQL Server Analysis Services의 큐브에 있는 관련 측정값(일반적으로 동일한 팩트 테이블의 측정값) 모음입니다. SQL Server Analysis Services에서는 한 큐브에 여러 개의 측정값 그룹이 있을 수 있습니다.측정값 차원
측정값 차원은 큐브의 모든 측정값이 들어 있는 차원입니다. 측정값 차원은 특수한 유형의 차원으로서, 이 차원의 멤버는 일반적으로 지정한 측정값과 함께 존재하는 각 차원 특성의 현재 멤버에 따라 Sum 또는 Count 등의 함수로 집계됩니다.멤버
멤버는 측정값 차원을 비롯한 차원 특성의 값입니다. 계층의 멤버는 리프 멤버, 부모 멤버, 데이터 멤버 또는 (All) 멤버일 수 있습니다.멤버 속성
멤버 속성은 특성 멤버의 속성입니다. 예를 들어 고객의 성별이나 제품의 색이 이에 해당합니다.부모 멤버
부모 멤버는 부모-자식 계층에서 자식에 대한 집계 값이 들어 있는 멤버입니다.부모-자식 계층
부모-자식 계층은 특수한 유형의 특성 계층으로서, 차원의 특성이 parent 유형으로 설정된 계층입니다. 부모-자식 계층은 자식 및 부모 멤버로 구성된 불균형 계층입니다. 부모-자식 계층에는 다음 수준이 들어 있습니다.부모 멤버의 자식이 들어 있는 자식 수준. 부모의 자식에는 데이터 멤버를 비롯하여 부모 멤버로 집계되는 특성 멤버가 포함됩니다.
부모 멤버가 들어 있는 중간 수준
부모-자식 계층의 리프 멤버에 대한 집계 값이 들어 있는 선택적 (All) 수준(IsAggregatable=True). (All) 수준의 멤버는 (All) 멤버라고도 합니다.
부모-자식 계층은 한 차원에 하나만 있을 수 있으며 키 특성과 관련되어 있어야 합니다.
비정형 계층
불균형 계층을 참조하십시오.하위 큐브
하위 큐브는 큐브의 필터링된 뷰를 나타내는 큐브 하위 집합입니다. 하위 큐브는 MDX 계산 스크립트의 SCOPE 문이나 MDX 쿼리의 하위 SELECT 절을 사용하여 정의하거나 세션 큐브로 정의할 수 있습니다.하위 SELECT 절로 정의된 하위 큐브
MDX 쿼리에서 하위 SELECT 절을 사용하여 정의된 하위 큐브에는 해당 하위 큐브 정의와 함께 존재하는 모든 멤버가 포함됩니다. 이때 적용되는 규칙은 다음과 같습니다.모든 멤버를 포함할 경우 멤버의 상위 항목과 하위 항목이 포함됩니다.
사용자 정의 계층에 있는 한 수준의 모든 멤버를 포함할 경우 해당 사용자 정의 계층의 모든 멤버가 포함되지만 고객이 없는 도시와 같이 해당 수준의 멤버와 함께 존재하지 않는 다른 계층의 멤버는 제외될 수 있습니다.
큐브의 (All) 멤버는 모두 해당 큐브에서 만들어진 하위 큐브에 항상 포함됩니다.
모든 값은 하위 큐브에서 집계될 때 새 큐브의 공간만 반영하며 해당 큐브가 파생되는 외부 큐브의 공간은 반영하지 않습니다.
불균형 계층
불균형 계층은 최상위 수준과 리프 멤버 사이의 수준 수가 다른 계층입니다. 불균형 계층의 예로는 부모-자식 계층이 있습니다. 불균형 계층을 비정형 계층이라고도 합니다.사용자 정의 계층
사용자 정의 계층은 특성 계층의 불균형 계층으로서, 사용자가 큐브 데이터를 쉽게 찾을 수 있도록 하는 데 사용됩니다. 사용자 정의 계층을 사용해도 큐브 공간은 늘어나지 않습니다. 사용자 정의 계층의 수준은 특정 상황에서 숨겨질 수 있으며 불균형 상태로 나타날 수 있습니다.