MixedCode

4일차
4.1 모델 & 데이터 모델링 & 데이터 베이스

4.2 Microsoft SQL Server 기초
4.3 Entity Framework(EF) ORM 사용법
4.4 EF 기반 ASP.NET MVC DB Programming

1.ORM(Object-relational mapping=객체 관계 매핑)?  


ORM은 객체지향 프로그램언어를 이용해 DB 프로그램밍을 할때 RDBMS의 데이터베이스 구조 및 데이터를 관리하기 위한 SQL(Structured Query Language)를 잘모르더라도 프로그래밍적인 방법을 이용  쉽게 데이터 모델 객체 기반으로 DB 프로그래밍을 할수 있는 환경을 제공합니다.
ORM의 사전적 의미는 다음과 같습니다.
ORM(Object-relational mapping=객체 관계 매핑)은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법입니다.
개체 관계 매핑 라고도 부르며 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축하는 방법입니다.


상기 개념도를 통해서도 알수있듯이 ORM Framework은 데이터의 영속적 저장매체인 DATABASE안의 테이블 객체와 어플리케이션 메모리상의 데이터모델 상호간 맵핑되고  변환될수있는 기능을 제공하며 프로그래밍방식으로 ORM을 통해 Query기능을 수행할수 있는  기능을 제공하는 OOP 기반 데이터 처리 전용 프레임워크를 말합니다.

대표적인 ORM Framework으로는 JAVA언어에서 많이 사용되는 Hibernate, .NET 언어에서 사용되는 EntityFramework을 대표로 들수 있습니다.


2.EF(ADO.NET Entity Framework) 

EF는 DB 응용프로그램 개발을 지원하기 위해  .NET Framework 의 데이터 처리 기술인 ADO.NET 기술환경 기반에서 사용할수 있는 .NET 언어 전용 ORM프레임워크입니다.
Entity Framework은 데이터 모델링의 결과인 데이터 모델 객체 와  그 실체인 데이터베이스의 테이블간 관계맵핑과 객체쿼리기술(LINQ)등을 이용해  개발자가 데이터를 처리할 때 보다 높은 추상 수준에서 개발작업을 할 수 있으며, 기존의 응용 프로그램에서보다 적은 코드로 데이터 지향 응용 프로그램을 만들고 유지 관리할 수 있습니다

ㅁEF의 주요기능에 대해 간략히 소개드립니다.
- 데이터베이스의 테이블을 이용해 데이터모델 객체를 자동으로 생성합니다(Database First 방식).
- 데이터모델 객체를 정의하고 모델을 이용 데이터베이스에  테이블을 자동으로 생성합니다.( Code First 방식)
- EF는 DATABASE First방식 또는 CodeFirst방식을 통해 내부적으로 개념적 모델(데이터모델=CSDL) 과 저장소모델(DB Table구조모델=SSDL) 분리 생성하고 양쪽 모델의 맵핑정보(MSL)를 XML로 별도 관리합니다. 
- EF는 모델 및 매핑 파일의 정보를 사용하여 개념적 모델로 표현된 엔터티 형식에 대한 개체 쿼리를 데이터 소스에 대한 쿼리로 변환합니다.
- 쿼리 결과는 Entity Framework에서 관리하는 개체로 구체화되며 개념적 모델을 쿼리하기 위해 LINQ(Language-Integrated Query) 기술을 사용합니다.
- Visual Studio 개발툴은 EF의 매핑 및 모델링을 지원하기 위해 엔터티 데이터 모델 도구를 지원합니다.



[그림4-35] ADO.NET Entity Framework 데이터 처리 프로세스


3.EF 활용하기 


Visual Studio의 EF 지원기능을 이용해 Database First방식으로  데이터 베이스에 만들어진  각종 객체(Table,View,StoredProcedure,Funtion)들을 이용해 객체관계맵핑 작업을 자동으로 만들어 보도록 하겠습니다.


1) 데이터 베이스에 테이블을 생성합니다.
-EF의 Database First방식을 통해 ORM을 생성하려면 먼저 관련 DATABASE에 테이블을 생성해야합니다.
-현재 Member(사용자) 테이블 및 (BoardArticles)게시글 테이블이 두개 존재합니다.
-해당 데이터베이스를 접근하기 위한 SQL인증아이디도 생성되어 있어야합니다.
<이전강의 MSSQL 기초사용법 참조>
 



2.Models 폴더에 새항목을 추가합니다.

-Models폴더에 오른쪽 마우스 클릭 추가>새항목을 클릭합니다.
-새항목 추가팝업창의 왼쪽 Visual C# 트리영역에서 데이터 항목을 클릭합니다.
-ADO.NET 엔터티 데이터 모델 항목을 선택하고 모델이름을 입력합니다.
ㄴ데이터베이스명+Model형식을 권장드립니다. EX) EddyHomePageModel


3) 엔터티 데이터 모델 마법사 팝업창이 나타납니다.
-데이터베이스의 EF Designer 항목(DataBase First방식)을 선택하고 다음을 클릭합니다.
-데이터 연결 선택 팝업에서 연결버튼을 클릭합니다.




4)데이터 연결 선택 창에서 새연결을 클릭합니다.

-DATABASE와 연결하기 위한 인증정보를 입력합니다.
-데이터소스: SQL Sever
-서버이름 : 로컬 또는 원격지 SQL서버명 또는 IP주소를 입력합니다.
-인증방식: SQL Sever 인증 방식을 선택합니다.
-사용자이름: 기존에 생성한 SQL인증아이디를 입력합니다.
-암호: SQL인증아이디의 암호를 입력합니다.
-암호저장: 반드시 체크하십시오.
-데이터베이스 이름 선택 또는 입력:  관련 DATABASE를 선택합니다.
연결테스트 버튼을 클릭하여 연결여부를 확인합니다.
연결성공 되었으면 확인버튼을 클릭합니다.


5)데이터 연결정보가 표기되며 라디오 버튼중에 예,중요한 데이터를 연결문자열에 포함합니다.를  선택합니다.
-체크박스 다른이름으로 Web.Config의 연결설정 저장을 반드시 체크합니다.
다음버튼을  클릭합니다.


6)데이터베이스 개체 및 설정 선택에서 테이블 트리를 확장하여 하위의 모든 테이블을 선택합니다.
마침을 클릭하여 종료합니다.
-ORM 관련 정보가 자동 생성됩니다.


7)Models폴더에  EddyHomePageModel.edmx파일이 생성됩니다.
-Entity Framework을 이용해 자동으로 edmx파일이 생성되며  파일 내부에 각종 클래스들이 자동된것을 확인할수 있습니다.
-추가된 테이블은 .edmx 클래스 다이어그램으로 모델구조를 확인할수 있습니다.


8) 다이어그램에 오른쪽 마우스 클릭하고 모델브라우저를 선택합니다.

-솔루션 탐색기 영역에 모델 브라우저가 표시됩니다.
-모델 브라우저는 .edmx파일 내의 전체 모델 구조를 가시적으로 표현해주고 관리할수 있는 기능을 제공합니다.
ㄴ개념적 모델영역 (EddyHomePageModel)
ㄴ저장소모델 (EddyHomePageModel.Store)


9)EDMX파일이 생성되면  웹 어플리케이션의  환경설정정보를 xml로 관리하는 web.config파일내에 Database연결정보가자동
저장되며 DB연결정보가 변경되면  수동으로 인증 및 연결정보를 변경할수 있습니다.

EDMX파일 생성이 완료되면 EF의 DATABASE First방식을 통해 오브젝트 관계맵핑 작업을 모두 완료한것이며  솔루션 빌드작업을 통해 프로그램에 반영작업을 마무리합니다..

TIP1)데이터베이스 테이블 구조가  변경된경우  EDMX파일에 적용하기 
-솔루션 탐색기에서 .edmx파일을 클릭하여 다이어그램이 나타나면 다이어그램에 존재하는 관련 테이블 모델객체를 선택하고
모델에서 삭제를 클릭하여  모델을  삭제합니다.
-다이어그램에 오른쪽 마우스 클릭 데이터베이스에서 모델 업데이트 항목을 클릭하여 변경된 테이블을 다시 선택하여 마침합니다.

TIP2)EDMX파일에  신규 테이블 추가하기
-솔루션 탐색기에서 .edmx파일을 클릭하여 다이어그램이 나타나면 다이어그램에 오른쪽 마우스 클릭 데이터베이스에서 모델 업데이트 항목을 클릭하여 추가된 테이블을 선택후 마침합니다.


EF를 이용해 .NET기반에서의  객체관계맵핑 환경구성하는 법을 알아보았습니다.
다음장에서는 EF를 통해 만들어진 데이터 모델 과 ORM환경을 이용해 Controller에서 DB프로그래밍하는 방법에 대해 알아보도록 하겠습니다.

감사합니다.





Comments

Leave a Reply

*