41. [ADO.NET] DataSet

DataSet은 ADO.NET 핵심 구성 요소로 프로그램 내의 논리적 DB로 데이터 집합과 관계로 구성합니다.

DataTable은 메모리 상의 하나의 테이블을 표현하는 개체이고 DataSet은 메모리 상의 DB를 표현하는 개체입니다. 따라서 DataSet은 여러 개의 테이블과 관계들의 집합체라고 볼 수 있습니다.

DataSet 개체를 구성할 DataTable 개체들은 Tables 컬렉션에 보관하고 관계는 Relations 컬렉션에 보관합니다. DataSet 개체도 DataTable 처럼 스키마와 데이터를 저장하거나 읽어와서 구성하는 메서드를 제공합니다.

DataSet 클래스에는 DataSet 개체를 생성할 때 사용하는 생성자를 제공합니다.

 

DataSet 개체를 생성한 후에는 DB를 구성할 테이블과 관계를 정의할 수 있습니다. 이러한 작업을 DB 설계라고 말합니다.

DB를 설계할 때는 DB에 포함할 테이블을 정의하여 DataSet에 추가하고 서로 다른 테이블에 있는 열 간의 관계를 정의하여 DataSet 개체에 추가합니다.

 

다음은 출판사, 도서 테이블을 갖는 DataSet을 디자인하고 간단하게 데이터를 추가하는 소스 코드입니다.

DataSet 클래스도 DataTable 처럼 DataSet 구조를 스키마 파일로 저장하거나 로딩하는 메서드를 제공하고 있으며 내용을 저장하거나 로딩하는 메서드를 제공하고 있습니다. 사용법이 큰 차이가 없기 때문에 설명을 하지 않겠습니다.