CS/Database

[데이터베이스] 2. Database System Concepts and Architecture

공영재 2023. 12. 1. 19:23

Reference - Fundamentals of Database Systems 7th edition

 

 

Database System Concepts

 

- Concept

Data model : 데이터베이스 구조를 설명하기 위한 개념적 도구들의 모임. elements(data type)과 groups of elements (entity, record, table), relationships을 포함한다.

 

- Categories of Data model

conceptual (semantic) data model : 유저가 인식하는 구조로 제공

physical (internal) data model : 컴퓨터가 인식하는 구조로, File 형태로 메타데이터를 포함하여 제공

Implementation (representational) data model : 위 두 종류의 중간 정도의 성격으로 인간과 컴퓨터 모두에게 데이터베이스 구조를 명시. 많은 DBMS가 이 data model을 사용하며 Relational data model도 여기에 속한다.

Self-describing data model : 데이터와 함께 데이터 값에 대한 설명도 모두 제공하는 모델. XML, NOSQL 등이 있다.

 

+Terms

Schema : 구조, 데이터 타입, 제약 조건을 기술한 메타데이터의 집합

Instance : 특정 시점에 DB에 저장된 데이터. Instance의 집합을 Database State(=Snapshot)라고 함.

 

- Database Schema vs Database State

스키마(=intension=뼈라고 생각하면 편함)은 자주 바뀌지 않고, State(=extension=살)은 데이터베이스가 업데이트될 때마다 바뀐다.

 

Three-Schema Architecture

 

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

DB system organization을 설명하는데 유용하며, three-level로 DBMS schema를 정의한다.

1. Internal schema : DB 내부 구조를 기술 (use Physical data model)

2. Conceptual Schema : 전체 DB 구조, Constraints를 기술 (use implementation(or conceptual) data model)

3. External schema : 사용자 view를 기술 (use implementation(or conceptual), same as conceptual schema)

1 <-> 2 <-> 3 의 형태로 2를 거쳐서 스키마 간 mapping이 이루어지며, 요청과 데이터 변환 시 필요하다.

 

- Data Independence

Logical data independence : external schema를 변경하지 않고 논리 스키마 수정 가능

Physical data independence : conceptual shcema, external schema를 변경하지 않고 물리 스키마 수정 가능

즉, 상위 스키마는 하위 스키마 update에 따라 반드시 수정될 필요는 없으며, 수정된 스키마와 상위 스키마 간 매핑을 수정해주면 된다.

 

DBMS Languages

 

1. DDL (데이터 정의어) : 데이터 구조를 정의하는데 사용되는 명령어. CREATE, ALTER, DROP이 있다.

2. DML (데이터 조작어) : 데이터를 조회, 검색하거나 변경하는 명령어. SELECT, INSERT, DELETE, UPDATE가 있다.

DML이 SQL처럼 High level(Non-procedure) Langugae일 경우 설정지향적으로 어떻게 검색할지보단 어떤 데이터를 검색할지에 초점을 둔다.

DML이 C, C++, JAVA처럼 Low level(Procedure) Language일 경우 데이터 하나에 한 record가 필요하다.

 

 

Centralized and Client-Server DBMS Architecture

 

DBMS를 어떻게 구축할 것인가에 관한 몇개의 Architecture가 있다.

Centralized DBMS는 단일 시스템에 모든 요소를 포함하는 것이다. 은행 창구와 내부 서버를 예로 생각하면 편하다.

2-tier Client-Server Architecture는 Client-Server로 이루어지며, 구체화된 함수를 가진 구체화된 서버가 필요하다. 예로는 ODBC, JDBC가 있다.

3-tier Client-Server Architecture는 웹 어플리케이션에서 자주 사용되며 Client-Application(Web) Server-Database Server로 이루어진다.

 

loading