본문 바로가기
Computer Science/Database Systems

[Database Systems] Data, Schema, Data independent

by __K.Jun__ 2025. 1. 5.

Data Models

데이터베이스의 구조를 설명하기 위한 개념들의 집합으로, 데이터 추상화의 방식을 제공한다.

이는 다음과 같이 계층적으로 분류된다.

- Physical Models

- Conceptual Models

- Representational Models

 

Physical Data Models

데이터가 컴퓨터 저장 공간에 어떻게 조직되고 저장되는지에 대한 세부 사항을 설명한다.

- 물리적인 저장 방식 설명에 가깝다.

- Low-level data model

 

record-related information을 제공

- Type

- Index

- Access path

 

Conceptual Data Models

데이터가 어떻게 개념적으로 표현되는가를 설명한다.

- 사용자가 직관적으로 인식할 수 있는 방식 설명에 가깝다.

- High-level data model

예) Entity-Relationship Model

 

Representational Data Models

Physical data model과 Conceptual data model의 중간 지점.

- 사용자가 쉽게 이해할 수 있으며

- 데이터가 어떻게 컴퓨터 저장 공간에 조직되는지도 설명한다.

- implementation data model이라고도 불린다.

 

대부분의 상업적 DBMS에서 사용된다.

예) Relational model, network model, hierarchical model

 

Schemas and Instances

Database schema (or Meta-data)

- 데이터베이스의 구조 표현

- intension이라고도 불림

- Database designer에 의해 정의

- 생애주기 동안 거의 변하지 않는다.

 

Database Instance

- 특정 시점에 데이터베이스 구조 하에 들어있는 데이터와, 그것의 구조

- database state, snapshot, occurence, extension이라고도 불린다

- 데이터베이스에 데이터를 삽입, 갱신, 삭제를 통해 자주 변경될 수 있다.

 

Three-Schema Architecture

  애플리케이션 프로그램이 그것이 가지고 있는 데이터베이스 구조에 종속되는 것을 방지하기 위해 Three-Schema Architecture를 채택한다.

 

Internal Level: 전체 DB에 대한 physical storage 구조를 기술한 것으로 physical data model로 표현된다.

Conceptual Level: 전체 DB에 대한 논리적 구조를 기술한 것으로, conceptual data model 또는 representational data model로 표현된다.

External(View) Level: 논리적 DB 구조의 일부분을 기술한 것으로, conceptual data model 또는 representational data model로 표현 된다.

 

Internal schema: 물리적으로 어떻게 저장되어 있는지를 설명한다.

External schema: 데이터가 논리적으로 어떻게 저장되어 있는지, 유저가 직관적으로 알 수 있도록 설명한다. 

 

Mapping mechanism between schema levels

1. 사용자의 Query -> External level schema

2. External level query -> Conceptual level schema

3. Conceptual level query -> Internal level schema

4. 저장된 DB에서 결과를 추출

5. 결과를 external view로 맵핑

 

Data Independence

- 한 계층의 스키마를 바꿔도 다른 스키마에 영향을 끼치지 않게하여 유지 보수 지용을 절감할 수 있다.

- 한 계층의 스키마를 변경 -> 상위 계층의 스키마를 변경할 필요가 없다.

 

Logical Data Independence: Conceptual schema를 변경할 때, external schema를 변경할 필요 없다. 그러므로 그 external schema를 참조하는 application program 또한 재작성 될 필요가 없다.

 

Phycial Data Independence: Internal Schema를 변경할 때, conceptual schema를 변경할 필요가 없고, external schema도 변경할 필교가 없다. 그러므로 그 external schema를 참조하는 application program 또한 재작성 될 필요가 없다.

 

  이는 DBMS를 사용할 때 얻을 수 있는 가장 큰 장점으로 유지보수 오버헤드를 상당하게 줄여준다.

 

DBMS Languages

Data Definition Language (DDL): 스키마를 정의/변경하는 언어

Data Manipulation Language (DML): 데이터를 retrieve, insert, delete, modify하는 언어

Storage Definition Language (SDL): Internal Schema를 관리하는 언어

View Definition Language (VDL): External View를 관리하는 언어

 

Procedural DML: 쿼리를 절차적으로 정의한 것으로, 데이터를 어떻게 얻을 것인가에 집중하는 언어

Non-procedural DML: 쿼리를 선언적으로 정의한 것으로, 어떤 데이터를 얻을 것인가에 집중하는 언어이다. 만들기는 어렵지만 사용하기 좋다.

 

DBMS Interfaces

Menu-based interfaces: 메뉴에서 아이템의 리스트를 선택해 쿼리를 수행해서 DB에 접근

Graphical user interfaces: DB스키마의 Graphical representation을 조작해서 DB에 접근

Forms-based interfaces: 미리 정해진 양식을 채워서 DB에 접근

Natural language interfaces: 자연어로 DB에 접근

Interfaces for DBAs: DBA가 DBMS를 관리하기 위한 인터페이스

 

DBMS Component Modules

Stored data manager: User-data와 Meta-data에 접근

DDL compiler: DDL로 스키마를 만드는 명령어를 받아서, 스키마와 관련된 메타데이터를 DBMS 시스템 카탈로그에 저장

Runtime database processor: 사용자의 쿼리를 처리하기 위해 DB에 접근

Query compiler: High-level 쿼리를 컴파일

Precompiler: 전체 프로그램에서 DML만 골라내는 것

DML compiler: DML를 컴파일해서 object code에 삽입

 

Database System Utilities

Database utilities: DBA가 데이터베이스 시스템을 쉽게 관리하도록 도와주는 도구

Loading: DBMS외부에 있는 파일을 DB로 불러오기. 새로운 DB를 생성하는 데 유용하다.

Backup: 문제가 생겼을 때 백업해 놓은 것 중 하나 가져오기 위해 백업

Database storage reorganization: 성능 개선을 위해 데이터베이스 파일 구조를 다시 조작

Performance monitoring: 현재 성능, 사용 현황을 모니터링

 

Classification of DBMS

Data model에 의한 분류

1. Relation model

- 데이터베이스는 테이블의 집합

- 테이블은 레코드 단위로 데이터를 저장

2. Network model

3. Hierarchical model

4. Object model

- 데이터가 특정 Class에 속하는 Object로 표현

- 복잡한 것을 모델링하기 유용

 

사용자 수에 의한 분류

1. Single user DBMS

2. Multi-user DBMS

 

위치의 수에 의한 분류

1. Centralized DBMS: 하나에 머신에 집중된 중앙 집중형 DBMS

2. Distributed DBMS: 여러 머신에 분산된 분산형 DBMS, 분산되어 있는 것들의 모델이 모두 같으면 Homogeneous, 다르면 Heterogeneous

 

목적의 의한 분류

1. General purpose DBMS: 특정 타겟을 정하지 않는 DBMS

2. Special purpose DBMS: 특정 타겟을 정한 DBMS

 

728x90