정규화(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(개정) 이후 정보처리기사 > 3과목 : 데이터베이스 구축' 카테고리의 다른 글
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(2) (0) | 2020.02.26 |
---|---|
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(1) (2) | 2020.02.25 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(3) (1) | 2020.02.15 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(2) (1) | 2020.02.15 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(1) (0) | 2020.02.12 |