본문 바로가기
카테고리 없음

SQL | 트랜잭션, DDL

by 개발송이 2022. 2. 23.

1. 데이터 베이스 기본

 

트랜잭션 - 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위

 

트랜잭션의 특징 ACID

Atomicity 원자성 : 분해가 불가능한 작업의 최소단위. 연산 전체가 성공 또는 실패

Consistency 일관성 : 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야 함

Islation 격리성 : 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가

Durability 영속성 : 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장

 

TCL 트랜잭션 제어 언어

: 트랜잭션의 결과를 허용하기나 취소하는 목적으로 사용되는 언어

 

TCL 명령어

COMMIT / ROLLBACK / CHECKPOINT

 

 

2.DDL

 

SQL문법의 개념

: 데이터베이스를 접근하고 조작하는 데 필요한 표준 언어를 활용할 수 있게 해주는 규칙

 

-데이터 정의어 DDL : CREATE, ALTER, DROP, TRUNCATE(RENAME)

    데이터를 정의, 구조를 생성

-데이터 조작어 DML : SELECT, INSERT, UPDATE, DELETE

   저장된 자료들을 입력, 수정, 삭제, 조회 CRUD하는 언어

-데이터 제어어 DCL : GRANT, REVOKE

   보안, 무결성유지, 병행 제어, 회복을 위해 사용하는 언어

 

DDL

: 데이터를 정의하는 언어로 데이터를 담는 그릇을 정읳나ㅡㄴ 언어

 

DDL의 대상 (도스테뷰인)

도메인 - 하나의 속성을 가질 수 있는 원자값들의 집합

스키마 - 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적은 구조(틀)

테이블 - 데이터 저장 공간

뷰 - 하나 이상의 물리 테이블에서 유도되는 가상의 테이블

인덱스 - 검색을 빠르게 하기 위한 데이터 구조

 

스키마 유형

외부 스키마 - 사용자뷰. 사용자나 개발자 관점에서 필요로 하는 데이터베이스의 논리적 구조

개념 스키마 - 전체적인 뷰

내부 스키마 - 물리적 저장장치의 관점에서 보는 데이터베이스 구조

 

테이블

: 데이터를 저장하는 항복인 필드들로 구성된 데이터의 집합체

열(Column) / 행(Row)

 

:논리 테이블로서 사용자에게 테이블과 동일하다.

뷰는 변경이 불가함

 

뷰 생성 명령어

CREATE VIEW 뷰이름 AS
조회쿼리;

뷰교체 

CREATE OR REPLACE VIEW 뷰이름 AS 조회쿼리;

인덱스

: 테이블에 대한 조회 속도를 높여주는 자료구조이다.

 

인덱스 생성

CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명 (컬럼명);

[UNIQUE] : 인덱스 걸린 컬럼에 중복 값을 허용하지 않음(생략가능)

인덱스명 : 생성하고자 하는 인덱스 테이블 명

테이블명 : 인덱스 대상 테이블명

컬럼명 : 테이블의 특정 컬럼명(복수 컬럼 지정 가능)

 

인덱스 삭제

DROP INDEX 인덱스명;

인덱스 변경

ALTER [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명);

 

DDL명령어

1. CREATE TABLE

테이블을 생성하는 명령어

CREATE TABLE 테이블명 
(
  속성명 데이터타입 [NOT NULL], 
  PRIMARY KEY(기본키),
  UNIQUE(속성명,...),
  FOREIGN KEY(외래키) REFERENCES 참조테이블(기본키),
  CONSTRAINT 제약조건명 CHECK(조건식),
);

제약조건

PRIMARY KEY - 테이블의 기본 키 정의, 유일하게 테이블의 각 행을 식별

FOREIGN KEY - 외래키를 정의, 참조대상을 테이블(칼럼명)로 명시

UNIQUE - 테이블 내에서 얻은 유일한 값을 갖도록 하는 속성

NOT NULL - 해당 칼럼은 NULL값을 포함하지 않도록 하는 속성

CHECK - 개발자가 정의하는 제약조건, 참이어야 하는 조건을 지정

DEFAULT - 해당 필드의 기본값을 설정

 

제약조건 CONSTRAINT 

-테이블 생성 시

예시) CONSTRAINT 이름 PRIMARY KEY (컬럼1, 컬럼2 ..)

-테이블 생성 후

예시 ) ALTER TABLE 테이블이름 ADD CONSTRAINT 이름 PRIMARY KEY (컬럼1, 컬럼2 ..)

 

2. ALTER TABLE

컬럼 추가, 수정, 삭제, 컬럼명 수정

 

컬럼 추가 

ALTER TABLE 테이블명 ADD 컬럼명 데이터타입;

컬럼 수정

ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입;

컬럼 삭제

ALTER TABLE 테이블명 DROP 컬럼명;

컬럼명 수정

ALTER TABLE 테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;

 

DROP CONSTRAINT 테이블 생성 시 부여했던 제약조건을 삭제하는 명령어

ADD CONSTRAINT 테이블 생성 이후에 필요에 의해서 제약조건을 추가

 

3. DROP TABLE

컬럼 추가, 수정, 삭제, 컬럼명 수정

 DROP TABLE 테이블명;

명령어 옵션 [ CASCADE | RESTRICT ]

CASCADE : 참조하는 테이블까지 연쇠적으로 제거하는 옵션

RESTRICT : 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션

 

4. TRUNCATE TABLE

테이블 내의 데이터들을 삭제하는 명령

TRUNCATE TABLE 테이블명;