데이터베이스시스템 - Chapther 1

이전에 정리했던 글이다.

교재: fundamental of database system

 

[Chapther1 - Databases and Database Users]

 

▶ 정의

* 데이터베이스 : 서로 연관된 데이터들의 집합

* 데이터 : 기록되고, 의미를 가진 facts

* 미니 월드(Mini-world) : 어떤 데이터를 가지고 있는, 현실의 일부 (ex: A학교 학생의 성적)

* DBMS(데이터베이스 관리 시스템) : 컴퓨터화된 데이터베이스의 생성 및 유지보수를 용이하게 하기 위한 소프트웨어 패키지/시스템. 사용자와 데이터베이스를 연결해주는 역할을 함

* 데이터베이스 시스템 : DBMS 소프트웨어와 데이터 자체. 때로는 애플리케이션도 포함

▶ 데이터, 데이터베이스 기술의 영향

* 비즈니스, 서비스 산업, 교육 등.

* 최근에는 소셜 네트워크, 과학/환경/의학/유전적으로도 사용.

* 스마트 모바일 디바이스에도 이용

▶ 데이터베이스 시스템 환경

사용자


데이터베이스 시스템(애플리케이션 프로그램/질의)



DBMS(프로그램/질의 수행, 데이터 접근)



데이터베이스(저장된 데이터 정의(Meta-Data), 데이터 저장)

▶ DBMS의 기능 : Define, Construct(Load), Manipulating, Processing(Sharing)

* 데이터베이스 정의 (테이블 생성 관련. 구조 및 제약을 고려)

* 초기 데이터베이스 콘텐츠를 보조 저장 매체에 구축/로드

* 데이터베이스 관리(조작)

  1. 검색 : 질의 조회
  2. 수정 : 삽입/삭제, 컨텐츠 업데이트
  3. 웹 애플리케이션을 통한 데이터베이스 접근

동시 사용자, 애플리케이션 프로그램을 통한 처리 및 공유 -모든 데이터는 유효하고 일관성 있게 유지

▶ 데이터베이스에 대한 애플리케이션 동작

* 질의, 처리

* 권한이 없는 사용자는 데이터에 접근하지 못하게 해야 함

* 사용자의 변경 요구를 계속하여 처리

▶ 데이터베이스 접근법의 주요 특징

1. 데이터베이스 시스템의 자기 서술적 특징

* DBMS의 카탈로그에는 데이터베이스의 구조, 타입, 제약과 같은 특징이 저장되어 있음

* 이러한 특징(구조, 타입, 제약 등)을 meta-data 라고 함

* 이를 통해 DBMS 소프트웨어가 서로 다른 데이터베이스 애플리케이션에 사용될 수 있음

* 몇몇 새로운 시스템(NOSQL 같은)은 meta-data를 필요로 하지 않음

2. 프로그램과 데이터 간의 독립성

* Program-data independence라고 불림

* DBMS 접근 프로그램을 바꾸지 않고도 데이터 구조, 저장된 organization를 바꿀 수 있음

3. 데이터 추상화

* Data model을 이용해 저장소의 세부 정보를 감추고 사용자에게는 데이터베이스의 conceptual view를 제공

* 프로그램은 세부 정보 대신 Data model에 접근

4. 다중 뷰 지원

* 사용자는 관심사(interest)에 따라 접근하고자 하는 데이터 view를 달리 할 수 있음

5. 데이터의 공유와 다중 사용자 transaction 처리

* 동시 접근 사용자가 데이터베이스를 검색하고 업데이트할 수 있게 함

* DBMS가 각 transaction이 올바르게 실행/중단되도록 보장

* 리커버리 서브 시스템이 각 transaction의 영구 기록을 보장

OLTP(Online Transaction Processing)이 초당 수백 개의 동시 transaction을 실행

▶ 데이터베이스의 사용자(Users)

* 데이터베이스 관리자(DBA), 데이터베이스 설계자(designer), 최종 사용자(고객, end user) 등이 존재

1. 데이터베이스 관리자(Database administrators, DBA)

데이터베이스에 대한 접근 권한 부여, 데이터베이스 사용의 조정 및 모니터링, 소프트웨어 및 하드웨어 리소스 획득, 사용 제어 및 운영 효율성 모니터링을 담당

2. 데이터베이스 설계자(Database designer)

* 데이터베이스에 대한 내용, 구조, 제약, 기능, transaction을 정의

* 최종 사용자(end user)의 요구를 이해, 반영

3. 최종 사용자(end-users)

무대의 배우에 비유할 수 있다

* 질의, 레포트를 사용. end-users의 일부는 데이터베이스의 내용을 업데이트하기 위해 사용

* 최종 사용자는 다시 Casual, Naive, Sophisticated, Stand-alone으로 분류된다.

* Casual : 비정기적 / Naive : 초보 / Sophisticated : 전문적 사용자

4. 개발자(Developer)

* 설계된 데이터베이스를 tool에 적용