도서 내용 중 중요하다 여겨지는 것만 작성합니다
영리목적이 아닌 공유목적입니다
출처 : 2023 시나공 정보처리기사 실기 (저자: 김정준, 강윤석, 김용갑, 김우경 | 출판사: 길벗)
'기출문제는 시나공 저자(알앤디)가 복원한 것임'
제가 이미 잘 알고 있는 것은 적지 않습니다
해당 포스팅을 참고하여 학습하셔도 좋지만
교재를 구매하여 문제를 풀며 학습하시는 것을 추천드립니다
데이터베이스
공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
- 통합된 데이터
- 저장된 데이터
- 운영 데이터
- 공용 데이터
DBMS
- 정의 기능
- 조작 기능
- 제어 기능
스키마
데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
- 외부 스키마 : 개인의 입장
- 개념 스키마 : 데이터베이스의 전체적인 논리적 구조
- 내부 스키마 : 물리적 저장장치의 입장
데이터베이스 설계 순서
- 요구 조건 분석
- 개념적 설계 : 개념 스키마 모델링, 트랜잭션 모델링, E-R 다이어그램
- 논리적 설계 : mapping, 트랜잭션의 인터페이스 설계
- 물리적 설계
- 구현
데이터 모델 구성 요소
- 개체
- 속성
- 관계
데이터 모델 종류
- 개념적 데이터 모델
- 논리적 데이터 모델
- 물리적 데이터 모델
데이터 모델에 표시할 요소
- 구조 : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
- 연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
- 제약조건 : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
E-R 모델
피터 첸에 의해 제안
개체 타입 | ㅁ (사각형) |
관계 타입 | ◇ (마름모) |
속성 | O (타원) |
다중값 속성 | Ⓞ (이중 타원) |
연결 | ㅡ (선, 링크) |
관계형 데이터 모델
- 속성 = 디그리 = 차수 = 애트리뷰트
- 튜플 = 카디널리티 = 기수 = 대응수
- 후보키 : 유일성과 최소성을 모두 만족
- 기본키 : 후보키 중 선정된 주키(main key)
- 대체키 : 기본키를 제외한 후보키
- 슈퍼키 : 유일성만 만족
- 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
무결성의 종류
- 개체 무결성 : 기본키는 NULL값이나 중복값을 가질 수 없다
- 참조 무결성 : 외래키값이 Null이거나 참조 릴레이션의 기본키값과 일치하지 않는 등 참조할 수 없는 외래키 값을 가질 수 없다
- 도메인 무결성 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다
- 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약조건에 만족되어야 한다
- NULL 무결성
- 고유 무결성
- 키 무결성
- 관계 무결성
관계 대수 (절차적 언어)
- 순수 관계 연산자
- Select (σ) : 수평 연산, 부분집합
- Project (ㅠ) : 수직 연산, 속성값만 추출
- Join (⋈) : 두 릴레이션을 합침
- Division (÷)
-일반 집합 연산자
- 합집합 (U)
- 교집합 (∩)
- 차집합 (ㅡ)
- 교차곱 (X) : 카티시안 프로덕트, 디그리는 더한 것과 같으며 카디널리티는 곱한 것과 같다
관계 해석 (비절차적 언어)
predicate claculus 기반
이상
- 삽입 이상 : 원하지 않은 값들로 인해 삽입 불가 현상
- 삭제 이상 : 연쇄삭제
- 갱신 이상 : 일부 튜플만 갱신되어 정보에 불일치성 발생
종속
- 함수적 종속 (X ㅡ> Y) : X는 항상 Y값 오직 하나만 연관되어 있을 때
- (full)완전 함수적 종속 : 기본키의 모든 속성으로 다른 속성이 결정될 때
- (partial)부분 함수적 종속 : 기본키의 일부 속성만으로 다른 속성이 결정 될 때
- (transitive)이행적 함수적 종속 : X ㅡ> Y이고 Y ㅡ> Z일 때 X ㅡ> Z를 만족하는 관계
- 결정자 : X ㅡ> Y에서 X
- 종속자 : X ㅡ>Y에서 Y
정규화
테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정
- 1정규형 : 도메인이 원자값만으로 되어있는 정규형
- 2정규형 : 부분 함수적 종속 삭제
- 3정규형 : 이행적 함수적 종속 삭제
- BCNF 정규형 : 결정자이면서 후보키가 아닌 것 삭제
- 4정규형 : 다치 종속 삭제 ex) A로 B와 C가 결정될 때
- 5정규형 : 조인 종속성 제거
반정규화
의도적으로 정규화 원칙을 위배하는 행위
테이블 통합 | 조인되는 경우가 많을 때 |
테이블 분할 | 수평 분할 : 레코드별로 사용빈도 차이가 크거나 수직분할 : 속성이 너무 많을 때 |
중복 테이블 추가 | 여러 테이블에서 데이터를 추출하거나 다른 서버 테이블을 이용하는 경우 방법 : 집계 테이블의 추가, 진행 테이블의 추가, 특정 부분만을 포함하는 테이블의 추가 |
중복 속성 추가 | 조인 시 데이터 조회 경로 단축 |
트랜잭션
논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들
트랜잭션의 특성
Atomicity (원자성) | 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료 (commit) 되든지 아니면 전혀 반영되지 않도록 복구 (rollback) 되어야 함 |
Consistency (일관성) | 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함 |
Isolation (독립성, 격차성, 순차성) | 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음 |
Durability (영속성, 지속성) | 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함 |
파티션
대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
파티션의 종류
범위 분할 (Range Partitioning) | 지정한 열의 값을 기준으로 분할 |
해시 분할 (Hash Partitioning) | 해시 함수를 적용한 결과 값에 따라 분할 데이터를 고르게 분산할 때 유용 |
조합 분할 (Composite Partitioning) | 범위 분할 -> 해시 분할 |
분산 데이터베이스 설계
논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 사이트에 분산된 데이터베이스
분산 데이터베이스의 목표
위치 투명성 | 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있다 |
중복 투명성 | 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다 |
병행 투명성 | 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다 |
장애 투명성 | 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다 |
- RTO (Recovery Time Objective, 목표 복구 시간) : 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간을 의미
- RPO (Recovery Point Objective, 목표 복구 시점) : 비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미
접근통제
- 접근통제 정책
- 접근통제 매커니즘
- 접근통제 보안모델
접근통제 기술
- 임의 접근 통제 (DAC) : 신원에 따라
- 강제 접근 통제 (MAC) :등급을 비교하여
- 역할기반 접근통제 (RBAC) :역할에 따라
접근통제 정책
- 신분 기반 정책 : ex) IDB, GBP
- 규칙 기반 정책 : ex) MLP, CBP
- 역할 기반 정책
접근통제 보안 모델
- 기밀성 모델 : 군사적 목적
- 무결성 모델
- 접근통제 모델
스토리지
대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
- DAS : 직접 연결
- NAS : 네트워크를 통해 연결
- SAN : 전용 네트워크 별도 구성
자료 구조
- 배열 : 크기와 형(type)이 동일한 자료들이 순서대로 나열된 자료의 집합
- 연속 리스트
- 연결 리스트 : 노드와 포인터
이진 트리
- Preoder(전위) : Root ㅡ> Left ㅡ> Right
- Inorder(중위) : Left ㅡ> Root ㅡ> Right
- Postorder(후위) : Left ㅡ> Right ㅡ> Root
정렬(Sort)
1. 삽입 정렬 (Insertion Sort)
- 평균과 최악 모두 수행 시간 복잡도는 O(n^2)
ex) 뒤에서 앞으로
초기 상태 8 5 6 2 4
1회전 5 8 6 2 4
2회전 5 6 8 2 4
3회전 2 5 6 8 4
2. 선택 정렬 (Selection Sort)
- 평균과 최악 모두 수행 시간 복잡도는 O(n^2)
ex) 앞에서 뒤로
초기 상태 8 5 6 2 4
1회전 2 8 6 5 4
2회전 2 4 8 6 5
3회전 2 4 5 8 6
3. 버블 정렬 (Bubble Sort)
- 평균과 최악 모두 수행 시간 복잡도는 O(n^2)
ex)
초기 상태 8 5 6 2 4
1회전 5 6 2 4 8
2회전 5 2 4 6 8
3회전 2 4 5 6 8
4. 쉘 정렬 (Shell Sort)
매개변수의 값으로 서브파일을 구성하고, 각 서브파일을 Insertion 정렬 방식으로 순서 배열하는 정렬 방식
- 평균 수행 시간 복잡도 O(n^1.5)
- 최악 수행 시간 복잡도 O(n^2)
5. 퀵 정렬 (Quick Sort)
키를 기준으로 분해
- 평균 수행 시간 복잡도 O(nlog₂n)
- 최악 수행 시간 복잡도 O(n^2)
6. 힙 정렬 (Heap Sort)
전이진 트리 이용
- 평균과 최악 모두 시간 복잡도 O(nlog₂n)
7. 2-Way 합병 정렬 (Merge Sort)
이미 정렬되어 있는 두 개의 파일을 한 개의 파일로 합병
- 평균과 최악 모두 시간 복잡도 O(nlog₂n)
8. 기수 정렬 (Radix Sort) = Bucket Sort
Queue를 이용하여 자릿수별로 정렬
- 평균과 최악 모두 시간 복잡도 O(dn)
오답 노트
Q1.
데이터베이스의 전체적인 논리적 구조로 단 하나만 존재하며, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스를 가리키는 용어를 쓰시오.
A1. 개념 스키마
Q2.
데이터베이스(Database)에 대해 간략히 서술하시오.
A2. 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
Q3.
데이터베이스의 목표 중 하나인 논리적 독립성에 대해 간략히 서술하시오.
A3. 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 영향을 받지 않는 성질
Q4.
다음은 관계의 종류에 대한 설명이다. 괄호(1, 2)에 들어갈 알맞은 종류를 쓰시오.
중복 관계 | 두 개체 사이에 2번 이상의 종속 관계가 발생하는 관계이다. |
( 1 ) | 개체의 속성이나 구분자를 기준으로 개체의 특성을 분할하는 관계이다. |
종속 관계 | 두 개체 사이의 주종관계를 표현한 것으로, 식별 관계와 비식별 관계가 있다. |
( 2 ) | 개체가 자기 자신과 관계를 갖는 것으로, 순환 관계라고도 한다. |
A4. 배타 관계, 재귀 관계
Q5.
물리 데이터 모델링이 완료되면 물리 데이터 저장소에 다양한 오브젝트를 구성해야 한다. 다음과 같은 경우 어떤 오브젝트를 구성해야 하는지를 쓰시오.
- <주문> 테이블과 <거래처> 테이블을 조인하여 사용하는 경우가 많다면 <주문> 테이블과 <거래처> 테이블에서 필요한 필드로 구성된 ( )를 생성한다.
- <회원> 테이블은 '회원번호', '이름', '주소', '전화번호', '총구매횟수', '총구매금액' 필드로 구성되어 있는데, 제품 발송 업무를 처리할 때는 '이름', '주소', '전화번호' 필드만 필요하므로 이 3개의 필드로 구성된 ( )를 설계한다.
- <회원> 테이블의 '총구매횟수', '총구매금액' 등은 회사 차원에서 중요한 자료일 수 있으므로 발송 담당자가 볼 수 없도록 ( )를 설계한다.
A5. 뷰
Q6.
다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
파일의 구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식을 의미하는 것으로, 크게 순차, ( ), 해싱으로 구분한다. ( ) 파일 구조는 <값, 주소> 쌍으로 구성되는 데이터 구조를 활용하여 데이터에 접근하는 방식으로, 자기 디스크에서 주로 활용된다.
A6. 색인(index)
Q7.
분산 데이터베이스 목표 중 다음 내용과 가장 관련 있는 용어를 쓰시오.
분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.
A7. 병행 투명성
'Computer Science (CS) > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 9. 소프트웨어 개발 보안 구축 (0) | 2023.03.19 |
---|---|
[정보처리기사 실기] 8. SQL 응용 (0) | 2023.03.18 |
[정보처리기사 실기] 5. 인터페이스 구현 (0) | 2023.03.16 |
[정보처리기사 실기] 4. 서버 프로그램 구현 (0) | 2023.03.16 |
[정보처리기사 실기] 1. 요구사항 확인 (0) | 2023.03.09 |