스키마 정제와 정규형 Chapter 15 The slides for this text are organized into chapters. This lecture covers Chapter 15. Chapter 1: Introduction to Database Systems.

Slides:



Advertisements
Similar presentations
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Advertisements

제 4 장 관계 데이타 모델과 관계 데이타베이스 제약조건
이진 나무 구조 강윤섭 2008년 5월 23일.
1. 관계 데이터베이스의 정규화 (1) 정규화 1) 이상(anomaly) ① 이상의 정의 • 관계 모델에서는 애트리뷰트들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현하기 때문에 릴레이션 조작 시 이상 (anomaly) 발생 • 데이터의 중복으로 인하여 관계연산을.
Query-by-Example (QBE)
개체-관계 (Entity-Relationship)모델
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
연결리스트(linked list).
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
Windows Server 장. 사고를 대비한 데이터 백업.
11. 데이타 종속성과 정규화.
9 장. 관계 데이타베이스의 함수적 종속성과 정규화 9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침
RS 및 D 플립플롭 RS Flip Flop 래치는 어떤 입력 레벨에 의해서 제어되는 데 플립플롭은 클록 입력이라고
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 어느것을 기본으로 만들것인가
관계 대수.
08. 데이터 모델링.
제 10 장 관계 데이타베이스 설계 알고리즘과 추가적인 정규형
1. 관계 데이터 언어 관계 대수 1) 관계대수 정의 ① 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 인 방법 ② 주어진 관계로 부터 원하는 관계를 얻기 위해 연산자와 연산 규칙을 제공하는 언어 ③ 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가.
데이터베이스 (Databases) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
Ⅲ. 이 차 방 정 식 1. 이차방정식과 그 풀이 2. 근 의 공 식.
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
함수적 종속과 정규화 함수적 종속 데이터 중복의 문제점 정규형.
자바 5.0 프로그래밍.
데이타베이스 시스템 개요 Chapter 1 송 병 호
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
문제 2명의 사형수가 있다. 둘에게는 검정색 모자와 흰색 모자를 임의로 씌우는데, 자기가 쓴 모자의 색은 절대로 알 수가 없다. 서로 상대의 모자색만을 볼 수 있고, 이들이 살기 위해선 자신의 쓴 색의 모자를 맞춰야 한다. 단, 둘 중 한명만이라도 자신이 쓴 모자의 색을.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
8장. 상호 배타적 집합의 처리.
관계 데이터 모델과 관계 데이터베이스 제약 조건
뇌를 자극하는 Windows Server 2012 R2
Data Structure Study Summer vacation
ER-관계 사상에 의한 관계 데이터베이스 설계
8장 쿠키와 세션 한빛미디어(주).
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
Chapter 03. 관계 데이터베이스 설계.
05. Relational DBMS 명지대학교 ICT 융합대학 김정호.
합집합과 교집합이란 무엇인가? 01 합집합 두 집합 A, B에 대하여 A에 속하거나 B에 속하는 모든 원소로 이루어진 집합을 A와 B의 합집합이라고 하며, 기호 A∪B로 나타낸다. A∪B ={x | x∈A 또는 x∈B}
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
( Windows Service Application Debugging )
문성우 SQL 실습 Part Ⅰ 문성우.
알고리즘 알고리즘이란 무엇인가?.
약식 진리표를 이용한 타당성 증명 진리표 그리기 방법의 한계
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
Chapter 1 단위, 물리량, 벡터.
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
Chapter 10 데이터 검색1.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
상관계수.
이산수학(Discrete Mathematics)  술어와 한정기호 (Predicates and Quantifiers)
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
ER-관계 사상에 의한 관계 데이터베이스 설계
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
관계 대수 Chapter 4, Part A The slides for this text are organized into chapters. This lecture covers relational algebra from Chapter 4. The relational calculus.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
플래시MX2004 디자인스쿨 Chapter 11. 플래시와 사운드.
Presentation transcript:

스키마 정제와 정규형 Chapter 15 The slides for this text are organized into chapters. This lecture covers Chapter 15. Chapter 1: Introduction to Database Systems Chapter 2: The Entity-Relationship Model Chapter 3: The Relational Model Chapter 4 (Part A): Relational Algebra Chapter 4 (Part B): Relational Calculus Chapter 5: SQL: Queries, Programming, Triggers Chapter 6: Query-by-Example (QBE) Chapter 7: Storing Data: Disks and Files Chapter 8: File Organizations and Indexing Chapter 9: Tree-Structured Indexing Chapter 10: Hash-Based Indexing Chapter 11: External Sorting Chapter 12 (Part A): Evaluation of Relational Operators Chapter 12 (Part B): Evaluation of Relational Operators: Other Techniques Chapter 13: Introduction to Query Optimization Chapter 14: A Typical Relational Optimizer Chapter 15: Schema Refinement and Normal Forms Chapter 16 (Part A): Physical Database Design Chapter 16 (Part B): Database Tuning Chapter 17: Security Chapter 18: Transaction Management Overview Chapter 19: Concurrency Control Chapter 20: Crash Recovery Chapter 21: Parallel and Distributed Databases Chapter 22: Internet Databases Chapter 23: Decision Support Chapter 24: Data Mining Chapter 25: Object-Database Systems Chapter 26: Spatial Data Management Chapter 27: Deductive Databases Chapter 28: Additional Topics 1

중복성에 따른 여러 문제  중복성(Redundancy)은 관계 스키마에서 발생되는 여러 문제의 근본 원인이다. 중복 저장,삽입/삭제/갱신 이상  무결성 제약조건,특히 함수종속성(functional dependency)를 분석하면 이런 문제가 있는 스키마를 파악할 수 있고, 정제 방향도 알 수 있다.  주된 정제 기법: 분해(decomposition)(ABCD 를 가령 AB와 BCD나 ACD와 ABD로 대체).  분해는 신중하게: 릴레이션을 분해할 이유가 있는가? 분해때문에 무슨 문제라도 생길 가능성이 있는가? 14

함수 종속 (FD)  함수 종속 X Y 가 릴레이션 r에 대하여 성립한다는 것은, R이 어떠한 인스턴스 r에 대해서도: t1 r, t2 r, (t1) = (t2) 면 (t1) = (t2)이다. i.e., r의 어떤 두 투플이, X 값이 같으면 Y의 값도 같아야 한다. (여기에서 X와 Y는 애트리뷰트의 집합임)  FD 는 모든 가능한 인스턴스에 대한 진술이다. 응용의 내용에 근거하여 파악되어야 한다. R의 어떤 적법한 인스턴스 r이 있으면, 어떤 FD f의위배 여부는체크할 수 있어도, f가 R에 대해 성립하는지는 알 수 없다 !  K 가 R의 후보 키이면, 당연히 K R 그러나 K R이라고 K가 반드시 최소일 수는 없다! 15

예: 개체집합에 대한 제약조건  “시간제_직원”으로부터 얻은 릴레이션을 보자:  “시간제_직원”으로부터 얻은 릴레이션을 보자: 시간제_직원(ssn, 이름, 주차면, 등급, 시간당임금, 근무시간)  표기법: 이 릴레이션의 스키마를 애트리뷰트 대표문자의 리스트로 표현: SNLRWH 실제로는 애트리뷰트의 집합 {S,N,L,R,W,H}. 릴레이션의 이름으로 전체 애트리뷰트를 대신 표현하기도 할 것이다. (e.g., SNLRWH대신 시간제_직원)  시간제_직원의 일부 함수 종속: ssn 이 키이다: S SNLRWH 등급이 시간당임금을 결정한다: R W 16

예(계속.) 갱신 이상: SNLRWH의 첫 투플에서 W를 변경할 수 있는지? 삽입 이상: 등급에 따른 시간당 임금은 모른 채 직원을 삽입한다면? 삭제 이상: 등급이 5인 직원들을 모두 삭제해 버리면, 등급 5의 시간당임금 정보도 잃는다! 시간제_직원2 임금 17

ER 다이어그램 정제 사전 주차면을 직원에 연결. 사후  위의 그림을 변환하면: 직원(S,N,L,D,S) 부서(D,M,B)  한 부서의 직원들은 모두 같은 주차면을 사용한다면: D L  중복성을 교정하면: 직원2(S,N,D,S) 부서별주차면(D,L)  더 정제 가능: 직원2(S,N,D,S) 부서(D,M,B,L) 사전 부터 이름 부서이름 ssn 주차면 부서번호 예산 직원 근무 부서 사후 예산 부터 이름 부서이름 ssn 부서번호 주차면 직원 근무 부서 18

FD에 대한 이해  얼마의 FD가 주어지면, 그로부터 새로운 FD를 추론할 수 있다. ssn 부서번호, 부서번호 주차면  ssn 주차면  FD의 집합 F가 성립할때 항상 FD f도 성립한다면, f는 F에 의해 암시(imply)된다. - F+ = F의 폐쇄(closure). F에 의해 암시되는 모든 FD의 집합.  Armstrong의 공리. (X, Y, Z 는 애트리뷰트 집합): 반사(Reflexivity): If X Y, then X Y 첨가(Augmentation): If X Y, then XZ YZ for any Z 이행(Transitivity): If X Y and Y Z, then X Z  이들은 FD에 대한 정당(sound)하고 완전(complete)한 추론 법칙들이다. 19

FD에 대한 이해(계속.)  그 밖의 규칙: 결합(Union): If X Y and X Z, then X YZ  그 밖의 규칙: 결합(Union): If X Y and X Z, then X YZ 분해(Decomposition): If X YZ, then X Y and X Z  예: 계약(계약번호, 공급자번호, 과제번호, 부서번호, 부품번호, 수량, 가격)이고 (계약번호)가 키: C CSJDPQV 과제는 각 부품을 단일 계약으로 일괄 구매: JP C 부서는 한 공급자로부터 많아야 한 부품만 구매: SD P  JP C, C CSJDPQV  JP CSJDPQV  SD P  SDJ JP  SDJ JP, JP CSJDPQV  SDJ CSJDPQV 20

FD에 대한 이해 (계속.) 대개는 FD X Y가 FD 집합 F의 폐쇄에 속하는지만 알면 되므로: - F에 대한 X의 애트리뷰트 폐쇄(X+로 표기)를 구한다: * F+ 에 속한 X A에 해당하는 모든 애트리뷰트 A의 집합임. * 이것을 구하는 선형시간 알고리즘이 존재한다. Y 가 X+에 속하는지 검사하면 끝.  F = {A B, B C, C D E }가 A E를 암시하는가? 즉, F+에 A E가 속하는가? 곧, E가 A+에 속하는가? 21

정규형(Normal Form)  스키마 정제 문제로 돌아가면, 첫번째로 더 이상의 정제가 필요한지를 판단하여야 한다. 릴레이션이 특정 정규형 (BCNF, 3NF etc.), 에 속한다는 것은, 어느 종류의 문제가 없다/적다는 것이 된다. 따라서 릴레이션을 분해할 필요가 있는지 판단하기 용이하다.  중복성 탐지에 FD가 유용하다: 릴레이션 R에 애트리뷰트가 3개, ABC가 있다고 하자. * FD가 없다면: 여기에는 중복성이 없다. * A B가 성립한다면: A값이 같은 투플들이 여러개일 수는 있지만, 이들의 B값도 같게 된다! 22

Boyce-Codd 정규형 (BCNF)  FD집합 F를 가진 릴레이션 R이, F+에 속한 모든 X A에 대해서 다음이 성립하면, R은 BCNF에 속한다. A X (당연한 FD), 또는 X 에 R의 어떤 키가 포함된다.  즉, R에서 성립하는 비당연 FD는 키 제약조건밖에 없다고 하면, R은 BCNF에 속한다. FD로 찾을 수 있는 어떠한 중복성도 R에는 없다. 일반적으로 두 투플의 X값이 같다고 해서 한 투플의 A값으로부터 다른 투플의 A값을 추론할 수는 없다. 그런데 우측 릴레이션이 BCNF에 속한다면, 두 투플은 똑같아야 한다(X가 키이므로). 23

제 3 정규형 (3NF)  FD집합 F를 가진 릴레이션 R이, F+에 속한 모든 X A 에 대해서 다음이 성립하면, R은 3NF에 속한다. - A X (당연 FD), 또는 - X에 R의 어떤 키가 포함된다. 또는 - A가 R의 어떤 키의 일부이다.  위 세번째 조건에서 “키의 최소성”이 중요!  R 이 BCNF, 에 속하면, 3NF에도 속한다..  R이 3NF에 속하면 중복성이 잔존해 있을 가능성이 있다. BCNF까지 갈 수 없을 때(가령, 좋은 분해법이 없거나 성능상의 이유로) 3NF로 만족하게 된다. R을 3NF들로 무손실-죠인, 종속성유지 분해하는 것은 언제나 가능하다. 24

3NF의 의미는? 그러나: 3NF 릴레이션에서도 문제는 발생할 수 있다.  X A 가 3NF를 위배하는 경우는 다음 두 가지이다: X가 어떤 키 K의 진부분집합이다. * (X, A)가 중복 저장된다. X가 어떤 키에도 속하지 않는다. * K X A 라는 연쇄적인 FD가 생긴다. 따라서 어떤 K 값에 어떤 X값을 연관시킬 때에는 그 X값에 어떤 A값을 연관시켜 주어야 한다. 그러나: 3NF 릴레이션에서도 문제는 발생할 수 있다. - e.g., ”예약” SBDC, S C, C S는 3NF 에 속하지만, 뱃사람 S가 예약할 때마다 동일한 (S,C)가 중복저장된다  그렇기 때문에 3NF는 BCNF대신 사용하는 타협점인 것이다. 25

릴레이션 분해  릴레이션 R의 애트리뷰트가 A1 ... An이라고 하자 R의 분해(decomposition) 란 R을 다음과 같이 둘 이상의 릴레이션으로 대체하는 것이다. 새 릴레이션들은 R의 애트리뷰트 중 일부씩만 가지고 (R에 없던 애트리뷰트는 갖지 않으며), R의 애트리뷰트들은 모두 새 릴레이션 중 어느 하나에는 나타난다.  R을 분해한다는 것은 R의 인스턴스를 저장하는 대신, 분해로 생성된 릴레이션들의 인스턴스를 저장하겠다는 것이다.  E.g., SNLRWH를 SNLRH와 RW로 분해 가능. 26

분해 사례  꼭 필요할 때에만 분해하도록 한다. SNLRWH에는 FD S SNLRWH 와 R W가 있다. 두번째의 FD때문에 3NF가 못된다. W와 R의 값의 연관이 중복 표현된다. 가장 쉬운 해결책은, 이 정보용으로 RW릴레이션을 새로 만들고 원래 스키마에서는 W를 빼는 것이다. * 즉, SNLRWH를 SNLRH와 RW로 분해하였다.  원래 저장할 정보는 SNLRWH 투플 형태이다. 이 투플들을 SNLRH 와 RW에 대해 프로젝션한 것들만 저장할 때, 무슨 문제라도 발생할 가능성은 없는지? 27

분해에 따르는 문제  다음 세 가지의 문제가 발생할 가능성이 있다: 어떤 질의는 처리 비용이 더 높아진다. * e.g., Joe 는 얼마나 버는가? (급여 = W*H) 분해한 릴레이션 인스턴스들로부터 원래 릴레이션의 인스턴스를 재구성할 수 없는 경우도 생긴다! * SNLRWH 사례는 다행히 아니다. 어떤 종속성을 체크하려면 분해된 릴레이션의 인스턴스들을 죠인하여야 되는 경우도 있다.  Tradeoff: 이러한 문제와 중복성 간의 타협점을 찾아야 한다. 28

무손실-죠인 분해  FD집합 F를 만족하는 모든 인스턴스 r에 대해 다음이 성립하면, R을 X와 Y로 분해하는 것이 F에 대해 무손실-죠인(lossless-join)이라고 한다: (r) (r) = r  r (r) (r) 은 항상 참. 역은 참이 아닌 경우도 있다! 역도 참이면 무손실-죠인 분해이다.  이 정의를 3개 이상으로의 분해에 그대로 확장할 수있다.  중복성 제거를 위한 분해라면 반드시 무손실이어야 한다! (문제(2)방지.) 29

무손실-죠인 계속  R을 X와 Y로 분해하는 것은 무손실-죠인이다. X Y X, 또는 X Y Y  특히, U V가 R에 대해 성립할 때, R을 UV와 R-V로 분해하면 무손실-죠인 분해가 된다. 30

종속성유지 분해  CSJDPQV에서 C가 키이고 JP C이며 SD P라고 하자. BCNF 분해: CSJDQV와 SDP  종속성유지 분해란? R이 X, Y, Z로 분해하고 X, Y, Z 각각에 대한 FD들을 집행하면 원래의 R에 대한 모든 FD들이 만족되어야 한다.(문제(2)방지)  FD집합 F의 프로젝션: R이 X,…으로 분해되었을 때, F의 X에 대한 프로젝션(FX로 표기)이란 X에 속한 U, V에 대하여 F+ (F의 폐쇄)에 속하는 FD U V들의 집합이다. 3

종속성유지 분해(계속.)  R을 X와 Y로 분해할 때 (FX 합집합 FY ) + = F +가 되면 종속성 유지라고 한다. 즉, 폐쇄 F + 에 속하는 종속성 중 X로만 체크할 수 있는 것들과 Y로만 체크할 수 있는 것들을 모으면 F + 의 모든 종속성들이 암시(imply)된다 .  F가 아니라 F +인 점에 주의 ABC, A B, B C, C A 이고, AB와 BC로 분해. 이것이 종석성유지인가? C A 가 유지되는가?????  종속성유지라고 무손실-죠인인 것은 아니다: ABC, A B, AB와 BC로 분해하는 경우.  역도 마찬가지! (예는?) 4

BCNF로 분해  릴레이션 R이 있다고 하자. X Y때문에 BCNF가 안된다면, R을 R - Y 와 XY로 분해한다. e.g., CSJDPQV, 키는 C, JP C, SD P, J S SD P때문에, SDP와 CSJDQV로 분해. J S때문에, CSJDQV를 JS와 CJDQV로 분해.  일반적으로는 BCNF를 위배하는 종속성이 여러개 일 수 있다. 그 중에 어느 것을 먼저 보느냐에 따라 다른 릴레이션 집단을 얻게 된다. 5

BCNF 와 종속성유지  일반적으로, BCNF 분해는 종속성유지를 보장하지 못한다. e.g., CSZ, CS Z, Z C 첫 FD를 유지하면서 BCNF 분해는 불가능하다.  CSJDQV를 SDP, JS와 CJDQV 로 분해하는 것도 종속성 유지가 아니다. (FD들이 JP C, SD P, J S일때.) 그러나 무손실-죠인은 된다. 이 경우, JPC를 추가하면 종속성유지 분해로 만들 수 있다. * JPC 의 투플들은 FD 검사에만 이용! (중복!) 6

3NF로 분해  BCNF로 무손실-죠인 분해하는 알고리즘을 3NF 무손실-죠인 분해에도 당연히 적용할 수 있다.(대개는 더 빨리 끝난다)  종속성유지를 확보하는 한가지 아이디어: X Y가 유지되지 않으면, 릴레이션 XY를 추가한다. XY가 3NF가 아닐 수도 있는 문제! e.g., JP C를 유지하려고 CJP를 추가하였는데, J C도 있다면 ?  개선: 원래의 FD집합 F 대신, F의 최소 포괄(miniml cover)을 이용한다. 7

FD 집합의 최소 포괄  FD 집합 F에 대한 최소 포괄 G: F의 폐쇄 = G의 폐쇄. G에서는 어떤 FD의 오른쪽도 단일 애트리뷰트. G에서 FD 하나를 제거하든지 FD의 애트리뷰트를 제거하면, 폐쇄가 바뀐다.  즉 F와 동일한 폐쇄를 얻기 위하여, G의 모든 FD는 필요하면서도 “가급적 최소” 이다.  e.g., A B, ABCD E, EF GH, ACDF EG 이면 최소 포괄은 다음과 같다: A B, ACD E, EF G, EF H  최소포괄 무손실-죠인, 종속성유지 분해!!!(책 참조) 8

스키마 정제 요약  BCNF에 속하는 릴레이션에는 FD로 탐지할 수 있는 중복성이 하나도 없다. 따라서 가급적 모든 릴레이션이 BCNF에 속하도록 하는 것이 바람직하다.  BCNF가 아닌 릴레이션은, BCNF 릴레이션 집단으로 분해해 볼 수 있다. FD가 모두 유지되는지 보아야 한다. BCNF로 무손실-죠인, 종속성유지 분해가 불가능하면(또는 통상적인 질의에 부적절하면) 3NF까지로만 분해할 수도 있다. 분해할 때에나 그 후에 주어진 “성능 요건”을 따져 보아야 한다. 9