


| 관점 | 기능 |
|---|---|
| 효율성 | - 동일한 데이터가 저장되는 것을 방지하는 중복제어기능 - 무결성 제약조건을 정의/검사하는 기능 |
| 직관성 | - 서로 다른 데이터 간의 관계를 표현해주는 관계표현 - 편리하고 직관적인 인터페이스 |
| 안전성 | - 접근하는 사용자마다 다른 권한을 부여하는 접근통제기능 - 데이터가 잘못 수정/삭제되었을 때 백업하는 기능 |
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업단위
- 트랜잭션은 데이터베이스 시스템에서 병행제어 및 회복작업 시 처리되는 작업의 논리적단위
- 사용자가 시스템에 대한 요구 시 시스템이 응답하기 위한 상태 변환과정의 작업단위
| 특성 | 내용 |
|---|---|
| 원자성(Atomicity) | - 트랜잭션의 연산은 데이터베이스 전체에 반영되도록 All-반영 or All-복구 되어야 함 - 트랜잭션 내 모든 명령은 반드시 완벽히 수행되어야 함 - 완벽히 수행되지 않고 하나라도 오류가 발생하면 모두 롤백되어야 함 |
| 일관성(Consistency) | - 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함 - 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 함 |
| 독립성(Isolation) | - 둘 이상의 트랜잭션이 동시에 실행되는 경우 어느 하나의 트랜잭션 실행 중 다른 트랜잭션의 연산이 끼어들 수 없음 |
| 영속성, 지속성(Durability) | - 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함 |
- 테이블로 이루어져 있고, 테이블은 key와 value로 나타냄
- 데이터 종속성을 관계(Relationship)로 표현하는 것이 특징

| 종류 | 역할 |
|---|---|
| DDL(Data Definition Language) | - 데이터 정의어, 관계형 데이터베이스의 구조를 정의하는 언어 - CREATE, ALTER, DROP, RENAME |
| DML(Data Manipulation Language) | - 데이터 조작어 (CRUD) - INSERT, UPDATE, SELECT, DELETE |
| DCL(Data Control Language) | - 데이터 제어어, 사용자에게 권한을 부여하거나 회수함 - GRANT, REVOKE, TRUNCATE |
| TCL(Transaction Control Language) | - 트랜잭션을 제어하는 명령어 - COMMIT, ROLLBACK, SAVEPOINT |
- SQL 뿐만 아니라 다른 여러 장점을 가지고 있다는 뜻
- RDB보다 융통성 있는 데이터모델을 사용하며, 데이터 저장 및 검색에 특화된 메커니즘을 제공함
- 분산환경에서의 데이터 처리를 더욱 빠르게 하기 위해 개발됨

RDBNoSQL DB참고