본문 바로가기
CS_정리 & 정보처리기사 💾

[정보처리기사] 2020_08_22 (3회)_3과목

by 개발하는윤기사 2023. 4. 1.
728x90
반응형

 

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

 

41. 릴레이션 R의 모든 결정자(determinant)가 후보키이면 그 릴레이션 R은 어떤 정규형에 속하는가?     

① 제 1 정규형

② 제 2 정규형     

③ 보이스/코드 정규형

④ 제 4 정규형

 

🍎

제 1 정규형 = 반복그룹을 제거

제 2 정규형= 부분 함수적 종속 제거

제 4 정규형= 다치종속 제거

보이스/코드 = 모든 결정자가 후보키인 상태


42. 다음 관계형 데이터 모델에 대한 설명으로 옳은 것은?          

① relation 3개, attribute 3개, tuple 5개     

② relation 3개, attribute 5개, tuple 3개

③ relation 1개, attribute 5개, tuple 3개     

④ relation 1개, attribute 3개, tuple 5개

 

🍎

- relation : 테이블의 수 (1 테이블)

- attribute : 열의 수 (3열)

- tuple : 행의 수 (5행)

 


43. Commit과 Rollback 명령어에 의해 보장받는 트랜잭션의 특성은?     

① 병행성

② 보안성     

③ 원자성

④ 로그

 

🍎

- 원자성 : 트랜잭션 연산은 DB에 모두 반영되어 Commit(완료) 되든지 아니면 반영이 안 되어 Rollback(복구)되어야 한다.

- 일관성 : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

- 독립성 : 둘 이상 트랜잭션이 동시 병행 실행될 경우 트랜잭션 실행 중 타 트랜잭션의 연산이 끼어들 수 없다.

- 지속성 : 성공적 완료된 트랜잭션 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

 


44. 관계 데이터베이스인 테이블 R1에 대한 아래 SQL 문의 실행결과로 옳은 것은?

 

🍎

DISTINCT : 중복 튜플 발견 시 그 중 첫 번째 하나만 검색 

학년 1, 1, 2, 2, 3 중 중복된 값 1과 2는 하나만 검색

=> 학년 1 2 3

 


45. DCL(Data Control Language) 명령어가 아닌 것은?     

① COMMIT

② ROLLBACK     

③ GRANT

④ SELECT

 

🍎

DCL(Data Control Language) : 데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용되는 명령어

1. GRANT: 데이터베이스 사용자에게 사용권한을 부여하는 명령어

2. REVOKE: 데이터베이스 사용자의 사용권한을 취소하는 명령어

3. COMMIT: 데이터베이스 조작 작업이 정상적으로 완료되었음을 알려주는 명령어

4. ROLLBACK: 데이터베이스 조작 작업이 비정상적으로 작동 하여 원래 상태로 복구하는 명령어

 


46. 병행제어 기법 중 로킹에 대한 설명으로 옳지 않은 것은?     

① 로킹의 대상이 되는 객체의 크기를 로킹 단위라고 한다.     

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

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

④ 로킹의 단위가 커지면 데이터베이스 공유도가 증가한다.

 

🍎

로킹 단위가 크면 나머지가 다 작아짐 / 로킹 단위가 작으면 나머지가 다 커짐 ( 로킹과 반비례 관계 )

 


47. 관계 데이터모델의 무결성 제약 중 기본키 값의 속성 값이 널(Null)값이 아닌 원자 값을 갖는 성질은?     

① 개체 무결성

② 참조 무결성     

③ 도메인 무결성

④ 튜플의 유일성

 


48. 뷰(View)의 장점이 아닌 것은?     

① 뷰 자체로 인덱스를 가짐

② 데이터 보안 용이     

③ 논리적 독립성 제공     

④ 사용자 데이터 관리 용이

 

🍎

뷰(View)는 하나 이상의 테이블로부터 유도되는 가상테이블이며 논리적 독립성이 제공.

실제테이블처럼 권한을 나눌 수 있음. 따라서 특정사용자가 볼 필요가 없는 다른 열들을 배제하고 뷰를 만든 후 해당 사용자에게 뷰에 대한 권한을 할당하면 테이블 전체에 대한 권한을 부여하지 않아도 됨.

뷰는 자체적으로 인덱스를 가지지 않음. 따라서 삽입 삭제 수정이 제한적!!

 


49. 분산 데이터베이스의 투명성(Transparency)에 해당 하지 않는 것은?     

① Location Transparency

② Replication Transparency    

③ Failure Transparency

④ Media Access Transparency

 

🍎

1. 분할 투명성(단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 사이트에 저장

2. 위치 투명성 : 사용하려는 데이터의 저장장소를 명시가 필요하지 않음. 위치정보는 System Caltalog에 유지어야 함

3. 지역사상 투명성 : 지역 DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용가능

4. 중복 투명성 : DB객체가 여러 사이트에 중복되어 있는지 알 필요가 없는 성질

5. 장애 투명성 : 구성요소(DBMS, Computer)의 장애에 무관한 트랜잭션의 원자성유지

6. 병행 투명성 : 다수 트랜잭션 동시수행 시 결과의 일관성 유지, TImm Stamp, 분산 2단계 Locking을 이용하여 구현

 


50. 정규화의 목적으로 옳지 않은 것은?     

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

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

③ 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 야기한다.     

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

 

🍎

중복을 배제하여 삽입, 삭제, 갱신 이상들을 제거하기 위하여 정규화를 함!

 


51. 다음에 해당하는 함수 종속의 추론 규칙은?

① 분해 규칙

② 이행 규칙     

③ 반사 규칙

④ 결합 규칙

 

🍎

(1) 분해 규칙 : X -> YZ이면 X -> Y와 X -> Z이다.

(3) 반사 규칙 : X -> Y이면 X -> Y와 X -> X이다.

(4) 결합 규칙 : X -> Y이고 X -> Z이면 X ->YZ이다.

 


52. 다음 R과 S 두 릴레이션에 대한 Division 연산의 수행 결과는?

 

🍎

D2 D3
1 A

가 포함된

 

D1 D2 D3
a 1 A
b 1 A

 

D2 D3
1 A

를 제거

 


53. player 테이블에는 player_name, team_id, height 컬럼이 존재한다. 아래 SQL문에서 문법적 오류가 있는 부분은?   

① (1)

② (2)     

③ (3)

④ (4)

 

🍎

AND HEIGHT BETWEEN 170 AND 180;

PLAYER 테이블에서 TEAM_ID가 Korea이면서 키가 170 이상 180 이하인 열의 PLAYER_NAME과 HEIGHT를 구하는

BETWEEN A OR B라는 문법은 없음!!

 


54. 데이터베이스 로그(log)를 필요로 하는 회복 기법은?     

① 즉각 갱신 기법

② 대수적 코딩 방법     

③ 타임스탬프 기법

④ 폴딩 기법

 

🍎

회복(Recovery)

트랜잭션 도중에 손상된 데이터베이스를 이전 상태로 복귀하는 작업

트랜잭션의 연산을 수행할 때 데이터베이스를 변경하기 전에 로그 데이터를 생성.

취소(Undo) 연산으로 이미 데이터베이스에 쓰인 것도 수정가능.

 

- 즉각 갱신 기법(Immediate Update)

트랜잭션의 연산을 수행하여 데이터를 갱신할 때 실제 데이터 베이스에 반영하는 기법

갱신한 모든 내용을 로그(Log)에 보관. 회복 작업을 위해 취소(Undo)와 재시도(Redo) 모두 사용 가능.

 


55. DML(Data Manipulation Language) 명령어가 아닌 것은?     

① INSERT

② UPDATE     

③ ALTER

④ DELETE

 

🍎

DML(데이터 조작어) : SELECT / INSERT / DELETE / UPDATE 

DDL(데이터 정의어) : CREATE / ALTER / DROP

DCL(데이터 제어어) : COMMIT / ROLLBACK / GRANT / REVOKE

 


56. 다음과 같이 위쪽 릴레이션을 아래쪽 릴레이션으로 정규화를 하였을 때 어떤 정규화 작업을 한 것인가?

① 제1 정규형

② 제2 정규형     

③ 제3 정규형

④ 제4 정규형

 

🍎

1NF : 도메인이 원자값만으로 구성된 정규형

2NF : 기본 키가 아닌 모든 속성이 기본 키에 대해 완전 함수적 종속을 만족하는 정규형

3NF : 기본 키가 아닌 모든 속성이 기본 키에 대해 이행적 종속을 만족 안 하는 정규형

BCNF(보이스/코드) : 모든 결정자가 후보 키인 정규형

4NF : 다치 종속 A->B가 성립하는 경우 A에 함수적 종속 관계를 만족하는 정규형

5NF : 모든 조인 종속이 후보 키를 통해서만 성립되는 정규형

 


57. 관계대수의 순수관계 연산자가 아닌 것은?     

① Select

② Cartesian Product     

③ Division

④ Project

 

🍎

순수 관계 연산자 : Select / Project / Join / Division


58. 다음 중 SQL의 집계 함수(aggregation function)가 아닌 것은?     

① AVG

② COUNT     

③ SUM

④ CREATE

 

🍎

- AVG: 해당 집계행의 평균

- SUM: 해당 집계행의 합

- COUNT: 집계행의 수


59. 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상을 의미하는 것은?     

① normalization

② rollback     

③ cardinality

④ anomaly

 

🍎

정규화(Normalization)를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는데, 이를 '이상(Anomaly)'이라 하며 다음과 같이 삽입 이상, 삭제 이상, 갱신 이상이 있다.

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

- 삭제 이상(Deletion Anomaly) : 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄 삭제 현상이 일어나는 현상

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

 


60. 릴레이션에 대한 설명으로 거리가 먼 것은?     

① 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.     

② 한 릴레이션에 포함된 튜플들은 모두 상이하다.     

③ 애트리뷰트는 논리적으로 쪼갤 수 없는 원자값으로 저장한다.     

④ 한 릴레이션에 포함된 튜플 사이에는 순서가 있다.

 

🍎

[릴레이션 특징]

1. 한 릴레이션에 포함된 튜플들은 상이하다.

2. 튜플 사이에 순서는 없다.

3. 속성 간 순서는 중요하지 않다.

4. 속성의 명칭은 유일, 구성값은 동일값 가능.

5. 속성 값은 원자값으로 저장한다.

6. 튜플들의 작업으로 인해 릴레이션은 시간에 따라 변함.

728x90
반응형