본문 바로가기
SQLD :

SQLD : 문제 풀이 개념 간단 정리 [3]

by 밍코딩코 2024. 5. 23.

 

시험 이틀전............
한번에 합격하길...................................


2. 도메인의 특징
- 릴레이션의 속성에 대한 데이터 타입과 크기
- 속성에 대해 NOT NULL 제약사항을 설정해 NULL 값을 허용하지 않음
- 속성에 값을 입력할 때 CHECK 기능을 사용해 입력 값 검사
- FK(외래키)는 참조 무결성을 준수하기 위해 사용
 
3. 슈퍼/서브타입 데이터 모델
- ONE TO ONE : 슈퍼타입과 서브타입을 개별 테이블로 도출 / 조인발생 - 관리 어려움
- PLUS : 슈퍼타입과 서브타입 테이블로 도출 / 조인발생 - 관리 어려움
- SINGLE : 슈퍼타입과 서브타입을 하나의 테이블로 도출 / 조인성능, 관리 GOOD / IO 성능 BAD
 
4. 데이터베이스 모델링의 특징
추상화 : 현실세계를 간략하게 표현
단순화 : 누구나 쉽게 이해할 수 있도록 표현
명확화 : 명확하게 의미 해석, 한가지 의미를 가짐
 
5.  주문릴레이션의 금액 속성에 의해 발생된 주문 합계 속성 : 파생속성
- 파생속성 : 다른 속성에 의해서 만들어지는 속성 / 합계, 평균
- 설계속성 : 데이터 모델링 과정에서 발생, 유일한 값을 부여 / 상품코드, 지점코드
 
11. HASH JOIN
- 해시 조인은 두개의 테이블 간에 조인을 할 때 범위검색이 아닌 동등조인에 적합한 방식
- 작은 테이블을 먼저 읽어서 HASH AREA에 해시 테이블을 생성
- 수행 빈도가 낮고 수행시간이 오래 걸리는 대용량 테이블에 대한 조인을 할때 유용
-- 온라인 트랜잭션 처리(OLTP)에는 해시조인 X / Nested Loop이 유용 - 적은 데이터 조인 GOOD
 
12. JOIN
- Nested Loop Join은 OLTP 시스템 데이터를 조인할 때 먼저 나오는 테이블의 선택도가 낮은 테이블을 참조하는것이 유리
- Sort Merge Join은 해당 테이블의 인덱스가 없을 때 수행 / 테이블을 정렬 SORT 한 후 테이블 병합 MERGE
- Hash Join 은 Nested Loop, Sort Merge Join 보다 성능 GOOD
 
17. 
NVL : NVL(1, 2) 은 1이 NULL이면 2, 1이 NULL이 아니면 1
NVL2 : NVL2(1, 2, 3)은 1이 NULL이 아니면 2, 1이 NULL이면 3
NULLIF : NULLIF(1, 2)은 1,2가 같으면 NULL, 같지 않으면 1
COALESCE : COALESCE(NULL, 2, 3)은 처음부터 순서대로 체크 /  NULL이 아닌값이 나오면 그 값을 반환 / 2 반환
DECODE(1, 2, 3, 4) : 1 = 2 이면 3 / 1이 2랑 다르면 4


 
24. PL/SQL
- 변수, 상수 등을 사용하여 SQL 문장을 실행할 때 WHERE 절의 조건 등으로 대입
- Procedure, User Defined Function, Trigger 객체를 작성 가능
- Procedure 내부에 작성된 절차적 코드는 PL/SQL 엔진이 처리 / SQL 문장은 SQL 실행기가 처리
- 구조 : BEGIN ~ END 는 필수 / EXCEPTION 은 선택
 
29.
SELECT COUNT(*)
FROM TEST29_1 A
WHERE A.COL NOT IN (SELECT COL FROM TEST29_2)
- NOT IN 결과 중 NULL이 포함되면 데이터가 출력되지 않다.
- IN : OR 조건 / NOT IN : AND 조건
 
32. WHERE (COL1, COL2) IN ((10000, 'ABC')) 이면 COL1이 10000이고 COL2가 ABC 둘다 만족하는 행만 출력
 
36. 실행계획 순서
- 실행계획 : 요구한 데이터를 추출하기 위해 DBMS가 차례로 수행하는 Access 과정
- 순서
1) 위에서 아래로 읽어 내려가면서 제일 먼저 읽을 스텝을 찾는다
2) 내려가는 과정에 같은 들여 쓰기가 존재한다면 위 -> 아래 순으로 읽는다
3) 읽고자 하는 스텝보다 들여 쓰기가 된 하위스텝이 존재하면, 가장 안쪽으로 들여쓰기 된 스텝을 시작으로 상위 스텝으로 읽는다.
 
38. UNIQUE INDEX SCAN
[TEST38]
KEY1(PK)
KET2(PK)
COL1
COL2
COL3
- UNIQUE INDEX SCAN을 하려면 KEY1과 KEY2가 모두 사용되어야함
- 키가 한번만 사용되면 UNIQUE SCAN이 되지 않음
 
39. 윈도우 함수
FIRST_VALUE : 가장 처음에 나오는 값을 구함
LAST_VALUE : 가장 나중에 나오는 값을 구함
LAG : 이전에 행
LEAD : 특정 위치의 행, 기본 값 1
 
40. ORDER BY로 사용할 수 없는 것
SELECT JOB, COUNT(*) AS ROWCNT
FROM TEST40 GROUP BY JOB;
- ORDER BY 3는 사용 불가. SELECT 구에 2개(JOB, ROWCNT)의 컬럼 밖에없음. 3번째 컬럼이 없음
 
41. 트랜잭션의 특징
- 원자성 : 트랜잭션이 모두 반영되거나, 전혀 반영되지 않아야함
- 일관성 : 트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 함
- 고립성 : 둘 이상의 트랜잭션이 동시 병행 실행되고 있을 때, 다른 트랜잭션 연산에 끼어들 수 없음
- 지속성 : 트랜잭션이 성공적으로 완료되면, 결과는 영구적으로 반영되어야 함


44. A테이블 B테이블이 있을때
1) B테이블을 기준으로 A테이블 값들 교차곱
2) B테이블 값 합계
- GROUPING SETS(B.GRADE, (B.GRADE, A.STUDENTNO))
 
45. 

C1C2
10100
10200
10NULL
20100
20NULL
20200

 
[RESULT]

C1C2
10200
10100
10NULL
20200
20100
20NULL

 
- 결과처럼 출력하기 위한 SQL문 작성
SELECT C1, C2
FROM SQLD_02
ORDER BY C1, C2 DESC NULLS LAST - NULL 값을 마지막에 정렬함
 
49. NTITLE(3) : 데이터들을 3등분 하겠다는 의미 8개의 데이터면 3, 3, 2로 나눔
 
50. RANGE : 현재 행의 데이터를 기준으로 앞뒤 데이터의 범위를 표시

'SQLD :' 카테고리의 다른 글

SQLD : 문제 풀이 개념 간단 정리 [2]  (6) 2024.05.22
SQLD : 문제 풀이 개념 간단 정리 [1]  (4) 2024.05.19