250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

데이터 놀이터

Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 3. SQL 심화 본문

코드스테이츠 AIB 17

Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 3. SQL 심화

jjjk84 2023. 3. 21. 22:53
728x90

오늘의 키워드

  • Transaction
  • ACID
  • SQL 내장함수

1. 개념 정리

 

A. Transaction

 

데이터베이스의 상태를 변화시키는 작업의 모음, 작업들의 모음이기 때문에 하나의 작업이라도 실패하게 된다면 전부 실패함

 

INSERT, DELETE, UPDATE 등 DML(Data Manipulation Language)을 통해 데이터베이스의 상태를 변화시키고

COMMIT, ROLLBACK 등 TCL(Transaction Control Langauge)를 통해 확정 또는 되돌린다.

 

B. ACID

 

Atonomy, Consistency, Isolation, Durability 등 데이터베이스 내에서 일어나는 하나의 Transaction이 보장하는 성질

 

  • Atonomy(원자성) : Transaction이 성공하기 위해서는 모든 작업들이 성공해야한다는 성질, 하나의 작업이라도 실패한다면 전체가 실패한 것으로 간주.

 

  • Consistency(일관성) : Transaction 이후에도 데이터베이스의 고유한 제약, 규칙 등의 상태는 이전과 같이 유효하여야 한다.

 

  • Isolation(고립성) : 하나의 Transaction은 다른 Transaction과 독립적으로 수행되며 서로 영향을 주고 받지 않는다. 따라서 동시에 여러개의 Transaction이 실행되더라도 순차적으로 수행한 것과 같은 결과가 나와야한다. 예를 들어, A 계좌에 만원이 있다고 가정할 때, T1, T2 모두 계좌에서 6천원씩 뽑는다고 하자. T1, T2가 동시에 실행되더라도 T1 -> T2로 실행되어야 은행계좌에 아무 문제가 없을 것이다.

 

  • Durability(지속성) : Transaction을 commit한 후에는 어떠한 경우라도 저장된 데이터베이스의 상태가 유지되어야 한다는 뜻이다.

 

2. 코드 정리

## SQL에서의 조건문 (Python if문과 유사)
CASE WHEN 조건문 THEN 출력
	WHEN 조건문 THEN 출력
    ELSE 출력
END

## SQLite 문자열 합치기 (A,B -> AB)
A || B

## Uunique한 값 개수 구하기(Python의 nuique)
COUNT(DISTINCT ~)

## b번째 행부터 a개 행 추출(Python과 마찬가지로 b는 0부터 시작)
LIMIT a OFFSET b

## Primary 값을 제외하고 입력하는 경우(Primary 값은 자동으로 1부터 올라감)
INSERT INTO table명 (입력하고자 하는 열 이름들...) VALUES 값

 

3. 더 알아봐야할 것

728x90