1.1 엔티티타입
개념
- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위,엔티티의 집합
특징
- 반드시 시스템을 구축하고자 하는 업무에서 필요하고 관리하고자하는 정보이어야한다.
- 유일한 식별자에 의해 식별이 가능해야한다.
- 영속적으로 존재하는 엔티티의 집합이어야 한다.
- 업무 프로세스(business process)는 그 엔티티타입을 반드시 이용해야한다.
- 엔티티타입에는 반드시 속성이 있어야한다.
- 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야한다.
유무형에 따른 분류 (엔티티타입 자체의 성격에 따른 분류방법)
- 유형 엔티티타입(Tangible Entity Type)
- 물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔티티타입 (사원, 물품, 강사...)
- 개념 엔티티타입(Conceptual Entity Type)
- 물리적인 형태가 없고, 관리해야 할 개념적 정보로 구분되는 엔티티타입 (조직, 상품, 장소...)
- 사건 엔티티타입(Event Entity Type)
- 업무를 수행함에 따라 발생되는 엔티티타입으로 각종 통계자료에 이용되는 엔티티타입 (주문, 청구, 미납...)
발생기점에 따른 분류(업무를 구성하는 모습에 따라 구분)
- 기본 엔티티타입 (Fundamental Entity Type)
- 업무에 원래 존재하는 정보로서 독립적으로 생성되며 자신은 타 엔티티타입의 부모 역할을 한다.(사원,부서)
- 중심 엔티티타입(Fundamental Entity Type)
- 기본 엔티티타입에서 발생되고 그 업무에서 중심적인 역할을 한다.(접수,계약)
- 행위 엔티티타입(Fundamental Entity Type)
- 두 개 이상의 부모 엔티티타입에서 발생되고 내용이 자주 바뀌거나 데이터양이 증가된다.(주문내역,계약진행)
엔티티타입의 명명
- 가능하면 현업업무에서 사용하는 용어를 사용한다.
- 약어를 가능하면 사용하지 않는다.
- 단수 명사를 사용한다.
- 모든 엔티티타입 명은 유일해야한다.
- 엔티티타입 생성 의미대로 이름을 부여한다.
1.2 관계
개념
- 두개의 엔티티타입 사이의 논리적인 관계 즉 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태를 말한다.
관계 페어링
- 각각의 엔티티들은 자신이 관련된 엔티티들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Pairing)이라고 한다.
- 엔티티 타입 : 엔티티의 집합을 논리적으로 표현
- 관계 : 관계 페어링의 집합을 논리적으로 표현
관계의 명명
- 두 개의 멤버십(membership)을 갖는다.
- 두 가지 관점으로 표현
- 멤버십은 엔티티타입이 관계에 참여하는 것(자신이 기준)
- 관계의 시작 : 관계 시작점
- 관계의 끝 : 관계 끝점
- 관계의 시작과 끝점 모두 관계 이름을 갖으며, 멤버십의 성격에 따라 관계 이름이 능동적이거나 수동적으로 명명
규칙
-애매한 동사를 피하라
-- 구체적이지 못한 행위가 있는지 또는 두 참여자 간 어떤 상태가 존재하는지 파악하기 어렵다.
-현재형으로 표현
-- 수강 신청했다. 할 것이다. 피하고 수강 신청한다. 강의 한다.
관계 카디낼리티(Cardinality)
- 카디낼리티 - 두 개의 엥ㄴ티티타입 간 관계에서 참여자의 수
관계읽는 방법
-엔티티 타입의 참여도를 읽고 다음에 엔티티 타입을 읽고 관계명을 읽는다.
관계의 참여도 참여방법
1.3 속성
개념
- 업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지않는 최소의 데이터 단위.
- 엔티티타임,엔티티,속성, 속성값에 대한 관계를 분석하면 다음과 같은 결과를 얻을수 있다.
- 규칙 1. 한개의 엔티티타입은 두개 이상의 엔티티 집합이어야 한다.
- 규칙 2. 한개의 엔티티는 두개 이상의 속성을 갖는다.
- 규칙 3. 한개의 속성은 한개의 속성값을 갖는다.
속성의 특성에 따른 분류
- 기본속성(basic attribute)-업무분석을 통해 정의한 속성,엔티티타입에 가장 일반적이고 많은 속성을 차지한다.
- 설계속성(designed attribute)-업무에는 존재하지않지만 설계를 하면서 도출하는 속성,업무외에 데이터 모델링을 위해, 업무를 규칙화화려고 속성을 해고 만들어가 변형하여 정의하는 속성,
- 일련번호와 같은 속성은 단일(unique)한 식별자를 부여하기 위해 모델에서 새로 정의.
- 파생속성(derived attribute)-다른 속성에 영향을 받아 발생하는 속성으로서 보통 계산된 값
엔티티 구성방식에 따른 분류
- PK속성-엔티티를 식별할수있는 속성
- FK속성-다른 엔티티와의 관계에서 포함된 속성
- 일반속성 - 엔티티에 포함되어있고 PK,FK에 포함되지않은 속성
속성의 명명
- 원칙
- 해당업무에서 사용하는 이름을 부여한다.
- 서술식 속성명은 사용하지않는다.
- 약어 사용은 가급적 자제한다.
- 엔티티타입에서 유일하게 식별가능 하도록 지정한다.
1.4 엔티티 수퍼타입과 서브타입
- 여러개의 엔티티타입이 비슷하고 일부의 속성이나 관계만 다를 경우
- 여러 개의 엔티티타입을 한 개의 엔티티타입으로 묶어 통합하고 하나의 엔티티타입 안에 다른 엔티티타입의 모습을 서브타입으로 나뉘어 표시하는 경우 엔티티타입이 통합되었다고 한다.
- 통합하여 표시하는 엔티티타입을 수퍼타입, 수퍼타입 안에 포함되어 표시된 비슷한 성격의 엔티티타입을 서브타입
- 예)방문접수, 전화접수, 인터넷 접수(서브 타입)
- 동일한 성격 : 접수(수퍼 타입)
- 다른 성격 : 접수 방법
엔티티 수퍼타입과 서브타입의 표시 방법
엔티티 수퍼타입과 서브타입의 표시하기 위한 특징
- 서브타입간의 관계가 서로 배타적으로 수퍼타입과 관계를 갖는지 서로 포함하면서 수퍼타입과 관계를 가지는지 결정
- 대부분의 경우 배타적
- 촉탁 직원이면서 시간직원으로 등록하여 별도로 일할 수 있다. ::서로 포함 관계로 구분
- 각각의 서브타입은 정확하게 하나의 수퍼타입에만 속해야 한다.
- 수퍼타입과 서브 타입 사이에는 서브타입을 구분할 수 있는 구분자가 반드시 존재, 구분자의 위치는 수퍼타입의 속성으로 포함
- 서브타입에 있는 엔티티 어커런스는 구분자에 의해 식별
- 서브타입에 대한 서브타입을 지정할 수 있지만 모델의 복잡성이 증가하므로 서브타입의 수준을 1로 유지
- 하나의 서브타입만으로는 분석이 덜된 상태이므로 세분화하여 서브타입을 분리
1.5 서브젝트 에어리어(subject area)
정의
- 해당업무 내에서 연관이 많은 엔티티타입을 그룹으로 묶어 표시하는 개념
-시스템의 복잡도를 감소시키고 개발 범위를 분담하며, 모델의 읽기편이성(readability)를 위해 업무 단위별로 구분하여 표현하는 서브젝트 에어리어를 이용하도록한다.
1.7 ERD표기법
- 각각 업무분석에서 도출된 엔티티타입과 엔티티타입 간의 관계를 이해하기 쉽게 그림으로 표시하는 방법이다.
- 실게 프로젝트에서는 해당 업무에 있어서 데이터의 흐름과 프로세스와의 연관성을 이야기 하는데 가장 중요한 표기법이자 산출물이다.
ERD를 작성하는 순서
- 엔티티타입을 그린다.
- 엔티티타입을 적절하게 배치한다.
- 엔티티타입간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 참여도를 기술한다.
- 관계의 필수여부를 기술한다.
ERD에서 엔티티타입의 배치방법
- 업무를 진행하는 순서에 따라 엔티티타입을 왼쪽 편부터 오른쪽으로 그리고 위에서 아래로 표시한다.
- 업무 흐름에 중심이 되는 엔티티타입, 보통 업무 흐름에 있어 중심이 되는 엔티티타입은 타 엔티티타입과 많은 관계를 가지고 있으므로 중앙에 배치한다.
- 업무를 진행하는 중심 엔티티타입과 관계를 갖는 엔티티타입들은 중심에 배치된 엔티티타입의 주위에 배치하도록 한다.
- ERD 관계의 연결
- ERD 관계명의 표시
- ERD 관계 카이낼리티와 선택성 표시