20.10.21 [DB, SQL, NoSQL]

박종찬·2020년 10월 21일
0

TIL

목록 보기
39/89
post-thumbnail

데이터베이스란?

  • 컴퓨터 안에 데이터들을 한 곳에 저장 및 관리를 하는 집합체를 말한다.
  • 이는 중복성을 제거, 자료를 구조화시켜 처리할 수 있도록 관리된다.

트랜잭션

  • 여러 작업들을 하나로 묶은 단위

트랜잭션이 필요한 이유

  • 믹스커피를 만들 때 설탕, 프림, 인스턴트 커피 3개가 있어야한다. 그런데 인스턴트 커피를 넣는 기계가 고장나서 설탕, 프림만 들어간 믹스커피가 만들어진다면? 난리난다. 이를 방지하기 위해서 트랜젝션이 데이터의 유효성을 보장한다.

ACID

  • 데이터의 유효성을 보장하기 위한 트랜잭션의 특징들의 앞 글자만 따온 것

원자성

  • 모든 작업을 반영(Commit)하거나 모두 롤백(Rollback)

일관성

  • int 컬럼에 varchar가 저장되지 않도록 보장

고립성

  • 트랜잭션 수행 시 다른 트랜잭션의 작업이 간섭할 수 없도록 보장

영구성

  • 한 번 Commit된 트랜잭션의 내용은 영원히 적용

SQL(Structured Query Language)

  • DB에 저장된 데이터와 통신할 수 있도록 만든 쿼리 언어다.
  • 엄격한 데이터 스키마에 따라 테이블에 저장이 된다. 이 말은 원자성과 흡사하다.
  • 관계를 이용해 여러 개의 테이블로 분산 및 연결시킬 수 있다.

  • 데이터 스키마가 사전에 계획되어야 하며 유연하지가 않다.
  • Join으로 인해 복잡한 쿼리가 만들어질 수 있다.

NoSQL(Non-SQL)

  • SQL과 반대로 스키마와 관계가 없다.
  • JSON과 비슷한 형태

  • 데이터 구조가 불확실할 수 있다.
  • 데이터가 여러 컬렉션에 중복되어 있다면 모든 컬렉션에 Update 해야 한다.

SQL vs NoSQL

  • 관계를 맺고 있는 데이터가 자주 변경될 경우 -- SQL
  • Read > Update -- NoSQL
  • 막대한 양의 데이터를 다뤄야할 경우 -- NoSQL
profile
반가워요! 사람을 도우는 웹 개발자로 성장하기! :)

0개의 댓글