Preface
이번 장에선 데이터베이스와 데이터베이스 관리 시스템, 데이터베이스 시스템의 차이를 공부했다.
처음엔 단어들을 왜 이렇게 비슷하게 만들어서 헷갈리게 하는지 이해할 수 없었는데, 각 단어들의 정의를 살펴보니 어쩔 수 없다는 것을 알게 되었다.
또, 문서의 이해나 회사 내에서의 기본적인 의사소통을 위해선 세 단어를 확실히 구분해서 사용해야 할 것 같다는 생각이 들었다.
대부분의 내용은 이론적인 부분이라 크게 어려운 부분이 없었는데, 데이터 독립성 부분에서 '상위'와 '하위'의 개념을 잘못 이해해서 꽤나 고생했다.
나는 처음에 구체화 정도가 클 수록 상위 개념이라고 생각했었기 때문에 개념 스키마가 하위 스키마이고, 외부 스키마가 상위 스키마라는 것을 이해할 수 없었다.
그런데 여러 예시들을 보며 천천히 생각하다 보니 내가 완전히 반대로 이해하고 있었다는 것을 알 수 있었다.
상위 개념일수록 추상화 정도는 크고, 구체화 정도는 낮다는 것을 꼭 기억하자.
1. 데이터베이스 시스템의 정의
- 데이터베이스 시스템(DBS): DB에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템
- 데이터베이스(DB): 저장된 데이터의 집합
- 데이터베이스 관리 시스템(DBMS): DB와 DBMS를 이용해 조직에 필요한 정보를 제공해주는 전체 시스템
2. 데이터베이스의 구조
- 스키마(schema): DB에 저장되는 데이터 구조와 제약조건을 정의한 것
- 인스턴스(instance): 정의된 스키마에 따라 DB에 실제로 저장된 값
- 3단계 데이터베이스 구조: DB를 쉽게 이해하고 이용할 수 있도록 하나의 DB를 관점에 따라 세 단계로 나눈 것
1. 외부 단계: 개별 사용자 관점에서 DB를 바라본 것
1) 외부(서브) 스키마: 외부 단계에서 사용자에게 필요한 DB를 정의한 것
→ 각 사용자가 생각하는 DB의 모습을 표현한 논리적운 구조로, 사용자마다 다르다.
2. 개념 단계: 조직 전체의 관점에서 DB를 바라본 것
1) 개념 스키마: DBMS나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 DB의 논리적 구조를 정의한 것
→ 모든 개별 사용자가 생각하는 DB의 모습을 하나로 합친 형태이다.
→ 데이터, 관계, 제약 조건, 보안 정책, 접근 권한에 대한 정의를 포함하지만, 물리적 저장 방법과 저장 장치와는 독립적이다.
※ 일반적으로 스키마라고 하면 개념 스키마를 의미한다.
3. 내부 단계: 물리적인 저장 장치의 관점에서 DB를 바라본 것
1) 내부 스키마: 전체 DB가 저장 장치에 실제로 저장되는 방법을 정의한 것
→ 개념 스키마에 대한 물리적인 저장 구조를 표현하므로 하나의 DB에 하나만 존재한다.
→ 세 가지 스키마 사이에는 유기적은 대응 관계가 성립해야 한다.
- 사상(매핑): 스키마 사이의 대응 관계
1) 외부/개념 사상: 외부 스키마와 개념 스키마의 대응 관계를 정의한 것
→ 응용 인터페이스
2) 개념/내부 사상: 개념 스키마와 내부 스키마의 대응 관계를 정의한 것
→ 저장 인터페이스
- 데이터 독립성: 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성
1) 논리적 데이터 독립성: 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것
2) 물리적 데이터 독립성: 내부 스키마가 변경되더라고 개념 스키마가 영향을 받지 않는 것
- 데이터 사전: DB에 저장되는 데이터에 관한 정보를 저장하는 곳
1) 시스템 카탈로그, 메타 데이터(데이터에 대한 데이터), 시스템 데이터베이스라고도 한다.
2) DBMS와 일반 사용자 둘 다 접근할 수 있지만, 사용자는 저장 내용을 검색만 할 수 있다.
※ 사용자가 실제로 이용하는 일반 DB를 사용자 데이터베이스라고 부른다.
- 데이터 디렉터리: 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보를 관리하는 곳
→ 데이터 사전과 달리 시스템만 접근할 수 있다.
3. 데이터베이스 사용자
- 데이터베이스 사용자의 종류
1. 데이터베이스 관리자(DBA): DBS를 운영 및 관리하는 사용자
1) DB 구성 요소 선정
2) DB 스키마 정의
3) 물리적 저장 구조와 접근 방법 결정
4) 무결성 유지를 위한 제약 조건 정의
5) 보안 및 접근 권한 정책 결정
6) 백업 및 회복 기법 정의
7) 시스템 데이터베이스 관리
8) 시스템 성능 감시 및 성능 분석
9) 데이터베이스(스미카) 재구성
2. 최종(일반) 사용자: 데이터를 조작(삽입, 삭제, 수정, 검색)하기 위해 DB에 접근하는 사용자
1) 캐주얼 사용자: 주로 데이터 조작어를 이용해 원하는 작업을 DBMS에 직접 설명한다.
2) 초보 사용자: 주로 메뉴나 GUI 형태의 응용 프로그램을 통해 DB를 사용한다.
3. 응용 프로그래머: 프로그래밍 언어로 응용 프로그램을 작성할 때 DB에 접근하는 데이터 조작어를 삽입하는 사용자
4. 데이터 언어
- 데이터 언어: 사용자가 DB를 구축하고 이에 접근하기 위해 DBMS와 통신하는 수단
1. 데이터 정의어(DDL): 새로운 DB를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제 또는 수정하기 위해 사용하는 데이터 언어
2. 데이터 조작어(DML): 사용자가 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 DBMS에 요구하기 위해 사용하는 데이터 언어
1) 절차적 데이터 조작어: 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지를 설명
2) 비절차적 데이터 조작어(선언적 언어): 사용자가 어떤 데이터를 원하는지만 설명
3. 데이터 제어어(DCL): DB에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 공유할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의하는 데 사용하는 데이터 언어
→ DCL을 통해 보장하는 특성: 무결성, 보안, 회복, 동시성
5. 데이터베이스 관리 시스템의 구성
- 질의 처리기: 사용자의 데이터 처리 요구를 해석하여 처리하는 역할을 담당
1) DDL 컴파일러: 데이터 정의어로 작성된 스키마의 정의를 해석
2) DML 프리 컴파일러: 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달
3) DML 컴파일러: 데이터 조작어로 작성된 데이터의 처리 요구를 분석하여 런타임 데이터베이스 처리기가 이해할 수 있도록 해석
4) 런타임 데이터베이스 처리기: 저장 데이터 관리자를 통해 DB에 접근하여, DML 컴파일러로부터 전달받은 데이터 처리 요구를 DB에서 실제로 실행
5) 트랜잭션 관리자: DB 접근 과정에서 사용자의 접근 권한이 유효한지 검사하고, 무결성을 유지하기 위한 제약 조건 위반 여부를 확인
- 트랜잭션(transaction): DB의 상태를 변화시키기 위해 수행하는 작업의 단위
- 저장 데이터 관리자: 디스크에 저장된 DB와 데이터 사전을 관리하고, 여기에 실제로 접근하는 역할을 담당
'DB & SQL > 데이터베이스 개론' 카테고리의 다른 글
관계 데이터 모델 (0) | 2022.02.11 |
---|---|
데이터 모델링 (0) | 2022.01.31 |
데이터베이스 관리 시스템 (0) | 2022.01.24 |
데이터베이스 기본 개념 (1) | 2022.01.23 |
데이터베이스 개론 출처 (0) | 2022.01.23 |
댓글