본문 바로가기

Programming Theory/Data Modeling

Data Modeling pattern 0) 관계 개괄관계 설명 M:M 관계 2개의 entity 관계에서 각각의 entity의 record가 상대 entity의 여러 record 와 연결되는 관계 recursive 관계 1:M 관계가 반복적으로 나타나는 관계가 Recursive 관계 Super-Sub 관계 개별 entity로부터 공통 속성, 관계를 도출할 수 있는 관계 BOM 관계 2개의 entity의 속성이 같은 M:M 관계 arc 관계 하나의 자식 entity 에 대해 2개 이상의 부모 entity가 서로 배타적으로 존재하는 관계 1) M:M 관계a. 발견2개의 entity 관계에서 각각의 entity의 record가 상대 entity의 여러 record 와 연결되는 관계ex) 주문와 제품 관계, 카테고리와 상품 관계 b. 논리 모델링- .. 더보기
논리 모델링 1) 주제영역 연관성을 가진 엔터티 그룹화 → 가독성 향상 여러 개발자간 업무 분할 용이 2) 엔터티 - 5개 유형 (Thomas Bruce, 1992) 순번 항목 예시비고 1 관계업무자 법인, 고객, 회원업무의 시발점관계를 맺는 table이 多 → PK 구조를 단순화해야 함(본질식별자 < 인조식별자) 2 자원/아이템 상품, 부동산, 주식 3 계약 구매계약본 업무로, 빈번한 insert가 발생.pk 채번 효율화 4 거래/이벤트 주문, 신청 5 위치/장소 지역, 건물 - 실제 엔터티 작성 시 '속성' 으로 설정할 것인지, '엔터티'로 작성할 것인지 고민 필요 ex) 교사, 남자 교사를 구분해야 할 때, 교사 엔터티 안에 교사성별 속성으로 남자 교사를 표시할지, 남자 교사 엔터티를 별도로 작성할지 업무에 따.. 더보기
Data Modeling 절차 요구사항분석 논리모델링 상세모델링 물리모델링 검증 및 확인 서비스분석→ 업무요건분석→ 개념적 실체 분석 주제영역 정의→ 엔터티 정의→ 관계 정의→ 식별자 정의→ 속성 정의 정규화→ 상세관계정의→ 코드/도메인/단어사전 정의 반정규화→ 기본 인덱스 설계→ 테이블 분할 사용자 검증→ 모델 확정 ** 코드/도메인/단어사전테이블 간 표준화를 위함항목 예시 코드 code_value, code_name, code_desc 를 별도 테이블에서 관리하고, 업무 테이블에서는 code_value 만을 가지고 있는 것. 1) 업무 테이블에서 code_name, code_desc을 가지고 있을 필요가 없어서 record 크기가 줄어든다. 2) code_value, code_name, code_desc 을 각각의 업무테이블이 아.. 더보기
정규화 정규화 (Normalization)- data integrity 보장을 위해 중복을 최소화 - 중복을 최소화 : 1개의 table 을 2개 table로 분리 1) 1NF (1 Normal Form)- repeating group 을 다른 테이블로 분리 2) 2NF (2 Normal Form)- 전체 주식별자(PK)에 종속되지 않은 속성을 다른 테이블로 분리 3) 3NF (3 Normal Form)- 일반 속성에 종속되지 않은 속성을 다른 테이블로 분리 예시)1) 정규화 이전- 취득한 자격증이 4개 이상이 될 경우, table 컬럼 개수를 늘려야 함 (table 구조 변경)- null 인 컬럼이 多 가능 (자격증을 1개만 취득한 경우 자격증명2, 자격증취득일자2, 자격증명3, 자격증취득일자3 은 null).. 더보기