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

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

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

51. 데이터베이스 성능 향상을 위한 설명으로 틀린 것을 모두 고르시오. (2개 선택)

 

① 정렬 속도와 그룹화 속도를 향상시키기 위해서 SQL문의 ORDER BY절과 GROUP BY절에 자주 사용되는 애트리뷰트에 인덱스를 정의하는 것이 좋다.

② 외래 키(foreign key)는 인덱스로 선정하지 않는 것이 좋다.

③ 하나의 애트리뷰트에 들어있는 상이한 값들의 개수가 레코드 수와 비슷하고, 그 애트리뷰트가 동등 조건에 사용되는 경우, 클러스터링 인덱스를 생성하면 성능 향상 효과가 크다.

④ 갱신이 빈번하게 일어나는 릴레이션에는 인덱스를 많이 만드는 것을 피해야 한다.

 

52. 두 개의 릴레이션 student(sno, sname, address, score, dept)와 department(dno, dname)가 있을 때, SQL문 "SELECT * FROM student s, department d WHERE s.dept > 100;" 을 수행한다고 가정하자. 위 질의의 결과 릴레이션의 차수(degree)와 카디날리티 (cardinality)는 얼마인가? (단, 릴레이션 student의 애트리뷰트 ‘dept’는 릴레이션 department의 애트리뷰트 ‘dno’를 외래키(foreign key)로 참조한다)

① 차수 = 5, 카디날리티 = 3

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

③ 차수 = 7, 카디날리티 = 9

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

 

53. 두 개의 릴레이션 직원과 부서에 대한 정의와 릴레이션 인스턴스(instance) 예가 다음과 같을 때, 주어진 SQL문들을 차례대로 실행을 시도하였을 때, 최종 SELECT 문의 실행 결과로 맞는 것은?

○ 릴레이션 부서와 직원에 대한 정의와 인스턴스의 예
CREATE TABLE 부서 (부서번호 INTEGER, 부서이름 CHAR(20),
PRIMARY KEY (부서번호));
CREATE TABLE 직원 (이름 CHAR(20), 부서번호 INTEGER, PRIMARY KEY (이름),
FOREIGN KEY 부서번호 REFERENCES 부서(부서번호)
ON DELETE RESTRICT
ON UPDATE CASCADE);



○ SQL 문장

DELETE FROM 부서 WHERE 부서번호 = 1;
UPDATE 부서 SET 부서번호 = 5 WHERE 부서번호 = 2;
SELECT DISTINCT(부서번호) FROM 직원;

① 1 ② 1 ③ 1 ④ 1

      2      2      5       3

              3                4

              4                5

 

54. 데이터베이스에서 널(null) 값의 적용 예로 가장 거리가 것은?

 

① 비과세 대상자 A의 경우, ‘세금납부’ 항목

② 휴대전화번호를 공개하고 싶지 않은 B의 경우, ‘휴대전화번호’ 항목

③ 생년월일을 알 수 없는 C의 경우, ‘생년월일’ 항목

④ 경제성장률이 멈춘 D 국가의 경우, ‘경제성장률’ 항목

 

55. 다음과 같이 애트리뷰트 X, Y, Z를 포함하는 릴레이션 스키마 R과 이 스키마에 포함되어 있는 함수적 종속성(functional dependency)이 있다고 가정하자. 릴레이션 R은 어떤 정규형에 위배되는가? 그리고 그 정규형을 만족하도록 릴레이션 R을 정규화 하려면 릴레이션 R을 어떻게 분할해야 하는가? (단, 분해된 릴레이션들을 조인하면

원래의 릴레이션 R이 되어야 한다)

R(X, Y, Z)
{X, Y} → Z
Z → Y

① 3 정규형, (X, Y)와 (Y, Z)

② 3 정규형, (X, Z)와 (Y, Z)

③ 보이스-코드(Boyce-Codd) 정규형, (X, Y)와 (Y, Z)

④ 보이스-코드(Boyce-Codd) 정규형, (X, Z)와 (Y, Z)

 

56. 다음과 같은 ER 다이어그램을 관계 데이터베이스 스키마로 변환하였을 때 가장 적절한 것은? (단, 밑줄은 기본키이고, 점선 밑줄은 부분키이다. 또한 관계 타입에 이중 실선으로 연결된 엔티티 타입은 전체 참여 엔티티 타입이다)

① 부서(부서번호, 예산), 직원(직원번호, 연봉), 가족(이름, 나이)

② 부서(부서번호, 예산, 직원번호), 직원(직원번호, 연봉, 부서번호), 가족(이름, 나이, 직원번호)

③ 부서(부서번호, 예산, 직원번호), 직원(직원번호, 연봉, 부서번호), 가족(직원번호, 이름, 나이)

④ 부서(부서번호, 직원번호, 예산), 직원(직원번호, 연봉, 부서번호), 가족(이름, 나이, 직원번호)

 

57. 데이터 웨어하우스(data warehouse)와 데이터 마이닝(data mining)의 관련 기본 개념에 대한 다음 설명 중 옳은 것은?

 

① 특이점 분석(outlier analysis)은 데이터들의 일반적인 행위나 모델에 순응하지 않는 데이터 객체들을 탐사하는 과정으로서 통계적 검사, 거리 측정, 편차기반 방법(deviation-based method) 등이 사용된다.

② 온라인 트랜잭션 처리(OLTP) 시스템은 주로 사용자나 지식 작업자들에게 데이터 분석과 의사결정을 지원하는 반면, 데이터 웨어하우스 시스템은 구매, 제조, 창고, 은행, 급여, 회계 등의 업무를 지원한다.

③ 분류(classification)는 어떤 미지의 데이터 객체들을 클래스 내의 유사도는 최대화하고 클래스 간의 유사도는 최소화하도록 객체 그룹들을 생성함으로써 새로운 데이터 객체들의 분석 모델 생성에 유용하다.

④ 클러스터링(clustering)은 입력되는 데이터 객체들을 이미 알려진 클래스 레이블로 분류하는 모델을 찾는 과정으로서 if-then 규칙, 결정 트리, 수학 공식, 뉴럴 네트워크 등의 방법이 있다.

 

58. 두 개의 릴레이션 사원, 피부양자에서 사원은 (사원번호, 이름, 주소)를 애트리뷰트로 갖고, 피부양자는 (이름, 나이)를 애트리뷰트로 갖는다고 가정하자. 모든 사원의 사원번호는 서로 다른 값을 갖고, 한 사원의 부양가족 중에는 같은 이름을 가진 사람이 없다. 그러나 서로 다른 사원의 부양가족의 이름이 같을 수는 있다. 사원들이 그들의 부양가족들을 위해 보험증권을 구매한다고 가정하자. 각 보험증권에 의해 누가 보호되는가를 포함하여 보험증권에 관한 정보를 기록하고자 한다. 만약 한 사원이 회사를 그만두면, 그 사원이 소유한 어떠한 보험증권도 종료되고 모든 관련된 보험증권 정보와 피부양자 정보를 데이터베이스로부터 삭제한다. 이와 같은 상황을 ER 다이어그램으로 올바르게 나타낼 때, 이 다이어그램에 포함시킬 필요 성이 가장 낮은 것은?

 

① 약한 엔티티 집합(weak entity set)

② 관계 타입의 키(key of relationship type)

③ 일-대-다 관계 집합(1:N relationship set)

④ 부분 키(partial key)

 

59. 관계 대수(relational algebra)에서 기본 연산은 하나의 논리적 기능을 수행하는 연산으로서 다른 연산을 이용하여 대체할 수 없는 연산이고, 복합 연산은 기본 연산을 이용하여 그 연산의 기능을 대체할 수 있다. 복합 연산인 디비전 (division)을 기본 연산으로 대체할 때 사용할 필요가 없는 기본 연산은?

 

① 프로젝션(projection)

② 실렉션(selection)

③ 차집합(difference)

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

 

60. 확장 ER 모델(Enhanced ER model)에서 EMPLOYEE 엔티티 타입이 SECRETARY, TECHNICIAN, ENGINEER 등 3개의 서브클래스 엔티티 타입으로 세분화 (specialization)된다고 하자. EMPLOYEE의 한 인스턴스(instance)는 이 세분화에 서 최대 1개의 서브클래스에만 속할 수 있고, 어느 서브클래스에도 속하지 않는 EMPLOYEE 인스턴스도 존재할 수 있다고 하자. 이 세분화에 대한 제약사항을 분리 제약(disjointness constraint)과 완전 제약(completeness constraint)으로 가장 적절하게 설계한 것은?

 

① 분리 제약: disjoint, 완전 제약: total

② 분리 제약: disjoint, 완전 제약: partial

③ 분리 제약: overlap, 완전 제약: total

④ 분리 제약: overlap, 완전 제약: partial

 

 

61. 다음은 회사 데이터베이스의 일부를 UML 형태로 표현한 것이다. 이 모델에 대한 설명으로 틀린 것을 모두 고르시오. (2개 선택)


① 어느 STAFF 멤버가 어느 DIVISION에 속해 있는지를 알 수 있다.

② 어느 STAFF 멤버가 어느 BRANCH에 속해 있는지를 알 수 있다.

③ 이러한 모델에서 발생하는 문제를 팬 트랩(fan trap)이라고 한다.

④ 이러한 모델에서 발생하는 문제를 캐즘 트랩(chasm trap)이라고 한다.

 

62. 각각 학생과 학과의 정보를 저장하는 릴레이션 student와 department가 있다고 가정하자. 이 때 “2명 이상의 학생을 갖는 학과에 대해, 성적(score) 평균이 80 이상인 학과의 학과코드(dno), 학과명(dname), 학생수를 검색하시오”라는 질의를 SQL문으로 바르게 표현한 것은?

대표

① SELECT d.dno, d.dname, count(*)

FROM student s, department d

WHERE s.dno = d.dno and avg(score) >= 80

GROUP BY d.dno, d.dname

HAVING count(*) >= 2;

② SELECT d.dno, d.dname, count(*)

FROM student s, department d

WHERE s.dno = d.dno

GROUP BY d.dno, d.dname

HAVING count(*) >= 2 and avg(score) >= 80;

③ SELECT d.dno, d.dname, count(*)

FROM student s, department d

WHERE s.dno = d.dno and

s.dno = (SELECT dno FROM student

GROUP BY dno

HAVING avg(score) >= 80)

GROUP BY d.dno, d.dname;

④ SELECT d.dno, d.dname, count(*)

FROM student s, department d

WHERE s.dno = d.dno and

dno IN (SELECT dno, dname FROM student

GROUP BY dno

HAVING avg(score) >= 80)

GROUP BY d.dno, d.dname;

 

63. 사용자 Lee가 릴레이션 R(A, B)를 생성한 후, <보기>와 같은 권한부여 SQL문들을 실행하였다. 그 이후에 실행할 수 없는 SQL문을 모두 고르시오. (2개 선택) (단, A, B의 데이터 타입은 정수형이다)

<보 기>
Lee: GRANT SELECT, INSERT, DELETE ON R TO Kim WITH GRANT OPTION;
Kim: GRANT SELECT, INSERT ON R TO Park;
Lee: REVOKE GRANT OPTION FOR SELECT ON R FROM Kim;
Lee: REVOKE INSERT ON R FROM Kim CASCADE;

① Kim: SELECT * FROM R WHERE A = 100;

② Park: INSERT INTO R VALUES (200, 300);

③ Park: DELETE FROM R WHERE B = 400;

④ Park: SELECT * FROM R WHERE A = 500 AND B = 600;

 

64. 릴레이션 R의 정의와 인스턴스 예가 다음과 같을 때, 주어진 SQL문들을 차례대로 실행을 시도하였을 때, 최종 SELECT 문의 실행 결과로 맞는 것은?

○ 테이블 R의 정의와 인스턴스 예
CREATE TABLE R (NAME CHAR(20), PRIMARY KEY (NAME),
SALARY INTEGER CHECK(SALARY <= 400));
R의 인스턴스 예

○ SQL문
INSERT INTO R VALUES (‘김범수’, 400);
UPDATE R SET SALARY = 500 WHERE NAME = ‘박수병’;
INSERT INTO R VALUES (‘조정현’, 300);
DELETE FROM R WHERE NAME = ‘황진경’;
SELECT AVG(SALARY) FROM R;

① 250 ② 300 ③ 400 ④ NULL

 

65. 트랜잭션 관리의 회복 기법에서 체크포인트(checkpoint)를 사용한다고 가정하자. 다음과 같이 체크포인트가 사용될 때, 시스템 회복을 위해 REDO 연산을 수행해야 하는 트랜잭션에 해당하는 것은?

체크포인트 C1이 정상적으로 수행되었고 체크포인트 C2가 수행 중에 시스템 고장이 발생했다. 트랜잭션 T1은 C1 이전에 시작해서 C1 이전에 완료되었고, T2는 C1 이전에 시작해서 C2 이전에 완료되었다. T3은 C1 이전에 시작해서 C2 일 때 수행 중이었고 T4는 C1 이후에 시작해서 C2 이전에 완료되었다. T5는 C1 이후에 시작해서 C2 일 때 수행 중이었다.

① T1

② T2, T4

③ T3, T5

④ T2, T3, T4, T5

 

66. DBMS 종류별 특징을 설명한 내용 중 가장 거리가 것은?

 

① 계층형 DBMS는 네트워크 구조로 정보를 표현하기에 데이터 모델링 및 관리가 쉽다. IMS 등의 제품이 있다.

② 관계형 DBMS는 테이블 구조로 정보를 표현하며 SQL 언어를 지원한다. DB2, Oracle, SQL Server 등의 제품이 있다.

③ 객체지향 DBMS는 상속, 캡슐화를 지원하며 멀티미디어 정보 관리에 유용하다. Objectivity, O2, Versant 등의 제품이 있다.

④ 객체관계형 DBMS는 관계 데이터 모델과 객체지향 데이터 모델의 기능을 지원한다. UniSQL, Oracle 등의 제품이 있다.

 

67. 다음 중 데이터 웨어하우스(data warehouse)의 기본적인 OLAP(on-line analytical processing) 연산이 아닌 것은?

 

① translate 연산

② roll-up과 drill-down 연산

③ dice 연산

④ pivot(rotate) 연산

 

68. 다음의 클래스 계층(class hierarchy) 구조에 대한 설명 중 틀린 것을 모두 고르시오. (2개 선택) (단, 사람 클래스는 학생 클래스와 사원 클래스의 수퍼 클래스이고, 학생 클래스와 사원 클래스는 시간제학생 클래스의 수퍼 클래스이다)

① 학생 클래스는 사람 클래스의 애트리뷰트를 상속받을 수 있으나, 사원 클래스의 애트리뷰트는 상속받을 수 없다.

② 시간제학생 클래스는 학생 클래스와 사원 클래스의 애트리뷰트를 모두 상속받을 수 있다.

③ 시간제학생 클래스는 학생 클래스의 등록( ) 메소드와 사원 클래스의 등록( ) 메소드를 동시에 상속받을 수 있다.

④ 사람 클래스는 학생 클래스와 사원 클래스의 애트리뷰트는 상속 받을 수 있으나, 시간제학생 클래스의 애트리뷰트는 상속받을 수 없다.

 

69. SQL 1992(SQL2)의 4가지 격리 수준(isolation level) 중에서 한 트랜잭션 내에서 동일한 데이터를 두 번 읽을 때, 서로 다른 값을 읽는 경우가 발생할 수 있는 격리 수준을 모두 고르시오. (2개 선택)

 

① read committed

② serializable

③ repeatable read

④ read uncommitted

 

70. 다음과 같은 2개의 릴레이션이 있다고 가정하자. student의 기본기는 st_num이고, department의 기본키는 dept_num이다. 또한 student의 d_num은 department의 dept_num을 참조하는 외래키(foreign key)이다. 아래의 SQL문의 실행 결과는?

① 2 ② 3 ③ 4 ④ 5

 

 

71. 전통적인 데이터베이스와 데이터 웨어하우스(data warehouse)에 대한 설명으로 가장 거리가 것은?

 

① 데이터 웨어하우스에 있는 정보는 실시간으로 갱신되므로 소멸성(volatile)이다.

② 데이터베이스는 트랜잭션 중심의 응용을 위한 것이고, 데이터 웨어하우스는 의사 결정 지원을 위한 것이다.

③ 데이터베이스에 비해 데이터 웨어하우스는 과거의 데이터를 더 많이 요구하는 시계열(time-series)이나 동향 분석(trend analysis) 작업에 더 적합하다.

④ 데이터 웨어하우스는 데이터 분석과 질의 처리를 위해 최적화된 읽기-전용 (read-only) 데이터베이스이다.

 

72. 데이터베이스와 웹페이지간의 데이터 교환을 위해 개발된 XML의 주요 기술의 명칭을 올바르게 나열한 것은?

가. 한 XML 문서에서 다른 XML 문서로의 변환을 기술하는 XML 응용
나. XML 문서의 구조를 기술하는 XML 형식의 언어로 DTD를 확장하여 대체한 것
다. XML 문서의 파싱에 사용되며 XML 문서 전체를 한 번에 처리하여 트리의 형태로 표현하기 위한 API

        가                      나                        다

① XSLT         XML Schema        XQuery

② XPath       RDF                         SAX

③ XSLT         XML Schema      DOM

④ XSL           XPath                    XSLT

 

73. 다음 중 웹 2.0의 특징과 가장 거리가 것은?

 

① 이동성(mobility)과 시멘틱의 결합

② 플랫폼(platform)으로서의 웹

③ 집단 지성(collective intelligence)의 활용

④ 오픈 API를 사용한 매쉬업(mashup)

 

74. 다음은 회사 데이터베이스의 일부를 ER 다이어그램으로 표현한 것이다. 이 ER 다이어그램을 관계 데이터베이스 스키마로 변환한 것 중 가장 적절한 것은? (ER 다이어그램에서 이중선은 전체 참여, 밑줄 친 애트리뷰트명은 기본키 애트리뷰트를 표현한다. 아래 답 문항에서 밑줄은 기본키를, 이탤릭체는 외래키(foreign key)를 표현한다)

① EMPLOYEE (ENO, Name, PNO, Hours), PROJECT(PNO, Pname, Location)

② EMPLOYEE (ENO, Name), PROJECT(PNO, Pname, Location, ENO, Hours)

③ EMPLOYEE (ENO, Name), PROJECT(PNO, Pname, Location), WORKS_ON(Hours)

④ EMPLOYEE (ENO, Name), PROJECT(PNO, Pname, Location), WORKS_ON(ENO, PNO, Hours)

 

75. 다음은 고객들의 구매 상품 리스트를 나타낸다. 데이터 마이닝에서 연관 규칙 (association rule) ‘우유 → 빵’에 대한 지지도(support)와 신뢰도 (confidence)는 각각 얼마인가?

① 지지도 50%, 신뢰도 75%

② 지지도 67%, 신뢰도 50%

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

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

 


 

정답)

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
 
 

 


 
 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥