DA - 데이터 관점에서 업무 수행

DBA - DB 관점에서 업무 수행



[DA]

- 개발하려고 하는 업무 분석하여 Entity와 Attribute 추출 및 정의(전산화 대상 추출)

- ERD 작성

- 관계 설정

- 작성 문서 : Entity 정의서, ERD..


[DBA]

- 개발에 필요한 DB 설치, 관리

- DA가 만든 ERD로 부터 물리적인 테이블, Index, PK, FK 생성

- 개발자 교육 및 기술 자문(SQL 작성 관련)

- Data migration

- 작성 문서 : 설계서, 인덱스 정의서..



업무 시에 예로 들자면 

1. 변경 되는 사항은 DA가 먼저 모델에 반영을 하고 

2. 바뀐 모델로 DBA가 테이블 변경하고 

3. 프로그래머가 관련 프로그램 수정하는 

형태가 되겠네요. 



오늘 프로젝트에서 DBA의 업무에 대한 이슈가 있었습니다. 

DBA로 투입 되신 분께 신규 메뉴에 대한 Entity 추출 등을 요청 드렸는데(내가 요청 드린 건 아니고..)

이런 저런 이유로 철수 하면서 나온 철수 사유 중 

'분석하고 Entitiy 추출하는건 본인의 업무 롤이 아니다'라고 했다더라구요. 


그 얘기를 전해 듣고 그럼 DBA는 DB 튜닝하고 백업 정책 만드는 거 외에 

또 뭘 하는 위치인가...궁금증이 생겨서 검색 해 보니 DA라는게 나오네요. 


챙피하지만 전 처음 들은 용어. ㅡ,.ㅡ;;

검색 해 보니 우리가 몰라서 실수 한 것 같네요. 


그나저나 이 프로젝트는 어찌 되려나. 에혀..

(아 지금은 제가 DA, DBA 다 하는 중입니다. 으레히 그래 왔던 것 처럼 ㅜㅜ)







'Database > Common' 카테고리의 다른 글

Migration with MS Excel  (3) 2017.06.16

Data를 migration하는 것은 그리 유쾌한 작업이 아닙니다.

데이터를 분석하고 변환하여 옮기는 과정에 수차례의 실패를 각오해야 하는 신중한 작업이기 때문이죠. (사실 재미도 없습니다.)


많은 시스템에 자체적으로 제공한는 Import기능이 있지만,
저는 Excel을 이용하여 SQL구문을 만들고 이를 이용하여 데이터를 등록하는 방법을 선호합니다.


그 이유 중 하나는 실제 SQL구문을 실행한 뒤 에러가 발생했을 때, 이를 추적하기 쉽기 때문입니다.

또한, 추가적인 데이터를 등록할 때 재활용할 수 있는 점도 있습니다.



아래는 Oracle에 Insert할 때 사용했던 실제의 예제입니다.

=IF(L2="","NULL",CONCATENATE("TO_DATE('",TEXT(L2, "YYYY-MM-DD HH:mm:ss"),"','YYYY-MM-DD HH24:mi:ss')"))
=CONCATENATE(AL2," VALUES ('",A2,"','",B2,"','",C2,"','",D2,"');")


첫 번째 라인은 date 값을 column에 등록하기 위한 구문으로 변경하기 위해서 사용합니다.

두 번째 라인은 여러 cell의 값을 조합하여 실제 insert 구문을 만들기 위해서 사용합니다.


Datetime의 가공

Oracel의 경우 TO_DATE function으로 형변환이 필요합니다.

nullable column인 경우를 고려하여 값의 유무에 따른 분기처리가 또한 필요합니다.

Excel에서 date 값의 cell을 참조할 때 기본적으로 숫자로 취급하므로 이에 대한 방지 코드가 필요합니다.


IF

=IF({condition},{true case},{false case})

if function은 조건에 따른 분기 처리를 지원함. 위의 L2="", L2 cell이 empty인 경우를 의미하며 equal character가 하나인 것에 주의가 필요합니다.

TEXT

=TEXT({text},{format})

값의 포맷을 변경. 위의 TEXT(L2, "YYYY-MM-DD HH:mm:ss"), L2 값을 ToString() 처리합니다.


위 예의 결과는

TO_DATE('1980-06-26 00:00:00','YYYY-MM-DD HH24:mi:ss') 또는 NULL 이 됩니다.


Insert 구문의 작성

주로 INSERT ({columns}) VALUES ({values}); 구문의 {values} 쪽을 동적으로 작성하게 됩니다.


CONCATENATE

인자들을 combine하는 함수

=CONCATENATE(AL2," VALUES ('",A2,"','",B2,"','",C2,"','",D2,"');")

다만, 인자의 개수 및 길이에 제한이 있으므로 주의.

AL2는 static한 INSERT 구문이 있고 A2:D2까지의 값을 작은 따옴표로 감싸서 열거하였습니다.



※ H社의 Push 간 실제 작업에 활용한 결과물은 공용 drive에서 확인하세요.

'Database > Common' 카테고리의 다른 글

DA와 DBA의 업무 영역  (3) 2017.09.19

+ Recent posts