데이터베이스 02-2 (3단계 스키마 구조, 데이터 독립성, DBMS언어, DBMS 인터페이스)

# Tri-Level Schema Structure, Data independence, DBMS Language, DBMS Interface

💡DBMS는 
① Program-data independence (상호간의 독립성) 제공
② 데이터의 복수개의 뷰 제공

위 2개의 특성들을 지원하기 위해 만들어진 구조이다.

3단계 스키마 구조 (3 Level)

  • External schemas | 데이터를 바라보는 관점들이 다 다르기 때문에 (다양한 사용자 view) 제공
  • Conceptual schema | 전체 데이터베이스에 대한 데이터의 구조와 그 데이터에 부여되는 제약조건들을 기술하는 레벨
  • Internal schema | Physical data model(low level schema)을 표현해주는 것 . Data storage 구조와 Access path들과 같은 디스크에 어떻게 저장할 것인가를 표현

1. External Level (Lv.1)

: conceptual schema를 바라보는 다양한 관점이 존재

2. Conceptual Level (Lv.2)

: 우리가 만든 conceptual schema 레벨

3. Internal Level (Lv.3)

: 물리적인 특성을 설명하는 레벨로 어떤 데이터베이스에 어떤 방법으로 접근할 것인가에 대한 구체적인 전략 방법, 연산, 제약조건을 다루는 것



Mapping

Program이 하는 일 = mapping = 각 레벨 간의 query 변환

프로그램들이 external schema(high-level)를 참조할 때 필요하게 된다.
DBMS가 그 프로그램의 수행을 위해, Internal schema에 map하기 위해 필요하다

→ external schema(고수준)를 참조하는 프로그램들은 internal schema(저수준)를 참조하는 프로그램으로 변경되어야 한다.

데이터 독립성

	하위 레벨로부터 독립하자! 상위 레벨을 안 바꾸고, Mapping만 바꾸자!
  • Logical Data Independence

    "논리적 데이터=conceptual schema (로 부터) 독립성 (독립하자)"

  • Physical Data Independence

    "물리적 데이터 = physical schema (로 부터) 독립성 (독립하자)"
    —> conceptual schema가 조금 바뀌어도 응용프로그램은 웬만하면 바꾸지 말자!

데이터 독립성은 하위레벨에 있는 어떤 schema에 변경이 생겼을 때 변경된 schema와 그것의 상위레벨 schema 사이에 차이가 생긴다. 이때 단순히 ‘mapping’만을 변경해서, 데이터 독립성을 지원하고,, 그 상위 레벨 schema들은 안바뀌도록한다. 그러므로 응용프로그램은 external schema를 참조하기 때문에 변경하지 않아도 되는 것이다 .

Conceptual Schema('참조') View('작성')External Schema


DBMS Languages

  • Data Definition Language (DDL)

    : 스키마 정의 언어 (DBMS와 대화하기 위한 준비 언어)

    데이터 베이스의 Conceptual schema를 표현하기 위해서 사용

  • Data Manipulation Language (DML)

    • 고급 언어 내재 방식 [Embeded Language]
      • DB에 들어갔다가 나옴
      • JPS, ASP, PHP, HTML5, 웹 Script languag에 내재되는 언어로 웹 서버 설치가 필요함
    • 문답식 방식 [Interactive Queries or Stand-alone DML]
      • Query 입력시 결과가 바로 나옴
      • DBMS가 제공하는 질의 창(Query Interface)를 통해 query를 직접 작성하여 질의 가능
  • Queries

    = SQL
    데이터베이스의 내용을 추출하고 갱신하기 위한 언어

DML 타입

① 목적만 명시
② 모든 과정을 구체적 명시 (looping으로 하나씩 찾고 추출,,,)

DBMS Interfaces

1. DBMS Programming Language Interfaces

  • Embeded Approach
  • Procedure Call Approach
  • 전용 Database Programming Language Approach (oracle)
  • Scripting Lanugage (php)

2. User-Friendly DBMS Interfaces

  • menu / forms / Graphics / Natural language / Combination

ADDING

Data Dictionary
Dictionary ⊃ Catalog

  • Passive data dictionary is accessed by users / DBA only
    (DBA가 수동적으로 관리 함)

좋은 웹페이지 즐겨찾기