DBMS란?
- DataBase Management System의 약자로 데이터베이스를 관리하는 소프트웨어이다.
- 사용자 <-> DB 사이에서 데이터를 생성해주고 관리해준다. (CRUD)
- DBMS는 데이터를 구성, 조작, 검색을 제공하며 원하는 정보에 엑세스 할 수 있도록 도와준다.
- DBMS는 소규모 데이터를 다루는데 유리합니다.
- 데이터를 파일 형식으로 저장합니다.
- 정규화가 불가능합니다.
- 데이터를 보관하는데 보안을 제공하지 않습니다.
- 보통 서버의 형태로 서비스를 제공합니다.
- ex) Sybase, dbase 및 Microsoft Access
RDBMS란?
- RDB를 생성하고 수정할수 있는 소프트웨어이다.
- Relational DataBase Management System의 약자로 관계형 모델을 기반으로 하는 DBMS의 유형이다.
- 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리가 가능하다.
- 정규화가 가능하다
- 데이터의 원자성, 일관성, 격리 및 내구성을 유지하여 무결성을 높인다.
- 데이터를 테이블 형식으로 저장합니다.
- ex) mySQL, Oracle, MSSQL
한마디로 RDBMS는 DBMS에 포함되어있는 하나의 데이터베이스 유형이다.
그럼 갑자기 MiddleWare는 왜 튀어나올까??
MiddleWare
먼저 MiddleWare는 middle + software의 합성어이다.
사전적 정의는
미들웨어는 양 쪽을 연결 하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할 을 하는 소프트웨어,
네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록
연결해 주는 소프트웨어를 말한다.
3계층 클라이언트/서버 구조에서 미들웨어가 존재한다.
웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재하게 된다.
그리고 두 가지 뜻이 있는데
- 운영체제와 그 운영체제 사이에서 실행되는 응용 프로그램 사이에서 운영체제가 제공하는 서비스 이외에 추가적인 서비스를 제공하는 소프트웨어이다.
- 클라이언트와 서버 간의 통신을 담당하는 소프트웨어이다.
우리는 2번에 집중해서 보면 된다.
MiddleWare가 왜 필요한가?
위에서 DBMS는 서버의 형태로 서비스를 제공한다고 하였다.
예전 웹 어플리케이션 운영환경에서 사용자(클라이언트)의 요청이 유입되는 순간 비지니스 로직처리, 데이터 처리 등을 모두 한 곳의 물리적 환경(서버)에서 제공했다.
이것은 하나의 서버만 열심히 관리하면 되니 관리해야 할게 1개인 장점이 있었다. = 1-tier
하지만 단점이 더 컸었으니...
- 1개의 서버에 문제가 생기면 서비스 장애가 일어나고 어디서 장애가 일어났는지 파악이 쉽지않다.
- 사용자의 요청, 비지니스 로직 처리는 통합서버에서 이루어지기 때문에 서버에 많은 요청이 몰리게되어 부하가 심해진다.
- 비지니스 로직이 바뀌면 매번 클라이언트 프로그램을 재배포 해야한다. (귀찮음 증가, 보안성 취약)
그래서 나오게 된 것이 MiddleWare이다.
그럼 MiddleWare가 뭐야?
범위가 넓긴 하지만 사진 한장을 보면 우리는 이해할 수 있다.
우리는 위 사진과 같은 구조를 3-tier 라고 부른다.
MiddleWare는 WAS를 의미한다고 보면 된다.
Web-Server와 WAS에 대해서는 따로 포스팅을 했으므로 링크를 추가하겠습니다.