본문 바로가기
프로젝트(종료)/SQLD 자격증 따기

[SQL]데이터베이스와 DBMS, RDBMS

by 일말고프로젝트 2021. 5. 15.

 

 

업무 중에도 꽤나 헷갈리는 개념들이라 짚고 넘어가야할 필요성을 느껴서 정리함

DBMS, RDBMS, 서버, 클라이언트 등의 개념부터 mysql, mariaDB, SAS, HIVE 등의 프로그램 이름까지 모호하게 알고 있던 개념들을 선을 그어 정리해보자.

 

1. DBMS와 RDBMS

 

 

 

https://gomcine.tistory.com/entry/Database-1-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98-%EC%97%AD%EC%82%AC%EC%99%80-%EA%B0%9C%EB%85%90

 

위 그림을 보면 사용자가 각자의 응용프로그램을 통해 DBMS에 접근해 원하는 데이터베이스에 접근하고 작업을 진행한다. 즉, DMBS를 사용하는 것은 Client를 통해 server에 접속해 그 안에 있는 데이터베이스를 활용하는 명령을 내리는 것이다. 

 

그 DBMS의 유형은 

 

  • 관계형 데이터베이스 관리 시스템(RDBMS)
  • NoSQL DBMS
  • 인 메모리 데이터베이스 관리 시스템(IMDBMS)
  • 기둥형 데이터베이스 관리 시스템(CDBMS)

 

로 나뉜다. 대표적인 DBMS는 Oracle, MySQL, MSSQL이며 모두 RDBMS이다. 현재 회사에서 자주 쓰는 HIVE란 프로그램은 약간 결이 다르지만 유사하다. 하이브는 하둡 에코시스템 중에서 데이터 웨어하우스 인프라 구조이며 나름의 SQL같은 언어를 제공하는 데이터웨어하우징 솔루션이다. 

 

RDBMS HIVE
데이터베이스를 유지 관리하는 데 사용 데이터웨어하우스를 유지 보수하는 데 사용
SQL (Structured Query Language)을 사용 HQL (Hive Query Language)을 사용
스키마는 RDBMS에서 수정 스키마는 다양함
정규화 된 데이터가 저장 정규화 된 데이터와 비정규 화 된 데이터 유형이 모두 저장
파티셔닝을 지원하지 않음 자동화 파티션을 지원
파티션 방법이 사용되지 않음 샤딩 방법은 파티션에 사용

 

2. RDBMS와 SQL 개념

 

SQL은 Structured Query Language의 약자로서 RDBMS에서 사용되는 언어이다. 표준 SQL이 있지만 DBMS 회사마다 사용하는 SQL에는 다소 차이가 있다. 아마 시장을 독식하는 오라클부터 잘 안지키고, MySQL도 안 지키고.. 사실 표준이라는 말을 이젠 빼는게 맞지 않나 싶다. 그냥 데이터 처리에서 테이블 기준으로 이해하면 어떤 SQL문이든 그나마 조금 쉽게 이해할 수 있다. 쉽게 생각하면

 

"데이터베이스에서 원하는 데이터를 꺼내 오도록 컴퓨터에게 하는 말"

 

이다. 

 

3. 서버, 클라이언트 그리고 DBMS

 

클라이언트

  • 서버와 이어진 모든 단말기(컴퓨터의 경우는 WI-FI에, 모바일은 모바일 네트워크에 연결되어 있다)와 단말기에서 이용하는, 웹에 접근하는 소프트웨어를 지칭
  • 보통은 브라우저이나, 게임과 같이 별도의 클라이언트가 서버랑 호응하는 경우도 있음.
  • 사용자의 입력을 주로 처리하며 이를 서버에 요청을 보냄.

서버

  • 웹페이지, 사이트, 앱을 저장하는 컴퓨터
  • 클라이언트의 요청을 받아서 처리하고, 이를 다시 클라이언트에 응답을 보냄
  • 어떠한 형태로든 클라이언트의 요청을 받아 정보를 제공하면 서버 컴퓨터가 될 수 있음. (노트북도 가능)

참조 : https://velog.io/@two_jay/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%84%9C%EB%B2%84-%EB%AA%A8%EB%8D%B8-5%EB%B6%84-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0

 

DBMS

  • 과거의 서버-클라 구조에서 서버와 DB가 따로 분리되어 있지 않아서 확장성의 이슈가 있었음
  • 트래픽량이 증가함에 따라 최근에는 매우 큰 DB 서버 하나를 두고 여러 개의 서버를 둠
  • 외부 IP로 DB 서버에 접속하기 위해서는 권한을 얻기 위한 추가 설정이 필요하지만 로컬에서 접속할 때는 PHPMYADMIN 으로 그냥 접속 가능

 

+) 개인적으로 제일 헷갈렸던 부분은 왜 SQL이 SAS에서 쓰는 것과 Oracle에서 쓰는 것과 DBEAVER에서 쓰는 것과 HIVE에서 쓰는게 다 다른가였는데, 사실은 RDBMS와 DBMS, DB 인터페이스로서 언어 환경이 모두 달랐던 이유였다. 그래도.. 표준 기준이 있는게 무색할 정도긴 하다. 

 

 

 

 

댓글