본문 바로가기
Quality control (Univ. Study)/Database Design

Databases and Database Users

by 생각하는 이상훈 2023. 9. 5.
728x90

개요

Data: 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값

Information: 데이터에 의미를 부여한 것

Knowledge: 사물이나 현상에 대한 이해

데이베이스(Database): 관련있는 데이터의 모임

데이터베이스 관리 시스템(DBMS): 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지

데이터베이스 시스템(Database System): Database와 그를 관리하는 소프트웨어 (DBMS,응용프로그램) 모두를 칭하는 용어

작은 세계(mini-world, UoD: Universe of Database): 데이터베이스 구축의 대상이 되는 실세계의 일부분

 

Simplified database system environment

대학교 정보 데이터베이스 예제 - 엔티티와 관계의 집합

 

1. Entity

– STUDENT

– COURSE

– (COURSE의) SECTION

– DEPARTMENT

– INSTRUCTOR

 

2. Entity Relation

– SECTION은 특정 COURSE에 속한다.

– STUDENT는 SECTION에 참가한다.

– COURSE는 선수 COURSE가 있다.

– INSTRUCTOR는 SECTION을 강의한다.

– COURSE는 DEPARTMENT에서 제공한다.

– STUDENT는 DEPARTMENT를 전공한다.

 


Database의 특징

1. 데이터베이스 시스템의 자기 기술성(self-describing nature)

Database 카탈로그(catalog)에는 메타 데이타 (meta-data)가 저장되어 있다.

이를 이용하여 하나의 DBMS가 다수의 데이타베이스를 관리할 수 있다.

메타 데이타 (meta-data) : 데이타베이스에 대한 정보

2. 프로그램과 데이타의 분리(Insulation between programs and data)

데이타베이스 내의 데이타 저장 구조가 변경되어도 Database 응용 프로그램은 영향을 받지 않는 (변경될 필요가 없는) 성질이 있다. 프로그램과 데이타의 독립성(program-data independence)을 높인다.

3. 데이타 추상화(data abstraction)

데이타 모델(data model)을 사용함으로써 저장 구조의 자세한 내용은 사용자로부터 은닉시키고 각자의 요구 에 맞는 개념적인 뷰(conceptual view)만을 제공한다.

 

4. 데이타에 대한 다양한 뷰(view) 제공

사용자는 전체 데이타베이스 보다는 관심이 있는 데이타베이스의 일부를 뷰로 정의할 수 있다.

5. 데이터의 공유와 다수 사용자 트랜잭션 처리

여러 사용자가 (동시에) 동일한 데이터베이스 공유 가능하도록 지원한다.

동시에 사용하더라도 일관성(consistency)을 보장하기 위한 동시성 제어 (concurrency control) 기능을 제공한다.

• 트랜잭션: DB 작업을 수행하는 단위 프로세스 (예: 계좌이체, 좌석예약)

• 트랜잭션의 주요 성질: ACID, Jim Gray

- 원자성(Atomicity) : 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.

- 일관성(Consistency) : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터 베이스 상태로 유지하는 것을 의미한다.

- 독립성(Isolation) : 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보 장하는 것을 의미한다.

- 지속성(Durability) : 성공적으로 수행된 트랜잭션은 영원히 반영되어야 한다.

 

외부(user) 관점에서 본 데이터베이스의 특성

 

ㅇ실시간 접근성 (real-time accessibilities)

- 질의에 대한 실시간 처리 및 응답

 

ㅇ계속적인 변화 (continuous evolution)

- 갱신, 삽입, 삭제 : 동적 특성

 

ㅇ동시 공용 (concurrent sharing)

- 여러 사용자가 동시에 사용

 

ㅇ내용에 의한 참조 (content reference)

- 위치나 주소가 아닌 값에 따라 참조. (SELECT, UPDATE, DELETE, INSERT 등)

 

• 데이타베이스 관리자 (Database administrator, DBA)

– 데이타베이스 시스템의 관리를 책임진 사람

– DBMS 자체는 물론 데이터베이스 구축, 관리에 해박한 지식과 많은 경험이 요구됨 à 급여도 상대적으로 높음

 

• 데이타베이스 설계자(Database designer)

– 데이타베이스의 설계를 책임진 사람

– 실세계 현상을 모델링하는 기술이 요구됨 (ERD, FD, 관계형 데이터베이스 이해)

 

• 최종 사용자(End users)

– 데이타베이스에 대하여 질의, 갱신, 보고서 작성 등을 담당하는 사람

Ø 캐주얼 사용자(casual end users): 비정기적인 데이터베이스 사용자, 매번 다른 형태의 정교한 질의를수행, 중상급의 관리자

Ø 초보 사용자(parametric or naive users): 미리 일정한 용도로 작성된 프로그램을 사용하는 사용자; 은행점원이나 여행사 예약 담당자 등 (기작성 트랜잭션(canned transaction) 사용)

Ø 전문 사용자(sophisticated end users): 엔지니어, 과학자, 비즈니스 분석가 등으로, DBMS의 고급기능을이용하여 복잡한 응용을 개발

Ø 독자적 사용자(stand-alone end user): 자신만의 개인 DB를 구축 관리하는 사용자

- 메뉴나 GUI를 사용하여 자신만의 데이터베이스를 관리/이용

 

• 시스템 분석가/응용 프로그래머(System analysts / Application programmers)

– 초보 사용자를 위하여 잘 정의된 기능의 응용을 설계하고 구현하는 사람

-> (초보 사용자의) 요구 분석을 통한 트랜잭션의 명세를 작성

– 그래픽 인터페이스 등의 구현을 통해 최종 사용자의 이용 편의성을 제공

-> DBMS의 내부 기능을 잘 이해하고 있어야 함


DBMS

DBMS의 기능

 

• 데이터 중복의 최소화 및 통제된 data 중복성 제공

– Minimal redundancy, Controlled redundancy

– 데이터 일치성 (consistency) 보장 및 메모리 낭비 방지

 

• 동시성 제어

– 다 사용자 간의 데이타의 공유 및 동시 접근 보장

 

• 보안 기능

– 권한없는 사용자의 데이타 접근을 통제

 

• 다양한 사용자 인터페이스 제공

 

• 데이타 사이에 존재하는 복잡한 관련성을 표현

 

• 데이타베이스의 무결성을 보장

 

• 벡업과 복구 기능을 제공

 

DBMS 사용 효과

• 표준화된 데이타 관리  – 조직 내 모든 부서에서 표준화된 문서 관리로 업무 효율성 증대

 

• 데이타 구조 변경에 융통성 부여 – 데이타베이스 내의 자료 구조가 어떠한 이유로 변경되어도 사용자에 대한 영향은 거의 없음

 

• 응용 프로그램의 개발 시간 단축 – 응용 프로그램의 상당한 부분을 DBMS가 처리함

 

• 항상 최신의 정보를 제공(실시간성) – 사용자 중에서 한 사람의 갱신으로 나머지 사람은 즉시 변경된 값을 접근가능

 

• 규모의 경제성 (economics of scale) – 부서마다 다른 방식으로 자료를 관리하는 것보다 통합 DB로 관리하는 것이 전체적인 관점에서 저 비용임


 

728x90