지금까지 공부한 내용을 간단하게 정리
트랜잭션이란 인가받지 않은 사용자로부터 데이터를 보장하기위해 DBMS가 가져야하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기위한 작업의 기본 단위
특성 | 설명 | 주요기법 |
---|---|---|
원자성 | 하나라도 실패할 경우 전체가 취소되어야 함 | Commit/Rollback 회복성 보장 |
일관성 | 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야함 | 무결성 제약조건 동시성 제어 |
격리성 | 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가함 | Read Uncommited Read Commited Repeatable Read Serializable |
영속성 | 성공이 완료된 트랜잭션의 결과는 영송적으로 데이터베이스에 저장함 | 회복기법 |
상태 | 설명 |
---|---|
활동(Active) | 초기 상태, 트랜잭션이 실행중일 때 가지는 상태 |
부분 완료(Partially Committed) | 마지막 명령문이 실행된 후에 가지는 상태 |
완료(Committed) | 트랜잭션이 성공적으로 완료된 후 가지는 상태 |
실패(Failed) | 정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태 |
철회(Aborted) | 트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태 |
트랜잭션 제어 언어는 TCL이라고 함. 결과를 허용하거나 취소하는 목적으로 사용되는 언어
명령어 | 핵심 | 설명 |
---|---|---|
커밋(Commit) | 트랜잭션 확정 | 트랜잭션을 메모리에 영구적으로 저장하는 명령어 |
롤백(Rollback) | 트랜잭션 취소 | 트랜잭션 내역을 저장 무효화시키는 명령어 |
체크포인트(CheckPoint) | 저장시기 설정 | Rollback 을 위한 시점을 지정하는 명령어 |
데이터 정의어. 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어 들로 특저어 구조를 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조와 관련된 명령어
계층 | 특징 |
---|---|
외부 스키마 | - 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조 - 사용자 뷰를 나타냄 - 서브 스키마로 불림 |
개념 스키마 | - 데이터베이스의 전체적인 논리적 구조 - 전체적인 뷰를 나타냄 - 개체 간의 관계, 제약조건, 접근 권한, 무결성, 보안에 대해 정의 |
내부 스키마 | - 물리적 저장장치의 관점에서 보는 데이터베이스 구조 - 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적인 순서 등을 표현 |
구문 | 명령어 | 설명 |
---|---|---|
생성 | CREATE | 데이터베이스 오브젝트 생성 |
수정 | ALTER | 데이터베이스 오브젝트 변경 |
삭제 | DROP TRUNCATE | 데이터베이스 오브젝트 삭제 데이터베이스 오브젝트 내용 삭제 |
CREATE TABLE 테이블 명
(
컬럼명 데이터타입 [제약조건],
. . .
)
ALTER TABLE 테이블명 ADD 컬럼명 데이터 타입 [제약조건] --컬럼 추가 문법
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건] --컬럼 수정 문법
ALTER TABLE 테이블명 DROP 컬럼명 --컬럼 삭제 문법
ex) ALTER TABLE 사원 ADD 전화번호 VARCHAR(11) UNIQUE;
ALTER TABLE 사원 MODIFY 이름 VARCHAR(30) NOT NULL;
ALTER TABLE 사원 DROP 생년월일;
DROP TABLE 테이블명 [CASCADE | RESTRICT]
-- CASCADE: 참조하는 테이블까지 연쇄적으로 제거하는 옵션
-- RESTRICT: 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션
TRUNCATE TABLE 테이블명 --테이블 내의 모든 데이터를 삭제하는 명령어
데이터 조작어. 데이터베이스에 저장된 자료들을 입력, 수정 삭제, 조회하는 언어
유형 | 동작 | 설명 |
---|---|---|
SELECT | 조회 | 테이블 내 칼럼에 저장된 데이터를 조회 |
INSERT | 삽입 | 테이블 내 칼럼에 데이터를 추가 |
UPDATE | 갱신 | 테이블 내 칼럼에 저장된 데이터를 수정 |
DELETE | 삭제 | 테이블 내 칼럼에 저장된 데이터를 삭제 |
DML 명령어는 많이 다뤄봤으니 예시 생략
데이터 제어어. 데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어
유형 | 동작 | 설명 |
---|---|---|
GRANT | 사용 권한 부여 | 관리자가 사용자에게 데이터베이스에 대한 권한을 부여하는 명령어 |
REVOKE | 사용 권한 취소 | 관리자가 사용잗에게 부여했던 권한을 회수하기 위한 명령어 |
GRANT 권한 ON 테이블 TO 사용자 --관리자가 사용자에게 테이블에 대한 권한을 부여
ex) GRANT UPDATE ON 학생 TO 장길산;
REVOKE 권한 ON 테이블 FROM 사용자 --관리자가 사용자에게 부여했던 테이블에 대한 권한을 회수
ex) REVOKE UPDATE ON 학생 FROM 장길산;