정보처리기사

[정보처리기사 실기 오답노트] - SQL

sson-coding 2025. 11. 11. 18:40

2024-3-16

( ) 무결성은 기본 테이블의 기본키를 구성하는 어떤 속성도
Null 값이나 중복값을 가질 수 없다는 규정이다.
  • 내 답 : 참조
  • 정답 : 개체

핵심 개념

  • 개체 무결성 : 기본키는 NULL 불가, 중복 불가
  • 참조 무결성 : 외래키는 참조 테이블의 기본키 값만 가능
  • 도메인 무결성 : 속성 값은 정의된 도메인 범위 내

2024-1-9

아래 내용의 각각의 설명에 대한 답을 작성하시오.

(1) 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 
조건을 만족하는 튜플만 반환한다.

(2) 조건이 정확하게 '=' 등호로 일치하는 결과를 반환한다. 

(3) ( (2) ) 조인에서 조인에 참여한 속성이 
두 번 나오지 않도록 중복된 속성을 제거한 결과를 반환한다.
  • 내 답 : 자연 동등 세타
  • 정답 : 세타 동등 자연

핵심 개념

  • 세타 조인
    • 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 튜플만 반환
  • 동등 조인
    • = 조건으로 일치하는 조인
  • 자연 조인
    • 동등 조인에서 중복된 속성을 제거

2022-3-7

CREATE TABLE 부서 (
  부서코드 INT PRIMARY KEY,
  부서명 VARCHAR(20)
);

CREATE TABLE 직원 (
  직원코드 INT PRIMARY KEY,
  직원명 VARCHAR(20),
  부서코드 INT,
  FOREIGN KEY (부서코드) REFERENCES 부서(부서코드)
  ON DELETE CASCADE
);

1. SELECT DISTINCT COUNT(부서코드) FROM 직원 WHERE 부서코드 = 20;
2. DELETE FROM 부서 WHERE 부서코드 = 20;
   SELECT DISTINCT COUNT(부서코드) FROM 직원;
  • 정답 : 1) 3 , 2) 4

풀이

  1. 직원 테이블에서 부서코드=20 인 사람의 수를 카운트
    1. 부서코드가 20 인 직원은 3명
    2. COUNT(부서코드) 는 단순히 행 수를 의미함
    3. DISTINCT 는 의미 없음 (부서코드는 동일하므로)
  2. 부서 테이블에서 부서코드=20 삭제
    1. ON DELETE CASCADE 설정 → 직원 테이블에서 부서코드=20 행 삭제

2022-3-12

  • 정답 : 200 , 3, 1

풀이

학과(DEPT) 학생 수
전기과 50명
전산과 100명
전자과 50명
1. SELECT DEPT FROM STUDENT;  
1. 모든 학생의 학과가 표시됨  
2. SELECT DISTINCT DEPT FROM STUDENT;  
1. 중복 제거  
2. 학과 종류는 3개  
3. SELECT COUNT(DISTINCT DEPT)  
FROM STUDENT  
WHERE DEPT = '전산과';  
1. 전산과만 남음 → 전산과의 DEPT 값은 모두 동일 → 1  

2022-2-3

다음은 <제품>(제품명, 단가, 제조사) 테이블을 대상으로 “H” 
제조사에서 생산한 제품들의 단가보다 높은 단가를 가진 
제품의 정보를 조회하는 <SQL문>이다.
괄호에 알맞은 답을 적어 <SQL문>을 완성하시오.

SELECT 제품명, 단가, 제조사
FROM 제품
WHERE 단가 > ( ) (SELECT 단가 FROM 제품 WHERE 제조사 = 'H');
  • 정답 : ALL

핵심개념

  • ALL : 모든 값보다 커야 함
  • ANY : 최소 하나의 값보다 크면 됨
  • IN : 여러 값 중 하나라도 일치하는지 확인

2022-1-4

다음 <성적> 테이블에서 이름(name)과 점수(score)를 조회하되,
점수를 기준으로 내림차순 정렬하여 조회하는 <SQL문>이다.
괄호 (①~③)에 알맞은 답을 써라.
name class score
정기찬 A 85
이영호 C 74
황정형 C 95
김지수 A 90
최은영 B 82
SELECT name, score
FROM 성적
(①) BY (②) (③)
  • 정답 : ORDER, score, DESC

핵심개념

용어 설명
ORDER BY 조회 결과를 정렬할 때 사용
ASC 오름차순 (기본값, 작은 값 → 큰 값)
DESC 내림차순 (큰 값 → 작은 값)

2021-2-3

데이터베이스의 상태 변화를 일으키는 
트랜잭션(Transaction)의 특성 중 
원자성(Atomicity) 에 대해 간략히 서술하시오.
  • 정답 : 원자성(Atomicity)은 트랜잭션의 연산이 데이터베이스에 모두 반영되거나 전혀 반영되지 않도록 보장하는 성질이다.

핵심개념

영어명 한글명 설명
1. Atomicity 원자성 트랜잭션의 모든 연산이 전부 수행되거나 전혀 수행되지 않아야 함. 일부만 반영되면 안 됨. (Commit 또는 Rollback)
2. Consistency 일관성 트랜잭션 수행 전후의 데이터베이스가 항상 일관된 상태를 유지해야 함. 제약 조건이 깨지면 안 됨.
3. Isolation 독립성(격리성, 순차성) 동시에 수행되는 트랜잭션이 서로 간섭하지 않도록 독립적으로 실행되어야 함.
4. Durability 영속성(지속성) 트랜잭션이 성공적으로 완료(Commit) 되면, 그 결과는 시스템 장애가 발생하더라도 영구적으로 반영되어야 함.

2021-2-10

다음은 <회원> 테이블에서 '이름'이 "이"로 시작하는 회원들을 
'가입일' 순으로 내림차순 정렬하는 <SQL문>이다.
괄호 (①, ②)에 들어갈 알맞은 답을 쓰시오.

SELECT * 
FROM 회원 
WHERE 이름 LIKE '( ① )' 
ORDER BY 가입일 ( ② );
  • 정답 : 이% , DESC

핵심개념

  • LIKE 연산자: 문자열 패턴 검색
    • '이%' → '이'로 시작하는 문자열
    • '%이' → '이'로 끝나는 문자열
    • '%이%' → '이'가 포함된 문자열
  • ORDER BY 컬럼명 DESC: 내림차순 정렬
  • ORDER BY 컬럼명 ASC: 오름차순 정렬 (기본값)

2020-4*5-4

데이터베이스 회복(Recovery) 기법 중 rollback 시 redo, undo가 
모두 실행되는 트랜잭션 처리 기법으로,
트랜잭션 수행 중에 갱신 결과를 DB에 즉시 반영한다.
데이터를 변경하면 로그 파일로 저장되며 모든 내용 수정 시 즉시 데이터베이스에 반영된다.
  • 정답 : 즉각 갱신 기법

핵심개념

  • 즉시 갱신 기법(Immediate Update)
    • 트랜잭션 수행 중 바로 DB에 반영
    • 장애 발생 시, redo(재실행)undo(취소) 모두 필요
    • 로그(redo/undo 로그)를 반드시 남겨 복구에 사용
    • 반대 개념: 지연 갱신 기법(Deferred Update) → 트랜잭션 완료(Commit) 후 DB 반영