Home » Blog » C# : SQL 데이타 엑세스

C# : SQL 데이타 엑세스

C# (혹은 .NET)에서 SQL 서버의 데이타를 엑세스하는 방법으로 흔히 사용되는 기술로 ADO.NET과 LINQ TO SQL, Entity Framework 등을 들 수 있다.

ADO.NET은 기존의 ADO (ActiveX Data Object)로부터 계승되어 .NET에 맞게 나온 데이타 엑세스 클래스들이다.

Entity Framework (EF)은 .NET에서 ORM (Object-Raltional Mapping: 관계형 데이타인 SQL과 객체 지향적 언어를 매핑시키는 중간 클래스들을 만들어 준다)을 전문적으로 구현한 프레임 워크로서 엔터프라이즈에서 전문적인 ORM을 구현하기에 적합하다.

LINQ TO SQL은 SQL에 대한 LINQ(Language Integrated Query)로서, ORM을 간편하게 사용할 수 있도록 Entity Framework의 서브셋 기능을 지원하며, LINQ에서 쉽게 ORM 매핑 클래스들을 활용할 수 있게 한 것이다

 

ADO.NET 클래스

ADO.NET은 Connected 모드(DataReader)와 Disconneted 모드(DataAdapter) 모두 지원하며, 타겟 데이타의 종류에 따라 다음과 같은 여러 데이타 엑세스 Provider를 지원한다.

Data Provider 네임스페이스 주요 클래스
SQL Server System.Data.SqlClient SqlConnection
SqlCommand
SqlDataReader
SqlDataAdapter
SqlParameter
SqlTransaction
OLEDB (예: Access) System.Data.OleDb OleDbConnection
OleDbCommand
OleDbDataReader
OleDbDataAdapter
OleDbParameter
OleDbTransaction
ODBC System.Data.Odbc OdbcConnection
OdbcCommand
OdbcDataReader
OdbcDataAdapter
OdbcParameter
OdbcTransaction
Oracle System.Data.OracleClient OracleConnection
OracleCommand
OracleDataReader
OracleDataAdapter
OracleParameter
OracleTransaction
In-memory 데이타 System.Data DataSet
DataTable

ADO.NET 클래스를 여러 데이타 소스를 지원해야 한다면, 아래와 같은 공통 인터페이스추상 클래스를 이용하여 호환성있는 프로그램을 만들 수 있다.

공통 Interface (System.Data)  IDbConnection
IDbCommand
IDataReader
IDbDataAdapter
IDataParameter
IDbTransaction
Abstract 클래스 (System.Data.Common)  DbConnection
DbCommand
DbDataReader
DbDataAdapter
DbParameter
DbTransaction