데이터를 저장 및 보존하는 시스템
Application에서는 데이터가 메모리 상에서 존재한다. 메모리상에 존재하는 데이터는 보존이 되지않는다(휘발성)
데이터를 장기 기간동안 저장 및 보존 하기 위해서 데이터 베이스를 사용하는 것이다
일반적으로 database에는 크게 관계형 데이터베이스(RDBMS)와 NoSQL로 명칭되는 비관계형 데이터베이스(Non-relational database)가 있다.
이름 그대로, 관계형 데이터 모델에 기초를 둔 데이터베이스 시스템
관계형 데이터란 데이터를 서로 상호관련성을 가진 형태로 표현한 데이터를 말함
- 모든 데이터들은 2차원 table(테이블)로 표현
각각의 table들은 서로 상호관련성을 가지고 서로 연결될 수 있다.
- one to one
대표적인 관계형 데이터베이스는 MySQL과 PostgreSQL(Postgres)가 있다.
normalization
이라함Atomicity(원자성)
: 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력. 예를들어 자금 이체는 성공할 수도 실패할 수도 있지만, 자금을 보내는 쪽에서 돈을 빼오는 작업만 성공하고 자금을 받는 족에 돈을 넣는 작업이 실패해서는 안된다.(트랜잭션필요)
Consistency(일관성)
: 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미.
Isolation(고립성)
: 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미. 이는 트랜잭션 밖에 있는 어떠한 연산도 트랜잭션 내 중간 단계의 데이터를 볼 수 없음을 의미한다.
Durability(지속성)
: 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미. 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미. 전형적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있다.