Computer Science/Database

데이터베이스

gozer0 2024. 7. 15. 15:49

서버와 클라이언트

인터넷 서비스는 보통 서버와 클라이언트가 관계를 맺는다.

 

 

 

 

클라이언트는 서버로 요청하는 프로그램 모두를 말한다.

예를 들면 우리가 많이 사용하는 웹 브라우저가 있다.

웹 브라우저로 우리는 검색을 한다.

이 행위를 '서버에 요청한다' 고 표현한다.

 

이제 서버는 클라이언트의 요청을 받았고, 이 요청을 처리해야한다.

클라이언트가 데이터를 요청했을 수도 있고, 단순히 서버 내에서 처리를 해달라는 것일 수도 있다.

 

위에서 예시를 든 웹 브라우저로 우리는 검색을 했다면

서버는 이 요청을 새로운 화면으로 가기 위한 데이터를 달라는 요청이다.

 

그렇다면 이 데이터들은 가져오는 역할을 서버가 한다면,

이 데이터들은 어디서 가져올까?

 

 

데이터베이스

데이터베이스는 데이터를 한 군데에 모아놓고

여러 사람이 사용할 목적으로 관리하는 데이터들의 저장소이다.

 

흔히 MySQL, Oracle, postgreSQL 등이 있는데,

이들은 데이터들을 관리하기 위한 시스템들의 이름이다.

 

데이터베이스와 데이터베이스 관리 시스템은 하나로 움직인다.

 

 

전체를 요약하자면,

 

클라이언트에서 SQL 쿼리를 데이터베이스 관리 시스템에

데이터를 요청하여 요청에 맞는 데이터로 응답한다.

 

 

데이터베이스는 여러가지 종류가 있는데 

RDB, NoSQL, NewSQL이 있다.

 

가장 많이 사용하는 거는 RDB인데

관계형 데이터 베이스로 데이터를 행과 열로 이루어진 테이블로 관리한다.

 

사람이 가장 이해하기 쉬운 문서 표기 방식이 표의 형태라는데

그래서 RDB를 가장 많이 쓰이는 것이 아닐까?

 

그래서 RDB는 데이터 저장, 질의, 수정, 삭제가 용이하지만 

반면에 성능을 올리는 것이 쉽지 않다.

 

데이터베이스의 성능을 높이려면 머신의 성능을 좋게하는

스케일 업, 또는 머신을 여러개로 늘리는 스케일 아웃

이라는 것이 필요하다.

스케일 업은 장비를 업그레이드하면 되자만, 스케일 아웃은 데이터베이스를 분산하고

이때 트랜잭션을 사용하면 성능이 떨어지게 된다.

 

그래서 RDB의 이런 문제를 해결하기 위한 NoSQL이 등장했다.

 

NoSQL은 'No'가 아닌 'Not Only SQL'이라고

비관계형 데이터베이스이며 구조화되어 있지 않은 데이터를 위한 동적 스키마가 있다.

 

그래서 

 

SQL 데이터베이스는 수직적 확장이 가능한 반면, NoSQL 데이터베이스는 수평적 확장이 가능

SQL 데이터베이스는 테이블 기반인 반면, NoSQL 데이터베이스는 문서, 키-값, 그래프 또는 와이드 컬럼 스토어

SQL 데이터베이스는 다중 행 트랜잭션에 더 적합한 반면, NoSQL은 문서나 JSON과 같은 비정형 데이터에 더 적합

 

라는 특징이 있다.

 

 

NewSQL는 사실 처음 봤다.

간단하게 NewSQL은 RDB와 NoSQL의 특징이 둘다 있다.

 

RDB처럼 ANSI SQL문법과 ACID(트랜잭션)을 지원하고,

NOSql처럼 Scale-out을 지원한다.

 

최근 용량이 크고 다양한 속성의 데이터가 늘어나면서

기존의 RDB와 NoSQL가 처리하는 한계가 나타나고 있는데,

 

대용량 데이터 처리와 높은 수준의 데이터 정합성이 필요로하는 분야에서는 NewSQL이 해결해준다.

 

 

SQL(Structured Query Language)

그대로 데이터 검색을 하는 언어이다. 

SQL도 여러가지 언어가 있는데 

우리가 흔히 아는 것은  ANSI  표준 SQL이다.

 

 

'Computer Science > Database' 카테고리의 다른 글

Entity Factory  (0) 2024.07.17
ORM, JPA, Hibernate, MyBatis  (0) 2024.07.16