찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
{{tag>데이터베이스 정규화}} ====== 데이터베이스 정규화 (Database normalization) ====== 정규화는 데이터베이스의 자료에서 중복성 및 일치하지 않는 종속성을 제거하여 데이터베이스의 유연성을 높이는 동시에 데이터를 보호하도록 설계된 규칙에 따라 테이블을 만들고 해당 테이블 간의 관계를 설정하는 작업이다. 데이터가 중복되면 디스크 공간이 낭비되며 유지 관리상의 문제가 발생함. 여러 위치에 있는 데이터를 변경해야 하는 경우에는 모든 위치에서 데이터를 정확히 동일한 방식으로 변경해야 함. 고객 주소 데이터가 Customers 테이블에만 저장되어 있고 데이터베이스의 다른 위치에는 없다면 고객 주소 변경을 구현하기가 훨씬 쉬워질 것임. 그렇다면 "일치하지 않는 종속성"이란 무엇일까? 특정 고객의 주소를 찾으려는 사용자는 자연스럽게 Customers 테이블을 확인하지만 해당 고객에게 전화를 거는 직원의 급여를 이 테이블에서 확인하는 것은 적절하지 않을 수 있다. 직원의 급여는 직원에 관련/종속되므로 Employees 테이블로 이동해야 함. 일치하지 않는 종속성이 있는 경우 데이터를 찾을 수 있는 경로가 없거나 끊겨 있을 수 있으므로 데이터를 찾기가 어려울 수 있다. 데이터베이스 정규화 예제로 간략하게 정규화에 대한 설명을 하겠다. =====제1 정규화 ===== 반복되는 필드가 없어야 함. 이름 암호 별명1 별명2 별명3 --------------------------------------------- A 12 바보 쪼다 천치 B 13 천재 오버 NULL C 14 상식 NULL NULL D 15 오리 NULL NULL 위와 같이 이렇게 설계 하지 않고 다음처럼 함. 이름 암호 -------------- A 12 B 13 C 14 D 15 id 이름 별명 --------------- 1 A 바보 2 A 쪼다 3 A 천치 4 B 천재 5 B 오버 6 C 상식 7 D 오리 이렇게 설계해야 함. =====제2 정규화===== 중복되는 데이터를 분리해야 함. 사번 이름 부서 부서장 --------------------------------------- 10101 홍길동 총무과 이부장 10102 고길동 총무과 이부장 10103 박길동 인사과 박부장 10104 최길동 인사과 박부장 위와 같은 구조를 다음과 같이 설계함. 사번 이름 부서번호 ------------------------- 10101 홍길동 1 10102 고길동 1 10103 박길동 2 10104 최길동 2 부서번호 부서 부서장 -------------------------------- 1 총무과 이부장 2 인사과 박부장 =====제3 정규화 ===== 주 키에 의존적이지 않은 데이터를 분리함. 학번 이름 국어점수 국어타입 수학점수 수학타입 ------------------------------------------------------------------------- 10101 홍길동 100 전공필수 80 교양선택 위와 같은 구조를 다음과 같이 함. 학번 이름 ------------------ 10101 홍길동 10102 고길동 과목 타입 ------------------ 국어 전공필수 영어 교양선택 형태로 바꾸어 준다. 정규화의 원칙 : More Table Less Column을 지향함. - FK 이외에는 중복 컬럼을 허용하지 않아야 함. => 이 원칙을 지킬 경우 JOIN의 횟수가 늘어날 가능성이 높으므로= JOIN횟수를 줄이기 위해서 아주 많이 일어나는 Query의 속도를 빠르게 하기 위해 약간의 중복을 허용함. 정규화는 정규화 할 수록 테이블 조회 시 조인을 해야 하기때문에 성능이 떨어지는 부분이 있지만 보통 3정규화까는 함. =====역정규화(Denormalization)===== http://www.dbguide.net/db.db?cmd=view&boardUid=148185&boardConfigUid=9&categoryUid=216&boardIdx=133&boardStep=1
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
기술
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
semen_analysis
[정자 향상을 위한 방법]
misuse_endixg
misuse_celestoneg2
misuse_celestoneg28
hysterosalpingography
[비정상]
med
[난임]
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain