5. 정규화와 반정규화
- 함수 종속성의 개념과 추론규칙
- 함수 종속의 유형
- 완전 함수 종속 1NF
- 부분 함수 종속 2NF
- 이행함수적 종속성 3NF
- 결정자함수 종속성 BCNF : 함수 종속이 되는 결정자가 후보키가 아닌 경우
- 함수 종속의 유형
- 정규화의 이상현상
- 삽입이상
- 원하지 않는 정보까지 함께 삽입해야함
- 삭제이상
- 필요한 정보까지 함께 삭제
- 수정이상(갱신이상)
- 동일한 내용을 여러 건의 데이터에서 반복 수정해야함
- 삽입이상
- 정규화를 적용하여 데이터베이스 설계
- 1NF -> 2NF제거 -> 3NF제거 -> BCNF제거 -> 함수종속이 아닌 다치 종속제거 -> 후보키를 통하지 않는 조인종속 제거
- 반정규화
- 정규화된 엔터티, 속성, 관계에 대해 시스템 성능 향상 및 개발과 운영의 단순화를 위해 데이터 모델을 통합하는 프로세스
- 절차
- 대상 조사
- 범위 처리 빈도수 조사
- 대량의 범위처리 조사
- 통계성 프로세스 조사
- 테이블 조인 개수 조사
- 다른 방법 유도 검토
- 뷰 테이블 : 많은 조인이 걸칠때
- 클러스터링 사용
- 인덱스 적용
- 응용 어플리케이션
- 반 정규화 적용
- 테이블 병합
- 테이블 분할
- 테이블 추가
- 중복 칼럼 추가 : 조인에 의한 성능 저하를 예방
- 대상 조사
- 성능 설계를 위한 고려사항 설명
- 성능 개선 목표
- 처리능력, 처리시간, 응답 시간, 로드 시간
- 엔터티의 통합 및 분리
- 장점 : 불필요한 조인 제거를 통한 성능 향상, 테이블 개수 감소,,
- 단점 : 데이터 모델의 확장성 저하, 업무 흐름 이해 어렵
- 기본키 조정
- 비지니스 키가 복잡한 경우 시스템 키로 대체
- 데이터 모델 구조 변경
- 정규화를 통한 성능 개선
- 반정규화를 통한 성능 개선
- 데이터 모델의 단순화를 통한 성능 개선
- 인덱스와 관련된 성능 개선
- 효율적 순서 지정
- 함수기반 인덱스 사용
- 성능 개선 목표
6. 데이터베이스 물리설계
- 관계형 테이블 전환의 개념과 과정
- 관계형 테이블 전환
- 엔터티 타입의 전환
- 악성 엔터티의 변환
- 1 : 1 관계의 변환
- 1 : N 관계의 변환
- M : N 관계의 변환
- 다중치속성의 변환
- N - ary 관계의 변환
- 일반화 관계의 변환
- 관계형 테이블 전환
- 테이블 설계
- 데이터타입 설계
- 인덱스 설계
- 데이터베이스 뷰 설계
- 뷰 특징
- 원하는 데이터만 모아 가상적으로 만든 테이블
- 반복되는 데이터 조작을 효율적으로 수행함
- 관심을 가지는 데이터에만 초점
- 계산된 정보나 파생된 정보 보여줌
- 사용자가 볼 수 있는 데이터 제한
- 뷰 생성
- CREATE VIEW
- WITH CHECK OPTION : 뷰에 대해 수행되는 모든 데이터 수정 문장들이 뷰를 정의하는 SELECT문의 조건을 지키도록
- WITH ENCRYPTION : 뷰를 생성하는 텍스트를 사용자가 못보게
- 제약사항 : SELECT INTO 문 사용 불가, SELECT 권한 있어야 한다
- 데이터 수정
- 복사본 가지지 않음
- 갱신은 항상 원본 테이블에 영향 미침
- 제약사항
- 갱신은 하나의 테이블에만 영향 줌
- 계산된 값이나 내장함수, 계산함수를 포함하는 칼럼에 대해서는 뷰를 통한 개신 허용 X
- NOT NULL 칼럼을 가지는 테이블에 영향을 미치는 경우는 오류를 유발함
- 입력되지 않은 칼럼인 경우 디폴트 값이 정의되어 있거나 NULL이 허용되어 있어야함
- 고려사항
- 뷰 정의한 뒤 -> 원본 테이블에 새로운 칼럼 추가 -> 뷰에 안나타남
- 뷰 자체 정의 변경 -> 기존 뷰 삭제해야함
- 원본 삭제되어도 뷰는 삭제 안됨
- 뷰 특징
- 분산 데이터베이스 설계
- 특징
- 네트워크 상에서는 물리적으로 분산되어있지만, 사용자 입장에선 하나의 데이터베이스처럼
- 장점
- 원격 데이터에 대한 의존도 감소
- 대용량 처리 가능
- 점진적 확장 가능
- 한 사이트가 고장나도 그기만 고장남
- 단점
- 복잡도 증가
- 개발 비용 증가
- 통제 기능 취약
- 오류 발생 가능성 증가
- 데이터 무결성 보장 어렵
- 데이터 투명성
- 분할 투명성 : 사용자에게 전역 스키마가 어떻게 분할되었는지
- 위치 투명성 : 사용자나 어플리케이션에서 데이터의 물리적인 위치 알 필요 없
- 중복 투명성 : 중복되었는지, 어디에 보관하는지 알 필요 없
- 장애 투명성 : 네트워크 장애가 발생하더락도 데이터의 무결성 보장되어야함
- 병행 투명성 : 다수 트랜잭션이 동시에 수행되어도 결과의 일관성 유지되는 성질
- 특징
10. 데이터베이스 질의 응용
- 저장 프로시저의 개념과 특징
- 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 장점
- 하나의 요청ㅁ으로 여러 SQL 실행 -> 부하 줄임
- 처리 시간 단축
- 트리거와 결합하여 복잡한 규칙에 의해 데이터의 참조 무결성 유지
- sql문이랑 java 코드 분리되어 가독성 향상
- 보수성 뛰어남 (저장프로시저의 교체에 의한 수정 가능)
- 단점
- 재사용성 낮음( 제품간의 호환성 낮아서)
- 임베디드SQL의 개념과 특징
- sql문장이 응용프로그램(c++, java,,,) 포함되어 프로그램 실행 시점에 함께 수행
- 삽입되는 sql = 임베디드 sql
- 응용프로그램 = 호스트 프로그램
- 특징
- 하나의 투플만 반환가능
- 반환되는 투플은 일반 변수를 사용하여 저장 가능
- 호스트 프로그램의 데이터 타입 = 데이터베이스 필드의 데이터 타입
- 동적 SQL의 개념과 특징
- 변수를 담아서 동적 처리함
- 처리방식
- 변수 생성
- 구문 생성
- REF CURSOR에 저장 (SQL)
- REF CURSOR OPEN
- REF CURSOR FETCH
- RECORD TYPE에 데이터 저장
- REF CURSOR CLOSE
- 질의 최적화의 단계별 특징
- 질의 최적화 : DBMS로 하여금 질의문을 생성하는 여러 전략들을 체계적으로 평가 -> 하나의 최적 전략 선택
- 유형별 옵티마이저의 특징
- 옵티마이저 : 가장 빠른 데이터 접근 경로 작성 및 채택 -> 최적의 경로 or 처리 절차 찾아주는 역활
- 질의 변환
- 비용 산정
- 분류
- 규칙 기준 옵티마이저 (RBO)
- 인덱스 구조나 비교연산자에 따른 순위 부여 기준으로 최적의 경로 설정
- 오차가 크게 발생 가능
- 비용 기준 옵티마이저 (CBO)
- 처리 방법들에 대한 비용 산정 -> 가장 적게 소요되는거 선택
- 실행 계획에 대한 예측 및 제어 어렵
- 규칙 기준 옵티마이저 (RBO)
- 웹과 데이터베이스의 연동 기법
'자격증 > Topcit' 카테고리의 다른 글
[2021 Topcit] 데이터 이해와 활용 (0) | 2021.05.21 |
---|---|
[2021 topcit 준비] 데이터 이해와 활용 (0) | 2021.05.21 |