ADO.NET 클래스는 크게 두 개의 컴포넌트로 나누어져 있다. 즉, 물리적인 데이터 저장소와의 커뮤니케이션을 다루는 데이터 공급자와 실제 데이터를 나타내주는 DataSet으로 나누어진다. 이들 두 가지 컴포넌트들은 모두 WebForm이나 WinForm과 같은 데이터 사용자와 통신 할 수 있다.


데이터 공급자

데이터 공급자 컴포넌트는 데이터 소스에 대하여 특별한 역활은 한다. .NET프레임워크에 포함되어 있는 두 개의 데이터 공급자는 서로 동일한 객체를 포함하고 있다. 포함하고 있는 각각의 객체가 서로 다른 이름을 가지고 있고 일부 속성과 메서드가 다르지만 이들은 동일한 객체이다. 


Connection

Connection 객체는 데이터 소스와의 물리적인 연결을 나타낸다. Connection객체의 속성은 데이터 공급자,연결하고자 하는 데이터 소스와 데이터베이스, 그리고 연결하는 동안 사용할 문자열을 결정 짓는다. Connection객체의 메서드는 연결을 열거나 닫고, 데이터베이스를 변경하는 트랜잭션을 관리한다.


Command

Command객체는 데이터 소스에 대해 실행될 SQL문 또는 저장프로시저를 나타낸다. Connection객체와는 상관없이 독립적으로 Command객체를 생성하고, 실행 할 수 있다. 또한 DataSet과 데이터 소스와의 통신을 위해 DataAdapter 객체가 Command객채를 사용한다. Command객체는 단일 값, 한개 또는 그 이상의 행 집합, 또는 전혀 값을 리턴하지 않는 SQL문과 저장 프로시저를 지원할 수 있다.


DataReader

DataReader는 데이터 소스의 데이터 스트림을 전방향 및 읽기전용으로 포함하기 위한 빠르고 오버헤드가 적은 객체이다. DataReader 객체는 코드에 직접 생성할 수 없고, 오직 Command객체의 ExecuteReader 메서드를 호출할 때만 생성할 수 있다.


DataAdapter

DataAdapter는 데이터 공급자 객체들 중에서 기능적으로 가장 복잡한 객체이다. DataAdapter 는 Connection과 DataSet 사이의 브릿지를 제공한다. DataAdapter는 네 개의 Command객체, SelectCommand, UpdateCommnad, InsertCommand, DeleteCommand를 포함한다. DataSet을 채우기 위해서 SelectCommand를 사용하고, 다른 나머지 세개의 객체는 병경내용을 다시 데이터 소스에 전달할 때 사용한다.


DataSets

DataSet은 데이터를 나타내기 위한 메모리 상주형 데이터이다. DataSet의 구조는 그림과 같고, 테이블과 테이블 사이의 관계로 구성된 관계형 데이터베이스를 간단히 나타낸 형태와 같다고 볼 수 있다. DataSet이 항상 데이터 소스와 연결되어 있지 않다는 것이 중요하다. DataSet이 가지고 있는 데이터를 어디에서 가져왔는지 알지 못하지만, 실제적으로는 여러 데이터 소스의 데이터를 포함할 수 있다.


DataSet은 DataTableCollection과 DataRelationCollection이라는 두 개의 주요한 객체로 구성된다. DataTableCollection은 0개 또는 그 이상의 DataTable 객체를 포함한다. 그리고 DataTable은 차례로 Columns,Rows,Constraints 의 세 개의 컬렉션으로 구성되어 있다. 

DataRelationCollection은 0개 또는 그 이상의 DataRelation을 포함한다.


+ Recent posts