실전 데이터모델링 & 데이터베이스 설계와 구축 (2.데이터 분석 및 모델링) 李春植
2. 데이터 분석 및 모델링 ☞ 이전 시간 내용 정리 - 엔티티타입/속성/관계 - 수퍼타입/서브타입, 서브젝트 에어리어 - 엔티티타입/속성/관계 - 수퍼타입/서브타입, 서브젝트 에어리어 - 1,2,3,4 차 정규화 이전에는 데이터모델링에 대한 Notation 및 주요정의와 정규화에 대한 설명을 하였다면 이번 시간에는 데이터모델링을 실제로 전개하는 방법을 진행하도록 한다.
▶데이터모델링의 흐름 데이터모델검증 통합화 세부사항정의 식별자정의 관계정의 엔티티타입정의 엔티티타입 검증 관계 검증 속성 검증 엔티티타입 통합 안정성/확장성분석 세부사항정의 속성상세 정의 정규화 도메인정의 속성규칙정의 식별자정의 주식별자 정의 보조식별자정의 식별자 업무규칙정의 관계정의 엔티티타입간 관계정의 엔티티타입정의 엔티티타입 정의
▶데이터모델링 ☞ 건축자재를 이용하여 실제 공사현장에서 건축하는 것이다. ☞ 데이터모델링은 오직 한가지 절대적인 방법만이 존재하지 않는다. 그러나 효율적인방법은 존재한다. ☞ 실제 업무담당자와 공감대(CONSENSUS)를 이루어 작업하는 것이 중요하다. ☞ 원칙적으로 분석단계 때 데이터베이스를 정의하고픈 유혹에서 벗어나야 한다.
▶훌륭한 모델러 ☞ 훌륭한 축구 선수는 기본기에 충실하지만 경기 도중 발생하는 여러 가지 상황 에서도 효과적으로 대처해 나간다. 마찬가지로 모델러도 각종 프로젝트와 업무 상황에 맞는 모델링 작업을 진행할 수 있어야 한다.
▶잘 정의된 데이터모델의 특징 1. 해당 업무의 현재 모습뿐만 아니라 계획, 정책, 전략을 포함한다. 2. 명명법, 도메인 등 정의된 규칙에 따른 일관성 있는 모델이다. 3. 실무 업무 전문가가 참여하여 실무에 대한 내용이 충분히 포함되어 있는 내용이다. 4. 물리 설계로의 전환이 효율적으로 이루어질 수 있는 모델이다. 5. 각각의 엔티티타입, 속성, 관계 등에 대한 기본 업무 배경의 객관적 증거가 존재한다. 6. 업무 변형이나 확장이 발생할 때 수용 가능한 모델이다.
▶데이터모델링의 개념 엔티티타입 검증 관계 검증 속성 검증 데이터모델검증 엔티티타입 통합 안정성/확장성분석 통합화 속성상세 정의 정규화 도메인정의 속성규칙정의 세부사항정의 주식별자 정의 보조식별자정의 식별자 업무규칙정의 식별자정의 관계정의 엔티티타입간 관계정의 엔티티타입 정의 엔티티타입정의
▶엔티티타입 작업 절차 A. 엔티티타입 도출 방법에 의해 엔티티타입을 선정한다. B. 선정된 엔티티타입에 대한 엔티티정의서를 작성한다. C. 고객과 검증 회의를 한다. D. ERD에 엔티티타입을 표현한다.
엔티티타입을 찾아내는 작업은 검사가 범죄자의 증거자료를 찾듯이 가능한 모든 방법이 동원된다. ▶엔티티타입의 선정 인터뷰 업무기술서 DFD 장표(보고서) 구시스템 엔티티 타입 엔티티 타입 엔티티 타입 구시스템 엔티티 타입 엔티티 타입 엔티티 타입 엔티티 타입 업무개선 현장조사 엔티티타입을 찾아내는 작업은 검사가 범죄자의 증거자료를 찾듯이 가능한 모든 방법이 동원된다.
▶엔티티타입 선정 방법 A. 엔티티타입 도출 방법에 의해 엔티티타입을 선정한다. 1. 업무기술서, 장표, 인터뷰 정리문서 등에서 명사를 구분한다. 2. 개념이 불분명한 것, 광범위한 것은 제거한다. 3. 엔티티타입의 특성이거나 속성의 값은 제거한다. 4. 포괄적인 업무 프로세스에 해당되는 명사는 제거한다. 5. 중복되는 명사는 제거한다. 6. 누락된 엔티티타입이 존재하는지 유추해 본다.
▶적절한 엔티티타입 확인 방법 1. 업무에서 관리할 필요가 있는 정보인가? 2. 자신만의 속성을 가지고 있는가? 3. 스스로 또는 다른 엔티티타입에 의해 반복적으로 발생되는 어커런스를 가지고 있는가?
▶업무기술서를 통한 엔티티타입 도출 인터넷경매를 하는 IAuctionCo 이라는 회사는 경매할 물품에 대한 내용을 온라인으로 접수 받고 각 물품이 팔릴 수 있는 날짜를 정하여(이 날짜를 경매공고일이라고 함) 인터넷에 경매공고한다. 경매공고일에는 역시 온라인을 통해 입찰인이 입찰된 물품에 대해 매수신청을 하고 매수 신청한 입찰인중 최고가를 신청한 매수신청인에게 물품이 낙찰된다. 물품 낙찰일로부터 1주일 이내에 낙찰대금을 은행계좌나 카드 또는 직접 IAuctionCo에 납부하지 않으면 낙찰은 자동으로 취소되고 차 순위 금액을 신청한 매수신청인에게 물품이 낙찰 된다. 낙찰인은 1주일 이내에 대금을 납부하면 경매가 성사되었다고 하고 매수신청인에게 낙찰대금을 입금하여 경매절차가 완료된다. 경매가 성사되는 경우 물품가격의 2%를 IAuctionCo에 수수료로 납부해야 한다. 각 경매일에 경매가 진행된 결과는 자세하게 알 수 있어야 한다. 업무 기술서에 의한 엔티티타입 후보선정 접수 경매물품 물품 경매공고 진행 매수신청 입찰 낙찰인 낙찰
▶엔티티타입 도출 ① 시나리오에서 명사를 구분한다. ① 시나리오에서 명사를 구분한다. 인터넷경매, IAuctionCo, 회사, 경매, 물품, 내용, 온라인, 입찰, 접수, 날짜, 경매공고일, 인터넷, 경매공고, 입찰인, 매수신청, 최고가, 신청, 매수신청인, 낙찰, 낙찰일, 1주일, 낙찰대금, 은행계좌, 카드, 직접납부, 자동, 취소, 차순위금액, 낙찰인, 대금납부, 경매성사, 입금, 물품가격, 2%, 수수료, 경매일, 진행, 결과 37개의 명사가 모두 엔티티타입이 될 수 있는지 이후 단계를 진행한다.
▶엔티티타입 도출 ② 개념이 불분명한 것, 광범위한 것은 제거한다. ② 개념이 불분명한 것, 광범위한 것은 제거한다. 인터넷경매, IAuctionCo, 회사, 경매, 물품, 내용, 온라인, 입찰, 접수, 날짜, 경매공고일, 인터넷, 경매공고, 입찰인, 매수신청, 최고가, 신청, 매수신청인, 낙찰, 낙찰일, 1주일, 낙찰대금, 은행계좌, 카드,직접납부, 자동, 취소, 차순위금액, 낙찰인, 대금납부, 경매성사, 입금, 물품가격, 2%, 수수료, 경매일, 진행, 결과
▶엔티티타입 도출 ③ 엔티티타입의 특성이거나 속성의 값은 제거한다. ③ 엔티티타입의 특성이거나 속성의 값은 제거한다. 물품, 온라인, 입찰, 접수, 날짜, 경매공고일, 경매공고, 입찰인, 매수신청, 최고가, 신청, 매수신청인, 낙찰, 낙찰일, 1주일, 낙찰대금, 은행계좌, 카드, 직접납부, 자동, 취소, 차순위금액, 낙찰인, 대금납부, 경매성사, 입금, 물품가격, 2%, 수수료, 경매일, 진행, 결과
▶엔티티타입 도출 ④ 포괄적인 업무 프로세스에 해당되는 명사는 제거한다. ④ 포괄적인 업무 프로세스에 해당되는 명사는 제거한다. 물품, 온라인, 입찰, 접수, 경매공고, 입찰인, 매수신청, 신청, 매수신청인, 낙찰, 자동, 취소,낙찰인, 대금납부, 경매성사, 입금, 진행, 결과
▶엔티티타입 도출 ⑤ 중복되는 명사는 제거한다. ⑤ 중복되는 명사는 제거한다. 물품, 입찰, 접수, 경매공고, 입찰인, 매수신청, 신청, 매수신청인, 낙찰, 낙찰인, 진행 - 매수신청인 입찰인과 동일한 의미를 가지므로 업무에서 자주 사용하는 입찰인을 남기고 매수신청인은 제거한다. - 매수신청과 신청은 같은 의미를 가지고 있으므로 매수신청을 남기고 신청을 제거한다.
▶엔티티타입 도출 ⑥ 누락된 엔티티타입정보를 유추한다. ⑥ 누락된 엔티티타입정보를 유추한다. 물품, 입찰, 접수, 경매공고, 입찰인, 매수신청, 낙찰, 낙찰인, 진행, 경매물품 특정날짜에 어느 물품을 경매에 내놓을 것인지 분명히 업무에 핵심적인 사안이지만 위 시나리오에는 명사화 되어 있지 않다. 이러한 경우는 업무를 예상하여 경매물품이라는 엔티티타입을 유추할 수 있다.
▶엔티티타입 도출 최종 엔티티타입 후보. 이 시나리오에서 분석된 엔티티타입의 최종 후보는 물품, 입찰, 접수, 경매공고, 입찰인, 매수신청, 낙찰, 낙찰인, 진행, 경매물품 이다.
▶엔티티타입 정의서 작성 B. 선정된 엔티티타입에 대한 엔티티정의서를 작성한다.
▶엔티티타입 확정 C. 고객과 검증 회의를 한다.
▶엔티티타입 확정 D. ERD에 엔티티타입을 표현한다. 접수 경매물품 물품 경매공고 진행 매수신청 입찰 낙찰인 낙찰
▶관계정의 엔티티타입 검증 관계 검증 속성 검증 데이터모델검증 통합화 엔티티타입 통합 안정성/확장성분석 세부사항정의 속성상세 정의 정규화 도메인정의 속성규칙정의 식별자정의 주식별자 정의 보조식별자정의 식별자 업무규칙정의 관계정의 엔티티타입간 관계정의 엔티티타입정의 엔티티타입 정의
▶관계의 특징 ☞ 관계는 엔티티타입과 다르게 업무 기술서나 장표에 정확하게 기술 되지 않는다. ☞ 관계는 업무의 흐름의 내용(의미)를 파악하거나 장표의 구성을 보고 모델러가 판단해야 한다. ☞ 관계는 업무에 있어 논리적인 흐름이 표현되는 데이터모델의 표기이다.
▶관계정의 방법 ① 업무기술서, 장표, 인터뷰 정리문서 등에서 동사를 구분한다. ② 도출된 엔티티타입과 관계를 이용하여 관계정의서를 작성하도록 한다. ③ 고객에게 질문하여 관계에 대해 더 세분화하고 정확하게 도출하는 작업을 한다. ④ 데이터모델링 툴(TOOL)이나 칠판, 포스트잇을 이용하여 직접모델을 그려본다. ⑤ 고객과 질문하고 협의하여 모델을 검토하는 시간을 갖는다.
① 업무기술서, 장표, 인터뷰 정리문서 등에서 동사를 구분한다. ▶관계정의-동사구분 ① 업무기술서, 장표, 인터뷰 정리문서 등에서 동사를 구분한다. 엔티티타입이 명사형에 의해 구분되듯이 관계는 동사에 의해 구분된다. 강사는 여러 개의 강좌를 강의할 수 있다. 기술대학원에서는 여러 명의 강사를 기록하고 관리한다. 기술 대학원에서 과목 당 개설한 강좌는 한 명의 강사가 강의를 진행한다. ☞ 관계의 대상은 ‘강의한다. 기록관리한다. 개설한다. ‘ 이다.
▶관계정의-관계정의서 ② 도출된 엔티티타입과 관계를 이용하여 관계정의서를 작성하도록 한다.
관계(RELATIONSHIP) 선정을 위한 질문방법 ▶관계정의-고객질문 ③ 고객에게 질문 하여 관계에 대해 더 세분화하고 정확하게 도출하는 작업을 한다. 관계(RELATIONSHIP) 선정을 위한 질문방법 하나/ 각각 기준 엔티티타입 하나/ 여러 관련 엔티티타입 선택 필수 참여 방법 각각의 사원은 한 부서에 만 속할 수 있습니까? 각 부서에는 여러 사원이 항상 소속되어 있습니까?
④ 데이터모델링 툴(TOOL)이나 칠판, 포스트잇을 이용하여 직접모델을 그려본다. ▶관계정의-포스트잇 활용 ④ 데이터모델링 툴(TOOL)이나 칠판, 포스트잇을 이용하여 직접모델을 그려본다. POST -IT
▶관계정의-포스트잇 활용 ⑤ 고객과 질문하고 협의하여 모델을 검토하는 시간을 갖는다.
▶관계정의서 ☞ 다음 규칙을 이용하여 ERD를 작성하라. - 하나의 DATABASE는 하나이상의 TABLESPACE를 반드시 가져야 한다. - 하나의 TABLESPACE는 단 하나씩의 DATABASE에 반드시 포함되어야 한다. - 하나의 TABLESPACE는 하나이상의 FILE을 반드시 가져야 한다. - 하나의 FILE은 단 하나의 TABLESPACE에 포함될 수도 있다. - 하나의 TABLESPACE는 하나이상의 SEGMENT를 가질 수도 있다. - 하나의 SEGMENT는 단하나씩의 TABLESPACE에 반드시 포함되어야 한다. - 하나의 SEGMENT는 하나이상의 EXTENT를 반드시 포함해야 한다. - 하나의 EXTENT는 단하나씩의 SEGMENT를 반드시 가져야 한다. - 하나의 EXTENT는 하나이상의 BLOCK을 반드시 포함해야 한다. - 하나의 BLOCK은 단하나씩의 EXTENT에 반드시 속해야 한다. - 하나의 FILE은 단하나씩의 DISK에 반드시 위치해야 한다. 하나의 DISK는 하나이상의 FILE의 소유자가 될 수도 있다.
▶식별자 정의 엔티티타입 검증 관계 검증 속성 검증 데이터모델검증 엔티티타입 통합 안정성/확장성분석 통합화 속성상세 정의 정규화 도메인정의 속성규칙정의 세부사항정의 주식별자 정의 부식별자 정의 외부식별자정의 식별자정의 엔티티타입간 관계정의 관계정의 엔티티타입 정의 엔티티타입정의
핵심 엔티티타입의 주식별자가 데이터모델 전체 식별자 구조 에 영향을 미침 ▶주식별자 영향력 핵심 엔티티타입의 주식별자 영향력 핵심 엔티티타입의 주식별자가 데이터모델 전체 식별자 구조 에 영향을 미침
▶주식별자 특징 ① 엔티티타입내에 모든 엔티티들을 유일하게 구별할 수 있어야 한다. ② 일단 특정 엔티티타입에 주식별자가 지정되면 그 값은 변하지 않아야 한다. ③ 주식별자가 지정되면 데이터 값이 반드시 존재해야 한다.
▶주식별자 선정기준 ① 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다. ② 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다. ③ 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.
① 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다. ▶주식별자 – 업무에서 사용 ① 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다. 직원 사원번호 주민등록번호 우편번호 주소 전화번호 메신저ID 전자메일ID 직원 엔티티타입은 사원번호를 많이 사용하므로 적합함 직원 엔티티타입은 주민등록번호를 많이 사용하지 않으므로 부적합함
②명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다. ▶주식별자 선정 – 명칭/내역 ②명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다. 부서 업무코드 부서코드 코드 부서 코드명 부서명 부서 부서일련번호 부서명
③ 속성 값이 자주변하는 속성은 주식별자로서 적당하지 않다. ▶주식별자 선정 – 자주변하는 속성 ③ 속성 값이 자주변하는 속성은 주식별자로서 적당하지 않다. 학생 전자메일ID 학번 이름 주소 생년월일 ‘전자메일ID’ 속성의 값은 자주 변할 수 있으므로 부적합함 ‘학번’ 속성의 값은 거의 변하지 않으므로 적합함
④ 주식별자를 선정하기 위한 속성의 수를 적게 한다. ▶주식별자 선정 - 복합식별자 ④ 주식별자를 선정하기 위한 속성의 수를 적게 한다. 접수 접수번호 신청자명 장소 계약금 접수일자 관할부서 입력자사번 접수방법코드 신청인구분코드 신청자주민번호 신청회수 내용 접수상태코드
▶주식별자 선정 - 복합식별자 복잡한 주식별자 복잡한 부모엔티티타입의 주식별자에 의해 자식 엔티티타입의 주식별자도 복잡해짐
▶주식별자 선정 - 복합식별자 ⑤ 주식별자 속성은 반드시 들어와야 한다 속성값이 반드시 존재하는 주식별자 ⑤ 주식별자 속성은 반드시 들어와야 한다 속성값이 반드시 존재하는 주식별자 ‘이춘식’학생은 휴대폰이 없어 속성값이 존재하는 않는다. 학생 휴대폰번호 학번 이름 주소 생년월일 010-122-1222 황경빈 이춘식 010-111-1111 홍길동
☞ 외부식별자는 다른 엔티티타입과의 관계를 통해 자식쪽 엔티티타입에 생성되는 속성이다. ▶외부식별자 ☞ 외부식별자는 다른 엔티티타입과의 관계를 통해 자식쪽 엔티티타입에 생성되는 속성이다. ☞ 외부식별자는 관계종류(식별자관계, 비식별자관계)에 따라 자식 엔티티타입에서 주식별자역할을 할 수도 있고 일반속성 역할을 할 수도 있다.
▶주식별자관계/비식별자관계 외부식별자의 주식별자 역할 외부식별자의 일반속성 역할 발령 목록 사원 접수 사원번호 (FK) 목록번호 접수번호 발령일자 접수번호 (FK) 사원 임시직사원 사원번호 사원번호 (FK)
▶비식별자 관계 생성이유 ① 부모 없는 자식이 생성될 수 있는 경우 ② 부모가 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우 ③ 여러 개의 엔티티타입이 하나의 엔티티타입으로 통합되어 표현될 경우(각각은 주식별자관계로 하여도 무방) ④ 자식 엔티티타입에 별도의 주식별자를 가지고 있는 것이 더 유리하다고 판단되는 경우 ⑤ 자식과 관련이 있는 엔티티타입으로의 주식별자 상속을 차단하기 위해서
▶비식별자 관계 ① 부모 없는 자식이 생성될 수 있는 경우 부서 사원 부서코드 사원번호 부서코드 (FK) ① 부모 없는 자식이 생성될 수 있는 경우 부서에 배치되지 않는 사원이 있을 수 있을 때… 사원 사원번호 부서코드 (FK) 부서 부서코드
② 부모가 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우 ▶비식별자 관계 ② 부모가 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우 반드시 송달번호가 존재해야 정통부 연계가 되지만 송달이 먼저 소멸되는 경우가 발생하여 비식별자 관계로 유지 정통부연계 연계번호 송달번호 (FK) 송달 송달번호
③ 여러 개의 엔티티타입이 하나의 엔티티타입으로 통합되어 표현될 경우(각각은 주식별자관계로 하여도 무방) ▶비식별자 관계 ③ 여러 개의 엔티티타입이 하나의 엔티티타입으로 통합되어 표현될 경우(각각은 주식별자관계로 하여도 무방) 접수 접수번호 전화번호 (FK) 주민등록번호 (FK) 전자메일ID (FK) 인터넷회원 내방고객 전화회원 전자메일ID 주민등록번호 전화번호
④ 자식 엔티티타입에 별도의 주식별자를 가지고 있는 것이 더 유리하다고 판단되는 경우 ▶비식별자 관계 ④ 자식 엔티티타입에 별도의 주식별자를 가지고 있는 것이 더 유리하다고 판단되는 경우 계약은 반드시 사원에 의해 이루어 지지만 계약 엔티티의 대표성은 계약번호라고 생각하여 사원번호를 비식별자 관계로 함. 계약 계약번호 계약사원번호 (FK) 사원 사원번호
⑤ 자식과 관련이 있는 엔티티타입으로의 주식별자 상속을 차단하기 위해서 ▶비식별자 관계 ⑤ 자식과 관련이 있는 엔티티타입으로의 주식별자 상속을 차단하기 위해서 회원 회원 회원ID 회원ID 주문이력 주문 주문번호 (FK) 주문이력 주문번호 수정일자 주문 회원ID (FK) 주문번호 (FK) 회원ID (FK) 주문번호 수정일자 회원ID (FK) 주문제품 배송제품 제품코드 업체번호 주문제품 배송제품 주문번호 (FK) 제품코드 (FK) 업체번호 회원ID (FK) 주문번호 (FK) 제품코드 주문번호 (FK) 제품코드 (FK) 회원ID (FK) 주문번호 (FK)
▶속성 정의 엔티티타입 검증 관계 검증 속성 검증 데이터모델검증 통합화 엔티티타입 통합 안정성/확장성분석 속성상세 정의 정규화 도메인정의 속성규칙정의 세부사항정의 식별자정의 주식별자 정의 보조식별자정의 식별자 업무규칙정의 관계정의 엔티티타입간 관계정의 엔티티타입정의 엔티티타입 정의
속성은 업무상 필요한 정보를 나타내는 최소단위 ▶속성이란? 속성은 업무상 필요한 정보를 나타내는 최소단위 고객 고객 성명 우편번호 집주소 전화번호 전자메일 홈페이지 <<< 보험회사 사람
속성을 발견하는 작업은 개발이전까지 지속적으로 진행되어야 하므로 ▶속성의 선정 시점 엔티티 타입 C D R U 엔티티타입 선정 프로세스 모델링 상관모델링 현시스템 분석 업무자료를 수집하는 동안 속성을 발견하는 작업은 개발이전까지 지속적으로 진행되어야 하므로 데이터모델링 단계에서 완벽하게 속성을 찾으려고 애쓰지 않아도 된다.
나는 어디로 가야하나??? ▶속성의 엔티티타입별 배치 업무적으로 관리해야 할 속성이 있음에도 불구하고 도출된 엔티티타입이 MY ENTITY TYPE? 업무적으로 관리해야 할 속성이 있음에도 불구하고 도출된 엔티티타입이 존재하지않을 경우는 새로운 엔티티타입 생성을 고려해야 한다.
▶속성의 111원칙 속성 111 원칙 속성에 의한 엔티티타입 생성 속성 시간 한속성 한 시점 속성값 한 속성값은 한 시점에 한 개의 값만을 가질 수 있다. 속성에 의한 엔티티타입 생성 시점2 하나의 속성이 시간에 따라 여러 개의 값을 가지며 그 값을 해당업무에서 관리해야 할 필요가 있으면 새로운 엔티티타입을 생성한다. 시점1 시점3 여러 새로운 엔티티 타입생성
▶다중값에 대한 데이터모델링 고객 고객방문 고객번호 성명 포함한다 우편번호 집주소 고객번호 전화번호 방문일시 전자메일 방문내용 홈페이지 포함한다 고객번호 방문일시 방문내용 포함된다
▶다중값에 대한 데이터모델링 다중값 속성 고객 PGM 고객번호 성명 많은 프로그램 우편번호 을 수정해야 함 집주소 방문일자1 방문일자2 방문일자3 방문일자4 방문일자5 PGM 많은 프로그램 을 수정해야 함
▶속성의 3분류 업무상 수집된 기본속성 BASIC 업무에 필요한 정보를 주기위해 시스템에서 고안한 속성(코드 등) DESIGNED 다른 속성에 의해 계산되거나 영향을 받아 생성된 속성(금액총합,이자 등) DERIVED 1분류 2분류 3분류
▶도메인 정의 방법 도메인이란? 데이터모델링에서 도메인은 의미는 엔티티타입내에 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것을 의미한다.
▶도메인 정의 방법 ① 데이터모델의 모든 속성을 나열한다. ② 모든 속성 중에 뒤에서부터 2 ~ 4 정도를 분리한다. ① 데이터모델의 모든 속성을 나열한다. ② 모든 속성 중에 뒤에서부터 2 ~ 4 정도를 분리한다. ③ 공통으로 발생하는 접미어를 분리하여 하나로 만들다. ④ 분리된 접미어를 비슷한 것 끼리 묶어 그룹을 만들어 이름을 부여한다. ⑤ 각 도메인별로 데이터타입과 길이를 지정한다. ⑥ 각 엔티티타입의 속성에 도메인을 할당한다.
▶도메인 정의 대상 엔티티타입의 속성
▶도메인 정의-접미어 분리 속성의 접미어 분리
▶도메인 정의 - 공통접미어 공통 접미어 그룹 :
▶도메인 정의 - 도메인구분 도메인 구분지정 접미어들을 의미하는 내용별로 묶어 도메인구분을 만든다.
▶도메인 정의서작성 도메인 구분과 도메인 타입지정
▶도메인 할당 각 엔티티타입별로 도메인 할당
▶도메인을 ERD에 반영 정의된 도메인을 ERWin에 등록한 모습
▶도메인이 반영된 ERD 자격증 사원번호: 사원번호 (FK) 자격증일련번호: 일련번호 자격증종류코드: 자격증종류코드 자격증이름: 이름(V,40) 자격등급: 등급 취득일자: 일자 인사기본 사원번호: 사원번호 사원주민등록번호: 주민등록번호 (AK1.1) 부서코드: 부서코드 (FK) 사원이름: 이름(V,40) 입사일자: 일자 영문이름: 이름(V,40) 집전화번호: 집전화번호 휴대폰번호: 휴대폰번호 전자메일: 전자메일 우편번호: 우편번호 본적주소: 주소 현주소: 주소 성별: 여부 결혼여부: 여부 결혼일자: 일자 생년월일: 일자 취미코드: 취미코드 키: 키 몸무게: 몸무게 혈액형유형: 구분 왼쪽눈시력: 시력 오른쪽눈시력: 시력 색맹여부: 여부 채용형식: 구분 퇴사일자: 일자 은행코드: 은행코드 계좌번호: 계좌번호 예금주: 이름(V,40) 어학 어학코드: 어학코드 어학일련번호: 일련번호 어학점수: 점수 시행처: 이름(V,40) 시행일자: 일자 가족주민등록번호: 주민등록번호 가족이름: 이름(V,40) 가족학력: 학력 가족직업: 직업 근무회사이름: 이름(V,40) 관계: 구분 동거여부: 여부 부양가족여부: 여부 국민연금 국민연금등급: 등급 국민연금금액: 금액(N,10) 국민연금등급금액변경일자: 일자 국민연금등급최저금액: 금액(N,10) 국민연금등급최고금액: 금액(N,10) 건강보험 건강보험등급: 등급 건강보험금액: 금액(N,10) 건강보험등급금액변경일자: 일자 건강보험등급최저금액: 금액(N,10) 건강보험등급최고금액: 금액(N,10) 급여기본 국민연금등급: 등급 (FK) 건강보험등급: 등급 (FK) 은행명: 내역(V,100) 건강보험번호: 건강보험번호 건강보험취득일: 일자 건강보험상실일: 일자 국민연금번호: 국민연금번호 국민연급취득일: 일자 국민연금상실일: 일자
▶용어사전의 정의 데이터모델링에서 용어사전이란… 테이블과 컬럼에 업무상 의미가 있고 일관된 명칭을 부여하기 위해 정의한 용어규칙을 말한다. 용어사전(데이터사전)을 정의하는 이유는 논리 데이터모델에 기술된 속성명과 테이블 명에 대한 업무적인 용어를 적용시키거나 프로젝트에서 사용하기 위한 이름을 부여하여 데이터모델과 어플리케이션 인터페이스에서 효율적인 정보화시스템을 구축하는 것을 목적으로 한다.
▶용어사전 정의방법 ① 엔티티타입의 속성명을 모두 한곳에 모아 기술하도록 한다. ① 엔티티타입의 속성명을 모두 한곳에 모아 기술하도록 한다. ② 속성명을 업무에서 사용하는 단어의 단위로 분리한다. ③ 각각의 단위 속성에 의미를 기술하도록 하고 물리속성명을 업무특성에 적합하게 정의하도록 한다. ④ 물리속성명 명명규칙을 정한다. 예를 들면 최종작업일자를 물리속성명을 부여할 때 LAST_WORK_DATE로 할지 LASTWORK_DATE로 할지 또는 LastWorkDate로 할지에 대한 기본규칙을 지정하도록 한다. ⑤ 단위속성명에 따라 엔티티타입의 모든 속성명에 대해 논리속성명을 일치시키고 물리속성명은 생성해주도록 한다. 예를 들면 급여청구최대를 단위 속성명을 급여/PAY, 청구/DEMAND, 최대/MAX을 정의했다고 하면 급여청구최대는 PAY_DEMAND_MAX가 될 것이다.
▶용어사전 정의-대상속성 용어사전정의 – 모든 속성을 취합함
▶용어사전 정의-속성분리 용어사전정의 – 유일한 속성을 음절로 분리(1/3)
▶용어사전 용어사전
▶용어사전 정의-ERD에 반영 용어사전이 적용된 ERD HOLIDAY EMP_NO HOLIDAY_DT HOLIDAY_RSN CERTI QUALIF_SER CERTI_KIND_CD CERTI_NM QUALIF_RANK POSS_DT HRBASE EMP_REGNO DEPT_CD EMP_NM CENROL_DT ENG_NM HOUSE_TELNO MPHONE_NO EMAIL POSTNO PADDR_ADDR CUR_ADDR SEX MARRY_FLG MARRY_DT BIRTH HOBBY_CD HEIGHT WEIGHT BLOTYPE LEFT_SIGHT RIGHT_SIGHT CBLIND_FLG ADOPT_TYPE RETIRE_DT BANK_CD ACCT_NO DEPOSITOR LSTUDY LSTUDY_CD LSTUDY_SER LSTUDY_SCORE ORGAN OPER_DT MILIT MNO MENROL_DT DISCHARGE_DT MILIT_KIND MILIT_MRANK MILIT_NO MILIT_ASSIGN EXEMPT_RSN ATTEND ATTEND_DT ATTEND_KIND_CD CARRIER CARRIER_SER DUTY_NATION DUTY_COMP_NM DUTY_PLACE RDUTY CHARGE_BIZ CARRIER_START_DT CARRIER_END_DT FAMDET FAM_REGNO FAM_NM FAM_SCAREER FAM_JOB REL SLIVE_FLG SUP_FAM_FLG SALBASE NPEN_RANK HINSURE_RANK BANK_NM HINSURE_NO HINSURE_POSS_DT HINSURE_LOSS_DT NPEN_NO NPEN_POSS_DT NPEN_LOSS_DT
▶4-STEP 데이터모델링의 정의 4-STEP 데이터 모델링이란… 업무 1-STEP 2-STEP 3-STEP 4-STEP 업무의 흐름을 이해한 상태에서 엔티티타입과 속성 및 관계를 도출할 때 업무구조, 업무흐름, 기술적모델링, 데이터모델 검토 및 정제의 방법을 적용하여 데이터모델을 완성해가는 실무적이고 빠른 모델링 기법(Rapid Data Modeling)
▶4-STEP 데이터모델링 구성 1-STEP : 업무구조 모델링 2-STEP : 업무흐름 모델링
▶4-STEP 데이터모델링의 특징 모델링 4 단계 엔티티타입 속성 관계 1 단계 : 업무구조 모델링 기본 엔티티타입 도출 원 부모 엔티티타입이 많이 발생함 기본 엔티티타입에 대한 속성 도출 시나리오나 장표등에 명확하게 나타나는 경우가 많음 존재에 의한 관계가 많음 엔티티타입간 관계가 많이 존재하지 않을 수 있음 2 단계 : 업무흐름 모델링 행위 엔티티타입 도출 자식 엔티티타입이 많이 발생함 업무흐름발생에 따른 속성 도출 행위 엔티티타입 속성 도출 시나리오나 장표등에 명확하게 나타나지 않아 유추되는 경우도 많음 행위에 의한 관계가 많음 엔티티타입간에 관계가 연결되는 경우가 많음
▶4-STEP 데이터모델링의 특징 모델링 4 단계 엔티티타입 속성 관계 3 단계 : 기술적 모델링에 의한 모델링 관계 엔티티타입 도출 이력 엔티티타입 도출 정규화에 의한 엔티티타입 도출 이력엔티티타입, 수퍼/서브 엔티티타입이 도출 될 수 있음 관계 엔티티타입 속성도출 업무구조나 흐름에 나타지 않음 업무적으로 필요하지 않더라도 기술적으로 데이터 모델링에서 필요한 속성 도출(변경일자, 등) 행위에 의한 관계가 많음 M:N관계를 해소하면서 엔티티타입을 발생시킴 4 단계 : 모델 검토 및 정제를 통한 모델링 엔티티타입의 추가, 변경, 제거 발생 - 속성 검토 및 정제 - 관계 검토 및 정제
외부의 공격에는 민감하게 대처하지만 자기 마음속에서 나오는 마음의 적 마치 사자를 피하다가 곰을 만나고 곰을 피하여 안심하였지만 가까운 곳에 있는 뱀에게 물리는 것처럼 외부의 공격에는 민감하게 대처하지만 자기 마음속에서 나오는 공격에 대해서는 무방비로 있는 사람들이 많다.