자격증/SQLD

30회 기출 문제 오답노트

JWonK 2023. 3. 17. 19:38
728x90
반응형

◎ 반정규화에 대한 설명 중 부적절한 것은?

  • 데이터를 조회할 때 디스크 I/O 량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상될 때 수행한다.
  • 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 수행한다.
  • 반정규화를 적용할 때는 기본적으로 데이터 무결성이 깨질 가능성이 많이 있으므로 반드시 데이터 무결성을 보장할 수 있는 방법을 고려해야한다.
  • 반정규화 전에 테이블 추가(통계 테이블, 중복 테이블, 이력 테이블 추가)를 통해 반정규화를 회피한다.

→ 테이블 추가를 통해 반정규화를 적용할 수도 있다.

 

오류가 날 수 있는 SQL

SELECT A.COL1 (SELECT COL3 FROM SQLD_TABLE AS B WHERE A.COL1 = B.COL1) AS B_COL3 

FROM SQLD_TABLE2 AS A

WHERE A.COL2 > 10;

→ 위 SQL문은 오류가 발생한다. 그 이유는 (SELECT)단일 행 하위 질의에 2개 이상의 행이 리턴되므로 오류가 발생한다.

 

 

IN 절 안에 NULL이 있을 때

SELECT SUM(COL2) FROM TABLE A WHERE COL1 IN ('A', 'X', NULL);

→ IN 안에 NULL이 있다고 COL1이 NULL일 때 COL2 값을 계산하지는 않음. NULL은 IS NULL로 해야함

 

 

◎ SQL WHERE 절에 (WHERE 1 = 2)일 경우 False로 인식되어 아무것도 X

 

 

◎ Trigger에 대한 설명으로 가장 부적절한 것

  • DELETE ON TRIGGER의 경우 : OLD는 삭제 전 데이터를, NEW는 삭제 후 데이터를 나타낸다
  • 특정 테이블에 DML문이 수행되었을 때 자동으로 동작하도록 작성된 프로그램이다.
  • 테이블, 뷰에만 트리거를 작성할 수 있으며 데이터베이스 작업에는 정의할 수 없다.
  • UPDATE TRIGGER에서 :OLD에는 수정 전, :NEW에는 수정 후 값이 들어간다.

데이터베이스 작업에 정의할 수 있다.

 

 

TOP(n)과 같은 결과를 나타내는 것

  • TOP(n) WITH TIES일 경우 TOP()과 달리 중복되는 값을 가지는 것도 출력하므로 같게 나올 수 없음

[원본 SQL]

SELECT TOP(10) FIRST_NAME, JOB_ID FROM TABLE A ORDER BY SALARY;

 

[같은 SQL]

SELECT FIRST_NAME, JOB_ID FROM

(SELECT FIRST_NAME, JOB_ID FROM TABLE A ORDER BY SALARY)

WHERE ROWNUM <= 10;

 

 

 

◎ PRIOR

PRIOR 자식 = 부모 : (부모 -> 자식 : 순방향 전개)

PRIOR 부모 = 자식 : (자식 -> 부모 : 역방향 전개)

 

 

SQL Set Operation

집합 연산자 연산자의 의미
UNION 여러 개의 SQL문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 만든다.
UNION ALL 여러 개의 SQL문의 결과에 대한 합집합으로 중복된 행도 그대로 결과로 표시된다. 즉, 단순히 결과만 합쳐놓은 것이다. 일반적으로 여러 질의 결과가 상호 배타적일 때 많이 사용한다. 개별 SQL문의 결과가 서로 중복되지 않는 경우, UNION과 결과가 동일하다.
(결과의 정렬 순세어는 차이가 있을 수 있음)
INTERSECT 여러 개의 SQL문의 결과에 대한 교집합이다. 중복된 행은 하나의 행으로 만든다.
EXCEPT 앞의 SQL문의 결과에서 뒤의 SQL문의 결과에 대한 차집합이다. 중복된 행은 하나의 행으로 만든다. (일부 데이터베이스는 MINUS를 사용)

 

[보기]

대용량 데이터를 정렬하여 조인한다.

동등 조인, 비동등 조인에서 모두 사용가능하다.

각 테이블을 정렬한 후 조인한다.

 

→ Sort Merge Join

 

 

https://bangu4.tistory.com/83

 

[SQLD] 조인원리 NL join, Sort-Merge join, Hash Join

조인 수행원리에 대해 알아보자 조인수행의 방법으로 3가지가 있다. 1. Nested Loop - 루프를 돌며 두 테이블의 로우를 연결하는 형식 2. Sort-Merge - 참조할 인덱스가 없는 두테이블을 정렬하여, 순차

bangu4.tistory.com

 

 

Cross Join와 Natural Join에 대한 차이점에 대해서 가장 부적절한 것은?

  • Cross Join과 Natural Join은 Where 절에서 조건을 걸 수 없다. -> 조건 걸 수 있다.
  • Natural Join에서는 특정 Join 컬럼을 명시적으로 적을 수 없다.
  • Cross Join은 Join에 참여하는 테이블의 Join Key가 없을 경우 발생한다.
  • Natural Join에서 Join Key는 컬럼명으로 결정된다.

 

아래와 같이 PK 컬럼이 구성되어 있을 때 가장 적합한 파티셔닝 방법은?

특징 : 데이터의 양이 매우 많은 대용량 테이블이다. 데이터의 생성일자를 구분짓는 특정 컬럼이 없는 형태이다

List

 

 

 

데이터 타입을 변형하는 SQL 구문이다. SQL 구문을 완성하라

(ALTER) DEPT (TABLE) VARCHAR(30) NOT NULL;

 

 

 

 

PROCEDURE, TRIGGER에 대한 설명 

  • PROCEDURE, TRIGGER 모두 CREATE 명령어로 수행된다.
  • PROCEDURE, TRIGGER는 COMMIT, ROLLBACK 명령어를 사용할 수 없다.

 

본 문제들은 30회 기출 문제로 틀린 거 정리해봤다.

728x90
반응형

'자격증 > SQLD' 카테고리의 다른 글

SQL 기본 및 활용  (0) 2023.03.19
데이터 모델과 성능  (0) 2023.03.12
데이터 모델링의 이해  (0) 2023.03.10
데이터 베이스 - 데이터 모델링  (0) 2023.03.07