2020. 7. 31. 20:03ㆍ개인공부/데이터베이스 개론
03. 데이터 베이스 사용자
DB시스템을 구성하는 중요 요소중 하나는 사용자다.
사용자는 DB를 이용하기 위해 접근하는 모든 사람을 의미한다.
이용 목적에 따라 나뉘는 사용자
- DB관리자
- 최종 사용자
- 응용 프로그래머
3.1 DB 관리자
DB관리자는 DB시스템을 운영 관리. DB를 직접 활용하기 보다는 조직 내의 사용자를 위해 DB를 설계 및 구축, 제대로 서비스 할 수 있도록 DB를 제어.
데이터 정의어 & 데이터 제어어를 이용해 DB에 접근함
DB관리자 업무
- DB 구성 요소 선정
- DB 스키마 정의
- 물리적 저장 구조와 접근 방법 결정
- 무결성 유지를 위한 제약조건 정의
- 보안 및 접근 권한 정책 결정
- 백업 및 회복 기법 정의
- 시스템 DB 관리
- 시스템 성능 감시 및 성능 분석
- DB재구성
3.2 최종 사용자
데이터를 조작(insert, delete, update, research)하기 위해 DB에 접근하는 사람들을 일반 사용자 또는 최종 사용자 라고함.
주로 데이터 조작어를 사용
캐주얼 사용자와 초보 사용자로 구분 할수 있음
초보자는 조작어로 자신의 요구를 직접 표현하기 보다는 메뉴나 GUI 형태의 응용 프로그램을 통해 DB 사용.
3.3 응용 프로그래머
c언어, 자바 등과 같은 프로그래밍 언어로 응용 프로그램을 작성할 때 데이터 베이스에 접근하는 데이터 조작어를 삽입하는 사용자. 데이터 정의어를 삽입할 수도 있지만 주로 데이터 조작어를 삽입.
* 최종 사용자는 응용 프로그래머가 작성한 응용 프로그램을 이용해 DB에 접근 가능.
예) 도서 위치 검색, 서점 직원을 위한 고객 구매 요청 처리 응용프로그램
04. 데이터 언어
사용자가 DB를 구축하고 접근하기 위해 DBMS와 통신하기 위한 수단.
데이터 언어는 DBMS의 정의,조작,제어 기능을 이용하기 위한 것.
사용 목적에 따른 데이터 언어
- 데이터 정의어
- 데이터 조작어
- 데이터 제어어
하나의 데이터 언어를 기능에 따라 내부적으로 구분 짓는 것일 뿐 독립적으로 존재하는 언어들이 아님.
4.1 데이터 정의어 (DDL : Data Definition Language)
새로운 DB를 구축하기 위해 스키마를 정의하거나, 기존 스키마의 정의를 삭제 또는 수정하기 위해 사용하는 언어.
데이터 언어로 정의된 스키마는 데이터 사전에 저장됨, 삭제나 수정이 발생하면 이 내용도 데이터 사전에 반영
4.2 데이터 조작어 (DML : Data Manipulation Language)
사용자가 데이터의 삽입,삭제,수정,검색 등의 처리를 DBMS에 요구하기 위해 사용하는 데이터 언어.
설명 방식에 따라 절차적 데이터 조작어와 비절차적 데이터 조작어로 나뉨.
*절차적 데이터 조작어
사용자가 어떤(What) 데이터를 원하고 해당 데이터를 얻기 위해서는 어떻게 (How)처리해야 하는지를 성명
*비절차적 데이터 조작어
사용자가 어떤(What)데이터를 원하는지만 설명. 어떻게(how)는 DBMS에 맡김
어떤 데이터를 원하는지만 DBMS에 선언하는 방식이기 때문에 선언적 언어 라고도 함.
4.3 데이터 제어어 (DCL : Data Control Language)
DB에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 문제없이 공유할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의 하는 데 사용하는 데이터 언어.
데이터 제어어를 이용해 규칙이나 기법을 정의하는 이유
- 무결성
- 보안
- 회복
- 동시성
1. 무결성: DB에 정확하고 유효한 데이터만 유지
2. 보안 : 허가받지 않는 사용자가 데이터에 접근하는 것을 차단하거나, 허가된 사용자가 접근 권한이 있는 데이터에만 접근할수 있게 함
3.회복 : 장애가 발생해도 데이터의 일고나성을 유지
4.동시성 : 여러 사용자가 같은 데이터에 동시에 접근하여 처리 가능.
05. DBMS의 구성
DB를 관리하고 사용자의 데이터 처리 요구를 수행하는 DBMS는 DB시스템의 주요 구성 요소.
사용자와 DB사이에 위치한다.
기능에 따라 크게 나뉘는 구분
- 질의 처리기
- 저장 데이터 관리자
5.1 질의 처리기
사용자의 데이터 처리 요구를 해석하여 처리하는 역할을 담당
- DDL 컴파일러
- DML 프리 컴파일러
- DML 컴파일러
- 런타임 DB 처리기
- 트랜잭션 관리자
1. DDL 컴파일러 :
데이터 정의어로 작성된 스키마의 정의를 해석
저장 데이터 관리자의 도움을 받아 새로운 DB 구축, 스키마의 정의를 데이터 사전에 저장
DDL로 작성된 기존 스키마의 삭제나 수정 요청도 처리하여, 변경된 내용을 데이터 사전에 적용.
2. DML 프리 컴파일러
응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달
단, 데이터 조작어와 관련이 없는 나머지 코드들은 해당 언어의 컴파일러에 보내짐
3. DML 컴파일러
DDL로 작성된 데이터의 처리(삽입,삭제,수정,검색) 요구를 분석하여 런타임 DB처리기가 이해할수 있도록 해석
4.런타임 DB 처리기 :
저장 데이터 관리자를 통해 DB에 접근하여, DML 컴파일러로 부터 전달받은 데이터 처리 요구를 DB에 실제로 실행
5. 트랜잭션 관리자
DB에 접근하는 과정에서 사용자의 접근 권한이 유효한지 검사, DB 무결성을 유지하기 위한 제약조건 위반 여부를 확인
5.2 저장 데이터 관리자
디스크에 저장되어 있는 사용자 DB와 데이터 사전을 관리, 여기에 실제로 접근하는 역할을 담당.
그런데 디스크에 저장된 데이터에 접근하는 것은 운영체제의 기본 기능이므로 저장 데이터 관리자는 운영체제의 도움을 받아 DB에 대한 접근을 수행.
'개인공부 > 데이터베이스 개론' 카테고리의 다른 글
데이터 베이스 개론 4 (0) | 2020.07.29 |
---|---|
데이터 베이스 개론 3-1 (0) | 2020.07.28 |
데이터베이스 개론3 (0) | 2020.07.28 |
데이터 베이스 개론 2 (0) | 2020.07.27 |
데이터베이스 개론 - 1 - 2020.07.25 (0) | 2020.07.25 |