보고서 데이터 집합 이해
데이터 집합은 데이터 연결에서 사용할 데이터를 지정합니다. 데이터 집합은 포함된 데이터 원본 또는 보고서 서버의 공유 데이터 원본에 대한 참조로 보고서에 저장된 데이터 연결을 기반으로 합니다. 데이터 집합은 필드 집합을 지정하는 쿼리를 포함합니다. 이러한 필드를 디자인 화면으로 끌면 보고서를 실행할 때 실제 데이터를 계산하는 식이 만들어집니다.
데이터 집합에는 두 가지 유형이 있습니다.
공유 데이터 집합. 공유 데이터 집합은 보고서 서버에서 정의됩니다. 서버로 이동하여 공유 데이터 집합을 만들거나 미리 정의된 데이터 집합을 선택해 보고서에 추가할 수 있습니다. 자세한 내용은 공유 데이터 집합 관리를 참조하십시오.
포함된 데이터 집합. 포함된 데이터 집합은 해당 집합을 포함하는 보고서에서만 정의 및 사용됩니다.
데이터 집합에는 매개 변수, 필터 및 문자 구분을 지정하는 데이터 옵션(예: 대/소문자, 일본어 가나, 전자, 악센트, 데이터 정렬 정보)도 포함됩니다.
구성 요소는 보고서에 포함할 수 있는 다시 사용할 수 있는 보고서 항목입니다. 구성 요소에 종속 데이터 집합이 있는 경우 해당 데이터 집합은 구성 요소에 포함됩니다. 구성 요소를 보고서에 추가할 때는 해당 구성 요소가 종속되는 모든 데이터 집합도 추가하게 됩니다. 이러한 데이터 집합을 보고서에 추가하고 나면 보고서 서버에서 추가하거나 수동으로 만드는 데이터 집합과 아무런 차이가 없습니다. 자세한 내용은 보고서 디자이너에서 보고서 파트 게시를 참조하십시오.
보고서 데이터 집합 데이터 이해
보고서 데이터 집합은 다음 데이터 형식으로 구성될 수 있습니다.
데이터베이스 명령, 저장 프로시저 또는 사용자 정의 함수를 실행한 결과로 얻어지는 관계형 데이터베이스의 결과 집합. 단일 쿼리를 통해 여러 결과 집합이 검색된 경우 최초의 결과 집합만 처리되며 다른 모든 결과 집합은 무시됩니다. 예를 들어 텍스트 기반 쿼리 디자이너에서 다음 쿼리를 실행하면 Production.Product에 대한 결과 집합만 결과 창에 나타납니다.
SELECT ProductID FROM Production.Product; GO SELECT ContactID FROM Person.Person;
XMLA(XML for Analysis) 프로토콜을 사용하는 다차원 데이터 원본의 일반 행 집합. 일부 데이터 공급자는 결과 집합에는 표시되지 않지만 보고서에서는 사용할 수 있는 데이터 원본의 추가 셀 및 차원 속성을 제공합니다.
XML 요소, 해당 특성 및 자식 요소를 포함하는 XML 데이터 원본의 일반 결과 집합
등록 및 구성된 .NET Framework 데이터 공급자의 결과 집합
미리 정의된 엔터티, 엔터티 관계 및 필드를 포함하여 특정 데이터 원본에 대해 디자인된 보고서 모델의 데이터. 자세한 내용은 보고서 모델을 데이터 원본으로 사용을 참조하십시오.
런타임에 보고서가 처리되면 쿼리에 대해 반환된 실제 결과 집합에는 0개 이상의 행이 있을 수 있습니다. 또한 데이터 원본에 쿼리에서 정의한 열이 없을 수도 있습니다. 데이터 원본의 Null 값은 .NET Framework 값 System.DBNull.Value로 매핑됩니다.
데이터 속성 설정
보고서 데이터 집합을 정의할 때 쿼리에 데이터 속성을 설정하거나 데이터 공급자가 설정한 기본값을 사용할 수 있습니다. 다음 전략 중 하나를 사용하여 이러한 데이터 형식을 변경할 수 있습니다.
데이터 집합 쿼리를 다시 작성하여 필드를 다른 데이터 형식으로 특별히 변환합니다.
데이터 집합의 필드를 편집하고 사용자 지정 형식을 제공합니다.
데이터베이스 필드를 기반으로 새 사용자 지정 필드를 만들고 사용자 지정 형식을 제공합니다.
국가별 데이터를 지원하는 데이터 원본의 경우 정렬 순서, 국가별 문자 속성, 대소문자 구별 여부에 영향을 주는 데이터 집합의 속성을 조정해야 할 수 있습니다. 이러한 속성에는 대/소문자, 일본어 가나, 전자, 악센트, 데이터 정렬 등이 있습니다. 자세한 내용은 데이터베이스 및 데이터베이스 엔진 응용 프로그램에 대한 국가별 고려 사항 및 데이터 정렬 작업을 참조하십시오. 이러한 속성을 설정하는 방법에 대한 자세한 내용은 데이터 집합 속성 대화 상자, 옵션을 참조하십시오.
보고서에 공유 데이터 집합을 추가할 때 공유 데이터 집합 정의의 일부로 정의되는 쿼리 또는 필터를 변경할 수 없습니다. 필터를 추가하고 보고서의 인스턴스에 대한 데이터 집합 옵션을 무시할 수는 있습니다. 자세한 내용은 msdn.microsoft.com의 보고서 작성기 3.0 설명서에서 포함된 데이터 집합 및 공유 데이터 집합(보고서 작성기 3.0)을 참조하십시오.
데이터 집합 필드 컬렉션의 데이터 형식 이해
데이터 원본에서 데이터는 데이터 원본에서 지원하는 데이터 형식으로 저장됩니다. 예를 들어 SQL Server 데이터베이스의 데이터는 nvarchar 또는 datetime과 같이 지원되는 SQL Server 데이터 형식 중 하나이어야 합니다. 데이터 원본에서 데이터를 검색하는 경우 데이터는 데이터 원본 유형과 연결된 데이터 처리 확장 프로그램 또는 데이터 공급자를 통과합니다. 데이터 처리 확장 프로그램에 따라, 데이터가 데이터 원본에서 사용되는 데이터 형식에서 데이터 처리 확장 프로그램에서 지원하는 데이터 형식으로 변환될 수 있습니다. Reporting Services는 Business Intelligence Development Studio와 함께 설치된 CLR(공용 언어 런타임)에서 지원하는 데이터 형식을 사용합니다. 데이터 공급자는 결과 집합의 각 열을 네이티브 데이터 형식에서 .NET Framework CLR 데이터 형식으로 매핑합니다.
각 단계에서 데이터는 다음 목록에서 설명하는 데이터 형식으로 표현됩니다.
데이터 원본 연결하는 데이터 원본 유형 버전에서 지원하는 데이터 형식입니다.
예를 들어 SQL Server 데이터 원본에 대한 일반적인 데이터 형식에는 int, datetime 및 varchar가 있습니다. SQL Server 2008에서 새로 도입된 데이터 형식에서는 date, time, datetimetz 및 datetime2에 대한 지원을 추가했습니다. 자세한 내용은 데이터 형식(Transact-SQL)을 참조하십시오.
데이터 공급자 또는 데이터 처리 확장 프로그램 데이터 원본에 연결할 때 선택하는 데이터 처리 확장 프로그램의 데이터 공급자 버전에서 지원하는 데이터 형식입니다. .NET Framework를 기반으로 하는 데이터 공급자는 CLR에서 지원하는 데이터 형식을 사용합니다. .NET Framework 데이터 공급자 데이터 형식 지원에 대한 자세한 내용은 MSDN의 데이터 형식 매핑(ADO.NET) 및 기본 형식 사용을 참조하십시오.
예를 들어 .NET Framework에서 지원하는 일반적인 데이터 형식에는 Int32 및 String이 있습니다. 달력 날짜 및 시간은 DateTime 구조에서 지원합니다. .NET Framework 2.0 서비스 팩 1은 표준 시간대 오프셋이 있는 날짜에 대한 DateTimeOffset 구조를 새로 지원합니다.
참고
보고서 서버는 보고서 서버에 설치되고 구성되는 데이터 공급자를 사용합니다. 미리 보기 모드의 보고서 제작 클라이언트는 클라이언트 컴퓨터에 설치되고 구성된 데이터 처리 확장 프로그램을 사용합니다. 보고서를 보고서 클라이언트 환경과 보고서 서버 환경 모두에서 테스트해야 합니다.
보고서 처리기 데이터 형식은 Reporting Services를 설치할 때 설치된 CLR 버전을 기반으로 합니다.
예를 들어 SQL Server 2008에서 새로 도입된 새 날짜 및 시간 유형에 대해 보고서 처리기가 사용하는 데이터 형식이 다음 표에 표시됩니다.
SQL 데이터 형식
CLR 데이터 형식
설명
Date
DateTime
날짜만
Time
TimeSpan
시간만
DateTimeTZ
DateTimeOffset
표준 시간대 오프셋을 포함하는 날짜 및 시간
DateTime2
DateTime
소수 자릿수 밀리초를 포함하는 날짜 및 시간
SQL Server 데이터베이스 유형에 대한 자세한 내용은 데이터 형식(데이터베이스 엔진) 및 날짜 및 시간 데이터 형식 및 함수(Transact-SQL)를 참조하십시오.
식에서 데이터 집합 필드에 대한 참조를 포함하는 방법은 식의 데이터 형식 작업(Reporting Services)을 참조하십시오.
여러 데이터 집합 사용
보고서에는 일반적으로 두 개 이상의 데이터 집합이 포함되어 있습니다. 다음 목록에서는 보고서에서 데이터 집합을 사용하는 방법을 설명합니다.
별도의 데이터 영역을 사용하여 각 데이터 집합의 데이터를 표시합니다. 자세한 내용은 데이터 영역 작업을 참조하십시오.
데이터 영역에 둘 이상의 데이터 영역을 연결하여 동일한 데이터에 대한 다양한 뷰를 제공할 수 있습니다. 자세한 내용은 동일한 데이터 집합에 여러 데이터 영역 연결을 참조하십시오.
데이터 집합을 사용하여 사용 가능한 값이나 보고서 매개 변수 기본값에 대한 드롭다운 목록을 제공할 수 있습니다. 자세한 내용은 보고서에 매개 변수 추가를 참조하십시오.
드릴스루 보고서 또는 포함된 보고서의 매개 변수를 사용하면 여러 데이터 집합의 관련 데이터를 연결할 수 있습니다. 예를 들어 판매 보고서에는 모든 상점에 대한 요약 데이터가 표시되고 드릴스루 링크는 지정된 상점의 개별 판매량을 검색하는 데이터 집합 쿼리를 사용하여 상점 식별자를 보고서의 매개 변수로 지정할 수 있습니다. 자세한 내용은 드릴스루 보고서 추가 및 포함된 보고서 추가를 참조하십시오.
여러 데이터 집합의 정보 데이터를 단일 데이터 영역에 표시할 수 없습니다. 그러나 여러 데이터 집합에 대한 집계 또는 기본 제공 함수 값은 데이터 영역 내에 표시할 수 있습니다. 자세한 내용은 식에서 기본 제공 보고서 및 집계 함수 사용(Reporting Services)을 참조하십시오. 여러 데이터 집합의 정보 데이터를 하나의 데이터 영역에 결합해야 하는 경우 데이터를 단일 데이터 집합으로 검색하도록 쿼리를 다시 작성해야 합니다.
데이터 집합에 대한 기존 쿼리 가져오기
데이터 집합을 만드는 경우 새로운 쿼리를 만들거나 파일 또는 다른 보고서에서 기존 쿼리를 가져올 수 있습니다. .sql 및 .rdl 파일 형식만 지원됩니다. MDX(Multidimensional Expression) 쿼리나 DMX(Data Mining Prediction) 쿼리는 결과 집합을 일반 행 집합으로 검색해야 하므로 Reporting Services 쿼리 디자이너에서만 생성할 수 있습니다.
다른 보고서에서 쿼리를 가져오는 경우 보고서의 데이터 집합 목록에서 가져올 쿼리를 선택할 수 있습니다.
런타임에 검색된 데이터 행이 없을 때 메시지 표시
보고서를 처리하는 동안 데이터 집합에 대한 쿼리를 실행하면 결과 집합에 행이 없을 수 있습니다. 렌더링된 보고서에서 빈 데이터 집합에 연결된 데이터 영역은 빈 데이터 영역으로 표시됩니다. 렌더링된 보고서에서 빈 데이터 영역을 표시하는 대신 텍스트를 지정하여 표시할 수 있습니다. 모든 데이터 집합에 대한 쿼리에서 런타임에 생성된 데이터가 없는 경우 포함된 보고서에 사용할 메시지도 지정할 수 있습니다. 자세한 내용은 방법: 데이터 영역에 대한 데이터 없음 메시지 설정을 참조하십시오.
누락된 필드 검색
보고서가 처리될 때 해당 열이 더 이상 데이터 원본에 존재하지 않아 데이터 집합에 대한 결과 집합에서 지정된 일부 열에 대한 값이 누락될 수 있습니다. 필드 속성 IsMissing을 사용하여 필드에 대한 값이 런타임에 반환되었는지를 검색할 수 있습니다. 자세한 내용은 식에서 데이터 집합 필드 컬렉션 참조 사용(Reporting Services)을 참조하십시오.
숨겨진 데이터 집합 표시
일부 다차원 데이터 원본에 대해 매개 변수가 있는 쿼리를 작성할 때 Reporting Services는 매개 변수에 대해 유효한 값을 제공하는 데이터 집합을 자동으로 만듭니다. 기본적으로 이러한 데이터 집합은 보고서 데이터 창에 나타나지 않습니다. 자세한 내용은 방법: 숨겨진 데이터 집합 표시을 참조하십시오.
참고 항목
참조
개념
Reporting Services에서 지원하는 데이터 원본