제2절 엔터티
엔터티 정의
엔터티
- 변별할 수 있는 사물_Peter Chen(1976)
- 데이터베이스 내에서 변별 가능한 객체_C.J Date(1986)
- 정보를 저장할 수 있는 어떤 것_James Martin(1989)
- 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등_Tomas Bruce(1992)
- 업무에 필요하고 유요한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)
공통 사항
- 사람, 장소, 물건, 사건, 개념 등의 명사에 해당
- 업무상 관리가 필요한 관심사에 해당
- 저장이 되기 위한 어떤 것(Thing)
- 엔터티-인스턴스
엔터티-인스턴스
엔터티 표현하는 방법: 사각형
엔터티와 엔터티간의 ERD
엔터티 특징
업무에서 필요로 하는 정보
반드시 시스템을 구축하고자 하는 업무에서 필요로 하고 관리하고자 하는 정보여야 한다
ex. 업무에서 관리할 필요가 있는가?
S병원; 병원 시스템 <- O - 환자(엔터티) - X -> A회사; 인사시스템
=> 업무에서 관리하고자 하는 영역(Business Boundary)에 대한 인식 매우 중요
식별이 가능해야 함
유일한 식별자; 엔터티의 인스턴스만의 고유한 이름
두 개 이상의 엔터티 대변 -> 식별자 잘못 설계된 것
ex. 유일한 식별자를 가질 수 있는가?
홍길동 ?? 모두 다 동일한 이름, 속성, 관계 ??
=> 인스턴스 각각을 구분하기 위한 유일한 식별자가 존재해야 함
인스턴스 집합
"한 개"가 아니라 "두 개 이상"이라는 집합 개념 중요
ex. 엔터티는 두 개 이상의 인스턴스를 가지는가?
회사 -> 엔터티(회사)-인스턴스(LG CNS)
병원 -> 엔터티(병원)-인스턴스(삼성의료원)
=> 인스턴스가 한 개 밖에 없는 회사, 병원 엔터티는 집합 X -> 엔터티 성립 X
업무 프로세스에 의해 이용
업무프로세스에 의해 전혀 이용 X -> 업무 분석 정확 X -> 엔터티가 잘못 선정 OR 업무프로세스 도출 적절 X
ex. 엔터티는 프로세스에 의해 이용되는가?
- PROCESS - 엔터티 - 엔터티 ->
엔터티(난 뭐지?) PROCESS - 엔터티 ->
=> 업무 프로세스에 의해 이용 X 엔터티 = 그 업무의 엔터티 X
속성포함
예외적으로 관계엔터티(Associative Entity) 경우는 주식별자 속성만 가지고 있어도 엔터티로 인정
ex. 엔터티는 속성을 포함하는가?
태풍; 태풍이름/ 발생지역. 풍속
날씨; 날씨이름/ -> 엔티티?
=> 속성이 존재 X 오브젝트 = 엔터티가 될 수 X
관계의 존재
다른 엔터티와 최소 한 개 이상의 관계가 존재해야 한다
엔터티가 도출되었다
= 해당 업무내에서 업무적인 연관성(존재적 연관성, 행위적 연관성)을 가지고 다른 엔터티와의 연관의 의미를 가지고 있음
단, 데이터 모델링 하면서 관계 생략하여 표현해야 하는 경우
: 통계성 엔터티 도출, 코드성 엔터티 도출, 시스템 처리시 내부 필요에 의한 엔터티 도출
ex. 엔터티는 관계를 가지고 있는가?
=> 엔터티가 관계 X -> 잘못된 엔터티 OR 관계가 누락되었을 가능성 ↑
엔터티분류
자신의 성격에 의해 실체유형에 따라 구분하거나 업무를 구성하는 모습에 따라 구분이 되는 발생시점에 의해 분류할 수 있다
ex.
유무형에 따라; 유형(사원, 물품)/ 사건(주문, 청구)/ 개념(조직, 장소)
발생시점에 따라; 기본키(사원, 부서)/ 중심(접수, 계약)/ 행위(주문내역, 계약진행)
=> 엔터티를 도출할 때 일정한 그룹에 의해 그룹화하면 도출작업에 효율적
엔터티명명
- 가능하면 현업업무에서 사용하는 용어 사용
- 가능하면 약어 사용 X
- 단수 명사 사용
- 모든 엔터티에서 유일하기 이름 부여
- 엔터티 생성 의미대로 이름 부여
제3절 속성
속성의 정의
속성
- 사물(事物)의 성질, 특징 OR 본직적인 성질, 그것이 없다면 실체를 생각할 수 없는 것
- 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 업무에서 필요로 한다
- 의미상 더 이상 분리 X
- 엔터티를 설명하고 인스턴스의 구성요소가 된다
속성의 특징
속성의 분류
속성의 명명
제4절 관계
관계의 정의
관계
- (사전적) 상호 연관성이 있는 상태
- "엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
ex. 강사 - 가르킨다 - 수강생
=> 인스턴스 사이의 논리적인 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태
관계의 패어링
각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태
=> 인스턴스 각각은 자신의 연관성 가짐 -> 집합하여 '강의'라는 관계 도출
관계의 분류
관계; 존재에 의한 관계/ 행위에 의한 관계 -> 관계를 연결함에 있어 어떤 목적으로 연결되었느냐에 따라 분류
관계명
관계시작점(The Beginnig): 엔터티에서 관계가 시작되는 편/ 관계끝점(The End): 받는 편
-> 관계 이름 가져야 함 + 참여자의 관점에 따라 관계이름이 능동적(Active) OR 수동적(Passive) 명명
관계명 명명규칙
- 애매한 동사X_ex. '관계된다', '관련이 있다', '이다', '한다'
-> 구체적 X -> 어떤 행위가 있는지 OR 두 참여자간 어떤 상태 존재하는 파악 X
- 현재형으로 표현_ex. '수강을 신청했다', '강의를 할 것이다' -> '수강 신청한다', '강의를 한다'
=> 관계; 두 개의 관계명 가지고 각각의 참여자에 따른 관점 기술
관계차수(Degree/Cardinality)
관계차수(Cardinality)
: 두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것
표현방법: 1:M/ 1:1/ M:N -> 중요하게 고려: 한 개의 관계가 존재하는지 OR 두 개 이상의 멤버쉽이 존재하는지
표시하는 방법: Crow's Foot모델_선 이용하여 표현
한 개가 참여하는 경우; 실선/ 다수가 참여한 경우(Many); 까마귀발과 같은 모양으로 표시
관계 선택사양
참여하는 엔터티가 항상 참여하는지 OR 참여할 수도 있는지 나타내는 방법
-> 필수(Mandatory Membership)와 선택참여(Optional Membership)
선택참여관계는 ERD에서 관계를 나타내는 선에서 선택참여하는 엔터티 쪽으로 원으로 표시/ 필수 참여는 아무런 표시 X
=> 하나의 주문목록에는 한 개의 목록 항상 포함/ 한 목록은 여러 개의 주문목록에 의해 포함될 수 있다
관계의 정의
- 두 개의 엔터티 사이에 관심있는 연관규칙 존재?
- 두 개의 엔터티 사이에 정보의 조합 발생?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb) 존재?
관계읽기
- 기준(Source) 엔터티를 한 개(One) OR 각(Each)으로 읽는다
- 대상(Target) 엔터티의 관계참여도 즉, 개수(하나, 하나 이상)를 읽는다
- 관계선택사양과 관계명 읽는다
'Computer Science > 데이터베이스' 카테고리의 다른 글
[Structured Query Language] SQL 개발자 자격증/ 핵심정리/ PDF 첨부 (0) | 2022.10.27 |
---|---|
[Structured Query Language] 1과목: 데이터 모델링 이해_제1절 데이터 모델링 개요 (0) | 2022.10.09 |
[Oracle-SQL] 회사 데이터베이스3 (0) | 2022.06.13 |
[Oracle-SQL] 회사 데이터베이스2 (0) | 2022.06.13 |
[Oracle-SQL] 회사 데이터베이스 (2) | 2022.06.07 |