[DB] 데이터베이스란? DBMS 란?
- Computer Science/[DB]
- 2021. 10. 6.
데이터베이스란?
데이터베이스(Database)는 통합 관리되는 데이터들의 집합을 뜻한다.
데이터베이스를 사용하는 이유는 뭘까? 다음과 같은 이유들을 들 수 있겠다.
- 데이터 공유 : 많은 사람들이 데이터를 공유할 수 있다.
- 중복의 제거 : 데이터를 한 곳에 모으면서 중복되는 데이터를 제거할 수 있다.
- 데이터 통합 : 흩어져 있는 데이터를 한 곳에 모을 수 있다.
- 보안성 : 권한이 있는 관리자만이 데이터를 관리한다면 데이터의 보안을 지킬 수 있다.
이외에도 다양한 이점이 있다.
DBMS(DataBase Management System)란?
DBMS는 데이터베이스 관리 시스템으로 데이터베이스 내의 데이터에 접근할 수 있도록 하는 소프트웨어들을 의미한다.
DBMS는 어떻게 탄생하게 됐을까?
DBMS 이전에는 파일 시스템을 이용해 데이터를 관리하였다. 파일 시스템은 다음과 같은 단점들을 가지고 있었다.
- 데이터의 중복, 불일치 : 다양한 파일들에 다양한 포맷의 중복된 정보가 기록되곤 했다.
- 데이터 접근 어려움 : 새로운 작업을 할 때마다 새로운 프로그램을 작성해야 했다.
- 원자성(Atomicity) 보장 X: 정보를 갱신할 때 정보가 존재하는 모든 곳을 갱신해야 하는데 부분적으로만 되곤 했다.
- 다수의 사용자 사용 불가 : 다수의 사용자가 정보에 접근하는 것이 쉽지 않았다.
이외에도 다양한 단점들이 존재하였다. 이러한 단점을 개선할 수 있는 것이 DBMS이다.
DBMS의 장점
DBMS는 다음과 같은 장점들이 있다.
- 데이터의 독립성
- 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.
- 논리적 독립성 : 데이터베이스는 다양한 응용 프로그램의 논리적 요구를 만족시킬 수 있다.
- 데이터의 무결성 : 데이터의 유효성 검사 등 DBMS는 데이터의 무결성을 구현한다. 즉, 입력 범위를 벗어나는 입력값은 저장할 수 없도록 하는 등 데이터의 무결성을 보장하려고 한다.
- 데이터의 보안성 : 허가된 사용자들만이 데이터에 접근할 수 있고, 관리자만이 데이터를 관리할 수 있다.
- 데이터의 일관성 : 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다. 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
- 데이터 중복 최소화 : 데이터를 통합 관리함으로써 파일 시스템의 단점 중 하나인 자료의 중복과 데이터의 중복성 문제를 해결할 수 있다.
데이터베이스의 성능
데이터베이스의 성능 이슈는 디스크 I/O 를 어떻게 줄이느냐에서 시작된다.
디스크 I/O 란 디스크 드라이브의 플래터(원판)을 돌려서 읽어야 할 데이터가 저장된 위치로 디스크 헤더를 이동시킨 다음 데이터를 읽는 것을 의미한다.
이때 데이터를 읽는 데 걸리는 시간은 디스크 헤더를 움직여서 읽고 쓸 위치로 옮기는 단계에서 결정된다.
즉 디스크의 성능은 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한 번에 기록하느냐에 따라 결정된다고 볼 수 있다.
그렇기 때문에 순차 I/O 가 랜덤 I/O 보다 빠를 수밖에 없다.
하지만 현실에서는 대부분의 I/O 작업이 랜덤 I/O 이다.
랜덤 I/O 를 순차 I/O 로 바꿔서 실행할 수는 없을까?
이러한 생각에서부터 시작되는 데이터베이스 쿼리 튜닝은 랜덤 I/O 자체를 줄여주는 것이 목적이라고 할 수 있다.
반응형
'Computer Science > [DB]' 카테고리의 다른 글
[DB] 트랜잭션(Transaction)이란? ACID란? (0) | 2021.11.16 |
---|---|
[DB] 키, 후보키, 기본키, 슈퍼키, 대체키, 외래키란? (0) | 2021.11.05 |
[DB] 정규화(Normalization)란? 정규화 예시, 1NF, 2NF, 3NF, BCNF (9) | 2021.11.05 |
[DB] 이상현상(anomaly), 함수 종속성(Functional Dependency)이란? (0) | 2021.11.05 |
[DB] 인덱스(index)란? 인덱스 자료구조 (0) | 2021.11.05 |