ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL과 NOSQL 특징 및 장단점
    데이터베이스 2022. 3. 25. 16:07

    1. 스키마

    데이터베이스에 저장되는 자료 구조와 제약 조건을 정의한 것

     

     

    2. DB

    Database

    데이터 저장소

     

    1. DB 존재 의의

    데이터들의 중복을 없애고 자료를 구조화하여 효율적으로 데이터를 관리하기 위해서이다.

     

     

    3. DBMS

    Database Management System

    DB를 관리하고 운영하기 위한 소프트웨어(시스템)

     

    기능

    데이터 정의, 조작, 제어 기능

     

     

    4. Query

    DBMS에 요청하는 것을 Query(쿼리)라고 한다.

    그래서 보통 "쿼리를 날린다"라고 표현하기도 한다.

     

     

    5. RDB

    Relational Database

    관계형 데이터베이스

     

     

    6. RDBMS

    Relational Database Management System

    관계형 데이터베이스 관리 시스템

     

    ex) MySQL, MariaDB, Oracle, SQL Server 등

     

     

    7. SQL

    Structured Query Language

    RDBMS를 다루기 위한 언어

     

    특징

    여러 테이블에 각각의 목적에 맞게 분산 저장 (이때 중복을 줄이는 것이 포인트)

    스키마를 준수해야 하기에 데이터 중복을 없애고 이를 통해 데이터 무결성* 보장

     

    *데이터 무결성

    데이터의 정확성, 일관성, 유효성 유지되는 것

     

    장점

    1. 데이터 중복 없이 저장하기에 수정이 필요할 경우 한번에 수정이 가능하다.
    2. 외래 키를 사용하여 테이블 간 Join이 가능하다.
    3. 데이터 처리 완결성 보장

     

    단점

    1. 스케일업 (수직적 확장)만 가능
    2. 스키마로 인해 정해진 구조나 규칙에 맞지 않으면 데이터를 저장할 수 없다.
    3. 스키마를 수정하는 작업이 복잡하고 어려울 수 있다. (스키마로 인해 덜 유연하다)
    4. 관계가 복잡할 경우 join 문도 복잡해져서 사용하기 어려울 수 있다.

     

    어떤 서비스에 적합한가

    • 관계를 맺고 있는 데이터가 자주 변경되는 경우
    • 스키마의 변경이 적거나 확고한 경우

     

     

    8. NOSQL이 등장한 이유

    2000년 후반쯤부터 소셜네트워크 서비스 등이 등장하면서 데이터를 보다 쉽게 담아서 저장하고 처리할 수 있는 비정형 데이터에 관심이 쏟아졌습니다.

     

     

    9. NOSQL

    Not Only SQL

    ex) mongoDB, redis 등

     

    RDB가 아닌 DB에서 사용하는 언어

     

    특징

    여러 대의 데이터베이스 서버를 묶어서(클러스터링) 하나의 데이터베이스를 구성

     

    장점

    1. 확장성, 가용성, 높은 성능
    2. 스키마가 없기에 데이터를 원하는 방식으로 수정할 수 있고 새로운 필드를 추가할 수도 있다.
    3. Json 형태로만 저장하기에 처리 속도가 빨라서 초고용량 데이터 처리에 최적화
    4. 스케일업과 스케일아웃 모두 가능

     

    단점

    1. 관계형이 아니기에 Join 불가능
    2. 중복이 많은 데이터를 수정해야 할 경우 수정 작업을 여러번 수행해야 한다.
    3. 데이터 처리 완결성 미보장

     

    어떤 서비스에 적합한가

    • 데이터 구조나 타입이 확고하지 않거나 자주 변경될 수 있는 경우
    • 데이터베이스의 수평적 확장을 기획하는 경우
    • 데이터 변경은 자주 없으나 읽기 작업이 많은 경우 

     

     

     

    <참고 자료>

    https://jwprogramming.tistory.com/47

     

    https://im-designloper.tistory.com/67

     

    https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html

     

    '데이터베이스' 카테고리의 다른 글

    데이터베이스 정규화 (database normalization)  (0) 2022.03.29
    트랜잭션  (0) 2022.03.14

    댓글

Designed by Tistory.