[DataBase] ANSI/SPARC 구조

Posted by kyoungIn on April 18, 2019

ANSI/SPARC 구조

3단계 데이터베이스 구조(3-level-database architecture)

  • DBMS의 구현을 위한 추상적인 설계 표준으로서, DB에 대한 여러 사용자의 관점과 DB가 실제로 표현되는 방식(물리적 관점)을 분리시킬 수 있도록, DB구조를 크게 외부 단계, 개념 단계, 내부 단계로 구분한 구조.

  • DBMS의 주 목적은 사용자에게 데이터에 관한 추상적인 뷰를 제공하는 것.

  • 즉, 데이터에 관한 상세한 내용은 숨기고 있는 것.

  • ANSI/SPARC 구조의 목적은 데이터의 독립성을 제공하는 것.

  • 사용자 -> DB의 내부 구조에 대해 알지 못해도 DB를 사용할 수 있음

    DB 관리자 -> 응용 프로그램에 영향을 주지 않고 DB 구조를 변경할 수 있음

외부 단계(External Level)

  • 외부 단계(또는 뷰 단계)는 가장 추상화된 층으로 개별 사용자 또는 프로그램이 접근하는 층
  • 사용자는 뷰 또는 SQL 쿼리를 통해 외부 스키마를 구성할 수 있다.
  • 이 때 외부스키마는 아래 단계에 위치한 개념스키마로부터 생성되거나 사용될 수 있으므로 서브스키마(SubSchema)라고도 불림
  • 한 개의 개념스키마로부터 여러개의 서브스키마가 만들어질 수 있습니다.
  • 대학교 데이터베이스에서 한 학과의 학과장은 학과의 예산과 학생들의 수강 정보에는 관심이 있지만, 도서관에 관한 정보는 관심이 없다. 즉, 학과장은 학과에 관련된 데이터만 볼 수 있으면 된다.
  • 동일한 데이터에 대한 서로 다른 표현을 제공할 수 있다. 예를들어 날짜를 월/일/연도 형식으로 보고, 연도/월/일 형식으로도 볼 수 있다.

개념 단계(Conceptual Level)

  • 개념 단계에는 개념스키마(Conceptual Schema)가 존개
  • 개념스키마는 논리스키마(Logical Schema)라고도 함.
  • 어떤 데이터들이 기억되어야 하는지, 그리고 그 데이터들 간에는 어떤 관계가 있는지, 어떤 무결성 제약조건들이 명시되어 있는가를 기술
  • 전체 데이터베이스의 논리적인 구조를 기술

내부 단계(Internal Level)

  • 내부 단계는 데이터들이 실질적으로 어떻게 저장되어 있는지에 관심이 있는 층으로 내부스키마(Internal Schema)를 가짐
  • 내부 스키마는 데이터베이스의 물리적인 저장 구조를 기술하므로 물리스키마(Physical Schema)라고도 함.
  • 실제의 물리적인 데이터 구조에 관한 스키마
  • 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술

이렇게 3단계 계층구조로 나눠진 데이터베이스는 데이터의 독립성을 가진다.

데이터의 독립성이란 특정 스키마를 변경해도 상위 수준의 스키마 정의에 영향을 주지 않는 성질을 말한다.

데이터 독립성

  • 응용 프로그램과 데이터가 서로 종속적되지 않는 것, 서로 영향을 미치지 않도록 하는 것

  • DB의 논리적 구조나 물리적 구조가 변경되어도 응용 프로그램에 영향을 주지 않는 것

논리적 데이터 독립성

  • 응용 프로그램에 영향을 주지 않고 DB의 논리적 구조(개념 스키마)를 변경할 수 있는 것을 의미

  • 외부/개념 단계 간의 사상에 의해 보장

물리적 데이터 독립성

  • 응용 프로그램이나 DB의 논리적 구조에 영향을 주지 않고 DB의 물리적 구조(파일 편성, 데이터 접근 방법 등)를 변경할 수 있는 것

  • 개념/내부 단계 간의 사상에 의해 보장

이렇게 데이터 독립성을 가질 수 있는 것은 각 계층구조를 유기적으로 연결해주는 매핑(Mapping, 또는 사상)때문입니다.

특정 스키마가 바뀌더라도 매핑을 다시 함으로써 다른 계층의 스키마의 내용은 변하지 않아도 되는 것입니다.

  1. 외부/개념 사상(Mapping)

    외부 스키마와 개념 스키마 간의 대응 관계를 정의 응용 인터페이스라고도 함

    개념 스키마가 변경되어도 응용 인터페이스만 수정하면 외부 스키마에 영향을 미치지 않음

  2. 개념 내부 사상(Mapping)

    개념 스키마와 내부 스키마 간의 대응 관계를 정의한 것으로, 저장 인터페이스라고 칭함

    부득이 내부 스키마가 변경되어도 저장 인터페이스만 수정해주면, 개념 스키마에 아무런 영향을 미치지 않게 됨


참고

https://k9e4h.tistory.com/106 [Kim’s :D]

https://vvshinevv.tistory.com/36 [왜 모르는가?]

https://www.bsidesoft.com/?p=4754