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

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

아이티신비 2024. 1. 11. 09:10

51. 세 개의 릴레이션 학생, 과목, 교수에 대해 삽입, 삭제, 갱신 연산을 수행하고자 할 때, 수행될 수 있는 SQL문으로 가장 적절한 것은?

① CREATE VIEW 학생뷰 AS SELECT 이름, 전공

FROM 학생 WHERE 전공= ‘컴퓨터’

WITH CHECK OPTION;

INSERT INTO 학생뷰(이름, 전공)

VALUES ( ‘이태훈’, ‘수학’);

② CREATE VIEW 교수뷰 AS SELECT 교수번호, 이름

FROM 교수;

INSERT INTO 교수뷰(교수번호, 이름)

VALUES (500, ‘김성태’);

③ CREATE VIEW 강의뷰 AS SELECT 이름, 과목번호

FROM 교수, 과목

WHERE 교수.교수번호=과목.교수번호;

INSERT INTO 강의뷰(이름, 과목번호)

VALUES( ‘박정훈’, 50);

④ CREATE VIEW 학생뷰2 AS SELECT 학번, 이름

FROM 학생 WHERE 전공= ‘수학’

WITH CHECK OPTION;

UPDATE 학생뷰2 SET 전공= ‘컴퓨터’ WHERE 학번=3;

 

52. 회복 기법에 대한 설명으로 가장 거리가 것은?

 

① 지연 갱신(deferred update) 회복 기법은 트랜잭션이 부분 완료될 때까지 데이터베이스의 실 제적인 갱신을 지연시킨다.

② 지연 갱신 회복 기법은 undo/redo 회복 알고리즘을 이용하여 회복한다.

③ 즉시 갱신(immediate update) 회복 기법은 트랜 잭션이 갱신 명령을 내리면 트랜잭션이 완료되기 전에 데이터베이스를 즉시 갱신한다.

④ 그림자 페이지(shadow page) 회복 기법은 redo 연산이 필요 없기 때문에 장애로 부터 회복 작 업이 신속하다.

 

53. 릴레이션 스키마 R(A, B, C, D, E)에 대한 함수 종속 집합이 다음과 같을 때 R의 후보키로 옳지 않은 것은?

A → BC, CD → E, B → D, E → A

① A ② B ③ BC ④ E

 

54. 다음은 기업 데이터베이스의 파일(file) 및 레코드 (record)에 대한 설명이다. 이에 대한 설명으로 적절한 것을 <보기>에서 모두 고른 것은?

◦ 각 레코드의 길이는 200바이트이다.
◦ 블록 헤더의 길이는 40바이트이다.
◦ 파일에 존재하는 레코드 수는 20,000개이다.
◦ 각 블록의 크기(블록 헤더 포함)는 4,096바이트이다.
<보 기>
ㄱ. 블록킹 인수는 100이다.
ㄴ. 순서(순차) 파일에서 이진탐색을 한다면 최악의 경우 10개의 블록 접근이 필요하다.
ㄷ. 이 파일을 저장하기 위해 필요한 총 블록 수는 980 개이다.
ㄹ. 비순서(히프) 파일에서 특정 레코드를 찾기 위해 서는 평균 500개의 블록을 읽어야 한다.

① ㄱ, ㄴ

② ㄴ, ㄹ

③ ㄷ, ㄹ

④ ㄱ, ㄴ, ㄹ

 

55. 다음은 트랜잭션의 특성에 관한 설명이다. ( ) 안에 들어갈 트랜잭션 특성을 바르게 나열한 것은?

여러 트랜잭션이 동시에 수행되더라도 각기 개별로 수행되는 것과 동일해야 한다는 성질을 ( )이라 하며, 트랜
잭션 내의 모든 데이터베이스 연산들이 수행 완료되거나, 아니면 아무 연산도 수행되지 않음을 보장해야 하는 특성을 ( )이라 한다.

① 독립성(independency), 일관성(consistency)

② 독립성(independency), 원자성(atomicity)

③ 고립성(isolation), 원자성(atomicity)

④ 고립성(isolation), 일관성(consistency)

 

56. 다음은 두 릴레이션 R과 S의 스키마와 이의 속성 (attribute)에 대한 설명을 나타낸다. 릴레이션 R과 S를 사용하여 “잔액이 $100 이상인 계좌의 전화번호를 알아내라”를 관계 대수(relational algebra)로 표현할 때 적합하지 않은 것은?

R = (accno, bal), S = (accno, telno, zip) 릴레이션 R과 S에서, accno는 계좌번호를, bal은 잔액을, telno은 전화번호를, zip은 우편번호를 각각 나타낸다. 그리고 accno는 R과 S 각각의 키(key)이다.

 

 

57. 다음은 트랜잭션 T1과 T2에 들어있는 두 개의 연속적인 명령어 I1과 I2로 구성된 스케줄의 예들이다. 이 때 A와 B는 서로 다른 데이터 항목이다. 이들 중 충돌 직렬성(conflict serializability)을 유지하면서 이 스케줄의 실행 순서를 바꿀 수 있는 경우로 바르지 않은 것은?

 

① T1의 I1=read(A)와 T2의 I2=read(A)는 순서를 바꿀 수 있다.

② T1의 I1=write(A)와 T2의 I2=read(A)는 순서를 바꿀 수 있다.

③ T1의 I1=write(B)와 T2의 I2=write(A)는 순서를 바꿀 수 있다.

④ T1의 I1=write(B)와 T2의 I2=read(A)는 순서를 바꿀 수 있다.

 

58. 데이터 마이닝에서는 두 점 혹은 두 시퀀스에 대한 다양한 거리 척도가 사용된다. 5-차원 공간의 두 점 X = (5, 4, 2, 6, 1), Y = (4, 5, 5, 4, 2)에 대해, X와 Y의 유클리드 거리(Euclid distance)를 dE(X,Y), X와 Y의 맨하탄 거리(Manhattan distance 혹은 city block distance)를 dM(X,Y)라 할 때, dE(X,Y)와 dM(X,Y)의 값으로 바른 것은?

 

① dE(X,Y) = 8, dM(X,Y) = 4

② dE(X,Y) = 4, dM(X,Y) = 16

③ dE(X,Y) = 8, dM(X,Y) = 16

④ dE(X,Y) = 4, dM(X,Y) = 8

 

※ 다음 박스 안에 있는 표준 SQL2 구문을 보고 59~60번 문제에 답하시오.


59. 상기 제시된 표준 SQL2 문장들은 데이터 정의어 (DDL:Data Definition Language)와 데이터 조작어 (DML:Data Manipulation Language)이다. 이 중 데이터 조작어로만 구성된 조합은?

 

① (B)와 (D) ② (B)와 (E) ③ (A)와 (F) ④ (C)와 (D)

 

60. 상기 표준 SQL2 구문에서 비워둔 (B1), (D1), (D2), (E1), (E2) 중, 선택된 두 항목에 들어갈 키워드가 모두 옳은 것은?

 

① (B1) ADD, (E2) CLUSTER

② (D1) FROM, (D2) WHERE

③ (E1) PRIMARY, (D2) WHERE

④ (B1) WHERE, (E2) COLUMN

 

 

61. NoSQL을 관계형 데이터베이스와 비교하여 설명한 내용 중 가장 거리가 것은?

 

① NoSQL은 가용성과 병렬성을 높이기 위하여 일관성을 관계형 데이터베이스보다 강하게 한 개념이다.

② NoSQL은 관계 데이터베이스 보다 트랜잭션 ACID의 유지를 중요시 하지 않는다.

③ NoSQL은 컬럼 기반, Document 기반, key-value 기반, 그래프 기반 자료구조 등을 사용한다.

④ NoSQL은 빅데이터와 실시간 웹 응용에 많이 사용 되고 있다.

 

62. SQL/XML 표준이 2003년에 제안되어 XML을 SQL에서 사용하는 방법이 기술되었다. XML과 SQL에 대한

관계형 DBMS 벤더들의 지원에 대한 다음 설명 중 가장 거리가 것은?

 

① SQL 질의의 결과로 XML을 생성할 수 있다.

② SQL INSERT 문의 입력으로 XML을 사용할 수 있다.

③ SQL문을 XQuery문에서 사용할 수 있다.

④ 데이터 저장시 속성의 타입으로 XML 타입을 지정할 수 있다.

 

63. 저장 프로시저에 대한 다음 설명 중 가장 거리가 것은?

 

① 프로시저를 미리 만들어 두어 성능 향상과 코드 재사용의 장점이 있다.

② 한곳에 저장해 둠으로써 접근 제어가 어려워 보안에 취약하다.

③ SQL CREATE 구문을 이용하여 사용자가 생성할 수 있다.

④ 인자를 통하여 값을 전달하며 또 출력 값을 받아 낼 수도 있다.

 

64. 다음의 릴레이션과 SQL 질의를 보고, 해당 SQL 질의의 의미로서 가장 적절한 것은? (단, 릴레이션 스키마에서 속성이름이 같은 것은 참조 관계에 있음을 의미한다.)

(릴레이션)
회원(회원번호, 회원이름)
주문(주문번호, 음료번호, 회원번호) : 회원의 음료
주문을 저장한 테이블
커피(커피이름, 음료번호)
홍차(홍차이름, 음료번호)
(SQL 질의)
select 회원번호 from 회원
where
exists (select *
from 주문 inner join 커피 on 주문.
음료번호 = 커피.음료번호
where 주문.회원번호 = 회원.회원번호)
AND
exists (select *
from 주문 inner join 홍차 on 주문.
음료번호 = 홍차.음료번호
where 주문.회원번호 = 회원.회원번호)

① 커피를 주문한 회원의 회원번호

② 홍차를 주문한 회원의 회원번호

③ 홍차 혹은 커피를 주문한 회원번호

④ 홍차와 커피를 주문한 회원번호

 

65. JDBC를 사용하는 API에 대한 설명이다. 가장 거리가 것은?

 

① getConnection() - URL, 접속 인자 등을 주어 데이터베이스 연결 객체를 생성한다.

② createStatement() - 연결을 위한 Statement 객체를 생성한다.

③ executeUpdate() - SQL 질의문을 실행하여 투플 들을 결과로 반환한다.

④ next() - 커서를 다음 투플로 이동한다.

 

66. 다음 트랜잭션 T1, T2가 동시에 실행될 때 공유락과 배타락을 사용한다. 트랜잭션 T1의 첫 번째 질의의 수행결과는 20이고, 두 번째 질의의 수행결과는 21이 나왔다. 동일한 트랜잭션에서 동일한 데이터를 조회할 경우, 같은 값이 나와야하는데 다른 값이 나오는 현상이 발생하였다. 이 현상을 방지하기 위하여 (가)의 문장으로 사용하기에 적합하지 않는 것은? (2개 선택)

① SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

② SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

③ SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

④ SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

 

67. 다음은 고객이 상품 X와 상품 Y를 구매한 빈도를 나타내는 다이어그램이다. 전체 거래 건수는 t, n1과 n2는 X, Y 각각에 대한 거래 수를 나타내며, m은 X와 Y를 같이 구매한 거래 수를 나타낸다. 연관 규칙을 찾기 위한 지지도(support)({상품 X, 상품 Y})에 해당되는 것은?

① ((n1+n2)-m)/t

② (n1+n2)/t

③ m/t

④ m/(n1+n2-m)

 

68. 다음 릴레이션 R과 S에 대해 어떤 연산을 했을 때, 결과 릴레이션 RS가 얻어진다. RS가 얻어지도록 하는 어떤 연산은 무엇인가?

① R과 S의 자연조인(natural join)

② R과 S의 완전외부조인(full outer join)

③ R과 S의 세미조인(semijoin)

④ R과 S의 외부합집합(outer union)

 

69. account(cust_name, branch_name, balance) 릴레이션에 대해 트랜잭션 T1, T2가 동시성 제어(concurrency control)를 하지 않고 동시에 수행될 때, 어떤 문제가 발생되는가?

① 오손 데이터 읽기(dirty read)

② 갱신 손실(lost update)

③ 모순성(inconsistency)

④ 반복할 수 없는 읽기(unrepeatable read)

 

70. 다음의 ER 다이어그램은 Employees(사원)와 Dependents(부양가족)의 관계를 나타낸 것이다. 이 ER 다이어그램은 한 명의 사원에 대해 여러 명의 부양가족이 존재할 수 있는 1:N 관계이고, 사원은 주 개체이고 부양가족은 종속 개체이다. 사원의 기본 키는 ssn이고 특정 사원에 대해 부양가족을 구별하는 애트리뷰트는 pname이다. 이 ER 다이어그램을 관계 데이터베이스 스키마로 매핑한 것 중 가장 적절한 것은?

① Employees(ssn, name, lot), Dependents(pname, age), Policy(ssn, cost)

② Employees(ssn, name, lot), Dependents(pname, age), Policy(pname, cost)

③ Employees(ssn, name, lot, pname, cost), Dependents(pname, age)

④ Employees(ssn, name, lot), Dependents(pname, age, cost, ssn)

 

 

71. 다음 표는 다중 단위 크기 로킹(multiple granularity locking)을 위한 로크 호환성 행렬을 나타 낸다. 표의 ➊과 ➋에 들어갈 내용으로 바른 것은?

① ➊ = Yes, ➋ = Yes

② ➊ = Yes, ➋ = No

③ ➊ = No, ➋ = Yes

④ ➊ = No, ➋ = No

 

72. 관계 대수에서 기본 연산은 하나의 논리적 기능을 수행하는 연산으로 다른 연산을 이용하여 대체할 수 없는 연산이고, 복합 연산은 기본 연산을 이용하여 그 연산의 기능을 대체할 수 있는 연산이다. 다음의 관계 대수 연산 중 복합 연산에 해당하는 것은? (2개 선택)

 

① 디비전(division)

② 교집합(intersection)

③ 차집합(set-difference)

④ 카티션 프로덕트(cartesian product)

 

73. 다음 Sailors, Reserves, Boats 릴레이션에 대해 아래와 같은 질의를 수행한다고 가정하자. 질의의 실행결과 릴레이션의 차수(degree)와 카디날리티 (cardinality)는 각각 얼마인가?

대표

① 차수 = 2, 카디날리티 = 2

② 차수 = 2, 카디날리티 = 3

③ 차수 = 2, 카디날리티 = 4

④ 차수 = 3, 카디날리티 = 2

 

74. 데이터 마이닝에서 연관(association)이란 데이터 베이스에 있는 어떤 값들 사이에 존재하는 상관 관계이다. 연관 규칙 A → B는 전제조건 A가 참이되면 결론부 B도 참이 된다는 것을 의미한다. 다음과 같은 고객들의 구매 상품 리스트에서 연관 규칙 ‘라면 → 계란’에 대한 지지도(support)와 신뢰도 (confidence)는 각각 얼마인가?

① 지지도 87.5%, 신뢰도 60%

② 지지도 87.5%, 신뢰도 75%

③ 지지도 60%, 신뢰도 75%

④ 지지도 75%, 신뢰도 60%

 

75. 다음은 아래 [수강] 릴레이션에 대한 설명이다. A와 B에 들어갈 설명 중 가장 적절한 것은?

수강 릴레이션은 A를 위배하기 때문에 B에 속한다. 단, 수강 릴레이션의 기본 키는 (학번, 과목명)이고, 수강 릴레이션에 아래의 함수 종속성도 존재한다.
학번 → 이름
학번 → 지도교수

[수강]

① A : 이행 함수 종속, B : 1 정규형

② A : 완전 함수 종속, B : 1 정규형

③ A : 이행 함수 종속, B : 2 정규형

④ A : 완전 함수 종속, B : 2 정규형

 


 

 

정답)

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
①,②