[SQLD] 5-4. SQL 최적화 기본 원리 - 예상문제풀이 (Question&Answer)
문제 1. 옵티마이저에 대한 설명으로 적절하지 않은 것은 다음 중 무엇인가?① 옵티마이저는 질의에 대해 실행계획을 생성한다.② 비용기반 옵티마이저는 비용계산을 위해 다양한 통계정보를 사용한다.③ 규칙기반 옵티마이저에서 제일 낮은 우선순위는 전체 테이블 스캔이다.④ 비용기반 옵티마이저는 적절한 인덱스가 존재하면 반드시 인덱스를 사용한다. 문제 2. 실행계획에 대한 설명으로 적절하지 않는 것은 다음 중 무엇인가?① 실행계획은 SQL문의 처리를 위한 절차와 방법이 표현된다.② 실행계획은 액세스 기법, 조인 순서, 조인 방법 등으로 구성된다.③ 실행계획이 다르면 결과도 달라질 수 있다.④ 최적화 정보는 실행계획의 단계별 예상 비용을 표시한 것이다. 문제 3. SQL 처리 흐름도에 대한 설명으로 적절하지 않는 것..
2024.10.23
no image
[SQLD] 5-3. SQL 최적화 기본 원리 - 조인 수행 원리, Nested Loop Join, Sort Merge Join, Hash Join
A. 조인 개요1. 두 개 이상의 테이블을 하나의 집합으로 만드는 연산2. FROM 절에 두 개 이상의 테이블이 나열될 경우 조인이 수행3. 조인 연산은 두 테이블 사이에서 수행4. 3개 이상 테이블이 조인될 경우 먼저 수행된 조인 결과와 나머지 테이블 사이에서 조인이 수행됨5. 테이블 또는 조인 결과를 이용하여 조인을 수행할 때 조인 단계별로 다른 조인 기법을 사용할 수 있음6. 조인 기법은 두 개의 테이블을 조인할 때 사용할 수 있는 방법7. Nested Loop Join (NL Join), Sort Merge Join, Hash Join 조인 방식이 존재 B. Nested Loop Join ( NL Join )1. 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식2. 선행 테이블의 조건을 만족하는..
2024.10.23
no image
[SQLD] 5-2. SQL 최적화 기본 원리 - 인덱스 기본, B트리 기반 인덱스 검색, 클러스터형 인덱스, 테이블 스캔, 인덱스 스캔, 스캔 방식 종류
A. 인덱스1. 검색 성능의 최적화를 위한 객체임2. 테이블 데이터를 특정 컬럼으로 정렬하여 생성할 수 있는 구조3. 개수가 많을수록 INSERT, UPDATE, DELETE등과 같은 DML 작업은 성능이 저하4. UPDATE는 변경 대상 컬럼이 인덱스에 없는 경우 성능에 영향이 없음  B. B트리 기반 인덱스 검색1단계 : 브랜치 블록의 가장 왼쪽 값이 찾고자 하는 값보다 작거나 같으면 왼쪽 포인터로 이동2단계 : 찾고자 하는 값이 브랜치 블록의 값 사이에 존재하면 가운데 포인터로 이동3단계 : 오른쪽에 있는 값보다 크면 오른쪽 포인터로 이동 C. SQL Server의 클러스터형 인덱스1. 인덱스의 리프 페이지가 곧 데이터 페이지2. 인덱스 와 테이블이 결합되어 있는 구조3. 리프 페이지의 모든 로우는..
2024.10.23
no image
[SQLD] 5-1. SQL 최적화 기본 원리 - 옵티마이저와 실행계획, SQL 처리 흐름도
A. 옵티마이저 정의 1. SQL은 사용자의 요구사항만 기술2. 처리과정에 대한 기술은 하지 않음3. 최적의 실행 방법을 결정하는 것이 옵티마이저의 역할4. 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행5. 최적의 실행 방법이 실행계획(Execution Plan)     B. 규칙기반 옵티마이저 1. 인덱스 유무와 SQL 문장에서 사용하는 연산자의 종류 그리고 SQL문에서 참조하는 객체의 종류 등을 참조해 실행계획을 생성2. 인덱스를 이용한 액세스 방식이 전체 테이블 액세스 방식보다 우선순위가 높음3. SQL순위에서 이용 가능한 인덱스가 존재한다면 엑세스 기법전체 테이블 액세스 방식보다는 항상 인덱스를 사용하는 실행계획을 생성   C. 비용기반 옵티마이저(CBO) 1. 규칙기반..
2024.10.23
[SQLD] 4-9. SQL 활용 - 예상문제풀이 (Question&Answer)
문제 1. 다음 JOIN의 종류의 설명 중 틀린 것은 무엇인가?① EQUI JOIN은 반드시 PK, FK 관계에 의해서만 성립된다.② NON-EQUI JOIN은 등가 조건이 성립되지 않은 테이블에 JOIN을 걸어주는 방법이다.③ OUTER JOIN은 JOIN 조건을 만족하지 않는 데이터도 볼 수 있는 JOIN 방법이다.④ SELF JOIN은 하나의 테이블을 논리적으로 분리시켜 EQUI JOIN을 이용하는 방법이다.  문제 2. 4개의 테이블로부터 필요한 칼럼을 조회하려고 한다. 최소 몇 개의 JOIN 조건이 필요한가?① 2개② 3개③ 4개④ 5개  문제 3. 다음 SET 연산자에 대한 설명 중 틀린 것은 무엇인가?① UNION 연산자는 조회 결과에 대한 합집합을 나타내며 자동으로 정렬을 해준다.② UNI..
2024.10.22
[SQLD] 4-8. SQL 활용 - 절차형 SQL, PL/SQL, Procedure 생성, User Defined Function, Trigger
A. 절차형 SQL 개요1. DBMS 벤더별 PL(Procedural Language)/SQL(Oracle), SQL/PL(DB2), T_SQL(SQL Server) 절차형 SQL 제공2. 절차형 SQL을 이용하면 SQL문의 연속적인 실행이나 조건에 따른 분기처리를 할 수 있음 B. PL/SQL 특징1. Block 내에는 DML 문장과 QUERY 문장, 절차형 언어 등 사용 가능2. 절차적 프로그래밍을 가능하게 하는 트랜잭션 언어3. PL/SQL은 Block 구조로 되어있어 각 기능별로 모듈화가 가능4. 변수, 상수 둥을 선언하여 SQL 문장과 값 교환5. IF, LOOP 둥의 절차형 언어를 사용하여 절차적인 프로그램이 가능6. DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용7. Oracle과 P..
2024.10.22
no image
[SQLD] 4-7. SQL 활용 - DCL, Oracle/SQL Server/DB 유저와 권한
A. DCL(DATA CONTROL LANGUAGE) 개요- 유저를 생성하고 권한을 제어할 수 있는 명령어 B. 유저와 권한- 데이터베이스는 데이터 보호와 보안을 위해서 유저와 권한을 관리  Oracle 유저와 권한 특징1. 유저를 통해 데이터베이스에 접속을 하는 형태2. 아이디와 비밀번호 방식으로 인스턴스에 접속3. 스키마에 오브젝트 생성 등의 권한을 부여받음  SQL Server 유저와 권한 특징1. 로그인 생성2. 인스턴스 내에 존재하는 데이터베이스에 연결하여 유저 생성3. 로그인과 유저를 매핑4. 특정 유저는 특정 데이터베이스 내의 특정 스키마에 대해 권한을 부여받을 수 있음   C. 유저 생성과 시스템 권한  Oracle - 유저생성1. 유저 생성은 CREATE USER 권한이 필요2. SYST..
2024.10.22
no image
[SQLD] 4-6. SQL 활용 - 윈도우 함수, Window Function 문법, RANK, DENSE_RANK, ROW_NUMBER, SUM, COUNT, FIRST_VALUE, LAG, LEAD, RATIO_TO_REPORT,
A. Window Function 개요 1. 분석 함수(ANALYTIC FUNCTION)나 순위 함수(RANK FUNCTION)2. 행과 행간의 관계 정의, 행과 행간 비교 및 연산하는 것3. 데이터웨어하우스에서 발전4. 서브쿼리에서 사용 가능  B. Window Function 문법      C. WINDOW FUNCTION 종류 윈도우 함수설 명그룹 내 순위 함수RANK, DENSE_RANK, ROW_NUMBER 함수ANSI/ISO SQL 표준과 Oracle, SQL Server 등 대부분의 DBMS에서 지원그룹 내 집계 함수SUM,MAX, MIN, AVG, COUNT 함수ANSI/ISO SQL 표준과 Oracle, SQL Server 둥 대부분의 DBMS에서 지원SQL Server의 경우 집계 함수..
2024.10.22
no image
[SQLD] 4-5. SQL 활용 - 그룹 함수, ANSI/ISO SQL 표준, ROLLUP, GROUPING, CUBE
A. 데이터 분석을 위한 함수 ( ANSI/ISO SQL 표준 )    B. GROUP FUNCTION - ROLLUPGROUP BY의 확장된 형태병렬 수행 가능시간 및 지역처럼 계층적 분류를 포함하고 있는 데이터의 집계에 적합지정된 칼럼목록은 소계를 생성하기 위해 사용Grouping Columns의 수+1 Level의 Subtotal이 생성ROLLUP의 인수는 계층 구조이므로 인수 순서가 바뀌면 수행 결과도 변경계증간 집계에 대해서는 LEVEL별로 정렬계층 내 GROUP BY 수행 결과는 정렬을 지원하지 않아 별도의 ORDER BY 절을 사용하여 정렬     C. GROUP FUNCTION - GROUPING 1. 소계가 계산되는 행은 1, 소계가 아닌 행은 2를 반환하는 함수  D. GROUP FUN..
2024.10.22