관계형 데이터와 NoSQL

Seung min, Yoo·2021년 8월 12일
0

Database, DBMS, SQL, NoSQL

  • Database(데이터베이스 및 DB): 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합. 작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다.
    Database

  • DBMS(데이터베이스 관리 시스템 및 Database Management System): 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS는 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.
    DBMS

  • SQL(구조화 질의어 및 Structured Query Language): 관계형 데이터베이스 관리시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
    관계형 데이터 베이스 관리 시스템에서 1. 자료의 검색과 관리, 2. 데이터베이스 스키마 생성과 수정, 3.데이터베이스 객체 접근 조정 관리를 위해 고안되었다.
    SQL

  • RDBMS(관계형 데이터베이스)
    관계형 데이터베이스에 대해서는 아래의 글을 통해서 볼 수 있다.
    ORM

  • NoSQL(Not Only SQL)
    NoSQL는 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미한다.
    NoSQL의 특성

  • RDBMS와 달리 테이블 간 관계를 정의하지 않는다.

  • 테이블 간의 관계를 정의하지 않기 때문에 일반적으로 테이블 간 Join도 불가능하다.

  • 빅데이터의 등장으로 인한 데이터와 트래픽의 기하급수적인 증가에 따라서 RDBMS의 단점인 성능향상을 위해 장비가 좋아야 하는 Scale-Up의 특징이 비용을 기하급수적으로 증가시키기 때문에 데이터 일관성을 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장

  • 다양한 형태의 저장기술로 RDBMS 스키마에 맞추어 데이터를 관리해야 된다는 한계를 극복하고 수평적 확장성(Scale-Out)을 쉽게 할 수 있다는 장점을 가지고 있다.


RDBMS와 NoSQL의 장단점

RDBMS
장점

  • RDBMS는 정해진 스키마에 따라 데이터를 저장해야 하기 때문에 명확한 데이터 구조를 보장한다.
  • 관계는 각 데이터를 중복없이 한 번만 저장할 수 있다.

단점

  • 테이블과 테이블 간 관계를 맺고 있어 시스템이 커질 경우 Join문이 많은 복잡한 쿼리가 만들어질 수 있다.
  • 성능 향상을 위해서는 서버의 성능 향상을 시켜줘야하는 Scale-Up만을 지원하고, 이에 따른 비용이 기하급수적으로 늘어날 수 있다.
  • 스키마로 인해 데이터가 유연하지 못하기에 후에 스키마가 변경될 경우 복잡해질 수 있다.

NoSQL
장점

  • NoSQL에서는 스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있다. 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있다.
  • 데이터 분산이 용이하며 성능 향상을 위한 Scale-Up뿐만 아니라 Scale-Out도 가능하다.

단점

  • 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 경우 모든 컬렉션에서 수정해야 한다.
  • 스키마가 존재하지 않기 때문에 명확한 데이터 구조를 보장하지 않으며 데이터 구조 결정이 어려울 수 있다.
    허진쓰의 서버사이드 기술 블로그

스키마

데이터베이스 스키마
컴퓨터 과학에서 데이터베이스 스키마(database schema)는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다.

스키마는 3층 구조로 되어있다.

  • 외부 스키마(External Schema): 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것
  • 개념 스키마(Conceptual Schema): 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것
  • 내부 스키마(Internal Schema): 전체 데이터베이스의 물리적 저장 형태를 기술한 것
    스키마

출처

1.Database
2.DBMS
3.SQL
4.허진쓰의 서버사이드 기술 블로그
5.스키마

profile
이제 막 개발을 시작한 프로그래밍 입문자

0개의 댓글