그냥 게임개발자

7장 SQL 응용 본문

나만의 정처기 공부

7장 SQL 응용

sudoju 2022. 4. 17. 20:40

Chapter01 데이터베이스 기본

 

  • 트랜잭션(Transaction) - 인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성, 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
  • 트랜잭션 특성
    • 원자성(Atomicity) - 트랜잭션의 연산 전체가 성공 또는 실패가 되어야 하는 성질
    • 일관성(Consistency) - 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 하는 성질
    • 격리성(Isolation) - 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 하는 성질
    • 영속성(Durability) - 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장되어야 하는 성질
  • 트랜잭션 제어어(TCL, Transaction Control Language) - 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용되는 언어
    • TCL 명령어
      • COMMIT : 트랜잭션을 메모리에 영구적으로 저장하는 명령어
      • ROLLBACK : 트랜잭션 내역의 저장을 무효화시키는 명령어
      • CHECKPOINT(SAVEPOINT) : ROLLBACK을 위한 시점을 지정하는 명령어
  • 데이터 정의어 (DDL : Data Definition Language) : DB를 구축하거나 수정할 목적으로 사용하는 언어
  • DDL 대상
    • 도메인(Domain) : 하나의 속성이 가질 수 있는 원자값들의 집합
    • 스키마(Schema) : 데이터베이스의 구조, 제약조건 등의 정보를 담고있는 기본적인 구조
      • 외부스키마, 개념스키마, 내부스키마
    • 테이블(Table) : 데이터 저장공간
    • 뷰(View) : 하나 이상의 물리테이블에서 유도되는 가상 테이블
    • 인덱스(Index) : 검색을 빠르게 하기 위한 데이터 구조
      • 인덱스 종류
        • 순서 인덱스(Ordered Index) : 데이터가 정렬된 순서로 생성되는 인덱스
        • 해시 인덱스(Hash Index) : 해시 함수에 의해 직접 데이터에 키 값으로 접근하는 인덱스
        • 비트맵 인덱스(Bitmap Index) : Bit 값이 0 또는 1로 변환하여 인덱스 키로 사용하는 인덱스
        • 함수기반 인덱스(Functional Index) : 수식이나 함수를 적용하여 만든 인덱스
        • 단일 인덱스(Single Index) : 하나의 컬럼으로만 구성한 인덱스
        • 결합 인덱스(Concatenated Index) : 두 개 이상의 컬럼으로 구성한 인덱스
        • 클러스터드 인덱스(Clustered Index) : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
        • 넌클러스터드 인덱스(Non - Clustered Index) : 인덱스의 키 값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식(데이터 삽입, 삭제 시 데이터 재정렬해야 함)
  • DDL 명령어 : CREATE, ALTER, DROP
    • CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
    • RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소
  • 데이터 조작어(DML : Data Manipulation Language) : 저장된 데이터를 실질적으로 관리하는데 사용되는 언어
    • DML 유형 : SELECT, INSERT, UPDATE, DELETE
  • 데이터 제어어(DCL : Data Control Language) : 데이터의 보안, 무결성, 회복, 병행 제어등을 정의하는데 사용하는 언어
    • DCL 유형
      • GRANT : 사용 권한 부여
      • REVOKE : 사용 권한 취소

Chapter02 응용 SQL 작성하기

 

  • 데이터 분석 함수 종류
    • 집계 함수 : 여러 행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 함수
      • COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIAN
    • 그룹 함수 : 전체 행을 하나 이상의 컬럼 기준으로 컬럼 값에 따라 그룹화하여 그룹벼로 결과를 출력하는 함수
      • ROLLUP, CUBE, GROUPING SETS
    • 윈도 함수 : 데이터베이스를 사용한 온라인 부석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능
      • OLAP함수라고도 함
    • 순위 함수 : RANK, DENSE_RANK, ROW_NUMBER

 

Chapter03 절차형 SQL 활용하기

 

  • 절차형 SQL(Procedural SQL) : SQL언어에서도 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어
    • 절차형 SQL 종류
      • 프로시저(Procedure) : 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
      • 사용자 정의함수(User-Defined Function) : SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
      • 트리거(Trigger) : 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL

Chapter04 데이터 조작 프로시저 최적화

 

  • 쿼리 성능 개선 : 최소의 시간으로 원하는 결과를 얻도록 프로시저를 수정하는 작업
    • SQL 성능 개선 절차 : 문제있는 SQL 식별 -> 옵티마이저 통계 확인 -> SQL문 재구성 -> 인덱스 재구성 -> 실행계획 유지 관리
  • 옵티마이저(Optimizer) : SQL이 가장 효율적으로 수행되도록 최적의 경로를 찾아 주는 모듈
    • 옵티마이저 유형
      • 규칙 기반 옵티마이저(RBO) : 사전에 정의해둔 규칙에 의거하여 경로를 찾는 규칙 기반 옵티마이저
      • 비용기반 옵티마이저(CBO) : 각 DBMS마다 고유의 알고리즘에 따라 산출되는 비용으로 최적의 경로를 찾는 비용기반 옵티마이저
  • 힌트(Hint) : 실행하려는 SQL문에 사전에 정보를 주어서 SQL문 실행에 빠른 결과를 가져오는 효과를 만드는 문법
    • 옵티마이저의 실행 계획을 원하는 대로 변경할 수 있게 한다.
    • 옵티마이저는 명시적인 힌트를 통해 실행 계획을 변경

 

'나만의 정처기 공부' 카테고리의 다른 글

9장 소프트웨어 개발 보안 구축  (0) 2022.04.24
8장 서버 프로그램 구현  (0) 2022.04.17
6장 (오답노트만)  (0) 2022.04.10
5. 인터페이스 구현  (0) 2022.03.17
4. 통합구현  (0) 2022.03.15