728x90

정규화(Normalization)

정규화의 개념

- 관계형 데이터베이스에서 정확성을 더욱 유지하기 위해 스키마를 쪼개는 과정

- 데이터베이스의 논리적 설계 단계에서 수행

 

정규화의 목적

- 데이터 구조의 안정성 및 무결성을 유지

- 이상의 발생을 방지 및 자료 저장 공간의 최소화

 

이상(Anomaly)

- 사용자의 의도와는 상관없이 데이터가 삽입, 삭제, 갱신되는 현상

 

정규화 과정

- 1NF -> 2NF -> 3NF -> BCNF -> 4NF -> 5NF

- 1NF(제1 정규형)

    -> 릴레이션에 속한 모든 값들이 원자 값으로만 구성

- 2NF(제2 정규형)

    -> 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족

    -> 완전 함수적 종속 : 기본키에 의해서 속성이 결정

    -> 부분 함수적 종속 : 기본키의 일부에 의해 속성이 결정

    -> 아래와 같이 학번과 과목 코드가 기본키인 릴레이션이 있을 때

    -> 과목 점수는 기본키(학번, 과목 코드)를 가지고 알 수 있음 = 완전 함수적 종속

    -> 이름은 기본키의 일부(학번)를 가지고 알수 있음 = 부분 함수적 종속

- 3NF(제3 정규형)

    -> 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않음

    -> 이행적 종속 : A → B, B → C 일 때 A → C를 만족하는 관계

- BCNF(Boyce-Codd정규형)

    -> 결정자가 모두 후보키

- 4NF(제4 정규형)

    -> 릴레이션에 다치 종속이 성립하는 경우 모든 속성이 함수적 종속 관계를 만족

- 5NF(제5 정규형)

    -> 모든 조인 종속이 후보키를 통해서만 성립

정규화 과정

반정규화(Denormalization)

반정규화의 개념

- 정규화된 데이터를 다시 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위해

- 과도한 정규화로 성능이 떨어졌을 때 실행

 

반정규화의 종류

- 테이블 통합

    -> 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행

    -> Not NULL, Default, Check 등의 제약조건을 설계하기 어려움

- 테이블 분할

    -> 테이블을 수평 또는 수직으로 분할

- 중복 테이블 추가

    -> 여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 수행

- 중복 속성 추가

    -> 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가

 

시스템 카탈로그

시스템 카탈로그의 의미

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

- 데이터 사전(Data Dictionary)이라고도 함

 

시스템 카탈로그 저장 정보

- 시스템 카탈로그에 저장되는 정보를 메타 데이터라고 함

- 메타 데이터 : 데이터에 대한 설명. 메타 데이터가 모이면 데이터 사전이 됨

- 메타 데이터의 유형

    -> 데이터 베이스 객체 정보 : Table, Index, View 등의 구조 및 통계 정보

    -> 사용자 정보

    -> 테이블의 무결성 제약 조건 정보

    -> 함수, 프로시저, 트리거 등에 대한 정보

 

시스템 카탈로그의 특징

- 시스템 테이블로 구성되어 있어 SQL문으로 검색해 볼 수 있음

- DML(INSERT, DELETE, UPDATE) 문으로 갱신이 불가능

필기 정리

 

2020 정보처리기사 필기 정리

본 정리 글은 시나공 정보처리기사 필기책과 학교 특강을 참고하여 작성하였습니다. -> 책 정보 확인하기 2020년 정보처리기사 필기 정리 글입니다. 계속해서 글을 업데이트할 예정입니다. 작성이 안된 과목은 검..

1d1cblog.tistory.com

 

728x90

+ Recent posts