
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 |