Certificate/SQL개발자

Certificate/SQL개발자

[SQL개발자] 목차

✔ 과목 I - 모델링의 이해 1) 데이터 모델링의 이해 1.1) 데이터 모델의 이해 1.2) 엔터티 1.3) 속성 1.4) 관계 1.5) 식별자 2) 데이터 모델과 성능 2.1) 성능 데이터 모델링의 개요 2.2) 정규화와 성능 2.3) 반정규화와 성능 2.4) 분산 데이터베이스와 성능 ✔ 과목 II - SQL 기본 및 활용 1) SQL 기본 1.1) 관계형 데이터베이스 개요 1.2) DCL 1.3) DDL 1.4) DML 1.5) TCL 2) SQL 활용 2.1) 표준 조인 2.2) 집합 연산자 2.3) 계층형 질의와 셀프 조인 2.4) 서브쿼리 2.5) 그룹 함수 2.6) 윈도우 함수 2.7) 절차형 SQL 3) SQL 최적화 기본 원리 3.1) 옵티마이저와 실행계획 3.2) 인덱스 기본 3.3) ..

Certificate/SQL개발자

[SQL개발자] SQL 최적화 기본 원리 - 조인 수행 원리

✔ 조인 수행 원리 Nested Loop Join (NL Join) 조인 칼럼에 적당한 인덱스가 있어서 자연조인이 효율적일 때 유용 선행 테이블의 조건을 만족하는 모든 행의 수만큼 반복 수행하므로 결과 행의 수가 적은 테이블을 조인 순서상 선행 테이블로 선택하는 것이 전체 일량을 줄일 수 있음 Driving Table의 조인 데이터 양이 큰 영향을 줌 유니크 인덱스를 활용하여 수행 시간이 적게 걸리는 소량 테이블을 빨리 화면에 보여줘야 하는 온라인 조회하는 경우 유용 주로 랜덤 액세스 방식으로 데이터를 읽음 Sort Merge Join 조인 칼럼을 기준으로 데이터를 정렬하여 조인을 수행 조인 칼럼에 적당한 인덱스가 없어서 NL 조인이 비효율적일 때 사용 Driving Table의 개념이 중요하지 않음 조..

Certificate/SQL개발자

[SQL개발자] SQL 최적화 기본 원리 - 인덱스 기본

✔ 인덱스 기본 관계형 데이터베이스의 인덱스 인덱스를 통해 검색 조건을 만족하는 데이터를 효과적으로 찾을 수 있음 기본 인덱스는 UNIQUE와 NOT NULL의 제약조건을 가짐 보조 인덱스는 UNIQUE 인덱스가 아니라면 중복 데이터의 입력이 가능함 자주 변경되는 속성은 UPDATE, DELETE 성능에 좋지 않은 영향을 미치므로 인덱스 후보로 적절하지 않음 테이블의 전체 데이터(대량 데이터)를 읽는 경우는 인덱스가 거의 불필요하며 인덱스를 사용하지 않는 FTS를 사용 인덱스는 조회만을 위한 오브젝트이며, 삽입, 삭제, 갱신의 경우 인덱스를 함께 변경해야 하므로 오히려 부하를 가중함 대량의 데이터를 삽입할 때는 모든 인덱스를 제거하고, 데이터 삽입이 끝난 후에 인덱스를 다시 생성하는 것이 좋음 B-TRE..

Certificate/SQL개발자

[SQL개발자] SQL 최적화 기본 원리 - 옵티마이저와 실행계획

✔ 옵티마이저와 실행계획 옵티마이저란 사용자가 질의한 SQL문에 대해 최적의 실행 방법(실행계획)을 결정하는 역할을 수행 다양한 실행 방법들 중에서 최적의 실행 방법을 결정 관계형 데이터베이스는 옵티마이저가 결정한 실행 방법대로 실행 엔진이 데이터를 처리하여 결과 데이터를 사용자에게 전달 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해 주는 DBMS 내부의 핵심 엔진 옵티마이저가 최적의 실행 방법을 결정하는 방식에 따라 규칙기반 옵티마이저와 비용기반 옵티마이저로 구분 규칙기반 옵티마이저 (RBO) 규칙을 가지고 우선순위를 기반으로 실행계획을 생성 데이터베이스 관리자가 사전에 정의해 둔 규칙에 의거하여 실행계획을 선택하는 옵티마이저 숫자가 낮을수록 높은 우선순위를 가짐 제일 높은 우선순위..

Certificate/SQL개발자

[SQL개발자] SQL 활용 - 절차형 SQL

✔ 절차형 SQL 절차형 SQL이란 SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성 프로시저, 사용자 정의 함수, 트리거 등이 존재 작성자의 기준으로 트랜잭션을 분할할 수 있음 절차적 코드는 PL/SQL 엔진이 처리하고 일반적인 SQL 문장은 SQL 실행기가 처리 PL/SQL의 특징 Block 구조로 되어있어 각 기능별로 모듈화가 가능 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환 IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 함 DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있음 Oracle에 내장되어 있으므로 Oracle과 PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있음 응용 프로그램의..

Certificate/SQL개발자

[SQL개발자] SQL 활용 - 윈도우 함수

✔ 윈도우 함수 윈도우 함수란 행과 행간의 관계를 정의하거나 행과 행간을 비교, 연산하는 함수 GROUP BY 절을 이용하지 않고 함수의 인수로 지정한 속성을 범위로 하여 속성의 값을 집계할 때 사용 PARTITION과 GROUP BY 구문은 의미적으로 유사 PARTITION 구문이 없으면 전체 집합을 하나의 PARTITION으로 정의한 것과 동일 윈도우 함수 적용 범위는 PARTITION을 넘을 수 없음 SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, …] [, 그룹함수(속성명) [AS 별칭]] [, WINDOW함수 OVER (PARTITION BY 속성명1, 속성명2, … ORDER BY 속성명3, 속성명4, …)] FROM 테이블명[, 테이블명, …] [..

Certificate/SQL개발자

[SQL개발자] SQL 활용 - 그룹 함수

✔ 그룹 함수 그룹 함수란 GROUP BY 절에 지정된 그룹별로 속성의 값을 집계할 때 사용 // SELECT SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, …] [, 그룹함수(속성명) [AS 별칭]] [, WINDOW함수 OVER (PARTITION BY 속성명1, 속성명2, … ORDER BY 속성명3, 속성명4, …)] FROM 테이블명[, 테이블명, …] [WHERE 조건] [GROUP BY 속성명, 속성명, …] [HAVING 조건] [ORDER BY 속성명 [ASC | DESC]]; GROUPING 집계 표시가 아닐 경우 WHEN 0 집계 표시일 경우 WHEN 1 ROLLUP 계층 구조를 가진 SUB TOTAL을 생성하는 함수 Grouping Co..

Certificate/SQL개발자

[SQL개발자] SQL 활용 - 서브쿼리

✔ 서브쿼리 메인쿼리와 서브쿼리 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 SELECT 절, FROM 절, HAVING 절, ORDER BY 절 등에서 사용이 가능 메인쿼리의 결과가 서브쿼리로 제공될 수도 있고, 서브쿼리의 결과가 메인쿼리로 제공될 수도 있음 SELECT ... FROM ... WHERE ... (SELECT... FROM... WHERE...) 반환되는 데이터의 형태에 따른 서브쿼리 분류 단일 행 서브쿼리 서브쿼리의 실행 결과가 항상 1건 이하인 서브쿼리 단일 행 비교 연산자(=, , )와 함께 사용 다중 행 서브쿼리 서브쿼리의 실행 결과가 여러 건이 서브쿼리 다중 행 비교 연산자(IN, ALL, ANY, SOME, EXISTS)와 함께 사용 다중 칼럼 서브쿼리 서브쿼리의 실..

김깅긍
'Certificate/SQL개발자' 카테고리의 글 목록