모의 면접(SQL과 NOSQL의 차이)

개발 공부 중·2022년 10월 12일
0

모의 면접

목록 보기
5/6
  1. 스키마란?

SQL과 NOSQL을 알기 위해선 "스키마"라는 단어를 알아야 이해하기 편할 것 같다.

DB의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합입니다.

메타데이터(meta data) : 데이터에 대한 데이터로, 어떤 목적을 가지고 만들어진 데이터로 정의됨.

개체의 특성을 나타내는 속성(Attribute)과, 속성들의 집합으로 이루어진 개체(Entity), 개체 사이에 존재하는 관계(Relation)에 대한 정의와 이들이 유지해야 할 제약 조건을 기술한 것입니다.

개체(Entity) : 데이터로 표현하려고 하는 객체(여러 속성들로 구성) / ER 다이어그램에서 네모로 표현
속성(Attribute) : 개체가 갖는 속성 / ER 다이어그램에서 원으로 표현
관계(Relation): 개체와 개체 사이의 연관성 / ER 다이어그램에서 마름모로 표현

쉽게 말해 DB 내에 데이터가 어떤 구조로 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.

  1. SQL (관계형 DB)

SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있음

  • 관계형 DB의 특징
    • 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
    • 데이터는 관계를 통해 여러 테이블에 분산된다.
    • 데이터의 중복을 피하기 위해 '관계'를 이용한다.

  • SQL 장점
    명확하게 정의된 스키마, 데이터 무결성 보장
    관계는 각 데이터를 중복없이 한번만 저장

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

  1. NOSQL (비관계형 DB)

스키마도 없고, 관계도 없다.
여러 테이블에 조인할 필요없이 이미 필요한 모든 것을 갖춘 문서를 작성하는 것이 NoSQL이다.

하지만 이러면 데이터가 중복되어 서로 영향을 줄 위험이 있다. 따라서 조인을 잘 사용하지 않고 자주 변경되지 않는 데이터일 때 NoSQL을 쓰면 상당히 효율적이다.

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

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

참고 자료 :
https://code-lab1.tistory.com/114
https://iingang.github.io/posts/DB-schema/
https://coding-factory.tistory.com/216
https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html

profile
개발 공부 중

0개의 댓글