저자: 이춘식(『데이터베이스 설계와 구축』 저자)
꽝!! 하고 무너지는 소리가 있다.
당시 최고의 고가 상품을 자랑하던 삼품백화점이 무너진 소리였다.
무너진 성수대교 다리 위에 꽃다운 여고생을 태우고 가던 시내버스가 주저앉은 소리였다.
바로 교량의 기초공사가 부실했기 때문이었다.
이게 뭐야! 하루 종일 데이터베이스 다운에... 몇 번 시도해도 접속이 안되잖아! 안되겠군!
다른 사이트에 접속해야지!
우와! 내 돈 도대체 어떻게 된 거야! 결과도 안 나오고, 접속도 안 되고, 이 카드회사 도무지 거래 못하겠군! 다른 카드 사용해야지!
바로 잘못된 데이터베이스 구축이 낳은 결과이다.
부실 건축과 날림 공사에 대해서는 그 심각성을 공감하고 있지만 부실한 정보시스템에 대해서는 아직도 많은 사람들이 안전 불감증에 걸려있다. 실제로 모 카드회사는 몇 시간의 데이터베이스 다운현상으로 엄청난 손실을 보았으며 모 게임 사이트는 잦은 시스템다운 현상으로 회원들이 사이트방문을 포기하고 경쟁 사이트로 이동하는 현상을 그냥 바라만 보고 있어야 했다. 하나의 예를 더 들어보겠다. 실제로 모 회사는 데이터의 정합성이 흐뜨러져 개발한지 얼마 되지않은 시스템을 다시 엄청난 비용을 들여 재개발해야 했다. 가정이기는 하지만 잘못된 데이터관리로 인해 사형수가 잘못 선정되기라도 한다면 정말 끔찍한 일이 될 것이다.
21세기는 속도의 시대이다. 빛의 속도로 거래를 하는 요즈음, 조금이라도 성능이 저하된다고 하면 빠른 것을 좋아하는 현대 소비자들은 신속함을 찾아 떠나버린다. 필자가 지겹도록 위와 같은 예를 열거한 까닭은 불안정한 시스템이 곧바로 기업의 이윤과 연결되는 치명적인 이유가 되고 있기 때문이다. 그리고 불안정한 시스템 저변에는 항상 데이터베이스가 존재하고 있다.
수많은 기업들이 데이터베이스의 성능 향상을 위해 엄청난 사후비용까지 지불하면서 데이터베이스 성능을 튜닝하고 있다. 소 잃고 외양간 고치는 작업이라는 것을 왜 알면서도 하고있는지…… 데이터베이스의 성능저하로 인한 업무불편, 고객이탈, 추가비용발생을 방지하기 위해 그들은 날림공사의 대가를 혹독하게 치루고 있는 것이다.
이토록 데이터모델링 및 데이터베이스 설계와 구축이 중요함에도 불구하고 많은 사람들이 지금까지도 안전불감증에 머무르는 이유는 무엇일까? 개인적으로 필자는 "단지, 데이터베이스하면 어려울 것 같고, 정복될 것 같지 않고, 나와는 별로 상관이 없을 것 같은"이라는 데이터베이스에 대한 미신때문이라고 생각한다. 더 안타까운 사실은 실제로 데이터베이스를 아주 밀접하게 적용, 개발, 사용하고 있는 IT 정책수립자나 시스템개발자, 프로그래머, 시스템 사용자조차도 그렇게 생각한다는 것이다. 그렇지만 사실
실제 업무로부터 모델링을 하고 데이터베이스를 설계, 구축, 관리, 튜닝하는 일은 흥미롭고 정복할 만 하며, 확실하게 가치(업무적인 가치와 재정적인 가치) 있는 업무이다. IT종사자라면 IT를 이해하기 위해! IT를 주도하기 위해! IT의 전문가가 되기 위해! 반드시 업무로부터 데이터베이스를 설계하고 구축하는 방법에 대해 알고 있어야 한다고 필자는 생각한다. 따라서 데이터모델링, 데이터베이스설계, 데이터베이스구축에 대한 절차 등을 배우고 싶고 또 이를 실무에 적용하기를 원하는 사람에게 필자는 이 책을 추천한다. 단순한 이론서가 아닌 실무 내용이 포함되어 있어 실제 업무에서 데이터베이스를 구축하는 법을 자세하게 배울 수 있다.
이 책의 집필 배경에 대해 필자는 데이터베이스를 서문에서 다음과 같이 이야기 했다.
"...(중략)... 기하급수적으로 증가하는 정보를 인터넷 환경이나 휴대 컴퓨팅 환경(MOBILE)을 통해 어떻게 저장, 관리, 가공할 것인가의 문제가 정보화 기술에 중요한 관심사가 된 것이다.... 사실 해당 업무로부터 데이터베이스를 설계하고 구축하는 것은 전체 시스템을 구축하는 것과 별로 다를 게 없다. 그러나 데이터베이스가 시스템의 핵심을 영역을 차지하는 아주 중요한 요소임에도 정보화시스템을 구축하는 사람조차 애플리케이션을 구축하는 것보다 훨씬 관심이 적고 연구와 시간 및 비용을 투자하는데 인색하다." 필자는 정보화 시스템을 구축하는 실제 프로젝트 현장에서 경험한 모델링 및 데이터베이스 설계, 구축, 운영, 튜닝의 경험을 본서에 정리했다. 다시 한 번 강조하지만 단순히 이론을 정리한 내용이 아니므로 실무에서 데이터베이스를 설계 및 구축, 운영, 관리 하는 분들에게 유용하게 쓰일 수 있도록 만들었다. 그리고 아직 실무경험은 없을지라도 대학에서 데이터베이스와 관련된 프로젝트를 진행할 때 참고서적으로 활용할 수 있도록 내용을 구성하였다. 이론적인 구축 방법인 아닌 실제 구축절차가 어떻게 진행되는지 알 수 있도록 분석, 설계, 구축, 운영, 튜닝 까지...
이 책의 내용은 총 3부로 구성되어 있다.
제 1부에서는 논리적인 모델링에 대한 기본적인 방법과, 실제 프로젝트에서 수행하는 모델링의 방법 및 데이터모델링을 할 때 꼭 적용해야 할 모델링 방법에 대해 설명하였다. 아울러 프로세스 모델링과 상관모델링에 대해 간단하게 소개하여 데이터모델과의 관계를 설명하였다.
"예나 지금이나 건축할 때는 추에 실이 매달린 "다림줄" 이란 것을 이용한다. 이것은 건축물의 기울어짐을 방지하여 견고하게 건축하기 위한 기준에 해당되는 건축자제로 정보화시스템의 구축에서는 디지털화가 바로 이 "다림줄"과 같은 역할을 한다. 이것은 방법론에 해당되며 모든 정보시스템의 데이터베이스 구축은 효과적인 방법론에 효과적인 모델링을 진행할 때 견고한 시스템을 구축할 수 있다. 데이터베이스가 구축된다는 것은 어떤 방법론에 의해 사전에 업무분석, 설계가 이루어져 물리적으로 데이터베이스를 구축하는 방법으로 진행된다. 제1부에서는 정보화시스템을 구축하는 계획, 분석, 설계, 구축, 이행, 운영 단계 중 분석단계에서 진행되어야 할 작업에 대해 데이터베이스 설계 중심의 정보공학방법론을 기반으로 설명한다."
제 2부에서는 실제로 데이터베이스를 구축하기 위한 사전작업으로 무슨 일이 이루어지는지 무엇을 해야 하는지에 대해 단계적으로 설명하였다. 독자들 중에서도 데이터베이스를 구축하기 위해 사전에 무엇을 준비해야 하는지 궁금해 하는 분이 있을 것이다. 그러한 부분에 대해 제2부에서는 물리설계라는 주제로 설명하였다.
"설계단계에서는 데이터베이스의 종류와 DBMS를 결정한 상태에서 해당 DBMS에 적합한 설계를 한다. 그러므로 데이터베이스와 DBMS 제품이 결정된 상태에서 설계를 진행하므로 설계단계에서는 관련된 제품의 특성을 정확하게 알고 있어야 성능도 우수하고 관리도 편한 효과적인 데이터베이스를 설계할 수 있다. ...(중략)... 데이터베이스에 물리설계는 ERD의 테이블전환, 데이터베이스물리설계, 분산설계와 같이 크게 세 가지의 작업이 수행되어야 한다. ...(중략)... 첫 번째는 논리적인 모델인 ERD를 테이블 관계도(TABLE RELATIONSHIP DIAGRAM)로 전환한다. 테이블 관계도로 전환할 때 핵심적으로 검증할 부분은 데이터베이스의 성능 부분이다. 테이블의 정규화와 데이터베이스의 성능을 고려하여 테이블의 모습을 설계하는 것이 중요하다. 또한 입력, 수정, 삭제 시 데이터의 무결성을 유지를 위해 규칙을 정의한다. 두 번째는 테이블 관계 이외의 데이터베이스와 관련된 기타사항(오브젝트, 접근방법, 트랜잭션분석, 저장방법)을 설계한다. 인덱스(INDEX), 접근방법, 뷰(VIEW), 트랜잭션설계 등 논리적 데이터모델링에서 설계하지 않은 기타 데이터베이스와 관련된 사항을 설계한다. 세 번째 분산 데이터베이스를 설계한다. 데이터베이스를 작은 단위에서 사용하거나 통합 환경에서 이용하는 경우는... "
제 3부에서는 구축된 데이터베이스를 관리하고 튜닝 하는 방법에 대해서 간단하게 설명하였다. 전문적인 관리나 튜닝 책이 아니므로 자세한 설명은 하지 않았지만 실무적으로 처리해야 할 기본적인 내용은 모두 기술하여 독자가 참고하도록 하였다. 마지막으로 실제 인터넷 서점을 사례로 들어 실제데이터베이스를 구축하게끔 했는데 이는 독자가 워크샵을 진행하면서 데이터베이스 구축에 대한 감각을 익힐 기회가 될 것이라고 생각한다.
"일단 데이터베이스가 구축되면 정기적으로 데이터베이스를 관리해야 하고 성능향상을 위해 지속적으로 튜닝하고 관리해야 작업이 하는 발생한다. 이번 본문에서는 구축된 데이터베이스에 대해 성능을 위해 조정하는 방법과 데이터베이스를 운영하는 방법을 설명한다. 그리고 지금까지 설명한 모든 과정을 이용하여 인터넷 서점 업무에 대해 데이터베이스를 구축하는 실습을 함으로써 책을 읽는 독자로 하여금 실전에서 데이터베이스를 구축하는 방법을 알 수 있도록 하였다..."
필자는 현대 정보시스템을 구축하기 위해 필수적으로 이해하고 적용해야 할 데이터베이스를 실무적인 관점에서 설명하고자 노력했다. IT와 관련된 일을 하는 많은 분들에게 유용한 서적이 되기를 바란다.
마지막으로 이 책의 소개하고 있는 데이터베이스 구축절차에 대한 그림을 소개한다.
이 글을 써주신 이춘식씨는 『데이터베이스 설계와 구축』의 저자이십니다. 이른바 국내외 데이터베이스와 관련해 세계적으로 이름난 해외 정보 컨설턴트와 같이 일할 기회를 가지면서 현재 국내 IT업계 및 IT 종사자가 직면하고 있는 가장 시급한 과제는 업무를 분석하고 이를 형상하여 데이터베이스로 구축하는 방법에 대한 체계화 작업이라고 생각하시고 집필에까지 이르게 되었다고 합니다. 현재는 LG CNS(구 LG-EDS)의 기술연구부문 데이터아키텍쳐팀에서 근무하고 있습니다. 4년 정도 HDB와 RDB를 HOST와 UNIX, NT기반에서 애플리케이션을 운영, 설계, 구축하였으며 정보공학방법론과 OOAD를 이용하여 데이터베이스를 설계하고 구축하는 일을 하셨습니다. 또한 국내 초대형 프로젝트에서 통합 데이터 모델링과 데이터베이스 구축 및 관리 튜닝을 진행하셨으며 데이터베이스에 대해서는 폭넓은 경험을 가지고 계십니다.