데이터베이스론-A정답(2021-04-22 / 273.2KB / 295회)
데이터베이스론 A 책형 1 쪽 데이터베이스론 문 1. 물리적 데이터 독립성과 관련된 설명으로 옳은 것은? ① 데이터베이스 시스템 내부에서 포인터를 사용할 수 없다. ② 동일한 릴레이션의 튜플(tuple)들은 동일한 파일에 저장한다. ③ 데이터를 접근하기 위해서는 반드시 인덱스(index)를 사용한다. ④ 사용자는 튜플을 접근하기 위해서 질의(query)를 사용한다. 문 2. 관계형 데이터베이스에서 외래키(foreign key)와 참조 무결성 (referential integrity)에 대한 설명으로 옳은 것은? ① 외래키는 기본키(primary key)가 될 수 없다. ② 참조한 외래키와 참조된 기본키는 반드시 동일한 도메인을 가질 필요는 없다. ③ 외래키 값은 참조된 릴레이션의 애트리뷰트에 존재하는 값이거나 NULL 값이어야 한다. ④ 참조 무결성은 릴레이션 내의 튜플을 유일하게 식별하기 위해 사용된다. 문 3. SQL에 대한 설명으로 옳지 않은 것은? ① 비절차적(nonprocedural) 언어이다. ② 내장(embedded) SQL은 선행컴파일(precompile)이 필요하다. ③ 대화형(interactive) SQL과 달리 내장 SQL에서는 SELECT 문은 사용하지 않고 커서(cursor)를 이용한 FETCH 문을 사용한다. ④ 동적(dynamic) SQL에서는 실행 시간(runtime)에 SQL 문을 입력할 수 있다. 문 4. 데이터베이스의 접근 경로(access path)로 사용되는 인덱스 선정 지침으로 옳지 않은 것은? ① 기본키와 외래키는 인덱스를 정의하는 중요한 후보이다. ② 자주 갱신되는 애트리뷰트에는 인덱스를 정의하여 빠르게 검색하는 것이 효율적이다. ③ 대량의 데이터를 삽입하는 경우 인덱스를 제거하고 데이터를 삽입한 후에 다시 인덱스를 생성하는 것이 효율적이다. ④ 일반적으로 정수형 애트리뷰트에 인덱스를 만드는 것이 효율적 이다. 문 5. 파일 시스템(file system)과 비교하여 DBMS가 갖는 장점으로 옳지 않은 것은? ① 모든 데이터를 데이터베이스로 통합하여 관리하므로 중복성과 불일치가 감소된다. ② 프로그램과 데이터를 분리함으로써 데이터의 변경으로 인해 프로그램을 수정해야 하는 종속성(dependency)이 감소된다. ③ 데이터의 일관성을 유지하기 위해 동시성 제어(concurrency control) 기법을 제공하므로 파일 시스템에 비해 응답시간이 단축된다. ④ 데이터 접근 시 시스템이 고장 나는 경우에도 고장 나기 이전의 일관된 데이터베이스 상태로 복구할 수 있다. 문 6. 데이터베이스 저장 구조에 대한 설명으로 옳지 않은 것은? ① 힙 파일(heap file)은 파일에서 빈 공간이 있다면 레코드를 어느 위치에나 저장할 수 있다. ② 순차 파일(sequential file)은 검색 키 값의 순서에 따라 정렬된 형태로 레코드들을 저장한다. ③ 해싱 파일(hashing file)은 각 레코드의 애트리뷰트에 해싱 함수를 적용한 후 레코드들을 정렬하여 저장한다. ④ 다중테이블 클러스터링 파일(multitable clustering file)은 서로 다른 릴레이션들의 관련 레코드들을 같은 블록에 저장한다. 문 7. 데이터 객체들을 비밀 등급으로 분류하고 사용자들에게 여러 허가 등급을 지정하여 양자 간의 관계에 따라 판독이나 기록에 제한을 주는 데이터베이스 보안 기법은? ① 강제적 접근 제어(mandatory access control) ② 역할기반 접근 제어(role-based access control) ③ 임의적 접근 제어(discretionary access control) ④ 흐름 제어(flow control) 문 8. 트랜잭션(transaction)의 동작에 대한 설명으로 옳지 않은 것은? ① 트랜잭션이 완료(committed)되었다는 사실을 DBMS로부터 응용프로그램이 확인한 경우라도 하드디스크에 위치한 데이터 베이스 파일에는 해당 트랜잭션에 의해 변경된 내용이 반영 되어 있지 않을 수도 있다. ② 트랜잭션이 마지막 명령문을 수행하여 부분완료(partially committed)된 상태에서도 철회(aborted) 상태로 옮겨갈 수 있다. ③ DBMS는 아직 완료되지 않은 트랜잭션이 변경한 내용을 데이터베이스 버퍼 공간의 제약으로 인하여 하드디스크의 데이터베이스 파일에 기록할 수 있다. ④ 시스템 고장으로 트랜잭션이 철회된 경우, 회복 관리자에 의해 복구가 수행된 경우라도 하드디스크에 위치한 데이터베이스 파일에는 해당 트랜잭션에 의해 변경된 내용이 반영될 수 있다. 문 9. 다음의 ERD(Entity-Relationship Diagram)에서 성립하는 함수 종속성(functional dependency)으로 옳은 것은? (단, 개체 집합 (entity set) A, B, C의 기본키는 각각 a, b, c이다) A B C a b c 1 n n ① a → b, a → c ② b → a, c → a ③ a → bc ④ bc → a 데이터베이스론 A 책형 2 쪽 문 10. 다음과 같은 데이터베이스 스키마(schema)와 이에 대한 설명을 참조하여 질의 “학과명 ‘컴퓨터공학과’에서 개설한 교과목 모두를 이수한 학생의 학번과 성명을 검색하시오”를 작성한 SQL 문장 으로 옳은 것은? 교과목(교과목번호, 교과목명, 학과명, 학점) 이수(강좌번호, 학번, 교과목번호, 성적) 강좌(강좌번호, 교과목번호, 개설학년도, 개설학기, 분반) 학생(학번, 성명, 학과명, 입학연도) ○ 밑줄 친 애트리뷰트는 기본키이고, 이탤릭체인 애트리 뷰트는 외래키이다. ○ 이수 릴레이션의 강좌번호는 강좌 릴레이션의 강좌 번호를 참조하고 학번은 학생 릴레이션의 학번을 참조 하며 교과목번호는 교과목 릴레이션의 교과목번호를 참조한다. ○ 강좌 릴레이션의 교과목번호는 교과목 릴레이션의 교과목번호를 참조한다. ○ 이수 릴레이션의 교과목번호는 질의 성능 향상을 위하여 중복시켰다. ○ 모든 학과들은 1개 이상의 교과목들을 개설하고 있는 것으로 가정한다. ① SELECT DISTINCT A.학번, A.성명 FROM 학생 AS A, 이수 AS B WHERE A.학번 = B.학번 AND EXISTS (SELECT C.교과목번호 FROM 교과목 AS C WHERE B.교과목번호 = C.교과목번호 AND C.학과명 = ‘컴퓨터공학과’); ② SELECT A.학번, A.성명 FROM 학생 AS A WHERE NOT EXISTS ((SELECT 교과목번호 FROM 교과목 WHERE 학과명 = ‘컴퓨터공학과’) EXCEPT (SELECT B.교과목번호 FROM 이수 AS B WHERE A.학번 = B.학번)); ③ SELECT DISTINCT A.학번, A.성명 FROM 학생 AS A, 이수 AS B WHERE A.학번 = B.학번 AND B.교과목번호 = ALL (SELECT 교과목번호 FROM 교과목 WHERE 학과명 = ‘컴퓨터공학과’); ④ SELECT A.학번, A.성명 FROM 학생 AS A WHERE A.학번 IN (SELECT B.학번 FROM 이수 AS B WHERE A.학번 = B.학번 AND EXISTS (SELECT C.교과목번호 FROM 교과목 AS C WHERE C.학과명 = ‘컴퓨터공학과’ AND C.교과목번호 = B.교과목번호)); 문 11. 다음의 설명에 해당하는 데이터베이스 벤치마크 표준은? ○ 주문의 입력과 전달, 결제 정보 기록, 주문의 상태 점검, 재고 수량 모니터링 등의 작업으로 구성되어 있다. ○ 성능의 측정은 분당 트랜잭션 수로 나타낸다. ○ OLTP 시스템의 성능 측정을 위하여 가장 널리 쓰이는 벤치마크이다. ① TPC-W ② TPC-C ③ TPC-D ④ TPC-H 문 12. 다음의 검사점(checkpoint)이 있는 로그(log)에서 시스템 고장이 발생하는 경우 재수행(redo)을 해야 하는 트랜잭션(transaction)만을 모두 고른 것은? 시간 Tc T1 T2 T3 Tc Tf T4 T5 T6 T7 T8 Tc : 검사점 Tf : 시스템 고장 ① T3, T5, T6, T7, T8 ② T3, T5, T8 ③ T6, T7 ④ T1, T2, T4 문 13. 다음 관계 대수식과 다른 결과를 생성하는 SQL 문은? × ○ , 는 릴레이션 ○ r1, r2는 릴레이션 의 애트리뷰트 ○ s1, s2는 릴레이션 의 애트리뷰트 ① SELECT DISTINCT R.r2 FROM R WHERE EXISTS (SELECT S.s1 FROM S WHERE S.s1=R.r1 AND S.s2=100); ② SELECT DISTINCT A.r2 FROM R AS A, S AS B WHERE A.r1=B.s1 AND B.s2=100; ③ SELECT DISTINCT R.r2 FROM R NATURAL JOIN S WHERE S.s2=100; ④ SELECT DISTINCT R.r2 FROM R WHERE R.r1 IN (SELECT S.s1 FROM S WHERE S.s2=100); 데이터베이스론 A 책형 3 쪽 문 14. 관계형 데이터베이스를 설계할 때 잘 형성된 릴레이션을 만들기 위한 보이스-코드 정규형(BCNF)의 기초가 되는 규칙은? ① 모든 릴레이션은 관계로 정의되어야 한다. ② 모든 제약조건은 결정자(determinant)여야 한다. ③ 모든 도메인은 제약조건에 논리적인 순서가 있어야 한다. ④ 모든 결정자는 수퍼키(super key)여야 한다. 문 15. 두 트랜잭션 T , T가 2단계로킹규약(2-phase locking protocol)을 만족하도록 로크 명령 l(data_item)과 언로크 명령 u(data_item)을 올바르게 삽입한 것은? (단, r(x), w(x)는 트랜잭션 T가 데이터 항목(data_item) x를 읽고 쓰는 연산을 나타낸다) ① T : l(x); r(x); w(x); u(x); l(y); r(y); w(y); u(y); T : l(x); r(x); w(x); l(y); u(x); r(y); w(y); u(y); ② T : l(x); r(x); w(x); u(x); l(y); r(y); w(y); u(y); T : l(x); r(x); w(x); u(x); l(y); r(y); w(y); u(x); ③ T : l(x); l(y); r(x); w(x); r(y); w(y); u(x); u(y); T : l(x); r(x); w(x); u(x); l(y); r(y); w(y); u(y); ④ T : l(x); l(y); r(x); w(x); r(y); w(y); u(y); u(x); T : l(x); r(x); w(x); l(y); u(x); r(y); w(y); u(y); 문 16. 데이터베이스 응용을 개발하기 위해서 SQL 명령들을 호스트 언어에 내장하기도 한다. 이때, 커서(cursor)를 이용하여 SQL과 호스트 언어 사이의 불일치(mismatch)를 해결한다. 커서에 대한 설명으로 옳지 않은 것은? ① 커서를 이용해 릴레이션의 튜플(tuple)을 접근할 때는 읽기만 수행할 수 있다. ② 커서를 이용하면 호스트 언어에서 릴레이션으로부터 한 번에 하나의 튜플을 인출(fetch)할 수 있다. ③ 커서를 개방(open)한 후에만 튜플을 인출할 수 있다. ④ 커서를 정의하려면 DECLARE CURSOR 문을 사용하고, 정적 커서(static cursor)를 선언할 때에는 완전한 SELECT 문이 DECLARE CURSOR 문에 포함되어야만 한다. 문 17. 대학에서 3, 4학년은 교수로부터 진로지도를 받는다. 또한 학생 간 멘토링(mentoring)도 실시하는데 1 ~ 3학년이 4학년으로부터 조언을 받는다. 이때, 4학년을 멘토(mentor), 1 ~ 3학년을 멘티 (mentee)라고 부른다. 이에 대한 관계 데이터베이스 스키마 (schema)와 조건이 다음과 같을 때 외래키(foreign key)로 선언할 수 있는 애트리뷰트는 모두 몇 개인가? (단, 밑줄 친 애트리뷰트는 기본키를 나타낸다) 학생(학번, 이름, 학과) 교수(교수ID, 이름, 학과) 지도(교수ID, 학번, 내용) 멘토링(멘토, 멘티, 내용) ○ 진로지도를 담당하지 않는 교수도 있을 수 있다. ○ 진로지도를 받지 않는 3, 4학년 학생도 있을 수 있다. ○ 멘토링 프로그램에 멘토 또는 멘티로 참가하지 않는 학생도 있을 수 있다. ① 1개 ② 2개 ③ 3개 ④ 4개 문 18. 다음 SQL 트리거 명령문은 직원(EMPLOYEE)의 급여(Salary)를 갱신하면 그 직원이 근무하는 부서(DEPARTMENT)의 전체 직원급여(Total_sal)도 자동으로 갱신하는 기능을 수행한다. 빈칸에 들어갈 내용으로 적절한 것은? (단, Dno는 부서번호이다) CREATE TRIGGER SALARY_TRIGGER WHEN (N.Dno IS NOT NULL) UPDATE DEPARTMENT SET Total_sal = Total_sal + N.Salary - O.Salary WHERE Dno = N.Dno; ① AFTER UPDATE OF Salary ON EMPLOYEE REFERENCING OLD ROW AS O, NEW ROW AS N FOR EACH ROW ② BEFORE UPDATE OF EMPLOYEE REFERENCING OLD ROW AS O, NEW ROW AS N FOR EACH ROW ③ AFTER UPDATE OF EMPLOYEE REFERENCING OLD TABLE AS O, NEW TABLE AS N FOR EACH STATEMENT ④ BEFORE UPDATE OF Salary ON EMPLOYEE REFERENCING OLD TABLE AS O, NEW TABLE AS N FOR EACH STATEMENT 문 19. XML에 대한 설명으로 옳지 않은 것은? ① XML 스키마(schema)는 XML 문서의 구조를 기술하기 위한 언어로, 사용자 정의 타입과 타입의 상속, 무결성 제약조건 등을 정의하는 수단을 제공한다. ② XML 문서는 요소와 속성들을 노드로 갖는 트리로 모델링될 수 있고, XPath 경로식을 이용하여 특정 요소나 속성을 지정 하고 검색할 수 있다. ③ XPath는 XML 데이터에 대한 표준 질의 언어로, XQuery에 비해 다양한 질의를 제공하여 XML 요소나 속성에 대한 선택, 조인, 정렬, 집계함수 등을 이용한 질의를 표현할 수 있다. ④ 스키마가 존재하는 XML 데이터를 관계형 데이터베이스에 저장하기 위해 각 요소 타입을 릴레이션으로 사상(mapping) 하는 방법은 XML 질의 처리 시 많은 조인 연산을 발생시킬 수 있다. 문 20. 데이터 마이닝(data mining)의 연관규칙을 이용하여 다음과 같은 장바구니를 분석하였다. 빵과 우유 사이의 연관규칙에 대한 신뢰도 (confidence)와 지지도(support) 계산 결과로 옳은 것은? 트랜잭션ID 구매품목 1 빵, 맥주, 우유 2 소고기, 맥주, 우유, 빵 3 우유, 빵, 사이다 4 사이다, 빵, 우유 5 소고기, 맥주, 사이다, 빵 6 사이다, 소고기, 맥주 ① ‘빵 → 우유’에 대한 신뢰도는 4/5이고 지지도는 4/6이다. ② ‘우유 → 빵’에 대한 신뢰도는 4/6이고 지지도는 4/5이다. ③ ‘빵 → 우유’에 대한 신뢰도는 4/4이고 지지도는 5/6이다. ④ ‘우유 → 빵’에 대한 신뢰도는 4/5이고 지지도는 4/6이다.