Programing/[DB]SQL

[DB]데이터베이스 개념(3) - DBA, DC Manager, 클라이언트/서버, 분산처리

바오밥 하단 2020. 9. 14. 00:33

벌써 교수님의 강의력에 화나기 시작했다.. 어서 스터디를 구해야만 한다.

 


 

1. 데이터베이스 관리자 = DBA(Database Administrator)

데이터베이스 운영 조직의 시스템을 총괄한다.

1) 책임(responsibilities)

  • 데이터베이스에 담기는 정보를 개체와 관계로 정리하고, DDL을 사용하여 개념 스키마를 구성한다. (object form : used by DBMS, source form : reference document for the users)

  • 개념/내부 매핑과 관련하여 내부 스키마에 저장되는 구조와 접근 방법을 결정한다.

  • 외부/개념 매핑과 관련하여 외부 스키마를 통해 유저를 리스트화한다.

  • 보안(security)과 무결성(integrity)을 검사한다.

  • 백업과 복구를 위한 방법을 정의한다.

  • 요구사항 변경에 반응하고 성능을 확인한다.

2) 유틸리티(utilities)

  • load routines: 데이터베이스 초기 버전을 만든다.

  • unload/reload routines: 복구를 목적으로 스토리지를 백업한다.

  • reorganization routines: 여러 성능 상의 이유에 맞춰 데이터를 재정렬한다. (cluster, data reclaim space)

  • statistics routine: 여러 성능들을 계산한다. (파일 크기, 데이터 값 분포 등)

  • analysis routines: 분석

 

2. Data Communications Manager

사용자들이 보내는 커뮤니케이션 메세지 형태의 요청을 받고 DB에 전달한다.


 

3. Client/Server Archiecture

여러개의 클라이언트가 네트워크 통신을 활용해 서버에 접속을 하고 그 서버와 붙어있는 데이터베이스를 활용할 수 있는 시스템

  • 클라이언트(Client): 사용자 인터페이스를 관리하고 응용들을 수행한다. 서버와 동일한 디바이스 일 수도 있지만 대부분 서비스를 사용하고자 하는 사용자들의 인터넷이 가능한 모든 디바이스를 포함한다.

  • 서버(Server): DBSM 자체. 데이터베이스를 저장하고 DBMS를 운영하면서 여러 클라이언트에서 온 질의를 최적화, 권한 검사를 수행, 동시성제어, 회복기능, 무결성, 접근을 관리한다.

더보기

+ 응용(application)

사용자 작성 응용(user-written applications): C 또는 COBOL + DSL로 작성된 정규 지원 프로그램

공급업체 제공 응용(vendor-provided applications): 다른 응용 프로그램 생성과 실행 프로세스를 지원하는 도구

클라이언트-서버(client - server): 다양한 디바이스들이 분산 처리(Distributed Processing)할 수 있다.

+ 응용(application)

사용자 작성 응용(user-written applications): C 또는 COBOL + DSL로 작성된 정규 지원 프로그램

공급업체 제공 응용(vendor-provided applications): 다른 응용 프로그램 생성과 실행 프로세스를 지원하는 도구

클라이언트-서버(client - server): 다양한 디바이스들이 분산 처리(Distributed Processing)할 수 있다.


 

4. 분산처리(Distributed Processing)

하나의 데이터 처리 작업이 네트워크의 여러 기계에 걸쳐질 수 있도록 여러가지 기계들을 통신 네트워크에 함께 연결하여 처리한다. (cf. 병렬 처리)

  • 클라이언트/서버(Clients/server) - 병렬 처리를 하면 응답 시간은 적고 처리량은 많다.
  • 서버 머신(Server machine) - DBMS 성능을 높인다
  • 클라이언트 머신(machine) - 사용자의 요구에 맞춰 인터페이스 개선, 고가용성, 빠른 응답, 사용 편의성 향상을 돕는다.
  • 여러 개의 서로 다른 클라이언트 컴퓨터가 하나의 서버를 사용할 수 있다. ex. 단일 기업이 많은 컴퓨터를 운영하는 것.
  • 각 machine은 서버이자 클라이언트이다.

 

더보기

+ machine은 서버이자 클라이언트

단일 클라이언트 컴퓨터가 여러 개의 다른 서버 시스템에 액세스할 수 있다.

1_ 클라이언트가 여러 서버에 접근할 수 있지만 한 번에 한 대만 가능한 경우. 즉, 각 개별 데이터베이스 요청은 한 대의 서버로만 연결되어야 한다. 두 개 이상의 서버에서 데이터를 결합할 수 없다. 사용자는 어떤 기계가 어떤 데이터 조각을 가지고 있는지 알아야 할 때 쓰인다.

2_ 클라이언트는 여러 서버에 동시에 액세스할 수 있을 수 있는 경우. 즉, 단일 데이터베이스 요청이 여러 서버의 데이터를 결합할 수 있을 수 있다. 서버는 클라이언트를 단일 서버인 것처럼 바라본다. 분산 데이터베이스 시스템으로 "투명성"을 유지하기 위해 쓰인다.