Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

ERWin에서 Domain 사용하기

ERWin에서 Domains사용에 대해서 써보려고 한다. 이미 한 프로젝트에서 사용하는 걸 봤구 지금 하는 거에서 내가 직접 만들어서 사용해 보고 있는데 확 편한지는 약간 아리까리 하지만 일단 쓰라니까 좋겠지~ 하면서 쓰고 있다.

ERWin Domains

ERWin에서 왼쪽의 메뉴를 보면 Domains라는게 있고 그걸 열어보면 보통 모델링을 하고 데이터타입을 정할때 골라주는 몇가지의 기본 타입들이 속해 있다. 대충 감이 오겠지만 MS SQL의 관점에서 얘기하자만 이 Domains라는게 "사용자 정의 데이터 형식"이다. 특정 데이터형식을 임의로 정해 놓고 그걸 사용하는 것이다.

ERWin Domains Properties

Domains에서 마우스 우클릭을 하여 Properties에 들어간다.

사용자 삽입 이미지

Domain Dictionary 창이 뜬다. 새로운 도메인을 만들 것이므로 New를 눌러준다.

사용자 삽입 이미지

Blob, Datetime, Number, String 4가지가 기본적인 타입이므로 이들중 하나를 선택해 주고 Logical / Physical Name을 모두 적어준다. 당연히 Physical은 영문으로 적어주어야 겠지... OK를 눌러서 빠져나온다.

사용자 삽입 이미지

세부적인 데이터형식을 정해주어야 하므로 Edit Mode를 Physical로 바꾸어 주고 SQL Server 탬에 들어가서 보통 모델링을 할때 칼럼의 데이터형식을 정해줄때처럼 데이터형식을 골라준다. 여기에 나오는 것은 만들때 정해준 데이터형식의 하위타입들만 나온다.(Number를 선택했으면 Number관련타입들만 나타난다.)

여기서 평상시 데이터 타입 정해줄 때처럼 데이터타입을 정해주고 크기가 필요하면 크기도 정해준다. 그리고 NULL여부나 자동증가값인 경우에는 IDENTITY에 1, 1 과 같이 적어준다.

사용자 삽입 이미지

이렇게 필요한 도메인들을 죽~ 만들어 준다음에 컬럼에서 내가 만든 도메인을 선택해 주면 된다.

이렇게 도메인은 사용할 때의 이점은 비슷한 데이터타입을 여러군데 쓰는 경우가 많기 때문에 일일이 정해주지 않고 도메인을 만들고 컬럼에선 도메인만 선택해 주면 되고 크기등 변경을 해야할 때 도메인만 바꾸어 지면 해당 도메일을 사용하는 컬럼의 데이터형식을 일괄적으로 바꾸어 줄수 있다.

단점이라면 내가 만든 디비가 아니면 이해하는데 좀 헷갈린다는 것 정도?


덧) 약간의 유의점이라면 자동증가값 같은 경우 IDENTITY에 1,1등으로 설정해 주고 관계를 연결해 주면 다른 테이블의 FK로 들어가게 되는데 그 테이블에서도 자동증가값 PK를 사용하는 경우 한테이블에 자동증가값이 2개가 생겨서 sql쿼리를 실행할때 오류가 뜨게 된다. 다 만든 다음에 FK로 들어간 자동증가값들은 일일이 자동증가값을 지워주면 된다.(원래의 PK였던 자동증가값에는 영향이 없다.)

덧) 당연한 얘기인듯 하지만(난 몰랐어서...) Reserved Word는 도메인 네임으로 사용할 수 없다. 내가 걸렸던건, user, group, content 등....
2007/10/29 01:14 2007/10/29 01:14

ERWin 모델링하기전에 설정하기

ERWin을 멸달전에 프로젝트 할때 처음 만져보고는 그 뒤로는 남이 만든거 보거나 사용만 하다가 오랜만에 다시 만지려니까 엄청 해맸다. 멀 했던것 같은데 왜 이렇게 기억이 안나는지.. ㅎㅎ

ERWin으로 디비모델링을 하면 처음 설치했을 때는 아래처럼 나온다.

ERWin

얼핏 보면 별 문제 없어보이지만 우리가 사용하는 보통의 ERWin에서는 관계표시가 저렇게 안나온다는 것이 문제이지... 메뉴가 복잡해서 찾기가 만만치 않더라...

ERWing Menu

[Model] - [Model Properties...]에 들어가면 된다.

ERWing Model Properties

처음 ERWin을 설치하면 둘다 IDEF1X로 설정되어 있기 때문에 맨위의 화면처럼 관계가 표시된다. 하지만 우리가 오라클이나 MS SQL에서 사용하는 노테이션은 IE (Information Engineering) 이다. 보통은 로지컬/피지컬을 모두 사용하므로 둘다 IE로 설정한다.

ERWin

그렇게 하면 관계가 익숙한 형태로 바뀐다. 관계를 설정했을 때 FK를 PK로 사용하지 않으려면 관계를 Non-Identifying Relationship으로 설정하면 된다.


덧) 테이블의 모서리가 둥글게 표시되는 건 다른 테이블의 하위에 속했다는 표시이다.
2007/10/29 00:12 2007/10/29 00:12