[정보처리기사 - 데이터베이스 구축]
기출문제 2021-05-15
✔정답은 문제 오른쪽 영역 드래그
41. 병렬 데이터베이스 환경 중 수평 분할에서 활용되는 분할 기법이 아닌 것은? 3
1️⃣라운드-로빈
2️⃣범위 분할
3️⃣예측 분할
4️⃣해시 분할
✅범위 분할(range partitioning) : 분할 키 값이 범위 내에 있는지 여부로 구분한다
✅목록 분할(list partitioning) : 값 목록에 파티션을 할당 분할 키 값을 그 목록에 비추어 파티션을 선택한다
✅해시 분할(hash partitioning) : 해시 함수의 값에 따라 파티션에 포함할지 여주를 결정한다.
✅합성 분할(composite partitioning) : 상기 기술을 결합하는 것
✅수평분할 : 하나의 테이블의 각 행을 다른 테이블에 분산시키는 것
✅라운드로빈 분할 : 라운드로빈 분할은 파티션에 행의 고른 분포를 원할 때 사용
,해시분할과 달리 분할 칼럼을 명시할 필요가 없다
,라운드 로빈 분할로 회전하면서 새로운 행이 파티션에 할당된다
,테이블은 기본키가 반드시 필요하진 않다.
42. 시스템 카탈로그에 대한 설명으로 옳지 않은 것은? 1
1️⃣사용자가 직접 시스템 카탈로그의 내용을 갱신하여 데이터베이스 무결성을 유지한다
2️⃣시스템 자신이 필요로 하는 스키마 및 여러가지 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스이다
3️⃣시스템 카탈로그에 저장되는 내용을 메타데이터라고도 한다
4️⃣시스템 카탈로그는 DBMS가 스스로 생성하고 유지한다
✅시스템 카탈로그는 DBMS가 스스로 생성하고 유지하기 때문에
INSERT, DELETE, UPDATE문으로 시스템 카탈로그를 갱신하는 것은 허용되지 않습니다
43. SQL 문에서 SELECT에 대한 설명으로 옳지않은 것은?
1️⃣FROM 절에는 질의에 의해 검색될 데이터들을 포함하는 테이블명을 기술한다
2️⃣검색결과에 중복되는 레코드를 없애기위해서는 WHERE 절에 'DISTINCT'키워드를 사용한다
3️⃣HAVING 절은 GROUP BY 절과 함께 사용되며, 그룹에 대한 조건을 지정한다
4️⃣ORDER BY 절은 특정 속성을 기준으로 정렬하여 검색할 때 사용한다
✅검색결과에 중복되는 레코드를 없애기 위해서는 SELECT 명령 뒤에 'DISTINCT'키워드를 사용
✅WHERE절 뒤는 원하는 조건
✅검색결과에 중복되는 레코드를 없애기 위해서는 SELECT 명령 뒤에 'DISTINCTROW' 키워드를 사용
✅DISTINCT : 중복된 속성이 조화될 경우 그중 한 개만 검색
(SELECT 뒤에 명시된 속성이 중복될 경우 한 개만 검색)
44. SQL에서 VIEW를 삭제할 때 사용하는 명령은? 3
1️⃣ERASE
2️⃣KILL
3️⃣DROP
4️⃣DELETE
✅DELETE : 조건을 달아서 특정 행을 삭제할 때 사용
✅DROP : VIEW, TABLE, DATABASE를 완전 삭제할 때 사용
✅VIEW에서는 ALTER 사용 불가능
45. DDL(Data Define Language)의 명령어 중스키마, 도메인, 인덱스 등을 정의할 때 사용하는 SQL문은?
1️⃣ALTER
2️⃣SELECT
3️⃣CREATE
4️⃣INSERT
✅DDL(Data Define Language) : 데이터 정의어 - CREATE, ALTER, DROP, CREATE
✅CREATE : 스키마, 도메인, 테이블, 뷰, 인덱스 정의
✅ALTER : 테이블에 대한 정의 변경
46. 테이블 R1, R2에 대하여 다음 SQL문의결과는? 2
1️⃣
2️⃣
3️⃣
4️⃣
✅INTERSECT : 교집합
47. 데이터베이스 설계 시 물리적 설계 단계에서 수행하는 사항이 아닌 것은? 4
1️⃣레코드 집중의 분석 및 설계
2️⃣접근 경로 설계
3️⃣저장 레코드의 양식 설계
4️⃣목표 DBMS에 맞는 스키마 설계
✅개념적 설계 : 사용자의 요구사항 분석 후, 데이터베이스에 대한 추상적인 형태를 설계
개념적 모델을 이용한 개념적 스키마 생성
(데이터베이스에 대한 추상적인 설계도, 개체 관계 다이어그램)
✅논리적 설계: 논리적 모델을 이용하여 논리적 스키마 생성
,ERD를 이용하여 데이터베이스 스키마를
설계, 테이블 구조도, 개념적 설계 단계에서 생성된
ERD를 바탕으로 생성되는 테이블들의 집합
✅물리적 설계 : 특정 DBMS가 제공하는 물리적 구조에 따라 테이블 저장 구조 설계
,필드의 데이터 타입, 인덱스, 테이블 저장 방법 등을 정의
48. 릴레이션에서 기본 키를 구성하는 속성은 널(Null)값이나 중복 값을 가질 수 없다는 것을 의미하는 제약조건은? 3
1️⃣참조 무결성
2️⃣보안 무결성
3️⃣개체 무결성
4️⃣정보 무결성
✅개체 무결성 : 릴레이션에서 기본키를 구성하는 속성은 널(Null)값이나 중복값을 가질 수 없다
✅참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야함
✅도메인 무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정
[ 보안의 3요소 ]
✅기밀성(Confidentiality) : 공격자가 데이터를 볼 수 없게 보호
✅무결성(Integrity) : 변경, 삽입, 삭제, 재연 등으로부터 정보를 보호
✅가용성(Availability)
49. 병행제어 기법의 종류가 아닌 것은? 2
1️⃣로킹 기법
2️⃣시분할 기법
3️⃣타임 스탬프 기법
4️⃣다중 버전 기법
✅병행제어 : 동시에 여러 개의 트랜잭션을 병행수행할때, DB의 일관성을 파괴하지 않도록 제어하는 것
✅시분할 기법 : 사용자가 여러개의 작업이 동시에 수행하는 것처럼 느끼도록 분할하는 운영체제 운영기법
50. 다음 R1과 R2의 테이블에서 아래의 실행 결과를 얻기 위한 SQL문은? 1
1️⃣SELECT 과목번호, 과목이름 FROM R1, R2
WHERE R1.학번 = R2.학번 AND R1.학과='전자공학' AND R1.이름 = '강남길';
2️⃣SELECT 과목번호, 과목이름 FROM R1, R2
WHERE R1.학번 = R2.학번 OR R1.학과='전자공학' OR R1.이름 = '홍길동';
3️⃣SELECT 과목번호, 과목이름 FROM R1, R2
WHERE R1.학번 R2.학번 AND R1.학과='컴퓨터공학' AND R1.이름 = '강남길';
4️⃣SELECT 과목번호, 과목이름 FROM R1, R2
WHERE R1.학번 R2.학번 OR R1.학과='컴퓨터공학' OR R1.이름 = '홍길동';
✅0단계 : 'SELECT 조회' 할 데이터 지정
✅1단계 : 'FROM 테이블' 지정 : 'SELECT 조회' 할 데이터를 가져올 테이블 지정
✅2단계 : 'WHERE 조건' 지정
51. 다음 관계 대수 중 순수 관계 연산자가 아닌 것은?
1️⃣차집합(difference)
2️⃣프로젝트(project)
3️⃣조인(join)
4️⃣디비전(division)
[ 순수 관계 연산자 ]
✅select δ ⇒수평단절, 행을 다가져옴
✅project π ⇒수직단절, 열을 다가져옴
✅join ▷◁ : 공통 속성을 이용해 두개의 릴레이션 튜플을연결→만들어진 튜플로 반환
✅division ÷ : 릴S의 모든 튜플과 관련있는 릴R의 튜플반환
[ 일반 집합 연산자 ]
✅UNION : 합집합
✅INTERSECTION : 교집합
✅DIFFERENCE : 차집합
✅CARTESIAN PRODUCT : 교차곱
52. 관계형 데이터 모델의 릴레이션에 대한 설명으로 틀린 것은? 4
1️⃣모든 속성 값은 원자 값을 갖는다
2️⃣한 릴레이션에 포함된 튜플은 모두 상이하다
3️⃣한 릴레이 션에 포함된 튜플 사이에는 순서가 없다
4️⃣한 릴레이션을 구성하는 속성 사이에는 순서가 존재한다
✅테이블 : 릴레이션
✅튜플 : 각각의 행. 즉 ROW를 의미
✅속성 : 어트리뷰트로 테이블에서 컬럼명에 해당하는 header부분을 의미
✅각각의 튜플은 고유한 값을 가진다. (튜플은 모두 다름)
✅튜플사이에는 순서가 없다
✅속성(어트리뷰트)의 이름은 유일해야 하지만, 값은 동일할 수도 있다
✅속성의 순서는 중요하지 않다
✅속성은 더이상 쪼갤 수 없는 원자값이 들어간다
53. 릴레이션 R의 차수가 4이고 카디널리티가 5이며
,릴레이션 S의 차수가 6이고 카디널리티가 7일 때
,두 개의 릴레이션을 카티션 프로덕트한 결과의 새로운 릴레이 션의 차수와 카디널리티는 얼마인가? 3
1️⃣24, 35
2️⃣24, 12
3️⃣10, 35
4️⃣10, 12
[ 두 개의 릴레이션을 카티션 프로덕트 ]
차수는 +를 해주고 카디널리티는 *를 해주면 해당 결과가 나옵니다
차수 = 4+6=10
카디널리티 = 5*7=35
54. 속성(attribute)에 대한 설명으로 틀린 것은? 4
1️⃣속성은 개체의 특성을 기술한다
2️⃣속성은 데이터베이스를 구성하는 가장 작은 논리적 단위이다
3️⃣속성은 파일 구조상 데이터 항목 또는 데이터 필드에 해당된다
4️⃣속성의 수를 "cardinality" 라고 한다
✅cardinality : 튜플의 수
55. 다음 SQL 문에서 ( ) 안에 들어갈 내용으로 옳은 것은? 1
1️⃣SET
2️⃣FROM
3️⃣INTO
4️⃣IN
[ UPDATE문 기본 형식 ]
UPDATE (테이블)
SET (열=변경할값)
WHERE (조건)
56. 관계 데이터베이스 모델에서 차수(Degree)의 의미는? 4
1️⃣튜플의 수
2️⃣테이블의 수
3️⃣데이터베이스의 수
4️⃣애트리뷰트의 수
✅차수 = Degree = Attribute의 수 = 속성의 수(관계 DB의 열)
✅기수 = Cardinality = Tuple의 수 = 대응수(관계 DB의 행)
57. 개체-관계 모델(E-R)의 그래픽 표현으로 옳지 않은 것은? 4
1️⃣개체타입 – 사각형
2️⃣속성 - 원형
3️⃣관계타입 - 마름모
4️⃣연결 - 삼각형
✅개체-관계 모델에서는 삼각형이 없다
✅관계-속성 연결은 '선'을 이용해서 표현
✅다중 값 속성은 '이중타원'을 이용해서 표현
58. 트랜잭션의 실행이 실패하였음을 알리는 연산자로
트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀 시키는 연산은? 4
1️⃣COMMIT 연산
2️⃣BACKUP 연산
3️⃣LOG 연산
4️⃣ROLLBACK 연산
✅ROLLBACK : 하나의 트랜잭션이 비정상적으로 종료되어
트랜잭션 원자성이 깨질 경우
처음부터 다시 시작하거나, 부분적으로 연산을 취소하는 연산
59. 데이터 속성 간의 종속성에 대한 엄밀한 고려없이 잘못 설계된 데이터베이스에서는
데이터 처리 연산 수행 시 각종 이상 현상이 발생할 수 있는데, 이러한 이상 현상이 아닌 것은? 1
1️⃣검색 이상
2️⃣삽입 이상
3️⃣삭제 이상
4️⃣갱신이상
[ 데이터 처리 연산 수행 시 이상현상 ]
✅갱신 이상(Modification Anomaly) : 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생
✅삽입 이상(Insertion Anomaly) : 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능
✅삭제 이상(Deletion Anomaly): 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능
60. 제3정규형 (3NF)에서 BCNF(Boyce-Codd Normal Form)가 되기 위한 조건은? 1
1️⃣결정자가 후보키가 아닌 함수 종속 제거
2️⃣이행적 함수 종속 제거
3️⃣부분적 함수 종속 제거
4️⃣원자값이 아닌 도메인 분해
[ 데이터베이스 정규화 ]
비정규형 →
[도메인 분해 →] 제1정규형
[부분 함수 종속 제거 →] 제2정규형
[이행 함수 종속 제거 →] 제3정규형
[결정자가 후보키가 아닌 함수 종속 제거 →] 보이스 코드 정규형(BCNF)
[다중치 종속 제거 →] 제4정규형
[조인 종속제거 →] 제5정규형
앞글자만 따서 '도부이결다조'로 암기