어떤 데이터를 관리하고 저장할 때 파일시스템을 사용하게 되면 운영체제의 파일 시스템 관리 기능을 사용하여 파일에 텍스트 형태로 특정 저장 형식을 두어 저장하게 된다. 이때 생기는 문제점이 여러가지가 있는데 이들을 종합하면 결국 어떠한 데이터를 일관적으로 관리하는 기능을 제공하기 힘들하는 점이다. 이때 파일시스템을 사용하면 데이터의 종속, 데이터의 중복, 데이터의 무결성 훼손, 데이터 동시접근 문제가 생길 수 있다.
데이터의 종속이란 데이터와 상호작용하는 물리적 혹은 논리적 종속성을 의미하는 것으로 데이터가 관리될때는 물리적, 논리적 독립성을 유지하는 것이 매우 중요하다. 이는 실제 물리적 디스크(물리적 관점)혹은 데이터의 논리적 구조(논리적 독립성)이 변경되더라도 이를 사용하는 프로그램 입장에서는 동일한 코드로 사용할 수 있어야한다는 것을 의미한다. 그렇지 않으면 데이터 형식이 변경될 때마다 그에따른 프로그램을 개발하여야 할 것이기 때문이다.
데이터의 중복이란 데이터가 저장될때에 데이터가 중복되는 경우인데 데이터는 중복되어 저장되면 안된다. 예를 들어 어떤 학생에 대한 정보가 있고 이 학생의 이름, 주소, 전화번호가 학생 파일과 수강파일에 모두 적혀있다면 이는 데이터의 중복으로 데이터가 잘못 관리되고 있음을 의미한다. 그 이유는 데이터의 보안성, 경제성, 일관성 측면에서 생각할 수 있는데 다른 파일에 적혀있는 학생의 정보가 한곳에서 수정될 시 다른곳에서 동시에 수정되어야함에도 그러한 기능이 없고 같은 형식으로 적용되어저장되어있는지도 보장하지 않는다. 이러한 일관성이 보장되더라도 여러번 저장되어 보안, 경제성측면에서 좋지않다. 즉, 학생의 정보는 한곳에만 적혀있고 다른 곳에서 이를 가져가 사용하는 방식이어야 할 것이다.
3.데이터의 무결성 훼손이란 어떠한 데이터가 저장될 때에 그 데이터의 실제 내용에 제한 조건이 있는데 파일시스템은 이를 보장해 주지못하여 훼손시킬 수 있다는 것이다. 예를 들어 사람의 나이를 마이너스로 입력하거나, 주소에 전화번호가 들어가더라도 이를 파일시스템 자체가 에러로 처리해주지는 못한다.
4.데이터의 동시접근 문제이란 concurrent multithread의 프로세스에서 메모리 공간의 atomic이 보장 되지 않을 경우 low level operation 중간에 thread switching이 되서 생기는 문제가 파일시스템에도 동일하게 생길 수 있음을 의미한다. 즉 특정 파일을 동시에 수정하여 예기치 못한 방향으로 수정되는 상황인데, DBMS는 transactional(transaction단위로 operation이 수행됨을 보장함 atomic과 유사한 개념)로 이러한 상황을 방지해준다.
즉, 파일 시스템의 한계는 스스로 프로그램이 파일시스템의 데이터를 활용할 때 독립적임을 보장하고, 저장되는 정보를 일관적이고 무결하게 관리하고 동시접근할때의 syncronization을 보장하지 못한다는 점이다.
반대로 이 문제들을 DBMS가 모두 해결해 주고있다.
DBMS는 다음과 같이 프로그램과 파일 사이에 존재하여 프로그램이 실제 파일이나 디스크에 데이터가 어떻게 저장되는지와 상관없이 개념, 논리적으로 접근하여 데이터를 사용할 수 있게 해준다. 이를 데이터의 추상화라고 한다.
자기 기술성: 파일시스템은 데이터의 값만 가지고 있을 뿐 그 값이 어떤 의미인지에 대한 메타 데이터는 포함하지 못하지만 DBMS는 메타데이터 또한 포함한다. 이러한 내용은 시스템 카탈로그에 저장된다.
cf) 값:저장되는 수치 자체
데이터:값의 의미가 부여된 것
정보: 데이터를 활용한것
2.멀티 뷰 제공: 실제 데이터의 내용은 한 파일에 저장하더라도 이를 여러 사용자에게 멀티 뷰로 제공하는 것이 가능하다.
트랜잭션, 동시성제어: operation을 transaction단위로 나누어 동시접근할때의 문제를 해결한다.
DBMS는 데이터를 내부단계, 개념적 단계, 외부적 단계로 나누어 저장함으로서, 사용자가 내부적 상황을 잘 모르더라도 외부적 단계(뷰) 와 상호작용하여 데이터에 접근할 수 있도록 한다.
내부 단계는 실제 디스크상에 저장되어있는 데이터의 형태, 개념적 단계는 데이터베이스의 전체 내용으로 어떤 컬럼에 어떤 정보가 기술되어있는지 등이다. 이때 데이터의 무결성과 일관성이 보장될 수 있다. 외부 단계는 개념적 단계의 데이터베이스의 일부만을 사용자에게 보여주고 상호작용할 수 있도록 하는것이다.
이러한 계층 구조를 위해서는 외부-개념 mapping, 개념-내부 mapping을 통해 내부, 개념의 변화가 일어날 경우 그 바로 윗단계 또한 mapping에 맞게 변화하여 윗단계에서는 그대로 사용할 수 있도록 한다.