데이터베이스 설계와 구축 - 성능까지 고려한 데이터 모델링 Part 2 물리설계 Chapter 8. 성능 데이터 모델링 1. 정규화를 통한 성능 향상 - 두 개의 엔티티타입이 통합되어 반정규화된 경우 * 대량으로 존재하는 데이터에서 조인 조건이 되는 대상을 찾기 인라인 뷰를 사용함으로써 성능이 저하되는 사례 - 두 개의 속성을 나열하여 반정규화한 경우 * 기본적으로 정규화를 사용하여 모델링을 전개하고 업무적으로 발생시키는 트랜잭션 성격, 분산 환경등에 대한 조건에 따라 반정규화를 적용 2. 반정규화를 통한 성능 향상 - 정규화가 잘 정의된 데이터모델에서 성능이 저하된 경우 * 데이터베이스 서버가 여러 대인 경우, 서버가 분리되어 분산 데이터베이스 시스템이 구성되어 있을 경우 반정규화를 통해 성능을 향상 ..
데이터베이스 설계와 구축 - 성능까지 고려한 데이터 모델링 Part 2 물리설계 Chapter 7. 데이터베이스 구축 준비 1. 관계형 테이블로 전환 - 엔티티타입은 테이블로 전환 (1) 독립 엔티티타입은 독립 테이블로 전환 (2) 완전 종속 엔티티타입은 완전 종속 테이블로 전환 (3) 부분 종속 엔티티타입은 부분 종속 테이블로 전환 - 주식별자는 PK로 변환 (1) 데이터 모델의 주식별자는 PK로 전환된다 (2) 무결성 제약(Referential Integrity)을 유지하는 역할 (3) PK는 테이블에 있는 각각의 로우를 유일하게 식별 (4) PK는 Null 값을 갖지 않는다 (5) 가능하면 모든 테이블에서 PK를 정의 (6) PK는 변경되지 않음 - 속성은 컬럼으로 변환 - 관계에 의한 외부 식별자..
데이터베이스 설계와 구축 - 성능까지 고려한 데이터 모델링 Part 1 논리설계 Chapter 6. 모델 검토 * 데이터 모델 검토 - 모델링을 수행한 모델러 - 시스템 통합이나 품질 보증팀 - 외부 감리 인원 초청 : 제 3자의 입장에서 객관적인 평가가 가능 * ERD 검토 - 업무적 측면 : 시스템의 업무적 요건을 충분히 반영하는가, 관계가 해당 업무 프로세스에 잘 부합하는가 검토 - 모델 규약 측면 1. 엔티티타입 검토 * 선정된 PK가 업무적으로 발생하는 자료의 유일성을 보장하는가? - 자료의 유일성을 보장할 수 없는 항목에 의한 PK 선정 - 일반적으로 필요 이상의 항목을 PK로 선정하는 경우 * 선정된 PK는 효율적인 모습인가? - 자료의 유일성을 확보할 수 있는 적절한 속성 조합이 파악되지 ..
데이터베이스 설계와 구축 - 성능까지 고려한 데이터 모델링 Part 1 논리설계 Chapter 5. 상관 모델링 * 적절한 업무 프로세스에 의해 CRUD가 발생 1. CRUD MATRIX 상관 모델링 - 2차원 평면에 단위 프로세스가 엔티티타입에 어떤 일을 하는지 기술한다. * 점검사항 - 모든 엔티티타입에 CRUD가 한번 이상 표기 되었는가 - 모든 엔티티타입에 “C”가 한번 이상 존재하는가 - 모든 엔티티타입에 “R”이 한번 이상 존재하는가 - 모든 단위프로세스는 하나 이상의 엔티티타입에 표기 되었는가 - 두 개 이상의 단위 프로세스가 하나의 엔티티타입을 생성하는가 2. 엔티티타입 생명주기 분석 * 엔티티타입의 생성 -> 소멸까지 프로세스가 관여하는 모습을 표기하는 것
데이터베이스 설계와 구축 - 성능까지 고려한 데이터 모델링 Part 1 논리설계 Chapter 4. 프로세스 모델링 * 모델링 요소 : 데이터관점 / 프로세스 관점 / 데이터와 프로세스의 상관 관점 * 프로세스 모델링 : 업무에 필요한 프로세스를 시스템 구축 방법론을 사용해 분석하고 설계하여 정보화 시스템을 구축하는 것 1. 업무 기능 분해 * 목적 - 정보화 시스템 구축하는 최저 단위의 단위 프로세스 도출 - 전체 업무 체계를 프로세스를 중심으로 도식화하여 업무 기능 파악 * 프로세스 - 각 업무 기능 중 세분화된 업무 구분 또는 업무 실행 단위가 되면서 정보의 입출력이 되는 단위 * 기술방법 - 엔티티타입이나 속성형 명사에 동사를 붙여 구성 (계약을 종료한다/직원을 채용한다/일시를 공고한다 등) * ..
데이터베이스 설계와 구축 - 성능까지 고려한 데이터 모델링 Part 1 논리설계 Chapter 2. 실전 데이터 모델링 이슈 1. M:N 관계 해소방법 (1) 관계엔티티타입 분리 * 관계가 있는 엔티티타입 이름을 붙여 관계 엔티티타입을 생성한다. (2) 주식별자 통합 * 자식 엔티티타입이 부모 엔티티타입과 생사를 같이 하는지 검증한 후에 시행 * 엔티티타입의 속성이 적고 데이터 수정이 많지 않으며 읽는 작업이 많이 발생하는 엔티티타입의 경우 사용 (3) 부모 엔티티타입에 속성 추가 * 엔티티타입간 관계를 검증하여 관계 엔티티타입을 도출하도록 해야함 * 업무 규칙의 최대값이 지정, 변경될 가능성이 적어야 가능 2. 1:1 관계 해소방법 (1) 별개의 엔티티타입으로 따로 표현 방법 * 개별 엔티티타입을 그대..