[CS] RDBMS / DBMS 차이

Onam Kwon·2022년 9월 6일
0

CS

목록 보기
10/22

RDBMS / DBMS(NoSQL) 차이

RDBMS

  • Relational Database Management System의 약자, 관계형 데이터 모델
  • 모든 데이터를 2차원 테이블 형태로 표현.
    • 각 테이블은 여러개의 행과 열로 구성되며 상호 연결될 수 있다.
  • 기본키(primary key)가 존재하므로 데이터 중복성이 방지된다. 따라서 정규화 프로세스를 제공함.
    • 한 테이블의 행은 특정 열을 고유 키로 사용하여 다른 테이블의 행에 연결할 수 있다. 이 열은 테이블 간의 링크를 나타내며 테이블의 기본 키로 알려질 수 있다.
      • 게시글에 관한 정보를 저장한 board테이블과 댓글을 저장하는comments테이블이 존재한다면, board테이블의 column중 하나인 article_num기본키(primary key)로 지정가능. 추가로 comments테이블의 article_num외래키(foreign key)로 지정한다.
  • 정규화를 통해 테이블끼리 중복되는 데이터는 최소화 해야함.
    • 동일한 데이터가 중복 존재하면 데이터 수정시 문재 발생 확률이 높아지기 때문.
    • 정규화: DB설계시 중복을 최소화하면서 데이터 구조를 짜는 프로세스.
  • 대량의 데이터 사용에 유리.
  • ACID 보장, 모든 트랜잭션이 완전하고 정의된 모든 규칙에 따라 일관성을 가지게 함으로써 오류, 시스템 충돌과 같은 문제가 없는지 확인할 수 있도록 함.
    • 트랜잭션: 특정 데이터를 삭제후 연이어 새로운 데이터를 입력 한다고 가정할 때, 삭제는 성공하고 입력은 실패 했을경우, 제대로 처리된게 아니니 오류가 발생전 상태로 되돌리는작업. 작업이 정상적으로 끝난후에 모든변경을 최종 적용함.
    • Atomicity(원자성): 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중지되는 것이 아니라 하나의 원자 단위로 수행되는 것을 보장하는 특징. 즉, 중간 단계까지 실행되는 것이 아니라 처음부터 끝까지 완전하게 실행되며 중간에서 실패하는 일이 없도록 함.
    • Consistency(일관성): 트랜잭션이 완료되면 언제나 일관된 DB 상태를 유지하는 것을 의미.
    • Isolation(독립성): 트랜잭션을 수행 할 시, 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미, 다른 트랜잭션의 연산이 중간 단계의 데이터를 볼 수 없다.
    • Durability(지속성): 성공적인 트랜잭션은 영원히 반영되어야 함을 의미. 시스템 에러, DB 일관성 체크 등을 하더라도 유지되어야함을 의미.
  • 다수의 사용자 지원.

DBMS (NoSQL, 비관계형)

  • Database Management System의 약자
  • 테이블이 서로 관련되지 않을 수 있다.
  • 정규화를 수행하는 키가 없으므로 정규화가 수행되지 않음.
    • 따라서 데이터의 중복이 있을 수 있음.
  • 데이터를 파일로 저장, 탐색 모델 형식.
  • 단일 사용자 지원.
  • 소량의 데이터 사용에 유리.
  • 정해진 스키마가 없다 (schemaless).
    • Schema(스키마): 데이터베이스의 구조(개체, 속성, 관계)와 제약 조건에 대한 정의로 메타 데이터 라고도 불린다.
  • RDBMS는 스키마가 있고, NoSQL은 스키마가 없는게 가장 큰 차이이며, 정해진 스키마가 없을때 데이터 구조 변화가 자유롭고 데이터의 분산이 용이하지만 데이터 중복 및 누락이 발생하거나 데이터 변경시에 연산이 오래걸린다는 단점이 있다.
profile
권오남 / Onam Kwon

0개의 댓글