정보처리기사 필기) 시나공 모의고사 정리 - 3과목 데이터베이스 구축
본문 바로가기
정보처리기사/정보처리기사 필기

정보처리기사 필기) 시나공 모의고사 정리 - 3과목 데이터베이스 구축

by 코딩하는 핑가 2020. 8. 20.
반응형

1회

41. 데이터 모델에 표시할 요소

* 구조(Structure)

- 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현

* 연산(Operation)

- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구

* 제약 조건(Constraint)

- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

 

49. 다음 Oracle로 작성된 SQL문에 대한 설명으로 가장 옳지 않은 것은?

(단, MOD(A, B)는 A를 B로 나누어 나머지를 구하는 함수이다.)

CREATE PROCEDURE GET_DEPT(i IN INT) IS	//1
BEGIN
	IF (MOD(i, 10) = 2) THEN	//2
    	INSERT INTO 회원(코드, 분류) VALUES(i, 'VIP');  //3
    ELSE
    	INSERT INTO 회원(코드, 분류) VALUES(i, '일반');	//4
    END IF;
END;

* 프로시저의 실행 명령어 : EXECUTE, EXEC, CALL

//1 : 호출 프로그램이 전달한 값을 'i'에 저장한 후 사용하는 프로시저 'GET_DEPT'를 생성

//2 : i를 10으로 나눈 나머지가 2이면 //3을 수행하고 아니면 //4를 수행

//3 : <회원> 테이블의 '코드', '분류' 속성에 각각 i의 값과 'VIP'를 입력

//4 : <회원> 테이블의 '코드', '분류' 속성에 각각 i의 값과 '일반'을 입력

 

52. 릴레이션의 차수와 카디널리티 구하기

* 카티션 프로덕트(Cartesian Product)

- 두 릴레이션의 차수(Degree, 속성의 수)는 더하고, 카디널리티(튜플의 수)는 곱한다.

 

54. 인덱스 대상 컬럼(속성) 설정 기준

* 인덱스 컬럼의 분포도가 10~15% 이내인 컬럼

- 분포도 = (컬럼값의 평균 Row 수 / 테이블의 총 Row 수) X 100

* 분포도가 10~15% 이상이어도 부분 처리를 목적으로 하는 컬럼

* 입출력 장표 등에서 조회 및 출력 조건으로 사용되는 컬럼

* 인덱스가 자동 생성되는 기본키와 Unique키 제약 조건을 사용하는 컬럼

* 가능한 한 수정이 빈번하지 않은 컬럼

* ORDER BY, GROUP BY, UNION이 빈번한 컬럼

* 분포도가 좁은 컬럼은 단독 인덱스로 생성

* 인덱스들이 자주 조합되어 사용되는 경우 하나의 결합인덱스로 생성

 

55. 분산 데이터베이스의 목표

* 위치 투명성(Location Transparency)

- 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있음

* 중복 투명성(Replication Transparency)

- 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행함

* 병행 투명성(Concurrency Transparency)

- 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음

* 장애 투명성(Failure Transparency)

- 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함

 

57. 후보키(Candidate Key)

- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 상요하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성

- 하나의 릴레이션내에서는 중복된 튜플들이 있을 수 없으므로 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재함

- 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야함

-- 유일성(Unique) : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함

-- 최소성(Minimality) : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성되어야 함

 

58. 데이터베이스 보안의 접근 통제

- 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제안하는 것

- 데이터에 대해 다음과 같은 통제를 함으로써 자원의 불법적인 접근 및 파괴를 예방

- 무결성 모델 : 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델로 무결성 보장이 최우선인 모델

* 접근 통제 기술

- 임의 접근 통제(DAC; Discretionary Access Control)

: 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식

- 강제 접근 통제(MAC; Mandatory Access Control)

: 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식

* 접근 통제의 3요소 : 접근통제 정책, 접근통제 메커니즘, 접근통제 보안모델

 

59. 스토리지(Storage)의 종류

* DAS(Direct Attached Storage)

- 서버와 저장장치를 전용 케이블로 직접 연결하는 방식

* NAS(Network Attached Storage)

- 서버와 저장장치를 네트워크를 통해 연결하는 방식

* SAN(Storage Area Network)

- DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식

- 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식

 

60. 서브타입 기준 테이블 변환

- 슈퍼타입 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만드는 것

- 서브타입에 속성이나 관계가 많이 포함된 경우 적용

* 장점

- 속성들의 선택 사양이 명확한 경우에 유리

- 처리할 때마다 서브타입 유형을 구분할 필요가 없다

- 여러 개의 테이블로 통합하므로 테이블당 크기가 감소하여 전체 테이블 스캔시 유리

* 단점

- 수행 속도가 감수할 수 있음

- 복잡한 처리를 하는 SQL의 통합이 어려움

- 부분 범위에 대한 처리가 곤란해짐

- 여러 테이블을 통합한 뷰는 조회만 가능

- UID의 유지관리가 어려움

2회

50. 클러스터(Cluster)

- 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법

- 클러스터링키로 지정된 컬럼 값의 순서대로 저장되고, 여러 개의 테이블이 하나의 클러스터에 저장됨

- 클러스터링 된 테이블은 데이터 조회 속도는 향상시키지만 데이터 입력, 수정, 삭제에 대한 성능은 저하시킴

- 클러스터는 데이터의 분포도가 넓을수록 유리

- 데이터 분포도가 넓은 테이블을 클러스터링 하면 저장공간을 절약할 수 있음

- 클러스터링 된 테이블은 클러스터링키 열을 공유하므로 저장 공간이 줄어듦

- 대용량을 처리하는 트랜잭션은 전체 테이블을 스캔하는 일이 자주 발생하므로 클러스터링을 하지 않는 것이 좋음

- 처리 범위가 넓은 경우에는 단일 테이블을 클러스터링을, 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용

- 파티셔닝 된 테이블에는 클러스터리을 할 수가 없음

- 클러스터링을 하면 비슷한 데이터가 동일한 데이터 블록에 저장되기 때문에 디스크 I/O 가 줄어듦

- 클러스터링된 테이블에 클러스터드 인덱스를 생성하면 접근 성능이 향상됨

 

56. 트리거(Trigger)

- 데이터베이스 시스템에서 데이터의 삽입(Insert), 갱신(Update), 삭제(Delete) 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL임

- 데이터베이스에 저장되며, 데이터 변경 및 무결성 유지, 로그 메시지 출력 등의 목적으로 사용됨

- 트리거의 구문에는 DCL(데이터 제어어)을 사용할 수 없으며, DCL이 포함된 프로시저나 함수를 호출하는 경우에도 오류가 발생

- 트리거에 오류가 있는 경우 트리거가 처리하는 데이터에도 영향을 미치므로 트리거를 생성할 땐 세심한 주의가 필요함

 

59. 쿼리 성능 최적화

- 실행 계획에 표시된 연산 순서, 조인 방식, 테이블 조회 방법 등을 참고하여 SQL문이 더 빠르고 효율적으로 작동하도록 SQL 코드와 인덱스를 재구성하는 것을 의미

* SQL 코드 재구성

- WHERE 절을 추가하여 일부 레코드만 조회하게 함으로써 조회에 들어가는 비용을 줄임

- WHERE 절에 연산자가 포함되면 INDEX를 활용하지 못하므로 가능한 한 연산자 사용을 자제함

- 서브 쿼리에 특정 데이터가 존재하는지 확인할 때는 IN 보다 EXISTS를 활용

- 옵티마이저의 실행 계획이 잘못되었다고 판단되는 경우 힌트를 활용하여 실행 계획의 액세스 경로 및 조인 순서를 변경

* 인덱스 재구성

- SQL 코드에서 조회되는 속성과 조건들을 고려하여 인덱스를 구성

- 실행 계획을 참고하여 인덱스를 추가하거나 기존 인덱스의 열 순서를 변경

- 인덱스의 추가 및 변경은 해당 테이블을 참조하는 다른 SQL 문에도 영향을 줄 수 있으므로 신중히 결정

- 단일 인덱스로 쓰거나 수정 없이 읽기로만 사용되는 테이블의 경우 IOT(Index-Organized Table)로 구성하는 것을 고려

- 불필요한 인덱스 제거

 

60. 데이터 전환

- 운영 중인 기존 정보 시스템에 축적되어 있는 데이터를 추출(Extraction)하여 새로 개발할 정보 시스템에서 운영 가능하도록 변환(Transformation)한 후, 적재(Loading)하는 일련의 과정

- 데이터 전환을 ETL(Extraction, Transformation, Load), 즉 추출, 변환, 적재 과정이라고 함

- 데이터 전환을 데이터 이행(Data Migration) 또는 데이터 이관이라고도 함

- 데이터 전환을 성공적으로 수행하기 위해 데이터 전환이 필요한 대상을 분석하여 데이터 전환 작업에 필요한 모든 계획을 기록하는 데이터 전환 계획서를 작성하고 이를 토대로 진행

* 데이터 전환 계획서의 주요 항목

- 데이터 전환 개요

- 데이터 전환 대상 및 범위

- 데이터 전환 환경 구성

- 데이터 전환 조직 및 역할

- 데이터 전환 일정

- 데이터 전환 방안

- 데이터 정비 방안

- 비상 계획

- 데이터 복구 대책

3회

41. 논리적 설계, 물리적 설계

* 논리적 설계(데이터 모델링)

- 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정

- 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화

- 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계

- 트랜잭션의 인터페이스를 설계

- 관계형 데이터베이스라면 테이블을 설계하는 단계

* 물리적 설계(데이터 구조화)

- 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정- 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정- 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사

 

43. 관계의 종류

* 종속 관계(Dependent Relationship)
- 두 개체 사이의 주,종 관계를 표현한 것으로, 식별 관계와 비식별 관계가 있음

* 중복 관계(Redumdant Relationship)

- 두 개체 사이에 2번 이상의 종속 관계가 발생하는 관계

* 재귀 관계(Recursive Relationship)

- 개체가 자기 자신과 관계를 갖는 것으로, 순환 관계(Recursive Relationship)라고도 함

* 배타 관계(Exclusive Relationship)

- 개체의 속성이나 구분자를 기준으로 개체의 특성을 분할하는 관계- 배타 AND 관계 : 하위 개체들 중 속성이나 구분자 조건에 따라 하나의 개체만을 선택- 배타 OR 관계 : 하나 이상의 개체를 선택

 

48. 키(Key)의 개념 및 종류

  슈퍼키
Super Key
후보키
Candidate Key
기본키
Primary Key
대체키
Alternate Key
외래키
Foreign Key
유일성 만족 만족 만족 만족  
최소성 불만족 만족 만족 만족  

* 후보키 : 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

* 기본키 : 후보키 중에서 특별히 선정된 키, 중복값, NULL 값을 가질 수 없음

* 대체키 : 후보키 중에서 선정된 기본키를 제외한 나머지 후보키

* 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

 

55. 클러스터드 인덱스(Clustered Index)

- 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식

- 실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있음

- 데이터 삽입, 삭제 발생 시 순서를 유지하기 위해 데이터를 재정렬해야 함

- 한 개의 릴레이션에 하나의 인덱스만 생성할 수 있음

* 넌클러스터드 인덱스(Non-Clustered Index)

- 인덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식

- 데이터를 검색하기 위해서는 먼저 인덱스를 검색하여 실제 데이터의 위치를 확인해야 하므로 클러스터드 인덱스에 비해 검색 속도가 떨어짐

- 한 개의 릴레이션에 여러 개의 인덱스를 만들 수 있음

반응형

댓글