#title 데이터베이스 시스템 [[TableOfContents]] ==== 개요 ==== 데이터베이스 시스템을 크게 2가지 관점에서 바라 볼 수 있다. * 데이터 모델 관점 * 데이터베이스 관리 시스템(DBMS) 관점 이 글에서는 각각의 관점에서 데이터베이스 시스템이 무엇인가 살펴볼 것이다. 관점이 2가지가 있지만 모델 관점에서 데이터베이스 시스템을 바라보는 것이 중요하다. 왜냐하면 우리는 DBMS를 직접 개발하지 않기 때문이다. Oracle사의 Oracle, Microsoft사의 SQL Server, IBM의 DB2 등 이미 여러 상용 DBMS 제품들이 있다. 이 제품들은 데이터베이스 이론을 토대로 만들어졌다. 그러므로 데이터베이스 관리 시스템(DBMS) 관점은 DBMS 제품에 대한 공부를 하면서 충분히 살펴볼 수 있니 이 문서에서는 데이터 모델 관점을 설명하는 것에 집중하도록 하겠다. (이 글로 감이 잡히면 좋을텐데.. 떱..) ==== 데이터 모델 관점 ==== 앞서 데이터베이스가 무엇인지 알아 보았으니, '시스템'이 무엇인지만 알면 이 글의 주제인 '데이터베이스 시스템'을 알 수 있다. 시스템(system)을 이해하기 위해서는 좋은 예가 필요한데 필자가 보기에 가장 좋은 예가 '시너지(synergy)'라는 용어다. 시너지는 '''''synergy = system + energy''''' 의 합성어다. 다음과 같은 문장도 많이 접했을 것이다. '''''A사와 B사의 합병으로 시너지가 기대된다. ''''' 즉, 시너지는 +α (플러스 알파)다. 실제로 네이트온, SK텔레콤이 뭉쳐서 엄청난 시너지를 냈다. 그 덕에 네이트온은 msn메신저를 누르고 점유율 1위를 할 수 있었다. 만약 무료문자 100통이 없었다면 msn메신저를 능가할 수 있었을까? 아마도 어려웠으리라 생각된다. 데이터베이스 시스템도 마찬가지다. 여러 엔터티들이 모여 집합을 이루고, 이질적인 집합과 집합사이에 상호작용으로 많은 일을 할 수 있다. 아래의 그림의 고객과 상품을 보자. attachment:데이터베이스시스템/db01.jpg ''* 이해를 위한 그림이므로 상세히 그리지는 않았다.'' 고객만 있다면? 광고 정도는 할 수 있을 것이다. 상품만 있다면? 역시 광고 정도는 할 수 있을까? 별로 할 수 있는게 없다. 하지만 고객과 상품이 있다면? 할 수 있는게 많아진다. 주문도 하고 배송도 한다. 고객과 상품이 관계를 가짐으로 뭔가가 더 생산되었다. 이게 고객과 상품 엔터티의 상호작용에 의해 발생한 시스템 에너지 즉, 시너지다. 데이터베이스 시스템은 각각의 엔터티 고유의 에너지와 엔터티와 엔터티간의 상호작용에 의해 시스템 에너지가 만들어(created) 진다. ==== 데이터베이스 관리 시스템 관점 ==== 데이터베이스 시스템의 구성요소는 대략 다음 그림과 같다. 이러한 구성요소들이 상호작용을 하면서 데이터베이스 시스템을 유지한다. 구성요소 하나가 문제가 생긴다면 원래 의도하는 기능을 제대로 수행하기 어려울 것이다. attachment:데이터베이스시스템/dbs02.jpg ''데이타베이스 관리 시스템의 구성(박영사, 데이타베이스 관리 , 서길수저)'' ==== 복잡성 ==== 데이터 모델 관점에서의 복잡성은 엔터티 수와 엔터티들의 상호작용 횟수에 의해 결정된다. ‘복잡하다’와 ‘복잡하지 않다’의 기준은 해당 조직의 IQ에 따라 다를 것이다. 조직의 IQ가 높다고 시스템의 생산성이 높은 것도 아니다. 오히려 복잡성에 의해 생산성이 저하되고, 이익이 감소할 수 있다. DBMS 제품의 관점에서 보면 단순하기란 쉽지 않다. 왜냐하면 경쟁을 해야 하기 때문이다. 기능의 복잡성과 DBMS 제품에서 쏟아내는 지식의 양과 난이도 및 속도는 어떤 DBMS제품이건 거의 비슷한 수준이고, 제어권도 우리에겐 없으므로 주요 기능을 위주로 해서 잘 정리해 놓는 것이 우리가 할 수 있는 유일한 방법일 것이다.