책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 데이터베이스 프로그래밍 > Oracle
· ISBN : 9788996384045
· 쪽수 : 744쪽
· 출판일 : 2014-01-02
책 소개
목차
01 엔터티 이야기
1.1. 집합(Set)과 엔터티(Entity) | 13
1.2. 엔터티에 대한 서설(序說) | 15
1.3. 엔터티 정의(Definition)가 왜 중요한가? | 16
1.4. 엔터티 분류법 | 17
1.5. 엔터티 정의 방법. 보이는 것인가? | 19
1.6. 엔터티 정의 방법. 스스로 존재하는가? 자립 엔터티와 종속 엔터티 | 20
1.7. 종속 엔터티의 종류 | 22
1.8. 모델(ERD)과 메타 시스템의 속성 설명 | 25
1.9. 엔터티 정의 방법. 원천 데이터인가? | 27
1.10. 데이터 본질에 따른 엔터티 분류법(실체/행위/가공/기준) | 30
1.11. 실체 엔터티란? | 31
1.12. 행위 엔터티란? | 34
1.13. 가공 엔터티란? | 35
1.14. 기준 엔터티란? | 37
1.15. 엔터티 정의 방법. 데이터 생성에 따른 분류법 | 39
1.16. 엔터티 정의 방법. 엔터티 유형에 따른 분류법 | 40
1.17. 교차 엔터티(Association Entity)란? | 46
1.18. 엔터티 설계 원칙 | 52
1.19. 엔터티명은 어떻게 정하는가? | 56
1.20. 다양한 엔터티에 대한 명명법(命名法) | 63
1.21. 엔터티 설명(Explanation)은 어떻게 기술하는가? | 68
1.22. 개념 모델에 포함하는 주요(Primary) 엔터티란? | 70
1.23. 엔터티 정의의 또 다른 이름. 업무 식별자(Business Identifier) | 72
1.24. 업무 식별자 도출 방법 | 75
1.25. 업무 식별자 표현 방법 | 77
1.26. 데이터 모델을 검증할 수 있는가? | 79
1.27. 엔터티 검증(Entity Review) | 81
1.28. 데이터 모델 설계 원칙 | 91
1.29. 무결성(Integrity)에 대해서 | 96
1.30. 성능에 대해서 | 101
02 정규화 이야기
2.1. 정규화에 대한 서설(序說) | 107
2.2. 정규화(Normalization)란? | 108
2.3. 함수 종속(Functional Dependency)이란? | 110
2.4. 결정자(Determinant) & 종속자(Dependent) | 111
2.5. 함수 종속과 폐포(Closure) | 113
2.6. 함수 종속과 정규화 | 115
2.7. 그냥 릴레이션과 비정규형 릴레이션 | 116
2.8. 등산과 정규화 | 118
2.9. 정규화를 하면 좋아지는 게 무엇인가? | 119
2.10. 아노말리(Anomaly)란? | 122
2.11. 정규형의 종류 | 126
2.12. 1정규화와 원자(ATOM) 값 | 127
2.13. 1정규화의 대상 | 133
2.14. 1정규형과 비정규형 | 138
2.15. 2정규형 | 141
2.16. 2정규형 위반인가? | 143
2.17. 3정규형 | 147
2.18. BC정규형 | 149
2.19. 4정규형 | 154
2.20. 5정규형 | 157
2.21. 정규화 요약 | 162
2.22. 3정규화까지만 수행하면 된다? | 166
2.23. 정규형과 성능 | 168
03 데이터 통합과 서브타입 이야기
3.1. 데이터 통합에 대한 서설(序說) | 173
3.2. 일반화(Generalization)와 상세화(Specialization) | 174
3.3. 데이터 통합과 엔터티 통합 | 175
3.4. 통합이 대세인가? 통합 시 주의할 점 | 177
3.5. 어떤 경우에 통합을 고려하는가? | 180
3.6. 데이터 통합이 어려운 또 다른 이유 | 194
3.7. 데이터 주제 영역(Subject Area)이란? | 195
3.8. 주제 영역 설계 방법 | 198
3.9. 데이터 오너십(Data Ownership)과 모델 오너십(Model Ownership) | 200
3.10. 데이터 통합의 시발점 | 203
3.11. 데이터 통합과 정규화 | 204
3.12. 통합과 합체 | 206
3.13. 주 식별자가 다른 엔터티의 통합 | 209
3.14. 서브타입에 대한 서설(序說) | 218
3.15. 서브타입(Subtype)과 부분집합(Subset) | 221
3.16. 서브타입은 어떻게 도출하는가? | 222
3.17. 왜 서브타입을 사용하는가? | 225
3.18. 한 엔터티에 서브타입이 여러 개 존재한다? | 228
3.19. 서브타입과 코드 | 232
3.20. ‘Is-A’ 서브타입과 ‘Part-Of’ 서브타입 | 236
3.21. 배타 서브타입(Exclusive Subtype) & 중복 서브타입(Inclusive Subtype) | 238
3.22. 배타 서브타입과 이력 데이터 | 241
3.23. 중복 서브타입에 대한 설계 | 246
3.24. 중복 서브타입의 주의점 | 250
3.25. 완전(Complete) 서브타입 & 불완전(Incomplete) 서브타입 | 256
3.26. 서브타입과 슈퍼타입의 관계 | 258
3.27. 서브타입의 오해 ? 슈퍼타입과 서브타입은 부모 자식 관계다 | 259
3.28. 슈퍼타입?서브타입 논리 모델의 물리 모델 변환 | 261
3.29. 서브타입 모델의 물리 모델 변환 - 서브타입별로 엔터티 분할 | 267
3.30. 서브타입 모델의 물리 모델 변환 - 슈퍼타입 엔터티로 통합 | 271
3.31. 서브타입 모델의 물리 모델 변환 - 슈퍼타입?서브타입 개별 생성 | 274
3.32. 서브타입 모델의 물리 모델 변환 - 슈퍼타입?서브타입 개별 생성(배타 관계) | 279
3.33. ERWin 툴의 서브타입 표기법 | 283
3.34. 중첩 서브타입(Nested Subtype) | 285
3.35. 서브타입 간의 관계 표현법 | 288
3.36. 잘못된 서브타입 | 293
3.37. 범주에 대해서 | 296
04 속성 이야기
4.1. 속성에 대한 서설(序說) | 299
4.2. 식별자(Key) 속성 & 비식별자(Non-Key) 속성 | 300
4.3. 식별자 종류 후보 식별자(Candidate Identifier) | 302
4.4. 식별자 종류 주 식별자(Primary Identifier) | 303
4.5. 주 식별자가 바뀌는 현상 | 305
4.6. 어떤 속성을 주 식별자로 선택해야 하는가? | 307
4.7. 주 식별자를 단순하게 설계해야 하는 이유 | 318
4.8. 주 식별자 선정 절차 | 322
4.9. 복잡한 주 식별자 | 325
4.10. 복합 주 식별자의 속성 순서 | 330
4.11. 교차 엔터티의 주 식별자 | 334
4.12. 사원 엔터티의 주 식별자와 사원의 정의에 대해서 | 339
4.13. 식별자 종류 인조 식별자(Artificial Identifier) | 343
4.14. 인조 식별자를 사용해야 좋을 때 | 346
4.15. 업무 식별자와 인조 식별자의 혼합 | 349
4.16. 식별자 종류 대리 식별자(Alternate Identifier) | 353
4.17. 식별자 종류 슈퍼 식별자(Super Identifier) | 355
4.18. 속성 종류 기초 속성(Basic Attribute) | 357
4.19. 속성 종류 관계 속성(Relationship Attribute) | 359
4.20. 속성 종류 추출 속성(Derived Attribute) | 360
4.21. 속성 종류 시스템 속성(System Attribute) | 364
4.22. 추출 속성의 종류 중복 속성(Redundant Attribute) | 366
4.23. 시점 데이터가 중복 속성이다? | 368
4.24. 중복 속성을 사용할 수 있는 경우 | 370
4.25. 단일 값(Single-Valued) 속성 & 다가(Multivalued) 속성 | 372
4.26. 단순(Simple) 속성 & 복합(Composite) 속성 | 375
4.27. 필수(Required) 속성 & 선택(Optional) 속성 | 378
4.28. 배타 속성(Exclusive Attribute) | 379
4.29. 코드(Code) 속성과 비코드(Non-Code) 속성 | 382
4.30. 일반 코드와 식별자 코드 | 383
4.31. 식별자 코드와 일반 코드의 관리 | 386
4.32. 식별자 코드와 일반 코드의 상호 변환 | 390
4.33. 통합 코드로 설계할지 개별 엔터티로 설계할지? | 392
4.34. 코드 속성의 명명법 | 393
4.35. 코드 인스턴스(집합) 설계 원칙 | 395
4.36. 코드를 사용하는 용도 | 399
4.37. 코드 엔터티와 참조 무결성 관계 | 401
4.38. 통합 코드 엔터티 & 개별 코드 엔터티 | 405
4.39. 일반적인 코드 모델 | 407
4.40. 전체 코드의 부분집합을 관리하는 모델 | 413
4.41. 코드 간 관계를 관리하는 코드 모델 | 419
4.42. 출력 순서를 관리하는 코드 모델 | 422
4.43. 코드 모델의 이력 관리 | 424
4.44. 속성명은 어떻게 정하는가? | 427
4.45. 속성 설명 | 430
4.46. 속성 표준화 | 432
4.47. 도메인(Domain) | 438
4.48. 도메인과 메타 시스템 | 441
4.49. 데이터 타입 선정 원칙과 절차 | 443
4.50. 널(Null)에 대한 서설(序說) | 447
4.51. 널(Null)과 DBMS & 인덱스 | 449
4.52. 널(Null) 사용법 & 특징 | 451
4.53. 속성 검증(Attribute Review) | 454
05 관계 이야기
5.1. 관계에 대한 서설(序說) | 461
5.2. 관계선(Relationship Line)이 의미하는 것 | 463
5.3. 관계를 설계할 때 고려할 사항 | 465
5.4. 참조 무결성(Referential Integrity) | 468
5.5. 기준 엔터티의 참조 무결성 | 473
5.6. 종속(Dependent) 관계와 참조(Referential) 관계 | 476
5.7. 식별(Identifying) 관계와 비식별(Non-Identifying) 관계 | 481
5.8. 종속?참조 관계 그리고 식별?비식별 관계 | 483
5.9. 식별 관계와 비식별 관계를 채택하는 예외 경우 | 487
5.10. 참조 관계의 주 식별자를 식별 관계로 상속한 경우 | 492
5.11. 관계 속성 & 관계 엔터티 | 495
5.12. 관계 엔터티의 특징 | 497
5.13. 관계 엔터티 선택 기준 | 505
5.14. 관계선의 구성 요소 | 508
5.15. 관계 구성 요소 - 카디널러티(Cardinality) | 509
5.16. 카디널러티 분석 방법 | 513
5.17. 관계 구성 요소 - 옵셔널러티(Optionality) | 517
5.18. 상위 엔터티의 옵셔널러티 | 518
5.19. 카디널러티 & 옵셔널러티 표기법 | 522
5.20. 관계 구성 요소 ? 관계 디그리(Relationship Degree) | 528
5.21. 관계 디그리와 주 식별자 | 531
5.22. 관계 디그리의 댜앙한 설계 방법 | 534
5.23. 관계명(Relationship Name) | 536
5.24. 관계명 붙이는 방법 | 538
5.25. 관계명이 필요할 때와 필요 없을 때 | 542
5.26. 일대일(1:1) 관계 | 548
5.27. 일대일 관계와 이력 데이터 | 551
5.28. 배타 관계(Exclusive Relationship) | 553
5.29. 주 식별자가 다른 엔터티의 배타 관계 | 557
5.30. 순환 관계(Recursive Relationship) | 562
5.31. 순환 관계 카디널러티 | 566
5.32. 순환 관계에서의 데이터 발생 규칙 | 570
5.33. 분류 계층 모델 | 572
5.34. 추출 관계(Derived Relationship) | 576
5.35. 양방향 관계 | 581
5.36. 잘못 설계한 관계선 | 584
5.37. 잘못 설계한 관계선의 다양한 예제 | 589
5.38. 관계 검증(Relationship Review) | 599
06 이력 데이터 이야기
6.1. 이력 데이터(Altered Data)에 대한 서설(序說) | 603
6.2. 이력 데이터와 내역 데이터 | 605
6.3. 이력 엔터티 설계 시점 | 611
6.4. 이력 데이터를 설계하는 방법 | 613
6.5. 이력 데이터를 설계하는 첫 번째 방법 | 616
6.6. 이력 데이터를 설계하는 두 번째 방법 | 624
6.7. 이력 데이터를 설계하는 세 번째 방법 | 631
6.8. 이력 데이터를 설계하는 네 번째 방법 | 635
6.9. 속성 단위의 이력 모델과 추출 속성 | 639
6.10. 속성 그룹 단위로 이력 데이터를 설계하는 예제 | 644
6.11. 이력 데이터를 설계하는 다섯 번째 방법 | 650
6.12. 이력 데이터를 종 테이블로 설계하는 다양한 방법 | 653
6.13. 함께 변경된 속성을 알아야 할 때 | 656
6.14. 선분이력 | 658
6.15. 선분이력의 종료일자 | 661
6.16. 기간을 의미하는 종료 일자 | 666
6.17. 이력 엔터티의 주 식별자 | 668
6.18. 이력 엔터티 설계 절차 | 674
6.19. 서브타입의 이력 모델 | 676
6.20. 정정 데이터 | 681
07 비정규화 이야기
7.1. 비정규화(Denormalization)에 대한 서설(序說) | 685
7.2. 비정규화 원칙 | 688
7.3. 비정규형의 단점 | 689
7.4. 비정규화 과정 | 694
7.5. 비정규화 방법 - 역정규화(Reverse-Normalization) | 698
7.6. 비정규화 방법 - 엔터티 합체 | 703
7.7. 비정규화 방법 - 엔터티 분해 | 706
7.8. 비정규화 방법 - 요약(Summary) 엔터티 | 711
7.9. 비정규화 방법 - 추출 속성 | 714
7.10. 이전 값을 관리하는 모델을 설계하는 방법 | 722
7.11. 비정규화 방법 - 추출 엔터티 | 723
7.12. 비정규화 방법 - 반복 속성 | 725
7.13. 비정규화 방법 - 중복 데이터 | 729