Programming/Database

데이터베이스의 특징?

JohnMark 2016. 6. 20. 19:25
반응형

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의 기본적인 기능은 동시에 수행되는 트랜잭션들이 상호 방해를 받지 않고 정확하고 효율적으로 수행되도록 보장하는데 있다.

- 트랜잭션? 원자성, 고립성


반응형