1. 데이터 모델링 개념 10-1) 모델링의 3가지 관점 1. 데이터 관점 – 업무가 어떤 데이터와 관련이 있는지 또는 10-1) 모델링의 3가지 관점 1. 데이터 관점 – 업무가 어떤 데이터와 관련이 있는지 또는 (DATA, WHAT) 데이터간의 관계는 무엇인지를 모델링 하는 방법 2. 프로세스 관점 – 업무에서 실제 하는 일은 무엇인지 또는 (PROCESS, HOW) 어떻게 해야 하는지에 대해 모델링 하는 방법 3. 상관 관점 – 업무가 처리하는 일의 방법에 따라 데이터는 (INTERACTION;상호작용) 어떻게 영향을 받고 있는지 모델링 하는 방법
■ 데이터 모델링이란… ▶ 정보화 시스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법
10-2) 데이터 모델링의 주체 ▶ 프로젝트 참여한 모든 사람은 데이터모델링에 여하거나 모델내용을 이해해야 한다. 프로젝트 10-2) 데이터 모델링의 주체 프로젝트 개발 참여자 프로젝트 업무 참여자 SE, BA DBA MODELER 현업 업무전문가 ▶ 프로젝트 참여한 모든 사람은 데이터모델링에 여하거나 모델내용을 이해해야 한다.
10-3) 기본 데이터모델링 개념 업무가 관여하는 어떤 것(THINGS) 업무가 관여하는 어떤 것간의 관계(RELATIONSHIPS) 어떤 것이 가지는 성격(ATTRIBUTES)
10-4) 기본 데이터모델링 용어 개 념 타입/클래스 어커런스/인스턴스 어떤 것 엔티티타입 엔티티 어떤 것간의 관계 관계 패어링 어떤 것의 성격 속성 속성값
10-5) 엔티티((Entity) 타입 정의 ① 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 - Thomas Bruce (1992) ~ ② 변별할 수 있는 사물 - Peter Chen (1976) ~ ③ 데이터 베이스 내에서 변별 가능한 객체 - C.J Date (1986) ~ ④ 추후에 참조 가능한 데이터의 논리적 저장 체 - Clive Finkelsein (1989) ~ ⑤ 정보를 저장할 수 있는 어떤 것 - James Martin (1939) – ⇒ 엔티티는 업무수행을 위해 기업이 알아야 될 대상이 되는 사람, 장소, 사물, 사건 및 개념
■ 엔티티 타입 예 강의실 과목 강사 ■ 엔티티타입 - 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 - 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위 . ■ 과목은 정보공학이나 JAVA등을 포함하는 동일한 성격의 엔티티들을 보관하는 논리적인 장소이다. JAVA 정보공학 과목(엔티티 타입)
10-6) 엔티티 타입과 엔티티 ※ ERD (Entity Relationship Diagram) 엔티티타입-엔티티 ERD 엔티티타입-엔티티의 예 엔티티 타입 엔티티 강의실 101호 102호 과 목 J2EE DATA MODELING 강 사 박승기 이순신 엔티티타입 엔티티 → 엔티티타입은 엔티티의 집합 ※ ERD (Entity Relationship Diagram)
10-7) 엔티티 타입의 특징 ① 첫 번째 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다. ① 첫 번째 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (예. 환자, 토익의 응시횟수…) ② 두 번째 유일한 식별자에 의해 식별이 가능해야 한다. ③ 세 번째 영속적으로 존재하는 엔티티의 집합이어야 한다. (“한 개”가 아니라 “두 개 이상”) ④ 네 번째 엔티티타입은 업무 프로세스에 의해 이용되어야 한다. ⑤ 다섯 번째 엔티티타입에는 반드시 속성이 있어야 한다. ⑥ 여섯 번째 엔티티 타입은 다른 엔티티 타입과 최소 한 개 이상의 관계가 있어야 한다.
엔티티의 수 가 “한 개”가 아니라 “두 개 이상” 이어야 한다. ① 첫 번째 반드시 업무에서 필요하고 관리하고자 하는 정보이어야 한다. 병원 시스템 인사시스템 환자 ② 두 번째 유일한 식별자에 의해 식별이 가능해야 한다. 홍길동 !!??? ③ 세 번째 영속적으로 존재하는 엔티티의 집합이어야 한다. 엔티티의 수 가 “한 개”가 아니라 “두 개 이상” 이어야 한다. 엔티티타입 엔티티 회사 LG CNS 회사 엔티티타입 엔티티 병원 삼성의료원 병원
④ 네 번째 엔티티타입은 업무 프로세스에 의해 이용되어야 한다. ?? 난 뭐지… 엔티티 타입 엔티티 타입 PROCESS 엔티티 타입 엔티티 타입 PROCESS → 업무프로세스에 의해 이용되지 않는 엔티티 타입은 그 업무에 있어서는 엔티티 타입이 아니라는 것을 의미한다. ⑤ 다섯 번째 엔티티타입에는 반드시 속성이 있어야 한다. 엔티티타입? 태풍 날씨 태풍이름 발생지역 풍속 → 속성이 존재하지 않는 오브젝트는 엔티티 타입이 될 수 없다.
⑥ 여섯 번째 엔티티 타입은 다른 엔티티 타입과 최소 한 개 이상의 관계가 있어야 한다. 강의실 코드 강사 강의실번호 강의장소 강의실상태코드 강의실용도코드 코드 내용 비고 강사이름 강사타입코드 강사과목코드 주소 전화번호 → 코드와 통계성 엔티티타입 간의 관계는 연결하면 데이터모델이 너무 복잡해 지므로 편의상 생략하여 표현한다.
■ 엔티티 타입의 분류 – 유,무형에 따라… 유형 (사원, 물품) 사건 개념 (주문, 청구) (조직, 장소) 유형(TANGIBLE) 유형 (사원, 물품) 무형(CONCEPTUAL) 사건 (주문, 청구) 개념 (조직, 장소)
■ 엔티티 타입의 분류 – 발생시점에 따라… 중심 (접수, 계약) 기본 (사원, 부서) 행위 (주문내역, 계약진행) ◆ 기본(FUNDAMENTAL ENTITY TYPE) – 해당 업무에 기본적으로 존재하는 정보 ◆ 중심(MAIN ENTITY TYPE) – 업무에 핵심적인 역할을 하는 정보 ◆ 행위(ACTIVE ENTITY TYPE) – 기본과 중심 엔티티타입을 근간으로 업무가 흘러가면서 발생되는 엔티티타입
10-8) 엔티티 타입의 명명 ① 첫 번째 현업에서 사용하는 용어를 사용한다. ② 두 번째 가능한 약어를 사용하지 않는다. ③ 세 번째 단수명사를 사용한다. ④ 네 번째 모든 엔티티타입 이름은 유일해야 한다. ⑤ 다섯 번째 엔티티타입이 생성되는 자연스러운 의미를 그대로 부여한다. ⇒ ㅋ ㅋ 잘 지은 엔티티 타입 명 이름하나 열 프로세스 명 안 부럽다.
▶ 엔티티 타입의 명명 예 주문목록 ■ 엔티티타입이 생성되는 의미대로 명명 한다. 엔티티 타입 이름 설명 고객제품 고객의 제품인지, 주문제품인지 명확하지 않음. 주문제품 주문목록 주문한 제품의 이름이라는 것을 알 수 있음. 주문목록
10-9) 식별자 개념 식별자 ■ 식별자는 엔티티 타입 내에서 엔티티들을 구분할 수 있는 구분자이다. 엔티티 1001 엔티티 102 1003 엔티티타입 ■ 식별자는 엔티티 타입 내에서 엔티티들을 구분할 수 있는 구분자이다.
▶ 식별자 구분 식별자 분류 대표성여부 스스로생성여부 단일속성여부 대체여부 주 식별자 보조 내부 식별자 외부 단일 식별자 복합 원조 식별자 대리
※ 대리 식별자(SURROGATE IDENTIFIER) 주문 주문 사업소 코드 주문일자 일련번호 주문번호 사업소코드 + 년월 + 일련번호 대리 식별자 대리 식별자 방문실적 방문실적 방문 일시 방문장소 코드 방문자 주민등록번호 방문실적 일련번호 방문 일시 방문장소 코드 방문자 주민등록번호 ⇒ 대리 식별자(SURROGATE IDENTIFIER)는 주 식별자의 속성이 복합 식별자일 경우 여러 개의 속성을 묶어 하나의 속성으로 만들어 주 식별로 활용하는 것. - 주 식별자 속성을 일반 속성으로 내리고, 일련번호 형태를 사용 하는 것.
10-10) 관계의 정의 소속한다 ■ 관계란 두 개의 엔티티 타입 사이의 논리적인 관계 즉 엔티티와 엔티티가 부서 사원 소속한다 ■ 관계란 두 개의 엔티티 타입 사이의 논리적인 관계 즉 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태를 말한다. DB팀 부서 사원 박 승기 김경재 고객 주문 CTA201 소속한다 주문한다 ■ 존재에 의한 관계 ■ 행위에 의한 관계 → 사원 박 승기라는 사원은 DB팀에 소속되어 있는 상태이다. → 김 경재 고객은 “주문한다”라는 행위를 한다.
10-11) 관계 패어링 ■ 관계-패어링 ERD Pairing = 대진 편성표 ■ 각각의 엔티티들은 자신이 관련된 엔티티들과 관계의 어커런스((Occurrence; 사건, 발생) 로 참여 하는 형태를 관계 패어링(Pairing) 이라 한다. 관계-패어링(Pairing) 예 ■ 관계-패어링 ERD 관계 패어링 소속한다. 박승기가 영업부에 소속한다. 김경재가 영업부에 소속한다. 주문되다. 마우스가 주문번호1001에 의해 주문된다. 키보드가 주문번호1001에 의해 관계 패어링 관계는 패어링의 집합 Pairing = 대진 편성표
▶ 관계 패어링 예 패어링 부서 소속된다 사원 배우 영업부 박 승기 인사부 김경재 총무부 정대산 홍길동 → 엔티티 타입은 엔티티의 집합을 논리적으로 표현 한 것. → 관계는 관계 패어링의 집합을 논리적으로 표현 한 것.
10-12) 관계의 멤버 쉽 멤버쉽(RELATIONSHIP MEMBERSHIP) ■ 멤버쉽은 엔티티 타입이 참여하는 관계에 대한 자신으로부터의 관점이다. 멤버쉽(RELATIONSHIP MEMBERSHIP) 포함한다 부서 사원 사원 소속된다 → 부서는 사원을 포함하고 있다. → 사원은 부서에 소속된다.
10-12) 관계의 카디넬러티 1) 1:1(ONE TO ONE) ■ 카디넬러티(Cardinality)는 두개의 엔티티 타입간 관계에서 참여자의 수를 표현 한 것. ■ 카디넬러티의 표현 방법은 1:1, 1:M, M:N이다. 1) 1:1(ONE TO ONE) 신청한다 구매신청 구매주문 작성한다 → 한 개의 구매신청서에 대해 한 개의 구매주문을 신청하고 → 한 개의 구매주문에는 한 개의 구매신청내용을 작성한다.
2) 1:M(ONE TO MANY) 3) M:M(MANY TO MANY) 부서 포함한다 소속된다 사원 → 한 명의 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다. 3) M:M(MANY TO MANY) 주문 주문한다 주문된다 제품 → 하나의 주문은 여러 개의 제품을 주문할 수 있고 하나의 제품은 여러 개의 주문에 의해 주문될 수 있다.
▶ 관계의 참여 방법 선택(OPTIONAL) 필수(MANDATORY) ◆ 필수 참여 : 참여하는 모든 참여자가 반드시 타 엔티티 타입 참여자와 연결되어야 하는 관계. ◆ 선택 참여 : 참여해도 되고 하지 않아도 되는 관계 선택(OPTIONAL) 열차가 출발하겠습니다. 필수(MANDATORY) ◆ 필수 참여 : 지하철은 문이 닫혀야만 출발할 수 있다. ◆ 선택 참여 :안내방송이 나오지 않아도 지하철은 출발할 수 있다.
▶ 관계의 참여도 ■ 관계(RELATIONSHIP) 참여도 하나의 주문목록에는 한 개의 목록을 항상 포함하고 포함한다 포함된다 목록 하나의 주문목록에는 한 개의 목록을 항상 포함하고 한 목록은 여러 개의 주문목록에 의해 포함될 수 있다.
2) 자기참조관계(Recursive Relationship) 10-13) 관계의 종류 1) 정상관계(Normal Relationship) ■ 엔티티 타입과 엔티티 타입이 독립적으로 분리되어 있으면서 한 개의 관계만 상호간 존재하는 형태의 관계 부서 사원 2) 자기참조관계(Recursive Relationship) ■ 하나의 엔티티 타입내에서 엔티티와 엔티가 관계를 맺고 있는 형태의 관계 컴퓨터 본체 마우스 키보드 메모리 CPU 휠 기판 켸이스 부품
3) 병렬관계(Pararell Relationship) ■ 엔티티 타입과 엔티티 타입이 독립적으로 분리되어 있으면서 두 개 이상의 관계가 상호간의 존재하는 형태의 관계(예 은행에 예금/대출) 고객 계약 4) 수퍼 타입 서브 타입관계 ■ 수퍼 타입과 서브타입 사이에 1:1 관계형태로서 서브타입을 구분하는 방법에 따라 배타적 관계와 포함 관계로 구분됨 일반직원은 촉탁직원이 될 수 없는 배타적관계 인터넷접수자가 방문하여 다시 접수 할 수 있는 포함관계 일반직원 직원 직원구분코드 촉탁직원 방문접수 인터넷접수 접수 접수구분코드
5) 주식별자 관계/비식별자 관계 부서 부서코드 사원 부서코드 (FK) 사원번호 주식별자 관계 비식별자 관계 부모의 주 식별자가 자식의 주 식별자 상속됨 자식의 일반속으로