데이터베이스시스템 - Chapther 2

이전에 정리했던 글이다.

교재: fundamental of database system

 

이전 글

2020/07/13 - [강의 정리/Database] - 데이터베이스시스템 - Chapther 1

 

[CHAPTER 2 - Database System Concepts and Architecture]

 

 

▶ 데이터 모델

* 데이터베이스의 구조를 설명하기 위한 개념의 집합

* 요소(와 그 데이터 타입)와 요소 그룹(엔티티, 레코드, 표)을 포함

* 데이터 모델의 operations을 참조하여 DB의 검색, 업데이트를 지정

* 데이터 모델의 operations에는 basic model operations(삽입, 삭제, 업데이트)와 user model operations가 포함될 수 있음

▶ 데이터 모델의 종류

* 개념(Conceptual (high-level, semantic)) 데이터 모델 : 많은 사용자가 데이터를 인식하는 방법과 유사하게 제공

* 물리(Physical (low-level, internal)) 데이터 모델 : 세부사항을 제공

* 구현(Implementation (representational)) 데이터 모델 : DBMS를 이용

* 자가 기술(Self-Describing) 데이터 모델 : 데이터와 데이터 값을 함께 제공 (ex:key-value stores, few NOSQL)

1장에서 언급했던 meta-data가 필요하지 않은 데이터베이스 시스템

▶ 스키마(Schemas)

* meta-data. 데이터베이스 구조, 타입, 제약 조건을 포함

스키마 다이어그램(Schema Diagram) : 대부분의 데이터베이스 스키마는 이 형식(다이어그램)으로 표현

Schema Construct : 스키마의 구성요소 또는 스키마 내의 객체(ex: STUDENT, COURSE)

▶ 인스턴스(Instances, Database State)

특정 시점에 데이터베이스에 저장된 데이터

* 인스턴스의 모음을 Database State라고도 부름

Database State : 특정 순간의 데이터베이스의 내용을 한번에 정의

Initial Database State : 데이터베이스가 시스템에 처음 로드될 때의 Database State

Valid State : 데이터베이스의 구조, 제약 조건을 만족하는 스테이트

▶ 데이터베이스 스키마 vs 데이터베이스 스테이트

* 데이터베이스 스키마는 자주 바뀌지 않는다.

* 데이터베이스 스테이트는 데이터베이스가 업데이트되는 순간마다 바뀐다.

* 스키마는 intension, 스테이트는 extension이라고도 불린다.

▶ 3단계 스키마 구조

* DBMS의 프로그램, 데이터 간 독립성데이터의 다중 뷰 지원을 위해 제안된 구조

* 데이터베이스 시스템의 구성을 설명하는 데 유용

* 3 단계 레벨로 DBMS 스키마 정의

1. 내부(Internal) 스키마 : 데이터베이스의 내부 구조를 기술 (물리적 데이터 모델 사용)

2. 개념(Conceptual) 스키마 : 전체 데이터베이스에 대한 구조, 제약을 기술 (개념, 구현 데이터 모델 사용)

3. 외부(External) 스키마 : 다양한 사용자 뷰를 기술 (개념 스키마와 동일한 데이터 모델 사용)

* 스키마 간 매핑은 외부 ↔ 개념 ↔ 내부 로 이루어짐

* 요청과 데이터를 변환하려면 스키마 레벨 간 매핑이 필요

* 프로그램은 외부 스키마를 말하며, DBMS에 의해 내부 스키마에 매핑되어 실행됨

* 내부 스키마 레벨에서 추출한 데이터를 사용자의 외부 뷰에 맞게 재포맷

▶ 데이터 독립성

* 논리적 데이터 독립성 : 외부 스키마를 변경하지 않고 논리 스키마를 수정할 수 있음

* 물리적 데이터 독립성 : 논리 스키마, 외부 스키마를 변경하지 않고 물리 스키마를 수정할 수 있음

* 즉, 더 상위의 스키마는 하위의 스키마를 수정한다고 반드시 수정되어야 하는 것이 아니라,

수정된 스키마와 상위 스키마 간의 매핑만 수정해주면 됨

▶ DBMS 언어

1. DDL(데이터 정의어)

* 데이터 구조를 정의하는데 사용되는 명령어. 생성(CREATE), 수정(ALTER), 삭제(DROP), 이름변경(RENAME) 등이 있다.

* 데이터베이스 설계자가 데이터베이스의 개념 스키마를 지정하기 위해 사용

* 대부분의 DBMS에서 내부/외부 스키마를 정의하는 데에 사용

* 일부 DBMS에서는 별도의 SDL과 VDIL을 사용하여 내부/외부 스키마를 정의

2. DML(데이터 조작어)

* 데이터를 조회, 검색하거나 변경하는 명령어. 조회/검색(SELECT), 데이터의 삽입(INSERT), 삭제(DELETE), 수정(UPDATE) 등이 있다.

* DML이 High-level(비절차지향) 언어인 경우 : 관계 언어 SQL이 이 경우에 포함. 독립 실행 방법으로 사용되거나, 프로그래밍 언어에 포함된다.

* DML이 Low-level(절차지향) 언어인 경우 : 반드시 프로그래밍 언어에 포함 (COBOL, C, C++, Java 등)

* 위의 경우(절차지향) 프로그래밍 언어에서 DBMS에 접속할 수 있는 라이브러리를 제공하거나, 독립 실행형 DML 명령을 직접 적용(쿼리 언어)

* High-level인 경우 : 설정지향적으로, 검색 방법보다는 검색할 데이터를 명시

* Low-level인 경우 : 데이터 한 번에 하나의 레코드 (위치 포인터와 함께 여러 개 검색하기 위해서는 루프 등의 구조가 필요)

▶ DBMS 인터페이스

* 독자적 질의 언어 인터페이스 (SQL)

* 프로그래머 인터페이스 (for DML) : Embedded Approach, Procedure Call Approach,

Database Programming Language Approach, Scripting Languages

* 유저 친화적 인터페이스 : Menu-based, Forms-based, Graphics-based 등

* 모바일 인터페이스

▶ 데이터베이스 시스템 유틸리티, 툴

* 적재(loading) : 파일 형식으로 저장된 데이터를 데이터베이스 테이블 형식으로 변환

* 백업(Backing up) : 데이터베이스를 주기적으로 tape에 백업

* 재조직(Reorganizing) : 데이터베이스를 파일 구조로 재조직 (성능 향상 위함)

* 성능 모니터링(Performance monitoring)

* 보고서 생성(Report generation)

* 이외에도 sorting, user monitoring, data compression 등이 있다.

▶ Centralized and Client-Server Architectures

Centralized DBMS Architecture(중앙 집중형 구조) : 단일 시스템에 모든 요소를 포함하는 것.

(모든 요소란, DBMS S/W, H/W, application programs, user interface processing S/W를 포함)

* 사용자는 여전히 원격 terminal을 이용할 수 있으나, 모든 처리는 중앙 site에서 진행

Client-Server DBMS Architectures(클라이언트-서버 구조) : 클라이언트(사용자)가 필요한 특정 서버에 접근하는 방식으로 이용. Two Tier과 Three Tier로 나뉜다.

* Two Tier Client-Server Architecture : 클라이언트, 서버는 적절한 클라이언트/서버 모듈을 설치해야 한다. ex: ODBC, JDBC

* Three Tier Client-Server Architecture : 웹 애플리케이션에서 자주 사용. Client와 Server 사이에 Application Server 또는 Web Server가 Intermediate Layer로 존재

▶ DBMS의 분류

* 데이터 모델을 기준으로

Legacy : network, Hierarchical(Relation 등장 이전 가장 많이 사용되던 모델. Tree 구조이다)

Current : Relational(그래프 구조. ORACLE 등이 해당), Object-oriented, Object-relational(XML 등)

Recent : Key-value storage system, NOSQL

* 사용자 수를 기준으로

Single-user (개인 컴퓨터에서 사용)

Multi-user (대부분의 DBMS가 해당)

* 사이트의 개수를 기준으로

Centralized (1 Computer 1 DB)

Distributed (N Compuber N DB) : Homogeneous, Hetergeneous DDBMS로 나뉨