ADO.NET 데이터 집합
DataSet 개체는 연결되지 않은 분산 데이터 시나리오를 ADO.NET을 사용하여 지원하는 데 핵심적인 역할을 수행합니다. DataSet은 데이터 소스에 관계없이 일관성 있는 관계형 프로그래밍 모델을 제공하는 데이터의 메모리 상주 표현입니다. 이 개체는 다양한 여러 데이터 소스에 사용하거나 XML 데이터에 사용할 수 있을 뿐 아니라 이 개체를 사용하여 응용 프로그램의 로컬 데이터를 관리할 수도 있습니다. DataSet은 관련 테이블, 제약 조건 및 테이블 간의 관계를 포함하는 완전한 데이터 집합을 나타냅니다. 다음 그림은 DataSet 개체 모델을 보여 줍니다.
DataSet 개체 모델
DataSet의 메서드 및 개체는 관계형 데이터베이스 모델의 메서드 및 개체와 일치합니다.
DataSet은 유지될 수 있으며 해당 내용을 XML로 로드하고 해당 스키마를 XSD(XML 스키마 정의 언어) 스키마로 다시 로드할 수 있습니다. 자세한 내용은 DataSet에서 XML 사용(ADO.NET)을 참조하십시오.
DataTableCollection
ADO.NET DataSet에는 DataTable 개체에 의해 표현되는 0개 이상의 테이블에 대한 컬렉션이 포함되며, DataTableCollection에는 DataSet의 모든 DataTable 개체가 포함됩니다.
DataTable은 System.Data 네임스페이스에 정의되며 메모리 상주형 데이터를 단일 테이블로 나타냅니다. 여기에는 DataColumnCollection에 의해 표현되는 열의 컬렉션과 ConstraintCollection에 의해 표현되는 제약 조건의 컬렉션이 포함됩니다. 이 두 컬렉션은 테이블의 스키마를 정의합니다. DataTable에는 DataRowCollection에 의해 표현되는 행의 컬렉션도 포함됩니다. 이 컬렉션에는 테이블의 데이터가 들어 있습니다. 이와 함께 DataRow는 현재 버전과 원래 버전을 모두 보유하므로 행에 저장된 값에 대한 변경 사항을 식별할 수 있습니다.
DataView 클래스
DataView는 데이터 바인딩 응용 프로그램에서 자주 사용되는 기능으로, 이 기능을 사용하면 DataTable에 저장되어 있는 데이터에 대해 서로 다른 뷰를 만들 수 있습니다. DataView를 사용하면 테이블의 데이터를 여러 정렬 순서로 노출시킬 수 있으며 행 상태에 따라 또는 필터 식을 기준으로 데이터를 필터링할 수 있습니다. 자세한 내용은 DataView(ADO.NET)를 참조하십시오.
DataRelationCollection
DataSet에는 해당 DataRelationCollection 개체의 관계가 포함됩니다. DataRelation 개체에 의해 표현되는 관계는 하나의 DataTable에 있는 행을 다른 DataTable에 있는 행과 연결합니다. 이 관계는 관계형 데이터베이스의 기본 키 열과 외래 키 열 간에 존재하는 조인 경로와 유사합니다. DataRelation은 두 DataSet 테이블에서 일치하는 열을 식별합니다.
관계를 사용하면 DataSet의 한 테이블에서 다른 테이블로 탐색할 수 있습니다. DataRelation의 필수 요소는 관계의 이름, 관련되는 테이블의 이름 및 각 테이블에 있는 관련 열입니다. DataColumn 개체의 배열을 키 열로 지정하면 테이블당 두 개 이상의 열에 대한 관계를 빌드할 수 있습니다. DataRelationCollection에 관계를 추가한 경우에는 UniqueKeyConstraint와 ForeignKeyConstraint를 선택적으로 추가하여 관련 열 값이 변경될 때 무결성 제약 조건을 적용할 수 있습니다.
자세한 내용은 DataRelations 추가(ADO.NET)를 참조하십시오.
XML
XML 스트림이나 문서에서 DataSet을 채울 수 있습니다. XML 스트림이나 문서를 사용하여 데이터, 스키마 정보 또는 두 가지 모두를 DataSet에 제공할 수 있습니다. XML 스트림이나 문서에서 제공되는 정보를 DataSet에 있는 기존 데이터나 스키마 정보와 결합할 수 있습니다. 자세한 내용은 DataSet에서 XML 사용(ADO.NET)을 참조하십시오.
ExtendedProperties
DataSet, DataTable 및 DataColumn은 모두 ExtendedProperties 속성을 가집니다. ExtendedProperties는 결과 집합을 생성하는 데 사용한 SELECT 문이나 데이터가 생성된 시간 같은 사용자 지정 정보를 배치할 수 있는 PropertyCollection입니다. ExtendedProperties 컬렉션은 DataSet에 대한 스키마 정보와 함께 유지됩니다.
LINQ to DataSet
LINQ to DataSet에서는 데이터 집합에 저장되어 있는 연결되지 않은 데이터에 대한 통합 언어 쿼리 기능을 제공합니다. LINQ to DataSet은 표준 LINQ 구문을 사용하며 Visual Studio IDE를 사용할 때 컴파일 타임 구문 검사, 정적 입력 및 IntelliSense 지원을 제공합니다.
자세한 내용은 LINQ to DataSet을 참조하십시오.