RDB

bearMin·2024년 8월 5일

들어가면서

개발을 하게 된다면 RDB는 사실 빼놓고 얘기할 수 없다. 특히 백엔드쪽의 개발을 원한다면 더더욱 그렇다. 개념만 살짝 알고 있는 이 RDB에 대해서 제대로 알아보는 시간을 가져보자!


DataBase란?

Data란?

현실 세계에서 사건이나 사물의 특징을 관찰하거나 측정하여 기술하는 가공되지 않은 사실이나 값

DataBase가 무엇인지 알기 위해선 Data가 무엇인지 먼저 아는 것이 중요하다. Data란 간단히 말해서 실세계의 가공되지 않은 무의미한 자료들을 뜻하는데, 우리는 이 Data를 통해서 유의미한 정보들을 얻어낸다.

💡 정보란?
무의미한 자료들을 의미있고 쓸모있는 내용으로 가공하여 체계적으로 조직한 Data

즉, 우리는 실세계의 무의미한 자료들인 Data를 처리하여 유의미한 정보들을 만들어내는 것이다!


정의는?

그렇다면 우리가 유의미한 정보들을 만들어내기 위해서 이 Data들을 체계적으로 관리를 해야하는데 어떻게 할 수 있을까? 라는 고민에서 만들어지게 된 것이 바로 이 DataBase인 것이다. 쉽게 말해서 Data를 저장하고 관리하는 공간DataBase라고 한다.


여러 사람들이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합

위의 DataBase의 의미를 정리를 해보면 다음과 같다!

  • 공유 데이터(Shared Data)
    : 어느 하나의 프로그램에 종속된 것이 아닌 다수의 사용자나 프로그램이 공동으로 소유하고 유지하는 개념이다.

  • 통합된 데이터(Integrated Data)
    : 분산된 데이터들을 한 곳으로 모아 중복을 최소화하기 위한 개념으로 데이터의 일관성이 유지되고, 관리 비용이 감소한다는 장점이 있다.

  • 저장된 데이터(Stored Data)
    : 컴퓨터가 접근 가능한 매체에 저장된 디지털 데이터이다.

  • 운영 데이터(Operational Data)
    : 조직 고유 업무를 수행하기 위해 지속적으로 유지해야 하는 데이터이다. 즉, 임시적으로 처리하는 데이터들이 아닌 시스템을 운영하기 위해 필요한 데이터들이다.


특징은?

그렇다면 이 DataBase의 특징에는 무엇이 있을까?

  1. 실시간 처리
    : 질의(query)에 대하여 실시간 처리로 응답을 해야한다.

  2. 변화
    : DataBase는 삽입, 삭제, 갱신에 의해 계속적으로 변하고 정확한 Data를 유지할 수 있어야 한다.

  3. 공유성
    : 자신이 원하는 Data를 동시에 공유할 수 있어야 한다.

  4. 내용에 따른 참조
    : Data의 위치나 주소가 아닌 원하는 Data의 내용에 따라 참조가 가능해야한다.


쉽게 말하자면 DataBase는 모두가 공유하는 데이터를 내용에 따라 참조하여 변화시킬 수 있어야 한다는 뜻이다!


RDB란?

자 그렇다면 DB 앞에 R이 붙은 이 친구는 뭐하는 친구이길래 우리가 이렇게 알아보는 시간을 가지는 것일까?


정의는?

키와 값들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 DataBase

Relational DataBase 의 약자로 쉽게 얘기해서 관계형 데이터베이스이다. 이 관계형 데이터베이스는 일반적인 서비스에서 가장 많이 사용되는 DB 타입이다.

이 RDB는 각 데이터를 Table이라는 표 형태의 구조에 저장을 하게 된다. 이 Table은 여러 정보를 저장하며 Table 간에 연관 관계를 설정하여 여러 Table에 분산된 Data를 서로 연결하여 관리할 수 있다.


장점은?

RDB의 장점을 살펴보자!

  • 데이터의 분류, 정렬, 탐색 속도가 빠르다.
  • 스키마가 명확하게 정의되어 있다.
    💡 스키마(Schema)란?
    DataBase의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
    DataBase를 구성하는 개체(Entity), 개체의 특성을 나타내는 속성(Attribute), 개체 사이에 
    존재하는 관계(Relationship) 및 데이터 값들이 갖는 제약 조건 등에 관하여 기술
  • 오래 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장한다.
  • 데이터를 중복 없이 한 번만 저장할 수 있다.
  • 유지보수가 편하다.
  • 정형 정보에 접근하는 가장 효율적이고 유연한 방법이다.

단점은?

그렇다면 단점에는 무엇이 있을까?

  • 이미 작성된 스키마를 수정하기 어렵다.

  • 시스템이 커지면 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있다.

  • 성능 향상을 위해서는 Scale-up만을 지원해 비용이 기하급수적으로 늘어날 수 있다.

    💡 Scale-up?
    기존의 서버를 보다 높은 사양으로 업그레이드 하는 것
  • 다른 DB에 비해 많은 자원이 활용되어 시스템 부하가 높다.


필요한 이유는?

RDB에 대해서 살펴보았는데, 수정이 힘들고 시스템이 커질수록 관리하기 불편하다는 단점들이 있다. 사실 이 단점들을 보완하기 위해서 나온 NoSQL 이라는 비관계형 데이터베이스가 존재한다!


NoSQL이란 관계형 데이터베이스의 한계를 극복하기 위한 새로운 데이터 저장소의 형태이다.

Big Data 처리에 효과적이고 RDB에 비해 저렴한 비용으로 분산처리와 병렬처리가 가능하다.
또한 데이터 모델의 유연한 변화가 가능하며 가변적인 구조로 데이터 저장이 가능해 저장과 읽기 작업이 매우 빠르다.

이렇게 좋은데 왜 복잡하고 어려운 RDB를 사용하는 것일까?


그 이유는 RDB는 안전한 서버 환경을 구성하기 때문이다. NoSQL은 데이터의 일관성이 항상 보장이 되지 않으며 업데이트 중 장애가 발생하면 데이터 손실이 발생한다. 하지만 RDB는 복잡한 비즈니스 로직과 정형화된 데이터를 체계적으로 관리할 수 있다. 때문에 보안과 안전성이 중요하게 생각하는 기관이나 은행들에서는 RDB를 사용하게 되는 것이다!


물론 NoSQL을 사용하는 곳도 분명히 존재한다.

빅데이터 환경이나 페이지뷰가 많은 애플리케이션이 그 예이다. 이처럼 뭐가 좋다! 라는 느낌보다는 프로젝트의 방향성을 보고 어떤 DB를 사용할지 결정하는 것이 좋다!


정리하자면

DataBase는 Data를 체계적으로 저장하는 저장소이다!

RDB는 관계형 데이터베이스로 안전한 서버 환경을 구성하여 보안과 안정성이 필요한 곳에서 사용이 된다!

profile
소소한 공부기록

0개의 댓글