썸네일 [SQLD 자격증] 1과목 | 성능 데이터 모델링, 정규화, 반정규화 설명 & 문제풀이 성능 데이터 모델링 데이터베이스의 성능 향상을 위해 분석/설계 단계부터 성능과 관련된 사항이 데이터 모델링에 반영되도록 하는 것 데이터의 증가가 빠를수록 성능 개선 비용이 증가함 설계단계부터 고려할 경우 비용 최소화가 가능함 성능 데이터 모델링 순서 데이터 모델링 시 정규화를 정확히 수행함 데이터베이스 용량을 산정함 데이터베이스에 발생하는 트랜잭션 유형을 파악함 용량과 트랜잭션의 유형에 따라 반정규화를 수행함 이력모델, PK/FK 조정, 슈퍼타입/서브타입 조정을 수행함 정규화 vs 반정규화 정규화 데이터를 분해하는 과정 데이터의 중복을 최소화하고, 유연성을 가지며, 변경을 최소화하고, 데이터가 일관될 수 있도록 하는 방법이다. 제 1~5정규화가 있지만, 주로 1~3 정규화까지 수행함 반정규화 정규화를 했..
썸네일 [SQLD 자격증] 1과목 | 관계, 식별자 ERD(Entity-Relationship Model) 하나의 엔터티는 1개 이상의 관계를 가져야함 (통계성, 코드성 엔터티 제외) 관계의 구분 : 행위에 의한 관계, 존재에 의한 관계 >> ERD에서는 두 관계를 구분없이 동일한 표기법으로 표현함 (단, 클래스다이어그램에서는 구분하여 연관관계와 의존관계로 실선과 점선의 표기법으로 다르게 표현함) 두 개의 엔터티 사이에서 관계를 도출할 때 체크하는 사항 관심있는 연관규칙 여부 정보의 조합 여부 업무기술서, 장표에 관계연결을 가능하게 하는 동사 여부 업무기술서, 장표에 관계연결에 대한 규칙 서술 여부 ERD 작성순서 엔터티 도출 & 그리기 엔터티 배치 ( 가장 중요한 엔터티를 좌측 상단에 배치, 추가 발생하는 엔터티는 우측과 하단에 배치 ) 엔터티 간의 관..
썸네일 [SQLD 자격증] 1과목 | 데이터모델의 이해, 엔터티, 속성 관계형 데이터베이스 권한 받기 데이터 구조 정의 데이터 변형 데이터 조회 DCL (Data Control Language) DDL (Data Definition Language) DML (Data Manipulation Language) GRANT : 권한 부여 CREATE : 구조 생성 INSERT : 데이터 입력 SELECT : 조회 REVOKE : 권한 회수 ALTER : 구조 변경 UPDATE : 데이터 수정 DROP : 구조 삭제 DELETE : 데이터 삭제 RENAME : 이름 변경 TRUNCATE : 테이블 초기화 데이터 모델링의 특징 추상화 : 현실세계를 일정한 형식에 맞춰 표현하기 위함 정확화 : 누구나 이해할 수 있도록 현상을 기술 단순화 : 복잡한 현실을 이해하기 쉽게 제한된 언어와 ..
썸네일 [SQLD 자격증] 2과목 | 옵티마이저 JOIN 설명 & 문제풀이 조인 문제 한 테이블 내에서 연관관계를 가진 두 컬럼 간의 조인 서로 연관된 컬럼이 없을 경우 수행하는 조인 정답 SELF JOIN >> 테이블 명과 컬럼명이 모두 일치하기 때문에 꼭, ALIAS를 써줘야한다. SELECT T1.col1 , T2.col1 FROM 테이블명 T1, 테이블명 T2 WHERE T1.col1 = T2.col1 ; CROSS JOIN 옵티마이저 조인(Optimizer Join) Nested Loop JOIN 선행 테이블(외부 테이블, Driving Table)을 먼저 조회하여 연결 대상 데이터를 찾고, 그 다음 테이블(내부 테이블)을 연결함 먼저 처리되는 데이터의 양 - 선행 테이블(외부테이블, Driving Table)의 처리범위에 따라 처리량이 결정됨 선행 테이블의 크기가 작..
썸네일 [SQLD 자격증] 2과목 | 테이블 파티션, 옵티마이저, 인덱스 설명 & 문제풀이 테이블 파티션 대용량의 테이블을 여러개의 데이터 파일에 분리하여 저장하는 것 물리적으로 분리된 데이터 파일에 저장되어 입력/수정/삭제/조회 성능이 향상되고, 독립적 관리가 가능 조회의 범위를 줄이는 효과가 잇어 성능이 향상됨 RANGE PARTITION 값의 범위를 기준으로 파티션을 나눠 저장하는 방법 ex. 매출액이 50000이상인 레코드와 미만인 레코드를 별도로 저장 LIST PARTITION 특정 값을 기준으로 분할 ex. 특정 값이 100일 때와 250일때 각각 다른 데이터파일에 저장 HASH PARTITION 데이터베이스 관리 시스템이 자체적으로 해시함수를 사용해 분할하고 관리하는 방식 옵티마이저 SQL 실행계획을 수립하고, SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어 같은 SQL문이..
썸네일 [SQLD 자격증] 2과목 | WINDOW 함수 전체 설명 & 문제풀이 WINDOW 함수 레코드(행) 사이의 관계를 쉽게 정의하기 위한 함수 ex) 매장이 위치한 지역별로 판매량 1위를 차지하는 매뉴명을 알고싶을 때 사용 SELECT WINDOW_FUNCTION ( ARGUMENTS ) OVER ( [PARTITION BY 컬럼명] [ORDER BY 컬럼명] [WINDOWING] ) FROM 테이블명 ; WINDOW_FUNCTION : 윈도우 함수 그룹 내 집계함수 : COUNT, SUM, MIN, MAX, AVG 등 그룹 내 순위(RANK) 함수 RANK : 동일한 순위에 대해 동일한 순위를 부여한다., 동일한 순위를 하나의 건수로 계산하지 않는다. DENSE_RANK : 동일한 순위에 대해 동일한 순위를 부여한다., 동일한 순위는 하나의 건수로 계산한다. ROW_NUMB..
썸네일 [SQLD 자격증] 2과목 | 계층형 조회 설명 & 문제풀이 계층형 조회 : 트리형태의 데이터에 대해 조회를 수행하는 것 문제 정답 12/11/12 계층형 조회문제는 조회를 통해 어떻게 레코드가 재배치 되는지 파악하는 것이 중요 시작점 잡기 재배치 기준 문제 정답 13/12/13 계층형 조회문제는 조회를 통해 어떻게 레코드가 재배치 되는지 파악하는 것이 중요 시작점 잡기 재배치 기준 SQLD 목차 바로가기 SQLD 과목 목차 링크 1과목 데이터 모델링의 이해 (10문항 출제) 데이터 모델링의 이해 데이터모델링의 이해, 엔터티, 속성 관계, 식별자 데이터 모델과 성능 성능 데이터 모델링, 정규화, 반정규화 설명 & 문제풀이 SQLD 2과목 SQL 기본및 활용 (40문항 출제) SQL 기본 관계형 데이터베이스 개요 및 DCL(GRANT, REVOKE) 설명 & 문제풀..
썸네일 [SQLD 자격증] 2과목 | JOIN, UNION, MINUS, 서브쿼리 설명 & 문제풀이 JOIN 개념 (UNION, MINUS) 교집합 INNER JOIN LEFT JOIN RIGHT JOIN OUTER JOIN 합집합 UNION (ALL) 차집합 MINUS (oracle) = EXCEPT (SQL Server) 결합되는 대상간의 일치정도 EQUI 조인 ↔ non-EQUI 조인 조건구 없는 CROSS JOIN EQUI JOIN, non-EQUI JOIN EQUI JOIN 동일한 컬럼을 사용하여 두 릴레이션을 결합 ex. A.key = B.key non - EQUI JOIN 정확하게 일치하지 않는 컬럼들을 사용하여 두 릴레이션을 결합 = 을 사용하지 않음. ex. A.key , = B.key CROSS JOIN - key없이 JOIN하면 2개의 테이블에 대해 카테시안 곱 발생 SubQuery..
썸네일 [SQLD 자격증] 2과목 | GROUP 함수, GROUPING 설명 & 문제풀이 GROUP 함수 GROUP BY SELECT 성별, 연령대, count(회원코드) FROM C_INFO GROUP BY 성별, 연령대; GROUP BY 성별, 연령 성별*연령 별 합계 GROUP BY : ROLLUP SELECT 성별, 연령, SUM(결제금액) FROM 결제 GROUP BY ROLLUP(성별, 연령대) ORDER BY 성별, 연령; ROLLUP 부분합계와 전체합계 값을 보여준다. 인수의 순서에 영향을 받는다. GROUP BY ROLLUP 성별, 연령 성별*연령 별 합계 성별 별 합계 전체 합계 GROUP BY : CUBE SELECT 성별, 연령, SUM(결제금액) FROM 결제 GROUP BY CUBE(성별, 연령대); GROUP BY CUBE (성별, 연령) 그룹화 될 수 있는 모든 ..
썸네일 [SQLD 자격증] 2과목 | NULL 함수, GROUP BY, HAVING, ROWNUM & ROWID 설명 & 문제풀이 SELECT 문 기본구조 - NULL 관련 함수 NULL 관련 함수 설명 NVL(col1, 대체값) NULL이면 다른 값으로 바꿔주는 함수 NVL( col1, 100 ) >> col1이 NULL이면 , 100으로 바꿔줌 NVL2(col1, 결과1, 결과2) col1 이 NULL일 때, NVL( col1, ‘F’, ‘T’ ) >> ‘T’ 출력 col1 이 NOT NULL일때 ‘F’ 출력 NULLIF(v1, v2) v1 == v2 면 NULL v1 != v2 면 v1 을 출력 COALESCE(v1, v2, v3... vn) NULL이 아닌 최초의 값을 반환 v1 IS NOT NULL 이면 v1 v1 IS NULL 이면 v2에 대해서도 NULL값 판단함 문제 정답 NVL NVL or ISNULL v1, v2 ..
썸네일 [SQLD 자격증] 2과목 | WHERE 절 연산자, 문자열 연산자, 임시테이블, VIEW 설명 & 문제풀이 WHERE 조건문 연산자 종류 SELECT 컬럼명 등 FROM 테이블명 WHERE 조건문 ORDER BY 컬럼명 WHERE 조건문 연산자 설명 IN(x, y, z, ...) x, y, z, .. 등으로 구성된 목록 내 값 중 어느 하나라도 일치하면 된다. NOT IN(x, y, z, ...) x, y, z, .. 등으로 구성된 목록 내 값 중 어느 하나라도 일치하면 안된다. IS NULL NULL 인지 판단, NULL일 경우 TRUE IS NOT NULL NULL 이 아닌지 판단, NULL 이 아닐 경우 TRUE BETWEEN a AND b a와 b 사이이에 값이 있는지 기타 비교 연산자 (=, >, >=,
썸네일 [SQLD 자격증] 2과목 | DML(SELECT) DECODE, CASE WHEN, ORDER BY DECODE, CASE WHEN 명령어 설명 예시 DECODE IF 문 DECODE (값1, 값2, 참일 때 출력값, 거짓일 때 출력값) DECODE(col1, KATE, '본인', '다른사람') CASE WHEN 길어진 IF 문 CASE WHEN 조건 THEN 조건이 참일때 결과 ELSE, 거짓일때 결과 END CASE WHEN 조건문1 THEN 결과값1 WHEN 조건문2 THEN 결과값2 ... WHEN 조건문 n THEN 결과값 n ELSE 결과값 n+1 END CASE WHEN col1 < 10 THEN '한자리 수' WHEN col1 BETWEEN 10 AND 99 THEN '두자리 수' ELSE '세자리수' END (단, col1에는 정수형으로 1000미만의 숫자만 들어가 있음을 가장함) 문제..