데이터베이스시스템

[Lecture 02] 데이터베이스 시스템 개념 및 구조

jueunni 2024. 9. 30. 15:58

Objectives

  • Data models
  • Schemas and instances
  • Data independence
  • Database languages and interfaces

Data models

Model이란?

대상의 특성을 두드러지게 보이게 하는 것.

 

Data model이란?

데이터의 특성을 잘 표현할 수 있는 개념의 집합.

즉, 데이터 모델을 이용하면 DB의 특성, 구조를 잘 나타낼 수 있다.

그 종류에는 data types, relations, constraints, ... 등이 있다.

데이터 모델은 데이터의 추상화를 가능하게 한다. 디테일 보다는 전체 구조를 이해할 수 있게 한다.

 

Data model의 세가지 분류

  • Physical models
  • Conceptual models
  • Representational models

'분류' 를 할 때는 반드시 '기준'이 존재한다. 

데이터 모델의 분류는 concept level에 따라 이루어진다.


Physical data models

실제로(물리적으로) storage media에 어떤 형태로 저장되는지를 기술한다.

사람의 이름이 몇 바이트로 저장되는지, 그 뒤에 몇 바이트는 또 다른 정보~ 등

 

앞서, concept level에 따라 구분한다고 했는데, 이 모델은 low-level model이다.

 

record-related information을 제공하는데, type, index, access path 등 이 있다.

Physical data model은 DBMS가 감추어 주기 때문에 수업에서 깊게 다루지는 않았다.


Conceptual data models

저장되어야 하는 데이터가 어떻게 표현되는지 사람들 입장에서 기술하는 모델이다. 즉, 사람이 데이터를 인식하는 방법과 유사하다.

 

이 모델은 high-level data model이다.

가장 대표적인 모델이 entity-relationship model(ER model) 이다. 

이 모델은 중요해서 앞으로 자세히 다룰 예정이다.


Representational data models

Physical data model과 conceptual data model의 중간에 위치하는 모델이다.

따라서 사람이 이해하기도 쉽고, physical model과도 가깝다. (비교적)

 

이 모델은 대부분의 DBMS에서 사용되는 모델로, implementation data models이라고도 불린다.

대표적인 모델로는 relational model, network mode, hierarchical model 등이 있다.


Schema and Instances

Database schema(or meta-data)

데이터 모델로 database 구조를 표현하는데, 그 구조를 DB의 schema라고 한다.

schema는 intension이라고도 불린다.

DB designer에 위해서 결정된다.

schema는 거의 변하지 않는다.  절대 변하지 않는 것은 아니지만 자주 일어나는 것은 아니다.

 

Example of a Schema Diagram

Database Instance

instance는 구조에 들어가는 사용자의 데이터다.

정의는 Data and its structure in DB at a particular moment in time 이다.

'특정 순간에서'라고 하는 이유는 지금 DB와 20초 후의 새로운 instance가 들어온 후의 DB는 instance가 다른 것이다.

database state, snapshot, occurrence, extension 이라고도 한다.

schema와는 다르게 instance는 자주 바뀐다.


Three-Schema Architecture

Motivation

이 구조가 만들어진 동기는 program이 DB구조에 종속되지 않도록 하기 위해서다.

즉, program-data independence를 위해서다.

Database designer

DB designer는 DB에 저장될 데이터를 고르고, DB의 구조와 특성을 정의한다. 즉, DB schema를 결정하는 사람이다.

Three-Schema Architecture

Internal Schema

  • physical model과 관련된 부분이다.

Conceptual Schema

  • 사람이 이해할 수 있는 수준에서 만든 schema(개념적인 schema)

External View

  • 특정 사용자가 바라보는 관점으로, 전체 DB가 아닌 일부분을 의미한다.

이 구조의 동작 방식은 다음과 같다.

User ---Query---> External View

         --- External/Conceptual Mapping ---> Conceptual Schema

         --- Conceptual/Internal Mapping  ---> Internal Schema 

 

한 사용자가 DB에서 뭘 찾아달라고 요청을 한다. 그 요청은 전체 DB가 아닌 일부 DB에 대해서 하게 되는 것이다. 그래서 전체 DB에 대한 요청으로 바꿔주는 단계인 External/Conceptual Mapping과정을 거져처 conceptual schema로 전해진다. 

이 단계에서는 사람이 이해할 수 있는 수준의 schema이기 때문에 컴퓨터가 알아들을 수 있게 Internal Schema에 대한 요청으로 바꿔주는 Conceptual/Internal Mapping과정을 다시 한 번 거친다. 

 

Internal Schema ---result--->Conceptual Schema ---> External View ---> User

요청에 대해 얻은 결과를 위쪽으로 전해주게 된다.

 

이 그림에서 Schema에 따라 공통점과 차이점을 정리해볼 수 있다.

  공통점 차이점
External View 사용하는 모델이 같음
(Conceptual / Representational model)
일부 데이터
Conceptual Schema 전체 데이터
둘다 전체 DB를 다룸 conceptual/representational model을 사용
Internal Schema physical model을 사용

 

Three-Schema Architecture를 소개할 때, 이 구조가 만들어진 동기가 program-data independence를 위해서라고 했는데, 어떻게 independence가 성립될 수 있을까?

 

전체 데이터에 대해 internal schema가 바뀌는 상황을 생각해보자.

예를 들어, b-tree로 짠 구조를 hash-table로 바꾼다고 했을 때,

internal schema level에서 meta-data만 바뀌면 된다. 즉, 위쪽의 conceptual schema, external view, 사용자의 프로그램에는 영향을 주지 않는다는 의미이다. 이와 유사하게 만약 conceptual schema가 바뀌면 이에 해당되는 meta-data가 바뀌면 되므로 external view, 사용자의 프로그램은 영향을 받지 않는다. 

 

Internal Level

  • 전체 DB의 물리적인 저장 구조를 기술한다.
  • physical data model로 표현된다.

Conceptual Level

  • 전체 DB의 논리적인 구조를 기술한다. 사용자를 위해서. (Entities, data types, relations, user operations, constraints)
  • 물리적인 저장 구조의 디테일은 감춘다.
  • higher level data model로 표현된다.(conceptual data models, representational data models)

External or view Level

  • 특정 사용자가 관심있는, 필요로 하는 일부 논리적인 DB를 기술한다. 
  • conceptual level과 동일하게 higher level data model로 표현된다. 
  • conceptual level에서 conceptual data model을 사용했다면 conceptual data model을 사용한다.
  • conceptual level에서 representational data model을 사용했다면 representational data model을 사용한다.

External schema와 internal schema는 다른 방식으로 DB를 기술한다.

  • External schema: 논리적이고 개념적인 DB
  • Internal schema: 물리적인 DB

Mapping

앞에서 설명했던 mapping과정을 정리한 내용이다.


Data Independence

Definition

one level에서 schema를 바꿀 수 있는 것

next higher level의 schema change 없이

Types

  • Logical data independence
  • Physical data independence

Logical Data Independence

conceptual schema를 변경하는 경우,

external schema는 변경할 필요가 없다.

따라서, application programs도 변경할 필요가 없다.

Physical Data Independence

internal schema를 변경하는 경우,

conceptual schema를 변경할 필요가 없다.

따라서, external schema도 변경할 필요가 없다.

따라서, application programs도 변경할 필요가 없다.

Data Independence

DBMS의 가장 중요한 특징 중 하나다.

application programs의 maintenance overhead를 상당히 줄여주기 때문.


DBMS Languages

DBMS가 제공하는 언어를 말한다. (ex, SQL)

왜 필요할까?

DBMS는 이 언어만 알기 때문이다.

  • Data definition language(DDL): DB의 골격을 정의, 수정하는 언어
  • Data manipulation language(DML): DB의 사용자 데이터를 검색, 삽입, 수정, 삭제하는 언어
  • Storage definition language(SDL): internal schema를 관리하는 언어
  • View definition language(VDL): external view를 명시하는데 사용하는 언어

DDL,DML,SDL,VDL은 하나의 SQL안에 포함되어 있다.

Procedural DML

사용자의 query를 절차적으로 기술

데이터를 찾아오는 과정에 집중하기 때문에 디테일한 step들을 명시한다.

 

Non-procedural DML

사용자의 query를 선언적으로 기술

사용자가 원하는 것이 무엇인지에 집중한다.

사용자 입장에서는 디테일한 과정을 몰라도 되므로 이 방법이 좋다.


DBMS Interfaces

Menu-based interfaces

Graphical user interfaces

Forms-based interfaces

Natural language interfaces

Interfaces for DBAs


DBMS Component Modules

Stored data manager: Disk의 데이터를 가져오는 역할을 수행한다.

DDL compiler: schema definition을 처리하고, schema와 관련된 메타 데이터를 DBMS system catalog에 저장한다.

Runtime database processor: DB 내의 처리를 담당하는 부분이다.

Query compiler(interactive SQL): hige-level DBMS queries를 internal form으로 바꿔주는 역할을 수행한다. (fucntion call 형태로)

Precompiler: SQL statement 부분만 골라낸다.

DML compiler: precompiler가 골라낸 SQL statement를 fuction call의 sequence로 바꿔준다.


Classification of DBMS

분류를 할 때는 항상 기준이 존재한다.

DBMS의 분류 기준은 4가지 정도가 있다.

 

1. Data model에 따른 분류

즉, DBMS가 제공하는 모델이 무엇인가에 따라 분류한다.

  • Relational model
  • Network model
  • Hierarchical model 
  • Object model

2. 사용자의 수에 따른 분류

  • Single user DBMS ex) Excel
  • Multi-user DBMS

3. sites의 수에 따른 분류

  • Centralized DBMS
  • Distributed DBMS
    • Homogeneous DBMS : 분산된 DBMS에서 모델이 다 같을 때
    • Heterogeneous DBMS: 모델이 다를 때

4. 목적에 따른 분류

  • General purpose DBMS
  • Special purpose DBMS ex) real-time DBMS