데이터베이스를 설명하기 앞서 파일시스템에 대해 언급을 하려고 한다.
파일시스템이란
- 종이에 기록하던 내용을 컴퓨터 파일에 기록하여 저장하는 것이다.
- 컴퓨터에 데이터를 저장하는 방식으로는 메모장이나 엑셀등을 활용하였다.
- 파일시스템은 대개 하나의 응용프로그램마다 하나의 데이터 파일이 할당된다.
그래서 어떤 기능을 구현하고자 할때는 기능의 개수만큼 데이터 파일이 생겨야 할 것이다
- 초기에는 큰 문제가 없을 수 있지만, 대량의 데이터가 누적되다보면 데이터 중복으로 인해 데이터 불일치가 발생하게 된다.
데이터베이스 시스템이란
- DBMS를 도입하여 데이터를 통합 관리하는 시스템
- DBMS가 설치되어 데이터를 가진 쪽을 서버(Server), 데이터를 요청하는 쪽을 클라이언트(Client)라고 한다.
- DBMS 서버가 파일을 다루며 데이터의
일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
- 데이터의
중복을 줄이고 데이터를 표준화하며 무결성을 유지
데이터베이스 특징
- 실시간 접근성
- 데이터베이스는 실시간으로 서비스된다.
사용자가 데이터를 요청하면 수 초 내에 결과를 서비스한다.
- 계속적인 변화
- 데이터베이스에 저장된 내용은 한 순간의 상태이지만, 데이터 값은 시간에 따라 항상 바뀐다.
- 동시 공유
- 데이터베이스는 서로 다른 응용프로그램에서 접근을 하며 동시에 공유된다.
- 내용에 따른 참조
- 데이터베이스에 저장된 데이터는 물리적인 위치가 아니라 값에 따라 참조된다.
예를들어, 쇼핑몰에서 상품을 검색하면 실시간으로 서버로부터 응답을 받을 수 있다.
또한, 해당 상품의 가격이 계속적으로 변화하여 노출된다.
해당 상품을 여러 사용자가 동시에 구매를 위한 접근이 가능하다.
우리는 해당 상품이 메모리의 어떤 주소값으로 저장되어있지 몰라도 내용으로 검색을 할 수 있다.
파일시스템 vs 데이터베이스 차이
- 데이터의 구조가 다르다
- 파일 시스템은 데이터를 파일 단위로 저장하게 되며, 해당 파일들은 디렉토리 구조안에 저장된다.
- 데이터베이스는 데이터를 구조화된 형태로 저장한다.
테이블, 로우, 컬럼 등 데이터 구조를 사용하여 데이터를 저장한다.
- 데이터 중복, 데이터 불일치
- 파일 시스템의 경우 여러 응용프로그램에서 접근할 경우 데이터 중복이 불가피하며, 이로 인해 데이터 불일치가 발생한다.
- 데이터베이스는 무결성 제약조건을 통해 중복을 피할 수 있으며 일관성 있게 유지될 수 있다.
- 보안의 미흡
- 파일 시스템의 경우 파일 또는 디렉토리에 읽기, 쓰기, 실행 권한 등을 관리하고 사용자 및 그룹에 대한 권한을 관리한다.
- 데이터베이스의 경우 테이블, 뷰, 프로시저 등 데이터베이스 객체에 대한 접근 권한을 설정할 수 있고, 사용자를 식별하고 사용자별 세분화된 권한을 부여하기 위한 인증 및 권한 부여 매커니즘을 가지고 있다.
- 성능과 속도
- 파일시스템의 경우 적은 규모의 데이터를 다룰때는 빠른 속도를 자랑하지만 대량의 데이터를 다루기엔 파일 관리와 성능적 퍼포먼스를 보이긴 힘들다
- 데이터베이스의 경우 대량의 데이터를 처리할 때 효과적이고, 복잡한 연산과 쿼리를 실행 가능하다.