728x90
정규화
- 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만듬
- 정규화 수준이 높을수록 유연한 데이터 구축, 데이터 정확성이 높아짐, 하지만 많은 조인으로 조회 성능이 저하됨
- 안정성 및 무결성 유지
- 이상의 발생 방지 및 자료 저장 공간의 최소화
- 데이터 중복성 감소
이상의 개념 및 종류
- 삽입 이상 : 데이터 삽입 시 의도와 상관없이 원하지 않는 값이 들어갈 떄
- 삭제 이상 : 릴레이션에서 한 튜플을 삭제할 때 의도와 상관없이 값이 함께 삭제
- 갱신 이상 : 속성값 갱신 시 일부 튜플 정보만 갱신될 때
정규화 과정
- 1NF(제1정규형) : 모든 도메인이 원자값만으로 되어 있음
- 2NF(제2정규형) : 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수 종속
- 3NF(제3정규형) : 이행적 종속 만족 X
- BCNF(Boyce-Codd 정규형) : 결정자가 모두 후보키인 정규형
- 4NF(제4정규형) : 다치 종속이 성립할 떄 함수적 종속 관계
- 5NF(제5정규형) : 모든 조인 종속이 후보키를 통해서만 성립되는 정규형
- 도부이결다조
반정규화
- 정규화된 데이터 모델을 통합, 중복, 분리하는 과정, 의도적으로 정규화 원칙 위배
- 시스템 성능 향상, 관리 효율성 증가, 데이터의 일관성, 정합성 저하
- 방법 : 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가
테이블 통합
- 두 개의 테이블을 하나로 합쳐 사용하여 성능 향상, 두 개의 테이블을 조회할때 자주 사용
- 1:1 관계 테이블 통합, 1:N 관계 테이블 통합, 슈퍼타입/서브타입 테이블 통합
- 입력, 수정, 삭제가 어려움, 처리량 증가, 제약조건 설계 어려움
테이블 분할
- 수직 또는 수평으로 분할
- 수평 분할 : 레코드 기준으로 분할, 사용 빈도에 따라 테이블 분할
- 수직 분할 : 속성 기준으로 테이블 분할
- 수행 속도가 느려질 수 있음, 데이터 검색에 중점을 두어 테이블 분할 여부를 결정
중복 테이블 추가
- 여러 테이블에서 데이터를 추출할 때, 다른 서버에 저장된 테이블 이용해야 할 때 사용
- 추가하는 경우 : 수행 속도 느릴 때, 많은 범위, 특정범위 데이터를 자주 처리할 떄
- 방법 : 집계 테이블 추가, 진행 테이블 추가, 특정 부분만 포함하는 테이블 추가
중복 속성 추가
- 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성 추가
- 추가하는 경우 : 조인 자주 발생, 접근 경로가 복잡할 때
'자격증 > 정보처리기사' 카테고리의 다른 글
95. 뷰 설계(A) (0) | 2023.02.03 |
---|---|
93. 트랜잭션 분석 / CRUD 분석(A) (0) | 2023.02.03 |
87. 관계대수 및 관계해석(A) (0) | 2023.02.03 |
85~86. 관계형 데이터베이스의 제약 조건 - 키, 무결성(B) (0) | 2023.02.03 |
84. 관계형 데이터베이스의 구조(A) (0) | 2023.02.03 |