데이터베이스론정답(2023-03-25 / 679.8KB / 447회)
- 34 - 1. 논리적 데이터 독립성(logical data independence)과 물리적 데이터 독립성(physical data independence)에 관한 설명으로 가장 적절하지 않은 것은? ① 논리적 데이터 독립성은 개념 스키마가 변경되었을 때 외부 스키마에도 영향을 미치도록 지원한다. ② 물리적 데이터 독립성은 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원한다. ③ 논리적 데이터 독립성은 외부 스키마와 개념 스키마 사이의 사상(mapping)에 의해 제공된다. ④ 물리적 데이터 독립성은 응용프로그램의 변경 없이 성능 향상을 위한 파일의 접근구조를 수정할 수 있게 한다. 2. 파일시스템(file system)과 비교할 때 DBMS의 장점으로 가장 적절하지 않은 것은? ① 데이터 일관성을 유지한다. ② 데이터 중복성을 반드시 제거한다. ③ 데이터 복구, 보안, 동시성 제어 등을 수행한다. ④ 데이터 독립성을 유지한다. 3. 시스템 카탈로그(system catalog)라고도 불리는 데이터 사전 (data dictionary)의 저장내용으로 가장 적절하지 않은 것은? ① 릴레이션 이름 및 속성 ② 무결성 제약조건 ③ 릴레이션 스키마에 실제로 저장된 데이터의 집합 ④ 스키마 사이의 사상(mapping) 정보 4. RAID(Redundant Arrays of Independent Disk)에 관한 설명 으로 가장 적절하지 않은 것은? ① RAID 0은 여분의 데이터를 갖지 않고, 데이터의 갱신이 중복 해서 일어나지 않는다. ② RAID 1은 하나의 드라이브가 고장나면 또 다른 드라이브를 통해 복구할 수 없다. ③ RAID 3은 에러 검출・수정을 위해 별도의 패리티(parity) 드라 이브를 사용한다. ④ RAID 5는 별도의 패리티 드라이브 대신 모든 드라이브에 패리티 정보를 나누어 기록하는 방식이다. 5. B-트리, B *-트리, B +-트리에 관한 설명으로 가장 적절하지 않은 것은? ① B-트리에서 리프(leaf) 노드들은 모두 순차적으로 포인터로 연결되어 있다. ② B *-트리는 각 노드 분열의 빈도를 줄이기 위해 사용된다. ③ B +-트리에서 한 노드 안에 있는 키 값들은 오름차순이다. ④ B +-트리에서 모든 리프는 같은 레벨(level)이다. 6. 데이터 정의어에 관한 설명으로 가장 적절하지 않은 것은? ① CREATE는 테이블과 뷰를 생성하는 명령어이다. ② DROP은 테이블과 뷰를 삭제하는 명령어이다. ③ TRUNCATE는 테이블을 삭제하는 명령어이다. ④ RENAME은 테이블 이름을 변경하는 명령어이다. 7. 관계 대수의 연산자 중 교환법칙이 성립하지 않은 것은? ① 합집합 ② 교집합 ③ 자연조인 ④ 차집합 8. 단일 릴레이션 특징에 관한 설명으로 가장 적절한 것은? ① 동일 이름의 속성들을 가질 수 있다. ② 튜플의 순서가 다르면 다른 릴레이션이다. ③ 속성의 순서가 다르면 릴레이션 스키마도 다르다. ④ 각 속성의 값은 도메인에 정의된 값만을 가지며 그 값은 모두 단일값(원자값)이어야 한다. 9. 다음은 무결성의 종류에 관한 설명이다. ㉠∼㉢에서 설명 하는 무결성의 종류가 바르게 짝지어진 것은? ㉠ 기본키를 구성하는 어떠한 속성값도 NULL 값이거나 중복값을 가질 수 없다. ㉡ 컬럼 데이터 타입, 길이, 유효 값이 일관되게 유지되어야 한다. ㉢ 참조하는 릴레이션의 외래키와 참조되는 릴레이션의 기본키의 도메인은 서로 같아야 한다. 10. 외래키(foreign key)의 특징에 관한 설명으로 가장 적절하지 않은 것은? ① 외래키에는 NULL 값과 중복값 등이 허용된다. ② 한 릴레이션에 외래키가 여러 개 존재할 수 있다. ③ 외래키도 기본키(primary key)의 구성 요소가 될 수 있다. ④ 외래키 사용 시 참조하는 릴레이션과 참조되는 릴레이션은 다르다. 11. 관계 대수의 일반 집합 연산자의 결과 릴레이션의 cardinality로 가장 적절하지 않은 것은? 일반 집합 연산자 cardinality ① 합집합(R ∪ S) |R ∪ S| ≦ |R| + |S| ② 교집합(R ∩ S) |R ∩ S| ≦ MIN{|R|, |S|} ③ 차집합(R – S) |R – S| ≦ |S| ④ 카티션 프로덕트(R × S) |R × S| = |R| × |S| 12. 트리거(trigger)에 관한 설명으로 가장 적절하지 않은 것은? ① 트리거는 데이터의 변경문이 실행될 때 자동으로 실행되는 프로시저이다. ② 트리거는 사건(삽입, 삭제, 갱신) 전(BEFORE)에만 활성화 될 수 있다. ③ 트리거는 SELECT에 대해서는 이벤트가 발생하지 않는다. ④ 트리거를 사용하면 하나의 릴레이션이 변경될 때 다른 릴레이션도 변경될 수 있다. 13. Jung이 생성한 다음 부서 테이블에 따라 각 사용자가 갖게 되는 권한에 관한 설명으로 가장 적절하지 않은 것은? SQL 문 Jung의 권한부여 GRANT SELECT, INSERT, DELETE ON 부서 TO Son, Han WITH GRANT OPTION; Son의 권한부여 GRANT SELECT, DELETE ON 부서 TO Lee; ① Jung은 부서 테이블에 UPDATE 할 수 있는 권한이 있다. ② Son은 부서 테이블에 INSERT 할 수 있는 권한이 있다. ③ Han은 부서 테이블에 SELECT 할 수 있는 권한이 있다. ④ Lee는 부서 테이블에 INSERT 할 수 있는 권한이 있다. 【데이터베이스론】 ㉠ ㉡ ㉢ ① 개체 무결성 참조 무결성 도메인 무결성 ② 참조 무결성 도메인 무결성 개체 무결성 ③ 개체 무결성 도메인 무결성 참조 무결성 ④ 도메인 무결성 참조 무결성 개체 무결성 - 35 - 14. 다음 SQL 문은 테이블 DEPT와 EMP의 정의문 일부인데, 테이블 정보의 테이블 EMP에서 잘못된 행(row)을 모두 고른 것은? (단, SQL 문에서 제시된 내용만 고려할 것) SQL 문 CREATE TABLE DEPT ( ... PRIMARY KEY(DID)); CREATE TABLE EMP ( ... PRIMARY KEY(ENO), FOREIGN KEY(DID) REFERENCES DEPT(DID), CHECK(YEAR > 1970 AND YEAR < 2000)); 테이블 정보 DEPT DID DNAME A 인사부 B 총무부 C 영업부 EMP ENO ENAME YEAR DID ㉠ 1 이순신 1960 A ㉡ 2 박문수 1980 NULL ㉢ 3 홍길동 1977 D ㉣ 4 NULL 1995 B ㉤ NULL 손오공 1999 B ① ㉠㉡㉣ ② ㉠㉢㉤ ③ ㉢㉣㉤ ④ ㉡㉢㉣ 15. 다음 그림과 같은 로그(log) 기록을 가지는 4개의 트랜잭션 (T1∼T4)을 복구하기 위한 갱신방법에 따른 회복기법으로 올바르게 짝지어진 것은? 즉시 갱신 지연 갱신 ① UNDO : T2 REDO : T2 ② REDO : T3 REDO : T3 ③ UNDO : T3 REDO : T2 ④ REDO : T2 REDO : T3 16. 트랜잭션의 동시성에 관한 설명으로 가장 적절하지 않은 것은? ① 2단계 락킹(two phase locking)을 사용하면 데드락(deadlock) 현상은 발생하지 않는다. ② 데이터에 공유락(shared lock)이 걸려 있다면 다른 트랜잭션의 공유락 요청을 허용해도 된다. ③ 두 개 이상의 트랜잭션이 각각 자신의 데이터에 대하여 락을 획득하고 상대방 데이터에 대하여 락을 요청하면 데드락이 발생한다. ④ 락(lock)을 사용하면 갱신손실(lost update) 문제를 해결할 수 있다. 17. SQL 뷰(view)의 특성에 관한 설명으로 가장 적절하지 않은 것은? ① 뷰가 정의된 기본 테이블(base table)이 제거되면 뷰도 자동적으로 제거된다. ② 시스템 카탈로그에 저장된다. ③ 뷰는 하나 이상의 기본 테이블에서만 유도되는 가상적 테이블이다. ④ INSERT, UPDATE, DELETE 등의 DML 작업은 경우에 따라 수행되지 않는다. 18. 릴레이션 R(A, B, C, D)는 다음과 같은 함수적 종속성 (functional dependency)이 성립한다. ㉠과 ㉡의 물음에 옳은 것을 모두 고른 것은? 릴레이션 R의 함수적 종속성 A→B, B→C, C→D 물음 ㉠ 릴레이션 R은 몇 정규형인가? ㉡ 릴레이션을 다음과 같이 분해했을 때 무손실 분해를 만족하는가? R1(A, B, C), R2(C, D) ㉠ ㉡ ① 제3정규형 무손실 분해를 만족하지 않음 ② 제2정규형 무손실 분해를 만족함 ③ 제2정규형 무손실 분해를 만족하지 않음 ④ 제3정규형 무손실 분해를 만족함 19. 다음 데이터베이스 정보에서 “직원이 5명 이상인 부서의 부서명과 그 부서 소속 직원 중 급여가 40,000,000원 이상인 직원의 수”를 검색하는 SQL 질의문 일부인데, SQL 문에서 ㉠과 ㉡에 들어갈 문장 표현으로 가장 적절한 것은? 데이터베이스 정보 테이블 직원(사번(PK), 이름, 근무부서번호(FK), 급여) 부서(부서번호(PK), 부서명, 사무실) 설명 근무부서번호 : 직원이 근무하는 부서의 부서번호 SQL 질의문 SELECT B.부서명, COUNT(*) FROM 직원 as A, 부서 as B WHERE ㉠ AND A.급여 >= 40000000 AND A.근무부서번호 IN (SELECT C.근무부서번호 FROM 직원 as C GROUP BY C.근무부서번호 HAVING COUNT(*) > 4) ㉡ ; ㉠ ㉡ ① B.부서번호=A.근무부서번호 GROUP BY B.부서번호 ② B.부서번호=A.근무부서번호 ORDER BY B.부서번호 ③ B.부서번호=C.근무부서번호 GROUP BY B.부서번호 ④ B.부서번호=C.근무부서번호 ORDER BY B.부서번호 20. 다음 데이터베이스는 학생, 과목, 수강정보 테이블과 참조 무결성 제약조건을 갖고 있다. 정의한 참조무결성 제약조건의 영향을 받지 않는 연산들을 모두 고른 것은? 데이터베이스 정보 테이블 학생(학번(PK), 성명, 학과) 과목(과목번호(PK), 과목명) 수강정보(수강일련번호(PK), 학번(FK), 과목번호(FK), 수강학기) 설명 수강정보의 학번(FK) : 학생의 학번(PK) 참조 연산 ㉠ 학생 테이블에 새로운 행을 삽입하는 삽입연산 ㉡ 학생 테이블에 기존 행의 기본키값을 변경하는 변경연산 ㉢ 수강정보 테이블에서 새로운 행을 삽입하는 삽입연산 ㉣ 수강정보 테이블에서 기존 행을 삭제하는 삭제연산 ① ㉠㉢ ② ㉡㉢ ③ ㉠㉣ ④ ㉡㉣