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)
- 인덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식
- 데이터를 검색하기 위해서는 먼저 인덱스를 검색하여 실제 데이터의 위치를 확인해야 하므로 클러스터드 인덱스에 비해 검색 속도가 떨어짐
- 한 개의 릴레이션에 여러 개의 인덱스를 만들 수 있음
'정보처리기사 > 정보처리기사 필기' 카테고리의 다른 글
정보처리기사 필기 ) 2020 3회 필기 출제 예상 2과목 (0) | 2020.08.21 |
---|---|
정보처리기사 필기 ) 2020 3회 필기 출제 예상 3과목 (0) | 2020.08.21 |
정보처리기사 필기 ) 2020 3회 필기 출제 예상 4과목 (0) | 2020.08.20 |
정보처리기사 필기) 수제비 모의고사 정리 - 4과목 프로그래밍언어 활용 (0) | 2020.08.20 |
정보처리기사 필기 ) 2020 3회 필기 출제 예상 5과목 (0) | 2020.08.20 |
댓글