본문 바로가기
데이터베이스

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

by jinjinie 2024. 3. 3.

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

데이터베이스 시스템에는 단일 서버가 다수의 클라이언트 장치를 대신하여 작동하는 중앙집중식(centralized) 방식과 클라이언트-서버 방식이 있다. 또한 병렬 컴퓨터 아키텍처를 활용하도록 설계될 수도 있다. 분산 데이터베이스 시스템은 지리적으로 분산된 장치들로 구동되는 아키텍처를 말한다.

초창기 데이터베이스 응용은 거의 모든 작업이 중앙 호스트 컴퓨터에 집중된 구조였다. 그러나 이 경우 중앙 컴퓨터에 너무 많은 부하가 집중되어 전체적인 성능이 저하되는 문제가 있었다. 한편 일반 사용자 단말장치는 하드웨어 제조 기술 발달로 인해 자체적인 처리 능력을 보유하게 됨에 따라 중앙집중 방식의 문제점을 해결하기 위해 분산 시스템(distributed system)이 개발되었다.

분산 시스템은 작업에 참여하는 여러 장치가 작업을 나누어 처리하는 시스템이다.

때로는 데이터베이스 시스템 자체가 분산되기도 한다. 분산 데이터베이스 (distributed database) 시스템은 지역적으로 분산된 장치들을 활용한 데이터베이스 운영을 위해 개발되었다. 분산 데이터베이스 시스템에서는 데이터가 물리적으로 여러 장치에 분산되어 있으나, 논리적으로는 통합된 형태로 제공된다.

또 다른 분산 시스템의 일종으로, 클라이언트와 서버가 서로 업무를 분담하여 작업을 처리하는 클라이언트-서버(client-server) 데이터베이스 시스템이 출현하였다. 클라이언트-서버 컴퓨팅 모델은 컴퓨팅 처리 환경의 변화에 따라 현재 널리 적용되고 있는 방식이다.

클라이언트-서버 컴퓨팅 모델은 애플리케이션 프로그램의 부하를 분산시키고 시스템의 성능을 향상할 수 있으며, 소프트웨어의 유지보수 비용을 절감하고, 애플리케이션 프로그램의 이식성이 증가하는 등의 효과를 기대할 수 있다.

 

중앙집중식 데이터베이스 관리 시스템 구조

DBMS 구조는 일반적인 컴퓨터 시스템 구조와 유사하게 발전해 왔다. 초기의 시스템 구조는 메인프레임 컴퓨터가 모든 시스템 기능을 처리하는 구조였다. 메인프레임 컴퓨터는 DBMS의 모든 기능뿐만 아니라 사용자의 애플리케이션 프로그램, 사용자 인터페이스 프로그램 등을 모두 처리해야 했다.

그 이유는 대부분의 사용자가 자체적으로 데이터를 처리하는 능력이 없는 터미널(terminal)을 사용했기 때문이다. 터미널의 역할은 네트워크 통신을 통해 사용 중인 중앙 컴퓨터의 화면을 사용자에게 보여 주는 것에 지나지 않았다.

따라서 모든 처리는 중앙의 메인프레임 컴퓨터에서 수행되어야 했다.

이러한 중앙집중식 구조는 하드웨어의 가격이 하락함에 따라 개인용 컴퓨터가 대중화되기 전까지 계속 이용되었다. 심지어 대부분의 사용자가 터미널을 개인용 컴퓨터나 워크스테이션으로 교체하였음에도, DBMS 자체는 클라이언트- 서버 구조가 개발되기 전까지 여전히 중앙집중식 구조로 구동되었다.

 

클라이언트-서버 구조

클라이언트-서버 구조는 개인용 컴퓨터, 워크스테이션, 파일 서버, 프린터.

데이터베이스 서버, 웹 서버, 기타 구성 요소들이 네트워크를 통해서 서로 연결되어 있는 컴퓨팅 환경을 다루기 위하여 개발되었다.

클라이언트는 단일 사용자 컴퓨터로써 표현, 계산, 연결, 데이터베이스 서비스 요청 등을 자체적으로 수행한다. 서버는 다중 사용자 컴퓨터로서 계산, 연결, 데이터베이스 서비스 등을 제공한다. 클라이언트-서버 구조는 기본적인 DBMS 서버와 클라이언트 컴퓨터 간의 기능에 따라 2계층과 3계층의 두 가지 유형이 있다.

 

2계층 클라이언트-서버 구조

  • 2계층 클라이언트-서버 구조는 소프트웨어 구성 요소들이 클라이언트와 서버에 분산되어 있기 때문에 2계층 구조(2-tier architecture)라고 한다. 단순함과 기존 시스템과의 호환성이 이 구조의 장점이다. 중앙집중식의 RDBMS에서 클라이언트 쪽으로 가장 먼저 이동한 시스템 구성 요소는 사용자 인터페이스와 애플리케이션 프로그램들이었다. SOL은 RBMS의 표준 언어이기 때문에 클라이언트와 서버를 논리적으로 구분하는 역할을 하였다. 따라서 질의와 트랜잭션 기능은 서버 측에 남아 있었다.
  • 이런 구조에서 서버를 흔히 질의 서버(query server) 또는 트랜잭션 서버(transaction server)라고 하는데, 서버가 질의, 트랜잭션 기능을 제공하기 때문이다. 또한 RDBMS에서 대부분의 서버가 SQL 언어와 표준을 기반으로 하기 때문에 서버를 흔히 SQL 서버(SQL server)라고도 한다.
  • 이러한 클라이언트-서버 구조에서 사용자 인터페이스 프로그램과 애플리케이션 프로그램은 클라이언트 쪽에서 수행된다. DBMS에 대한 접근이 필요하면 이 프로그램은 서버 쪽에 있는 DBMS의 연결을 설정한다. 일단 연결이 설정되면 클라이언트 프로그램이 DBMS와 통신할 수 있다.
  •  

3계층 클라이언트-서버 구조

  • 계층 구조(3-tier architecture)는 클라이언트와 데이터베이스 서버 사이에 중간 단계를 새롭게 추가한 것이다. 중간 단계 또는 중간 계층(middle tier) 애플리케이션 서버 혹은 서버라고 부르기도 한다. 서버는 데이터베이스 서버에 저장된 데이터에 접근하는 사용되는 비즈니스 규칙(프로시저 또는 제약조건)들을 저장하는 중간 역할을 수행한다.
  • 클라이언트는 GUl, 응용에 관련된 일부 비즈니스 규칙들을 포함한다. 중간 서버는 클라이언트로부터 요청을 받아 처리하고, 데이터베이스 명령을 데이터베이스 서버로 보낸다. 이후 데이터베이스 서버에서 처리된 데이터를 클라이언트로 보내는 통로 역할을 한다. 클라이언트는 데이터를 사용자에게 GUI 형식으로 제시하기 위해 추가로 그래픽 작업을 처리할 수도 있다. 요약하자면, 세 개 층의 역할은 각각 사용자 인터페이스, 응용 규칙, 데이터 접근이다.