데이터 베이스 정규화 정규화의 필요성.

Slides:



Advertisements
Similar presentations
베이비부머 세대의 삶 [특강자료] 배문호(지역및도시계획학 박사) - 주택문제와 관련하여 -
Advertisements

학번 이름 김정현 1차 프로젝트 발표 2D 게임프로그래밍. 목차 1. 게임 컨셉 2. 게임 설명 2/10 3. 개발 범위 4. 개발 일정 5. 자체 평가.
기능평가와 긍정적 행동 지원 우석대학교 특수교육과 행동 수정 김수현.
미스터리 치정 복수극.
ER Schema (추가)
UML의 모델링의 본질 다이어그램으로 쉽게 보이는 UML
“선교지의 문화를 이해하라” 샅치기 게임 준비물 : 표지, 진행지, 페이스페인팅 물감 선교지의 풍습을 이해하라.
대학인사제도의 개선방향 한양대학교 인사팀장 전 병 곤.
실전 데이터모델링 & 데이터베이스 설계와 구축
제약 조건 부모 테이블 자식 테이블 입 력 수 정 삭 제  관계형성을 통한 참조 무결성
Chapter 02. 데이터 모델링.
사업타당성 분석 창업 사업계획서 작성.
회 사 소 개 서 09.
영유아 발달 검사 BSID-II (베일리 발달검사).
Test-Driven Development
응용프로그램 예제 컴퓨터응용 및 실습 I.
Ch. 1 선형대수학: 행렬, 벡터, 행렬식, 선형연립방정식
경동대학교 건축토목공학부 교수 디자인기초 14주차 경동대학교 건축토목공학부 교수
데이터베이스 (Database) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
데이터베이스 설계와 ER 모델 설계, ER 모델링.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
제 13 장 관계 데이타베이스의 함수적 종속성과 정규화 기본 이론
9 장. 관계 데이타베이스의 함수적 종속성과 정규화 9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
재단법인 네오딘의학연구소 강희용,김보경,김미라,홍창식,김창수
국제관계론 제2강. 국제정치의 이념 신라대학교 국제관계학과 교수 이 동 윤.
9 장. 관계 데이터베이스의 함수적 종속성과 정규화
피부타입과 진단.
불확실성(Uncertainty) 현실세계: 복잡, 예측이 어렵다. 비논리적, 상호 모순적인 상황들로 얽혀있다. → 과학, 공학: 단순화, 규칙성 부여 시스템 내외부에 존재하는 불확실성에 대처할 필요 단순화된 모델, 정형화된 기법의 한계 불확실성 해결 기법 불확실하고 상호.
위험물 제조소 등의 종류 주식회사 한국소방엔지니어링.
위험물 제조소 등의 종류 구재현 목원대학교 소방안전관리학과.
클라우드 컴퓨팅 환경에서의 RBAC 기반 적응적 보안 관리 모델
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
정규화-정규화 과정.
바코드에 대하여…… 바코드에 대하여 알아보도록 하자 6-1 홍지효.
4장 운동의 법칙 ( The Laws of Motion)
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
Modeling one measurement variable against another Regression analysis (회귀분석) Chapter 12.
8주차. 태도형성 변화모형.
ER-관계 사상에 의한 관계 데이터베이스 설계
다면평가의 적합성 평가.
4장. 데이터 종속성과 정규화.
3.1 요구 모델링 Date : Create by kim wan yi
문제정의 공학입문 설계 세번째 시간 공학입문설계
3장 구조적 분석(SSA) 방법론 한빛미디어(주).
데이터베이스 개발 단계.
정상화 (NORMALIZATION)와 사회적 역할 가치화 (SRV)
3장 구조적 분석(SSA) 방법론.
Bandura의 사회학습이론 Wertheimer의 행태주의이론 사람의 행동에 대해 관찰해보신 적 있나요?
API Multi Blogger 설명서
제 8장 데이터베이스.
05 ASP.NET 2.0 페이지 및 응용 프로그램 구조 웹 폼(Web Form) 웹 폼 이벤트
제3장 시간 영역에서의 모델링.
Modeling one measurement variable against another Regression analysis (회귀분석) Chapter 12.
性 不平等 지수 (0 : 완전 평등, 1 : 완전 불평등) 순위 G 20 독일 합계 출산률 프랑스 영국
공 학 입 문 경성현 금영섭.
Your kids are Special 방과후 영어교실 신 청 서 태 안 초 등 학 교 방 과 후 영 어 교 실
지역사회복지론 - 1장 지역사회와 지역사회이론에 대한 이해.
ER-관계 사상에 의한 관계 데이터베이스 설계
다면평가의 적합성 평가.
8장 의사소통장애 Ⅰ. 의사소통장애의 정의 1. 용어정의
제 9장 물질관련장애 조원.
Windows System Programming
기술경영학 박사과정 곽규태 사회학과 석사과정 권애정
8장 가족과 건강가족기본법 제정배경 주요내용 분석.
ER-관계 사상에 의한 관계 데이터베이스 설계
장애인거주시설에서의 사회복지실천 국립재활원 동천의집 원장 장애란.
품사 분류의 기준과 실제.
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
Presentation transcript:

데이터 베이스 정규화 정규화의 필요성

목차 정규화의 필요성 정규화란? 정규화의 종류

정규화의 필요성 속성들 간의 관계 표현 데이터의 종속과 중복 제거 정규화 기억공간 낭비 최소화 및 정보의 품질 향상 새로운 속성 추가시 기존속성과의 관계수정 최소화 기억공간 낭비 최소화 및 정보의 품질 향상 정규화

정규화란? 정규화란 다양한 유형의 데이터 값 검사를 통해 데이터 모델을 더 구조화시키고 개선시켜 나가는 절차에 관련된 이론입니다. 정규화가 프로세스를 나타내는 의미라면 정규형은 정규화가 완성된 이후의 엔티티 타입(테이블)을 지칭하는 용어입니다. 정규화를 이해하기 위해서는 이론적인 기반이 되는 함수 종속성을 이해할 필요가 있으며 함수의 종속성(functional dependency)은 데이터들이 어떤 기준 값에 의해 종속되는 현상을 지칭하는 것입니다. 이 때 기준 값을 결정자(determinant)라 하고 종속되는 값을 종속자/의존자(dependent)라고 합니다. 위그림을 보면 사람이라는 엔티티 타입에는 주민등록번호, 이름, 출생지, 호주라는 속성이 존재합니다. 여기에서 이름, 출생지, 호주라는 속성은 주민등록번호 속성에 종속됩니다. 만약 어떤 사람의 주민등록번호가 신고되면 그 사람의 이름, 출생지, 호주가 생성되어 단지 하나의 값만을 가지게 되는데 이를 기호로 표시하면 다음과 같습니다. 주민등록번호 -> (이름, 출생지, 호주) 즉 ‘주민등록번호가 이름, 출생지, 호주를 함수적으로 결정한다’라고 말할 수 있습니다. 실세계의 데이터들은 대부분 이러한 함수 종속성을 가지고 있으며. 함수의 종속성은 데이터가 가지고 있는 근본적인 속성으로 인식되고 있습니다. 정규화의 궁극적인 목적은 반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게(프로세스에 의해 데이터의 정합성이 지켜질 수 있어야 함) 배치되도록 하는 것이므로 이 함수의 종속성을 이용하여 정규화 작업을 합니다.

정규화의 종류 1차 정규화(복수의 속성 값을 갖는 속성의 분리) 1차 정규화는 복수의 속성 값을 가진 속성을 분리합니다. 즉 테이블 하나의 컬럼에는 여러 개의 데이터 값이 중복되어 나타나지 않아야 한다는 것입니다. 이는 각 속성에 값이 반복 집단이 없는 원자 값으로만 구성되어 있어야 한다는 것을 의미합니다. 1차 정규화 사례 1 ‘한 번의 주문에 여러 개의 제품을 주문한다’는 업무 규칙이 있는데 <그림 1>의 아래와같이 데이터 모델링을 했다고 가정해 봅니다. 아래의 엔티티 타입은 하나의 주문에 여러 개의 제품이 존재하므로 주문번호, 주문일자, 배송요청일자의 동일한 속성 값이 주문한 제품의 수만큼 반복해서 저장될 것입니다. 따라서 오른쪽과 같이 1차 정규화를 적용하여 중복속성 값을 제거합니다. <그림 1>

정규화의 종류 2차 정규화(주식별자에 종속적이지 않은 속성의 분리) 1차 정규화를 진행했지만 속성 중에 주식별자에 종속적이지 않고 주식별자를 구성하는 속성의 일부에 종속적인 속성인, 부분종속 속성을 분리하는 것이 2차 정규화입니다. 2차 정규화는 반드시 자신의 테이블을 주식별자를 구성하는 속성이 복합 식별자일 경우에만 대상이 되고 단일 식별자일 경우에는 2차 정규화 대상이 아닙니다. 2차 정규화 사례 여러 개의 속성이 주식별자로 구성되어 있을 때 일반속성 중에서 주식별자에 일부에만 종속적인 속성이 있을 경우 2차 정규화를 적용하여 엔티티 타입을 분리하도록 합니다. <그림 2> <그림 2>은 고객번호에 종속적이지 않은 속성들을 분리하여 고객점포라는 새로운 엔티티 타입을 생성하였습니다.

정규화의 종류 3차 정규화(속성에 종속적인 속성 분리) 3차 정규화(third normalization)는 속성에 종속적인 속성을 분리하는 것입니다. 즉 1차 정규화나 2차 정규화를 통해 분리된 테이블에서 속성 중 주 식별자에 의해 종속적인 속성 중에서 다시 속성 간에 종속 관계가 발생되는 경우에 3차 정규화를 진행합니다. 3차 정규화의 대상이 되는 속성들을 이전 종속(transitive dependence) 관계 속성이라고 한다. 이것은 곧 주식별자에 의해 종속적인 속성 중에서 다시 다른 속성을 결정하는 결정자가 존재하여 다른 속성이 이 결정자 속성에 종속적인 관계를 나타낸다. 3차 정규화 실전 적용 결정자 역할을 하는 일반 속성이 존재하고, 결정자 역할 속성에 의존하는 의존자가 존재하는 엔티티 타입은 3차 정규화의 대상이 된다. <그림 3> <그림 3>은 고객 엔티티 타입에 등록카드에 대한 정보가 포함되어 있는 모습이다. 등록카드번호가 결정자 역할을 하고 있고 등록카드사명과 등록카드유효일자가 의존자 역할을 하는 속성 간의 종속적인 속성이 발견되었으므로 3차 정규화의 대상이 되는 모델이다. 따라서 등록카드에 대한 내용에 대해 별도의 엔티티 타입을 도출한 오른쪽 모델로 만듬으로서 3차 정규화를 완성하였습니다.

정규화의 종류 보이스-코드 정규화 1차 정규화, 2차 정규화, 3차 정규화는 모두 하나의 주식별자를 가졌을 때를 가정하여 진행하였습니다. 만약 하나의 테이블에 여러 개의 식별자가 존재하면 비록 1, 2, 3 정규형을 모두 만족하더라도 데이터를 조작하는 데 문제가 발생될 수 있습니다. 복잡한 식별자 관계에 의해 발생되는 문제를 해결하기 위해 3차 정규화를 보완한 보이스-코드 정규화(boyce-code normalization)를 진행합니다. 보이스-코드 정규화란 테이블에 존재하는 식별자가 여러 개 존재할 경우 식별자가 중복되어 나타나는 현상을 제거하기 위해 정규화 작업을 진행합니다. <그림 4> <그림 4>의 주식별자는 부품번호, 부품이름, 납품번호 세 개의 속성의 구성이 되어 있고 세 개의 속성을 구성한 주식별자는 납품수량, 납품단가에 대해 결정자 역할을 합니다. 그런데 부품번호+납품번호 만으로도 납품수량, 납품단가에 대해 결정자 역할을 할 수도 있고 부품이름+납품번호 만으로도 납품수량, 납품단가에 대해 결정자 역할을 할 수 있으며 부품번호와 부품이름은 상호간에 결정자역할을 하는 특성을 가지고 있습니다. 이러한 성격을 이용하여 데이터 모델에서는 최소의 속성의 조합이 주식별자를 갖게 하도록 BCNF(Boyce Codd Normal Form)를 적용합니다. 즉, 부품번호를 주식별자로 하여 하여 부품을 구성하거나 부품이름을 주식별자로 하여 부품 엔티티 타입을 분리하여 납품과 관계를 갖게 하는 형식으로 정규화를 진행하는 방식이 바로 보이스-코드 정규화 방법이 됩니다.

정규화의 종류 4차 정규화(특정 속성 값에 따라 선택적인 속성의 분리) 하나의 테이블에 두 개 이상의 독립적인 다가속성(multi-valued attribute)이 존재하는 경우에 다가종속(multi-valued dependency)이 발생되어 문제가 생깁니다. 다가종속이라는 단어를 해석하면, 하나의 속성 값에 두 개의 이상의 의미를 가지는 값을 가지는 것을 의미합니다. 4차 정규화의 대상이 되는 경우는 실제 프로젝트에서는 독립적인 엔티티 타입을 설계할 때 발생하기 보다는 동시에 여러 개의 엔티티 타입과의 관계에서 발생되는 경우가 많이 있습니다. <그림 5> <그림 5>과 같은 업무 규칙이 있습니다. ‘한 명의 사원은 여러 개의 프로젝트를 지원할 수 있다’ 그리고 ‘한 명의 사원은 여러 개의 기술을 보유할 수 있다’ 즉 사원과 프로젝트, 사원과 기술 간의 업무적인 관계의 규칙이 있는 경우입니다. 이 업무 규칙은 보유하는 기술이 있다는 사실을 관리하고 보유한 기술은 지원한 프로젝트와는 아무런 상관이 없다는 것이 특징이다. 그럼에도 불구하고 <그림 5>의 왼쪽처럼 사원과 프로젝트와 기술 간의 관계를 모두 연결하면 4차 정규화의 규칙을 위배하여 어떤 사원이 새로운 기술을 습득하여 사원내역 엔티티 타입에 등록하려고 하면 마치 금방 습득한 기술을 가지고 어떤 프로젝트를 지원한 것처럼 값을 채워줘야만 하는 현상에 빠지게 된다. 따라서 필요하지 않은 조인 관계를 해소하기 위해 오른쪽 모델과 같이 업무 규칙에 적합하게 관계를 분리하는 방법이 4차 정규화입니다.

정규화의 종류 5차 정규화(제4정규형을 일반화한 것) 제4정규형이고 관계 중에서 성립되는 모든 결합 종속성이 그 관계의 후보 키만으로 논리적으로 함축되어 있는 경우에 그 관계를 제5정규형이라고 하며 다치 종속 개념을 사용하지 않고 다음과 같이 정의하기도 합니다. 어떤 관계가 제3정규형의 관계이고 모든 키가 단일 속성으로 구성되어 있는 경우에 그것을 제5정규형이라고 합니다 반정규화(역정규화) 정규화된 엔티티 타입, 속성, 관계에 대해 시스템의 성능향상과 개발(development)과 운영(maintenance)의 단순화를 위해 데이터모델을 조정하는 프로세스를 의미합니다. 단순하게 정규화 규칙에 반대되는 개념으로만 생각한다면 속성의 중복 정도가 반정규화의 범위에 해당되지만 물리적인 성능을 고려한 반정규화의 개념으로 생각한다면 테이블 통합/분리, 속성 중복, 속성 추가, 관계 중복 등이 반정규화의 범위에 해당됩니다. 성능향상을 위해 반정규화를 적용할 경우 반드시 중요하게 고려해야 할 점은 데이터의 무결성 유지입니다. 성능을 중요하게 여겨 여러 테이블에 속성들을 반정규화하는 경우가 많은데 반정규화를 많이 할수록 데이터의 무결성은 깨져 이상한 데이터가 많이 남아있거나 돈의 액수가 맞지 않거나 등록된 접수 건수가 맞지 않은 현상이 시스템을 운영하는 중에 점점 많이 발생하게 되어 나중에는 시스템을 사용하지 못하게 되는 경우가 발생될 수 있기에 데이터 무결성을 중요하게 생각하고 반정규화를 적용할 필요가 있습니다.