⭐️ Implementation of Data Input and Output 4️⃣

m_ngyeong·2024년 4월 15일
0

정보처리기사 이론

목록 보기
6/29
post-thumbnail

📀 Implementation of Data Input and Output


DataBase?

  • 공유 데이터 : 여러 사람이 공유할 수 있음
  • 저장 데이터 : 물리적인 저장 디스크(하드 디스크...)에 저장되어 있음
  • 통합 데이터 : 중복을 제거한 일관성 있는 데이터를 전달
    • 중복을 제거하지 않을 시 이상 현상 발생 → 중복을 제거하기 위해 정규화 작업 수행
    • 이상(Anomaly) 현상 :
      • 삽입 이상(Insertion Anomaly) : 불필요한 데이터까지 같이 삽입 되는 현상
      • 삭제 이상(Deletion Anomaly) : 연쇄 삭제 현상
      • 갱신 이상(Update Anomaly) : 데이터를 갱신 했을 때 정보에 불일치성(Incosistency)이 생기는 현상, 즉 모순
  • 운영 데이터 : 데이터를 이용하여 서비스를 운영

Normalization(정규화)

정규화테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정이다.

  • 목적 : 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것
  • 종류 : 제 1정규형(1NF), 제 2정규형(2NF), 제 3정규형(3NF), BCNF, 제 4정규형(4NF), 제 5정규형(5NF)이 있으며, 순서대로 정규화의 정보가 높아짐
  • 함수적 종속(Functional Dependency) 관계에 의해서 정규화를 진행
    • 함수적 종속(Functional Dependency) :
      • 완전 함수적 종속(Full Functional Dependency) : 예를 들어 주민번호를 가지고 나를 특정할 수 있는 것처럼 특정한 키를 가지고 나를 특정할 수 있는 것을 말함.
      • 부분 함수적 종속(Partial Functional Dependency) :
      • 이행적 함수적 종속(Transitive Functional Dependency) : X → Y이고 Y → Z일 때 X → Z를 만족하는 관계를 의미

Normalization Process(정규화 과정)

🌟 두부이걸다줘? ≒ 도부이결다조

제 1정규형(1NF; First Normal Form)

테이블 R에 속한 모든 속성의 도메인이 원자 값(Atomic Value)으로만 되어 있는 정규형이다.

  • <주문목록> 테이블에서는 하나의 제품에 대해 여러 개의 주문 관련 정보(주문번호, 고객번호, 주소, 주문수량)가 발생
  • <주문목록> 테이블에서 반복되는 주문 관련 정보인 주문번호, 고객번호, 주소, 주문수량을 분리하면 위와 같이 제 1정규형인 <제품> 테이블과 <제품주문> 테이블이 만들어짐
  • 제 1차 정규화 과정으로 생성된 <제품주문> 테이블의 기본키는 (주문번호, 제품번호)이고, 다음과 같은 함수적 종속이 존재
    • 주문번호, 제품번호 → 고객번호, 주소, 주문수량
    • 주분번호 → 고객번호, 주소
    • 고객번호 → 주소

제 2정규형(2NF; Second Normal Form)

테이블 R이 1NF이고, 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형이다.

  • <제품주문> 테이블에 기본키인 (주문번호, 제품번호)에 완전 함수적 종속이 되지 않는 속성이 존재
    즉, 주문수량은 기본키에 대해 완전 함수적 종속이지만 고객번호와 주소는 주문번호에 의해서도 결정될 수 있으므로, 기본키에 대해 완전 함수적 종속이 아님
  • <제품주문> 테이블에서 주문번호에 함수적 종속이 되는 속성인 고객번호와 주소를 분리(부분 함수적 종속을 제거)해내면 위와 같이 제 2정규형인 <주문목록> 테이블과 <주문> 테이블로 무손실 분해 됨
  • 제 2차 정규화 과정으로 생성된 <주문> 테이블의 기본키는 (주문번호)이고, 아직 다음과 같은 함수적 종속이 존재
    • 주분번호 → 고객번호, 주소
    • 고객번호 → 주소

제 3정규형(3NF; Third Normal Form)

테이블 R이 2NF이고, 기본키가 아닌 모든 속성이 기본키에 대하여 이행적 함수적 종속(Transitive Functional Dependency)을 만족하지 않는 정규형이다.

  • <주문> 테이블에서 고객번호가 주문번호에 함수적 종속이고, 주소가 고객번호에 함수적 종속이므로 주소는 기본키인 주문번호에 대해 이행적 함수적 종속을 말함
    즉, 주문번호 → 고객번호이고, 고객번호 → 주소이므로 주문번호 → 주소 는 이행적 함수적 종속이 됨
  • <주문> 테이블에서 이행적 함수적 종속(주문번호 → 주소)를 제거하여 무손실 분해함으로써 위와 같은 제 3정규형인 <주문> 테이블과 <고객> 테이블이 생성됨

BCNF(Boyce-Codd Normal Form)

테이블 R에서 모든 결장자가 후보키(Candidate Key)인 정규형이다.

  • 일반적으로 3NF에 후보키가 여러 개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우에 적용 가능
  • <수강교수> 테이블(3NF)은 함수적 종속{(학번, 과목명) → 담당교수, (학번, 담당교수) → 과목명, 담당교수 → 과목명}을 만족
    <수강
    교수> 테이블의 후보키 : (학번, 과목명)과 (학번, 담당교수)
  • 함수적 종속 담당교수 → 과목명이 존재하는데, 담당교수가 <수강_교수> 테이블에서 후보키가 아니기 때문에 <수강_교수> 테이블은 BCNF가 아님
  • BCNF를 만족하지 못하게 하는 속성(담당교수 → 과목명)을 분리해내면 BCNF인 <수강> 테이블과 <교수> 테이블로 무손실 분해됨

제 4정규형(4NF; Fourth Normal Form)

테이블 R에 다중 값 종속(MVD; Multi Valued Dependecy) A ↠ B가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형이다.

  • 다중 값 종속(MVD) : A, B, C 3개의 속성을 가진 테이블 R에서 어떤 복합 속성(A, C)에 대응하는 B 값의 집합이 A 값에만 종속되고 C 값에는 무관하면, B는 A에 다중 값 종속이라고 하고, A ↠ B로 표기함

제 5정규형(5NF; Fifth Normal Form)

테이블 R의 모든 조인 종속(JD: Join Dependency)이 R의 후보키를 통해서만 성립되는 정규형이다.

  • 조인 종속(JD) : 어떤 테이블 R의 속성에 대해 부분 집합 X,Y,...,Z가 있다고 하면, 만일 테이블 R이 자신의 프로젝션(Projecton) X,Y,...,Z를 모두 조인한 결과와 동일한 경우 테이블 R은 조인 종속 JD(X,Y,...,Z)를 만족한다고 함

Denormalization(반정규화)

반정규화는 시스템의 성능을 향상하고 개발 빛 운여의 편의성 들을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화의 원칙을 위배하는 행위이다.

  • 반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있음
  • 과도한 반정규화는 오히려 성능을 저하시킬 수 있음

중복 테이블 추가

중복 테이블 추가는 작업의 효율성을 향상시키기 위해 테이블을 추가하는 것이다.

  • 집계 테이블의 추가 : 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거(Trigger)를 설정하여 사용하는 것
  • 진행 테이블의 추가 : 이련 관리 등의 목적으로 추가하는 테이블
  • 특정 부분마을 포함하는 테이블의 추가 : 데이터가 많은 테이블의 특정 부분마을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성


참고,
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.
https://youtu.be/YB_UcgO111Y?si=mEd3b8kMtCMM-Tu1

profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글