밤이라구요

블로그관리

글쓰기

Yesterday

Today

Total

블로그 이미지

밤이라구요

이것저것

블로그 이미지
밤이라구요
2022. 9. 15. 00:40
728x90

Data Model

Data 추상화를 위한 도구이다. 다음의 내용이 포함된다.

  • Structure of DB
    • Elements and Data types
    • Entity, Record, Table
    • Relationships
  • Operation for manipulating
    • basic model operations
    • user-defined operations
  • Constraints
    • Valid data에 대한 제약

 

Categories of Data Models

Conceptual Physical Implementation Self-Describing
Entity-based, Object-based라고도 불린다. 사람이 이해할 수 있는 data model이다. 컴퓨터가 이해하기 쉬운 모델이다. 어디다 저장할지 등의 정보가 담겨 있다. Conceptual과 Physical 사이의 연결성 구현이다. Data와 meta data를 같이 저장하는 방식이다. XML, key-value, NOSQL 등이 있다.

 

Schemas vs State

DB Schemas(Intension) DB State(Extension)
DB의 구조, 관계 등을 의미한다. Diagram을 이용해 표현하기도 한다. 일정 순간에 DB의 모든 data를 저장한 것이다. DB instance, snapshot이라고도 불린다.
"Instance"라는 말은 DB 구성요소에도 적용할 수 있다. 예를 들어, table instance, entity instance 등이 있다.

 

Three-Schema Architecture

DBMS를 지원하기 위해서 나누어진 것으로, 근본적인 이유로는 Program-data independence와 Multiple view를 지원하기 위해서이다.

Internal schema Conceptual schema External schema
물리적 저장 관계를 말한다. 일반적으로 은폐되어 있다.  개념적인 요소와 물리적인 요소를 서로 맵핑한 구조이다. 사용자가 보는 View에 해당한다.

 

Data Independence

Three-schema architecture의 장점은 하위 layer를 변경해도, 상위 layer에 영향을 주지 않는다는 것이다.

Logical Data Independence Physical Data Independence
Conceptual schema를 바꾸더라도 External schema를 바꿀 필요가 없다. Internal schema를 바꾸더라도 Conceptual schema를 바꿀 필요가 없다.

 

DBMS Languages

  • Data Definition Language(DDL)
    • Data 구조 관련(Internal; SDL / External; VDL)
  • Data Manipulation Language(DML)
    • Data 조회, 갱신 등 조작 관련 
    • High-Level(Non-procedure) Language
      • 선언적인 언어(a=4)
    • Low-Level(Procedure) Language
      • 어디에 접근해야하는지 전부 구현

 

DBMS Programming Language Interfaces

DML을 사용하는 방식은 다음과 같다.

  • Embedded Approach
    • Host language(C, C++ 등)으로 사용 가능하다.
    • SQLJ (for Java)
  • Procedure Call Approach
    • DB connector를 통해서 접근하는 방식이다.
    • JDBC (for Java), ODBC (for others, API)
  • Database Programming Language Approach
    • SQL 기반의 프로그래밍 언어
    • ORACLE
  • Scripting Languages
    • PHP, Python을 이용해 DB program 구현

 

User-Friendly DBMS Interfaces

  • Menu-based
  • Forms-based
  • Graphics-based
  • Natural language(검색을 의미)
  • Combinations of the above

 

Typical DBMS Component Modules

DBA가 DDL 기반으로 작성한 schema를 바탕으로 Query나 DML을 수행한다.

 

Centralized DBMS

보통 소규모에서 위와 같이 사용한다.

 

Basic 2-tier Client-Server DBMS

어느정도 규모가 있는 곳에서 사용한다. 공통적으로 사용되는 기능을 한대 이상의 서버를 유지하여 사용하는 Intranet 기반의 동작이다.

 

3-tier Client-Server DBMS

User가 직접 DB에 접근하지 못하는 구조이다. 보안상에 유리하다. 일반적으로 Web application을 생각하면 된다. 2-tier에서 중간 서버가 추가된 것으로, 중간서버가 user와 server 사이에서 조율한다. 대규모 글로벌 기업에서 주로 사용한다.

 

Classification of DBMSs

  • Data model을 기반으로 정의하기도 한다.
    • Legacy: Network, Hierarchical
    • Current: Relational, Object-oriented, Object-relational
    • Recent technology: Key-value storage system (NOSQL)
  • Sigle-user vs Multi-user
  • Centralied vs Distributed

 

Variations of Distributed DBMSs(DDBMSs)

Homogeneouse DDBMSs Heterogeneous DDBMSs
각 site에 모든 user의 data를 일치시키는 방식이다.
DBMS도 동일하다.
각 site 마다 다른 DBMS를 사용하는 방식이다.
필요하다면 서로 접근할 수도 있다.

Distributed DB system은 client-server based DB system이라고도 불린다. 완벽하게 전체를 커버하지는 않기 때문이다.