하다보면 늘겠지 ʕ •ᴥ•ʔ

직접 해본 것과 그냥 아는 것은 다르니까- 어설프더라도 이것저것 해보는 중

정보처리기사 (2022)

[정처기/실기] 데이터베이스 (이론)

JJEELL 2022. 7. 12. 00:16
728x90
반응형

[정처기/실기 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(적재)

728x90
반응형