이전에 정리했던 글이다.
교재: fundamental of database system
[Chapther1 - Databases and Database Users]
▶ 정의
* 데이터베이스 : 서로 연관된 데이터들의 집합
* 데이터 : 기록되고, 의미를 가진 facts
* 미니 월드(Mini-world) : 어떤 데이터를 가지고 있는, 현실의 일부 (ex: A학교 학생의 성적)
* DBMS(데이터베이스 관리 시스템) : 컴퓨터화된 데이터베이스의 생성 및 유지보수를 용이하게 하기 위한 소프트웨어 패키지/시스템. 사용자와 데이터베이스를 연결해주는 역할을 함
* 데이터베이스 시스템 : DBMS 소프트웨어와 데이터 자체. 때로는 애플리케이션도 포함
▶ 데이터, 데이터베이스 기술의 영향
* 비즈니스, 서비스 산업, 교육 등.
* 최근에는 소셜 네트워크, 과학/환경/의학/유전적으로도 사용.
* 스마트 모바일 디바이스에도 이용
▶ 데이터베이스 시스템 환경
사용자 ↓ ↕ 데이터베이스(저장된 데이터 정의(Meta-Data), 데이터 저장) |
▶ DBMS의 기능 : Define, Construct(Load), Manipulating, Processing(Sharing)
* 데이터베이스 정의 (테이블 생성 관련. 구조 및 제약을 고려)
* 초기 데이터베이스 콘텐츠를 보조 저장 매체에 구축/로드
* 데이터베이스 관리(조작)
- 검색 : 질의 조회
- 수정 : 삽입/삭제, 컨텐츠 업데이트
- 웹 애플리케이션을 통한 데이터베이스 접근
* 동시 사용자, 애플리케이션 프로그램을 통한 처리 및 공유 -모든 데이터는 유효하고 일관성 있게 유지
▶ 데이터베이스에 대한 애플리케이션 동작
* 질의, 처리
* 권한이 없는 사용자는 데이터에 접근하지 못하게 해야 함
* 사용자의 변경 요구를 계속하여 처리
▶ 데이터베이스 접근법의 주요 특징
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에 적용