제목 | DB설계, 데이터이관, SQL튜닝의뢰 가능합니다 | ||
---|---|---|---|
작성일자 | 2021.02.14 | ||
안녕하세요.
모든 DB설계 및 구축, 이관, 튜닝 가능합니다.
어려운 용어는 최대한 빼고 쉽게 이 글을 작성해 보겠습니다. 전산시스템을 구축하기 위해서 그 기반이 되는 데이터베이스 설계는 정말 중요하죠. 설계자 즉, 데이터베이스 모델러는 건물의 뼈대를 설계하는 설계자와도 같습니다. 건물은 완공후에도 오랜기간 안전하고 튼튼하게 유지되어야 할뿐만 아니라 원래의 상태와 기능을 유지해 주어야 합니다.
DB설계와 구축에도 그 절차와 전문적인 모델링 기법이 명확히 존재합니다. 설계를 위해 요건을 취합하고 분석하는 단계부터 개념/논리/물리적으로 어떤 모습으로 구축할지에 대한 설계도(ERD) 작성, 구축할 DBMS 선택, 과거 데이터에 대한 이관, Primary Key, Index, View, Procedure, Function 등의 적용 시나리오가 구체적이고 가시적으로 도출되어야 합니다.
1년뒤 또는 10년뒤에도 일관된 성능유지가 가능하도록 설계해야 하며 적은 용량의 데이터를 가지는지 대용량의 데이터를 가지는지, 데이터간에 단순한 관계를 가지는 경우와 매우 복잡하고 깊은 관계를 가지는 경우도 충분히 분석하여 설계에 반영되어야 합니다.
가장 중요한 것은 고객의 모든 요구사항이 충분히 도출되었는지에 대한 확신이 필요합니다. 모델러 자신의 경험과 기법만을 고집하며 자기 맘데로 설계하여 제시하는 모델러들도 꽤 많은데 이렇게되면 그 모델러(설계자)의 설계사상안에서만 돌아가는 시스템이 되버리고 맙니다.
구축하려는 전산시스템의 사상이 충분히 고려된 데이터베이스는 어플리케이션간과의 연동도 매우 원할한 상태가 되며, 개발 편의/생산성, 확장성, 유지보수에도 직접적으로 도움을 주게 됩니다.
잘 설계된 데이터베이스는 운영도중에 발생하는 예외상황에서도 신속하고 재치있게 대응이 가능할 뿐만 아니라 확장성이 매우 뛰어납니다. 개발 이후에 추가개발 요건이 발생하더라도 얼마든지 DB설계도를 수정하고 확장하기가 매우 용이하여 고객의 요구사항을 충분히 반영할 수 있게 되는것이죠.
DB가 잘 구축되었다고 가정한다면, 이제는 어플리케이션(프로그램)에서 개발자의 DB를 다루는 역할과 기술이 필요합니다.
특히 SQL을 잘 다루어야 하는것은 DB 모델러의 역할만이 아니라 일반 개발자가 가져야 할 기본 기술이라고 생각합니다. Table(PK, Index포함), Procedure(프로시저), View(뷰), Function(함수)을 SQL이라는 언어를 이용하여 DB와 프로그램 화면 사이에서 제대로 역할을 해주어야 합니다.
프로그램 로직을 SQL로 구사할것인지 고유 소스코드로 구사할것인지를 적절히 안분하여 적용하게되면 그 시너지효과가 매우 뛰어납니다. 매우 짜임새있고 논리적으로나 물리적으로 간단 명료하게 개발해 나갈 수 있으며, 확장성과 유지보수 싯점에도 신속/정확하게 대응할 수 있게됩니다.
이 모든게 결국 고객의 서비스와 만족도에 영향을 주게되고, 개발자 자신 또한 유능감과 자신감을 유지하며 역할을 해 나가게 됩니다.
마지막으로, DB 속도개선(튜닝)에 대해서 이야기 하겠습니다. 전산시스템의 특정업무가 느려지는 이유는 여러가지 이유들이 있겠습니다만 적어도, 설계된 DB안에서 문제가 발생하는일은 없도록 해야 합니다.
SQL은 프로그램 언어와는 다르게 집합적 개념에서 데이터를 바라보며 구사해야 합니다. 많은 시간과 노력을 투자해야만 제대로 된 SQL을 구사할 수 있게 됩니다. 뷰(View)와 Procedure도 SQL을 이용하여 작성하는데, 데이터의 집합적 함수개념과 PK, Index의 조합을 잘 이용해야 하며 DBMS의 Optimizer라는 엔진의 원리를 잘 이해하고 있어야 합니다.
이렇게 DB의 주요 기술을 잘 아우를줄 알게되면 SQL을 잘 다룰 수 있는 기반이되며, 역으로 Index와 PK를 조정할 수 있게되고 나아가 최적화(튜닝)도 할 수 있게됩니다. SQL을 튜닝할 수도 있고, 뷰(View)나 프로시저(Procedure)도 아주 멋지게 튜닝할 수 있습니다. 수시간 또는 수분씩 걸리는 SQL Query(쿼리)가 몇분 또는 몇초로 끝나버리는 멋진상황의 기분은 경험한자만이 느낄 수는 특권이겠죠!
이 글을 작성하고 있는 저는 대용량/대규모 프로젝트 경험과 정규 교육이수를 통해 데이터베이스 모델링과 튜닝을 다루고 있습니다. 전산시스템 개발, 데이터베이스 구축분야에서 프로그램개발업체를 운영중에 있사오니 각종 전산개발이나 DB구축의뢰가 필요하시면 편하게 연락주시면 고맙겠습니다.
홈페이지: http://www.wooribnc.com 이메일: admin@wooribnc.com // lwjvegas@gmail.com 연락처: 0 1 0 - 5 1 7 7 - 8 0 5 5 // 0 7 0 - 4 8 0 9 - 7 7 6 9 • 소프트웨어개발기술자경력: 특급기술자, 정보처리기사 • 소프트웨어사업자 신고업체 , 가천대 가족회사 협약업체
감사합니다.
|
이전글 | 프로그램 개발 - 우리비엔씨(WooriBNC) |
---|---|
다음글 | 업무 통합관리 프로그램 개발/구축가능합니다 |