일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- level4
- BFS
- 코딩테스트
- coding
- 파이썬
- lambda
- Level2
- sql
- mysql
- counter
- python
- 코딩
- Queue
- 프로그래머스
- time complexity
- lv4
- 코테
- import re
- 시간복잡도
- programmers
- CodingTest
- itertools
- 연습문제
- Stack
- coding test
- collections
- 데이터분석
- 조합
- join
- 완전탐색
- Today
- Total
ror_coding
[SQLD 오답] SQL 개발자 노랭이(자격검정 실전문제) + 기출 오답 정리 본문
1 과목 ) 데이터 모델링의 이해
제 1장 - 데이터 모델링의 이해
2. 데이터 모델링에 대한 설명으로 가장 적절하지 않은 것은?
- 업무 정보를 구성하는 기초가 되는 정보들을 일정한 표기법으로 표현.
- 분석된 모델로 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것.
- 데이터 모델링 자체로서 업무의 흐름을 설명하고 분석하는 부분에 의미를 가짐.
- 데이터베이스를 구축하는 목적으로 데이터 모델링을 수행하며 업무에 대한 설명은
별도의 표기법을 이용.
19. 데이터 모델링을 할 때 속성의 명칭을 부여하는 방법으로 가장 적절하지 않은 것은?
- 속성의 이름에 약어 사용 X.
- 속성의 이름에는 서술식 용어 사용 X.
- 데이터 모델링 대상에서 사용하는 용어도 있고 외부에서 사용하는 용어도 있어 중복이 있을 때, 가급적 해당 업무에서 자주 사용하는 이름을 이용.
- 직원 엔터티의 이름, 고객 엔터티의 이름과 같이 엔터티별로 동일한 속성명을 사용하여
데이터 모델의 일관성을 유지.=> 유일성을 유지.
20. 데이터 모델링의 관계에 대한 설명.
- 관계는 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있으나 ERD에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법을 사용.
- => ERD : 데이터모델링, 존재&행위 구분 X.
- => UML : 클래스다이어그램, 존재&행위 구분 O. -> 연관&의존 관계.
- UML 클래스아이어그램의 관계 중 연관관계와 의존관계가 있고 이것은 실선과 점선의 표기법으로 다르게 표현됨.
- 연관관계는 항상 이용하는 관계로 존재적 관계에 해당하고, 의존관계는 상대방 클래스의 행위에 의해 관계가 형성되는 행위적 관계에 해당.
- 연관관계는 소스코드에서 멤버변수로 선언하고 사용, 의존관계는 오퍼레이션에서 파라미터 등으로 이용.
제 2장 - 데이터 모델과 SQL
39. 아래 논리 데이터 모델을 3차 정규화까지 수행했을 때 도출되는 엔터티 수로 가장 적절한 것은? (하나의 대출자에 대해 하나의 대출번호로 여러 개의 도서 대출/반납을 관리하고자 한다고 가정하고, 엔터티 통합은 고려하지 않음)
44. 아래와 같이 수강지도 엔터티를 만들었을 때 이에 해당하는 정규형과 정규화의 대상으로 가장 적절한 것은?
- PK에 의해 반복되는 그룹 존재 X => 1차 정규형
- 지도교수명, 학과명이 학번에만 종속. => 2차 정규화 대상
(기출) 1. NULL에 대한 설명.
- NULL에는 연산자 사용 가능. (IS NULL)
- IE 표기법에서 NULL 허용 여부 알 수 없음.
- 바커 표기법에서 NULL 허용 여부 알 수 있음.
- NULL은 미지의 값으로 비교가 불가.
2 과목 ) SQL 기본 및 활용
제 1장 - SQL 기본
집계함수 WHERE에 사용 불가능. (쓰고 싶으면 WHERE절 서브쿼리에 써야 함.)
그룹함수 GROUP BY에 사용 불가능.
SELECT, HAVING 사용 가능.
29. 오류가 발생하는 SQL은?
(기출) 1. 아래의 SQL 결과로 알맞은 것은?
- 0건. => NOT IN은 ( )의 모든 값과 비교. ( )에 NULL이 있기 때문에 UNKNOWN.
(기출) 2. 아래의 SQL에 대한 설명으로 알맞은 것은?
Alice, Andy, Annie, Adam, alexander, amanda- Alice, Andy, Annie, Adam
=> LIKE는 대소 구분. ILIKE가 구분 X.
(기출) 3. 아래 SQL의 결과로 알맞은 것은?
- 10
=> 마지막 행의 COL1, COL2 값이 전부 NULL이지만 COUNT(*)하면 전체 행의 개수 출력하기 때문에 5.
(기출) 4. 단일행 함수에 대한 설명으로 적절하지 않은 것은?
- 중첩 사용 가능.
- 각 행에 개별적으로 적용됨.
- 여러 인자 넣을 수 있음.
GROUP BY에 사용할 수 없음.=> 사용 가능.
제 2장 - SQL 활용
다중행 비교 연산자 -> 단일도 가능
단일행 비교 연산자 -> 다중 안 됨
59. 아래에 대한 설명으로 가장 적절한 것은? (단, 시스템적으로 회원기본정보와 회원상세정보는 1:1, 양쪽 필수 관계임을 보장한다.)
회원ID 칼럼을 대상으로 (회원기본정보 EXCEPT 회원상세정보) 연산을 수행하면 회원상세정보가 등록되지 않은 회원 ID가 추출된다.=> 공집합 출력.회원ID 칼럼을 대상으로 (회원기본정보 UNION ALL회원상세정보) 연산을 수행한 결과의 건수는 회원기본정보의 전체건수와 동일하다.=> 다르다 (2배)- 회원ID 칼럼을 대상으로 (회원기본정보 INTERSECT 회원상세정보) 연산을 수행한 결과의 건수와 두 테이블을 회원ID로 JOIN 연산을 수행한 결과의 건수는 동일하다.
회원ID 칼럼을 대상으로 (회원기본정보 INTERSECT회원상세정보) 연산을 수행한 결과와 (회원기본정보 UNION 회원상세정보) 연산을 수행한 결과는 다르다.=> 같다.
63. 계층형 질의문에 대한 설명으로 가장 적절하지 않은 것은?
- SQL Server에서의 계층형 질의문은 CTE(Common Table Expression)를 재귀 호출함으로써 계층 구조를 전개한다.
- SQL Server에서의 계층형 질의문은 앵커 멤버를 실행하여 기본 결과 집합을 만들고 이후 재귀 멤버를 지속적으로 실행한다.
- 오라클의 계층형 질의문에서 WHERE 절은 모든 전개를 진행한 이후 필터 조건으로서 조건을 만족하는 데이터만을 추출하는 데 활용된다.
- 오라클의 계층형 질의문에서 PRIOR 키워드는
CONNECT BY 절에만 사용할 수 있으며'PRIOR 자식 = 부모' 형태로 사용하면 순방향 전개로 수행된다. => SELECT, WHERE 절도 사용 가능.
68. 아래에서 서브쿼리에 대한 설명으로 적절한 것을 모두 고른 것은?
- 서브쿼리는 단일 행(Single Row) 또는 복수 행(Multi Row) 비교 연산자와 함께 사용 가능.
- 서브쿼리는 SELECT / FROM / HAVING / ORDER BY 절 등에서 사용이 가능.
- 연관(Correlated) 서브쿼리는 서브쿼리가 메인쿼리 칼럼을 포함하고 있는 형태.
- 다중 칼럼 서브쿼리는 서브쿼리의 결과로 여러 개의 칼럼이 반환되어 메인쿼리의 조건과 동시에 비교되는 것을 의미하여 오라클 및
SQL Server 등의 DBMS 에서 사용 가능.=> SQL Server에서는 현재 지원하지 않는 기능.
70. 아래 SQL과 동일한 결과를 출력하는 SQL로 가장 적절하지 않은 것은?
71. 아래 SQL에 대한 설명으로 가장 적절한 것은?
이벤트 시작일자가 '2014.10.01'과 같거나 큰 이벤트를 대상으로 이메일이 발송된 기록이 있는 모든 회원을 추출하는 SQL.=> 이메일 발송이 한 번이라도 누락된 회원 추출.(ㄴ)을 제거하고 (ㄱ)의 EXISTS 연산자를 IN 연산자로 변경해도 결과 동일.=> 회원별 메일 발송 건수 계산 X.- (ㄷ)은 이벤트 시작일자가 '2014.10.01'과 같거나 큰 이벤트건수와 그 이벤트들을 기준으로 회원별 이메일 발송건수를 비교하는 것이다.
GROUP BY 및 집계 함수를 사용하지 않고 HAVING 절을 사용하였으므로 SQL이 실행되지 못하고 오류 발생. => GROUP BY 없이 HAVING을 사용해도 오류가 발생하지 않고 잘 작동된다.
73. 아래 SQL에 대한 설명으로 가장 적절하지 않은 것은?
- 위 SQL에는 다중행 연관 서브쿼리, 단일행 연관 서브쿼리, 인라인뷰가 사용됨.
- SELECT 절에 사용된 서브쿼리는 스칼라 서브쿼리라고도 하며, 이러한 형태의 서브쿼리는 JOIN으로 동일한 결과 추출 가능.
- FROM 절의 서브쿼리는 동적 뷰(Dynamic View)라고도 하며, SQL 문장 중 테이블 명이 올 수 있는 곳에서 사용 가능.
WHERE 절의 서브쿼리에 사원 테이블 검색 조건으로 입사년도 조건을 FROM 절의 서브쿼리와 동일하게 추가해야 원하는 결과 추출 가능.=> 이미 인라인뷰에서 2014년 필터링한 결과를 내서 쓰기 때문에 X.
(기출) 1. 서브쿼리에 대한 설명으로 적절하지 않은 것은?
1:M 에 관계일 때 M 레벨로 집계됨.서브쿼리의 컬럼은 메인 쿼리에서 사용할 수 없음.=> 사용할 수 있음.- 서브쿼리는 메인 쿼리의 WHERE절에 사용될 수 있음.
- 서브쿼리는 여럴 행을 반환할 수 있음.
(기출) 2. 다음 SQL 중 행의 수가 가장 많은 결과를 반환하는 것은?
=> 답은 2번. 9건이다.
제 3장 - 관리 구문
113. 관계형 데이터베이스에서 자식 테이블의 FK 데이터 생성시 부모 테이블에 PK가 없는 경우, 자식 테이블 데이터 입력을 허용하지 않는 참조동작(Referential Action)은?
- CASCADE : Master 삭제 시 Child 같이 삭제.
- RESTRICT : Child 테이블에 PK 값이 없는 경우만 Master 삭제 허용.
- AUTOMATIC : Master 테이블에 PK가 없는 경우 Master PK를 생성 후 Child 입력.
- DEPENDENT : Master 테이블에 PK가 존재할 때만 Child 입력 허용.
(기출) 1. CTAS에 대한 설명으로 적절하지 않은 것은?
- 데이터만 복사.
기존 테이블의 구조를 기반으로 함.(PK 안됨)- 일부 제약조건은 별도로 추가 가능.
- 제약조건이 모두 복사됨.
(기출) 2. VIEW에 대한 설명으로 적절하지 않은 것은?
- 조회 속도 높이기 위해 사용.
- 실제 데이터 저장 X.
- 다른 테이블의 데이터를 참조함.
컬럼 추가가 될 때 VIEW를 변경하지 않아도 응용프로그램에 영향을 미치지 않음.=> VIEW를 변경하지 않으면 응프에 영향을 끼칠 수 있음.
'Certificate > SQLD' 카테고리의 다른 글
[SQLD] 2과목 SQL 기본 및 활용 노트 정리 (0) | 2024.11.17 |
---|---|
[SQLD] 1과목 데이터 모델링의 이해 노트 정리 (0) | 2024.11.17 |