| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 웹
- til
- 개발자루틴
- Java
- 티스토리챌린지
- 운영체제
- 오블완
- 데이터베이스
- 자바스크립트
- 개발자취업
- 항해99
- 코딩테스트사이트추천
- C
- 코테공부
- 자바
- 파이썬
- 갭체크
- 자료구조
- 알고리즘
- 인접 행렬
- 코딩테스트준비
- 프로그래머스
- #코드트리 #코딩테스트 #코테공부 #백트래킹 #알고리즘 기초
- 99클럽
- 1일1코테
- 코딩테스트
- 코드트리
- 플로이드-워셜
- 연결 리스트
- 프로그래밍 언어
- Today
- Total
와드의 블로그
Chapter 3. 데이터베이스 시스템 본문
1. 데이터베이스 시스템의 정의
데이터베이스 시스템: 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해 주는 시스템
데이터베이스 시스템의 구성: 데이터베이스 + 데이터베이스 관리 시스템 + 사용자 + 데이터 언어 + 컴퓨터

2. 데이터 베이스의 구조
(1) 스키마
스키마: 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
인스턴스: 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값
보통 스키마는 한 번 정의되면 자주 변경되지 않지만, 인스턴스는 계속 변함
(2) 3단계 데이터베이스 구조
① 3단계 데이터베이스 구조의 개념
3단계 데이터베이스 구조는 하나의 데이터베이스를 외부, 개념, 내부 단계로 나누고, 각 단계별로 다른 추상화를 제공
내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아짐
3단계 데이터베이스 구조를 통해, 데이터의 저장·유지와 관련된 복잡한 내용을 숨기고 필요한 데이터만 단순화하여 일반 사용자들에게 제공
② 외부 단계
외부 단계(external level)에서는 개별 사용자 관점에서 데이터베이스를 이해하고 표현
외부 스키마(=서브 스키마): 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것
데이터베이스 하나에는 외부 스키마 여러 개가 존재할 수 있고, 외부 스키마 하나를 사용 목적이 같은 사용자들이 공유하기도 함
③ 개념 단계
개념 단계(conceptual level)에서는 데이터베이스를 이용하는 사용자들의 관점을 통합하여, 데이터베이스를 조직 전체의 관점에서 이해하고 표현
개념 스키마: 개념 단계에서 데이터베이스 관리 시스템이나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 데이터베이스의 논리적 구조 정의한 것
④ 내부 단계
내부단계(internal level)에서는 데이터베이스를 디스크나 테이프 같은 저장 장치의 관점에서 이해하고 표현
내부 스키마: 내부 단계에서 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한 것
(3) 데이터 독립성
① 스키마의 사상과 데이터 독립성
사용자가 자신의 외부 스키마를 통해 원하는 데이터를 얻으려면 내부 스키마에 따라 저장된 데이터베이스에 접근해야 함
-> 세 가지 스키마 사이에는 유기적인 대응관계가 성립
사상(mapping): 스키마 사이의 대응 관계
외부/개념 사상(응용 인터베이스): 외부 스키마와 개념 스키마의 대응 관계
개념/내부 사상(저장 인터페이스): 개념 스키마와 내부 스키마의 대응 관계
3단계 데이터베이스 구조와 스키마 사이의 대응 관계를 통해 데이터 독립성 실현
데이터 독립성(data independency): 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성
3단계 데이터베이스 구조에는 논리적 데이터 독립성과 물리적 데이터 독립성이 존재
② 논리적 데이터 독립성
논리적 데이터 독립성: 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것
논리적 데이터 독립성이 실현되면 전체 데이터베이스의 논리적인 구조가 변경되어도 관련된 외부/개념 사상 정보만 적절히 수정해 주면 외부 스키마를 변경할 필요 X
③ 물리적 데이터 독립성
물리적 데이터 독립성: 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것
물리적 데이터 독립성이 실현되면 데이터베이스의 저장 구조가 변경되어도 관련된 개념/내부 사상 정보만 적절히 수정해주면 데이터베이스의 논리적 구조는 변경할 필요 X

(4) 데이터 사전
데이터베이스를 관리하고 이용하려면 이에 필요한 부가 정보(스키마와 사상 정보 등)를 저장해야 함
데이터 사전(시스템 카탈로그): 데이터베이스에 저장되는 데이터에 관한 정보를 저장하는 곳
메타 데이터: 데이터 사전에 저장되는 데이터베이스에 저장되는 데이터에 관한 정보
데이터 사전도 데이터베이스의 일종이기 때문에 시스템 데이터베이스라고 하고 사용자가 실제로 이용하는 데이터가 저장되는 원래의 데이터베이스를 사용자 인터페이스라고 함
데이터 사전에 있는 데이터를 실제로 접근하는 데 필요한 위치 정보를 데이터 디렉터리에서 관리
3. 데이터베이스 사용자
데이터베이스 사용자: 데이터베이스를 이용하기 위해 접근하는 모든 사람
데이터베이스 사용자는 이용 목적에 따라 크게 데이터베이스 관리자, 최종 사용자, 응용 프로그래머로 나뉨
(1) 데이터베이스 관리자
데이터베이스 관리자: 데이터베이스 시스템을 운영·관리, 데이터베이스를 설계 및 구축하고 데이터베이스를 제어
데이터베이스 관리자의 주요 업무
- 데이터베이스 구성 요소 선정
- 데이터베이스 스키마 정의
- 물리적 저장 구조와 접근 방법 결정
- 무결성 유지를 위한 제약 조건 정의
- 보안 및 접근 권한 정책 결정
- 백업 및 회복 기법 정의
- 시스템 데이터베이스 관리
- 시스템 성능 감시 및 성능 분석
- 데이터베이스 재구성
(2) 최종 사용자
최종 사용자: 데이터를 조작하기 위해 데이터베이스에 접근하는 사람들
최종 사용자는 캐주얼 사용자와 초보 사용자로 구분됨
캐주얼 사용자: 주로 데이터 조작어를 이용해 원하는 데이터와 데이터에 대한 처리를 데이터베이스 관리 시스템에 직접 설명
초보 사용자: 응용 프로그램을 통해 데이터베이스를 사용
(3) 응용 프로그래머
응용 프로그래머: 프로그래밍 언어로 응용 프로그램을 작성할 때 데이터베이스에 접근하는 데이터 조작 어를 삽입하는 사용자
4. 데이터 언어
데이터 언어: 사용자가 데이터베이스를 구축하고 이에 접근하기 위해 데이터베이스 관리 시스템과 통신하는 수단
데이터 언어는 사용 목적에 따라 데이터 정의어, 데이터 조작어, 데이터 제어어로 나뉨
(1) 데이터 정의어
데이터 정의어(data definition language): 새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제 또는 수정하기 위해 사용하는 데이터 언어
데이터 정의어로 정의된 스키마는 데이터 사전에 저장되고, 삭제나 수정이 발생하면 이 내용도 데이터 사전에 반영됨
(2) 데이터 조작어
데이터 조작어(data manipulation language): 사용자가 데이터의 처리를 데이터베이스 관리 시스템에 요구하기 위해 사용하는 데이터 언어
데이터 조작어는 사용자가 인스턴스를 활용하기 위해 사용
데이터 조작어는 설명 방식에 따라 절차적 데이터 조작어와 비절차적 데이터 조작어로 나뉨
- 절차적 데이터 조작어(procedural DML): 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지를 설명
- 비절차적 데이터 조작어(nonprocedural DML): 사용자가 어떤 데이터를 원하는지만 설명하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지는 DBMS에 맡김
(3) 데이터 제어어
데이터 제어어(data control language): 데이터베이스에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 문제없이 공유할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의하는 데 사용하는 데이터 언어
데이터 제어어를 이용해 규칙이나 기법을 정의하여 다음과 같은 특성을 보장
- 무결성(integrity): 데이터베이스에 정확하고 유효한 데이터만 유지
- 보안(security): 허가받지 않은 사용자가 데이터에 접근하는 것을 차단하거나, 허가된 사용자가 접근 권한이 있는 데이터에만 접근할 수 있게 함
- 회복(recovery): 장애가 발생해도 데이터의 일관성을 유지
- 동시성(concurrery): 여러 사용자가 같은 데이터에 동시에 접근하여 처리할 수 있게 함
5. 데이터 베이스 관리 시스템의 구성
데이터베이스 관리 시스템은 기능에 따라 질의 처리기와 저장 데이터 관리자로 구분
(1) 질의 처리기
질의 처리기(query processor): 사용자의 데이터 처리 요구를 해석하여 처리
질의 처리기의 구성 요소
- DDL 컴파일러: 데이터 정의어로 작성된 스키마의 정의를 해석, 저장 데이터 관리자의 도움을 받아 새로운 데이터베이스를 구축하고, 스키마의 정의를 데이터 사전에 저장
- DML 프리 컴파일러: 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달
- DML 컴파일러: 데이터 조작어로 작성된 데이터의 처리 요구를 분석하여 런타임 데이터베이스 처리기가 이해할 수 있도록 해석
- 런타임 데이터베이스 처리기: 저장 데이터 관리자를 통해 데이터베이스에 접근하여, DML 컴파일러로부터 전달받은 데이터 처리 요구를 데이터베이스에 실제로 실행
- 트랜잭션 관리자: 데이터베이스에 접근하는 과정에서 사용자의 접근 권한이 유효한지 검사하고, 데이터베이스 무결성을 유지하기 위한 제약조건 위반 여부를 확인, 회복이나 병행 수행과 관련된 작업도 담당
(2) 저장 데이터 관리자
저장 데이터 관리자: 디스크에 저장된 데이터베이스와 데이터 사전을 관리하고, 여기에 실제로 접근하는 역할을 담당
저장 데이터 관리자는 운영체제의 도움을 받아 데이터베이스에 대한 접근을 수행

출처: 김연희, 「데이터베이스 개론」, 한빛아카데미
'CS > 데이터베이스' 카테고리의 다른 글
| Chapter 5. 관계 데이터 모델 (0) | 2022.05.24 |
|---|---|
| Chapter 4. 데이터 모델링 (0) | 2022.05.17 |
| Chapter 2. 데이터베이스 관리 시스템 (0) | 2021.10.21 |
| Chapter 1. 데이터베이스 기본 개념 (0) | 2021.10.20 |