Basic of Database

이정현·2021년 6월 11일
1

지금까지 공부한 내용을 간단하게 정리

트랜잭션(Transaction)

트랜잭션이란 인가받지 않은 사용자로부터 데이터를 보장하기위해 DBMS가 가져야하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기위한 작업의 기본 단위

특성

특성설명주요기법
원자성하나라도 실패할 경우 전체가 취소되어야 함Commit/Rollback
회복성 보장
일관성트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야함무결성 제약조건
동시성 제어
격리성트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가함Read Uncommited
Read Commited
Repeatable Read
Serializable
영속성성공이 완료된 트랜잭션의 결과는 영송적으로 데이터베이스에 저장함회복기법

상태 변화

상태설명
활동(Active)초기 상태, 트랜잭션이 실행중일 때 가지는 상태
부분 완료(Partially Committed)마지막 명령문이 실행된 후에 가지는 상태
완료(Committed)트랜잭션이 성공적으로 완료된 후 가지는 상태
실패(Failed)정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태
철회(Aborted)트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태

제어

트랜잭션 제어 언어는 TCL이라고 함. 결과를 허용하거나 취소하는 목적으로 사용되는 언어

명령어핵심설명
커밋(Commit)트랜잭션 확정트랜잭션을 메모리에 영구적으로 저장하는 명령어
롤백(Rollback)트랜잭션 취소트랜잭션 내역을 저장 무효화시키는 명령어
체크포인트(CheckPoint)저장시기 설정Rollback을 위한 시점을 지정하는 명령어



DDL

데이터 정의어. 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어 들로 특저어 구조를 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조와 관련된 명령어

DDL 대상

도메인(Domain)

  • 하나의 속성이 가질 수 있는 원자 값들의 집합
  • 속성의 데이터 타입과 크기, 제약조건 등의 정보

스키마(Schema)

  • 데이터베이스의 구조, 제약조건 등의 정보를 담고있는 기본 구조
  • 스키마는 외부/개념/내부 3계층으로 구성되어 있음
  • 계층특징
    외부 스키마- 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조
    - 사용자 뷰를 나타냄
    - 서브 스키마로 불림
    개념 스키마- 데이터베이스의 전체적인 논리적 구조
    - 전체적인 뷰를 나타냄
    - 개체 간의 관계, 제약조건, 접근 권한, 무결성, 보안에 대해 정의
    내부 스키마- 물리적 저장장치의 관점에서 보는 데이터베이스 구조
    - 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적인 순서 등을 표현

테이블(Table)

  • 데이터 저장 공간

뷰(View)

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

인덱스(Index)

  • 검색을 빠르게 하기 위한 데이터 구조

DDL 명령어

구문명령어설명
생성CREATE데이터베이스 오브젝트 생성
수정ALTER데이터베이스 오브젝트 변경
삭제DROP
TRUNCATE
데이터베이스 오브젝트 삭제
데이터베이스 오브젝트 내용 삭제

CREATE

CREATE TABLE 테이블 명
(
	컬럼명 데이터타입 [제약조건],
	. . .
)

ALTER

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

DROP TABLE 테이블명 [CASCADE | RESTRICT]
-- CASCADE: 참조하는 테이블까지 연쇄적으로 제거하는 옵션
-- RESTRICT: 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션

TRUNCATE

TRUNCATE TABLE 테이블명	--테이블 내의 모든 데이터를 삭제하는 명령어



DML

데이터 조작어. 데이터베이스에 저장된 자료들을 입력, 수정 삭제, 조회하는 언어

DML 명령어

유형동작설명
SELECT조회테이블 내 칼럼에 저장된 데이터를 조회
INSERT삽입테이블 내 칼럼에 데이터를 추가
UPDATE갱신테이블 내 칼럼에 저장된 데이터를 수정
DELETE삭제테이블 내 칼럼에 저장된 데이터를 삭제

DML 명령어는 많이 다뤄봤으니 예시 생략



DCL

데이터 제어어. 데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어

DCL 명령어

유형동작설명
GRANT사용 권한 부여관리자가 사용자에게 데이터베이스에 대한 권한을 부여하는 명령어
REVOKE사용 권한 취소관리자가 사용잗에게 부여했던 권한을 회수하기 위한 명령어

GRANT

GRANT 권한 ON 테이블 TO 사용자	--관리자가 사용자에게 테이블에 대한 권한을 부여

ex) GRANT UPDATE ON 학생 TO 장길산;

REVOKE

REVOKE 권한 ON 테이블 FROM 사용자	--관리자가 사용자에게 부여했던 테이블에 대한 권한을 회수

ex) REVOKE UPDATE ON 학생 FROM 장길산;
profile
개발자 꿈나무

0개의 댓글