NoSql vs Sql

박선우·2023년 1월 18일
0

CS 스터디

목록 보기
23/53
post-thumbnail

🌼 NoSQL vs SQL

1️⃣ SQL (관계형 DB)

  • 테이블 간의 관계를 직관적으로 파악 할 수 있다.
  • SQL 정규화 - DB설계시 중복을 최소화해서 구조화 하는 프로세스
  • 스키마를 준수하지 않으면 테이블에 추가 할 수 없다.
  • 스키마에 따라 정해진 구조에 맞는 것만 테이블에 추가 할 수 있다.
  • 데이터의 성능이 일반적으로 정렬,탐색,분류가 빠르다.
  • 데이터 베이스에서 저장된 값들에 대한 여러가지 제한
  • 데이터의 신뢰를 보장하게 하여 일관성을 유지 시켜준다

1. 영역 무결성 - 한 컬럼에 대해 NULL의 허용 여부
2. 참조 무결성 - 기본 키와 참조 키 간의 관계가 항상 유지
3. 개체 무결성 - 테이블에 있는 모든 행들이 유일한 식별자를 가질것을 요구

  • 테이블 간의 관계를 연결 시켜주는 것이 'ORM'이라 한다.

⛔️ ORM(SQL) / ODM(NoSQL)

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 의미한다.
  • 설정해둔 스카마를 바탕으로 SQL를 직접 작성 할 필요없이 자동으로 SQL을 생성한다.
  • SQL
  • Squlize
  • TypeORM
  • Prisma

  • NoSQL
  • mongoose

2️⃣ NoSQL (비관계형 DB)

  • SQL과는 반대로 스키마,관계도 없다. 비교적 가볍다.
  • 다른 구조의 데이터를 같은 테이블에 추가할 수 있다.
  • 테이블간 조인 기능이 없다
  • 분산형 구조로 특정 서버가 장애가 발생했을 때도 데이터 유실, 서비스 중지가 되지 않는다.
  • 데이터를 저장하는 칼럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용된다.
  • 단점 : 데이터 일관성이 항상 보장되지 않음

3️⃣ NoSQL vs SQL

NoSQLSQL
스키마가 없다. (데이터 무결성을 보장하지 못함)명확하게 정의된 스키마.(데이터 무결성 보장)
데이터 중복을 계속 업데이트 해야 한다.(수정시 모든 컬렉션에서 수행)데이터를 중복없이 한번만 저장(한번만으로 수행가능)
관계설정이 없기 때문에 조인 기능이 없다.조인 문이 많아지면 복잡한 쿼리가 만들어 질 수 있음
수직 및 수평 확장이 가능수직적 확장만 가능함

출처

profile
코린이 열심히 배우자!

0개의 댓글