데이터베이스 39

EQUI JOIN(등가 조인)과 Non EQUI JOIN(비등가 조인)

등가 조인(EQUI JOIN) 두 개의 테이블 간 칼럼 값들이 서로 정확하게 일치하는 경우 대부분 PK ↔ FK 관계를 기반으로 한다. → 반드시 PK ↔ FK 관계로만 성립하는 것은 아님. - JOIN의 조건은 WHERE 절에 기술하게 되는데 '=' 연산자를 사용해서 표현한다. SELECT 테이블1.칼럼명, 테이블2.칼럼명, ... FROM 테이블1, 테이블2 WHERE 테이블1.칼럼명1 = 테이블2.칼럼명2; - INNER JOIN으로도 표현할 수 있다. ON절에 JOIN 조건을 넣는다. SELECT 테이블1.칼럼명, 테이블2.칼럼명, ... FROM 테이블1 INNER JOIN 테이블2 ON 테이블1.칼럼명1 = 테이블2.칼럼명2; 참고) INNER JOIN https://it-amin.tistor..

조인수행원리(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..

제46회 SQL 개발자(SQLD) 자격 시험

~ 시험 전에 혼자 다시 검토해보려고 적은 글 ~ ▶ 시험일 : 9월4일 일요일 → 입실 9:30 까지 ▶ 시험 결과 발표일 : 9월 30일 금요일 ▶ 시험 시간 : 90분(1시간 30분) → 10:00 ~ 11:30 → 퇴실 가능 시간 10:30 부터 ▶ 응시자격 : 제한 없음. ▶ 준비물 : 신분증(미지참시 응시 불가), 검정색 필기구(컴퓨터용 사인펜 또는 볼펜), 수험표 ▶ 시험 범위 과목 1. 데이터 모델링의 이해 [10문항, 문항당 2점] 제 1장. 데이터 모델링의 이해 (데이터 모델의 이해, 엔터티, 속성, 관계, 식별자) 제 2장. 데이터 모델과 성능 (정규화와 성능, 반정규화와 성능, 대용량 데이터에 따른 성능, DB 구조와 성능, 분산 DB 데이터에 따른 성능) 과목 2. SQL 기본 및..

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

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

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

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

728x90
반응형