데이터베이스(DB), 데이터베이스 관리시스템(DBMS) , 데이터베이스 인터페이스

프로그래밍/데이타베이스 관련 2006/07/10 10:27


데이터베이스(DB),데이터베이스 관리시스템(DBMS),
데이터베이스 인터페이스
에 관하여
by xevious7. 작성일 : 2006년 7월.
http://www.xevious7.com

목차

들어가는 이야기
데이터베이스(DB)와 데이터베이스관리시스템(DBMS)의 차이
데어터베이스관리시스템(DBMS)와 데이터베이스 인터페이스의 차이
(ODBC, 네티브드라이버의 차이와 이해)

들어가는 이야기

사실 저는 데이터베이스 시스템에 관련하여 두권을 책을 냈습니다.
그 하나는 영진출판사의 오라클바이블 8.x 이고 (이것은 공저)
또 다른 하나는 글로벌 출판사의 오라클 9i 입니다.

아직도 인터넷이나 기타 게시판에 불펌또는 복사된 1997년에 제가 작성한
오라클데이타 베이스에 대한 기초설명글 (최초는 하이텔 소프트웨어동호회에
데이터베이스관련 강좌란에 올렸던 글) 이 있습니다만 약간 시대의 뒤떨어진 내용이라
URL를 옮기면서 이쪽에는 따로 재포스트 하지는 않았습니다.

그런데 기존 URL에 대한 리퍼러가 아직도 많아서 조사해본결과 그 문서의 기존 URL를
타고 오는게 많더군요.. 또한 책에도 기존 URL이 실려있기 때문에...
벌써 반년이 넘게 redirect를 위해서 그 URL를 살려두고 있는데 계정비가 아까운데말이죠.;;

데이터베이스 책을 썼을떄는 한창 데이터베이스를 사용하였고 관련 툴로 만들고 했던
시절이었습니다. 물론 지금도 데이터베이스를 사용하고 어느정도 규모의 시스템은
데이터베이스와 불가결의 관계에 있기 때문에 데이터베이스의 공부는 필수라고 생각합니다.

생각의 전파라는 것은 놀라울 정도로 빠릅니다. 특히 높은 직관과 이해를 이끌어내는
공감가는 글들은 빠르게 전파하는 법인것 같습니다.

데이터베이스에 대한 개념이 없는 상태에서는 실제로 그것을 다루고 있다고
해도 무엇인가 안개가 낀것처럼 답답함이 있기 마련입니다. 그중에서도 초보자분들이
간파하지 못하고 있는 부분들이 바로 데이터베이스, 데이터베이스 관리시스템,
그리고 데이터베이스 인터페이스에 대한 개념과 이해가 부족해서 헷갈리는 경우가
많이 있는 것 같았습니다.

그 부분들에 대한 이해가 좀더 명확히 이루어지면 자신도 모르게 다른것을 좀더
잘 볼수 있겠다라는 생각이 들어서 그러한 분들에게 도움이 되고자
이 포스트를 작성했습니다.

데이터베이스(DB) 와 데이터베이스관리시스템(DBMS)의 차이

먼저 흔히 가지고 있는 오해는 데이터베이스와 데이터베이스관리시스템을 구분하지
못하는 오해입니다. 우리들이 보통이야기 하는 오라클(Oracle) , 마이에스큐엘(MySQL)
,시퀄서버(SQLServer) 은 데이터베이스가 아닙니다. 데이터베이스관리시스템입니다.

그러면 데이터베이스와 데이터베이스 관리시스템의 차이는 무엇일까요?
데이터베이스의 개념을 이해하기 하기 위해 먼저 데이터에 대해서 설명해보겠습니다.

데이터(data) 사실 컴퓨터를 한다는 사람 치고 이제 데이터가 무엇인지 모른다라고
생각되지 않습니다만 정리하자면...

데이터는 자료라는 뜻이고 컴퓨팅 환경에서는 기본적으로 0과 1의 이진(Binary)
형태로 저장됩니다. 그리고 이런 데이타를 처리해서 나온 데이타를 정보(Information)
이라고 합니다. 컴퓨터는 기본적으로 데이타를 저장하고 처리해서 기계또는 인간에게
정보를 제공하기 위해서 존재합니다.

데이타베이스라는 것은 이러한 데이타를 효율적으로 저장하기 위한 저장소를 의미합니다.
다시말하면
데이터베이스란  어떤 정보를 얻기위해 효율적으로 저장된 데이타들의 집합이라고
표현할 수 있습니다.

데이터베이스는 사실상 추상적인 개념에 더 가깝습니다. 물리적으로는 결국
이진데이타이며 파일시스템의 파일들입니다.

이러한 데이타베이스를 손쉽게 만들고 관리하는 여러가지 프로그램들이 모여서
하나의 시스템으로 갖추어져 있는 프로그램을 데이타베이스관리시스템
(DBMS)라고
합니다.  현대의 거의 모든 컴퓨터시스템이 운영체제를 쓰듯이  거의 모든 데이터베이스는
데이터베이스관리시스템에 의해서 만들어지고 운영되기 때문에 데이터베이스 =
데이터베이스관리시스템형태로도 많이 쓰여지고 있습니다만 엄격한 구분으로는
데이터베이스와 데이터베이스관리시스템은 그 의미가 틀린 것입니다.

따라서  '데이터베이스는 모 쓸거야?' 라는 일반적인 말은 의미상 결코틀린말은 아니지만
정확히는 '데이타베이스관리시스템은 모 쓸거야? 또는 DBMS는 모 쓸거야?' 라는 말이
옳은 것입니다.

사실상 DBMS는 데이타베이스를 만들고 쉽게 운영하는 시스템 프로그램이기 때문에
여러개의 데이터베이스를 가질 수 있습니다.

그림으로 정리하면 다음과 같습니다.


참조 : 데이터베이스를 구성하는 추상적구조전체를 가르킬때 데이터베이스 스키마라는
용어를 사용합니다.  데이터스키마와 가지고 있는 데이터가 동일하면 같은 데이터베이스
가 됩니다.


데이터베이스시스템과 데이터베이스 인터페이스 ( ODBC와 네티브드라이버의 이해)

DBMS는 데이타베이스를 만들고 쉽게 관리 운영할 수 있게 해주지만 이것을 다시
웹상또는 어떤 응용프로그램에서 응용하려면 데이터베이스의 데이터에 접근할 수 있는
인터페이스가 필요하게 됩니다.

이러한 응용프로그램을 위한 데이터베이스와 연결해주는 인터페이스를 데이터베이스
인터페이스라고 부를 수 있으며 일반적으로 DBMS는 이러한 요구에 맞추어 데이터베이스
에 연결할 수 있는 인터페이스를 제공합니다. 이렇게 직접적인 인터페이스를 네티브드라이버 또는 네티브인터페이스라고 합니다.
그리고 DBMS의 차이에 의해서 접근하는 방법과 API의 다른것을 해결하기 위해서 각각의
관련 회사들이 모여서 만든 하나의 추상레이어(Abstract Layer)를 만들게 되는데
이것이 ODBC입니다.

여러분이 위에서 데이터베이스와 데이터베이스관리시스템의 차이를 분명히 이해
했다면 이러한 ODBC가 필요하게 된 이유를 알 수 있을 것입니다.

예를 들어 A라는 회사가 AA라는 데이터베이스를 디자인 했다고 생각합시다.
A라는 회사는 AA라는 데이터베이스를  오라클이란 DBMS를 써서 만들수도 있고
MySQL를 써서 만들수 있습니다.
이 데이터베이스를 사용하는 응용프로그램이 있습니다. 만약 이 응용프로그램이
어떤 일반적인 표준이 아닌 각각의 DBMS에서 제공된 네티브드라이버를 이용하여
프로그래밍 되었다면 DBMS에 따라 각각 프로그램이 달라질 수 밖에 없습니다.

이러한 불합리를 제거하기 위해서 탄생한것이 ODBC입니다. ODBC를 이용해서
응용프로그램을 작성하면 이러한 문제가 사라집니다.
왜냐면 API는 똑같고 그 하위 레벨에서 이 API에 맞게 각각 데이터베이스에 대한
ODBC드라이버를 제공해주기 때문입니다.
실제로 ODBC는 접속에 관련된 부분정도의 일부를 제외하면 어떤 DBMS를 사용
했는지의 여부와 관계없이 같은 데이터베이스라면  코드의 수정이 전혀 필요없습니다.

즉 프로그램 입장에서는 DBMS와 관계없이 데이터베이스를 사용할 수 있게 되는것입니다.

역시 그림으로 정리하면 다음과 같습니다.









두권의 책에 대한 단상 : 넋두리

두권의 책 모두 저에게는 상당한 아픔이 있던 책입니다. 첫번째 책은 저작권에
관한 문제때문에 최초 원고를 작성하고 책을 만드는 과정에 추가 필자가 참여하여
공저가 되었는데 도중에 이상하게 추가필자가 다시 2명의 추가필자를 추가해서
3명의 책으로 나왔고 황당했던 저는 클레임을 걸었었고 (제가 처음 섰던 원고분량
보다 훨씬 커지고 많은 부분수정이 있었지만 제가 쓴 부분이 기초가 되어서 쓰여진
책이기 때문에 초안을 수정하고 내용을 추가한다고 해서 제가 쓴것이 아닌것
아니기때문이니깐요) 2쇄 부터 이름이 들어가게 된 책입니다.
상당히 억울해서 그 당시에는 명예회복만 생각했었고 그 사이의
일들이 상당한 스트레스(사실 돈같은 문제 깊게 파고들기 싫어하는 성격이라)
금전적인 보상은 거의 제로였던 (약간의 원고료만 받았습니다.
인세 자체가 없었습니다. 물론 제가 동의한것입니다.)
나중에 보니 2판부터는 제가 쓴 부분들이라고 된 클레임 걸었던 부분들을 삭제하고
다시써서 다시 제이름을 삭제하고 책이 출판되서 나오더군요. 아마도 제 원래의
원고와 정밀하게 비교해서 일반적인 내용이 아닌 제가 따로 고안하거나(그림) 또는 제
의견을 써서 만든 문구(경험이나 이해를 도와주기위한 은유문구)등을 삭제한것
같았습니다.

두번째 책은 너무 급하게 만든 감이 있어서 CD도 안들어갔고 분량은 일부러 작게
했는데 그것도 어느정도 단점에 특히 오타수정이 제대로 안되서 여러가지 문제가
있었는지 제대로 팔리지 못했습니다.

top

Trackback Address :: http://xevious7.com/trackback/100

Write a comment