모델링의 기본이 되는 도메인 사전의 작성을 위해서 DA#은 먼저 표준 단어를 등록해야 합니다. 


표준 단어를 바탕으로 표준 용어를 등록할 수 있기 때문 입니다.(이 부분이 쉬운 작업을 어렵게 만드는 요인 이기도 합니다.)


앞 강좌 에서는 적은 수의 용어를 등록 했지만, 본격적인 프로젝트에서는 보통 200개 이상의 용어를 사용하기에 일일이 등록 하기는 


효율이 떨어 집니다. 


그래서 오늘은 엑셀 파일로 표준 단어를 작성하고 DA#으로 불러들이는 방법을 설명하겠습니다.


---------------------------------------------


동영 상으로 대체 합니다.-----------------------


--------------------------------------------




저의 초간단 설계방법은 아래와 같습니다. 


1. 도메인(용어) 사전을 엑셀로 작성 합니다.

: 일단 어떤 업무 형태이 DB를 설계하는지에 대한 바향이 결정되면, 해당 업무에 필요한 속성들을 엑셀로 정리 합니다.

2. 도메인 사전 엑셀파일을 ERD툴에 입력 합니다.

3. 업무 흐름에 맞게 테이블을 생성하고 도메인을 테이블에 Drag & Drop 합니다.

4. 정규화를 진행 합니다. 

5. 관계선을 그립니다.

6. 진행에 맞춰 테이블을 수정해 갑니다.


오늘은 DA#을 이용하여 초 간단 DB 설계에 대해서 설명하겠습니다.


* 먼저 DA#을 실행 합니다 



* 상단의 데이터 / 사전 을 클릭하여 DA Worict 프로그램을 실행 합니다.




* DB연결 을 클릭하고 "AR 데이터베이스 접속" 화면에서 프로그램 설치시 제공되는 샘들 db파일을 연결 합니다. 

 파일명은 아래와 같습니다.




* 표준 분류 체계 관리 버튼을 클릭하고 내가 사용할 새로운 부류체계를 등록 합니다.




*내가 만든 표준분류체게 를 선택 합니다.                                                                                                                                                                                                                                                                                                                                                                                                                        



* 용어 만 테이블의 속성명 으로 사용 가능 합니다.

* 용어는 단어들의 결합으로 이루어 집니다.

* 용어에는 데이터 형이 설정되어 있기 않기 때문에 용어에 도메인을 등록하여 데이터 타입을 설정 합니다. 


* 추후 용어 등록의 편의성을 위해   분류어: 엔터티, 속성 에는 반듯이 체크 표시를 한니다.

* 중복 확인을 완료하고 등록 버튼을 눌러 단어들을 등록 합니다.


* 단어 등록이 완료 되었으면 , 용어등록 버튼을 눌러 용어 등록을 시작 합니다.

* 등록한 용어를 검색명 에 입력 후 검색 버튼을 누르면, 해당 용어를 이루는 최소한의 단어 목록을 표시 합니다.

* 도메인의 조회/추가 버튼을 눌러 적절한 도메인을 등록 및 선택 합니다.



* 알맞은 도메인이 없다면 새로운 도메인을 등록 합니다. 



** 이로서 테이블에 끌어다 놓을 수 있는 용어 사전이 작성 완료 되었습니다.

* DA Wordict을 종료하여 변경 사항을 DB에 반영 합니다.



* 이제 DA ModelerS 프로그램에서 새로운 모델을 등록한 후 AR연결을 수행하고 "분류체계 선택"을 통해 내가 만든 분류 체계를 선택 합니다.



* 엔터티 를 생성한 후 우측의 "표준 관리" 의 용어를 끌어다 엔터티에 추가합니다. 



** 이로서 가장 간단하게 데이블을 생성할수 있는 방법을 설명 드렸습니다.


위 내용에 대하여 동영상으로도 게시하였습니다. 



건의사항 있으시면 언제든 덧글로 알려 주시길 바랍니다. ^^
























엔코아 컨설팅에서 만든 ERD Tool 인 DA# 이 어느덧 5 까지 왔네요.

DA#  의 발자취 입니다. 벌써 12년이나 되었네요. 

제 DBA 인생을 밝혀준 조광원님 께서 계셨던 곳이 엔코아 였기 때문에 호기심으로 출시되자 마자 다운받아 사용해 보았습니다. 

하지만 ER-Win 에 익숙한 저에게는 익숙함을 넘어설 만큼 큰 기능은 없었기에 맛만 보고 스킵.


DA#5의 베타테스터 모집 소식에 냉큼 참가 신청을 하였습니다. -뽑힐줄 몰랐는데..

이 사회자 분을 3번 정도 보는것 같은데 .. 볼때마다 느끼는 거지만 진행을 참~ 조리있게 잘 ~ 합니다.

세미나 자료는 첨부하였으니 살펴 보시면 좋을것 같고,


DA#5 모델링 툴이긴 하지만 기존 ER Win / ER Studio 와 는 방향이 다른 툴이다.

모델링 툴이라고 하기에는 부가적인 기능이 50% 이상을 차지하고 있다.

ER Win / ER Studio가 DA 만을 위한 툴 이라고 한다면, DA#5 는 Database 와 연관된 모든 사람들이 사용할 수 있는 사용하면 좋을 툴 이라고 하겠다.


개인적으로는 너무 많은것을 담으려고 했다는 느낌에 어지럼증이 느껴지도 했지만. 후반부 발표부터 참석자들 로 부터 함성도 들리는걸 보면 

다른 분들은 만족하는 듯 하다.

전체적으로 기능들을 서열정리 좀 하고 배치좀 바꾸고 , 그렇게 정리만 조금 하면 꽤 괜찮은 툴이 될것 같기는 하다.


요건 세미나 끝나고 선물로 받은 마우스+키보드 셋 , 점심도 챙겨줬으나 세미나 후반부에 밀려온 멀미 때문에 식사는 패스

엔코아에서 주최하는 세미나에 가끔 참가 하는데, 매 행사마다 아끼지 않고 준비해주는 모습이 매번 다시 참석하게 만든다.


마지막으로 ... DA# 개발팀에게 바라는게 있다면, 더이상의 기능 추가는 당분간은 없었으면 한다.

물론 기능추가의 장본인이 개발팀은 아니고 .. [옹] 님 이겠지만. 

얼마전 면접을 보다가, 아래 그림과 같은 데이터 구조에서의 탐색 방법에 대한 DB 설계 및 쿼리 작성을 하시오 라는 질문에

최적의 답변을 하지 못해. 집에 와서 테스트 하였다.

 

질문의 핵심은 특정 node 를 선택했을때, 최상위 부모까지 올라가는 흐름을 한줄로 표현하는 것이었다.

 

ex) 그림20 > 그림17 > 그림13 > 그림10 > 그림9 > 그림3 > 그림1

 

데이터의 구조는 아래와 같다.


테이블로 옮기면,


일반적인 재귀호출 용 테이블의 구조가 된다. 여기에 아래 쿼리를 실행하면 


1
2
3
4
5
6
7
8
9
set @id := 26;        -- node id
set @L := 0;
 
 
SELECT @r AS _ID
    , (SELECT @r := pid FROM t_test WHERE id = _ID) AS _PARENT_ID
    , (@L := @L + 1) AS level
FROM ( SELECT @r := @id) AS vars, (SELECT * FROM t_test WHERE id < @id) AS h
WHERE @r <> 0;
cs


그림과 같이 우리가 원하는 결과를 얻을 수 있다.

약간만 수정하면 두루 두루 쓸모가 많을것 같다.

이래서 실무자 면접은 참 재미있는것 같다. 내 실력을 평가받는 자리도 되고 그로인해 공부도 되고.




---------------------------------------------------------- ID , PID 가 문자형인경우 ----------------------------------------------------------

ID , PID 문자형일 경우 어떻게 수정해야 하는지에 대한 문의가 있어 관련 내용 공유 드립니다.

위 데이터에서 각 컬럼을 문자형으로 변경 후 앞에 a를 붙여 a1, a2, a3 형식으로 변경 하였습니다.


1
2
3
4
5
6
7
8
9
set @id := 'a26';         -- node id
set @L := 0;              -- level 컬럼의 시작 값, 0 입력시 1부터 1씩 증가된 값이 표시 됨
 
SELECT @r AS _ID
    , (SELECT @r := pid FROM t_test WHERE id = @r limit 1) AS _PARENT_ID
    , (@L := @L + 1) AS level
FROM ( SELECT @r := @id) AS vars, (SELECT * FROM t_test WHERE id != @id) AS h
WHERE @r <> 'a0';          -- > root node를 만나면 탐색을 중지하기 위함
-- WHERE @r <> '-';        -- > null 이 아닌 임이의 값 (예 : '-') 입력
cs


출력 결과 : 


MSSQL 로 구현하면 >> https://devse.tistory.com/69



2015년 AD Mob과 같은 광고 솔루션을 개발하면서 유여곡절 끝에 수행한 테스트 입니다.


서버 및 DB 개발이 완료되고 급하게 실제 모바일 게임(1000만 다운로드)에서 테스트를 겸하여 적용한 시점부터

Node.js 가 하수들 이나 쓰는 허접한 기술 이라며  까기 시작했고 Node.js 가 현재 우리의 급 에서는 적정 기술임을

어필 하였지만 결국 들어먹지는 아니하였다.

그 와중에 Node.js 의 고성능을 확인시켜 주기 위해 실제 환경에서 테스트를 진행 하였다.


구조는 아래와 같다.

본인은 테스트를 진행할 때 서버 상태정보와 DB 상태정보 등을 동영상으로 촬영하여 분석 및 보관하는것을 좋아한다.

두고 두고 보면서 각 서버들의 상태를 비교하여 병목지점을 찾는것에도 유용하게 쓰인다.


https://www.microsoft.com/ko-kr/download/details.aspx?id=42299  << 로그인 없이 다운로드 가능

구글이나 네이버에서 검색하면 대부분 로그인을 해야하는 곳으로 안내한다. 



SQLEXPRADV 라고 되어있는 것이 Management Studio  가 함께 설치되는 파일이다. 

https://www.microsoft.com/ko-kr/download/details.aspx?id=42299  다운로그 경로 다시한번.


삭제시 에는


Microsoft SQL Server 2014(64비트) 를 클릭하여 삭제를 진행 합니다.




+ Recent posts