RDBMS, NoSQL

mmmhmm·2024년 3월 17일
1

스터디

목록 보기
6/6

☝️RDB와 RDBMS의 차이점

RDB

  • 관계형 데이터베이스의 약자 (*Relational Database)
  • 데이터를 테이블 형태로 저장하고 테이블들 간의 관계를 사용하여 데이터를 관리하는 것을 의미
  • 데이터를 열과 행으로 구성된 테이블에 저장하며, 테이블은 각각 고유한 열(속성)행(레코드 또는 튜플)을 가지고 있음. 테이블 간의 관계는 공통된 속성을 통해 설정

RDBMS

  • RDBMS(Relational Database Management System)
  • 관계형 데이터베이스 관리 시스템의 약자
  • 데이터를 저장, 관리, 조작하는 소프트웨어 시스템을 의미
  • RDBMS는 RDB의 원칙을 구현,
  • 사용자와 데이터베이스 사이의 인터페이스 역할을 하며, 데이터의 보안, 무결성, 백업, 복원 등의 기능을 제공합니다.

✏️RDB,RDBMS 요약

  • RDB는 데이터 구조를 나타내는 모델
  • RDBMS는 데이터베이스를 관리하는 소프트웨어 시스템.
    Oracle, MySQL, PostgreSQL, Microsoft SQL Server 등

☝️RDBMS

✌️RDBMS란?

  • 관계형 데이터베이스 관리 시스템의 약자
  • 데이터는 관계형 테이터 모델에 기반하여 표 형태로 구성
  • 표 형식의 데이터를 효율적으로 저장, 관리, 검색 및 수정하도록 지원
  • sql문을 사용하여 데이터를 쿼리하고 조작
  • sql은 데이터베이스에서 데이터를 검색, 추가, 삭제, 수정하는 데 사용되는 표준화된 언어

✌️RDBMS의 특징

  • 데이터 구조화
    - 데이터는 행과 열로 구성된 테이블 형식으로 구조화 이런 테이블은 관련된 데이터를 그룹화하는 데 사용
  • 고수준의 테이터 조작언어를 사용하여 결합, 제약, 투영 등의 관계 조작에 의해 비약적으로 표현능력을 높일 수 있음
  • 관계 조작에 의해 자유롭게 구조를 변경할 수 있음

✌️RDBMS의 장점

  1. 명확하게 정의된 스키마, 데이터 무결성 보장
  2. 관계는 각 데이터를 중복 없이 한 번만 저장
  3. 데이터의 일관성을 보증
  4. 복잡한 형태의 쿼리도 가능(Join 등)
  5. 데이터의 분류, 정렬, 탐색 속도가 빠르다.
  6. 유지보수 편함
  7. 정형 정보에 접근하는 가장 효율적이고 유연한 방법

스키마(Schema)란? : 데이터의 구조, 제약 조건, 관계 등을 정의한 것. 즉 테이블, 열, 데이터 형식 등의 구조를 정의하는 청사진


데이터 무결성이란? : DB - Key

데이터무결성이란?

  • 데이터의 정확성, 일관성을 나타탬
  • 데이터에 결함이 없는 상태, 데이터를 정확하고 일관되게 유지하는 것

✌️RDBMS의 단점

  1. 스키마에 준수하지 않는 레코드는 추가할 수 없다.

  2. 관계를 맺고 있어 조인문이 많은 복잡한 쿼리가 만들어질 수 있다.

  3. 대체로 수직적 확장만 가능

  4. 기작성된 스키마를 수정하기 어려움

  5. 시스템이 커지면 JOIN문이 많은 복잡한 쿼리가 만들어짐

  6. 성능 향상을 위해서는 Scale-up만을 지원해 비용 증가

  7. 많은 자원이 활용되어 시스템 부하가 높음


☝️NoSQL

✌️NoSQL이란?

  • Not Only SQL의 약자
  • 비관계형 데이터베이스
  • 대량의 분산된 데이터를 저장하고 조회하는데 특화, 스키마 없이 사용가능하거나 느슨한 스키마를 제공

✌️NoSQL의 특징

  • 데이터 간의 관계를 정의하지 않음
  • RDBMS와 달리 데이터 간 관계를 정의하지 않는다. JOIN연산 지원하지 않음
  • RDBMS에 비해 대용량 데이터 저장 가능
  • 분산형 구조 : 여러 곳 서버에 데이터를 분산 저장해 특정 서버에 장애가 발생했을 때에도 데이터 유실 혹은 서비스 중지가 발생하지 않도록 함
  • 고정되지 않은 테이블 스키마를 갖고있다. 스키마가 유동적이라, 데이터를 저장하는 칼럼이 각기 다른 이름과 데이터 타입을 갖는것이 허용
  • MongoDB, Cassandra, Redis, Apache HBase, Neo4j등이 있다.

✌️NoSQL의 장점

  1. 유연성 : 스키마 선언 없이 필드의 추가 및 삭제가 자유로운 Schema-less 구조
  2. 확장성 : 스케일 아웃에 의한 서버 확장 용이
  3. 고성능 : 대용량 데이터를 처리하는 성능 뛰어남
  4. 가용성 : 여러 대의 백업 서버 구성이 가능. 장애 발생해도 무중단 서비스 가능

Schema-less란? : 고정된 스키마를 사전에 정의하지 않아도 되는 것을 의미. 데이터베이스에 저장되는 각각의 데이터가 동일한 구조를 갖지 않아도 된다는 것
스케일 아웃? : 시스템이나 서비스의 처리 능력을 향상시키기 위해 여러대의 서버나 노드를 추가하여 분산 처리를 수행 하는 것
무중단 서비스? : 시스템이 사용 가능한 상태를 유지하면서 시스템의 유지 및 보수 작업을 수행할 수있는 것

✌️NoSQL의 단점

  1. 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
  2. 많은 인덱스를 사용하려면 충분한 메모리가 필요. 인덱스 구조가 메모리에 저장
  3. 데이터 일관성이 항상 보장되지 않음
  4. key값에 대한 입출력만 지원
  5. 스키마가 정해져 있지 않아, 데이터에 대한 규격화가 되어 있지 않음
profile
어라? 금지

1개의 댓글

comment-user-thumbnail
2024년 3월 24일

항상 열심히 하시는 모습 너무 멋있으십니다^^

답글 달기

관련 채용 정보