데이터베이스의 반대 개념은?
파일 대신 데이터베이스 쓰는 이유?
관계형 데이터베이스는?
테이블간에는 어떤 관계를 맺게 되는가?
왜 테이블을 나눠서 저장하는가?
트랜잭션이란?
데이터베이스에는 트랜잭션이란 장치가 있음.
트랜잭션이란 질의를 하나의 묶음 처리를 해서 만약 중간에 실행 중단 시 처음부터 다시 시작하는 롤백 시작, 오류가 없으면 커미트함.
즉, 한 번의 질의가 실행되면 모두 수행되거나 혹은 하나도 수행이 안 되거나 하는 논리적 단위임.
예를 들어, 친구에게 1만원 송금 / 내 계좌 1만원 차감 + 친구 계좌 1만원 증가되어야 함. 근데, 내 계과 1만원 차감되고, 친구 계좌는 늘어나지 않으면 오류. 이러면 중단 시키고 다시 롤백을 해서 송금 작업을 다시 해야 함.
트랜잭션은 작업 단위임. 그래서 데이터베이스 성능은 초당 트랜잭션 처리 능력함 / 단위는 초당 처리건수(tps)임.
트랜잭션은 DB 서버에 여러 클라이언트가 엑세스하거나 데이터 갱신하면서 데이터 부정합을 방지하고자 사용함.
트랜잭션은 아래 4가지 특징이 있음.
1) 원자성 : 부분적으로만 실행되게 하지 않는다. All or nothing
2) 일관성 : 트랜잭션이 완료되면 그 이후 다른 트랜잭션이 없는 이상 변하지 않는다
3) 고립성 : 하나의 트랜잭션 처리 시 다른 트랜잭션이 끼어들지 못 한다. 트랜잭션 끼리는 서로 간섭 못 한다.
4) 지속성 : 성공한 트랜잭션은 영원히 반영되어야 한다.
NoSQL (비관계형 데이터베이스)란?
SQL 쿼리문
Join :
왼쪽 테이블 row(4) < 오른쪽 테이블 row(5) 일 때,
Left Join : 왼쪽 테이블 기준으로 다 가져오고, 오른쪽 테이블 일부 데이터를 가져옴. (오른쪽 일부 데이터 누락됨)
Right Join : 오른쪽 테이블 기준으로 다 가져오고, 왼쪽 데이블의 데이터를 가져옴. (왼쪽 일부 데이터 누락됨)