Basic of Database

moomyung1013·2021년 6월 11일
0

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

트랜잭션(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개의 댓글