-> 데이터베이스 내 데이터에 접근하도록 도와주는 시스템이다. DBMS 는 크게 질의 처리기와 저장시스템으로 이루어져있다.
- 원자성 : 부분적으로 실행되거나 중단되자 않는 것을 보장
- 일관성 : 완료되면 일관적인 DB 상태를 유지
- 격리성 : 다른 작업이 끼어들지 못하도록 보장
- 지속성 : commit 을 하면 상태는 영원히 보관
-> 데이터베이스의 무결성과 일관성을 위해서 트랜잭션은 위의 4가지 특성을 만족해야 한다.
-> Not Only SQL 의 약자로, sql 을 보완한다는 의미를 갖는다. 스키마가 없어서 데이터를 조회하고, 삽입하는 속도가 빠르다. 또한 대량의 분산 데이터를 저장하는데 특화되어 있다.
-> 테이블을 컬럼 단위로 나누는 기법인데, 장점은 update 나 insert 같은 작업이 분산되어서 성능이 향상된다. 단점은 테이블 간 join 비용이 증가하게 되고, index 를 별도로 파티셔닝 할 수 없다는 단점이 있다.
-> 테이블을 row 단위로 분산해서 저장하는 방법이다. Horizontal Partitioning 이라고도 하는데, 샤드 key 를 정하는 방법에 따라서 샤드 종류가 결정되는데 크게 hash sharding 과 dynamic sharding 으로 결정된다.