티스토리 뷰

728x90
반응형
SMALL

스프링에서의 트랜잭션 관리

트랜잭션은 한번에 이루어지는 작업의 단위

트랜잭션의 성격을 ACID원칙으로 설명한다.(Atomicity, Consistency, Isolation, Durability)

1.원자성(Atomicity)

  • 하나의 트랜잭션은 하나의 단위로 처리되어야 한다.

    어떤 트랜잭션이 A, B로 구성된다면, A, B의 처리결과는 항상 동일한 결과여야 한다.
    A 는 성공했지만, B는 실패했을 경우 A, B는 원래 상태로 되돌려져야만 함.

2.일관성(Consistency)

  • 트랜잭션이 성공했다면, 데이터베이스의 모든 데이터는 일관성을 유지해야만 한다.
  • 트랜잭션으로 처리된 데이터와 , 일반 데이터 사이에는 전혀 차이가 없어야한다.

3.격리(Isolation)

  • 트랜잭션으로 처리되는 중간에, 외부에서의 간섭은 없어야 한다.

4.영속성(Durability)

  • 트랜잭션이 성공적으로 처리되면, 그 결과는 영속적으로 보관되어야 한다.

데이터베이스 설계와 트랜잭션

이상현상(Anomaly)

1.갱신이상(Modification Anomaly)

  • 반복된 데이터중에 일부를 갱신할 때 데이터의 불일치가 발생

2.삽입 이상(Insertion Anomaly)

  • 불필요한 정보를 함께 저장하지않고서는, 어떤 정보를 저장하는 것이 불가능

3.삭제 이상(Deletion Anomaly)

  • 필요한정보를 함께 삭제하지 않고서는, 어떤정보를 삭제하는 것이 불가능.

정규화를 하는 이유

1.테이블을 쉽게 유지보수하고, 데이터를 변경하는 지점을 줄이기 위함.(효율적으로 관리하기 위해서)
2.변경될 수 있는 데이터가 있는 부분을 따로 관리하고, 데이터의 무결성을 보장하는 작업을 편하게 하기 위함.

정규화 된 정도를 NF(Nomal Form)으로 표현

1.1NF

  • 각 행의 데이터들은 원자값을 가져야한다.
  • 각 행은 유일한 식별자인 기본키(Primary Key)를 가지고있어야한다.

2.2NF

  • 1NF(제1정규형) 이어야 한다.
  • 기본키(Primary Key)가 아닌 모든 속성이 기본키에 완전 함수 종속되야 한다.(부분적 함수 의존이 없다)

3.3NF

  • 2NF(제2정규형) 이어야 한다.
  • 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되지 않아야 한다.

    이행적 함수 종속 : A값을 알 때 B값을 알수 있고, B값을 알때 C값을 알수 있으면 이행적 함수 종속
    A->B, B->C

4.데이터베이스 저장 구조를 효율적으로 관리하기 위해서 정규화 라는 작업을 한다.

  • 정규화의 가장 기본은, 중복된데이터를 제거해서 , 데이터 저장의 효율을 올리는 것.
  • 시간이 흐르면 변경되는 데이터는 칼럼으로 기록하지 않음.
  • 계산이 가능한 데이터는 칼럼으로 기록하지 않음.
  • 누구에게나 정해진 값을 이용하는경우 데이터베이스에서 취급하지 않음.
  • 정규화가 잘 되었거나, 위의 규칙이 반영된 데이터베이스의 설계에서는 , 트랜잭션이 많이 일어나지 않는다.
728x90
반응형
LIST

'Spring boot study > 6. 트랜잭션' 카테고리의 다른 글

@Transactional 어노테이션 속성  (0) 2020.08.11
댓글
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함