2014/04/11 - [Database System] - Chapter 1
데이터 모델을 정의하기 위한 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단계-스키마 아키텍처
- 내부 단계
- 개념 단계
- 외부단계 또는 뷰 단계
- 내부 단계
- 개념 단계
- 외부 단계 또는 뷰 단계
- 사상
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의 분류