ABOUT ME

-

Today
-
Yesterday
-
Total
-

Post Calendar

«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
  • 정보처리기사 실기 스터디[2022-09-23] - 데이터 입출력 구현
    자격증/정보처리기사 2022. 9. 23. 23:11

    📌 Study

    🔸 2022-09-23

    [논리 데이터 저장소 확인]

    1. 정규화(Normalization)

    • 개념 : 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상현상 방지, 데이터 무손실 분해 과정

     

    • 이상 현상 : 데이터 중복성으로 인해 릴레이션 조작 시 발생하는 비합리적 현상
    이상 현상 설명
    삽입 이상 정보 저장 시 불필요한 세부정보를 입력해야 하는 이상 현상
    삭제 이상 원하지 않는 다른 정보가 같이 삭제하는 이상 현상
    갱신 이상 특정 부분만 수정되어 중복 값이 모순을 일으키는 이상 현상

     

    • 정규화 단계
    단계 조건
    1 정규형(1NF) 원자값으로 구성
    2 정규형(2NF) 부분 함수 종속 제거
    3 정규형(3NF) 이행 함수 종속 제거
    보이스-코드 정규형(BCNF) 결정자 후보 키 아닌 함수 종속 제거
    4 정규형(4NF) 다치 종속 제거
    5 정규형(5NF) 조인 종속 제거

     

    • 1차 정규화(1NF)
      • 테이블 내 속성값은 원자값을 가지고 있어야함
      • 속성 1개만 가지도록 저장하면 1차 정규화 만족
      • 예시 : 도메인, 이메일

     

    • 2차 정규화(2NF)
      • <고객명>, <서비스 이름><서비스 이용 기간>에 영향
      • <서비스 이름><서비스 가격>에 영향을 주는 관계 => 부분함수 종속 관계
      • 이를 부분 함수 종속 제거하여 <서비스 이름, 서비스 가격> 관계를 별도의 테이블로 두면 2차 정규화 만족
      • 예시 : 수영, 헬스 이용 서비스

     

    • 3차 정규화(3NF)
      • A -> B이고, B -> C 이면서 A -> C 관계가 같이 있는 경우 => 이행함수 종속 관계
      • A -> C 관계가 직접 영향을 주는 관계가 아니므로 테이블로 분리하여 이행 함수 종속 제거하면 3차 정규화 만족
      • 예시 : 도서 - 출판 - 홈페이지

     

    • 보이스 - 코드 정규화(BCNF)
      • <학번, 과목명><교수명>에 영향, <교수명><과목명>에 영향
      • <교수명>은 키가 아닌 상황이므로 결정자인 <교수명>이 후보 키가 아님
      • <교수명><과목명>에 직접 영향을 주기 때문에 <교수명, 과목명> 테이블로 분리
      • <교수명>이 후보 키 역할을 하도록 하면 BCNF 정규화 만족
      • 예시 : 수강신청 - 교수명 - 과목명

     

    • 4차 정규화(4NF)
      • <개발자>마다 <자격증> 값들이 여러 개 존재
      • <개발자>마다 <언어> 값들이 여러 개 존재
      • <개발자, 자격증>, <개발자, 언어> 테이블로 분리하여 관리하면 다치 종속 제거하여 4차 정규화 만족
      • 예시 : 개발자 - 자격증 - 언어

     

    • 5차 정규화(5NF)
      • 4차 정규화 테이블에 대해 조인 연산을 수행하면 4차 정규화 수행 전 데이터와 다르게 되는 문제 발생
      • 모든 속성 관계인 <개발자, 자격증>, <개발자, 언어> 뿐 아니라 <자격증, 언어> 관계에 대한 테이블을 만들어줌
      • 조인했을 때, 정확히 원래의 데이터로 복원할 수 있게 되어 5차 정규화 만족
      • 예시 : 개발자 - 자격증 - 언어

     

    2. 반 정규화(De-Normalization)

    • 정규화 된 개체, 속성, 관계에 대해 성능 향상 및 개발 운영의 단순화를 위해 수행하는 모델링 기법
    • 비 정규화, 역 정규화

     

    • 특징
      • 장점 : 성능 향상과 데이터 관리 효율성 증가
      • 단점 : 유지 비용 발생, 데이터 일관성 저하

     

    • 반 정규화 기법
      • 테이블, 컬럼, 관계
      • 테이블 : 병합, 분할, 중복 테이블 추가
        • 병합 : 조인 횟수를 줄여 성능 향상
        • 분할 : 수평 분할 : 레코드 기준 활용, 수직 분할 : 갱신, 자주 조회, 보안 적용
        • 중복테이블 추가 : 집계 테이블 : 트리거 설정, 진행 테이블 : 이력 관리, 데이터 양 유지, 특정 부분만 추가
      • 컬럼 : 중복화
      • 관계 : 중복 관계 추가

     

    • 릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 꺼내 프로젝션하는 관계 대수 = 디비전(÷)

    댓글

Designed by Tistory.