[데이터베이스] 데이터베이스 vs 파일시스템
2022. 8. 12. 19:09ㆍCS/데이터베이스
- 데이터베이스가 등장하기 이전, 컴퓨터는 파일시스템을 이용하여 데이터를 관리하였다. 하지만, 이 파일시스템을 사용하는 방식은 데이터베이스에 비해 많은 단점을 가지고 있었다.
- 따라서, 이 데이터베이스와 파일시스템이 갖고 있는 특징과 왜 데이터베이스를 사용하는가를 알아보도록 하자.
파일시스템 | 데이터베이스 | |
구조 | 특정 구조가 없음 | table 형태 |
접근 방식 | 순차적 접근만 가능 | 비순차적 접근 가능 |
중복 | O | 비교적 덜 발생 |
불일치 | O | 비교적 덜 발생 |
트랜잭션 | X | O |
다중 사용자의 접속 | X | O |
보안 및 관리 | 각 프로그램마다 데이터를 가지고 있어 보안이 까다롭다. | 사용자마다 다른 권한 부여가 가능 |
질의어 | X | SQL |
회복 | X | O |
▷ 파일 시스템의 단점
- 중복 데이터가 많다.
- 회복 기능이 없다.
- 데이터의 추가/수정/삭제가 번거롭다. 동시성 제어 또한 제공되지 않는다.
- 동일한 파일에 두 개 이상의 프로세스가 동시에 접근할 수 없다.
- 응용 프로그램에 의존도가 높다.
▷ 데이터베이스의 특징
① 데이터의 독립성
- 물리적 독립성 : 데이터베이스의 크기를 늘리거나 성능 향상을 위해 데이터 파일을 늘리고 새롭게 추가하더라도 관련 응용프로그램을 수정할 필요가 없다.
- 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시킬 수 있다.
② 데이터의 무결성
- 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능이다. 데이터의 유효성 검사를 통해 데이터의 무결성을 구현한다.
③ 데이터의 보안성
- 인가된 사용자만 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 DBMS 내의 모든 데이터에 보안성을 가진다.
④ 데이터의 일관성
- 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우의 발생할 수 있는 데이터의 불일치성을 배제할 수 있다. 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
⑤ 데이터 중복 최소화
- 데이터베이스는 데이터를 통합하여 관리함으로써 파일 시스템의 단점 중 하나인 데이터의 중복 문제를 해결할 수 있다.
▷ 데이터베이스의 성능
- 데이터베이스의 성능 문제는 디스크 I/O를 어떻게 줄이는지에서부터 시작한다. 디스크 I/O란, 디스크 드라이브의 플래터(원판)을 돌려서 읽어야 할 데이터가 저장된 위치로 디스크 헤더를 이동시킨 후, 데이터를 읽는 것을 의미한다.
- 이 때, 데이터에 접근하는데 걸리는 시간은 디스크 헤더를 움직여서 읽고 쓸 위치로 옮기는 단계에서 결정된다. 즉, 디스크의 성능은 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한 번에 기록하느냐에 따라 결정된다.
- 그렇기 때문에 순차 I/O가 랜덤 I/O보다 빠를 수밖에 없다. 하지만 현실에서는 대부분의 I/O 작업이 랜덤 I/O이다. 랜덤 I/O를 순차 I/O로 바꿔서 실행할 수는 없을까? 이러한 생각에서부터 시작되는 데이터베이스 쿼리 튜닝은 랜덤 I/O 자체를 줄여주는 것이 목적이라고 할 수 있다.
- 결국, 어떻게 하면 헤더 이동을 줄일 수 있을까(디스크 스케줄링)라는 물음에 답하는 것이 성능을 향상시킬 수 있다.
'CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터베이스 키(key)의 개념 및 종류 (0) | 2022.08.12 |
---|---|
[데이터베이스] 커넥션 풀이란? (Connection Pool) (0) | 2022.08.12 |
[데이터베이스] 데이터베이스의 저장과 접근 : 해싱 (0) | 2022.06.20 |
[데이터베이스] 트랜잭션 (0) | 2022.06.19 |
[데이터베이스] 뷰와 시스템 카탈로그 (0) | 2022.06.18 |