방구석 상상코딩

17. 데이터베이스 기본 본문

정보처리기사 실기

17. 데이터베이스 기본

구석탱 2022. 1. 22. 22:05

트랜젝션

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

 

1. 트랜젝션의 특성

  • 원자성 (Atomicity) : 분해가 불가능한 작업의 최소 단위, 연산 전체가 성공 또는 실패, 하나라도 실패할 경우 전체가 취소되어야 하는 특성
  • 일관성 (Consistency) : 트랜젝션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야 하는 특성
  • 격리성 (Isolation) : 트랜젝션 실행 중 생성하는 연산의 중간 결과를 다른 트랜젝션이 접근 불가한 특성
  • 영속성 (Durability) : 성공이 완료된 트랜젝션의 결과는 영송적으로 데이터베이스에 저장하는 특성

2. 트랜젝션 제어

  • 커밋 (COMMIT) : 트랜잭션을 메모리에 영구적으로 저장하는 명령어
  • 롤백 (ROLLBACK) : 트랜잭션 내역을 저장 무효화시키는 명령어
  • 체크포인트 (CHECKPOINT) : ROLLBACK을 위한 시점을 저장하는 명령어

DDL 대상

1. 도메인 (Domain)

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

2. 스키마 (Schema)

데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조

종류 설명
외부 스키마 (External Schema) 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조
사용자 뷰를 나타냄
서브 스키마로도 불림
개념 스키마 (Conceptual Schema) 데이터베이스의 전체적인 논리적 구조
전체적인 뷰를 나타냄
개체간의 관계, 제약조건, 접근 권한, 무결성, 보안에 대해 정의
내부 스키마 (Internal Schema) 물리적 저장장치의 관점에서 보는 데이터베이스 구조
실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 표현

3. 테이블 (Table)

데이터를 저장하는 항목인 필드(Field)들로 구성된 데이터의 집합체

용어 설명
튜플(Tuple)
행(Row)
테이블 내의 행을 의미하며, 레코드(Record)라고도 함
튜플은 릴레이션(Relation)에서 같은 값을 가질 수 없음
애트리뷰트(Attribute)
열(Column)
테이블 내의 열을 의미
열의 개수를 디그리(Degree)라고 함
식별자(Identifier) 여러 개의 집합체를 담고 있는 관계형 데이터베이스에서 각각의 구분할 수 있는 논리적 개념
카디널리티(Cardinality) 튜플(Tuple)의 개수
차수(Dgree) 애트리뷰트(Attribute)의 개수
도메인(Domain) 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합

4. 뷰 (View)

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

 

5. 인덱스 (Index)

데이터를 빠르게 찾을 수 있는 수단으로써, 테이블에 대한 조회 속도를 높여 주는 자료 구조

DDL 명령어

1. TABLE 관련 DDL

# CREATE TABLE
CREATE TABLE 테이블명
(
    컬럼명 데이터타입 PRIMARY KEY,
    컬럼명 데이터타입 FOREIGN KEY REFERENCES 참조테이블(기본키),
    컬럼명 데이터타입 UNIQUE,
    컬럼명 데이터타입 NOT NULL,
    컬럼명 데이터타입 CHECK(조건식) # CHECK(컬럼명=값)
    컬럼명 데이터타입 DEFAULT 값
);

# ALTER TABLE
# 1. ADD
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [제약조건];
# 2. MODIFY
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건];
# 3. DROP
ALTER TABLE 테이블명 DROP 컬럼명;

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

# TRUNCATE TABLE
TRUNCATE TABLE 테이블명;

2. VIEW 관련  DDL

# CREATE
CREATE VIEW 뷰이름 AS 조회쿼리;

# CREATE OR REPLACE : 뷰 교체
CREATE OR REPLACE VIEW 뷰이름 AS 조회쿼리;

# DROP
DROP VIEW 뷰이름;

3. INDEX 관련 DDL

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

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

# DROP
DROP [UNIQUE] INDEX 인덱스명;

DML 명령어

1. SELECT

SELECT [ALL | DISTINCT] 속성명1, 속성명2, ...
FROM 테이블명1, ...
[WHERE 조건]
[GROUP BY 속성명1, ...]
[HAVING 그룹조건]
[ORDER BY 속성명[ASC | DESC]];
	# ALL : 모든 튜플 검색, DISTINICT : 중복된 속성은 한개만 검색
	# ASC : 오름차순, DESC : 내림차순
  • 조인 유형
    - 내부 조인 (Inner Join) : 공통 존재 칼럼의 값이 같은 경우를 추출
    - 왼쪽 외부 조인 (Left Outer Join) :  왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출
    - 오른쪽 외부 조인 (Right Outer Join) : 오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터를 추출
    - 완전 외부 조인 (Full Outer Join) : 양쪽의 모든 데이터를 추출
    - 교차 조인 (Cross Join) : 조인 조건이 없는 모든 데이터 조합을 추출
    - 셀프 조인 (Self Join) : 자기 자신에게 별칭을 지정한 후 다시 조인
  • 집합 연산자
    - UNION : 중복 행이 제거된 쿼리 결과를 반환하는 집합 연산자
    - UNION ALL : 중복 행이 제거되지 않은 쿼리 결과를 반환하는 집합 연산자
    - INTERSECT : 두 쿼리 결과에 공통적으로 존재하는 결과를 반환하는 집합 연산자
    - MINUS : 첫 쿼리에 있고 두 번째 쿼리에는 없는 결과를 반환하는 집합 연산자

2. INSERT

INSERT INTO 테이블명(속성명1, 속성명2, ...)
VALUES (값1, 값2, ...);

3. UPDATE

UPDATE 테이블명
SET 속셩명1 = 데이터1, 속성명2 = 데이터2, ...
WHERE 조건;

4. DELETE

DELETE FROM 테이블명
WHERE 조건;

DCL 명령어

1. GRANT

관리자(DBA)가 사용자에게 데이터베이스에 대한 권한을 부여하는 명령어

GRANT 권한 ON 테이블명 TO 사용자;

2. REVOKE

관리자(DBA)가 사용자에게 부여했던 권한을 회수하기 위한 명령어

REVOKE 권한 ON 테이블명 FROM 사용자;

'정보처리기사 실기' 카테고리의 다른 글

19. 절차형 SQL 활용하기  (0) 2022.01.23
18. 응용 SQL 작성하기  (0) 2022.01.23
16. 프로그래밍 언어 활용  (0) 2022.01.22
15. 인터페이스 구현 검증  (0) 2022.01.21
14. 인터페이스 기능 구현  (0) 2022.01.21