데이터베이스 구축 - SQL 응용 2
#SQL
데이터 정의어 (DDL)
DDL 대상
■ 도메인: 하나의 속성이 가질 수 있는 원자들의 집합
■ 스키마: 데이터베이스 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
■ 테이블: 데이터를 저장하는 항목인 필드들로 구성된 데이터의 집합체
■ 뷰: 하나 이상의 물리 테이블에서 유도되는 가상의 테이블
■ 인덱스: 검색을 빠르게 하기 위한 데이터 구조
DDL 명령어
■ CREATE: 생성
CREATE TABLE 테이블명
(
속성명 데이터타입 [NOT NULL],
PRIMARY KEY(기본키),
UNIQUE (속성명),
FOREIGN KEY(외래키) REFERENCES (기본키),
CONSTRAINT 제약조건명 CHECK 조건식
)
- PRIMARY KEY: 테이블의 각 행을 식별
- FOREIGN KEY: 외래 키, 참조 대상을 테이블로 명시
- UNIQUE: 해당 컬럼에 동일한 값이 들어가지 않도록 하는 제약조건
- NOT NULL: NULL값을 포함지 않도록 설정
- CHECK: 개발자가 정의하는 조건 (참이어야 하는 조건)
- DEFAULT: 필드의 기본값
■ ALTER: 수정
ALTER TABLE 테이블명 ADD 컬럼명 데이터 타입
ALTER TABLE ~ ADD
: 칼럼 추가ALTER TABLE ~ MODIFY
: 데이터 유형, 기본값, 제약조건 변경ALTER TABLE ~ DROP
: 칼럼 삭제ALTER TABLE RENAME COLUMN 변경전_칼럼 TO 변경후_칼럼
: 컬럼명 변경
■ DROP : 삭제
DROP TABLE 테이블명 [CASCADE | RESTRICT]
- CASCADE: 참조하는 테이블까지 연쇄적으로 제거
- RESTRICT: 참조하는 테이블이 있다면 삭제하지 않음
■ TRUNCATE: 내용 삭제
TRUNCATE TABLE 테이블명
관계형 모델
보편적인 데이터 모델
계층 모델과 망 모델의 보갑한 구조를 단순화시킨 모델
기본키와 이를 참조하는 외래키로 표현함
트랜잭션 (Transaction)
하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본단위
트랜잭션 특징
■ 원자성 (Atomicity)
■ 일관성 (Consistency)
■ 격리성, 고립성 (Isolation)
■ 영속성 (Durability)
트랜잭션 연산
■ 종류
커밋,롤백
병행제어
다수의 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터 베이스 일관성 유지를 위해 상호작용을 제어하는 기법
■ 목적
- 데이터 베이스의 공유를 최대화
- 시스템의 활용도를 최대화
- 데이터베이스의 일관성을 유지
- 사용자에 대한 응답시간 최소화
■ 종류
로킹, 2PC, 낙관적 검증, 타임스탬프, 다중 버전 동시성 제어
데이터 고립화 수준
현재 데이터에 대한 무결성을 해치지 않기 위해 잠금을 설정하는 정도
회복 기법
장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
■ 종류
로그 기반 회복 기법(지연갱신/즉각갱신), 체크 포인트 회복 기법, 그림자 페이징 회복 기법
트랜지션 상태
■ 활동 상태: Active
■ 부분완료 상태: Partially Committed
■ 완료 상태: Committed
■ 실패 상태: Failed
■ 철회 상태: Aborted