정보처리기사 실기 문제 정리 - 7. SQL 응용

Cold Ui·2023년 7월 21일
0

정보처리기사 실기

목록 보기
7/12
post-thumbnail

7. SQL 응용

01. 데이터베이스 기본

기출 문제

  1. 1) 원자성은 하나라도 실패할 경우 전체가 취소되어야 하는 특성
    2) 격리성(또는 고립성)은 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가한 특성이다.
    • 원자성이란 트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되거나 모두 취소되어야 하는 성질이다.
    • 트랜잭션의 연산 전체가 성공 또는 실패(All or Noting)되어야 하는 성질이다.
  2. 트랜잭션의 Rollback이란 오류가 발생했을 때, 오류 이전의 특정 시점 상태로 되돌려주는 제어어
  3. 1) Redo
    2) Undo
  4. 로킹
    • 로킹은 같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법이다.
  5. 1) 200 2) 3 3) 1
  6. SELECT 학번, 이름
    FROM 학생
    WHERE 학년 IN (3, 4);
  7. 즉각 갱신 회복 기법
    • 트랜잭션 수행 중에 갱신 결과를 바로 DB에 반영하는 기법은 즉각 갱신 회복 기법
  8. CREATE INDEX IDX_NAME ON STUDENT(NAME);
  9. DLETE FROM 학생
    WHERE 이름='민수';
  10. 인덱스
    • 인덱스는 데이터베이스에서 <키값, 주소> 형태의 자료구조이다.
    • 데이터베이스 파일 구조에는 순차, 인덱스, 해싱 접근 방법이 있다.
  11. 스키마는 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
  12. 1) ALTER 2) ADD
  13. 1) ON 2) 학과
  14. 1) UPDATE 2) SET
  15. 1) "이%" 2) DESC
  16. 1) ORDER 2) SCORE 3) DESC
  17. 5
  18. GRANT는 관리자(DBA)가 사용자에게 데이터베이스에 대한 권한을 부여하는 명령어이다.
  19. NULL을 제외하고 4 출력됨
  20. 1) 3 2) 4

예상 문제

  1. 트랜잭션이란 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본단위이다.
  2. 1) 외부 2) 개념 3) 내부
  3. 인덱스란 데이터를 빠르게 찾을 수 있는 수단으로서 테이블에 대한 조회 속도를 높여 주는 자료 구조이다.
  4. CREATE INDEX 사번인덱스 ON 사원(사번);
  5. CREATE TABLE 사람 ( 이름 VARXHAR(10), 성별 CHAR(1) CHECK(성별 = 'M' or 성별 = 'F') );
  6. ALTER TABLE 사원 ADD 전화번호 VARCHAR(11);
  7. CREATE VIEW 사원뷰 AS SELECT 사번, 이름 FROM 사원 WHERE 성별 = 'M';
  8. SELECT DISTINCT 전공 FROM 학생;
  9. SELECT 학번 FROM 학생 WHERE 이름 LIKE '이%';
  10. SELECT 주소 FROM 학생 WHERE 주소 IS NOT NULL;
  11. SELECT * FROM 교수 WHERE 전공 IN ('컴퓨터공학', '전자공학');
  12. SELECT 이름 FROM 고객 WHERE 나이 BETWEEN 50 AND 59 AND 성별 = '남';
  13. SELECT 이름, 과목, 성적 FROM 성적 ORDER BY 성적 DEAC;
  14. SELECT 도서.책번호, 도서.책명, 도서가격.책번호, 도서가격.가격 FROM 도서 LEFT OUTER JOIN 도서가격 ON 도서.책번호 = 도서가격.책번호;
  15. 3
  16. INSERT INTO EMPLOYEE(NAME, AGE, SALARY) VALUES ('홍길동', 24, 300);
  17. DLETE FROM EMPLOYEE WHERE SALARY <= 300;
  18. GRANT UPDATE ON 학생 TO 장길산;

02. 응용 SQL 작성하기

기출 문제

  1. SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;
  2. SELECT 학과, COUNT(학과) AS 학과별튜플수 FROM 학생 GROUP BY 학과 ;
  3. 1
  4. ALL

예상 문제

  1. SELECT 부서, AVG(급여) AS 급여 FROM 급여 GROUP BY 부서;
  2. SELECT 부서, 직책, SUM(급여) AS 직책별 급여 FROM 급여 GROUP BY 부서, 직책;
  3. SELECT 이름 FROM 학생 GROUP BY 이름 HAVING AVG(성적) > 4.0;
  4. SELECT 학교명, 학년, SUM(인원) AS 인원 FROM 학교 GROUP BY ROLLUP(학교명, 학년)
  5. SELECT 이름, 점수, DENSE_RANK() OVER(ORDER BY 점수 DESC) AS 등수 FROM 학생;

03. SQL 활용 및 최적화

예상 문제

  1. 프로시저란 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합

  2. 사용자 정의 함수란 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL

  3. 트리거란 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할때마다 관련 작업이 자동으로 수행되는 절차형 SQL

  4. 옵티마이저
    - 옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심엔진이다.

    • 옵티마이저가 생성한 SQL 처리 경로를 실행계획이라고 부른다.

    단원 종합 문제

profile
안녕하세요. 차니의 개발 블로그 입니다!

0개의 댓글