DB - 데이터베이스 관리 시스템의 등장 배경
데이터베이스 관리 시스템의 등장 배경
이 이야기를 하기 위해선 먼저 컴퓨터가 나오긴 전 시대로 가야한다.
컴퓨터가 없던 시절 가게 판매 기록, 주문 기록 등 다양한 정보들은 종이에 직접 수기로 적어 관리하였다.
이 방식에 대해서는 설명을 안해도 알 수 있듯이 데이터를 관리하기엔 문제가 많은 방식이다.
우선 데이터의 나열은 가능하지만 구조화된 관리가 어렵고, 구조화를 한다고 하더라도 데이터의 분석이나 가공을 사람이 일일이 직접 해야하기 때문에 번거롭다.
또한, 데이터는 계속해서 쌓이기 때문에 종이가 점점 늘어나게 되고 쌓이게 된 종이들에서 특정 데이터를 찾는 것은 아주아주 번거로울 것이다.
컴퓨터가 등장한 후 접근성이 가장 뛰어난 텍스트파일(txt)파일에 시도해보지만.. 이 또한 종이와 거의 유사하다.
종이와는 다르게 계속 쌓이더라도 물리적 공간을 차지하지 않고 디렉터리 분류만 잘 해 놓는다면 필요한 텍스트 파일을 찾는데까진 문제가 없겠으나, 종이와 마찬가지로 구조화된 데이터 저장이 아닌 데이터의 나열만 가능하며 데이터 분석, 가공 역시 사람이 직접 해야한다.
그래서 엑셀(스프레드시트)를 통해 데이터를 기록하기로 하는데.
행(row)과 열(column)으로 이루어진 구조화된 형식에 데이터를 저장하기 때문에 데이터의 관리가 종이, 텍스트파일보다 월등히 높다.
거기다가 유효성 검사를 통한 어느정도의 제약을 걸 수도 있으며 데이터 필터링과 수식 지원으로 어느정도의 가공도 가능하다.
하지만 이 방식에도 문제가 있었다.
엑셀 뿐만 아닌 파일시스템 전체에 해당하는 문제점으로 아래와 같다.
- 데이터의 중복, 불일치, 저장 공간 낭비: 엑셀로 데이터를 관리하더라도 모든 데이터를 한 파일에 정리하는 것이 아닌 파일을 분리하여 관리한다.
- 예를 들어, 사용자 정보.xlsx, 주문 기록.xlsx라는 파일이 있다고 가정할 때 각각의 엑셀 파일에는 어쩔 수 없이 사용자의 정보가 들어가게 되어있다.
- 이로인해 데이터의 중복이 생기게 된다.
- 또한, 직원 A가 한 데이터를 수정한 후 공유하는 것을 실수로 잊게된다면 이로 인해 데이터의 불일치 현상이 생기게 된다.
- 당연한 얘기겠지만 파일이 쌓일수록 저장 공간이 낭비된다.
- 예를 들어, 사용자 정보.xlsx, 주문 기록.xlsx라는 파일이 있다고 가정할 때 각각의 엑셀 파일에는 어쩔 수 없이 사용자의 정보가 들어가게 되어있다.
- 데이터 접근 비효율: 서로 다른 각각의 엑셀 파일에서 데이터를 분석 또는 가공해야할 경우 해결할 수 있는 방법이 없기 때문에 사용자가 직접 파일을 오고가며 찾아야한다.
- 데이터 무결성 보장 X: 파일 시스템 상에서 간단한 유효성 검증은 가능하지만 세밀한 제약 조건을 설정하는 것은 불가능하다.
- 보안: 파일시스템은 읽기, 쓰기, 실행 권한만 제어 가능하기 때문에 사용자에 따라 접근 가능한 데이터 범위나 조작 범위 등을 제어 불가능하다
- 동시성 문제: 직원 A와 직원 B가 동시에 같은 데이터에 접근하여 데이터를 수정할 경우 파일시스템에서는 막을 방법이 없다.
- 데이터 복원 및 백업: 힘들게 기록한 데이터들을 사용자가 직접 주기적으로 백업을 해야하며 만약 백업을 놓쳤을 때 시스템에 장애가 발생하게 되면 데이터를 복구할 방법이 없어진다. 또한 백업을 주기적으로 해준다고 하더라도 시스템 장애 발생 시점 바로 이전 데이터까지 복원은 불가능하다.
이러한 이유들로 인해 사람들은 어떻게 하면 데이터를 더 효율적으로 관리할 수 있을까? 라는 질문을 던지면서 현재의 데이터베이스 관리 시스템까지 올 수 있게 되었다.