데이터베이스 시스템의 구성
데이터베이스 시스템 = DB + DBMS + 데이터베이스 언어 + 사용자
데이터베이스 시스템의 구성
데이터베이스(DB, Database)
한 조직의 여러 응용 시스템이 공용(Shared)하기 위해 최소한의 중복으로 통합(Integrated) 되고, 저장(Stored) 된 운영(Operational) 데이터의 집합이다.
데이터베이스 언어(Database language)
데이터베이스를 구축, 조작, 검색하는데 사용되는 프로그래밍 언어
사용자
① 데이터베이스 관리자(DBA)
② 데이터베이스 응용 프로그래머
③ 데이터베이스 사용자
DBMS(Database Management System)
데이터베이스를 구축하고 이용하는 기능을 제공하는 시스템 소프트웨어
DBMS (Database Management System)
DBMS의 정의
① 응용 프로그램과 데이터베이스의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 주는 소프트웨어 시스템이다.
② 데이터베이스를 액세스하기 위해 필요한 제어, 접근방법, 관리 등의 기능을 수행하는 소프트웨어이다.
③ 데이터베이스를 설계하는 사람이 장래의 업무처리 확대나 변경을 충분히 예측하여 그것을 바탕으로 만들어 놓은 프로그램이다.
④ DB의 구성, 접근방법, 관리유지에 대한 모든 책임을 지고 있다.
⑤ 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지
⑥ 보조기억장치에 저장되어 있는 데이터베이스에서 필요한 데이터를 검색하거나 데이터를 삽입, 수정, 삭제 등을 효율적으로 지원하기 위한 프로그램의 집합체
⑦ 종속성과 중복성의 문제를 해결하기 위해서 제안된 시스템
DBMS의 장점
① 표준화의 범기관적 시행
② 데이터의 보안 보장이 용이
③ 데이터 무결성 및 일관성 유지
④ 데이터 중복 최소화
DBMS의 필수기능
※ 내장 SQL (Embedded-SQL)
호스트 언어(C, C++, 비쥬얼베이직 등)에 삽입되는 SQL로써 주로 일괄처리나 동일 업무 반복시 사용되었다.
정의기능(Definition Facility)
① 데이터 정의어(DDL, Data Definition Language)을 이용하여 데이터베이스의 물리적 구조를 정의
② 데이터의 형, 구조, 데이터가 데이터베이스에 저장될 때의 제약조건 등을 명시하는 기능
③ 데이터의 논리적 구조와 물리적 구조 사이의 변환이 가능하도록 두 구조 사이의 사상(Mapping)을 명세하여 하나의 물리적 구조로 여러 응용 프로그램이 요구하는 데이터 구조를 지원하게 하는 것
④ 다양한 응용 프로그램과 데이터베이스가 서로 인터페이스를 할 수 있는 방법을 제공
제어기능(Control Facility)
① 데이터 제어어(DCL, Data Control Language)를 이용하여 데이터의 사용 권한 제어
② 데이터 무결성(Integrity)과 일관성을 유지
③ 보안(Security)과 권한(Authority) 검사
④ 병행수행 제어(Concurrency control)
조작기능(Manipulation Facility)
① 데이터 조작어(DML, Data Manipulation Language)를 이용하여 응용 프로그램을 수행 (데이터 검색, 입력, 수정, 삭제 등)
② 사용자의 응용 프로그램과 데이터 간의 인터페이스 수단 제공
③ 데이터 요청, 변경 등을 위한 질의를 수행
④ 데이터베이스를 접근하여 데이터의 검색, 삽입, 삭제, 갱신 등의 연산 작업을 위한 사용자와 데이터베이스 사이의 인터페이스 수단을 제공
데이터베이스 스키마(Schema)
스키마의 개요
① 1975년 미국의 국립 표준화 기관 ANSI/SPARC (American National Standards Institute / System Planning And Requirements Committee) 에서 제안
② 데이터베이스를 관점(view)에 따라 3개의 계층으로 분리하여 데이터베이스 사용자에게 내부적으로 복잡한 데이터베이스 구조를 단순화시킨 관점을 제공하는 것을 말함
데이터의 표현 방법
① 외부단계(External Level)
⊙ 각각의 데이터베이스 사용자 관점 또는 사용자 뷰(User View)를 표현
⊙ 뷰 단계(View Level) 라고도 함
② 개념단계(Conceptual Level)
⊙ 데이터와 그들 간의 관계(Relationship)를 표현
⊙ 논리 단계(Logical Level) 라고도 함 / 데이터 모델 사용함
③ 내부단계(Internal Level)
⊙ 물리적인 저장장치에서 데이터가 실제적으로 저장되는 방법을 표현
⊙ 물리 단계(Physical Level)라고도 함 / 물리적 데이터 모델 사용함
스키마의 정의
① 데이터베이스의 구조와 제약 조건에 대한 명세(specification)를 기술한 것
② 데이터베이스를 구성하는 데이터 객체, 이들의 성질, 이들 간에 존재하는 관계, 그리고 데이터의 조작 또는 이들 데이터 값들이 갖는 제약 조건에 관한 정의를 총칭하는 용어이다.
③ 스킴(Scheme)이라고도 한다.
스키마의 특징
① 데이터 사전(Data Dictionary)에 저장된다.
② 다른 이름으로 메타데이터(Meta-data)라고도 한다.
③ 데이터베이스의 구조(개체, 속성, 관계)에 대한 정의
※ 데이터 사전(Data Dictionary) 이란
① 데이터사전이란 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공한다.
② 데이터베이스는 명령이 실행될 때 마다 데이터 사전을 액세스한다.
③ DB 작업동안 데이터 사전을 읽어 객체의 존재 여부와 사용자에게 적합한 Access 권한이 있는지를 확인한다.
④ 데이터 사전에 저장되는 내용
⊙ 사용자 정보
⊙ 권한과 규칙 정보
⊙ 데이터베이스 스키마 객체(TABLE, VIEW, INDEX, …) 정보
⊙ 무결성 제약 조건에 관한 정보
⊙ 데이터베이스의 구조 정보
스키마의 3계층
① 외부 스키마(external schema)
⊙ 사용자의 요구사항을 도출하는 과정이다.
⊙ 사용자의 관점에서 보고자 하는 정보의 집합
⊙ 뷰(View) 또는 서브-스키마(Sub-Schema) 라고도 한다.
⊙ 전체 데이터베이스의 한 논리적인 부분으로 볼수 있으므로 서브 스키마(sub schema)라고도 한다.
⊙ 공용의 의미보다는 어느 개인이나 특정 응용에 한정된 논리적 데이터 구조
⊙ 데이터베이스의 개별 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의
② 개념 스키마(conceptual schema)
⊙ 데이터베이스의 전체적인 논리적 설계를 의미하는 것으로 데이터 객체, 성질, 관계, 제약조건에 관한 것 (개체간의 관계와 유지해야 할 제약 조건을 나타냄)
⊙ 데이터베이스 파일(file)에 저장되어 있는 레코드(Record)와 데이터 항목(item)의 이름을 부여하고 그들 사이에 관계의 구조를 나타내는 스키마(schema)
⊙ 논리 스키마 (Logical Schema) 라고도 한다.
⊙ 데이터베이스 접근권한, 보안정책, 무결성 규칙을 명세화 함.
③ 내부 스키마(internal schema)
⊙ 데이터 저장 구조의 세부사항과 접근 경로를 기술
⊙ 논리 스키마를 컴퓨터 내부에 저장할 수 있는 물리적인 구조로 변환한 것
⊙ 실제로 저장될 데이터베이스 내부 형식을 물리적으로 정의
⊙ 물리 스키마(Physical Schema) 라고도 함
사용자
DBA(Database Administrator, 데이터베이스 관리자)
① 데이터베이스 구조 등과 관련된 업무를 처리하며, 데이터베이스 전반에 책임을 갖는 사람 또는 조직
② 기업 또는 조직의 데이터베이스에 발생하는 데이터와 데이터를 접근하는 응용 프로그램을 통제하는 사람 또는 조직
응용 프로그래머(Application Programmer)
① 일반 사용자(최종 사용자)가 이용할 응용 프로그램을 개발하는 사용자 또는 사용 집단
② 데이터베이스와 관련된 구조 정보 및 사용자 요구사항을 파악하여 실제로 데이터베이스를 활용하기 위한 응용 프로그램을 개발하는 프로그래머
일반 사용자(최종 사용자, End User)
① 데이터베이스 관련 작업을 수행하기 위하여 응용 프로그램 또는 쿼리 프로그램 등으로 디스크를 저장장치에 있는 데이터에 접근하고 처리하는 작업을 수행하는 사람 또는 조직
DBA(Database Administrator)의 기능
DBA의 정의
① 데이터베이스 시스템의 원활한 기능을 수행하기 위하여 데이터베이스 구성 및 관리 운영 전반에 대한 책임을 가지고 직무를 수행하는 사람 또는 조직
② 기업 또는 조직의 데이터베이스에 발생하는 데이터와 데이터를 접근하는 응용 프로그램을 통제하는 사람 또는 조직
③ 데이터와 그 데이터에 접근하는 프로그램 모두를 중앙 통제하는 사람 또는 조직
④ 응용 프로그래머가 새로운 타입의 레코드를 만들기를 원하거나 기존 레코드에 새로운 데이터 항목을 포함 또는 크기를 확장함으로써 수정하기 원하면 DBA의 허락을 받아야 함
DBA의 주요 역할
① 데이터베이스 설계와 운영
⊙ 데이터베이스의 스키마 정의
⊙ 저장구조와 액세스 방법 정의
⊙ 보안 및 권한부여
⊙ 백업, 회복 절차를 정하고 수행
⊙ 데이터 사전의 유지 및 관리
⊙ 데이터베이스 구축
② 시스템 감독 및 분석 기능
⊙ 시스템 감시 및 성능 분석
⊙ 데이터베이스의 이상 현상 감시
⊙ 미들웨어 소프트웨어 등 종합적 자원관리
③ 행정 및 불편 해결
⊙ 사용자의 요구와 불평을 청취하고 해결
⊙ 데이터의 표현이나 문서화 표준 설정, 시행
데이터 독립성
개념
① 하위 단계의 구현 내용을 추상화하여 상위 단계에서는 인지하지 못하도록 해야 한다.
독립성의 종류
① 물리적 데이터 독립성(Physical Data Independency)
⊙ 3단계 데이터베이스 구조 중 최하위 단계인 내부 단계의 스키마가 변경되어도 외부 단계와 개념 단계의 스키마에는 영향을 미치지 않도록 지원하는 것
⊙ 데이터베이스 저장장치의 구조가 변경되어도 응용 프로그램이나 개념 스키마에는 영향을 미치지 않는 것
② 논리적 데이터 독립성(Logical Data Indepencency)
⊙ 3단계 데이터베이스 구조 중 중간 단계인 개념 단계의 스키마가 변경되어도 최상위 단계인 외부 단계의 스키마에 영향을 미치지 않도록 하는 것
⊙ 데이터베이스 논리적 구조가 변경되어도 응용 프로그램에는 영향을 미치지 않는 것
'정보처리기사 > 데이터베이스' 카테고리의 다른 글
06. 관계데이터언어(관계대수) (0) | 2017.08.01 |
---|---|
05. 관계데이터모델 (0) | 2017.08.01 |
04. 정렬, 탐색기법 (0) | 2017.08.01 |
03. 자료구조(선형, 비선형) (0) | 2017.08.01 |
01. 정보처리시스템과 데이터베이스의 개념 (0) | 2017.07.31 |