SQL 11

(SQLD) SQL 최적화 기본

1. 옵티마이저(Optimizer)   - SQL은 사용자의 요구사항만 기술할 뿐 처리과정은 기술하지 않음 때문에 SQL문을 실행하기 전 최적의 실행계획을 찾아야 함  - 옵티마이저 : 사용자의 요구사항을 만족하는 다양한 실행계획 중 최적의 실행계획을 결정하는 것 ●  규칙기반 옵티마이저(RBO : RULE BASED OPTIMIZER) : 지정된 규칙에 따라 수행  - 15개의 규칙이 존재  - 인덱스 매칭률 = 질의문에서 '='조건으로 사용된 인덱스 컬럼 수 / 인덱스 구성 컬럼 수 ●  비용기반 옵티마이저(CBO : COST-BASED OPTIMIZER) : 경제성을 고려하여 수행, 주로 이용됨  - 규칙기반 옵티마이저의 한계를 보완  - SQL문 처리에 예상되는 비용을 최소화하기 위한 방법  - ..

자격증/SQLD 2022.11.03

(SQLD) PL / SQL

1. PL(Procedual Language) / SQL 개념 및 특징: SQL내에서도 코딩이 가능하도록 함  - SQL에서도 절차적인 프로그래밍이 가능하도록 지원  - SQL문의 반복 실행(for, while), 조건(if, switch)에 따른 분기 가능  - Block 구조로 설계되어 기능별 모듈화 가능  - 여러 SQL 문장을 Block로 묶어 한 번에 서버로 보냄 =  통신량 감소(효율적)  - 변수, 상수 등을 선언하여 SQL 문장 간 값 교환 가능  - DBMS 정의 에러, 사용자 정의 에러 사용 가능 2. 프로시저(Procedual)  - CREATE PROCEDUAE 로 생성 가능  - DROP PROCEDUAE로 삭제 가능CREATE PROCEDUAL PRO_NAME;DROP PROCE..

자격증/SQLD 2022.11.03

(SQLD) Multi-Row Function

1. 다중 행 함수(Multi-Row Function): 여러 행의 그룹에 대해 적용되는 함수 ●  다중 행 함수의 종류  - 그룹함수(집계 함수) : COUNT, SUM, AVG, MAX/MIN 등  - 그룹함수(고급 집계 함수) : ROLLUP, CUBE, GROUPING SETS  - 윈도우 함수 2. 집계 함수  - 여러 행의 그룹에 대한 연산을 통해 하나의 결과를 반환함  - SELECT, HAVING, ORDER BY절에 사용 가능  - GROUP BY절을 통해 그룹핑 기준을 명시  - NULL을 제외하고 계산, 100명중 10명의 성적이 NULL일 때 전체 평균은 90명의 평균  - 입력 행 전부가 NULL일 경우 결과값이 NULL  - DISTINCT사용시 같은 값을 갖는 여러 데이터를 한..

자격증/SQLD 2022.11.03

(SQLD) Subquery

1. 계층형 데이터: 동일 테이블에 계층적으로 상위와 하위데이터가 포함된 데이터 ● 계층형 질의의 방향  - 상위>하위 : 순방향전개  - 하위>상위 : 역방향 전개 ● 계층형 질의의 구조  - START WITH 시작 지점  - CONNECT BY 다음에 전개될 방향 : PRIOR 자식 = 부모(순방향), PRIOR 부모 = 자식(역방향)SELECT COL1FROM TAB1WHERE *START WITH COL1 = 0CONNECT BY PRIOR COL1 = COL2;● 테이블 : SELECT절에 사용되어 테이블 생성  - LEVEL : 노드의 단계를 표시  - CONNECT_BY_ISLEAF : 후속 노드가 없으면1, 그렇지않다면0  - CONNECT_BY_ROOT : 시작 노드의 해당칼럼 표시  ..

자격증/SQLD 2022.11.03

(SQLD) JOIN, SET OPERATION

1. 연산자 ● 일반집합연산자  - UNION / UNION ALL  - INTERSECT  - MINUS(Oracle) / EXCEPT(MS-SQL)  - CROSS JOIN ● 순수관계연산자  - WHERE  - SELECT  - JOIN 2. 정규화와 JOIN ● 정규화는 이상현상(Anomaly)을 피하기 위해 테이블을 분할● JOIN은 데이터의 통합조회를 위해 여러 테이블들을 연결● JOIN연산은 2개의 테이블간의 연산만 가능(3개 연산시 2개를 합친 후 나머지 하나를 다시 JOIN)● 주로 PK/FK에 의해 JOIN이 성립되며 그 외 논리적인 연관성으로 JOIN성립 3. JOIN ● EQUI JOIN 동등 조인: 조인 조건으로 Equal(=) 연산 사용SELECT TAB1.COL1, TAB1.C..

자격증/SQLD 2022.11.03

(SQLD) TCL, DCL

1. TCL(Transaction Control Language) ● Transaction : DB의 논리적 연산단위  - 의미적으로 분할할 수 없는 최소의 단위  - 일반적으로 하나의 트랜잭션은 여러 SQL문장을 포함  - 성공시 모든 연산을 반영, 취소시 모든 연산을 취소 = ALL or Noting ex) A계좌에서 B계좌로 1000원을 입금하려는 상황       1. A계좌와 B계좌를 확인 (SELECT)       2. A계좌에서 1000원 인출 (UPDATE)       3. B계좌에 1000원 입금 (UPDATE)       4. A계좌와 B계좌를 확인 (SELECT)= 하나의 트랜잭션 ● 트랜잭션의 특성(ACID)  - 원자성(Atomicity) : 트랜잭션에서 정의된 연산은 모두 성공적으..

자격증/SQLD 2022.11.03

(SQLD) 함수(Function)

1. 함수의 유형  - 사용자 정의 함수 : 사용자가 정의한 함수  - 내장 함수 : DBMS에서 정의된 함수  - 단일행 함수 : 문자형, 숫자형, 날자형, 제어 함수, 변환 함수, NULL관련 함수  - 다중행 함수 : 그룹 함수, 윈도우 함수 2. 문자형 함수  - LOWER(CAR1) : 문자열을 소문자로 변환  - UPPER(CAR1)  : 문자열을 대문자로 변환  - ASCII(문자) : 문자를 아스키코드로 표현  - CHR(ASCII) : 아스키코드를 문자로 표현  - CONCAT(CAR1,CAR2) : CAR1과 CAR2를 이어서 표현  - SUBSTR(CAR1,m,n) : 문자열의 m번 째 부터 n개를 출력  - LENGTH(CAR1) : 문자열의 길이를 출력  - LTRIM(CAR1,지..

자격증/SQLD 2022.11.03

(SQLD) DDL

1. DDL 테이블 생성 ● 테이블명 생성 규칙   - 객체를 의미할 수 있는 이름으로 단수형 권고  - 다른 테이블의 이름과 중복X● 칼럼명 생성 규칙  - 한 테이블 내에서 중복X  - 테이블 생성시 각 칼럼은 ','로 구분  - 칼럼 뒤에 데이터 유형이 반드시 지정되어야 함● 테이블, 칼럼명   - 사전에 정의된 예약어 사용 불가  - 테이블과 칼럼명에는 문자, 숫자, 일부기호(_,$,#)만 허용  - 테이블과 칼럼명은 반드시 문자로 시작해야함(숫자, 기호는 불가)● 제약조건명  - 다른 제약조건의 이름과 중복X 2. Data Types● CHAR(n) : 고정 문자열● VARCHAR(n) : 가변길이 문자열(VARCHAR2와 차이없음)● NUMBER : 정수, 실수 등  - NUMBER(전체자릿수..

자격증/SQLD 2022.11.03

(SQLD) 관계형 데이터베이스 개요

1. SQL: 관계형 데이터베이스에서 데이터 정의, 조작, 제어를 위해 사용하는 언어 ● 문장 마지막은 세미콜론(;) 으로 끝남● 명령어, 객체명, 변수명은 대소문자 구분이 없음 / 데이터는 대소문자를 구분함● 날자와 문자열에는 ' 작은따옴표를 사용 2. SQL 유형 ● 데이터 정의어 (DDL : Data Definition Language): 데이터의 구조를 정의하기 위한 명령어   - CREATE : 새로운 테이블을 생성CREATE TABLE TAB1 ( COL1 DATATYPE CONSTRAINT, ( COL2 DATATYPE CONSTRAINT, ( COL3 DATATYPE CONSTRAINT, ) ;  - ALTER (DROP, ADD, CHANGE, ALTER, MO..

자격증/SQLD 2022.11.03

(SQLD) 데이터 모델과 성능

1. 데이터 모델링이란?● 정의: 현실의 데이터를 효과적으로 관리하고 처리하기 위해 DB 성능까지 고려하여 데이터 구조(모델)를 설계하는 활동● 모델링은 시간이 지날수록 수정 비용이 증가하므로, 초기에 잘 설계하는 것이 중요함 2. 성능 데이터 모델링 진행 순서 ● 정규화 수행: 데이터 중복 제거 및 이상현상 방지● DB 용량 산정: 각 테이블이 가질 데이터량, 트래픽 등을 기반으로 저장 공간 예측 ● 트랜잭션 유형 파악: CRUD가 일어나는 방식, 빈도, 병목 포인트 확인● 반정규화 수행: 성능 향상을 위해 일부 데이터 중복 또는 통합● 모델 최적화: 이력 테이블 모델 조정, 인덱스를 고려한 PK/FK 순서 재정렬, 슈퍼타입/서브타입 통합 or 분리 조정 3. DBMS의 발전 흐름시대특징1960s파일 ..

자격증/SQLD 2022.10.30
728x90