박두현의 컴퓨터 이론들 - Database : DBMS(Database Management System)

안녕하세요. 박두현 입니다.

그동안 영상처리에 대해서 알아봤는데요, 오늘부터는 다른 이야기를 할까 합니다. 사실 영상처리에 대해서 더 깊게 다루면 좋겠지만 제가 그렇게 깊게 설명을 할 수도 없을 것 같고 해서 이렇게 오늘부터는 다른 분야로 전향을 하게 되었습니다.

그래서 오늘부터는 다른 이야기를 하려고 합니다. 오늘은 데이터베이스에 대해서 이야기 해보도록 하죠.

 

1. DBMS

먼저 우리는 데이터베이스(Database)라는 용어부터 알아야 합니다.

DB는 정의하자면 다음과 같습니다.

 

- A very large, integrated collection of data.

- Models real-world enterprise the activities of one or more related organizations.

 

특히 Entities와 Relationship은 매우 중요한 특징이라고 할 수 있겠죠.

Database Management System. DBMS라 불리우는 이것은 소프트웨어 패키지 형태로 디자인 되어 저장되고 관리되어지는 데이터베이스를 말하는 것 입니다.

 

2. 역사

역사는 언제나 중요하죠. 사실 무시할 수 없는 부분이라고 생각 됩니다.

그럼 대표적인 데이터베이스 모델의 역사를 알아보도록 하겠습니다.

 

- Network data model

1960년대 초반 GE에서 Charles Bachman 이라는 사람에 의해 제안되었습니다.

덕분에 Charles Bachman은 1973년 Turing상을 수상하게 됩니다. (Turing Award는 전산계의 Nobel's Prise)

 

- Hierarchical data model

1960년대 말 IBM의 IMS에 의해 만들어지게 됩니다.

 

- Relational data model

이거 매우 유명한 모델, 바로 관계형 데이터 모델 입니다. 현존하는 DB는 거의 대부분 이 관계형(Relatinal) 데이터 모델이죠.

1970년 IBM Research lab에 있었던 Edgar Codd란 사람에 의해 만들어졌습니다.

역시 이 Edgar Codd도 이것 덕분에 1981년 Turing Award에서 상을 받게 됩니다.

SQL1999 - ANSI/ISO 표준으로 등록되었습니다.

Jim Gary란 사람은 DB transaction management로 인해 1999년 Turing Award에서 상을 받게 되죠.

하여간 데이터베이스 하면 관계형을 생각하시면 되고 DBMS하면 이 모델을 생각하시면 되실 거라고 생각 됩니다.

 

3. File vs DBMS

파일을 이용해 각종 데이터를 저장하는 방법도 있습니다. 그러나 데이터베이스라는 것이 디자인되고 자료 보관이나 운용을 하는데 매우 중요하게 사용되는데는 다 그만한 이유가 있겠지요?

큰 이유는 아래와 같습니다.

 

- 어플리케이션이 거대한 데이터셋을 메인 메모리와 2nd 스토리지에 위치해야 하는 문제를 해결하기 위해. 즉 메모리 문제.

- 특수한 코드들에 대해 다양한 쿼리를 날릴 수 있어서.

- 다양한 유저에 대해서 데이터를 보호하고 관리하기 위해서.

- 데이터 손상으로부터 복구를 하기 위해서.

- 보안과 접근에 대한 컨트롤을 하기 위해서.

 

크게 DBMS를 사용하는 이유는 이렇습니다.

 

4. 마치면서...

데이터베이스는 정보처리기사에서도 나올만큼 일반적인 전산 지식이기도 합니다.

검색엔진을 만들거나 하는데 DBMS를 사용할 수도 있고 임베디드 시스템에서도 DB를 유용하게 사용할 수 있다고 들었습니다.

컴퓨터를 전공하는 사람들에게는 자료구조론, 운영체제론, 알고리즘, 네트워크 통신과 같은 이론 과목이 매우 중요 합니다. DBMS도 그런 이런들 못지 않게 매우 중요하고 많이 사용되는 것이기 때문에 무조건 공부해 두시라고 말씀드리고 싶습니다.

DB, 계속 이어서 설멍하도록 하겠습니다.

 

다음주 한주는 시험기간인 관계로 쉬고 다다음주부터 찾아뵙도록 하겠습니다.