1) DB와 파일은 어떤 차이가 있는가?
비교 | 데이터베이스 | 파일 |
공유 | 여러 사람이 효과적으로 공유 | 공유불편(이메일, 파일 전송) |
최신성 | 변경시 즉시 모든 사람이 변경된 데이터 활용 | 각자 가진 파일에서 변경된 부분을 Update하거나 수정본을 다시 전송 |
뷰 | 거대한 DB에서 각자가 관심있는 부분을 view로 정의 | 각자가 관심있는 부분만 보는 것이 어려움 |
접근권한 | 정교하게 사용자 접근을 제어, 암호화, 사후 감사 등 (유저별 접근권한 설정가능) | 접근 제어가 정교하지 못함 |
복구 | 실수로 지우거나 정전이 되도 최신상태로 복구가 가능함 | 복구가 어려움 |
2)Self Description
- database에는 DB자체뿐만 아니라 DB의 구조와 제약조건에 대한 완전한 정의(metadata)까지 보유 => database catalog라고 부른다.
Catalog에는 DB에 속하는 각 table의 구조, 각 데이터 항목의 타입과 저장 형식, 데이터 항목의 타입과 저장 형식, 데이터에 대한 다양한 제약조건 등이 저장된다.
- 하나의 DBMS는 여러 database를 생성하고 관리할 수 있으며, 이는 각 데이터베이스에 대한 meta data를 유지함으로써 가능하다.
3) 데이터 독립성
- 데이터베이스 저장구조가 변경되어도 이를 사용하는 응용 프로그램이나 사용자는 최소한의 영향을 받게 된다.
(프로그램/ 데이터 분리)
- 사용자는 테이블 구조에 관심이 있으므로 디스크 저장구조가 변경되어도 큰 영향을 받지 않는다.
(e.g 자동차 엔진이 변경되어도 자동차를 운전하는 방법은 똑같다.)
4) 데이터 추상화
- 데이터베이스에서 사용자에게 저장구조의 복잡성을 숨기고 테이블 개념만으로 DB를 생성/관리할 수 있도록 지원한다.
- 테이블을 생성, 테이블에 대하여 데이터를 분석, 테이블에 대하여 데이터를 변경한다.
5) 다양한 뷰
- DBMS는 저장된 테이블 정보를 가공하여 (가로, 세로 분할, 테이블 조합 등)
다양한 형태(뷰)로 사용자에게 필요한 데이터 set을 제공한다.
- 수백, 수천가지 뷰를 정의할 수 있다.
- 사용자 편의성 제고한다.
- 보안/권한관리에 유용하다.
6) 데이터 공유
- 필요한 자료를 한번만 database에 저장하고, 모든 응용(사용자)에서 이를 공유하도록 한다. => 데이터 중복방지, 최신성, 일치성 보장한다.
- File system에서는 여러 응용에서 데이터를 중복하여 저장/관리한다.
- DBMS는 단일 사용자용과 다수 사용자용으로 구분된다.
- 다수 사용자용 DBMS는 여러 사용자가 동시에 DB를 접근할 수 있도록 지원하는 DBMS
(e.g 수강신청DB - 모든 학생이 동시 접근)
- 다수 사용자용 DBMS에는 동시성 제어(Concurrency control) 소프트웨어가 내장되어 다수 사용자가 동일한 데이터를 동시에 변경하는 경우에도 데이터의 일관성(consistency)을 보장한다. (줄을 서서 일을 처리한다.)
- 예를 들어, 항공 회사의 여러 에이전트들이 동일한 좌석을 예약하는 경우에도 DBMS는 하나의 좌석이 한 에이전트에게만 지정되도록 보장한다.
- 좌석 예약과 같은 응용을 일반적으로 온라인 트랜잭션 처리(OLTP: On-Line Transaction Processing) 응용이라고 부른다.
- 다수 사용자용 DBMS의 기본적인 기능은 동시에 수행되는 트랜잭션들이 상호 방해를 받지 않고 정확하고 효율적으로 수행되도록 보장하는데 있다.
- 트랜잭션? 원자성, 고립성
'Programming > Database' 카테고리의 다른 글
[Mysql] group_concat 으로 그룹핑한 데이터 하나로 모으기 (0) | 2020.07.04 |
---|---|
[Mysql] 버전 문자열 비교 및 숫자 변환 (2) | 2019.06.05 |
DBMS의 장점 (0) | 2016.06.20 |
데이터베이스 사용자 (0) | 2016.06.20 |
데이터베이스란? (0) | 2016.06.20 |