--목차--
데이터베이스 목적
데이터베이스의 특징
데이터베이스 성능
--------
1. 데이터베이스의 목적
데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였지만, 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 한다.
문제점은 데이터 종속성, 중복성, 데이터 무결성이다.
2. 데이터베이스의 특징
1) 데이터의 독립성
물리적 독립성: 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련 응용 프로그램을 수정할 필요가 없다.
논리적 독립성: 데이터베이스는 논리적 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.
2) 데이터의 무결성
여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성 구현.
3) 데이터의 보안성
인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.
4) 데이터의 일관성
연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성 배제 가능.
작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
5) 데이터 중복 최소화
데이터를 통합해서 관리하기 때문에 파일 시스템의 단점 중 하나인 자료의 중복과 데이터의 중복성 문제 해결 가능.
3. 데이터베이스의 성능
디스크 I/O 줄이는 방법에서 시작.
디스크 I/O: 디스크 드라이브의 플래터를 돌려서 읽어야 할 데이터가 저장된 위치로 디스크 헤더를 이동시킨 후 데이터를 읽는 것을 의미한다. 데이터를 읽는데 걸리는 시간은 디스크 헤더를 움직여서 읽고 쓸 위치로 옮기는 단계에서 결정된다. 디스크의 성능은 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한번에 기록하느냐에 따라 결정.
순차 I/O가 랜덤 I/O보다 빠를 수밖에 없다.
현실은 대부분의 I/O작업이 랜덤 I/O이다. 랜덤 I/O를 순차 I/O로 바꿔 실행하는 것이 데이터베이스 쿼리 튜닝이다.