DB, DBMS, 서버…IT 비전공자를 위한 개념 한판 정리!
나 갑자기 헷갈리는데, DB와 서버의 차이가 뭐였지?
다른 신입 기획자 친구가 물어봤다. 게슈탈트 붕괴 현상. 나도 헷갈린다. 음,,, 서버는 클라이언트와 대응되는 개념인데, 그럼 DB는 뭐라고 설명해야 하지? 오늘은 DB와 서버 개념에 대해 정리해보자!
서버는 server, 말 그대로 서빙을 하는 애다. 한국어로 고객이라는 뜻인 클라이언트가 요청하는 정보를 제공(서빙)하는 컴퓨터를 우리는 서버라고 한다.
식당과 손님에 비유할 수 있다. 손님(클라이언트)가 어떤 음식(정보)을 요청하면 서버(식당)은 요청에 따라 음식(정보)을 제공한다.
사전적인 정의는 실무에 큰 도움이 되지 않지만, 찾아볼 필요가 있다. db는 데이터 베이스 data base의 약자이다. 그리고 데이터베이스란 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임이다. 그러니까 데이터는 하드웨어적인 것이 아니다. 물리적으로 형체가 있는 것이 아니고, 무형의 정보라고 볼 수 있다.
다시 식당의 예로 돌아가 볼까? 식당에는 여러 종류가 있다. 양식을 팔 수도 있고, 한식을 팔 수도 있다. 데이터베이스는 양식, 중식처럼 식당이 제공할 수 있는 음식 종류 중의 하나이다. 어떤 식당은 양식을 팔고 어떤 식당이 중식을 팔듯이, 어떤 서버는 메일 정보를 제공하고 어떤 서버는 db 정보를 제공한다.
양식을 파는 식당을 양식당이라고 하듯, 메일 정보를 제공하는 서버는 메일 서버라고 한다. 그럼 db 정보를 제공하는 서버는 뭐라고 부를까? 맞다. DB 서버다.
DBMS는 Data Base Management System의 약자다. 그대로 해석해보면, '데이터 베이스를 관리하는 시스템'이다.
다시 식당으로 가보자. 하나의 식당이 음식을 제공하려면 레시피도 있고, 그 식당만의 운영 시스템이라는 것이 있다. 운영 시스템을 예를 들면 이런 게 있겠지?
<우리 떡볶이집 규칙>
손님이 들어오면 우선 가장 안쪽에 있는 자리를 안내한다. 그리고 사람이 너무 많으면 식당 밖에 줄을 서도록 한다.
손님이 들어오면 뭘 먹을지 물어본다. 떡볶이를 주문하면 맵기 정도도 함께 받는다.
주문을 받으면 주방장이 조리를 시작한다. 조리가 끝나는 즉시 손님에게 전달한다.
서버도 이런 시스템이 있어야 운영을 효율적으로 할 수 있다. 데이터베이스의 자료가 필요한 서버가 각각 db 서버를 조작하는 것이 아니라, 데이터베이스를 조작하는 별도의 소프트웨어를 데이터베이스 관리 시스템(DBMS : DataBase Management System)이라고 한다. 그리고 여러 소프트웨어 회사에서 아예 이런 시스템을 돈 주고 판다. 마치 프랜차이즈와 같다.
DBMS의 종류까지 기획자가 알아야 할까 싶겠지만 사실 아래 Redis, MY_SQL 등 DBMS 상품 이름을 보면 '아~ 그게 이거구나'라고 생각할 거다.
Oracle: 오라클에서 판매하는 상품이다. Windows, Linux 등 다양한 운영체제에서 사용 가능하고 다른 DBMS보다 대용량의 데이터를 관리하기 좋아서 글로벌 DB 시장 점유율 1위를 차지하고 있다. 주로 대기업에서 사용한다.
MySQL: 동명의 회사에서 개발했지만 현재는 오라클이 판매권을 가지고 있다. 가격이 저렴해서 중소기업에서 많이 사용한다고 한다.
MariaDB: MySQL이 오라클에 인수된 이후, MySQL 기술진이 오라클에서 나와 개발한 DBMS다.
더 나아가자면 위에서 기술한 DBMS는 '관계형 데이터베이스'를 기반으로 한다. 관계형 데이터베이스는 쉽게 말해 표(Table) 형식으로 데이터를 쌓아가는 형태라고 말할 수 있다. 반면에 비 관계형 데이터베이스도 있는데, 관계형 데이터베이스의 한계를 보완하고 빅데이터 등 복잡한 데이터 구조도 잘 표현할 수 있다. 비 관계형 데이터베이스를 기반으로 하는 DBMS에는 Redis, MongoDB 등이 있다.
MySQL과 MariaDB를 개발한 사람은 같은 사람인데 (울프 미카엘 몬티 비데니우스), MySQL의 My는 그의 첫째 딸 이름에서 따온 것이고, MariaDB에서 Maria는 둘째 딸 이름에서 따온 것이다. How Sweet daddy he is,,,
우리가 흔히 볼 수 있는 MS Access와 MS Excel 역시 DBMS라고 할 수 있고, 실제로 활용할 수 있다. Excel도 결국 표(Table)이니까...
그렇지만 데이터의 양이 많지 않은 경우에만 사용 가능하다. 확실하지 않지만 나무위키에 따르면 실제로 영국에서 코로나 19 확진자 숫자를 관리하는 DBMS로 Excel을 사용하다가 데이터를 날려먹기도 했다.