정보시스템감리/데이터베이스

(제 20회) 데이터베이스 / (51)~(75)

아이티신비 2024. 1. 5. 10:00

51. 다음은 두 릴레이션 R(A,B,C)과 S(C,D)를 SQL로 정의한 것이다. 두 테이블에 대한 데이터 조작 연산과 관련된 설명 중 옳은 것을 모두 고르시오. (2개 선택)

CREATE TABLE R
(A INT NOT NULL, B CHAR(5), C INT, PRIMARY
KEY(A), FOREIGN KEY(C) REFERENCES S(C)
ON DELETE SET NULL
ON UPDATE CASCADE);
CREATE TABLE S
(C INT NOT NULL, D CHAR(5), PRIMARY KEY(C));

① 테이블 R의 투플은 테이블 S의 상태와 무관하게 삽입이 가능하다.

② 테이블 S의 투플은 테이블 R의 상태와 무관하게 삽입이 가능하다.

③ 테이블 S의 C의 값이 갱신되면 테이블 R의 C의 값도 파급해서 갱신된다.

④ 테이블 S의 투플이 삭제되면 이 투플을 참조하는 R의 투플도 파급해서 삭제된다.

 

52. 릴레이션을 정규화(normalization)하는 목적에 관한 설명 중 가장 거리가 것은?

 

① 정보의 갱신 이상이 생기지 않도록 한다.

② 정보의 보안을 목적으로 한다.

③ 정보의 손실을 막는다.

④ 정보의 중복을 막는다.

 

53. 뷰(view)가 어떻게 데이터베이스 보안에 사용될 수 있는지에 대한 다음 설명 중 옳지 않은 것은?

 

① 기본 릴레이션에 직접 접근할 수 있는 권한을 부여하지 않고 뷰를 통해 접근하도록 한다.

② 자세한 정보를 제공하는 대신 집단함수의 결과만 제공할 수 있다.

③ 하나의 릴레이션으로 보이는 것을 막기 위해 여러 릴레이션의 열(column)을 조인하는 것이 금지된다.

④ 기본 릴레이션의 일부 속성들에 대해 추가적으로 정의될 수 있으므로 이를 이용해서 기본 릴레이션의 일부분만 검색가능하다.

 

54. 고정 길이 레코드 방식을 사용할 때, 레코드의 길이가 230 byte이고, 블록의 크기가 4,096 byte, 블록 헤더의 길이가 24 byte 라고 가정하자.하나의 블록에 가능한 많은 수의 레코드를 채우는 방식으로 35 개의 레코드를 저장할 때, 다음 중 가장 적절한 것은?

 

① 첫 번째 블록에는 188 byte가 남는다.

② 두 번째 블록에는 3,934 byte가 남는다.

③ 세 번째 블록에는 3,842 byte가 남는다.

④ 네 번째 블록에는 3,910 byte가 남는다.

 

55. SQL의 표준에서 제시한 트랜잭션의 고립 단계 (isolation level)를 낮게 설정했을 때 발생할 수 있는 문제로 가장 적절하지 않은 것은?

 

① serial schedule

② dirty read

③ nonrepeatable read

④ phantom

 

56. 확률기반의 기계학습 기법인 나이브 베이즈 (Naive Bayes) 기법에 대한 다음 설명 중 가장 적절하지 않은 것은?

 

① 입력 속성들이 서로 연관하여 클래스 결정에 영향을 줄 수 있기 때문에 입력 데이터에 존재하는 조건부 확률을 구하여 사용한다.

② 입력에 존재하지 않는 경우에도 확률값이 0이 되는 것을 방지하기 위해 라플라스 추정치(Laplace estimator)를 사용할 수 있다.

③ 문서 분류를 위해 문서를 단어의 집합(bag of words)으로 모델링하여 확률기반의 기계학습을 적용하는 다항분포 나이브 베이즈(multinominal Naive Bayes) 모델이 있다.

④ 입력 속성이 수치값이면 확률 밀도 함수를 사용하여 해당 입력값의 확률값을 구해서 사용한다.

 

57. 릴레이션 Emp, Dept가 다음과 같이 정의되어 있다. 부서에 사원이 한명도 없는 부서(deptno)를 검색하는 질의를 작성했을 때, 가장 거리가 것은? (단, Emp의 deptno는 Dept의 deptno를 참조하는 외래키이다.)

Emp(empno, ename, job, mgr, hiredate, sal,
comm, deptno)
Dept(deptno, dname, loc)

① SELECT deptno FROM Dept WHERE deptno NOT IN (SELECT deptno FROM Emp);

② SELECT deptno FROM Dept a WHERE NOT EXISTS (SELECT * FROM Emp b WHERE a.deptno =

b.deptno);

③ SELECT b.deptno FROM Emp a RIGHT OUTER JOIN Dept b ON a.deptno = b.deptno WHERE empno IS NULL;

④ SELECT deptno FROM Dept WHERE deptno < > ANY (SELECT deptno FROM Emp);

 

58. 다음은 두 릴레이션 R, S에 대해 어떤 관계 대수 연산을 적용한 결과 릴레이션을 보인 것이다. 두 릴레이션에 대해 적용된 연산 중 옳은 것을 모두 고르시오. (2개 선택)

① ΠA(R)

② R÷(ΠB(S))

③ ΠA(R⋈B<B(σC='beta'(S)))

④ ΠA(R⋈B=B(σC='zetta'(S)))

 

 

59. 다음과 같은 EMPLOYEE 테이블의 Sex와 Salary에대한 비트맵 인덱스가 만들어졌다고 할 때, 이

에 대한 설명 중 옳지 않은 것은?

 

EMPLOYEE

① Salary 속성의 경우, 값 50000에 대해서는 01100, 값 60000에 대해서는 10010, 값 90000에 대해서는 00001의 비트맵 인덱스가 만들어진다.

② Sex = 'F' AND Salary = 50000과 같은 조건은 해당 비트맵 인덱스에 대한 논리 AND(logical AND)를 통해 검색할 수 있다.

③ Salary 값이 50000 ~ 60000 사이인 직원은 해당 비트맵 인덱스에 대한 비트단위의 AND(bitwise AND) 연산을 통해 검색할 수 있다.

④ Sex ¬= 'F'와 같은 부정 질의는 해당 비트맵에 대해 불리언 보수(complement) 연산으로 처리가 가능하다.

 

60. 다음은 직원 테이블과 부서 테이블의 구조와 두 테이블에 대한 제약조건을 기술한 것이다. 다음 중 널(null) 값이 허용되는 속성은?

직원(직원번호, 이름, 월급, 상사_직원번호, 부서번호)
부서(부서번호, 부서명, 관리자_직원번호)
- 기본키: 직원 테이블의 기본키는 직원번호, 부서
테이블의 기본키는 부서번호.
- 참조 무결성: 직원.상사_직원번호는 직원.직원번호를
참조, 직원.부서번호는 부서.부서번호를 참조, 부서.
관리자_직원번호는 직원.직원번호를 참조.
- 부서와 직원의 1:N 소속 관계: 한 직원은 반드시 1개의
부서에 소속됨. 한 부서에는 1명 이상의 직원이 소속됨.
- 직원과 직원의 1:N 감독 관계: 한 직원은 0명 이상의
부하 직원을 거느릴 수 있음. 한 직원은 0명 또는 1
명의 상사 직원을 둘 수 있음.
- 직원과 부서의 1:1 관리자 관계: 한 직원은 0개
또는 1개의 부서를 관리할 수 있음. 각 부서에는
1명의 관리자 직원이 배정되어야 함.

① 직원.직원번호 ② 직원.상사_직원번호

③ 직원.부서번호 ④ 부서.관리자_직원번호

 

61. 다음은 EER(Enhanced ER) 다이어그램에서 세분화 (specialization)를 표현한 것이다. 이 다이어그램에 대한 설명으로 옳은 것을 모두 고르시오. (단, 수퍼타입과 서브타입을 연결하는 중간 원안 의 표시 ‘o’는 overlap을, A 개체 쪽의 이중선 은 total을 표현한다고 하자.) (2개 선택)

① A의 모든 개체는 최소한 하나의 서브타입의 멤버가 되어야 한다.

② 동일한 실세계 개체가 하나 이상의 서브타입의 멤버가 될 수 있다.

③ 서브타입 B와 C 어디에도 속하지 않은 개체가 존재할 수 있다.

④ 하나의 개체는 많아야 하나의 서브타입의 멤버 가 될 수 있다.

 

62. 트랜잭션에 관한 다음 설명 중 가장 적절하지 않은 것은?

 

① 트랜잭션의 성질을 나타내는 용어로 ACID를 사용한다.

② 트랜잭션이 로크(lock)를 사용하면 교착상태 (deadlock)는 발생하지 않는다.

③ 트랜잭션이 읽기만 할 경우 공유 로크(shared lock)를 사용한다

④ 트랜잭션의 고립수준을 높이면 트랜잭션의 동시성이 낮아진다.

 

63. 다음의 ER 다이어그램은 직원(EMPLOYEE)과 프로젝트(PROJECT) 사이의 참가(WORKS_ON) 관계를 표현하고 있다. 이 ER 다이어그램을 데이터베이스 테이블로 변환할 때 일반적으로 생성되는 테이블의 개수로 가장 적절한 것은?

① 2 ② 3 ③ 4 ④ 5

 

64. 대한민국 공공데이터포털(https://www.data.go.kr)은 국가에서 운영하는 데이터 포털로써 정보 관련 개발자들에게 유용하게 활용된다. 이에 대한 설명으로 가장 적절하지 않은 것은?

 

①「공공데이터의 제공 및 이용 활성화에 관한 법률」 제21조(공공데이터포털의 운영)에 의거한다.

② 공공데이터와 관련된 개발자 간의 지식과 기술 공유를 위해 개발자 네트워크를 제공한다.

③ 국민이 쉽고 편리하게 데이터를 이용할 수 있도록 파일데이터, 오픈API, 시각화 등 다양한 방식으로 정보를 제공한다.

④ 공공데이터 포털에서 제공하는 공공데이터는 공공데이터법에 따라 누구나 이용가능하지만, 영리 목적의 이용은 허용되지 않는다.

 

65. 릴레이션 R1(A, B), R2(C, D)가 있다. 참조무결성 제약조건을 준수할 경우 다음 중 항상 성립하는 것은? (단, R1의 속성 B가 R2의 속성 C를 참조하는 외래키라고 가정한다.)

 

※ π : 프로젝션 연산자, ∅ : 공집합

 

① πB(R1) - πC(R2) = ∅

② πC(R2) - πB(R1) = ∅

③ πB(R1) = πC(R2)

④ πB(R1) - πC(R2) ≠ ∅

 

66. 릴레이션 R이 다음과 같은 함수 종속을 가지고 있다. 이 릴레이션을 BCNF로 분해하였을 때, 외래키 역할을 수행하는 속성으로 옳은 것을 모두 고르시오. (2개 선택)

릴레이션: R(A, B, C, D, E)
함수종속: A→BCDE, B→ACDE, E→CD, C→D

① B ② C ③ D ④ E

 

67. 해시 테이블 구조를 사용할 경우, 해시 값의 충돌을 해결하기 위한 충돌 해결(collision resolution) 기법이 필요하다. 다음 중 충돌 해결 기법에 해당하지 않는 것은?

 

① 개방 주소 지정(open addressing)

② 체인(chain)

③ 그림자(shadowing)

④ 다중 해싱(multiple hashing)

 

68. 테이블 R과 S가 다음과 같을 때, 아래 SQL문 (SELECT 구문)의 실행 결과로 옳은 것은?

① 4 ② 5 ③ 9 ④ 20

 

69. 다음은 데이터베이스 특징 중에서 데이터 공유에 대한 설명이다. (가)와 (나)에 들어갈 용어를 바르게 짝 지은 것은?

 
여러 사용자가 동시에 사용하더라도 데이터의 일관성(consistency)을 보장하기 위해 ( 가 ) 기능을 제공한다.
데이터베이스 작업을 수행하는 단위 프로세스를 ( 나 )(이)라고 하며, ( 나 )의 주요 성질로는 고립성과 원자성이 있다.

① (가) 데이터 무결성 (나) 스레드

② (가) 데이터 무결성 (나) 트랜잭션

③ (가) 동시성 제어 (나) 트랜잭션

④ (가) 동시성 제어 (나) 스레드

 

 

70. 다음은 OLAP 연산에 대한 설명이다. (가)와 (나)에 들어갈 OLAP 연산으로 바르게 짝지어진 것은?

 
작은 단위(예: day)에서 큰 단위(예: month, year)로 집계를 수행하는 OLAP 연산을 (가)이라 한다.
큰 단위(예: year)에서 작은 단위(예: month, day)로 집계를 수행하는 OLAP 연산을 (나)이라 한다.

① (가) 드릴-다운(drill-down) (나) 롤-업(roll-up)

② (가) 롤-업(roll-up) (나) 드릴-다운(drill-down)

③ (가) 슬라이싱(slicing) (나) 다이싱(dicing)

④ (가) 다이싱(dicing) (나) 슬라이싱(slicing)

 

71. 다음은 다중 단위 로킹(multiple granularity locking)을 위한 로킹 호환성 행렬을 나타낸다. 행렬에서 (가), (나), (다)에 들어갈 내용이 바르게 연결된 것은?(여기서 S는 공유(shared), X 는 독점적(exclusive), I는 의도(intention)를 의미 한다.)

① (가) False (나) True (다) False

② (가) False (나) True (다) True

③ (가) True (나) False (다) False

④ (가) True (나) False (다) True

 

72. 다음과 같은 트리 구조에 대한 설명으로 가장 적절한 것은?

① B-트리로서, 루트(root) 노드를 포함한 모든 노드는 절반 이상의 사용률(utilization)을 보장한다.

② B+-트리로서, 루트 노드를 포함한 모든 노드는 절반 이상의 사용률을 보장한다.

③ B-트리로서, 내부(internal) 노드의 키 값이 단말(leaf) 노드에 중복하여 나타난다.

④ B+-트리로서, 내부 노드의 키 값이 단말 노드에 중복하여 나타난다.

 

73. 아래 표와 같이 5개 시퀀스(순차)에 대한 시퀀스 데이터베이스가 주어졌을 때, 서브시퀀스(부분 순차) x의 지지도 s(x)가 바르게 계산된 것은?

① s(<{1}{2}>) = 60%

② s(<{1}{2,3}>) = 80%

③ s(<{2}{2,3}>) = 60%

④ s(<{3}{5}>) = 60%

 

74. 다음은 즉시 갱신(immediate update) 회복 기법을 사용하는 트랜잭션의 로그이다. 데이터 B의 초기값은 12000이고, M의 초기값은 0이다. 2개의 트랜잭션 T1, T2가 다음과 같이 수행되어 B와 M의 데이터에 대한 로그 기록을남겼다. 로그번호 7에서 시스템에 장애가 생겼다고 할때, 회복 과정에서 해야 할 일 중 가장 적절한 것은?

로그
0. checkpoint
1. T1 start
2. T1 B old=12000 new=10000
3. T1 M old=0 new=2000
4. T1 commit
5. T2 start
6. T2 B old=10000 new=10500
7. <system crash>

① 로그번호 6을 REDO하여 B를 10500으로 바꾼다.

② 로그번호 6을 UNDO하여 B를 10000으로 바꾸고, 로그번호 2와 3을 REDO 한다.

③ 트랜잭션 T1이 commit을 했기 때문에 로그번호 2

와 3을 REDO 할 필요는 없다.

④ REDO와 UNDO는 임의의 순서로 진행해도 상관이 없다.

 

75. 다음 릴레이션에 대하여 아래와 같이 인덱스를 생성하였다. 다음 중 생성된 인덱스에 의하여 검색속도를 향상시킬 수 있는 질의로 가장 적절 하지 않은 것은?

릴레이션
Articles(ID, title, journal, issue, year, startpage,
endpage, TR_ID)
<설명> 논문(Articles) 릴레이션은 과학 논문에
관한 정보를 포함하고 있고 밑줄친 속성은 키값
이다. 각 논문은 고유의 ID를 가지고 있으며, 논
문제목(title)과 저널명(journal), 권(issue), 발행연도
(year), 시작페이지(startpage), 끝페이지(endpage)
정보를 포함하고 있다. 논문이 기술 리포트(technical
report)에 게재된 적이 있으면 TR_ID 번호가 기록
된다. 각 저널에는 고유의 일련번호인 권(issue)
번호가 있으며, 논문에는 시작페이지와 끝페이지
가 기록된다.
 
인덱스
CREATE INDEX Idx1 ON Articles(year, startpage);
CREATE INDEX Idx2 ON Articles(startpage,
endpage);
CREATE INDEX Idx3 ON Articles(journal, issue,
year);

① SELECT title FROM Articles WHERE journal ='JACM' AND issue = 55;

② SELECT title FROM Articles WHERE endpage - startpage > 50;

③ SELECT title FROM Articles WHERE year > 1995 AND year < 2000;

④ SELECT title FROM Articles WHERE journal = 'JACM';

 


 

정답)

51
52
53
54
55
②,③
56
57
58
59
60
②,③
61
62
63
64
65
①,②
66
67
68
69
70
71
72
73
74
75