데이터 정의 언어
DB 구조 or 스키마(Schema)에 관한 명령어
CREATE
(생성), ALTER
(수정), DROP
(삭제), TRUNCATE
(초기화), RENAME
데이터 조작 언어
DB에 저장된 데이터를 조작하는 명령어
SELECT
: 데이터 조회
INSERT
, DELETE
, UPDATE
: 데이터 변형 (삽입, 삭제, 수정)
데이터 제어 언어
DB에 접근할 수 있는 권한에 대한 명령어
GRANT
(권한 부여), REVOKE
(권한 회수)
트랜잭션 제어 언어
논리적인 작업 단위인 트랜잭션 별로 제어하는 명령어
데이터의 보안, 무결성, 회복 제어 등을 위해 사용
COMMIT
: 트랜잭션 작업 결과 반영
ROLLBACK
: DB를 마지막 COMMIT
시점으로 복원
SAVE POINT
: ROLLBACK
지점 정의
Question) "DDL, DML, DCL, TCL에 대해 설명 해주세요."
DDL
은 데이터 정의 언어로서, DB 구조 또는 스키마에 관한 명령어 입니다.
테이블 생성CREATE
, 수정ALTER
, 삭제DROP
, 초기화TRUNCATE
등이 있습니다.
DML
은 데이터 조작 언어로서, DB에 저장된 데이터를 조작하는 명령어 입니다.
데이터 조회SELECT
, 삽입INSERT
, 삭제DELETE
, 수정UPDATE
등이 있습니다.
DCL
은 데이터 제어 언어로서, DB에 접근할 수 있는 권한에 대한 명령어 입니다.
권한 부여GRANT
, 권한 회수REVOKE
가 있습니다.
TCL
은 트랜잭션 제어 언어로서, 논리적인 작업 단위인 트랜잭션 별로 제어하는 명령어 입니다.
데이터의 보안, 무결성, 회복 제어 등을 위해 사용 합니다.
트랜잭션 작업 결과를 반영하는COMMIT
,
DB를 마지막 커밋 시점으로 복원하는ROLLBACK
,
롤백 지점을 정의하는SAVE POINT
등이 있습니다.
DB의 상태를 변화 시키기 위해 수행하는 작업의 단위
논리적인 작업 단위
한번에 모두 처리되거나 or 처리되지 않아야 하는 작업들의 모임
ex) 은행 시스템에서 계좌이체
트랜잭션의 작업이 부분적으로 일부만 실행되거나, 중단되지 않는 것을 보장하는 것
작업 단위를 일부분만 실행하지 않는 것
=> All or Nothing : 모두 수행되거나, 모두 수행되지 않도록 함
성공적으로 수행된 트랜잭션은 영원히 반영되는 것
Commit을 하면, 현재 상태는 영원히 보장됨
Question) "트랜잭션의 특징 4가지 설명 해주세요."
데이터베이스의 무결성과 일관성을 위해서, 트랜잭션은 4가지 특징을 만족해야 합니다.
- 원자성은 한 트랜잭션 내 실행한 작업은 모두 성공하거나 실패 해야하는 것 입니다.
- 일관성은 일관성 있는 데이터베이스의 상태를 유지시키는 것 입니다.
- 격리성은 동시에 실행된 트랜잭션은 서로에게 영향을 미치지 않아야 되는 것 입니다.
- 지속성은 트랜잭션 완료시, 결과가 영구적으로 반영 되어야 하는 것 입니다.
Not Only SQL
)SQL을 보완한다는 의미
SQL은 보통 RDBMS (관계형 데이터베이스 시스템) 의미
SQL과 NOSQL의 가장 큰 차이점
=> Schema (스키마) 존재 여부
=> SQL은 스키마가 있고, NOSQL은 스키마가 없음
조회, 삽입 속도가 SQL에 비해 빠름
대량의 데이터를 저장하기에 더 용이
Question) "NOSQL에 대해 설명 해주세요."
- NOSQL은 Not Only SQL의 약자로, SQL을 보완 한다는 의미를 가지고 있습니다.
- NOSQL은 스키마가 없어서 데이터를 조회하고, 삽입하는 속도가 빠릅니다.
- 또한 대량의 분산 데이터를 저장하는 데 특화 되어있습니다.
테이블을 Column 단위로 나누어 저장하는 기법
테이블이 너무 커서, 작업 시 성능이 떨어지는 경우 사용
Question) "파티셔닝에 대해 설명 해주세요."
파티셔닝은 테이블을 칼럼 단위로 나누어 저장하는 기법 입니다.
- 장점은
update
와insert
같은 작업이 분산되어서 성능이 향상 됩니다.- 단점은 테이블 간
join
비용이 증가하게 되고,
index
를 별도로 파티셔닝 할 수 없다는 점이 있습니다.
Question) "샤딩에 대해 설명 해주세요."
샤딩은 테이블을 Row 단위로 나누어 저장하는 기법 입니다.
- 샤드
Key
를 정하는 방법에 따라서 샤딩 종류가 결정되는데,
크게Hash Sharding
과Dynamic Sharding
이 있습니다.