전문가칼럼

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

김기창의 데이터 모델링 강의 (1회) : 왜 모델링 강의인가

전문가칼럼
DBMS별 분류
Etc
작성자
dataonair
작성일
2017-08-11 00:00
조회
13510




◎ 연재기사 ◎


김기창의 데이터 모델링 강의 (1회) : 왜 모델링 강의인가


김기창의 데이터 모델링 강의 (2회) : 엔터티 설계의 첫 관문, 실체 엔터티


김기창의 데이터 모델링 강의 (3회) : 식별자 상속의 시발점, 종속 엔터티


김기창의 데이터 모델링 강의 (4회) : 모델링의 꽃, 데이터 정규화


김기창의 데이터 모델링 강의 (5회) : 식별자: 업무 식별자와 인조 식별자, 주 식별자(상)


김기창의 데이터 모델링 강의(6회) : 식별자: 업무 식별자와 인조 식별자, 주 식별자(하)


김기창의 데이터 모델링 강의(7회) : 단순해 보이는 관계의 실제 정의


김기창의 데이터 모델링 강의(8회) : 변경 이력이냐, 발생 내역이냐


김기창의 데이터 모델링 강의(9회) : 하산하는 과정, 비정규화


김기창의 데이터 모델링 강의(10회) : 정답 같은 모델을 향해, 모델링 방법론과 리모델링


김기창의 데이터 모델링 강의(12회) : 개념 모델인가, 개념도인가


김기창의 데이터 모델링 강의(11회) : 데이터 아키텍처의 꼭지점인 주제 영역을 구축하자


김기창의 데이터 모델링 강의(13회) : 서브타입 모델을 설계하는 방법


김기창의 데이터 모델링 강의(14회) : 서브타입 모델에 대한 오해


김기창의 데이터 모델링 강의(15회) : 표준화의 최전선에 위치한 모델러


김기창의 데이터 모델링 강의(16회) : 표준화의 최전선에 위치한 모델러(하)



김기창의 데이터 모델링 강의 (1회)

왜 모델링 강의인가



[필자 소개]
김기창은 데이터 분야에 15년 이상 종사하며 데이터 모델링과 DA(Data Architecture) 컨설팅을 하고 있다. 특별히 풍부한 실전을 바탕으로 데이터 모델링을 직접 수행하는 것이 강점이다. 저서로는 [데이터베이스 활용을 위한 SQL Server 2000], [관계형 데이터 모델링 프리미엄 가이드], [관계형 데이터 노트]가 있으며, 2007년에는 [전사적 데이터 아키텍처 프레임웍에 대한 개념모델 개발] 논문을 발표했다. 모델러가 기업에게 제공할 최고의 가치는 좋은 모델을 제공하는 것이라고 생각하고 있다. 소명을 갖고 많은 기업에서 진짜 모델이 운영되는 것을 꿈꾸고 있으며, 그런 모델을 설계하는 진짜 모델러가 많아질 수 있도록 노력하고 있다.



이번 연재의 제목이 ‘데이터 모델링 강의’입니다. 모델링과 관련된 글이라는 건 바로 아실테지요. 그럼 왜 강의인지에 대해서는 설명이 필요할 거 같습니다.

우선 제가 좋아하는 고 신영복 교수님의 책 [강의]에서 영감을 얻었다는 것을 고백해야겠습니다. 그 책을 본 후로 ‘나도 이런 책을 쓰고 싶다’는 생각을 품어 왔습니다.

column_img_2935.jpg

신영복의 [강의] (사진: 돌베개)

또 다른 이유는 글로라도 ‘명강’을 하고 싶기 때문입니다. 제 이름을 앞세워 처음 강의장에 섰을 때의 떨림이 아직도 생생합니다. 저는 소위 숫기가 없습니디. 다른 조용한 사람들처럼 학창시절만 그랬던 것도 아닙니다. 불혹이 넘고, 중요 직책을 맡고, 어느 정도 알려져서도 마찬가지였습니다. 여러 사람 앞에 서서 말하는 걸 상상한 지도 얼마 안 되었습니다.

호소력이나 순발력이 좋아 보이지 않지만, 수강생들 앞에서 강의를 하고 있습니다. 오랜 실무 경험과 고민의 과정을 거쳐 얻은 지식은 제대로 전달할 수 있겠다는 용기로 하고 있는 것이지요. 반문을 통해 상대의 모르는 지점을 잘 알아내는 편입니다. 상대가 어느 점을 이해 못하는지를 파악하면 이해시키기도 쉽습니다.



중요함에도 잘 알려지지 않은 것들을 찾아

여담이지만 소크라테스가 죽은 이유는 ‘반문’ 때문이었다고 생각합니다. 대화 상대와 묻고 답하는 과정에서 많은 것을 얻을 수 있다고 봅니다. 그래서 어느 정도 적()이 생기더라도 반문을 합니다. 언젠가부터 생긴 ‘후진을 양성해야겠다’는 사명감도 ‘어떻게든’ 강의를 하는 중요한 이유 가운데 하나입니다. 조금은 당돌한 바람일지 모르지만, 제가 받은 달란트를 땅속에 묻어놓고 아무 것도 하지 않음은 제게 달란트를 주신 분의 뜻이 아니라는 것을 느낍니다. 하지만 실제 강의를 멋들어지게 한다는 건 언감생심(焉敢生心)이지요. 명강을 할 수 있는 방법을 발견한 게 바로 이번 연재입니다. 이번 연재가 명강이 되길 희망해 봅니다.

이번 강의에는 특정 주제를 하나씩 정해 종합적으로 다룰 예정입니다. 찾아보기 쉽고 이해하기 쉽게 써야 하는 단행본 목차 체계와는 다르게 약간 긴 호흡의 글이 될 것입니다. 자아도취에 빠져 너무 길어지지 않을까 이미 우려하고 있습니다. 이번 강의는 20회 이내로 예상하고 있습니다. 중요함에도 잘 알려지지 않은 것들을 독자들과 나눔으로써 널리 알리고 싶고요. 실제와 다르게 잘못 알려진 것들에 대해서도 이 기회에 여러분과 의견을 나누고 싶습니다. 독자 여러분의 참여가 무엇보다 큰 힘이 될 것입니다. 신영복 교수님이 [강의]에서 강조한 담론(談論)이 이 강의 후에 생겼으면 좋겠습니다. 모델링 이론에 국한돼도 좋고, 직업관이나 사명감, 소명 등 따뜻한 담론으로 이어지길 기대합니다. 어쨌든 훌륭한 데이터 모델러가 늘어났으면 좋겠습니다. 이게 바로 이번 강의의 실제 목적입니다.



모델링, 그 깨달음의 순간

실체(實體) 엔터티를 이 연재에서 자세히 다루겠습니다만, 그 전에 제가 모델링에 눈을 떴다고 생각한 순간 세 가지를 소개해야겠습니다. 흔히들 터닝포인트(Turning Point)라고 하지요. 눈치 채셨겠지만 실체 엔터티도 그 중에 하나입니다. 나머지 두 개는 관계가 속성이라는 것을 안 순간, 그리고 제 모델링 이론에 수학의 집합 개념이 접목됐을 때를 스스로 전환점으로 봅니다

실체를 구분하기 시작하면서 제가 설계한 모델이 튼튼해졌습니다. 스스로는 빌딩 네 귀퉁이에 철재빔을 박아 놓은 것과 같이 든든했습니다. 이 느낌이 좋아서 만병통치약을 선전하는 약장수처럼 실체 엔터티를 얘기하고 있습니다. 이번 강의를 기획할 즈음에 첫 번째 소재를 선정하는 작업은 채 1분도 걸리지 않았습니다. 그러고 보면 실체 엔터티는 제가 설계한 모델에서뿐만 아니라 제 글에서도 철재빔 역할을 하는 셈입니다. 시작이 반이라는데, 절반을 해결해 준 고마운 존재이죠.

궁금해하실 분이 있을 듯 하여 제가 모델링에 눈을 뜬 나머지 두 계기도 간략히 소개하겠습니다.
‘관계(Relationship)가 속성(Attribute)’이라는 것을 안 순간의 충격은 12년이 다 돼 가는데도 생생하기만 합니다. 번개를 맞은 느낌이었습니다. 글로 표현하기 힘들 정도로 강렬했습니다. 깨달음의 순간이었다는 표현밖에는 떠오르지 않습니다. 원효대사가 눈을 뜨고 보니 해골 바가지였음을 알게 된 순간이었다면 너무 지나칠까요^~^ 그후로 ‘관계’라는 상대에 대한 자신감이 생겼습니다. 상대를 안다고 생각하니 대하기가 쉬워진 거죠. 그전에는 관계가 존재하지 않는 것일 수도 있다고 생각했습니다. 관계선을 표현하지 않아도 되기에 은연 중에 그렇게 생각했던 거 같습니다. 나름 모델링에 자신이 있었습니다. 그럼에도 관계선이 없어도 관계 속성은 있다는 걸 인식하지 못하고 있었던 거죠. 그후로 관계 엔터티도 자연스럽게 이해가 됐고, 관계에 대한 두려움이 사라졌습니다. 속성으로 명확히 보이니 두려움이 없어진 것이죠. 모델링에 눈을 뜨게 한 마지막 주제는 수학의 집합 개념입니다. 집합 개념을 제 이론에 접목시킨 후에는 스스로의 이론이 더욱 확고해졌습니다. 결론은 잘 알고 있었지만, 근거가 명확하지 않아 뭔가 찜찜한 부분이 있었는데 그게 해소된 것이죠.



집합을 데이터 모델링과 접목

첫 책인 [모델링 프리미엄 가이드]를 쓰고 나서 책을 쉽게 다시 써 줬으면 하는 요청을 몇번씩 받았습니다. 하지만 같은 내용을 쉽게만 쓰는 건 변화가 없는 거 같아 실행을 못 하고 있었습니다. 그렇게 지내다 문득 든 생각이 바로 ‘집합’이었습니다. 관계형 모델링이 집합과 깊이 연관돼있다는 건 알고 있었지만, 이론적으로만 알고 있었습니다. 피상적으로 알고 있었던 거죠. 그래서 집합을 모델링과 접목해야겠다는 나름의 과업을 선정했습니다. 집합 책 몇 권을 뒤적이다 운명적으로 발견한 사람이 칸토어(Cantor)입니다. 집합의 창시자가 정의한 집합의 정의는 놀랄만큼 엔터티의 정의와 유사했습니다. 흔히 말하는 싱크로율이 90퍼센트는 된 것이죠.

column_img_2936.jpg

독일의 수학자 게오르크 칸토어(사진: 위키백과)

바로 책을 다시 쓰기 시작했습니다. ‘우리의 직관 또는 사고의 대상으로서 확정되어 있고, 서로 명확히 구별되는 것들의 모임’이라는 첫 문장이 정해진 것이죠. ‘행복한 가정은 모두 고만고만하지만 무릇 불행한 가정은 나름나름으로 불행하다’는 [안나 카레니나]의 첫 문장에 비할 바는 아니겠지만, 제 스스로는 그에 못지 않은 의미를 부여하고 있습니다.



깨달음

이렇게 해서 나온 [관계영됐습니다. 하지만 집합 개념이 책에 많은 변화를 가져온 것은 아닙니다. 이미 이전 책에서도 반영됐기 때문이죠. 다만 ‘모델링이 집합 이론을 기반으로 이루어졌다’는 확신을 확인하는 계기가 됐다는 데 의미가 있었습니다. 확신이라는 불씨에 기름을 부은 격입니다. 과업이 완성된 것입니다.

집합 개념을 반영하여 더 쉽게 쓸 생각이었지만, 쓰는 내내 쉽다고 느껴진 적이 한 번도 없었습니다. 유사한 내용이지만 더 쉽게 쓰겠다는 의도는 실패한 셈이죠. 아예 전문가용으로 써야겠다고 결정하기까지 오래 걸리지 않았습니다. 더 쉬운 책으로 바꿔보고 싶다는 바람은 이루지 못했지만 후회는 없습니다. 모델링 이론서를 더 이상 상세한 내용으로 쓸 자신이 없으니, 마침표를 찍게 해준 것입니다. [관계형 데이터 모델링 노트]가 부족한 부분이 있다는 사실은 독자들도 이미 알고 있을 것입니다. 다만 집합 개념을 접목해서 어딘가 체한 것 같은 답답함을 씻어주었으니 저로서는 만족합니다.

이상으로 나름대로 깨달음이 있었던 지점을 순차적으로 소개했습니다. 욕심입니다만 이번 ‘강의’ 연재를 보고 여러분도 저와 비슷한 깨달음을 경험하셨으면 좋겠습니다. 다음회에는 이 연재의 첫 번째 주제인 ‘엔터티 설계의 첫 관문, 실체 엔터티’로 여러분을 찾아가겠습니다. (다음회에 계속)