무료 DBMS SQL Server Express

일반입력 :2005/12/05 16:11

노규남(IT 테크라이터)

지난 회에 이어 VS Express의 구성요소들에 대해서 알아보는 시간을 한주 더 갖도록 하자. 이번 주에 살펴볼 구성요소는 SQL Server Express이다. 이미 잘 알려져 있지만 모르는 사람들을 위해서 부연하자면 이 패키지는 MSDE(Microsoft Desktop Engine)이라고 하는, MS가 이전에 배포한 무료 DBMS의 후신에 해당하는 것이다.

실제 필드에서 프로젝트를 하다보면 Database를 사용하지 않는 경우가 오히려 드물 정도로 DBMS는 개발의 필수요소라 할 수 있는데 최근 DBMS의 기능이 많이 발전한 것은 사실이지만 그 가격이나 덩치 면에서 적잖게 부담되는 면도 없지 않다. 리눅스를 대표로 하는 오픈소스 진영에는 MySQL, PostgreSQL등의 무료 DBMS가 여럿 있었지만 윈도에서만 개발하던 프로그래머라면 이런 DBMS에 접근하기도 쉽지 않았다.

그래서 MSDE가 무료로 배포되기 전에는 비싼 DBMS 대신 Access의 MDB파일을 파일 데이터베이스로 사용했던 적도 있었다. 그러나 MDB는 쓰고 지우기를 반복하다보면 용량이 엄청나게 늘어나는 문제점이 있었고, 파일이 굉장히 잘 깨진다는 단점이 있었기 때문에 관리에 대해 충분한 지식을 갖지 않은 사용자들에게는 어려웠다.

이런 상황을 타개하기 위해 등장한 MSDE는 SQL Server 7과 동일한 엔진을 사용하되 GUI로 구동되는 관리용 애플리케이션과 분석도구들을 빼고 용량에 제한을 둔 버전이었는데 소규모의 사이트나 SI 프로젝트를 중심으로 대단한 인기를 얻었다. 또한 SQL Server와 같은 엔진을 사용한다는 호환성면에서의 잇점과 무료라는 매력 때문에 아직도 많은 사이트에서 널리 사용되고 있는 중이다. 그러나 VS2005와 같이 발표된 SQL Server Express는 이 MSDE보다도 한 수 위라는 것이 필자의 평가이다. 그러면서도 똑같이 무료이다.

설치하기

여타 VS Express의 컴포넌트와 마찬가지로 MS의 VS Express사이트에서 다운로드 후 설치한다. 다른 점이 있다면 VS Express는 향후 1년간 다운로드 받는 사용자에 한해 무료이지만 SQL Server Express는 영구히 무료로 배포하게 되어 있다는 것이다. 그간 무료 DBMS의 대명사처럼 여겨졌던 MySQL도 최근 좀 헛갈리는 라이선스 프로그램을 내놓고 대대적으로 상용화할 속내를 비치고 있는 상황을 고려할 때 이런 MS의 정책은 크게 반길만하다.

본문에서 설명하겠지만 소규모~중규모의 사이트라면 SQL Server Express는 충분히 상용화 가능한 패키지일 뿐만 아니라 설치의 편의성, 가벼움, 무료라는 장점을 생각하면 오라클이나 SQL Server 2005의 정품보다 오히려 나은 선택일 수 있다. 이 패키지가 무료이며 기능제한이 있는 Express 에디션임에도 불구하고 상용패키지와 비교하는 것은 그만큼 강력하고 사용자의 요구를 커버할 수 있는 범위가 넓기 때문이다. 재배포도 가능한데 이때는 MS에서 제안하는 Go-Live 라이센스에 동의해야 한다. Go-Live 라이센스에 대해서는 다음 링크를 참조하자.

http://www.microsoft.com/korea/msdn/vs2005/golive/

SQL Server Express의 패키지 용량은 약 55MB정도 되는데 Windows 2000이상을 요구하며, 닷넷 프레임워크 2.0 과 Windows Installer 3.0이상을 필요로 한다. 물론 이전 버전의 VS 2005 및 VS 2005 Express버전을 모두 깨끗이 삭제한 후 설치해야 한다. VS2005 beta를 지워주는 CleanUp 도구에 대해서는 여러번 소개했으니 다시 언급하지는 않겠다.

설치과정은 몇 번 마우스클릭을 해주면 끝날 정도로 간단하다. 이 작업이 종료되면 SQL Server Express가 정상적으로 작동중인지를 확인하기 위해 코맨드 라인을 하나 띄워서 다음과 같이 입력해보자.

sqlcmd -S localhostSQLExpress

1>과 같이 숫자가 계속해서 증가하는 프롬프트가 나타나면 성공이다. sqlcmd는 SQL Server Express에 접속하는 코맨드 라인 유틸리티로 -S는 서버를 지정하는 옵션을 준 것이다. 여기서는 localhost의 SQLExpress라는 Instance를 지정했다. SQL Server Express의 Default Instance이름은 항상 'SQLExpress'가 되니 참고하기 바란다. 여기서 여러 가지 명령으로 서버를 조작할 수 있으며, MSDE에도 있던 전통적인 osql을 사용할 수도 있다. osql로 유사한 방식으로 접속한 후 TSQL 명령을 입력해서 원하는 작업을 하면 된다.

그러나 GUI가 대중화된지 10년이 넘은 지금 코맨드 라인 도구를 이용해 조작하는 것은 역시 불편하다. 이것은 대부분의 무료 DBMS가 겪고 있는 문제점으로, 서버의 성능은 만족하나 편의하게 사용할 수 있는 클라이언트단 도구가 항상 부족하다는 것이다. SQL Server Express는 이에 대한 해결책으로 SQL Server Management Studio Express라는 멋진 도구를 같이 제공한다. 이 도구에 대해서는 뒤에 다시 다루도록 하자.

SQL Server Express는 SQL Server 2005이다

SQL Server Express와 MSDE를 구분 짓는 가장 큰 특징은 SQL Server Express는 SQL Server 2005의 한 에디션이라는 것이다. MSDE가 SQL Server 7의 엔진을 사용하기는 했지만 어디까지나 MSDE는 SQL Server와는 달랐고 그렇기 때문에 MSDE를 쓰고자 하는 사용자는 새로운 도구들을 익히지 않으면 안 되었다. 하지만 SQL Server Express는 엄연히 SQL Server 2005의 한가지 버전이므로 기본적인 컨셉, 도구, 관리방법 등을 모두 공유한다. 물론 SQL Server Express는 기능이나 용량등에서 제한을 받기는 하지만 MSDE처럼 SQL Server와 별개로 다루어지는 제품이 아니라는 뜻이다. 그렇기 때문에 SQL Server 2005에 관련된 문서나 책자를 가지고 있다면 기본적인 부분은 SQL Server Express에도 똑같이 적용된다.

또한 이런 이유로 인해, 사이트가 확장되어서 더 많은 용량과 기능이 필요해지면 SQL Server Express를 Workgroup -> Standard -> Enterprise버전으로 업그레이드하는데도 큰 비용이나 시간이 들지 않는다. 관리도구나 그 동안 사용했던 애플리케이션도 똑같이 쓰면 된다. 이 부분은 MS의 노림수이기도 할 것으로 보이는데, SQL Server Express는 무료로 배포해서 저변을 늘리고 사이트가 확장될때 정식버전을 판매해서 수익을 올리는 방식이 어느 정도 설득력이 있다. 어쨌거나 사용자 입장에서는 다소의 제한이 걸린 SQL Server 2005를 무료로 쓰게 된 셈이니 나쁠 건 없다.

SQL Server Management Studio Express

MySQL이나 MSDE와 같은 무료 DBMS를 사용하는 사람들의 가장 큰 불만은 데이터베이스를 관리하는 클라이언트단 유틸리티가 빈약하다는 것이다. 그러나 SQL Server Express에서는 SQL Server Management Studio Express(이하 SSMSE)라는 멋진 툴을 사용할 수 있다. 이 도구는 현재 정식버전이 아닌 CTP이지만 SQL Server Express와 함께 매우 안정적으로 잘 작동하며 강력하다. 설치파일은 약 30MB정도인데 닷넷 Framework 2.0과 MSXML Parser 6.0가 미리 설치되어 있어야 하므로 참고하자. 파일은 다음 페이지에서 받을 수 있다.

http://www.microsoft.com/downloads/details.aspx?

설치 후 실행해보면 어떤 식으로 사용하는지 금방 익힐 수 있는 친숙한 인터페이스가 나타나며, 사용자는 이 도구를 이용해 계정, 데이터베이스, 테이블등 DBMS 관련된 모든 객체를 관리하고 조회할 수 있다. SQL Server나 오라클을 써본 사람이라면 배울 필요도 없이 금방 쓸 수 있는 매우 일반적인 인터페이스를 채용하고 있다. 사실 SSMSE를 사용하면 다른 도구가 거의 필요 없을 정도인데 무료로 사용할 수 있는 DBMS에 이 정도의 툴을 지급한다는 것은 다른 무료 DBMS와 확실히 차별화되는 SQL Server Express만의 장점일 것이다.

기능 제한과 주요 기능

SQL Server Express는 여러 가지 기능적인 제한을 갖는다고 앞서 언급했다. 그 주요제한은 다음과 같다.

  • 리포팅 서비스는 지원되지 않는다.
  • OLAP/Data mining 서비스는 지원되지 않는다.
  • Analsys 서비스는 지원하지 않는다.
  • DTS를 지원하지 않는다.
  • Database Mirroring은 지원하지 않는다.
  • Database의 크기는 4GB로 제한된다.
  • 지원하는 RAM의 크기는 1GB까지이다.
  • SMP시스템이라도 CPU는 1개만 지원한다.
  • 그러나 SQL Server Express는 SQL Server 2005의 한 에디션이다. 그러므로 다음과 같은 주요기능들을 지원한다.

  • SQL Server Express는 stored procedure를 지원한다.
  • SQL Server Express는 view를 지원한다.
  • SQL Server는 Trigger를 지원한다.
  • SQL Server는 Replication Subscriber가 될 수 있다.
  • SQL Server는 XML을 지원한다.
  • 여기서 설명되지 않은 제한이나 기능도 있지만 전체적인 모양은 작은 사이트에서 사용할 때 최고의 성능을 발휘하도록 최적화된 그런 형태이다. SQL Server의 정품이 갖는 고급기능도 많이 포함하고 있으므로 개발자 입장에서는 훨씬 편하게 작업할 수 있을 것이다. 다만 데이터베이스의 크기가 4GB로 제한되어 있으므로 대용량 데이터가 지속적으로 발생하는 사이트에서는 쓰기 어렵고, 또 램 1GB와 CPU 1개의 제한이 있기 때문에 고성능을 요하는 사이트에도 역시 맞지 않다. 이런 점을 생각해서 자신이나 자신의 조직에 어떤 에디션이 필요한지 잘 판단해보기 바란다. 하지만 SQL Server Express는 많은 경우 최선의 선택이 될 것이다.

    마치며

    지금까지 설명한 내용들을 보면 알 수 있듯이 SQL Server Express가 SQL Server 정품에 비교해 갖는 제한이라는 것은 사이트가 작으면 거의 문제가 되지 않는 것임에 비해 지원하는 기능들은 너무나 강력하다. 또한 거듭 얘기되지만 SQL Server Express는 SQL Server 2005의 한 에디션이므로 향후 업그레이드가 용이하다는 것도 큰 장점이다.

    SQL Server Express는 이런 장점들을 바탕으로 그간 MySQL 등 오픈소스 쪽의 무료 DBMS들이 차지했던 시장의 상당부분을 차지할 가능성이 있다. MS의 독점이 심화되는 것은 분명 경계할만한 일이지만 이젠 기존의 것보다는 좀더 강력하며 편리한 인터페이스를 갖는 무료 DBMS 하나쯤 나와도 좋지 않을까 한다. 항상 경쟁은 발전을 유도하는 법이므로 MS의 무료배포에 자극받은 오픈소스 측의 DBMS들이 지금보다 더 발전하게 된다면 그것도 역시 좋은 일이다. 시장의 방향이 어느 쪽으로 흘러가든 사용자는 즐겁게 기다릴 뿐이다.

    필자 노규남님은 게임개발에 주력하고 있으며, 오랫동안 각종 플랫폼에서 사용되는 개발도구를 사용한 경험이 풍부하다.