정보처리기사 필기

정보처리기사 22_04_24 필기 [3과목]

ITsubin 2023. 5. 15. 23:16

[ 3과목:데이터베이스 구축]


41. 다음 조건을 모두 만족하는 정규형은?

- 테이블 R에 속한 모든 도메인이 원자값만으로 구성되어 있다.
- 테이블 R에서 키가 아닌 모든 필드가 키에 대해 함수적으로 종속되며, 키의 부분 집합이 결정자가 되는 부분 종속이 존재하지 않는다.
- 테이블 R에 존재하는 모든 함수적 종속에서 결정자가 후보키이다.

    ① BCNF

    ② 제1정규형

    ③ 제2정규형

    ④ 제3정규형

 

정규화(Normalization)은 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정입니다. 정규화는 아래의 목적을 가집니다.

1) 데이터 구조의 안정성 최대화
2) 중복 데이터의 최소화

3) 수정 및 삭제 시 이상 현성 최소화

4) 테이블 불일치 위험 간소화

 

정규화 과정은 아래와 같습니다. [ 도-부-이-결-다-조 ]


42. 데이터베이스의 트랜잭션 성질들 중에서 다음 설명에 해당 하는 것은?

트랜잭션의 모든 연산들이 정상적으로 수행 완료되거나 아니면 전혀 어떠한 연산도 수행되지 않은 원래 상태가 되도록 해야 한다.

    ① Atomicity

    ② Consistency

    ③ Isolation

    ④ Durability

 

트랜잭션(Transaction)이란 하나의 논리적 기능을 수행하기 위한 작업 단위로, 데이터베이스에서 일어나는 연산의 집합입니다.

 

트랜잭션의 특성(성질)은 아래와 같습니다.

1) 원자성(Atomicity) : 완전하게 수행이 완료되지 않으면 전혀 수행되지 않아야 함. (중간에 오류 발생 시 취소되어야 함)
2) 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후가 같아야 함.

3) 격리성/고립성(Consistency) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함.

4) 영속성/지속성(Durability) : 트랜잭션의 완료 결과가 데이터베이스에 영구이 기억되어야 함.


43. 분산 데이터베이스 시스템과 관련한 설명으로 틀린 것은?

    ① 물리적으로 분산된 데이터베이스 시스템을 논리적으로 하나의 데이터베이스 시스템처럼 사용할 수 있도록 한 것이다.

    ② 물리적으로 분산되어 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터(Local Computer)를 분산 처리기(Distributed Processor)라고 한다.

    ③ 분산 데이터베이스 시스템을 위한 통신 네트워크 구조가 데이터 통신에 영향을 주므로 효율적으로 설계해야 한다.

    ④ 데이터베이스가 분산되어 있음을 사용자가 인식할 수 있도록 분산 투명성(Distribution Transparency)을 배제해야 한다.

 

분산 데이터베이스란 네트워크를 통해 연결된 여러 개의 컴퓨터에 데이터가 분산된 데이터베이스를 말하며,

데이터 처리와 비용이 큰 곳에 별도의 데이터베이스 서버를 확충하는 것입니다.

 

분산 데이터베이스 시스템의 구성 요소는 [ 분산 처리기 / 분산 데이터베이스 / 통신 네트워크 ]입니다.

 

분산 데이터베이스의 목표는 아래와 같습니다.

1) 위치 투명성(Location Transparency)

    : 하드웨어와 소프트웨어의 물리적 위치를 사용자가 알 필요가 없다.

2) 중복(복제) 투명성(Replication Transparency)

    : 사용자에게 통지할 필요 없이 시스템 안의 파일,자원의 부가적 복사를 자유롭게 할 수 있다.

3) 병행 투명성(Concurrency Transparency)

    : 다중 사용자들이 자원들을 자동으로 공유할 수 있다.

4) 장애 투명성(Failure Transparency)

    : 사용자들은 어느 위치의 시스템에 장애가 발생했는지 알 필요가 없다.


44. 다음 테이블을 보고 강남지점의 판매량이 많은 제품부터 출력되도록 할 때 다음 중 가장 적절한 SQL 구문은? (단, 출력은 제품명과 판매량이 출력되도록 한다.)

< 푸드 > 테이블
지점명 제품명 판매량
강남지점 비빔밥 500
강북지점 도시락 300
강남지점 도시락 200
강남지점 미역국 550
수원지점 비빔밥 600
인천지점 비빔밥 800
강남지점 잡채밥 250

    ① SELECT 제품명, 판매량 FROM 푸드 ORDER BY 판매량 ASC;

    ② SELECT 제품명, 판매량 FROM 푸드 ORDER BY 판매량 DESC;

    ③ SELECT 제품명, 판매량 FROM 푸드 WHERE 지점명 = '강남지점' ORDER BY 판매량 ASC;

    ④ SELECT 제품명, 판매량 FROM 푸드 WHERE 지점명 = '강남지점' ORDER BY 판매량 DESC;

 

1) "제품"을 출력하는 것이므로 " SELECT 제품명 "

 

2) 푸드 테이블의 판매량으로 정렬해야 하므로 " 판매량 FROM 푸드 "

 

3) 강남지점을 지정했으므로 " WHERE 지점명 = '강남지점' "

 

4) 판매량이 많은 제품부터 출력 => 정렬(ORDER BY)로 판매량을 내림차순(DESC), " ORDER BY 판매량 DESC "

 

=> SELECT 제품명 판매량 FROM 푸드 WHERE 지점명 = '강남지점' ORDER BY 판매량 DESC


45. 데이터베이스의 인덱스와 관련한 설명으로 틀린 것은?

    ① 문헌의 색인, 사전과 같이 데이터를 쉽고 빠르게 찾을 수 있도록 만든 데이터 구조이다.

    ② 테이블에 붙여진 색인으로 데이터 검색 시 처리 속도 향상에 도움이 된다.

    ③ 인덱스의 추가, 삭제 명령어는 각각 ADD, DELETE이다.

    ④ 대부분의 데이터베이스에서 테이블을 삭제하면 인덱스도 같이 삭제된다.

 

DB의 인덱스는 레코드를 빠르게 접근할 수 있도록 사용하는, 테이블에 붙은 색인을 말합니다.

대부분의 DB는 테이블을 삭제하면 인덱스도 같이 삭제됩니다.

 

데이터베이스의 "물리적" 구조와 밀접한 관계가 있으며,

레코드의 삽입/삭제가 자주 발생하는 경우에는 인덱스의 개수를 최소화하는 것이 효율적입니다.

 

인덱스의 생성과 삭제는 [ CREATE / DROP ] 명령어를 사용합니다.


46. 물리적 데이터베이스 구조의 기본 데이터 단위인 저장 레코드의 양식을 설계할 때 고려 사항이 아닌 것은?

    ① 데이터 타입

    ② 데이터 값의 분포

    ③ 트랜잭션 모델링

    ④ 접근 빈도

 

데이터베이스의 설계 단계는 아래 5단계로 이뤄집니다. (요-개-논-물-구)

1) 요구조건 분석
    : 요구조건 수집 및 명세서 작성

2) 개념적 설계

    : 개념 스키마/트랜잭션 모델링

3) 논리적 설계

    : 스키마의 평가 및 정제, 트랜잭션 인터페이스 설계

4) 물리적 설계

    : 저장 레코드 양식 설계, 레코드 집중의 분석/설계, 엑세스 경로 인덱싱,

      클러스터링, 해싱, 접근 경로, 트랜잭션 세부 설계

5) 데이터베이스 구현

    : DDL로 스키마 작성, DB등록 후 트랜잭션 작성.


47. SQL의 기능에 따른 분류 중에서 REVOKE문과 같이 데이터의 사용 권한을 관리하는데 사용하는 언어는?

    ① DDL(Data Definition Language)

    ② DML(Data Manipulation Language)

    ③ DCL(Data Control Language)

    ④ DUL(Data User Language)

 

SQL(Structured Query Language)는 관계형 데이터베이스의 표준 질의어로, [ DDL / DML / DCL ]로 나뉩니다.

 

DDL : Data Defination, 데이터 정의어 [ CREATE, ALTER, DROP ]

DML : Data Manipulation, 데이터 조작어 [ SELECT, INSERT, DELETE, UPDATE ]

DCL : Data Control, 데이터 제어어 [ COMMIT, ROLLBACK, GRANT, REVOKE ]

 

데이터의 사용"권한"을 관리하므로 DCL(Data Control Language)입니다.


48. 데이터 사전에 대한 설명으로 틀린 것은?

    ① 시스템 카탈로그 또는 시스템 데이터베이스라고도 한다.

    ② 데이터 사전 역시 데이터베이스의 일종이므로 일반 사용자가 생성, 유지 및 수정 할 수 있다.

    ③ 데이터베이스에 대한 데이터인 메타데이터(Metadata)를 저장하고 있다.

    ④ 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보는 데이터 디렉토리(Data Directory)라는 곳 에서 관리한다.

 

데이터 사전(Data Dictionary)이란, 시스템 자신이 필요로 하는 여러 객체에 관한 정보를 포함하고 있는 시스템 DB입니다.

시스템 카탈로그(System Catalog), 메타 데이터(Meta Data)라고도 합니다.

 

시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL문으로 검색이 가능하나, 사용자가 직접 갱신은 불가합니다.

(SQL문으로 여러 객체에 변화를 주면 시스템이 자동으로 갱신됩니다.)


49. 데이터베이스에서 릴레이션에 대한 설명으로 틀린 것은?

    ① 모든 튜플은 서로 다른 값을 가지고 있다.

    ② 하나의 릴레이션에서 튜플은 특정한 순서를 가진다.

    ③ 각 속성은 릴레이션 내에서 유일한 이름을 가진다.

    ④ 모든 속성 값은 원자 값(atomic value)을 가진다.

 

릴레이션의 특징은 아래와 같습니다.

1) 튜플의 유일성 : 모든 튜플은 서로 다른 값을 갖는다.

2) 튜플의 무순서성 : 하나의 릴레이션에서 튜플의 순서는 없다.

3) 속성의 원자성 : 속성값은 원자값을 갖는다.

4) 속성의 무순서성 : 각 속성은 릴레이션 내에서 유일한 이름을 가지며, 속성의 순서는 큰 의미가 없다.


50. 데이터베이스에서의 뷰(View)에 대한 설명으로 틀린 것은?

    ① 뷰는 다른 뷰를 기반으로 새로운 뷰를 만들 수 있다.

    ② 뷰는 일종의 가상 테이블이며, update에는 제약이 따른다.

    ③ 뷰는 기본 테이블을 만드는 것처럼 create view를 사용하여 만들 수 있다.

    ④ 뷰는 논리적으로 존재하는 기본 테이블과 다르게 물리적으로만 존재하며 카탈로그에 저장된다.

 

뷰(View)는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 가상 테이블입니다. (논리적으로만 존재)

CREATE, SELECT, DROP문 사용이 가능하나 ALTER문은 사용 불가합니다.

삽입, 갱신, 삭제 연산은 제약이 따릅니다.

 

뷰를 이용한 다른 뷰의 생성이 가능하나, 기초 뷰를 삭제하면 다른 뷰도 같이 삭제됩니다.

뷰가 정의된 기본 테이블이 제거되면 뷰도 제거됩니다.


51. 트랜잭션의 상태 중 트랜잭션의 마지막 연산이 실행된 직후의 상태로, 모든 연산의 처리는 끝났지만 트랜잭션이 수행 한 최종 결과를 데이터베이스에 반영하지 않은 상태는?

    ① Active

    ② Partially Committed

    ③ Committed

    ④ Aborted

 

트랜잭션(Transaction)이란 하나의 논리적 기능을 수행하기 위한 작업 단위로, 데이터베이스에서 일어나는 연산의 집합입니다.

 

트랜잭션의 특성(성질)은 아래와 같습니다.

1) 원자성(Atomicity) : 완전하게 수행이 완료되지 않으면 전혀 수행되지 않아야 함. (중간에 오류 발생 시 취소되어야 함)
2) 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후가 같아야 함.

3) 격리성/고립성(Consistency) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함.

4) 영속성/지속성(Durability) : 트랜잭션의 완료 결과가 데이터베이스에 영구이 기억되어야 함.

 

트랜잭션의 연산은 아래와 같습니다.

1) Commit 연산 : 트랜잭션 실행이 성공적으로 종료되었음을 선언

2) Rollback 연산 : 트랜잭션 실행이 실패하였음을 선언

3) Recovery 연산 : 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 복구시키는 작업

 

트랜잭션의 상태는 아래와 같습니다.


52. SQL의 명령을 사용 용도에 따라 DDL, DML, DCL로 구분할 경우, 그 성격이 나머지 셋과 다른 것은?

    ① SELECT

    ② UPDATE

    ③ INSERT

    ④ GRANT

 

SQL(Structured Query Language)는 관계형 데이터베이스의 표준 질의어로, [ DDL / DML / DCL ]로 나뉩니다.

 

DDL : Data Defination, 데이터 정의어 [ CREATE, ALTER, DROP ]

DML : Data Manipulation, 데이터 조작어 [ SELECT, INSERT, DELETE, UPDATE ]

DCL : Data Control, 데이터 제어어 [ COMMIT, ROLLBACK, GRANT, REVOKE ]

 

GRANT는 데이터 제어어(DCL)입니다.


53. 키의 종류 중 유일성과 최소성을 만족하는 속성 또는 속성들의 집합은?

    ① Atomic key

    ② Super key

    ③ Candidate key

    ④ Test key

 

키(Key)는 아래와 같이 분류됩니다.

1) 슈퍼키(Super Key) : 두 개 이상의 속성으로 구성된 키 또는 혼합키 / 모든 튜플에 대해 유일성 O 최소성 X

2) 후보키(Candidate Key) : 모든 튜플을 유일하게 식별할 수 있는 속성 집합 / 모든 튜플에 대해 유일성 O 최소성 O

3) 기본키(Primary Key) : 후보키 중 대표, Null값 불가 (Null은 공백이나 0과는 다름)

4) 대체키(Alternate Key) : 후보키가 둘 이상일 때 기본키가 아닌 나머지 키

5) 외래키(Foreign Key) : 다른 테이블의 기본키로 사용되는 속성

 

+) 무결성(Integrity) : [ 개체 / 참조 / 도메인 ] 무결성이 존재


54. 데이터베이스에서 개념적 설계 단계에 대한 설명으로 틀린 것은?

    ① 산출물로 E-R Diagram을 만들 수 있다.

    ② DBMS에 독립적인 개념 스키마를 설계한다.

    ③ 트랜잭션 인터페이스를 설계 및 작성한다.

    ④ 논리적 설계 단계의 앞 단계에서 수행된다.

 

데이터베이스의 설계 단계는 아래 5단계로 이뤄집니다. (요-개-논-물-구)

1) 요구조건 분석
    : 요구조건 수집 및 명세서 작성

2) 개념적 설계

    : 개념 스키마/트랜잭션 모델링

3) 논리적 설계

    : 스키마의 평가 및 정제, 트랜잭션 인터페이스 설계

4) 물리적 설계

    : 저장 레코드 양식 설계, 레코드 집중의 분석/설계, 엑세스 경로 인덱싱,

      클러스터링, 해싱, 접근 경로, 트랜잭션 세부 설계

5) 데이터베이스 구현

    : DDL로 스키마 작성, DB등록 후 트랜잭션 작성.

 

트랜잭션의 인터페이스를 설계하는 단계는 개념적 설계가 아닌 논리적 설계 단계입니다.


55. 테이블의 기본키(Primary Key)로 지정된 속성에 관한 설명으로 가장 거리가 먼 것은?

    ① NOT NULL로 널 값을 가지지 않는다.

    ② 릴레이션에서 튜플을 구별할 수 있다.

    ③ 외래키로 참조될 수 있다.

    ④ 검색할 때 반드시 필요하다.

 

기본키는 개체 무결성에 의해 Null 값이나 중복 값을 가질 수 없다는 제약조건이 있습니다.

한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성입니다.

기본키는 다른 테이블에 사용될 수 있으며, 이를 외래키라고 합니다.


56. 데이터 모델의 구성 요소 중 데이터 구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업을 의미하는 것은?

    ① Relation

    ② Data Structure

    ③ Constraint

    ④ Operation

 

데이터 모델이란 현실 세계를 데이터베이스에 표현하는 중간 과정,

즉 데이터베이스 설계 과정에서 데이터의 구조를 표현하기 위해 사용되는 도구를 말합니다.

 

데이터 모델의 구성요소는 아래와 같습니다.

1) 데이터 구조(Structure) : 데이터 구조 및 정적 성질을 표현

2) 연산(Operations) : 데이터의 인스턴스에 적용 가능한 연산 명세와 조작 기법을 표현

3) 제약조건(Constraints) : 데이터의 논리적 제한 명시 및 조작의 규칙


57. 다음 [조건]에 부합하는 SQL문을 작성하고자 할 때, [SQL문]의 빈칸에 들어갈 내용으로 옳은 것은? (단, '팀코드' 및 '이름'은 속성이며, '직원'은 테이블이다.)

[조건]
이름이 '정도일'인 팀원이 소속된 팀코드를 이용하여 해당 팀에 소속된 팀원들의 이름을 출력하는 SQL문 작성
[SQL문]
SELECT      이름
FROM         직원
WHERE      팀코드 = (           );

    ① WHERE 이름 = '정도일'

    ② SELECT 팀코드 FROM 이름 WHERE 직원 = '정도일'

    ③ WHERE 직원 = '정도일'

    ④ SELECT 팀코드 FROM 직원 WHERE 이름 = '정도일'

 

SQL문 [ SELECT 이름 FROM 직원 WHERE 팀코드 ]에서 결국 필요한 정보는 팀코드입니다.

1) 따라서 SELECT 팀코드

2) 이름이 '정도일'인 팀원을 찾아야 하므로 FROM 직원

3) 직원 테이블 안에서 '정도일'이라는 튜플을 가져와야 하므로 WHERE 이름 = '정도일'

[SQL문]
SELECT      이름
FROM         직원
WHERE      팀코드 = ( SELECT 팀코드 FROM 직원 WHERE 이름 = '정도일' );

58. 무결성 제약조건 중 개체 무결성 제약조건에 대한 설명으로 옳은 것은?

    ① 릴레이션 내의 튜플들이 각 속성의 도메인에 정해진 값만을 가져야 한다.

    ② 기본키는 NULL 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다.

    ③ 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 한다.

    ④ 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다.

 

무결성(Integrity) : [ 개체 / 참조 / 도메인 ] 무결성이 존재합니다.

 

1) 개체 무결성 : 기본키의 값은 Null 값 or 중복 값을 가질 수 없음

2) 참조 무결성 : 릴레이션 R1에 속성 조합인 외래키를 변경하려면 이를 참조하는 R2의 기본키도 변경해야 함

3) 도메인 무결성 : 각 속성값은 해당 속성 도메인에 지정된 값이어야 한다는 제약조건


59. 관계 데이터 모델에서 릴레이션(Relation)에 포함되어 있는 튜플(Tuple)의 수를 무엇이라고 하는가?

    ① Degree

    ② Cardinality

    ③ Attribute

    ④ Cartesian product

 

Degree (차수) : 속성의 개수

Cardinality (카디널리티) : 투플의 수

Domain (도메인) : 속성이 가질 수 있는 값의 집합


60. 사용자 'PARK'에게 테이블을 생성할 수 있는 권한을 부여하기 위한 SQL문의 구성으로 빈칸에 적합한 내용은?

[SQL 문]
GRANT (              ) PARK ;

    ① CREATE TABLE TO

    ② CREATE TO

    ③ CREATE FROM

    ④ CREATE TABLE FROM

 

권한 부여(GRANT) : GRANT [ 권한 부여 내용 ] TO [ 권한 추가 사용자 ]

권한 취소(REVOKE) : REVOKE [ 권한 취소 내용 ] FROM [ 권한 취소 사용자 ]