반응형

 

3과목 데이터베이스 구축 합격 전략

 

초심자에게 데이터베이스는 굉장히 생소하고 낯설긴 하지만 3과목은 나오는 문제들이 정형화되어 있기 때문에 정형화된 문제 유형들을 익히면 되려 고득점이 쉬운 과목이기도 합니다. 따라서 기출문제 위주의 학습이 가장 중요합니다.

 

SQL의 경우는 기본 문법들을 학습하는 것이 좋습니다. 실제 SQL 실행 결과를 묻는 문제들이 자주 나오기 때문에 예제로 연습하는 것도 필수입니다.

 

이 포스팅에서는 개정판 이후 기출문제를 분석하여 출제 빈도 순서대로 정리를 하였습니다. 가장 위에서부터 차례대로 공부해가며 개정판 기출문제를 풀어보고 선택지를 분석한다면 충분히 고득점을 낼 수 있습니다.

 

※ 주의: 이 글은 개정판 기출문제를 분석해서 정리를 한 글이지, 개념 설명을 해주는 글은 아닙니다. 개념 이해를 위한 설명글을 원하신다면 다른 자료를 따로 찾아보시는 게 좋습니다.

 

 

 

개정판 3과목 기출문제 압축 정리

 

1. SQL

 

출제 빈도: 회당 5문제 (21141, 52, 57, 58, 201,241, 42, 47, 57, 58, 59, 20344, 45, 53, 55, 20444, 47, 49, 51, 53)

출제 유형:

- 실제 테이블을 보여주고 SQL 실행결과를 묻는 문제가 자주 나옵니다.

- 테이블을 이용한 예제들을 많이 풀어보는 것이 좋습니다.

 

- SQL 분류

DDL (Data Definition Language): SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어 (CREATE, DROP, ALTER)

DML (Data Manipulation Language): 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용하는 언어 (SELECT, INSERT, DELETE, UPDATE)

DCL (Data Control Language): 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용하는 언어 (COMMIT, ROLLBACK, GRANT, REVOKE)

 

- SQL 명령어

ALTER 테이블에 대한 정의를 변경

DROP 스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거

           CASCADE 참조 무결성을 유지하기 위해 제거할 요소를 참조하는 다른 모든 개체를 함께 제거

           RESTRICTED 제거할 요소를 참조하는 다른 개체가 있는 경우 제거를 취소

 

SELECT 컬럼 선택

           DISTINCT 중복된 튜플이 있으면 그중 하나만 검색

FROM 테이블 선택

WHERE 조건에 맞는 튜플 선택

           LIKE 부분적으로 일치하는 글자가 있는 튜플만 검색

                      %김% 어느 위치든 이라는 글자를 포함

                      % ‘으로 시작하는 값

                      %김 으로 끝나는 값

           IS NULL NULL인 값을 검색

           IS NOT NULL NULL이 아닌 값을 검색

           ~ IN (값들) ~가 값들 중에 일치하는 값이 있는 것만 검색

           BETWEEN ~ And - ~사이에 해당하는 범위에 속한 값이 있는 것만 검색

 

UPDATE 테이블 선택

SET 속성명 = 데이터 값 선택된 튜플들의 해당 속성의 값을 데이터 값으로 변경

WHERE 조건에 맞는 튜플 선택

 

GRANT 권한을 부여

ON 대상이 되는 개체

TO 권한을 부여할 대상

REVOKE 권한을 회수

FROM 권한을 회수할 대상

 

 

 

 

2. 정규화

 

출제 빈도: 회당 2.5문제 (21 1 48, 55번, 20 1,2 44번, 46번, 20 3 41, 50번, 51번, 56번, 20 4회 45번, 56)

출제 유형:

- 각 정규형의 특징을 알고 있는지 묻는 문제가 출제됩니다. 특히 제1정규형과 보이스/코드 정규형이 자주 나옵니다.

- 정규화의 목적을 아는지 묻는 문제가 출제됩니다.

- 이행적 함수 종속 관계가 무엇인지 묻는 문제가 나옵니다.

- 실제 정규화를 실행한 결과인 테이블 예시를 보여주고 어떤 정규형인지 물어보는 문제도 나왔습니다.

 

제1정규형: 모든 도메인이 원자값으로만 되어 있다

제2정규형: 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족한다. (부분적 함수 종속 제거)

제3정규형: 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않는다. (이행적 함수 종속 제거)

보이스/코드 정규형(BCNF): 릴레이션에서 결정자가 모두 후보키이다. (결정자이면서 후보키가 아닌 것 제거

제4정규형: 릴레이션 R에 다치 종속 A->B가 성립하는 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족한다.

제5정규형: 모든 조인 종속이 릴레이션의 후보키를 통해서만 성립한다.

 

- 이행적 함수 종속 관계: A -> B 이고 B -> C 일 때, A -> C 를 만족하는 관계 

 

- 정규화 목적

데이터 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.

어떤 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.

데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.

효과적인 검색 알고리즘을 생성할 수 있다.

데이터 구조의 안정성 및 무결성을 유지한다.

데이터 모형의 단순화가 가능하다.

속성의 배열 상태 검증이 가능하다.

개체와 속성의 누락 여부 확인이 가능하다.

자료 검색과 추출의 효율성을 추구한다.

데이터 불일치 위험을 최소화한다.

 

 

3. 관계형 데이터 베이스

 

출제 빈도: 회당 1.75문제 (21144, 54, 201,253, 20342, 60, 20457, 59)

출제 유형: 카디널리티와 차수를 구하는 문제가 자주 나오는 편입니다.

 

릴레이션: 데이터들을 표의 형태로 표현한 것

스키마: 릴레이션에서 구조를 나타낸다. 가장 위에 있는 행.

튜플: 릴레이션을 구성하는 스키마를 제외한 각각의 행을 말한다. 튜플은 속성의 모임으로 구성된다. 파일 구조에서 레코드와 같은 의미이다. 튜플의 수를 카디널리티라고 한다. 한 릴레이션에 포함된 튜플들은 모두 상이하다.

속성: 데이터베이스를 구성하는 가장 작은 논리적 단위이다. 개체의 특성을 기술한다. 속성의 수를 차수라고 한다.

도메인: 하나의 속성이 가질 수 있는 같은 타입의 모든 값의 집합으로 각 속성의 도메인은 원자 값을 갖는다.

 

 

4. 관계대수

 

출제 빈도: 회당 1.25문제 (21151, 201,254, 20352, 57, 20450)

출제 유형: 연산 기호를 자주 물어봅니다. 실제 릴레이션을 주고 연산 수행 결과를 묻는 문제도 나옵니다.

 

- 관계대수 설명

주어진 릴레이션 조작을 위한 연산의 집합이다.

질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.

 

- 순수 관계 연산자:

Select (σ) : 조건을 만족하는 릴레이션의 수평적 부분집합으로 구성한다.

Project () : 조건을 만족하는 릴레이션의 수직적 부분집합으로 구성한다.

Join () : Cartesian Product(교차곱)을 수행한 다음 Select를 수행한 것과 같다.

Division (÷) : 피연산자 릴레이션이 가진 속성을 제외한 속성만을 구하는 연산이다.

 

- 일반 집합 연산자:

UNION (합집합, U) : 두 릴레이션에 존재하는 튜플의 합집합을 구한다.

INTERSECTION (교집합, ) : 두 릴레이션에 존재하는 튜플의 교집합을 구한다.

DIFFERENCE (차집합, -) : 두 릴레이션의 차집합을 구한다.

CATERSIAN PRODUCT (교차곱, X) : 두 릴레이션에 존재하는 튜플들의 순서쌍을 구한다.

 

 

5. 트랜잭션

 

출제 빈도: 회당 1.25문제 (21159, 201,260, 20343, 20441, 42)
출제 유형: 정의를 주고 용어를 묻는 문제가 나옵니다.

 

원자성 (atomicity): 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. commitrollback 명령어에 의해 보장받는다.

commit: 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성 상태를 가지기 위해 변경된 모든 내용을 데이터베이스에 반영해야 하는데, 이때 사용하는 명령어

rollback: 아직 commit 되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어

회복 (recovery): 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업

CRUD 분석: 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 것

 

 

 

 

 

 

6. 병행제어의 로킹 단위

 

출제 빈도: 회당 1문제 (21146, 201,251, 20346, 20452)

출제 유형: 로킹 단위에 대한 설명으로 옳지 않은 것을 묻습니다.

 

데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.

한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 한다.

로킹 단위가 작아지면 로킹 오버헤드가 증가한다.

로킹 단위가 작아지면 병행성 수준이 높아진다.

로킹 단위가 작아지면 데이터베이스 공유도가 증가한다.

 

 

7.

 

출제 빈도: 회당 0.75문제 (201,243, 56, 20448)

 

후보키: 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재한다. 후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시킨다.

기본키: 후보키 중에서 특별히 선정된 주키로 중복된 값을 가질 수 없고, NULL값을 가질 수 없다.

대체키: 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미한다.

슈퍼키: 릴레이션에 있는 모든 튜플에 대해서 유일성은 만족시키지만, 최소성은 만족시키지 못한다.

외래키: 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다.

 

 

8. E-R 다이어그램 표기법

 

출제 빈도: 회당 0.75문제 (21160, 201,250, 20446)

출제 유형: 용어와 도형을 짝짓는 문제가 나옵니다.

 

개체 타입 - 사각형

속성 타원

기본키 속성 밑줄 타원

개체 타입과 속성을 연결

관계 타입 - 마름모

 

 

9. (VIEW)에 대한 설명

 

출제 빈도: 회당 0.75문제 (21147, 201,252, 20454)

출제 유형: 뷰에 대한 설명으로 옳은 것, 옳지 않은 것을 묻습니다. 장단점을 구분하는 문제도 나옵니다.

 

DBA는 보안 측면에서 뷰를 활용할 수 있다. (데이터 보안 용이)

사용자 데이터 관리에 용이하다.

뷰 위에 또 다른 뷰를 정의할 수 있다.

뷰에 대한 삽입, 갱신, 삭제 연산 시 제약 사항이 따른다. (단점)

뷰는 CREATE 문을 사용하여 정의한다.

뷰를 제거할 때에는 DROP 문을 사용한다.

뷰는 데이터의 논리적 독립성을 제공한다.

독립적인 인덱스를 가질 수 없다. (단점)

뷰의 정의를 변경할 수 없다. (단점)

뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거된다.

 

 

10. 무결성

 

출제 빈도: 회당 0.75문제 (21149, 201,245, 20347)

출제 유형: 설명을 주고 어떤 무결성인지 묻는 문제가 나옵니다.

 

개체 무결성: 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복 값을 가질 수 없다

도메인 무결성: 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다

참조 무결성: 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다

사용자 정의 무결성: 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다

 

 

11. 데이터 베이스 설계 순서

 

출제 빈도: 회당 0.75문제 (21143, 201,249, 20458)

출제 유형: 각 설계 단계에서 어떤 작업을 하는지를 묻는 문제가 나옵니다.

 

- 각 설계 단계

요구 조건 분석: 요구 조건 명세서 작성

개념적 설계: 개념 스키마, 트랜잭션 모델링, E-R 모델

논리적 설계: 목표 DBMS에 맞는 논리적 스키마 설계, 트랜잭션 인터페이스 설계, 스키마의 평가 및 정제

물리적 설계: 목표 DBMS에 맞는 물리적 구조의 데이터로 변환

저장 레코드 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계

구현: 목표 DBMSDDL로 데이터베이스 생성, 트랜잭션 작성

 

 

 

 

12. 이상 (anomaly)

 

출제 빈도: 회당 0.5문제 (21153, 20359)

 

릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

정규화를 거치지 않아 발생하게 되는 이상 현상의 종류

삽입 이상: 릴레이션에서 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들도 함께 삽입되는 현상

갱신 이상: 릴레이션에서 튜플에 있는 속성 값을 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

삭제 이상: 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄 삭제 현상입니다.

 

 

13. 개념 스키마

 

출제 빈도: 회당 0.5문제 (21 1 42번, 20 4 31)

 

물리적 저장 장치의 입장에서 본 데이터베이스 구조로서 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다

데이터 베이스 전체를 정의한 것으로 데이터 개체,관계, 제약조건, 접근권한, 무결성 규칙 등을 명세한다.

 

 

14. 분산 데이터베이스 목표

 

출제 빈도: 회당 0.5문제 (201,255, 20349)

출제 유형: 특징을 설명하고 어떤 투명성인지 묻거나, 네 가지 해당 사항이 아닌 것을 고르는 문제가 나옵니다.

 

위치(Location) 투명성: 액세스 하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스 할 수 있다.

중복(Replication) 투명성: 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.

병행(Concurrency) 투명성: 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.

장애(Failure) 투명성: 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다.

 

 

15. 그 외 출제된 문제들

 

* 시스템 카탈로그 (21150)

시스템이 자동으로 갱신한다.

데이터베이스에 포함되는 데이터 객체에 대한 정의나 명세에 대한 정보를 유지 관리한다.

DBMS가 스스로 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다.

카탈로그에 저장된 정보를 메타 데이터라고도 한다.

 

* 반정규화 (20443)

정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

 

* 반정규화 유형

테이블 통합

테이블 분할

중복 테이블 추가: 집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가 (201,240)

중복 속성 추가

 

* 트리거 (201,248)

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

 

* 인덱스 (21156)

데이터베이스 성능에 많은 영향을 주는 DBMS의 구성 요소로 테이블과 클러스터에 연관되어 독립적인 저장공간을 보유하며, 데이터베이스에 저장된 자료를 더욱 빠르게 조회하기 위해 사용한다.

 

 

 

다른 과목 보러 가기

 

1과목 - 소프트웨어 설계

2과목 - 소프트웨어 개발

4과목 - 프로그래밍 언어 활용

5과목 - 정보시스템 구축 관리

 

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기