Database - system architecture

Bomin Seo·2022년 7월 21일
0

ANSI/SPARC architecture

  • 대부분의 상용 DBMS 구현에서 사용되는 일반적인 Architecture

ANSI/SPARC Architecture 단계

  • 외부 단계 : 각 사용자의 뷰
    • 여러 부류의 사용자를 위해 동일한 개념 단계로부터 다수의 서로 다른 뷰가 제공될 수 있다.
  • 개념 단계 : 사용자 공동체의 뷰
    • 조직체의 정보 모델로써 물리적 구현은 고려하지 않으면서 조직체 전체 스키마를 포함한다.
    • 데이터베이스 내의 데이터 타입, 데이터 간의 관계, 무결성 제약 조건 등에 대하여 기술한다.
    • 데이터베이스마다 오직 1개의 개념 스키마만이 존재한다.
  • 내부 단계 : 물리적 또는 저장 뷰
    • 실제 물리적인 데이터 구조에 대한 스키마
    • 데이터베이스에 어떤 데이터가 어떻게 저장되었는가에 대하여 기술한다.
    • index, hasing과 같은 접근 경로, 데이터 압축 등에 대하여 기술한다.
    • 개념 스키마에는 영향을 미치지 않으면서 성능을 향상시키기 위해서 내부 스키마를 변경하는 것이 바람직하다.
    • 내부 단계 하부는 물리적 단계이며 물리적 단계는 DBMS의 지시에 따라 운영체제가 관리한다.

스키마 간의 사상

  • DBMS는 3가지 유형의 스키마 간의 사상을 책임진다.

외부/개념 사상

  • 외부 단계의 뷰를 사용해서 입력된 사용자의 질의를 개념 단게의 스키마를 사용한 질의로 변환한다.

개념/내부 사상

  • 변환된 스키마를 다시 내부 단계의 스키마로 변환하여 디스크의 데이터베이스에 접근한다.

데이터 독립성

  • 상위 단계의 스키마 정의에 영향을 주지 않으면서 특정 단계의 스키마 정의를 변경할 수 있음을 의미한다.

논리적인 데이터 독립성

  • 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미한다.
  • 기존의 외부 스키마에 영향을 미치지 않고, 응용프로그램을 다시 작성할 필요 없이 개념 스키마에 대한 변화가 가능해야 한다.

물리적인 데이터 독립성

  • 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며, 외부 스키마에도 영향을 미치지 않음을 의미한다.

데이터베이스 시스템 아키텍처

데이터 정의어 컴파일러 모듈

  • 데이터 정의어를 사용하여 테이블 생성을 요청하면 테이블을 파일 형태로 데이터 베이스에 만들고 테이블에 대한 명세를 시스템 카탈로그에 저장한다.

질의 처리기(데이터 조작어 컴파일러 포함) 모듈

  • 데이터 조작어를 수행하는 최적의 방법을 찾는 모듈을 통해서 기계어 코드로 번역한다.

런타임 데이터베이스 관리기 모듈

  • 디스크에 저장된 데이터 베이스를 접근한다.

트랜잭션 관리 모듈

  • 동시성 제어 모듈 및 회복 모듈

데이터베이스 API (Bridge를 통해 API가 다른 DBMS를 연결할 수 있다)

  • 외부에서 데이터 베이스에 접근하는 라이브러리 함수들의 집합
  • 표준 DBMS API(ODBC-MS, JDBC 등)는 서로 다른 DBMS간의 상호 작용을 가능하게 한다.

중앙집중식 데이터베이스 시스템

  • 데이터베이스 시스템이 하나의 컴퓨터 시스템에서 운영되는 시스템

분산 데이터베이스 시스템

  • 네트워크로 연결된 여러 사이트에 데이터 베이스 자체가 분산되어 있으며 데이터 베이스 시스템도 여러 컴퓨터 시스템에서 운영된다.
  • 사용자는 다른 사이트에 저장된 데이터 베이스도 접근할 수 있다.
  • 다른 사이트 간의 협력하여 질의를 처리할 수 있다.

클라이언트-서버 데이터베이스 시스템

  • PC와 같이 자체 컴퓨팅 능력을 가진 클라이언트를 통해 데이터베이스 서버에 접근
  • 데이터 베이스가 하나의 데이터베이스 서버에 저장되어 있다.
  • 데이터 베이스 시스템의 기능이 서버와 클라이언트에 분산된다.
  • 서버는 데이터 베이스를 저장하고, DBMS를 운영하면서 여러 클라이언트에서 온 질의를 최적화하고, 권한 검사를 수행하고, 동시성 제어와 회복기능을 수행하며, 무결성을 유지하고 데이터 베이스에 대한 접근을 관리한다.
  • 클라이언트는 사용자 인터페이스를 관리하고 응용 프로그램들을 수행한다.

2층 모델

  • 클라이언트와 데이터베이스 서버가 직접 연결(응용 논리가 분산되어 있다)

3층 모델

  • 클라이언트와 데이터베이스 서버 사이에 응용서버가 추가된다. (응용 논리가 응용서버에)
  • 클라이언트는 프레젠테이션 기능과 네트워크 접근 및 인터페이스 관리를 한다.

2층 모델에 비해 3층 모델이 가지는 장점

  • 서비스의 요청과 응답이 클라이언트와 응용 서버 간에만 일어나 성능이 향상된다.
  • 응용 소프트웨어를 다수의 클라이언트보다 응용서버에 집중됨으로써 유지보수가 수월하다

클라이언트 - 서버 데이터베이스 장점

  • 데이터 베이스를 보다 넓은 지역에서 접근할 수 있다.
  • 다양한 컴퓨터 시스템에서 사용할 수 있다.

클라이언트 - 서버 데이터베이스 단점

  • 보안이 다소 취약할 수 있다
profile
KHU, SWCON

0개의 댓글