DBMS의 종류, DB 서버

2022. 8. 31. 11:09몰랐던거/DB

DBMS의 종류에 대해서 알아보자.

DBMS에는 다양한 종류가 있고 사용 용도나 제어하는 환경 등 조건에 맞게 고안된 것들이다.
DBMS는 데이터 저장 방법에 따라 몇 가지로 분류할 수 있다.

  1. 계층형 데이터베이스
  • 가장 오래된 DB이다.
  • 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식을 가진다.
  • 하드디스크, DVD 파일 시스템이 이러한 계층현 데이터베이스이다.
  1. 관계형 데이터베이스
  • 관계 대수(relational algebra)라는 것에 착안하여 고안한 DB이다.
  • 간단히 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스이다.
  1. 객체지향 데이터베이스
  • 객체(object)라는 것을 중심으로 프로그래밍하는 언어를 객체지향 언어라고 부른다.
  • 이처럼, 가능하면 객체 그대로를 DB 데이터로 저장하는 데이터베이스이다.
  1. XML 데이터베이스
  • XML은 자료 형식을 가리키는 용어로, 태그를 이용해 마크업 문서를 작성할 수 있게 정의한 것이다. (HTML과 유사하다.)
  • XML 형식으로 기록된 데이터를 저장하는 DB이다.
  • SQL을 사용할 수 없지만 XQuery라는 전용 명령어를 사용한다.
  1. 키-밸류 스토어(KVS)
  • 마치 해시 테이블처럼 키와 그에 상응하는 값이라는 단순한 형태의 데이터를 저장하는 DB이다.
  • NoSQL(Not only SQL) 이라는 슬로건으로부터 생겨난 DB로, 열 지향 DB라고도 불린다.

DB 서버

DB를 네트워크로 연결된 서버라는 관점으로 진행하겠다. (그리고 RDBMS로 초점을 맞추겠다.)

  • 일반적인 RDBMS는 네트워크 상에 하나의 서버를 두고 독점해 사용한다.
  • 하지만, 이는 고가의 서버의 경우에 그러하다. 공부나 개인 개발을 하는 경우 자신의 PC에 클라이언트와 서버 모두를 실행시켜 운용할 수 있다.
  1. 클라이언트/서버 모델
  • 요청을 전달하는 '클라이언트'와 요청을 처리하는 '서버'로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템을 말한다.
  • 웹 시스템에서의 클라이언트/서버
    • 웹 시스템 : 브라우저와 웹 서버로 구성되는 클라이언트/서버 모델의 시스템.
    • 웹에서 클라이언트는 '페이지를 열람하고 싶다'와 같은 리퀘스트를 전달하고 서버는 해당 리퀘스트를 처리한다.
    • 리퀘스트가 '페이지 열럼'이므로 브라우저가 페이지를 표시할 수 있게 서버에선 HTML로 된 데이터를 반환한다.(리스폰스)
    • 전달받은 브라우저는 해당 페이지를 화면에 표시한다. 이 과정이 되풀이되면서 웹 페이지가 표시된다.
  • RDBMS의 클라이언트/서버
    • 웹과 마찬가지로 클라이언트/서버 모델로 시스템이 구성된다. 하지만 단순 요청, 응답의 반복은 아니다.
    • 먼저, 웹에 없었던 사용자 인증이 필요하다.
    • 클라이언트에선 SQL 명령을 통해 요청을 보내고 서버는 여기에 응답한다.
  1. 웹 애플리케이션의 구조
  • 일반적으로 웹 서버와 DB 서버의 조합으로 웹 애플리케이션은 구축된다.
  • 브라우저가 클라이언트 , 아파치나 IIS와 같은 웹 소프트웨어가 서버 역할을 한다.
  • 클라이언트가 요청하면 서버는 응답하는데 웹 사이트가 정적인 HTML만으로 구성되어있다면 웹 서버만으로도 응답을 처리할 수 있다. 하지만 웹 애플리케이션이라 부를 정도의 규모라면 DB가 필요하다.
  • 웹 서버에서 동적으로 HTML을 생성하려면 제어용 프로그램이 필요한데 웹 서버엔 CGI라 불리는 동적 컨텐츠를 위한 확장 방식이 존재한다.
  • CGI를 이용해 프로그램과 웹 서버 간을 연동, 통신하여 처리한다.
    • 즉, 클라이언트가 동적으로 생성되어야 하는 HTML을 요청했다면 웨서버에서는 CGI로 프로그램 실행하고 프로그램이 동적으로 HTML을 생성하여 이를 반환한다.
  • 그렇다면, 실제로 DB로 접근하는 곳은 웹 서버일까? 아니다. CGI 프로그램에서 접근을 해야 데이터를 이용하여 동적인 HTML을 만들 수 있을 것이다.
  • 그럼 클라이언트가 DB로 SQL을 보내고 그에 맞는 결과를 받는다. 클라이언트는 CGI 프로그램이 되는 것이다. (DB의 클라이언트)
  • 클라이언트와 서버가 네트워크로 연결되어 있다면 서로 다른 머신에 두어도 무방하다.
  • 그래서 웹 서버와 DB 서버를 다른 머신에 두면 처리가 분산되어 시스템 전체 성능이 향상된다. 그래서 실제로 웹 서버, DB 서버를 여러 대로 구성하여 운용하는 경도도 많다.

'몰랐던거 > DB' 카테고리의 다른 글

[Transaction] 트랜잭션과 트랜잭션 격리성 공부하기  (2) 2023.04.11
[Lock] DB 락에 대해서 공부하기  (0) 2023.04.11
인덱스 (index)  (0) 2022.11.30
데이터베이스의 개념  (0) 2022.08.31
DDL, DML, DCL 이란?  (0) 2022.08.25