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)
        • 처리 방법들에 대한 비용 산정 -> 가장 적게 소요되는거 선택
        • 실행 계획에 대한 예측 및 제어 어렵
  • 웹과 데이터베이스의 연동 기법

 

 

 

'자격증 > Topcit' 카테고리의 다른 글

[2021 Topcit] 데이터 이해와 활용  (0) 2021.05.21
[2021 topcit 준비] 데이터 이해와 활용  (0) 2021.05.21

+ Recent posts