-
2023.03.19
[SQLD] SQL개발자 48회 시험 후기 및 시험 준비 팁 (2023년 3월 19일)
[SQLD] SQL개발자 48회 시험 후기 및 시험 준비 팁 (2023년 3월 19일) 들어가며 오늘 SQLD 48회 시험을 보고 왔다. 간단하게 시험 후기를 적어본다. 시험 후기 난이도가 그렇게 어렵지는 않았다. SQL 자격검정 실전문제(노랭이) 보다 난이도가 쉬웠지만, SQL에서 사용되는 함수의 특징을 잘 알고 있어야 풀 수 있는 문제들이 다수 출제되었다. 기본 함수의 사용법들을 모르고, 노랭이 문제집의 문제와 답만 달달 외웠더라면 절대로 풀 수 없는 문제가 많았다. 노랭이 문제집은 SQLD와 SQLP를 준비하는 사람들을 위한 문제집이기 때문에 문제의 난이도가 높을 수 밖에 없다. 따라서 너무 어렵다고 포기하지 말고, 그 문제에서 사용된 SQL 함수가 어떤 원리로 동작하는지 이해하는게 중요할 것 같았..
-
2022.08.28
[SQLD] SQL개발자 단원별 내용 정리 & 실전 문제
SQL개발자(SQLD) 단원별 내용 정리 & 실전 문제 SQL개발자(SQLD) 자격증을 준비하면서 블로그에 올렸었던 글들을 한 페이지에 정리해본다. 개념 정리 인터넷 블로그, 교재 등을 보면서 정리했던 내용들 과목명 장 링크 시험 개요 https://starrykss.tistory.com/1606 SQLD 소개 https://starrykss.tistory.com/1607 SQLD 주관식(단답형) 시험 대비 https://dev-astra.tistory.com/362 데이터 모델링의 이해 데이터의 모델링 https://starrykss.tistory.com/1612 데이터 모델과 성능 https://starrykss.tistory.com/1617 SQL 기본 및 활용 SQL 기본 https://starr..
-
2022.07.06
[SQLD] 실전 문제 : 고급 SQL 튜닝
SQLD 실전 문제 : 고급 SQL 튜닝 문제 1 Q. 아래 SQL은 v_주식선물구분 바인드 변수 입력에 따라 선택적으로 주식월별시세 또는 선물월별시세 테이블에 데이터를 입력한다. 실행 정보와 같이 바인드 변수를 입력하고 쿼리를 100번(SID=100)과 200번(SID=200) 세션에서 순차적으로 수행하였을 때 200번 세션의 상태로 올바른 것은? [SQL] INSERT /*+ APPEND */ ALL WHEN :v_주식선물구분 = '주식' THEN INTO 주식월별시세(종목코드, 거래일자, 종가) WHEN :v_주식선물구분 = '선물' THEN INTO 선물월별시세(종목코드, 거래일자, 종가) SELECT a.종목코드, :v_기준일자 AS 거래일자, AVG(a.종가) AS 종가 FROM 주식일별시세 ..
-
2022.07.06
[SQLD] 실전 문제 : 인덱스와 조인
SQLD 실전 문제 : 인덱스와 조인 문제 1 Q. 아래 SQL과 트레이스 결과를 보고, 최적의 튜닝 방안을 선택하시오. select o.주문번호, o.주문일시, o.고객번호, o.주문금액 from 주문 o inner join 고객 c on c.고객번호 = o.고객번호 where o.주문일시 = :ord_dt Call Count CPU Time Elapsed Time Disk Query Current Rows --------- --------- --------- ------------- ----- --------- --------- --------- Parse 1 0.000 0.028 0 0 0 0 Execute 1 0.000 0.000 0 0 0 0 Fetch 45939 9.234 12.642 1356..
-
2022.07.05
[SQLD] 실전 문제 : 옵티마이저 원리
SQLD 실전 문제 : 옵티마이저 원리 문제 1 Q. CBO(비용 기반 옵티마이저)는 쿼리 최적화 과정에 비용(Cost)를 계산한다. 다음 중 비용(Cost)과 가장 거리가 먼 것은? ① 비용이란 기본적으로, SQL 수행 과정에 수반될 것으로 예상되는 I/O 일량을 계산한 것이다. ② 데이터베이스 Call 발생량도 옵티마이저의 중요한 비용 요소이다. ③ 옵티마이저가 비용을 계산할 때, CPU 속도, 디스크 I/O 속도 등도 고려할 수 있다. ④ 최신 옵티마이저는 I/O에 CPU 연산 비용을 더해서 비용을 계산한다. 더보기 정답 : ② 해설 : 데이터베이스 Call은 옵티마이저가 수립한 실행 계획에 따라 SQL을 수행하는 과정에, 또는 옵티마이저에게 실행 계획을 수립해 달라고 요청하는 과정에 발생한다. 문..
-
2022.07.05
[SQLD] 실전 문제 : Lock과 트랜잭션 동시성 제어
SQLD 실전 문제 : Lock과 트랜잭션 동시성 제어 문제 1 Q. 공통 기술팀에서 개발표준 업무를 담당하는 고성능 씨가 Lock 경합에 의한 성능 저하를 최소화하기 위해 개발팀에 제시한 가이드 라인으로 가장 부적절한 것은? ① 트랜잭션의 원자성을 훼손하지 않는 선에서 트랜잭션올 가능한 짧게 정의할 것 ② 같은 데이터를 갱신하는 프로그램이 가급적 동시에 수행되지 않도록 트랜잭션을 설계할 것 ③ select 문장에 for update 문장을 사용하지 말 것 ④ 온라인 트랜잭션을 처리하는 DML 문장을 1순위로 튜닝함으로써 조건절에 맞는 최적의 인덱스를 제공할 것 더보기 정답 : ③ 해설 : for update 구문을 반드시 사용해야 할 경우가 있는데, 성능을 이유로 사용을 못하게 하면 데이터 정합성을 해..
-
2022.07.02
[SQLD] 실전 문제 : 아키텍처 기반 튜닝 원리
SQLD 실전 문제 : 아키텍처 기반 튜닝 원리 문제 1 Q. 다음 중 데이터베이스 연결(Conneection)과 관련된 설명으로 가장 부적절한 것은? ① 데이터베이스 서버와 클라이언트 간 연결 상태를 유지하면 서버 자원을 낭비하게 되므로 동시 사용자가 많은 OLTP 환경에서는 SQL 수행을 마치자마자 곧바로 연결(Connection)을 닫아주는 것이 바람직하다. ② 연결(Connection) 요청에 대한 부하는 쓰레드(Thread) 기반 아키텍처 보다 프로세스 기반 아키텍처에서 더 심하게 발생한다. ③ 전용 서버(Dedicated Server) 방식으로 오라클 데이터베이스에 접속하면 사용자가 데이터베이스 서버에 연결 요청을 할 때마다 서버 프로세스(또는 쓰레드)가 생성된다. ④ 공유 서버(Shared ..
-
2022.07.02
[SQLD] 실전 문제 : SQL 최적화 기본 원리
SQLD 실전 문제 : SQL 최적화 기본 원리 문제 1 Q. 아래 ( ㄱ )에 해당하는 내용을 작성하시오. 테이블 및 인덱스 등의 통계 정보를 활용하여 SQL문을 실행하는데 소요될 처리시간 및 CPU, I/O 자원량 등을 계산하여 가장 효율적일 것으로 예상되는 실행 계획을 선택하는 옵티마이저를 ( ㄱ ) 라 한다. 더보기 정답 : CBO / 비용기반 옵티마이저 / Cost Based Optimizer 문제 2 Q. 다음 중 실행 계획을 통해서 알 수 있는 정보로 가장 부적절한 것은? ① 액세스 기법 ② 질의 처리 예상 비용(Cost) ③ 조인 순서 ④ 실제 처리 건수 더보기 정답 : ④ 해설 : 실행 계획은 예상 정보이다. 실제 처리 건수는 트레이스 정보를 통해서 알 수 있다. ※ 실행 계획 정보의 구..
-
2022.07.02
[SQLD] 실전 문제 : SQL 활용 ②
SQLD 실전 문제 : SQL 활용 ② 문제 41 Q. 다음 중 아래의 테이블에서 SQL을 실행할 때 결과로 가장 적절한 것은? [SQL] SELECT CASE WHEN GROUPING(A.서비스ID) = 0 THEN A.서비스ID ELSE '합계' END AS 서비스ID, CASE WHEN GROUPING(B.가입일자) = 0 THEN NVL(B.가입일자, '-') ELSE '소계' END AS 가입일자, COUNT(B.회원번호) AS 가입건수 FROM 서비스 A LEFT OUTER JOIN 서비스가입 B ON (A.서비스ID = B.서비스ID AND B.가입일자 BETWEEN '2013-01-01' AND '2013-01-31') GROUP BY ROLLUP(A.서비스ID, B.가입일자); ① ② ③..
-
2022.06.30
[SQLD] 실전 문제 : SQL 활용 ①
SQLD 실전 문제 : SQL 활용 ① 문제 1 Q. 다음 중 순수 관계 연산자에 해당하지 않는 것은? ① SELECT ② UPDATE ③ JOIN ④ DIVIDE 더보기 정답 : ② 해설 : 순수 관계 연산자에는 SELECT, PROJECT, JOIN, DIVIDE 가 있다. ※ 순수 관계 연산자와 SQL 문장 비교 - SELECT 연산은 WHERE 절로 구현 - PROJECT 연산은 SELECT 절로 구현 - (NATURAL) JOIN 연산은 다양한 JOIN 기능으로 구현 - DIVIDE 연산은 현재 사용되지 않음. 문제 2 Q. 다음 중 아래 데이터 모델을 참고하여 설명에 맞게 올바르게 작성한 SQL 문장을 2개 고르시오. [설명] 우리는 매일 배치작업을 통하여 고객에게 추천할 컨텐츠를 생성하고 고..
-
2022.06.25
[SQLD] 실전 문제 : SQL 기본 ②
SQLD 실전 문제 : SQL 기본 ② 문제 41 Q. 다음 중, 아래와 같은 2건의 데이터 상황에서 SQL의 수행 결과로 가장 적합한 것은? (단, 이해를 돕기 위해 ↓는 줄바꿈을 의미 → 실제 저장값이 아님, CHR(10) : ASCII 값 → 줄바꿈을 의미) SELECT SUM(CC) FROM ( SELECT(LENGTH(C1) - LENGTH(REPLACE9C1, CHR(10))) + 1) CC FROM TAB 1 ) ① 2 ② 3 ③ 5 ④ 6 더보기 정답 : ③ 해설 : 라인수를 구하기 위해서 함수를 이용해서 작성한 SQL이다. - LENGTH : 문자열의 길이 반환하는 함수 - CHR : 주어진 ASCII 코드에 대한 문자를 반환하는 함수 (CHR(10) : 줄바꿈) - REPLACE : 문..
-
2022.06.25
[SQLD] 실전 문제 : SQL 기본 ①
1
SQLD 실전 문제 : SQL 기본 ① 문제 1 Q. 다음 중 데이터 제어어(DCL)에 해당하는 명령어는? ① INSERT ② RENAME ③ COMMIT ④ REVOKE 더보기 정답 : ④ 해설 : 데이터 제어어(DCL: Data Control Language)에는 GRANT, REVOKE가 있다. ※ SQL 문장들의 종류 - 데이터 조작어(DML: Data Manipulation Language) : SELECT, INSERT, UPDATE, DELETE - 데이터 정의어(DDL : Data Definition Language) : CREATE, ALTER, DROP, RENAME - 데이터 제어어(DCL : Data Control Language) : GRANT, REVOKE - 트랜잭션 제어어(T..
-
2022.06.23
[SQLD] 실전 문제 : 데이터 모델과 성능
SQLD 실전 문제 : 데이터 모델과 성능 문제 1 Q. 다음 중 성능 데이터 모델링에 대한 설명으로 가장 부적절한 것은? ① 성능이 저하된 결과를 대상으로 데이터 모델 보다는 문제 발생 시점의 SQL을 중심으로 집중하여 튜닝을 한다. ② 데이터의 증가가 빠를수록 성능 저하에 따른 성능 개선 비용은 증가한다. ③ 데이터 모델은 성능을 튜닝하면서 변경이 될 수 있는 특징이 있다. ④ 분석/설계 단계에서 성능을 고려한 데이터 모델링을 수행할 경우, 성능 저하에 따른 Rework 비용을 최소화 할 수 있는 기회를 가지게 된다. 더보기 정답 : ① 해설 : 문제 발생 시점의 SQL을 중심으로 집중 튜닝하는 것은 성능 데이터 모델링과 무관한 내용이다. ※ 성능 데이터 모델링이란? 데이터베이스 성능 향상을 목적으로..
-
2022.06.21
[SQLD] 실전 문제 : 데이터 모델링의 이해
SQLD 실전 문제 : 데이터 모델링의 이해 문제 1 Q. 모델링은 현실세계에 대해서 표현하는 것으로 이해할 수 있다. 다음 중 모델링의 특징으로 가장 부적절한 것은? ① 현실세계를 일정한 형식에 맞추어 표현하는 추상화의 의미를 가질 수 있음. ② 시스템 구현만을 위해 진행하는 사전단계의 작업으로서 데이터베이스 구축을 위한 사전작업의 의미가 있음. ③ 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 하는 단순화의 의미를 가지고 있음. ④ 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가짐. 더보기 정답 : ② 해설 : 모델링은 단지 시스템 구현만을 위해 수행하는 작업(Task)이 아니며, 시스템 구현을 포함한 업무 분석 및 업무 형상화를 하는 목적도 있다..