티스토리 뷰

728x90

데이터베이스 사용자의 종류와 역할

데이터 언어의 종류

데이터베이스 관리 시스템의 구성요소와 기능

데이터 모델의 종류와 DBMS와의 관계

3단계 데이터베이스의 구조와 데이터 독립성

 

1. 데이터베이스 시스템의 구성요소

- 데이터베이스, 사용자, 언어, DBMS, 서버, 모델 등 6가지로 구성

 

1.1 데이터베이스 시스템의 개념

데이터베이스와 DBMS를 포함. 사용자, 데이터베이스에 접근하기 위해 사용하는 데이터 언어, 데이터베이스에 대한 다양한 접근 요청을 효율적으로 실행하는 데이터베이스 서버까지 추가적으로 포함하는 포괄적 개념

 

 

1.2 데이터베이스 사용자

접근 목적에 따라 분류

 

일반 사용자

- end user

 

응용 프로그래머

- 응용 프로그램을 개발할 목적으로 데이터베이스에 접근하는 사용자 유형

 

데이터베이스 관리자

- 데이터베이스를 구축하고 데이터베이스 시스템을 자체적을 운영, 통제하는 특별한 소수의 사용자 유형

- super user

- 모든 권한과 최종 책임

- 데이터베이스 전체 구조를 설계하고 보안, 백업, 회복, 성능 감시, 표준화 등의 데이터베이스 운영 관리 수행

- 주요 역할

1. 데이터베이스 시스템의 구성 요소 선정

2. 데이터베이스의 구조 정의

3. 물리적 저장 구조와 접근 방법 결정

4. 무결성 유지를 위한 제약 조건 정의

5. 보안 및 접근 권한 정책 결정

6. 백업 및 회복 기법 정의

7. 시스템 성능 감시 및 분석

 

1.3 데이터 언어

사용자와 응용 프로그램 모두 DBMS를 통해서만 데이터베이스에 접근할 수 있다.

이를 위해 DBMS에 요청 내용을 전달하기 위한 도구가 필요하며 이것이 데이터 언어.

보통 데이터 언어는 표준 데이터베이스 언어인 SQL을 의미

SQL은 여러 명령어로 구성되는데 사용 목적에 따라 데이터 정의어와 데이터 조작어, 데이터 제어어의 3가지 명령어 그룹으로 분류할 수 있음

 

데이터 정의어(DDL)

- 새로운 데이터베이스 구조를 정의하거나 기존 데이터베이스 구조를 변경하는 명령어 집합

- 스키마 구조뿐만 아니라 제약 조건과 스키마 사이의 사상 정보도 포함하며 데이터 사전에 저장됨

- DDL 명령어 예시: CREATE, ALTER, DROP

 

데이터 조작어(DML)

- 데이터베이스 안의 데이터를 실제 조작하는 명령어 집합

- 입력, 수정, 삭제 및 검색하는데 사용

- DML 명령어 예시: INSERT, UPDATE, DELETE, SELECT

 

데이터 제어어(DCL)

- 데이터베이스를 제어하고 통제하기 위해 사용하는 명령어 집합

- 동시성 제어, 회복, 무결성, 보안, 사용자 계정 관리 등을 지시하기 위한 명령어들로 구성

- 주로 데이터베이스 관리자가 사용

- DCL 명령어의 예시: GRANT, REVOKE, CREATE USER, COMMIT, ROLLBACK

 

1.4 데이터베이스 관리 시스템

- 데이터베이스를 효율적으로 관리하고 데이터베이스에 대한 데이터 요청을 처리하는 소프트웨어 시스템

- 사용자에게 데이터 언어를 통해 데이터베이스에 접근하고 제어할 수 있게 함

- 데이터 언어인 SQL을 해석하고 실행

- 질의어 처리기, 트랜잭션 처리기, 컴파일러, 저장 관리기 등 다양한 소프트웨어 모듈의 패키지 형태로 구성

 

DBMS의 구성 요소

- 사용자 유형별로 다양한 데이터 언어와 인터페이스를 제공하며 이를 해석하고 처리하는 여러 모듈로 구성

 

필수 기능 3가지: 정의, 조작, 제어 기능

 

 

1.5 데이터베이스 서버

- 데이터베이스가 구동되는 서버의 역할을 하는 컴퓨터

- 클라이언트/서버 컴퓨팅 환경에서 클라이언트를 통해 접근

- 데이터베이스 처리는 시스템 부하가 매우 크므로 보통 데이터베이스 시스템을 독립된 컴퓨터 안에 서버 형태로 운영

 

1.6 데이터 모델

- 데이터베이스 종류에 따라서 다양한 저장 구조를 가짐

- 이러한 데이터베이스 구조를 명세하기 위한 개념 틀을 데이터 모델이라 함

 

데이터 모델의 종류

 

1) 계층형 데이터 모델

- 데이터 사이의 연관 관계를 물리적 위치 정보인 포인터로 표현

- 트리 형태

- 검색 속도가 빠르기 때문에 1:n 관계를 갖는 대용량 데이터베이스 처리에 강점

- 반면 구조 상 m:n 관계의 표현이 어렵고 데이터가 중복되는 문제점

2) 네트워크형 데이터 모델

- 계층형과 마찬가지로 데이터 사이의 연관 관계를 포인터로 표현

- 사이클을 형성할 수 있는 망 형태의 구조로, 계층형 모델의 단점을 보완하여 m:n 표현이 용이

- 검색 속도가 빠름

- 반면 데이터의 물리적 저장 구조를 알아야 하고 구조 변경 시 응용 프로그램도 함께 변경되어야 하는 등 데이터 구조가 복잡해지는 문제점

3) 관계형 데이터 모델

- 테이블 형태의 저장 구조를 가지며 데이터 사이의 연관 관계를 테이블의 key 컬럼으로 표현

- 기본키와 외래키를 통해 테이블 간 논리적 관련성 표현

4) 객체지향형 데이터 모델

- 객체 단위의 저장 구조를 가짐

- 연관된 데이터 사이의 관계를 객체 식별자(OID)로 표현

- 구조적 측면에서는 계층형/네트워크형과 비슷하지만 객체 지향 언어의 클래스, 상속, 자료 추상화 등의 객체 지향 개념과 데이터베이스 개념을 통합하여 실세계와 유사하게 모델화하는 데이터 모델

5) 객체 관계형 데이터 모델

- 관계형 데이터 모델을 기본 개념으로 하고 객체 데이터 모델의 객체 특성을 일부 반영한 절충형 모델

- 범용적인 관계형 데이터 모델을 기반으로 하고, 필요할 경우 특정한 분야를 위해 객체 개념을 추가로 지원하는 방식

 

 

 

2. 3단계 데이터베이스

2.1 스키마

- 데이터 구조(정적)와 제약 조건(동적) 등을 정의한 것

- 정적인 구성 뿐아니라 동적인 유지 조건까지 포함한 것

- 동일한 데이터베이스라도 접근 관점에 따라 스키마가 다를 수 있음

 

2.2 3단계 데이터베이스 구조

- 보통 하나의 데이터베이스를 외부와 개념 그리고 내부 수준으로 나누어 스키마를 명세

 

1) 외부 스키마

- 사용자가 외부에서 바라보는 관점에서의 데이터베이스 구조를 정의한 것

- 데이터베이스 전체가 아닌 일부만을 대상으로 한정하여 명세한 구조이므로 서브 스키마라고도 부름

- 각 사용자별로 외부에서 바라보는 관점은 다양하므로 여러 외부 스키마가 존재할 수 있음

 

2) 개념 스키마

- 모든 사용자들의 관점을 통합하여 전체 조직 관점에서 데이터베이스 구조를 정의한 것

- 간단히 스키마라고 부름

- 데이터베이스에는 하나의 개념 스키마만 존재

- 개념 스키마로부터 다양한 외부 스키마 생성 

 

3) 내부 스키마

- 저장 장치 관점에서 전체 데이터베이스의 내부 구조를 정의한 것

- 내부 레코드의 형식이나 배치 방법, 인덱스 등에 대한 명세 포함

- 실제 장치의 물리적 저장 방식이나 구조를 명세한 것은 아니고, 그보다는 추상화된 상위 표현

- 내부 스키마도 데이터베이스 당 하나만 존재

 

* 외부 스키마는 사용자나 응용 프로그램에서 다루는 몇몇 테이블의 테이블 스키마를 명세한 것

* 개념 스키마는 데이터베이스 스키마로 모든 테이블 스키마를 명세한 것

 

2.3 데이터 사전

- 사용자가 외부 스키마를 통해 접근하면 미리 정의된 사상 관계를 통해 개념 스키마, 내부 스키마로 변환이 이루어짐

- 데이터베이스에 저장된 모든 부가 정보, 즉 데이터베이스 정의나 명세 뿐아니라 스키마와 이들 간 사상 정보, 제약 조건 등을 저장하는 저장소로, DBMS가 생성하고 유지. 별도의 저장소에 관리

- 그 자체가 하나의 데이터 베이스로, 시스템 데이터베이스 혹은 시스템 카탈로그라고도 부름

- 일반 사용자도 검색 가능하지만 변경은 DBMS만 가능

 

- 데이터 디렉토리

  - 또 다른 시스템 데이터베이스로, 사용자가 접근할 수 없음

  - 데이터 접근에 필요한 위치 정보를 저장하는 저장소

 

2.4 데이터 독립성

- 데이터의 논리적 구조나 물리적 구조가 변경되더라도 응용 프로그램이 영향을 직접 받지 않는 특성

- 각 단계의 스키마 사이에 적절한 내부 사상을 한다면 하위 스키마가 변경되더라도 상위 스키마에 영향을 주지 않도록 변경 내용을 숨길 수 있음

- DBMS의 핵심 역할 중 하나가 데이터 독립성을 제공하는 것

 

 

1) 외부/개념 사상: 논리적 데이터 독립성 제공

- 응용 프로그램은 자신만의 외부 스키마를 통해 데이터베이스에 접근하며, 필요할 경우 스키마 변경을 요청할 수 있음

- 이 때, 외부 스키마를 변경하더라도 전체 개념적 스키마는 변경되지 않거나 변경되더라도 변경 내용을 최소화함으로써 다른 응용 프로그램에 주는 영향을 최소화해야함

 

2) 개념/내부 사상: 물리적 데이터 독립성 제공

- 데이터베이스는 실제로는 저장 장치 안에 내부 스키마로 표현되는 특정한 물리적 구조로 구현

- 필요할 경우 성능을 높이기 위해 파일 저장 구조 변경이나 인덱스 추가 등 내부 스키마의 변경이 있을 수 있음

- 이 때, 물리적 구조의 변경에 따라 내부 스키마가 수정되더라도 연관된 개념/내부 사상 정보만 수정하면 상위 스키마에 대한 영향을 최소화할 수 있음

 

 

댓글