본문 바로가기

IT기술노트/데이터베이스69

옵티마이저(Optimizer) I. 옵티마이저의 개요 가. 옵티마이저(Optimizer)의 정의 - SQL문에 대한 최적의 실행 계획 수립을 위해 사용자가 요청한 SQL질의를 최소의 비용을 추정하여 실행 계획을 수립하는 DBMS 핵심엔진 나. 옵티마이저 유형 - CBO(Cost Based Optimizer), RBO(Rule Based Optimizer) II. 옵티마이저 수행절차 및 수행요소 가. 옵티마이저 수행절차 나. 옵티마이저 수행요소 절차 수행요소 설명 Parser 요소 분석 - SQL 문장 개별 구성요소 파악 트리 생성 - 파악한 요소 기반 파싱 트리 생성 오류 검사 - 문법(Syntax)/의미(Semantic) 오류검사 수행 Optimizer Query Transformer - 파싱 된 SQL을 일반적이고 표준적인 형태로.. 2021. 3. 7.
Statement와 Prepared Statement I. Statement와 Prepared Statement의 개요 가. SQL 처리과정 II. Statement와 Prepared Statement의 비교 구분 Statement Prepared Statement 개념 - DB에 SQL문을 보내기 위해 필요한 객체 - SQL의 틀을 미리 정해놓고, 나중에 값을 지정하는 방식 수행절차 - 쿼리문장분석à컴파일à실행단계 - 쿼리 시마다 실행 - 쿼리문장분석à컴파일à실행단계 - 첫 쿼리 시에만 실행, 캐시에서 재사용 성능 - 매번 SQL문 실행 과정에서 컴파일 하므로 성능상 이슈 발생 - 동일한 쿼리 반복수행 시 DB 부하 방지 및 성능 향상 사용성 - Default Statement 오브젝트마다 1개의 Resultset 오브젝트만 동시 오픈 - 여러 차례 효율.. 2021. 3. 7.
동적SQL I. 동적SQL의 개요 가. 동적SQL의 정의 - 실행 중 상황에 대응하기 위해 런타임 시점에 사용자로부터 SQL문의 일부 또는 전부를 입력 받아 실행되는 SQL 나. 동적SQL의 목적 - 일반 대화식 온라인 응용을 실행 시간에 구성할 수 있는 삽입 SQL들로 구성 - 온라인 응용 프로그램에 필요 II. 동적SQL의 문제점 및 해결방안 가. 동적SQL의 문제점 분류 문제점 설명 비기능 측면 SQL Injection 보안취약 - 실행 시점 의도치 않은 변수 삽입 내포 성능이슈 - 어플리케이션 커서 캐싱 기능 비작동 가능 PreCompile 검증부재 - 실행 시점에서 SQL 구문 분석 등 처리로 정적 대비 안정성 낮음 개발기능 측면 개발 난이도 - 실행시점 분기에 따른 유연한 개발능력 필요 개발공수 증가 -.. 2021. 3. 7.
Stored Procedure I. Stored Procedure의 개요 가. Stored Procedure의 정의 - 데이터베이스 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리 집합 나. Stored Procedure의 특징 구분 특징 설명 개발 측면 코드재사용 - 쿼리문 재사용 가능 개발언어 비의존적 - 개발 언어가 바뀌어도, 기존 Stored Procedure를 호출하여 그대로 사용 확장 및 유지보수 편리 - 데이터베이스 수정 시, Stored Procedure 만 수정 성능 측면 최적화 및 캐시화 - 최초 실행 시에 최적화된 상태로 컴파일 되고 DB 캐시에 저장되어 다시 최적화와 컴파일을 하지 않아 동일한 Stored Procedure가 여러 번 쓰이면 성능 향상 트래픽 감소 - SQL문이 서버에 .. 2021. 3. 7.
SQL(Structured Query Language) I. 데이터베이스 정의, 조작, 제어를 위한, SQL의 개요 가. SQL(Structured Query Language)의 정의 - 사용자가 데이터베이스 정의, 조작 제어를 위해 사용되는 비 절차적 데이터 언어 나. SQL 문장의 특징 - 비절차적 데이터 언어, 표준화로 RDBMS간 전환 용이, 대화식 질의어, 선언적 언어 II. SQL 처리 프로세스 및 기술요소 가. SQL 처리 프로세스 나. SQL 처리 기술요소 기술요소 역할 설명 Parser SQL Parsing - 사용자가 실행한 SQL을 가장 먼저 받아서 처리 Optimizer Optimization - 시스템, 오브젝트의 통계 정보를 기준으로 다양한 접근 경로를 비교한 후 가장 효율적인 실행 계획을 생성 - 3가지 서브 엔진 1) Query .. 2021. 3. 7.
반정규화(Denormalization) I. 질의 성능 향상을 위한 데이터 중복 허용, 반정규화의 개요 가. 반정규화(Denormalization)의 정의 - 정규화된 엔티티, 속성, 관계에 대해 시스템 성능향상과 개발, 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법 나. 반정규화의 필요성 - 정규화 시 빈번한 조인 필요하여 검색 시간 과다 소요 시 - 대용량 데이터베이스에서 파티션의 기준으로 사용되는 파티션 키가 정규화로 제거될 소지 존재 II. 반정규화의 유형 및 절차 가. 반정규화의 유형 유형 설명 Table Merge - 부모 테이블에 자식 테이블의 속성을 삽입하고 자식 테이블 삭제 Redundant Column 추가 - 조인하여 읽어올 속성을 양쪽 테이블에 중복적으로 저장 Computed Column 추가.. 2021. 3. 7.
정규화(Normalization) I. 이상현상 제거를 위한 무손실 분해과정, 정규화의 개요 가. 정규화(Normalization)의 정의 - 관계형 데이터베이스 모델에서 데이터의 중복을 제거하여 삽입, 갱신, 삭제 이상현상을 방지하기 위한 무손실 분해 과정 나. 정규화의 목적 - 이상현상 제거, 효율성 향상, 확장성 향상 다. 정규화의 원칙 - 정보의 무손실, 데이터 중복성 감소, 분리의 원칙 II. 정규화의 절차 및 유형 가. 정규화의 절차 나. 정규화의 유형 (두(도)부이겨(결)다조) 구분 유형 내용 특성 기초적 정규화 1차 정규화 - 반복되는 속성 제거, 릴레이션 R에 속한 모든 도메인이 원자값만으로 되어있는 경우 데이터간 중복성 강함 SHAPE \* MERGEFORMAT 데이터간 결합성 강함 2차 정규화 - 부분함수 종속성 제거.. 2021. 3. 7.
암스트롱 공리 I. 암스트롱 공리의 개요 가. 암스트롱 공리의 정의 - 함수 종속성 이론, 추론의 기본 규칙 - 여러가지 함수 종속의 성질을 유도 할 수 있는 원리 나. 암스트롱 공리의 필요성 - 함수 종속성을 제거하기 위한 정규화에 사용 II. 암스트롱 공리의 법칙 구분 추론규칙 설명 가정 릴레이션 R에 대해서 X, Y, Z라는 속성의 집합이 주어졌다고 가정 기분 규칙 재귀적 규칙 (반사의 공리/Reflexivity Rule) Y가 X의 부분 집합이면, X>Y X⊇Y이면 X>Y이다 예) {사번} {사번, 이름} 이면 {사번, 이름} -> {사번} 부가성 규칙 (확대의 공리/Augmentation Rule) X>Y 이면, XZ>YZ 예) 사번->이름 이면 {사번,부선} -> {이름,부서} 이행성 규칙 (이행의 공리/T.. 2021. 3. 7.
이상현상(Anomaly) I. 데이터의 불일치/누락 발생 현상, 이상현상의 개요 가. 이상현상(Anomaly)의 정의 - 특정 릴레이션에 대한 데이터를 조작함에 있어, 원치 않는 현상이 발생하거나 조작으로 인하여 데이터 불일치/누락이 발생하는 현상 나. 이상현상의 발생원인 및 해결방안 구분 설명 발생원인 - 여러가지 사실들을 하나의 릴레이션으로 표현 - 속성들 간에 존재하는 여러가지 종속 관계에 대하여 정규화 되지 않음 해결방안 - 속성들 간의 종속성을 분석해서 하나의 릴레이션에는 하나의 종속성이 표현되도록 분해 à 스키마 변환 다. 스키마 변환의 원리 - 정보의 무손실 표현: 스키마 변환 시, 정보의 손실이 있어서는 안됨 - 최소의 데이터 중복성만이 허용: 중복으로 인한 이상현상 제거 - 분리의 원칙: 하나의 독립된 관계성은 .. 2021. 3. 7.
함수적 종속성(Functional Dependency) I. 함수적 종속성의 개요 가. 함수적 종속성(Functional Dependency)의 정의 - 데이터들이 어떤 기준값에 의해 종속되는 현상, 이때 기준값을 결정자(Determinant)라하고 종속되는 값을 종속자(Dependent)라 한다. 나. 함수적 종속성의 주요 추론규칙 구분 추론규칙 설명 기본규칙 재귀규칙 - Y가 X의 부분 집합이면 X > Y이다 증가규칙 - X > Y이면, XZ > YZ이다 이행규칙 - X > Y이고, Y > Z이면, X > Z이다 부가규칙 연합규칙 - X > Y이고, X > Z이면, X > YZ이다 분해규칙 - X > YZ이면, X > Y이고, X > Z이다 가이행규칙 - X > Y이고, WY > Z이면, XW> Z이다 II. 함수적 종속성의 종류 및 문제점 가. 함수적 .. 2021. 3. 7.
반응형