본문 바로가기
👨‍💻Computer Science/데이터베이스

[Database] 01 - 7 데이터베이스 시스템 아키텍처

by 코푸는 개발자 2021. 9. 9.
728x90

DBMS는 여러 모듈이 협력하여 작동하는 소프트웨어입니다.

데이터베이스 시스템의 간단한 아키텍처

데이터베이스 관리자가 데이터베이스 정의어를 사용하여 데이터베이스를 생성하면 데이터 정의어 컴파일러가 이를 컴파일하여 시스템 카탈로그에 정보를 저장합니다.

최종 사용자 또는 응용프로그램이 기작성 트랜잭션 또는 콘솔을 통해 데이터 조작어로 작성된 질의를 입력하면 징의 처리기는 이를 파싱하여 질의를 처리합니다. 이때 데이터베이스와 시스템 카탈로그의 접근은 런타임 데이터베이스 관리기를 통해 이루어집니다.

한편, 동시성 제어와 회복을 위해 트랜잭션 관리기는 런타임 데이터베이스 관리기와 긴밀하게 협력합니다.

 

데이터 정의어 컴파일러(DDL compiler) 모듈

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

질의 처리기(query processor) 모듈

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

런타임 데이터베이스 관리기(run-time database manager) 모듈

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

트랜잭션 관리(transaction management) 모듈

  • 동시성 제어(concurrency control) 모듈
  • 회복(recovery) 모듈

데이터베이스 API(Application Program Interface, 외부에서 데이터베이스에 접근할 수 있도록 해주는 라이브러리 함수들의 모임)

  • ODBC(Open Database Connectivity)는 마이크로소프트 사가 주도적으로 개발한 데이터베이스 API
  • ODBC를 지원하는 DBMS 간에는 서로 상대방의 데이터베이스를 접근할 수 있음
  • DBMS는 고유한 API를 제공하는 이러한 API는 제품별 호환성이 없음

데이터베이스 API(ODBC)의 역할(서로 호환x)

*JDBC(JavaDatabase Connectivity)는 자바프로그램에서 데이터베이스에 접근하기 위한 표준, 자바를 위한 드라이버로서 제공됨.

*일반적으로 ODBC는 응용들간에 사용되고 JDBC는 자바 프로그램이 관계 데이터베이스를 접근할 때 사용됨

 

 

중앙 집중식 데이터베이스 시스템(centralized database system)

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

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

분산 데이터베이스 시스템(distributed database system)

  • 네트워크로 연결된 여러 사이트에 데이터베이스 자체가 분산되어 있으며, 데이터베이스 시스템도 여러 컴퓨터 시스템에서 운영됨
  • 사용자는 다른 사이트에 저장된 데이터베이스도 접근할 수 있음

분산 데이터베이스 시스템

클라이언트-서버 데이터베이스 시스템(client-server database system)

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

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

2층 모델(2-tier model, 클라이언트-서버 아키텍처)

  • 클라이언트와 데이터베이스 서버가 직접 연결됨
  • 응용의 논리가 클라이언트, 서버 둘다로 흩어져 있음

3층 모델(3-tier model)

  • 클라이언트와 데이터베이스 서버 사이에 응용 서버(비즈니스 로직)가 추가됨
  • 응용의 논리가 응용 서버에만 포함되어 있음

2층 모델(a)와 3층 모델(b)

 

 

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

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

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

  • 보안이 다소 취약할 수 있음
728x90

댓글