본문 바로가기
DB & SQL/데이터베이스 개론

데이터베이스 시스템

by k-mozzi 2022. 1. 26.
반응형
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와 데이터 사전을 관리하고, 여기에 실제로 접근하는 역할을 담당

 

 

728x90
반응형

'DB & SQL > 데이터베이스 개론' 카테고리의 다른 글

관계 데이터 모델  (0) 2022.02.11
데이터 모델링  (0) 2022.01.31
데이터베이스 관리 시스템  (0) 2022.01.24
데이터베이스 기본 개념  (1) 2022.01.23
데이터베이스 개론 출처  (0) 2022.01.23

댓글