[정처기/실기 2과목] 데이터베이스 (이론)
✅ 데이터베이스 설계
1. 데이터베이스 정의
- 공유(shared) : 여러 프로그램이 공동으로 사용함
- 저장(stored) : 접근가능한 저장매체에 저장되어 있음
- 통합(integrated) : 중복이 최소화됨
- 운영(operational) : 업무 목적에 꼭 필요함
2. 스키마(schema)
- 데이터베이스의 구조, 제약조건을 기술한 것
- 외부스키마(external), 개념스키마(conceptual), 내부스키마(internal)
- 외부스키마와 개념스키마 간 '논리적 독립성', 개념스키마와 내부스키마 간 '물리적 독립성'
3. 데이터베이스 설계순서
- 요구사항 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현
✅ 개념적 설계
1. 데이터모델
- 현실세계의 요소를 인간과 컴퓨터가 이해할 수 있는 정보로 표현한 것
- 3요소 : 구조(개체간 관계), 연산(데이터 처리방법), 제약조건(저장할 수 있는 데이터의 논리적 제약조건)
2. 데이터모델 품질기준
- 정확성, 완전성, 준거성, 최신성, 일관성, 활용성
✅ 논리적 설계
1. 정규화(normalization)
- 관계형 데이터베이스에서 중복을 최소화하도록 데이터를 구조화하는 것
2. 이상현상(anomaly)
- 데이터 중복으로 인해 릴레이션 조작 시 예상하지 못한 현상이 발생하는 것
- 삽입이상(불필요한 데이터도 삽입됨), 삭제이상(연쇄삭제), 갱신이상(일부만 갱신되어 모순 발생)
3. 정규화과정
- 도메인이 모두 원자값 1NF
- 부분 함수 종속 제거 2NF
- 이행 함수 종속 제거 3NF
- 결정자이면서 후보키가 아닌 것 제거 BCNF
- 다치종속 제거 4NF
- 조인종속 이용 5NF
✅ 물리적 설계
1. 반정규화
- 정규화 단계 이후 성능향상을 위해 정규화 기법을 위배하는 것
2. 데이터베이스 이중화
- 데이터베이스의 고가용성을 위해 동일한 DB를 중복시켜 관리하는 방법
- eager 기법 (즉시 이중화서버로 전달) , lazy기법 (트랜젝션 수행이 완전히 완료된 후 전달)
- Hot standby > Warm standby > Cold standby
3. 데이터베이스 백업
- 전체백업
- 증분백업 : 전체백업 이후로 변경된 것만 백업 (월요일엔 월요일분, 화요일엔 화요일분)
- 차등백업 : 전체백업 이후로 전체 백업 (월요일엔 월요일분, 화요일엔 월+화요일분)
- 실시간 백업
- 트랜젝션 로그백업
4. 복구시간목표, 복구시점목표
- 복구시간목표(RTO) : 서비스 중단시점부터 복구 시점까지 중단이 허용되는 최대 시간
- 복구시점목표(RPO) : 장애 발생시 마지막 DB복구 시점부터 서비스 복구 시점까지 데이터 손실이 허용되는 최대 시간
5. 파티셔닝
- DB를 여러 부분으로 분할하는 것
- 범위분할(partition by range), 목록분할(partition by list), 해시분할, 라운드로빈분할, 합성분할
6. 클러스터
- 데이터를 읽어오는 시간을 줄이기 위해 자주 사용하는 테이블의 데이터를 디스크의 같이 위치에 저장시키는 것
7. 인덱스
- 테이블의 검색속도를 향상시키기 위한 자료 구조
- 클러스터 인덱스/논클러스터 인덱스, 밀집 인덱스/희소 인덱스
8. 뷰
- 하나 이상의 기본 테이블로부터 유도된 가상 테이블
9. 시스템 카탈로그
- 데이터베이스를 관리하기 위한 데이터들의 모임 (릴레이션, 인덱스, 뷰, 사용자, 통계 등)
✅ 관계형 데이터베이스
1. 키(Key)
- 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 컬럼
- 슈퍼키 : 유일성은 만족하지만 최소성은 만족하지 못함
- 후보키 : 유일성과 최소성을 모두 만족하는
- 기본키 : 후보키 중에서 선택한 메인 키. 중복될 수 없으며, not null
- 대체키 : 후보키 중 기본키가아닌 것
- 외래키 : 관계를 맺고 있는 릴레이션과 연결된 키
2.데이터베이스 무결성 제약조건
- 개체 무결성 : 중복불가, not null
- 도메인 무결성 : 속성의 값은 모두 도메인이어야 함
- 참조 무결성 : restricted 삭제거부, cascade 연쇄삭제
✅ 데이터모델 품질
1. CRUD
- 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간 매트릭스를 만들어서 트랜젝션을 분석하는 기법
2. 옵티마이저
- SQL 문에 대해 최적의 실행 방법을 찾아 결정하는 것
- 구문분석 > 실행 > 인출 > 결과
- 사용자가 지정하는 Hint 도 있음
3. 튜닝
- SQL 문을 최적화해 빠른 시간 내 원하는 결과를 얻기 위한 작업
✅ 분산데이터베이스
1. 분산데이터베이스
- 여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 함
- 분산 처리기, 분산 데이터베이스, 통신 네트워크로 구성됨
2. 투명성 조건
- 위치 투명성
- 중복 투명성
- 장애 투명성
- 병행 투명성
- 분할 투명성
- 지역사상 투명성
3. CAP 이론
- 어떤 분산환경에서도 일관성(C), 가용성(A), 분할내성(P) 3가지 속성 중 2가지만 만족시킬 수 있음
- 일관성(C) : 같은 시간에 동일한 항목에 대해 같은 내용을 보여준다
- 가용성(A) : 모든 사용자들이 읽기, 쓰기가 가능해야 하며, 노드에 장애가 발생해도 다른 노드에게 영향을 주지 않는다.
- 분할내성(P) : 메시지 전달에 실패하거나 시스템 일부가 망가져도 시스템은 계속 동작해야 한다.
✅ 트랜젝션
1. 트랜젝션(Transaction)
- 데이터베이스의 상태를 변환시키는 하나의 작업 단위
2. ACID
- 원자성(Atomicity) : 트랜젝션은 모두 실행되거나 모두 실행되지 않아야 함
- 일관성(Consistency) : 트랜젝션의 작업 처리결과가 항상 일관성 있어야 함
- 격리성(Isolation) : 하나의 트랜젝션이 실행 중일 때 다른 트랜젝션이 끼어들 수 없음
- 영속성(Durability) : 트랜젝션이 실행된 후에는 시스템이 고장나도 영구적으로 반영되어야 함
3. 트랜젝션 상태
- 부분완료 > commit > 완료
- 실패 > roll back > 철회
✅ SQL
1. SQL
- 데이터베이스 시스템에서 자료를 처리하기 위해 사용하는 언어
- DDL : create, alter, drop, rename, truncate
- DML : select, update, delete, insert
- DCL : grant, revoke
- TCL : commit, rollback, savepoint
2. 저장 프로시저
- 일련의 쿼리를 함수처럼 사용하기 위한 쿼리 집합
- Is...begin... exception... end
3. 트리거
- 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업
- 행 트리거 (for each row), 문장 트리거 (1회 실행)
4. 사용자정의함수
✅ 병행제어
1. 병행제어
- 여러 트랜젝션이 동시에 실행되더라도 데이터베이스의 일관성을 유지할 수 있는 기법
2. 병행제어 기법
- 로킹(Locking) : 로킹이 되어 있는 데이터에는 다른 트랜젝션이 접근할 수 없음
- 2단계 로킹규약
- 타임스탬프 : 정해진 시간 순서대로 데이터에 접근
- 낙관적 병행제어
- 다중버전 병행제어
✅ 회복
1. 회복(Recovery)
- 트랜젝션 수행 중 장애로 인해 손상된 데이터베이스를 손상 이전의 정상적인 상태로 복구시키는 작업
2. 회복기법
- 로그기반 회복
> 지연갱신 회복기법 : 트랜젝션의 부분완료 상태만 저장하므로, redo만 실행하면 됨
> 즉시갱신 회복기법 : 트랜젝션 수행 도중에도 변경 내용을 저장, redo와 undo 모두 실행해야 함
- 검사점 회복 기법 (checkpoint)
- 그림자페이징 회복기법 (shadow paging)
- 미디어 회복기법
- ARIES 회복기법
✅데이터전환
1. ETL
- 데이터를 추출한 후 변환해 타깃 시스템으로 전송하는 모든 과정
- Extraction(추출) > Transformation(변환) > Load(적재)
'정보처리기사 (2022)' 카테고리의 다른 글
[정처기/실기] 네트워크 (0) | 2022.07.14 |
---|---|
[정처기/실기] 운영체제 (0) | 2022.07.12 |
[정처기/실기 기출] 2020년 3회 기출 핵심정리 (0) | 2022.07.06 |
[정처기/실기 기출] 2020년 2회 기출 핵심정리 (0) | 2022.07.05 |
[정처기/실기 기출] 2020년 1회 기출 핵심정리 (0) | 2022.07.05 |