안녕하세요 오늘은 정보처리기사 Database 용어 정리를 해보겠습니다.
* 이상: 데이터의 중복과 종속으로 인해 발생하는 문제점
- 삭제이상: 원하지 않는 자료까지 함께 삭제가 됨
- 삽입이상: 원하지 않는 자료가 삽입되거나 자료 부족으로 삽입이 실패
- 갱신이상: 부정확하거나 일부만 갱신되어 일관성이 없어짐
* 함수적종속
- 완전함수종속: 속성이 오직 기본키에마 종속됨
- 부분함수종속: 속성이 기본키 중 일부 속성에 종속됨
- 이행적함수종속: A->B, B->C 결국 A->C가 되는 경우
* 정규화
- 1NF: 모든 도메인 원자값으로 구성
- 2NF: 부분함수종속 제거
- 3NF: 이행적 함수 종속을 제거
- BCNF: 모든 결정자가 후보키가 되도록 구성
- 4NF: 다치 종속 제거
- 5NF: 조인종속이 후보키를 통해서만 성립되게 함
* 역정규화
정규화된 릴레이션은 외래키를 많이 사용하기 때문에 성능이 저하될 수 있음
그렇기 때문에 중복, 종속이 생기더라도 성능 개선을 위해 다시 정규화를 푸는 것.
* 트랜잭션: 하나의 작업 처리를 위한 논리적 작업단위
- 원자성 (Atomicity): 모든 작업이 완료되거나 완료되지 않아야 함
- 일관성 (Consistency): 오류 없이 유효한 데이터만 Database에 저장되어야 함
- 격리성 (Isolation): 다른 트랜잭션 데이터를 변질시키면 안됨
- 영속성 (Durability): 트랜잭션 완료 후 데이터가 유실되지 않고 정상적으로 기록되어야 함
- commit: 트랜잭션 내용 업데이트를 영구적으로 확정
- rollback: 업데이트 오류가 발생했을 때 이전의 정상 상태로 되돌리는 것.
* 회복
- 즉시 회복 기법: 트랜잭션 실행 중 변경되는 내용을 즉시 DB에 적용
- 지연 갱신 기법: 트랜잭션 부분 완료 시 로그를 토대로 DB에 적용
- 검사 시점 기법: 트랜잭션 중간에 검사 시점을 지정하여 검사 시점까지 완료된 내용을 DB에 적용
- 그림자 페이징: DB를 페이지로 나누어 각 페이지마다 복사하여 그림자 페이지를 보관, 변경 내용을
원본 페이지에 저장하고, 장애 발생 시 그림자 페이지를 이용하여 회복
- REDO(재수행): COMMIT 되면 로그를 이용해 재수행하며 DB에 반영
- UNDO(취소): 오류 발생 시 트랜잭션이 시작된 지점으로 되돌아간다.
* 로킹 (Locking)
트랜잭션 병행 실행 시 한 트랜잭션이 사용하는 데이터를 다른 트랜잭션이 접근하지 못하게 함
* 병행제어를 하지 않았을 때의 문제점
- 갱신 분실: 연산의 일부가 사라짐
- 모순성: 일관성이 없음
- 연쇄 복귀: 한 트랜잭션이 취소될 때 다른 트랜잭션도 취소됨
- 비완료 의존성: 한 트랜잭션이 수행 실패 후 회복되기 전 다른 트랜잭션이 실패한 갱신 결과를 참조
* 인덱스
원하느 자료를 효율적으로 검색하기 위해서 사용
- B-트리: 균형 있는 트리구조
- B+-트리: 인덱스 세트+순차세트, 순차세트의 단말 노드에 모든 키값이 다시 나타나므로
순차검색이 가능
- 클러스터드 인덱스: 테이블을 하나의 속성을 기준으로 정렬시켜 재구성하여 인덱스를 만드는 방법
- 넌 클러스터드 인덱스: 테이블을 재구성하지 않고, 데이터 주소를 이용하여 인덱스를 만드는 방법
* 튜닝
최적화를 위해 재조정(재조율)
* 트리거 (Trigger)
테이블을 연쇄변경
* 데이터웨어하우스
정보관리 시스템
* 데이터마트
관심 있는 데이터를 담은 작은 규모의 데이터웨어하우스
* 데이터마이닝
대량의 데이터에서 존재하지 않는 정보를 얻어내기 위해 상관관계를 찾아내는 것
* OLTP
단말기에서 요청한 트랜잭션 처리를 중앙 컴퓨터에서 처리하여 결과를 반환
* OLAP
사용자가 직접 DB를 검색, 분석을 통해서 문제점이나 해결책을 찾도록 함
출처: https://blog.naver.com/jslim100/221251173032