개발 이야기/ORM2012. 4. 15. 12:29

Database-First VS Model-First

이번에 알아 볼 내용은 EDM(Entity Data Model)입니다. Entity Framework 4.0 기능에서 Model-First 지원이 있었는데요기존 버전과의 차이와 해당 기능에 대해서 자세히 살펴보는 시간이 되겠습니다이제 떠나보지요~~~ 후훗

 

Database-First

이전 버전의 방식으로 데이터베이스 개체들을 엔티티화하는 것으로 실제로 존재하는 개체들 즉, Database 기반의 데이터 모델이라고 보시면 됩니다. Visual Studio에서 간단한 프로젝트를 생성하시고 프로젝트에서 Item 항목을 추가해보겠습니다. Item에서"ADO.NET Entity Data Model"을 선택해주세요.

 

4_1.JPG

[그림 4-1] 항목 선택

 

추가하면 다음과 같은 화면이 나오는데 “Next”를 클릭합니다.

 4_2.JPG

[그림 4-2] EDM 마법사

 

연결정보를 선택하고 App.Config에 들어가는 연결명을 기입해주세요Default 값을 사용하셔도 됩니다. ConnectionString 설정 값입니다.

 4_3.JPG

[그림 4-3] 데이터베이스 연결 설정

 

가져올 데이터베이스 개체들을 선택하시고 모델 네임스페이스명을 기입해주세요그리고 완료!!

 4_4.JPG

[그림 4-4] 개체 선택

 

보시다시피 데이터베이스 개체들 기준의 엔티티들이 자동으로 생성되었습니다야호!!!!!!

 4_5.JPG

[그림 4-5] EDM

 

엔티티를 하나 선택하시고 마우스 오른쪽버튼을 클릭해서 “Table Mapping” 메뉴를 선택하시면 엔티티 상세정보가 출력됩니다.엔티티와 실제 DB 개체관의 관계도 표현이 되고요^^

 4_6.JPG

[그림 4-6] 테이블 매핑

 

추가로 View 메뉴에서  “Entity Data Model Browser”를 클릭하면 모델의 엔티티들을 볼 수 있다.

 4_8.JPG

[그림 4-7]  > EDM 브라우저

 

엔티티는 모델에 정의된 객체들입니다연계(Association)는 두 엔티티간의 관계입니다. EDMX의 객체들이 트리뷰로 출력됩니다.

 4_9.JPG

[그림 4-8] Entity Data Model Browser

지금까지 데이터베이스 기준의 모델을 생성하는 것을 확인하였습니다물리적 개체에서 논리적 모델로 표현되는 것입니다이를Database-First라고 합니다.

 

 

Model-First

다음은 모델 우선입니다ㅋㅋ 해석하니 모델 우선인데 좀 웃기네요데이터 모델링을 해보셨다면 아시겠지만 보통 개념모델 è논리모델 è 물리모델 순으로 진행됩니다이전 버전의 엔티티 프레임워크는 어쩜 거꾸로였죠ㅋ 엔티티 프레임워크 4.0에서는 개념 모델링 후 저장소에 개체들을 생성할 수 있는 기능이 추가되었다또 시작해보죠!

“ADO.NET Entity Data Model” 항목을 추가해주세요

 4_10.JPG

[그림 4-9] 항목 선택

 

빈 모델을 선택하고 완료버튼 클릭!

 4_11.JPG

[그림 4-10] EDM 마법사

 

다음 화면처럼 빈화면이 나옵니다. Toolbar를 보면 엔티티를 그릴 수 있는 도구들이 있는데요위부분에서 언급했지만 한번 더엔티티는 모델에 정의된 객체들이고 연계(Association)는 두 엔티티간의 관계입니다상속(Inheritance)은 두 엔티티간의 상속관계를 표현할 경우 사용됩니다.

 4_12.JPG

[그림 4-11] 빈 모델

 

도구들을 이용해서 엔티티 하나를 그려보겠습니다엔티티를 그리고 마우스 오른쪽을 클릭해서 속성 하나를 추가해보겠습니다.

 4_13.JPG

[그림 4-12] 엔티티 속성 추가

 

모델링 된 엔티티를 데이터 저장소에 생성해보겠습니다마찬가지로 마우스 오른쪽을 클릭해서 “Generate Database from Model…”을 선택하면

 4_14.JPG

[그림 4-13] 모델 자동 생성

 

데이터 저장소를 설정하는 화면이 출력됩니다적당한 값을 선택하고 “Next”을 클릭해주세요.

 4_15.JPG

[그림 4-14] 데이터베이스 연결 설정

 

데이터베이스 개체 구조를 정의한 DDL(Data Definition Language)이 생성됩니다.

 4_16.JPG

[그림 4-15] DDL 생성

 

완료를 클릭하면 스크립트가 화면에 출력됩니다.

 4_17.JPG

[그림 4-16] 스크립트

 

SQL 스크립트를 실행해보겠습니다.

 4_18.JPG

[그림 4-17] 스크립트 실행

 

아래 메세지 보니 성공적으로 완료되었네요^^ 실제로 생성되었는지 데이터베이스를 확인해보겠습니다.

 4_19.JPG

[그림 4-18] 스크립트 실행 결과

 

오호생성되었네요~

 4_20.JPG

[그림 4-19] 데이터베이스

개념 모델 이후에 저장소에 개체를 생성하는 방법을 Model-First이라고 합니다.

 

오늘은 이렇게 Database-First Model-First에 대해서 알아봤습니다.^^ 긴 글 끝까지 읽어주셔서 감사합니다



sqler에 아티클 작성 했던것을 공유합니다.

출처 : http://www.sqler.com/391510


Posted by 사나에