TIL_ SQL & NoSQL(1)

해달·2021년 8월 26일
0

TIL

목록 보기
35/80
post-thumbnail

Today 공부

  • SQL
  • NoSQL
  • SQL 기반의 데이터베이스와 NoSQL 데이터베이스의 차이점
  • ACID
  • DROP 과 TRUNCATE 차이점


SQL (Structured Query Language)

  • 구조화된 쿼리언어 ----> DB용 프로그래밍 언어
  • 관계형 데이터베이스에서 사용된다
  • SQL을 사용하기 위해서는 데이터가 구조가 고정되어 있어야 한다

NoSQL

  • 데이터의 구조가 고정되어 있지 않은 데이터베이스
  • 구성
    • Key-Value 타입
    • 문서형(Document) 데이터베이스
    • Wide-Column 데이터베이스
    • 그래프(Graph) 데이터베이스

SQL 기반의 데이터베이스와 NoSQL 데이터베이스의 차이점

  • 데이터 저장(Storage)
  • 스키마(Schema)
  • 쿼리(Querying)
  • 확장성(Scalability)

데이터베이스를 사용하는 케이스

SQL기반 관계형NoSQL 기반의 비관계형
1. 데이터베이스의 ACID 성질을 준수해야 하는 경우1. 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
2. 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
3. 빠르게 서비스를 구축하는 과정에서 데이터 구조를 자주 업데이트 하는 경우

SQL(구조화 쿼리 언어) vs. NoSQL(비구조화 쿼리 언어)

관계형 DB비관계형 DB
SQL기반NoSQL로 데이터 다룸
특징스미카가 뚜렷하게 보인다데이터고정X, 스키마에따라 데이터를 읽어옴( 'schema on read')
대표적MySQL, OracleMongDB

ACID

ACID
ACID는 데이터베이스 내에서 일어나는 하나의 트랜잭션(transaction)의 안전성을 보장하기 위해 필요한 성질입니다.


  • Atomicity(원자성)
    하나의 트랙잭션 내에서는 모든 연산이 성공하거나 모두 실패해야 한다
  • Consistency(일관성)
    하나의 트랜잭션 전후에 DB의 일관 된 상태가 유지되야한다
  • Isolation(격리성,고립성)
    모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다
  • Durability(지속성)
    성공된 트랜잭션은 해당 로그가 기록되고 영구적이어야 한다

트랜잭션

  • 여러 개의 작업을 하나로 묶은 실행 유닛
  • 모든 작업들을 다 완료해야 정상적으로 종료
  • 하나의 작업이라도 실패하면 모든 작업 실패

DROP 과 TRUNCATE 차이점

예시

  • 이름번호
    김코딩1
  • Delete
    • 데이터 지워짐, 테이블 용량 그대로 (삭제 후 되돌리기 가능)
  • 이름번호
     

  • TRUNCATE Table
    • 테이블삭제 X 인덱스,데이터 삭제, 공간반납 (삭제 후 되돌릴 수 없음)
  • 이름번호

  • DROP Table
    • 테이블 자체 삭제, 인덱스도 삭제 (삭제 후 되돌릴 수 없음)
  • [ 삭제 됨 ]

마치며,

과제로 w3schools에서 SQL에 관한 퀴즈를 풀면서, 같은 일을 하는 명령어들도
제각기 다른일을 한다는걸 알 수 있었다.
단어가 친숙하여 얼핏보면 쉬워보이지만,
세트로 이루어진 형식에 (ex: UPDATE ___ SET) 조건같은걸 추가 할수도 있어서
헷갈리지 않게 공부해야겠다.

0개의 댓글