Outsider's Dev Story

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

쿼리분석기 개체브라우저 사용하기

역시 무식하면 몸이 고생이다.. ㅋㅋㅋㅋ

쿼리를 쓸 때 간단한 거 정도는 코딩하면서 바로 입력할 수도 있겠지만 대개는 쿼리분석기에서 돌려보고 적는다. 근데 회사에서 듀얼모니터를 쓰는 것도 아니고 컬럼이름이 id, name, num등으로만 가면 아주 행복했지만 article_id, user_email등등 좀 길거나 내가 만든 DB가 아니라면 항상 컬럼 이름은 헷갈리는 일이다. 스펠링 하나만 틀려도 에러나고..

그동안은 엔터프라이즈 메니저를 띄어놓고 쿼리분석기를 약간 작게 띄어놓고 보면서 적던가 그렇지 않으면 오타를 좀 줄일라고 테이블 디자인보기 해놓고 컬럼이름을 복사하다가 일일이 붙히곤 했다.

그런데!!!

사용자 삽입 이미지

쿼리분석기 왼편에 이런게 달려있었다. 맨날쓰면서도 먼지 자세히 보지도 않았으니 이거야 원... ㅡ..ㅡ

사용자 삽입 이미지

사용할 데이터베이스의 사용자 테이블을 열면 내가 사용할 테이블의 컬럼들이 죽~ 나온다. 속성까지....

쿼리를 작성하면서 개체분석기에서 해달 컬럽을 마우스로 Drag & Drop으로 쿼리문 가운데 원하는 위치에 던져놓으면 자동으로 쿼리값이 입력된다. 테이블명도..(테이블은 저기 나온대로 dbo.까지 들어가긴 하지만...)

이번 프로젝트 같은 경우에는 내가 만든 부분에 컬럼이 조낸 많아가지고 일일이 하느라고 겁나 빡셌는데.... 이런 방법이 있었을 줄이야...
2007/11/04 01:31 2007/11/04 01:31

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