yunyj99
라둥이
yunyj99
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (309)
    • 1. 프로그래밍 (50)
      • 1-1. Git (17)
      • 1-2. Java (13)
      • 1-2-1. Java GUI (1)
      • 오류 (12)
      • 기타 (7)
    • 2. Front-end (57)
      • 2-1. HTML (5)
      • 2-2. CSS (19)
      • 2-3. Java Script (33)
      • 2-4. React (0)
    • 3. Back-end (47)
      • 3-1. Spring MVC - 국비 (15)
      • 3-2. Spring MVC - 남궁성 (30)
      • 3-3. Spring - 김영한 (2)
    • 4. Android (1)
    • 5. DB (20)
      • 4-1. MySQL DBMS (20)
    • 6. 자료구조 & 알고리즘 (44)
      • 6-1. 자료구조 (14)
      • 6-2. 백준 (30)
    • 7. 웹 디자인 (7)
      • 7-1. UX 디자인 (7)
    • 8. 자격증 (35)
      • 8-1. 정보처리기사 (35)
    • 프로젝트 (3)
      • 프로젝트 기록 (3)
    • etc... (43)
      • 패스트캠퍼스 챌린지 (39)
      • 잡담 (4)

블로그 메뉴

  • 홈
  • 태그

최근 글

티스토리

hELLO · Designed By 정상우.
yunyj99

라둥이

쓰기
8. 자격증/8-1. 정보처리기사

정처기 3-1. SQL 응용 / 3-2. SQL 활용

2021. 8. 9. 22:54

1. 절차형 SQL 작성

 

< 트리거 >

- 트리거 : 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할때마다 관련 작업이 자동으로 수행되는 절차형 SQL

- 구성 : 선언부 / 이벤트부 / 시작,종료부 / 제어부 / SQL / 예외부

 

< 이벤트 >

- 이벤트 : 특정 시간에 특정한 쿼리, 프로시저, 함수 등을 실행시키는 기능

 

< 사용자 정의 함수 >

- 사용자 정의함수 : 절차형 SQL을 활용하여 일련의 연산 처리 결과를 단일 값으로 반환할 수 있는 함수

- 구성 : 선언부 / 시작,종료부 / 제어부 / SQL / 예외부 반환부

 

< SQL 문법 >

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

- 분류 :

데이터 정의어(DDL) - 데이터를 정의하는 언어
- CREATE, ALTER, DROP, TRUNCATE
데이터 조작어(DML) - 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어
- SELECT, INSERT, UPDATE, DELETE
데이터 제어어(DCL) - 데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 DBA가 사용하는 제어용 언어
- GRANT, REVOKE

 


2. 응용 SQL 작성

 

< 데이터 조작어 >

- 유형 :

SELECT - SELECT / FROM / WHERE / GROUP BY / HAVING / ORDER BY
INSERT INSERT INTO 테이블명(속성명1, ...)
VALUES (데이터1, ...)
UPDATE UPDATE 테이블명
SET 속성명 = 데이터
WHERE 조건
DELETE DELETE FROM 테이블명
WHERE 조건

 

 

< 데이터 제어어 >

- 기능 : 데이터 보안 / 무결성 유지 / 병행수행 제어 / 회복

- 유형 :

  1. DCL : GRANT, REVOKE
  2. DCL / TCL : COMMIT, ROBBACK, SAVEPOINT(CHECKPOINT)

 

 

< 윈도 함수 >

- 윈도 함수 : 행과 행 간의 관계를 쉽게 정의하기 위해 만든 함수. OLAP 함수라고도 한다.

- 분류 : 집계 함수 / 순위 함수 / 행 순서 함수 / 그룹 내 비율 함수

- OLAP : 사용자가 동일한 데이터를 여러 기준을 이용하는 다양한 방식으로 바라보면서 다차원 테이블 분석을 할 수 있도록 도와주는 의사결정 지원 시스템

- OLAP 연산 : Roll-Up / Drill-Down / Slicing / Dicing

 

 

 

< 그룹 함수 >

- 그룹 함수 : 테이블의 전채 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수

- 유형 : ROLLUP / CUBE / GROUPING SETS

 


1. 기본 SQL 작성

 

< 데이터 정의어 >

- DDL의 대상 : 도메인 / 스키마 / 테이블 / 뷰 / 인덱스

- 명령어 : CREATE / ALTER / DROP / TRUNCATE

 

 

 

< 트랜잭션 >

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

- 특징 :

Atomicity
원자성
- 작업의 최소단위
- 연산 전체가 성공 또는 실패
Consistency
일관성
- 항상 일관된 데이터베이스 상태를 보존해야함
Isolation
격리성
- 연산의 중간 결과를 다른 트랜잭션이 접근 불가
Durability
영속성
- 트랜잭션의 결과는 영속적으로 데이터베이스에 저장

- 연산 :

  1. 원자성 주요 기법 : 커밋(Commit) / 롤백(RollBack)
  2. 일관성 주요 기법 : 병행 제어 (미보장 시 문제점-갱신 손실 / 현황 파악오류 / 모순성 / 연쇄복귀, 종류 - 로킹 / 낙관적 검증 / 타임스탬프 순서 / 다중버전 동시성 제어)
  3. 격리성 주요 기법 : 데이터베이스 고립화 수준
  4. 영속성 주요 기법 : 회복 기법 (로그 기반 회복 기법 / 체크 포인트 회복 기법 / 그림자 페이징 회복 기법)

- TCL 명령어 : 커밋 / 롤백 / 체크포인트

 


2. 고급 SQL 작성

 

< 뷰 >

- 뷰 : 논리 테이블로서, 사용자에게 테이블과 동일

- 특징 : 논리적 데이터 독립성 제공, 데이터 조작 연산 간소화, 보안 기능 제공, 뷰 변경 불가

 

 

 

< 인덱스 >

- 인덱스 : 데이터를 빠르게 찾을 수 있는 수단

- 종류 : 순서 인덱스 / 해시 인덱스 / 비트맵 인덱스 / 함수기반 인덱스 / 단일 인덱스 / 결합 인덱스 / 클러스터드 인덱스

- 스캔 방식 : 인덱스 범위 스캔 / 인덱스 전체 스캔 / 인덱스 단일 스캔 / 인덱스 생략 스캔

 

 

 

< 집합 연산자 >

- 집합 연산자 : 두 개 이상의 테이블에서 여러 개의 질의의 결과를 연결하여 하나로 결합하는 연산자

- 유형 : UNION / UNION ALL / INTERSECT / MINUS

 

 

 

< 조인 >

- 조인 : 두 개 이상의 테이블을 연결하여 데이터를 검색하는 방법

- 유형 :

논리적 조인 사용자 SQL문에 표현되는 테이블 결합 방식 내부 조인 / 외부 조인 / 교차 조인 / 셀프 조인
물리적 조인 데이터베이스 옵티마이저에 의해 내부적으로 발생하는 데이터 결합 방식 중첩 반복 조인 / 정렬 합병 조인 / 해시 조인

 

 

 

< 서브쿼리 >

- 서브쿼리 : SQL 문 안에 포함된 또 다른 SQL 문

- 유형(동작 방식) : 비연관 서브쿼리 / 연관 서브쿼리

- 유형(데이터 형태) : 단일 행 서브쿼리 / 다중 행 서브쿼리 / 다중 컬럼 서브쿼리

 


 

'8. 자격증 > 8-1. 정보처리기사' 카테고리의 다른 글

정처기 3-4. 물리 데이터베이스 설계 / 3-5. 데이터 전환  (0) 2021.08.10
정처기 3-3. 논리 데이터베이스 설계  (0) 2021.08.09
정처기 2-5. 인터페이스 구현  (0) 2021.08.05
정처기 2-4. 애플리케이션 테스트 관리  (0) 2021.08.05
정처기 2-3. 제품 소프트웨어 패키징  (0) 2021.08.03
    '8. 자격증/8-1. 정보처리기사' 카테고리의 다른 글
    • 정처기 3-4. 물리 데이터베이스 설계 / 3-5. 데이터 전환
    • 정처기 3-3. 논리 데이터베이스 설계
    • 정처기 2-5. 인터페이스 구현
    • 정처기 2-4. 애플리케이션 테스트 관리
    yunyj99
    yunyj99
    개발자를 목표로 하는, 새싹처럼 성장하고 싶은 사람의 학습 공간 ^v^

    티스토리툴바