[Database] RDB와 RDBMS와 NoSQL

Jiisuniui·2024년 1월 5일

CS의 모든 것

목록 보기
1/3

RDB (Relation Database)

  • 관계형 데이터베이스
  • 데이터 모델마다 관계로 연결되어 있는 데이터베이스

RDB 용어

  • 로우(row) : 하나의 항목을 대표하는 데이터
  • 컬럼(column) : 각 항목의 속성
  • 테이블(table) : 로우와 컬럼으로 구조화 된 데이터 목록

RDBMS (Relation Database Management System)

  • RDB를 관리하는 소프트웨어
    - 삽입(insert), 탐색(select), 수정(update), 삭제(delete)
  • 모든 데이터를 2차원 테이블 형식으로 데이터를 관리
  • ERD(Entity Relationship Diagram)를 통해 설계
  • RDBMS의 종류
    - ORACLE, MySQL, SQL Server, Maria DB 등

SQL 장점

  • 명확하게 정의된 스키마, 데이터 무결성 보장
  • 관계는 각 데이터를 중복없이 한번만 저장 (공간적으로 이득)

SQL 단점

  • 덜 유연함
  • 데이터 스키마를 사전에 계획하고 알려야 함. (나중에 수정하기 힘듬)
  • 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
  • 대체로 수직적 확장만 가능함 (큰 비용)

No SQL (Not Only SQL)

  • 비관계형 DB
  • 대용량 데이터 저장에 많이 사용됨

대표적인 데이터베이스

Redis

  • Key-Value Database
  • value는 어떤 값이든 저장 가능하며, 이미지나 비디오도 가능
  • 조회의 속도가 굉장히 빠른 편
  • ttl(time to live): 시간 만료를 설정할 수 있음

MongoDB

  • Key-Document
  • Document는 객체지향에서의 객체와 유사하며, 이들은 하나의 단위로 취급되어 저장
  • 조회의 결과가 JSON이나 xml 형태로 출력

NoSQL 장점

스키마가 없어서 유연함. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
데이터는 애플리케이션이 필요로 하는 형식으로 저장됨. 데이터 읽어오는 속도 빨라짐
수직 및 수평 확장이 가능해서 애플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리 가능

NoSQL 단점

  • 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음
  • 데이터 중복을 계속 업데이트 해야 함
  • 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 함 (SQL에서는 중복 데이터가 없으므로 한번만 수행이 가능)
profile
why error?

0개의 댓글