데이터베이스/데이터베이스 공부 37

조인수행원리(NL Join, Sort Merge Join, Hash Join)

조인(Join) 두 개 이상의 테이블을 하나의 집합으로 만드는 연산 → SQL문에서 FROM 절에 두 개 이상의 테이블이 나열될 경우 조인이 수행됨. FROM 절에 세 개의 테이블이 존재하더라도 세 개의 테이블이 동시에 조인이 수행되는 것이 아니라, 먼저 두 개의 테이블에 대해 조인이 수행된 후 먼저 수행된 조인 결과와 나머지 테이블 사이에서 조인이 수행된다. 테이블 또는 조인 결과를 이용하여 조인을 수행할 때 조인 단계별로 다른 조인 기법을 사용할 수 있다. [조인 기법] : NL Join, Hash Join, Sort Merge Join 1) NL Join 중첩된 반복문과 유사한 방식으로 조인 수행 더보기 Nested Loop : 루프 구조 내부에 하나 이상의 또 다른 내부 루프 구조를 갖는 형태로 ..

[데이터베이스] 전체 테이블 스캔과 인덱스 스캔

1) 전체 테이블 스캔 테이블의 모든 데이터를 읽어가면서 조건에 맞으면 결과로 추출하고 조건에 맞지 않으면 버리는 방식으로 검색 Oracle의 경우 검색 조건에 맞는 데이터를 찾기 위해 테이블의 고수위 마크(HWM) 아래의 모든 블록을 읽는다. 더보기 고수위 마크(HWM, High Water Mark) : 테이블에 데이터가 쓰여졌던 블록 상의 최상위 위치 고수위 마크까지의 블록 내 모든 데이터를 읽어야 하기 때문에 시간이 결과를 찾을 때까지 오래 걸릴 수 있다. - 전체 테이블 스캔 방식 선택하는 경우 1. SQL문에 조건이 존재하지 않는 경우 조건이 존재하지 않는다. = 모든 데이터가 답이 된다. 따라서 테이블의 모든 블록을 읽으면서 무조건 결과로서 반환하면 된다. 2. SQL문의 주어진 조건에 사용가..

인덱스(인덱스 특징, 인덱스 종류, B-트리 인덱스, 클러스터형 인덱스)

인덱스 원하는 데이터를 쉽게 찾을 수 있게 돕는 책의 찾아보기와 유사한 개념으로, 테이블을 기반으로 선택적으로 생성할 수 있는 구조임. → 인덱스를 생성하지 않아도 되고 여러 개를 생성해도 된다. 목적: 검색 성능의 최적화 DML(INSERT, UPDATE, DELETE 등) 작업은 테이블과 인덱스를 함께 변경해야 하기 때문에 오히려 느려질 수 있다는 단점이 존재. 인덱스 종류 ORACLE의 트리기반 인덱스: B-트리 인덱스, 비트맵 인덱스(Bitmap Index), 리버스 키 인덱스(Reverse Key Index), 함수 기반 인덱스(FBI, Function-Based Index) 등 SQL Server의 인덱스: 저장 구조에 따라 클러스터형(clustered) 인덱스, 비클러스터형(noncluste..

SQL 처리 흐름도(SQL 처리 흐름도 구성, 조인 순서, 조인 기법, 액세스 기법, 일량)

SQL 처리 흐름도(Access Flow Diagram) 내부적인 처리 절차를 시각적으로 표현한 도표 → 실행계획을 시각화 함. SQL 처리 흐름도 구성 조인 순서, 조인 기법, 액세스 기법, 일량 등 액세스 처리 흐름도에는 SQL문의 처리를 위해 어떤 테이블을 먼저 읽었는지(조인 순서), 테이블을 읽기 위해서 인덱스 스캔을 수행했는지 또는 테이블 전체 스캔을 수행했는지(액세스 기법)과 조인 기법 등을 표현할 수 있다. - 조인 순서 : TAB1 → TAB2 - 액세스 기법 : TAB1 = 테이블 전체 스캔 TAB2 = 인덱스 스캔(I01_TAB2라는 인덱스) - 조인 기법 : NL Join → TAB1에 대한 액세스는 스캔(Scan) 방식이고 조인 시도 및 I01_TAB2 인덱스를 통한 TAB2 액세스..

데이터베이스 실행계획(실행계획 구성요소, 조인 순서, 조인 기법, 액세스 기법, 최적화 정보, 연산, 실행계획 읽는 순서)

실행계획(Execution Plan) SQL에서 요구한 사항을 처리하기 위한 절차와 방법, SQL을 어떤 순서로 어떻게 실행할 지 결정하는 작업. → 동일한 SQL에 대해 다양한 실행계획이 존재할 수 있지만 각 실행계획마다 성능은 서로 다를 수 있다. 이때, 옵티마이저는 최적의 실행계획을 생성해 준다. → 실행 계획은 예상 정보이다. 그러므로 실제 처리 건수는 실행계획에 포함되지 않음. 참고글) 옵티마이저 https://it-amin.tistory.com/36 옵티마이저(규칙기반 옵티마이저, 비용기반 옵티마이저) 옵티마이저(Optimizer) 사용자가 질의한 SQL문에 대해 최적의 실행 방법(실행계획)을 결정하는 역할. - 최적의 실행 방법 결정 : 어떤 방법으로 처리하는 것이 최소 일량으로 동일한 일을..

옵티마이저(규칙기반 옵티마이저, 비용기반 옵티마이저)

옵티마이저(Optimizer) 사용자가 질의한 SQL문에 대해 최적의 실행 방법(실행계획)을 결정하는 역할. - 최적의 실행 방법 결정 : 어떤 방법으로 처리하는 것이 최소 일량으로 동일한 일을 처리할 수 있을지 결정하는 것. 옵티마이저가 최적의 실행 방법을 결정하는 방식에 따라 규칙기반 옵티마이저, 비용기반 옵티마이저로 구분할 수 있다. 1) 규칙기반 옵티마이저 규칙(우선 순위)을 가지고 실행계획을 생성. → 참조하는 정보: 인덱스 유무, 연산자의 종류, SQL에서 참조하는 객체의 종류 등 - Oracle 규칙기반 옵티마이저의 우선순위 규칙 - 순위의 숫자가 낮을 수록 높은 우선순위. 순위 액세스 기법 1 ROWID를 사용한 단일 행 2 클러스터 조인에 의한 단일 행 3 UNIQUE 또는 PRIMARY..

식별자(식별자 종류, 식별자 분류체계, 식별자와 비식별자 비교)

식별자의 종류 - 엔터티 내에서 대표성을 가지는가에 따라 주식별자와 보조식별자로 구분 - 엔터티 내에서 스스로 생성되었는지 여부에 따라 내부식별자와 외부식별자로 구분 - 단일 속성으로 식별이 되는가에 따라 단일식별자와 복합식별자로 구분 - 원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분하기 위해 본질식별자와 인조식별자로 구분 식별자의 분류체계 분류 식별자 설명 대표성 여부 주식별자 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조 관계를 연결할 수 있는 식별자 보조식별자 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조 관계 연결을 못함 스스로 생성여부 내부식별자 엔터티 내부에서 스스로 만들어지는 식별..

데이터모델링 관계(Relationship) (관계, 관계의 표기법, 관계의 분류, 관계 읽기)

관계(Relationship) 개체와 개체가 맺고 있는 의미있는 연관성. (동사) → 관계 타입과 관계 인스턴스로 이루어진다. 관계의 표기법 - 관계명(Membership) : 관계의 이름 - 관계차수(Cardinality) : 관계의 기수성을 나타낸다. → 1:1, 1:M, M:N - 관계선택사양(Optionality) : 필수 관계, 선택 관계 더보기 관계 차수 이미지 참고(1.6 관계 부분) https://it-amin.tistory.com/3 데이터베이스의 기본(엔터티, 릴레이션, 속성, 도메인, 필드와 레코드, 관계, 키) 1. 데이터베이스의 기본 1) 데이터베이스 데이터베이스란, 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 2) DBMS 데이터베이스를 제어, 관리하는 ..

UML(UML, UML Diagram)

UML(Unified Modeling Language) 모델링 언어 표기법의 표준화를 목적으로 하는 모델링 언어. UML 다이어그램(UML Diagram) UML을 사용하여 업무 흐름, 시스템의 구조 등을 그린 다이어그램. 종류) - Use Case Diagram(유스케이스 다이어그램) : 요구 분석 과정에서 시스템과 외부 상호 작용을 묘사. - Activity Diagram(액티비티 다이어그램) : 업무의 흐름을 모델링하거나 객체의 생명 주기를 표현. - Sequence Diagram(시퀀스 다이어그램) : 객체 간의 메시지 전달을 시간적 흐름에서 분석. - Collabolation Diagram(콜라보레이션 다이어그램) : 객체와 객체가 주고받는 메시지 중심의 작성 동적 다이어그램. - Class D..

데이터 모델링(데이터 모델, 데이터베이스 모델, 데이터 모델링 필요성, 데이터 모델링 유의사항, 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링)

1) 데이터 모델링 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업. → 물리적인 데이터베이스 모델로 환원하여 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업을 포함. - 데이터 모델 데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형. → 데이터 모델은 데이터 구조를 결정함. - 데이터베이스 모델 데이터베이스 관리 시스템이 지원하는 공식 언어로 기술된 데이터베이스의 구조나 형식 → 데이터베이스가 어떻게 구조화되고 쓰이는지를 알려주는 것임. 2) 데이터 모델링의 필요성 - 일정한 표기법 - 정보 시스템 구축 - 데이터베이스 생성하여 개발 및 데이터 관리 - 데이터 모델링 자체로서 업무 설명, 분석 첫째, 업무 정보를 구성하는 기초가 되는 정보들에 대해 일..

728x90
반응형