2014/04/11 - [Database System] - Chapter 1



데이터 모델을 정의하기 위한 3요소

  1. 구조
  2. 제약조건
  3. 연산


2.1 데이터 모델, 스키마, 인스턴스

    • 데이터 모델

- 데이터 타입, 관계, 제약조건들을 명시하기 위해 사용할 수 있는 개념들의 집합

- 데이터베이스에서 검색과 갱신을 수행하는 기본 연산들의 집합을 포함


    • 점차 DB 응용의 동적 측면 또는 행동이 데이터 모델에 포함됨

- 사용자 정의 연산(user defined operation)

(예) COMPUTE_GPA



2.1.1 데이터 모델의 분류

    • 저수준 또는 물리적 데이터 모델

- 어떻게 데이터가 컴퓨터에 저장되는지의 세부 사항을 명시하는 개념을 제공


    • 고수준 또는 개념적 데이터 모델

- 사용자들이 데이터를 인식하는 방식에 대한 개념을 제공

- ER 모델, SDM 모델, DAPLEX 모델, ...


    • 표현(또는 구현) 데이터 모델

- 고수준 모델과 저수준 모델 사이에 존재

- 일반 사용자들이 이해할 수 있는 개념을 제공

- 데이터 저장 구조의 세부 사항을 은폐하지만, 컴퓨터 상에서 직접 구현 가능함

- 상용 DBMS에서 많이 사용함

- 계층 모델, 네트워크 모델, 관계 모델



2.1.2 스키마, 인스턴스, 데이터베이스 상태

  • 데이터베이스 스키마(또는 메타 데이터)

- 데이터베이스에 대한 기술

- 데이터베이스 설계 과정에서 명시하며 자주 변경되지 않음

- 메타 데이터 역할


  • 스키마 다이어그램

- 데이터베이스 스키마를 도식화한 것이다.

- 레코드 타입의 이름, 데이터 항목의 이름, 일부 제약 조건 유형들과 같은 스키마의 일부 관점만을 나타낸다.


  • 데이터베이스 상태

- 어커런스나 인스턴스들의 집합이라고도 한다.

- 어떤 특정 시점에 데이터베이스에 들어있는 데이터

- 데이터베이스에 갱신 연산이 수행될 때마다 새로운 다른 데이터베이스 상태를 가진다.

- DBMS는 데이터베이스 상태가 스키마에 명시된 구조와 제약조건을 만족하는 유효한 상태임을 보장하는 책임을 일부 가진다.


  • 일반적으로 스키마는 내포(intension)라 하고, 데이터베이스 상태는 외연(extension)이라 한다.



STUDENT

 Name

Student_number

Class

Major


COURSE

 Course_name

Course_number

Credit_hours

Department


PREREQUISITE

Course_number

Prerequisite_number


SECTION

 Section_identifier

Course_number

Semester

Year

Instructor


GRADE_REPORT

Student_number

Section_identifier

Grade



2.2 3단계-스키마 아키텍처와 데이터 독립성



2.2.1 3단계-스키마 아키텍처

    • 3단계-스키마 아키텍처의 목적

- 사용자의 응용과 물리적 데이터베이스의 분리


    • 3단계-스키마 아키텍처
  1. 내부 단계
  2. 개념 단계
  3. 외부단계 또는 뷰 단계

    • 내부 단계
- 내부 스키마를 가지며, 내부 스키마는 물리적 데이터 모델을 사용
- 데이터 저장구조의 세부 사항과 데이터베이스에 대한 접근 경로를 기술

    • 개념 단계
- 개념 스키마를 가지며, 이는 전체 사용자를 위한 데이터베이스의 구조를 기술함
- 엔티티, 데이터 타입, 관계, 사용자 연산, 제약 조건들을 나타내는데 중점

    • 외부 단계 또는 뷰 단계
- 외부 스키마나 사용자 뷰들을 포함
- 특정 사용자 그룹이 관심을 갖는 부분을 나타내고 나머지는 은폐함

    • 사상
- 외부 스키마를 참조하여 사용자가 데이터를 요구하면 이를 데이터베이스 내에서 개념 스키마에 대한 요구로 변환하고, 다시 내부 스키마에 대한 요구로 변환 과정을 거쳐 저장된 데이터베이스에 접근하여 데이터를 추출한 후 사용자의 뷰와 일치하도록 재구성하는 과정




2.2.2 데이터 독립성

    • 논리적 데이터 독립성

- 외부 스키마나 응용 프로그램을 변경하지 않으면서 개념 스키마를 변경할 수 있는 능력(성질)


    • 물리적 데이터 독립성

- 개념 스키마를 변경하지 않으면서 내부 스키마를 변경할 수 있는 능력(성질)




2.3 데이터베이스 언어와 인터페이스



2.3.1 DBMS 언어

    • 데이터 정의어(DDL: Data Definition Language)

- 개념 스키마와 내부 스키마를 정의


    • 어떤 DBMS에서는 저장구조 정의어(SDL: Storage Definition Language)를 사용하여 내부 스키마를 나타내고, 뷰 정의어(VDL: View Definition Language)를 사용하여 뷰를 명시하거나 개념 스키마 사이의 사상을 나타냄


    • 데이터 조작어(DML: Data Manipulation Language)

- 데이터를 검색, 삽입, 삭제, 수정하기 위한 조작 언어

- 비 절차적인 언어, 사용이 편리한 언어를 사용

- DML 명령어는 범용 프로그래밍 언어에 삽입되어 사용될 수 있고, 이때 범용 프로그래밍 언어를 호스트 언어라 하고, 삽입된 DML 명령어를 데이터 부속어라 함.

 


2.3.2 DBMS 인터페이스

    • 메뉴 기반 인터페이스
    • 폼 기반 인터페이스
    • 그래픽 사용자 인터페이스
    • 자연어 인터페이스
    • 초보자를 위한 인터페이스
    • 데이터베이스 관리자를 위한 인터페이스




2.4 데이터베이스 시스템 환경



2.4.1 DBMS 구성 모듈

    • 저장 데이터 관리자

- 디스크에 저장되어 있는 DBMS의 정보(데이터베이스 또는 카탈로그)에 대한 접근을 제어


    • 데이터 정의어 컴파일러

- 데이터 정의어로 명시된 스키마 정의들을 처리

- 스키마들에 대한 정보(메타 데이터)를 DBMS 카탈로그 안에 저장


    • 런타임 데이터베이스 처리기(run-time database processor)

- 수행시 데이터베이스 접근을 처리


    • 질의 컴파일러

- 대화식으로 입력된 고수준 질의들을 처리


    • 프리컴파일러(precompiler)

- 호스트 프로그래밍 언어로 작성된 응용 프로그램에서 데이터 조작어 명령들을 추출


    • 데이터 조작어 컴파일러

- 데이터 조작어 명령어들을 데이터베이스 접근을 위한 목적 코드로 컴파일





2.4.2 데이터베이스 시스템 유틸리티

    • 데이터베이스 유틸리티

- DBMS는 데이터베이스 관리자의 데이터베이스 시스템 운영을 도와줌


    • 적재

- 데이터 화일을 자동적으로 데이터베이스 화일의 형식으로 변환해서 저장함


    • 백업

- 전체 데이터베이스를 테이프에 복사하여 데이터베이스의 백업 사본을 만듬


    • 화일 재조직

- 성능 향상을 위해 데이터베이스 화일 구조를 다른 화일 구조로 재조직함


    • 성능 모니터링

- 데이터베이스의 사용을 모니터해서 사용 통계를 데이터베이스 관리자에게 제공함

- 이 정보는 관리자가 데이터베이스 성능을 향상시키기 위해서 화일들을 재족힐 것인지를 결졍하는데 사용됨


    • 데이터 사전 시스템(data dictionary system)

- 스키마와 제약 조건들에 관한 카탈로그 정보와 설계 결정, 사용 표준, 응용 프로그램 기술, 사용자 정보 등과 같은 정보를 저장

- DBMS 카탈로그와 유사하니 더 다양한 정보를 가짐

- DBMS 소프트웨어보다는 주로 사용자가 접근

- 데이터 저장소(data repository system) 혹은 정보 저장소(information repository)라고도 함


    • 데이터 디렉토리(또는 능동 데이터 사전)

- 사용자와 DBMS 소프트웨어 모두가 사용하는 통합된 카탈로그/데이터 사전

(수동 데이터 사전은 사용자만 이용하는 데이터 사전을 의미)



2.4.3 도구, 응용 환경, 통신 장비

    • CASE 도구

- 데이터베이스 시스템을 설계하는 과정에서 사용됨


    • 응용 개발 환경

- PowerBuilder 시스템


    • 통신 소프트웨어와 통신 장비를 사용하여 데이터베이스 시스템 사이트로부터 멀리 떨어진 컴퓨터 터미널, 워크스테이션, 마이크로 컴퓨터나 소형 컴퓨터에서 데이터베이스를 접근하는 것이 가능함

- DB/DC 시스템: DBMS와 데이터 통신 시스템의 결합체




2.5 DBMS를 위한 중앙집중식과 클라이언트/서버 아키텍처

    • DBMS의 분류 기준

- 데이터 모델: 관계, 네트워크, 계층, 객체지향, 객체관계 등

- 사용자의 수: 단일 사용자, 다수 사용자 시스템

- 사이트의 수: 중앙집중식, 분산 DBMS(동질 분산 DBMS 또는 이질 분산 DBMS)

- DBMS의 비용

- 접근 경로의 유형

- 범용 또는 특수 목적용


    • 관계 모델

- 데이터베이스는 테이블들의 모임으로 구성

- 그림 1.2와 유사(Chapter 1)

- 고급 질의어를 제공하고 제한된 형태의 사용자 뷰를 지원


    • 네트워크 모델

- 데이터를 레코드 타입들로 나타냄

- 그림 2.4 참고


    • 계층 모델

- 데이터를 계층적 트리 구조로 나타냄


    • 객체지향 모델

- 객체, 객체의 속성, 연산으로 데이터베이스를 정의

- 같은 구조와 행위를 갖는 객체들은 한 클래스에 속하고 클래스들은 계층 또는 비순환 그래프로 조직됨

- 메서드라고 하는 미리 정의된 프로시저들이 클래스의 연산을 나타냄


    • 객체관계 모델

- 관계 모델에 객체지향 모델의 개념을 도입하여 확장함






2.6 요약

    • 데이터 모델

- 고수준 또는 개념적 데이터 모델(개체 관계)

- 데이터 모델들의 구현(레코드 기반, 객체지향)

- 저수준 또는 물리적 데이터 모델

    • 스키마

- 외부 스키마, 개념 스키마, 내부 스키마

    • 데이터베이스 상태
    • 논리적, 물리적 데이터 독립성
    • DBMS가 지원하는 언어

- 데이터 정의어, 데이터 조작어

    • 인터페이스 유형
    • DBMS 유틸리티
    • DBMS의 분류




'Database > Database System' 카테고리의 다른 글

Chapter 8  (0) 2014.05.31
Chapter 7  (0) 2014.05.19
Chapter 6  (0) 2014.04.13
Chapter 3  (0) 2014.04.11
Chapter 1  (0) 2014.04.11

+ Recent posts