시간이 갈수록 DBMS 개발사에서 개발자가 사용에 편리하도록 기능을 추가하고 수정하는 경향은 당연한 듯 보이지만 각 DBMS의 특성 때문에 어쩔 수 없이 서로 다른 문법을 유지할 수밖에 없는 것은 개발자가 감수해야 하는 상황으로 보인다. C# 닷넷으로 개발한다면 DbProviderFactories를 이용하여 서로 다른 DBMS를 사용하는 환경 속에서도 응용 프로그램의 변경을 최소화할 수 있는데 이 경우에도 DBMS 간의 SQL 차이 있는 부분은 어쩔 수 없이 서로 다른 SQL을 사용해야 한다. 물론 단순 SELECT, INSERT, UPDATE, DELETE 명령을 사용한다면 하나의 응용 프로그램 로직으로 여러 가지의 DBMS에 대응할 수 있다. 본 포스팅에서는 SQLite3와 SQL Server의 SQ..
오픈 소스 DBMS가 시장의 절반을 넘기고 있는 상황에서 상업용 DBMS를 만드는 업체들의 전략도 변화하고 있다. 이른바 개발자를 포섭하는 전략이다. 이전에도 마이크로소프트에서 SQL Server Express를 무료로 배포하기는 했지만 등록을 해야 하거나 재배포는 허락하지 않는 상황이었다. 그러나 2012 버전부터는 등록이 필요 없고 재배포도 가능하다. 상용 프로그램에 번들해서 재배포도 가능한 것이다. 용량 제한이나 시스템 자원 제한이 방해가 되지 않는 다면 얼마든지 사용할 수 있다. 제한 없이 사용하고 싶어서 SQL Server Standard나 SQL Server Enterprise 라이선스를 구매한다면 응용 프로그램은 변경하지 않고 새로운 DBMS에 바로 적응할 수 있으니 나름 똑똑한 개발자 포섭..
"무료 SQL Server Developer 설치하기"글에 이어지는 포스팅입니다. 앞선 글에서는 무료 DBMS인 SQL Server Developer를 설치하고 DB 인스턴스를 생성한 다음 윈도우 인증으로 해당 데이터베이스 인스턴스에 연결 성공한 것까지 진행했다. 이번에는 외부에서 네트워크로 데이터베이스 인스턴스에 연결하여 개발을 위한 DB를 생성하고 해당 DB에 접근하여 테이블을 생성, 삭제 및 변경할 수 있는 사용자를 추가하는 과정을 다루고자 한다. 일단 powershell을 열고 위와 같이 "netstat -a | select-string LISTEN" LISTENING 상태의 포트들 즉, 서비스 상태인 TCP 포트들을 확인할 수 있는데 목록에는 SQL Server의 기본 포트인 1433을 찾을 수..
오랜만에 SQL Server DBMS와의 만남을 갖게 되었다. 오랜 시간 오픈 소스 DBMS만 사용해서 그런지 감회가 새롭다. 상당한 시간이 흐른 사이에 SQL Server에도 많은 변화가 있었던 모양이다. 위의 그림처럼 기능이 제한되며 Stand alone 환경에서 주로 사용하는 SQL Server Express 말고도 2016 버전부터는 SQL Server Developer 에디션을 배포하고 있었다. SQL Server Enterprise 에디션과 기능은 동일하면서도 무료이다. 물론 개발과 테스트 용도로 사용할 수 있고 실제 현장(프로덕션 시스템, Production System)에서는 사용할 수 없다. 프로그램 개발자 입장에서는 반가운 환경이 아닐 수 없다. 설치 프로그램 다운로드는 https:..
C#이나 VB.NET으로 데이터베이스 프로그램을 개발하려면 테스트용 데이터베이스가 필요한데 MS SQL은 상용이므로 어둠의 경로를 기웃거릴 수 있습니다. 그렇지만 최근에는 DBMS 벤더마다 개발자를 위해서 무료로 사용할 수 있는 개발자 버전을 제공하고 있는데 개발자의 지원을 받지 못하는 DBMS는 도태될 수 밖에 없다는 위기감 때문일 것입니다. 아무튼 실제 사용할 DBMS가 아니더라도 개발자 버전을 설치해서 테스트를 수행하며 좀더 안정성 있는 프로그램 개발을 진행할 수 있습니다. 마이크로소프트의 DBMS SQL Server의 개발자 버전은 "SQL Server Express"라고 하는데 http://www.microsoft.com/en-us/server-cloud/products/sql-server-ed..
현재를 데이터베이스의 시대라 해도 과언이 아닐만큼 스마트폰부터 메인플레임까지 각종 데이터베이스 시스템으로 넘쳐나는 시대입니다. 결정권자에 의해 어떤 데이터베이스 시스템이 결정되면 해당 조직은 결정된 데이터베이스에 의존적인 구조가 되는 것도 현실입니다. 특히 오라클이나 SQL 서버를 DBMS로 사용하는 조직의 경우에는 이러한 의존적 구조가 심화되어 데이터베이스 시스템을 바꾸기란 여간 어려운 일이 아닙니다.그렇지만 이미 데이터베이스 관련 기술은 일반화되어 오픈소스 데이터베이스 시스템으로도 기업의 핵심 업무를 수행하는데 아무런 지장이 없고 분야에 따라서는 오픈소스 데이터베이스가 오히려 좋은 성능을 내는 경우도 있습니다. 이런 배경 때문에 데이터베이스간에 손쉬운 변환을 지원하는 도구들이 많이 등장하고 있습니다...
이론적으로 데이터베이스(DB, Database), 데이터베이스 관리 시스템(DBMS, Database Management System), 데이터베이스 시스템(DBS, Database System)은 모두 각자의 정체가 있습니다. DBMS는 하나 이상의 DB를 관리하는 시스템으로 통상 오라클, SQL Server, MySQL과 같은 제품을 지칭합니다. 각 DBMS별로 관리하는 DB의 형태와 구조가 다르기 때문에 DB는 DBMS에 의존적이고 서로 다른 DBMS가 동일한 DB를 사용할 수는 없고 다른 DBMS의 DB를 사용하려면 통상 전환 과정을 거쳐야 합니다. DB와 DBMS로 구성된 시스템을 통칭하여 DBS, 데이터베이스 시스템이라고 합니다. "데이터베이스"라고 하면 단어적 의미는 데이터를 가지고 있는 D..