데이터베이스

DBMS RDBMS Transaction

realtrynna 2022. 5. 8. 17:12

DBMS(Database Mangement System)

사용자와 데이터베이스 사이에서 사용자의 요구에 따라 데이터를 생성해 주고 디비를 관리해 주는 소프트웨어이다.

- 데이터들을 소프트웨어가 안정적으로 사용하려면 각 정보들마다 일정한 형태가 있어야 한다.

- 특정 소프트웨어나 프로그램에 종속되지 않고 독립된 정보의 저장소이다.

- 데이터를 계층 또는 탐색 형식으로 저장한다.

- 파일 시스템을 사용해 저장하며 각 테이블 간에는 관계가 없다.

- 데이터에 대한 많은 보안을 제공하지 않으며 정규화를 수행할 수 없어 데이터는 높은 중복성을 가질 수도 있다.

 

 

RDBMS(Relational Database Management)

관계형 모델을 기반으로 하는 구조화된 DBMS 한 유형이다.

- 각 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 관리할 수 있다.

- 정규화를 통해 데이터의 중복성을 최소화하여 트랜잭션을 수행하는 게 쉽다.

- ACID(원자성 일관성 독립성 지속성) 트랜잭션을 보장하는 기능을 가진다.

- SQL은 데이터를 조작하는 구조화된 질의 언어이다.

 

 

ACID(Atomicity Consistency Isolation Durability)

트랜잭션이 안전하게 수행된다는 걸 보장하기 위한 성질을 가리키는 약어이다.

Atomicity 원자성

트랜잭션과 관련된 작업이 부분적으로 실행되다가 중지되는 게 아니라 하나의 원자 단위로 수행되는 걸 보장하는 특징이다. 실행 후 중간단계까지 실행되는 게 아니라 처음부터 끝까지 완벽하게 실행되며 중간에서 실패하는 일이 없도록 한다.

Consistency 일관성

트랜잭션이 완료되면 언제나 일관된 데이터베이스 상태를 유지하는 걸 말한다.

Isolation 독립성

트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 않도록 보장하는 걸 의미한다. 즉 트랜잭션 연산이 중간 단계의 데이터를 볼 수 없음을 의마한다.

Durability 지속성

성공적인 트랜잭션은 영원히 반영되어야 함을 의미한다. 시스템 에러 일관성 체크 등을 하더라도 유지되어야 함을 의미한다. 트랜잭션은 로그에 모든 게 저장된 후에만 Commit 상태로 간주될 수 있다.

 

 

Transaction

데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 또는 한 번에 수행되어야 할 일련의 연산들을 의미한다.

- SELECT INSTERT UPDATE DELELTE 질의어를 이용하여 데이터베이스에 접근한다.

- 작업의 단위는 질의어 한 문장이 아니다.

- 작업의 단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 걸 의미한다.

- 트랜잭션 설계를 잘하는 게 데이터를 다루는 부분에 많은 이 점이 있다.

Transcation Commit

Commit 이란 하나의 트랜잭션이 성공적으로 끝났고 데이터베이스가 일관성 있는 상태에 있을 시 하나의 트랜잭션이 끝났다라 걸 알려주기 위해 사용하는 연산이다. Commit 연산을 사용하면 수행했던 트랜잭션이 로그에 저장된다.

Transaction Rollback

Rollback 이란 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 파괴된 후 트랜잭션을 처음부터 다시 시작하거나 트랜잭션의 부분적으로만 연산된 결과를 다시 취소시킨다. 후에 사용자가 트랜잭션 처리된 단위대로 Rollback을 진행할 수도 있다.

 

 

 

 

'데이터베이스' 카테고리의 다른 글

DBMS  (0) 2022.10.03
MySQL 자료형 옵션  (0) 2022.05.08
Sequelize N:M associate  (0) 2022.05.05
Sequelize 1:N associate  (0) 2022.05.05
Sequelize 1:1 associate  (0) 2022.05.05