본문 바로가기

자격증 준비/정보처리기사필기 - 3과목(데이터베이스 구축)

[정보처리기사 필기] 3과목 - 정규화

728x90
반응형

정규화(Normalization)

함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만드는 과정

  • 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해 가는 과정
  • 종류 - 제1~5 정규형
    • 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어남
  • 데이터베이스의 논리적 설계 단계에서 수행
  • 논리적 처리품질에 큰 영향을 미침
  • 정규화된 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장

목적

  • 데이터 구조의 안정성무결성을 유지
  • 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만듦
  • 효과적인 검색 알고리즘을 생성할 수 있음
  • 데이터 중복을 배제하여 이상(Anomaly)의 발생 방지 및 자료 저장 공간의 최소화가 가능
  • 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임
  • 데이터 모형의 단수화가 가능
  • 속성의 배열 상태 검증 가능
  • 개체와 속성의 누락 여부 확인이 가능
  • 자료 검색과 추출의 효율성을 추구

정규화 과정

 

이상(Anomaly)

정규화를 거치지 않은 데이터들은 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생함, 이를 이상이라 하며 삽입 이상, 삭제 이상, 갱신 이상이 존재함

삽입 이상
(Insertion Anomaly)
릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상
삭제 이상
(Deletion Anomaly)
릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄가 일어나는 현상
갱신 이상
(Update Anomaly)
 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

 

이행적 종속 / 함수적 종속

이행적 종속(Transitive Dependency)

  • A -> B이고 B -> C일 때 A -> C를 만족하는 관계를 의미

함수적 종속(Functional Dependency)

  • 함수적 종속은 데이터들이 어떤 기준값에 의해 종속되는 것을 의미
  • 예 - <수강> 릴레이션의 (학번, 이름, 과목명)
    • '학번'이 결정되면 '과목명'에 상관없이 '학번'에는 항상 같은 '이름'이 대응
    • '학번'에 따라 '이름'이 결정될 때 '이름'을 '학번'에 함수 종속적이라고 하며 '학번 -> 이름'과 같이 씀

 

반정규화(De-Normalization)

시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정

의도적으로 정규화 원칙을 위배하는 행위

  • 시스템 성능이 향상되고 관리의 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있음
  • 과도한 반정규화는 오히려 성능을 저하시킬 수 있음
  • 사전에 데이터의 일관성과 무결성을 우선으로 할지, 데이터베이스의 성능과 단순화를 우선으로 할지를 결정해야 함
  • 방법
테이블 통합 - 두 개의 테이블이 조인(Join)되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능향상에 도움이 될 경우 수행

- 두 개의 테이블에서 발생하는 프로세스가 동일하게 자주 처리되는 경우, 두 개의 테이블을 이용하여 항상 조회를 수행하는 경우 테이블 통합을 고려함
테이블 분할 - 테이블을 수직 또는 수평으로 분할하는 것

- 수평 분할(Horizontal Partitioning) : 레코드를 기준으로 테이블을 분리

- 수직 분할(Vertical Partitioning) : 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할하는 것
중복 테이블 추가 - 여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 중복 테이블을 추가하여 작업의 효율성을 향상시킬 수 있음

- 중복 테이블 추가 방법 : 집계 테이블의 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블의 추가
중복 속성 추가 - 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것

 

시스템 카탈로그(System Catalog)

시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스

  • 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블
  • 카탈로그들이 생성되면 데이터 사전(Data Dictionary)에 저장되기 때문에 좁은 의미로는 카탈로그를 데이터 사전이라고도 함
  • 시스템 카탈로그에 저장된 정보 = 메타 데이터(Meta-Data)
  • 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있음
  • INSERT, DELETE, UPDATE문으로 카탈로그 갱신하는 것은 허용되지 않음
  • 데이터베이스 시스템에 따라 다른 구조를 가짐
  • DBMS가 스스로 생성하고 유지

카탈로그의 갱신

  • 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신

🥑 Data Directory

  • 데이터 사전에 수록된 데이터를 실제로 접근하는 데 필요한 정보를 관리 유지하는 시스템
  • 시스템 카탈로그는 사용자와 시스템 모두 접근할 수 잇지만 데이터 디렉터리는 시스템만 접근할 수 있음
728x90
반응형