[ADO.NET강좌]아키텍처, 데이터 공급자(.NET Data Providers, Connection, Command, DataReader, DataAdapter), DataSet(DataTable,DataColumn, 데이터 소비자, Consumer)
두 가지 주요 구성 요소는 .NET Framework 데이터 공급자와 DataSet 이다.
.NET Framework 데이터 공급자(.NET Data Providers)
.NET Framework 데이터 공급자는 데이터 조작과 순방향 읽기 전용 고속 데이터 액세스를 위해 명시적으로 디자인된 구성 요소다. Connection 개체는 데이터 소스에 대한 연결을 제공하고 Command 개체를 사용하면 데이터베이스 명령에 액세스하여 데이터를 반환 및 수정하고 저장 프로시저를 실행하며 매개 변수 정보를 보내거나 검색할 수 있다.
DataReader 는 데이터 소스의 데이터에 대한 고성능 스트림을 제공하고 마지막으로 DataAdapter는 DataSet 개체와 데이터 소스 사이를 연결한다. DataAdapter 는 Command 개체로 데이터 소스에서 SQL 명령을 실행하여 DataSet을 데이터와 함께 로드하고 DataSet에 포함된 데이터의 변경 내용을 데이터 소스로 되돌려 조정한다.
DataSet(데이터 소비자, Consumer)
ADO.NET DataSet은 데이터 소스에 관계없이 데이터에 액세스할 수 있도록 명시적으로 디자인되었습니다. 따라서 응용 프로그램에서 로컬데이터를 관리하기 위해 이를 단독으로 사용하거나 다양한 여러 데이터 소스 또는 XML 데이터와 함께 사용할 수도 있다. DataSet 에는 데이터 행과 열로 구성된 하나 이상의 DataTable 개체의 컬렉션뿐만 아니라 DataTable 개체의 데이터에 대한 기본 키, 외래 키, 제약 조건 및 관련 정보가 들어 있다.
데이터 원본에 대한 실질적인 데이터 읽기 및 쓰기는 공급자에 국한된 개체(Connection, Command, DataReader, DataAdapter)에서 일어난다. 데이터를 일단 메모리로 읽어 들인 후에는 소비자 개체(DataSet)들을 이용하여 조작 하는데, 즉 소비자 개체들은 연결이 끊어진 상태에서 작동 한다고 볼 수 있습니다. 다시 말하면 데이터 베이스와 연결이 끊어진 상태에서 메모리 안에 있는 데이터를 다루는 것 이다. 반면 공급자 개체들은 연결이 되어 있는 상태에서 작동을 한다. 일단 공급자 개체들을 이용하여 데이터를 읽은 후 메모리 안의 데이터를 소비자 개체들로 조작하고 변경된 것들을 다시 공급자 개체들을 통해 데이터 원본에 보내는 방법을 취하고 있다.
공급자 개체 (Data Providers) OverView
Connection 개체 : 가장 먼저 사용되는 개체로 데이터 원본에 대한 기본적인 연결을 제공.
Command 개체 : 데이터 베이스에 수행 하는 명령(“select * from emp”)을 대표. SQL Server에 대한 구체적인 명령 개체는 SqlCommand이고 OLE DB 인 경우 OleDbCommand임.
DataReader 개체 : 데이터 원본으로부터 forward only, read only등의 데이터를 빠르고 손 쉽게 얻을 수 있는 개체. 단순히 데이터를 읽는 경우라면 이 개체가 가장 좋은 성능을 낸다. SQL Server용으로는 SqlDataReader, OLE DB용으로는 OleDbDataReader가 있다.
DataAdapter 개체 : 이것은 데이터 원본에 대한 다양한 작업(갱신, DataSet 채우기)을 수행하는 범용적인 클래스 이다. SQL Server의 경우 SqlDataAdapter, OLE DB인 경우 OleDbDataAdapter가 쓰인다.
소비자 개체 OverView
DataSet 개체 : 응용 프로그램 안에서 하나의 단위로 참조되는 관련된 테이블들의 집합을 대표한다. 예를 들어 Customers, Orders, Products의 모든 고객들과 그들이 주문한 제품들은 하나의 DataSet에 담기는 것이 가능 하며 이 개체를 이용하면 원하는 데이터를 각 테이블로부터 빨리 가져와 서버와 연결이 끊어진 상태에서 데이터를 변경 하고, 다시 한번의 명령으로 변경된 것들을 데이터 베이스 서버에 저장 할 수 있다.
DataTable 개체 : 이 개체는 DataSet안의 하나의 테이블을 나타낸다. 각각의 Customers, Orders, Products 등에 대해서…
DataColumn 개체 : 이 개체는 테이블 안의 하나의 열(Column)을 대표한다.
DataRow 개체 : 이 개체는 테이블의 하나의 행(Row)을 대표한다.
네임스페이스의 사용
C#에서 ADO.Net을 사용하는 첫번째 단계는 모든 ADO.NET 클래스들이 있는 System.Data NameSpace에 참조를 정의 하는 것인데 아래와 같이 using 문을 사용해야 한다.
using System.Data;
SQL Server .Net 공급자를 위한 using 문
using System.Data.SqlClient;
using System.Data.SqlClient;
OLE DB .NET 공급자를 위한 using 문
using System.Data.OleDb;
using System.Data.OleDb;
Oracle 전용 Data Provider for .Net의 경우 using 문
Using Oracle.DataAccess.Type
Using Oracle.DataAccess.Client
Using Oracle.DataAccess.Type
Using Oracle.DataAccess.Client
ODBC .Net 공급자
OLE DB 공급자를 제공 하지 않는 데이터 원본(예를 들어 PostageSQL등) 이라면 ODBC .Net 공급자를 사용 하면 된다. ODBC .Net 데이터 공급자(Data Provider)는 VS.Net 과는 별개로 다운 받아야 한다.
댓글 없음:
댓글 쓰기