: 데이터베이스는 조직체의 응용 시스템들이 공유해서 사용하는 방대한 운영 데이터 (operation data)들이 구조적으로 통합된 모임을 말한다.
데이터와 정보의 차이
: 데이터와 정보란 단어를 혼동해서 사용하는 경우가 많지만, CS에서 데이터와 정보는 엄연히 다른 개념이다. 학급 관리 프로그램에서 데이터에는 학생 이름, 과목, 성적 등이 포함될 것이다. 이때 정보란, ' Database 과목을 수강한 학생은 김철수이다 . ' 와 같이 실제 데이터를 가공하여 사용자의 요청에 맞게 처리한 것을 의미한다.
데이터베이스는 데이터의 대규모 저장소로서, 여러 부서에 속하는 여러 사용자가 동시에 사용할 수 있다.
데이터의 중복을 최소화하면서 통합된다.
데이터베이스는 한 조직체의 운영 데이터뿐만 아니라, 그 데이터에 관한 설명을 저장하는 메타데이터까지 포함한다.
프로그램과 데이터 간의 독립성이 제공된다.
독립성이란 서로 참조하지 않음을 의미한다. 따라서 프로그램에서 변화가 생겨도 데이터를 저장하는 데이터베이스의 값이 변하지 않음을 의미한다.
효율적으로 접근이 가능하고 질의를 할 수 있다.
데이터베이스는 프로그램이 데이터에 접근하고 처리할 수 있도록 다양한 질의어를 제공한다.
: 사용자가 데이터베이스를 저장하고, 관리하고, 효율적으로 검색할 수 있도록 하며, 시스템의 고장이나 권한이 없는 사용자로부터 데이터베이스를 보호하며 동시에 여러 사용자가 접근하는 것을 제어하는 소프트웨어 패키지이다. 데이터베이스 언어라고 부르는 특별한 질의어를 제공한다. SQL이 관계형 DBMS들이 제공하는 표준 데이터베이스 언어를 의미한다.


: 전체적인 데이터베이스 구조를 뜻하며 내포(intension) 라고도 부른다. 자주 변경되지 않으며 데이터베이스의 가능한 모든 상태를 미리 정의한다.
: 특정 시점의 데이터베이스의 내용을 의미하며, 시간이 지남에 따라 계속해서 값이 바뀐다. 외연(extension) 이라고도 부른다.


: 그림과 같이 DBMS가 사용자, 프로그램 등의 요청을 받아 데이터베이스에 접근하여 데이터를 관리하고 처리한다. 이때 데이터베이스에는 데이터베이스 외에도 시스템 카탈로그 라는 것이 존재한다. 시스템 카탈로그는 저장된 데이터베이스의 스키마 정보를 유지함으로써 데이터베이스에 대한 메타데이터라고 할 수 있다.

따라서 DBMS는 저장된 데이터베이스에 직접 접근하기 전에 시스템 카탈로그를 통해 프로그램 또는 사용자의 질의가 올바른지를 판단할 수 있다. 데이터베이스 스키마에 없는 데이터를 요청하는 경우 등이 발생할 수도 있기 때문이다.
데이터 무결성이란?
: 데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미한다. 따라서 데이터의 결점이 없도록 유지하며, 제약조건을 준수함으로써 데이터의 신뢰성을 보장하여야 한다.
: 파일 시스템은 DBMS가 등장하지 않았을 때인 1960년대부터 사용되어 왔다. 파일은 기본적으로 바이트 스트림 또는 레코드로 구성되어 있는데, 한 레코드는 연관된 필드들의 모임이라고 할 수 있다. 파일에 접근하는 방식이 응용 프로그램에 명시되므로 데이터에 대한 응용 프로그램의 의존도가 높다. 파일이 변경되면 응용 프로그램 또한 같이 변경되어야 하기 때문이다.


위의 그림을 보면 파일에 새롭게 추가된 Mobile-Phone 필드가 하나의 응용 프로그램에만 추가되었고, 다른 응용 프로그램들에는 적용되지 않았다. 이 경우 다른 응용 프로그램들은 Moblie-Phone에 대한 내용이 없기 때문에 Employee 파일에 접근할 수 없게 된다.
따라서 기존에 파일 시스템을 사용하는 경우 이러한 문제를 극복하기 위해 각각의 응용 프로그램마다 자신만의 파일을 가지게 되었다. Mobile-Phone 데이터가 필요없는 응용 프로그램들은 그에 맞는 파일을 따로 저장하고 있으면 되기 때문이다. 하지만 이 경우에도 치명적인 단점이 존재하는데 바로 데이터가 많은 파일에 중복되서 저장된다는 것이다.

이렇게 데이터가 중복되는 경우 데이터 불일치가 발생할 수 있다. 예를 들어 department 데이터의 수정이 이루어졌는데, 수정 내용이 인사과에만 전달되고 교육과에서는 전달받지 못한 경우 두 부서가 서로 다른 데이터를 갖게 되는 것이다.
이외에도 파일 시스템은 동시성 제어와 질의어가 제공되지 않고, 보안 기능이 미흡하다. 또한 프로그램과 데이터 간의 독립성이 없으므로 유지보수 비용이 많이 소요된다.
| 파일 시스템 방식 | DBMS 방식 |
|---|---|
| 동일한 파일을 두 개 이상의 프로그램이 동시에 접근하기 어렵다. | 동일한 데이터를 다수의 사용자가 동시에 접근할 수 있다. |
| 데이터가 비구조적이며, 유지보수 비용이 많이 든다. | 데이터가 구조화되어 있으며, 유지보수 비용이 적게 든다. |
| 데이터에 대한 접근은 미리 작성된 응용 프로그램을 통해서만 가능하다. | 응용 프로그램을 통해서 뿐만 아니라 질의어를 사용하여 데이터에 대한 융통성 있는 접근이 가능하다. |
| 각 응용 프로그램마다 접근하는 파일이 따로 있으므로 데이터가 통합되어 있지 않다. | 중복을 배제하면서 데이터가 통합되어 있다. |

DBMS에도 단점이 없는 것은 아니다. 먼저 추가적인 하드웨어 구입 비용뿐만 아니라, DBMS 자체의 구입 비용도 상당히 비싸다. 또한 비밀과 프라이버시 노출 등의 단점이 존재할 수 있다. 데이터베이스가 보안 기능을 제공하기는 하지만 어쨌거나 데이터가 데이터베이스라는 외부 공간에 저장되어 있는 것이므로 위험성을 내포한다고 볼 수 있다.