솜이의 데브로그

35-36강 ) 정규화, 트랜잭션 본문

CS/Database

35-36강 ) 정규화, 트랜잭션

somsoming 2021. 12. 21. 16:23

Reference : SQL 첫걸음

 

35강 ) 정규화

 

1. 정규화

정규화란 데이터베이스의 테이블을 규정된 올바른 형태로 개선해나가는 것이다.

정규화는 단계적으로 실시한다.

 

 

2. 제1 정규형

  • 관계형 데이터베이스의 테이블에는 하나의 셀에 하나의 값만 저장할 수 있다는 제약이 있다.
  • 반복되는 데이터를 가로(열 방향)가 아닌 세로(행 방향)로 늘리는 것이 1정규화의 제 1단계이다.
  • 중복을 제거하는 테이블의 분할도 이루어진다.
  • 제1 정규화에서는 테이블 분할과 기본키 지정이 이루어진다.

 

3. 제2 정규형

  • 데이터가 중복하는 부분을 찾아내어 테이블로 분할해나간다.
  • 기본키에 의해 특정되는 열과 그렇지 않은 열로 나누는 것으로 정규화가 이루어진다.
  • 부분 함수 종속성을 찾아내서 테이블을 분할한다.
    • 함수
    • 종속성이란 키 값을 이용해 데이터를 특정지을 수 있는 것을 말한다.

 

4. 제3 정규형

  • 기본키 이외의 부분에서 중복이 없는지를 조사한다.

 

 

5. 정규화의 목적

  • 정규화에서는 중복하거나 반복되는 부분을 찾아내서 테이블을 분할하고 기본키를 작성해 사용하는 것을 기본 개념으로 삼는다.
  • 정규화로 데이터 구조를 개선하는 것은 하나의 데이터가 한 곳에 저장되도록 하기 위함이다.

 

 

 

36강 ) 트랜잭션

 

1. 트랜잭션

발주처리

  • 주문을 받으면 주문번호를 지정한다.
  • 이 때 기존 주문과 구분되는 주문번호를 발행하는 처리가 필요하다.
  • 번호를 발행받은 후에는 해당 번호를 키로 삼아 INSERT가 이루어진다.

 

 

2. 롤백과 커밋

트랜잭션을 롤백하면 변경한 내용이 적용되지 않는다.

아무 에러가 발생하지 않으면 변경사항을 적용하고 트랜잭션을 종료하는데, 이를 커밋이라 한다.

 

자동 커밋

  • 트랜잭션을 사용해서 데이터를 추가할 때는 자동커밋을 꺼야 한다.
  • 트랜잭션을 시작할 때는 START TRNASACTION명령을 사용한다.
  • 트랜잭션 내에서 실행된 SQL 명령은 임시 데이터 영역에서 수행되다가, COMMIT 명령을 내리면 임시 데이터 영역에서 정식 데이터 영역으로 변경이 적용된다.
  • 트랜잭션을 사용해서 처리하는 것으로 간단히 데이터를 관리할 수 있다.

 

 

3. 트랜잭션 사용법

  • 세트로 실행하고 싶은 SQL 명령은 트랜잭션 내에서 실행한다.
  • 트랜잭션을 시작할 때 사용하는 명령은 SQL Server나 PostgreSQL인 경우 'BEGIN TRANSACTION' 명령을 사용한다.
  • 자동 커밋은 클라이언트 툴의 기능이다.
  • DELETE 명령은 삭제 여부에 관해 사용자에게 확인하지 않는다.

'CS > Database' 카테고리의 다른 글

10장 ) 성능 향상(2)  (0) 2021.12.21
33-34강 ) 관계형 모델, DB 설계  (0) 2021.12.21
10장 ) 성능 향상(1)  (0) 2021.12.21
31-32 강 ) 집합, 테이블 결합  (0) 2021.12.21
9장 ) 백업과 복구  (0) 2021.12.21