트랙잭션( transaction ) 개념을 말하자면

데이터베이스 내에서 한꺼번에 수행되어야할 일련의 연산들 입니다.
간단하게 말하자면 전부 되거나~~ 전부 안되거나~~

트랙잭션 의 모든 연산은 반드시 한꺼번에 완료가 되야 하며
 그렇지 않은경우에는 한꺼번에 취소되어야 하는 원자성을 가지고 있습니다

한꺼번에 완료가 된경우에는 성공적인 종료 COMMIT 

이 경우에는 작업결과는 데이터베이스에 반영이 되게 됩니다.

취소가 된경우에는 비정상적인 종료 ROLLBACK 

이 경우에 작업결과는 모두 취소되게 되어 데이터베이스에 영향을 미치지 않게 됩니다. 



이 트랙잭션에 성질들을 보게되면 

1. 원자성(Atomicity)

분리 할수 없는 하나의 단위로 작업은 모두 완료되거나 모두 취소 되어야 합니다.

2. 일관성(Consistency)

- 사용되는 모든 데이터는 일관되어야 합니다.

3. 격리성(Isolation)

 - 접근하고 있는 데이터는 다른 트랜잭션으로 부터 격리 되어야 합니다.

트랜잭션이 진행되기전과 완료된 후에 상태를 볼수 있지만

트랜잭션이 진행되는 중간 데이터는 볼수 없습니다.

4. 영속성(Durability)

- 트랙잭션이 정상 종료되면 그 결과는 시스템에 영구적으로 적용되어야 합니다.

5. 순차성(Sequentiality)

- 데이터를 다시 로드하고 트랜잭션을 재생하여 원래 트랜잭션이 수행된 후의 상태로

 데이터를 되돌리는 것을 말합니다.


트랙잭션의 예를 하나 들어 이해를 해볼게요ㅎㅎ


저는 카드하나를 들고서 은행 인출기 앞으로 갑니다.

처음에     카드를 넣습니다

두번째로     어떤거래를 할지 선택을하고

세번째로     비밀번호를 눌러 인증을 받고

네번째로     거래를 완료 하겠죠

이 네가지 과정을 묶어서 트랜잭션이라고 합니다.


거래까지 완료됬으면 COMMIT 

중간에 비밀번호를 틀리거나.. 인증을 받았는데 거래를 취소하거나 하는 일이

 발생해서 처음으로 돌아갈경우에는 ROLLBACK 이라고 합니다.



출처: http://121202.tistory.com/17 [책방 창고]

Untitled

[관계형 데이터베이스] - ER 다이어그램 (Entity-Relationship Diagram) 본문

데이터베이스

[관계형 데이터베이스] - ER 다이어그램 (Entity-Relationship Diagram)

Bool 2016.12.10 01:42
1. 개요

ER 다이어그램은 ER 모델 (Entity-Relationship Model)을 기반으로 데이터베이스의 논리적 구조를 표현하기 위한 도구이다. ER 다이어그램에는 ER 모델과 같이 개체 (entity), 속성 (property), 관계 (relationship)가 존재한다.


2. 구성 요소

ER 다이어그램을 구성하는 각 구성 요소들의 기호는 아래의 [그림 1]과 같다.


[그림 1] ER 다이어그램의 구성 요소 및 기호


위의 [그림 1]에 나타낸 기호 이외에도 total participation은 double line으로, subtype과 supertype 관계는 supertype에서 subtype으로 향하는 화살표로 나타낸다.


3. ER 다이어그램의 변환

ER 다이어그램은 데이터베이스를 설계하기 위한 도구이기 때문에 ER 다이어그램으로 작성된 것을 실제 데이터베이스로 변환하는 작업이 필요하다. 다음은 ER 다이어그램을 구성하는 요소들을 실제 데이터베이스로 어떻게 변환하는지 보여준다.


  • 개체 (entity): 개체가 regular entity인 경우에는 base table (base relation)로 변환한다. Table의 key는 ER 다이어그램에서 정의된 key attribute를 이용한다.
  • many-to-many relationship: 이러한 관계는 base table로 변환한다. 두 개체를 각각 base table로 정의할 수도 있고, 두 개체가 연관된 relationship 자체를 base table로 정의할 수도 있다.
  • one-to-many relationship: 이러한 관계는 따로 table로 변환할 필요가 없다. 단순히 many 쪽에 해당하는 개체에 foreign key를 추가하기만 하면 된다.
  • weak entity: 개체를 정의하기 위해 외부에서 가져온 속성을 foreign key로 설정한다. 그 다음, weak entity의 key와 foreign key를 조합하여 primary key를 생성한다.
  • 속성 (attribute): 속성에 해당하는 요소들은 테이블의 필드로 변환된다.
  • subtype과 supertype: subtype과 supertype에 해당하는 개체는 동일한 primary key를 갖는다. 또한, subtype에서 primary key는 foreign key의 역할도 한다.


+ Recent posts