[ DB & SQL(RDBMS, NoSQL) ] 관계형 데이터 모델링 : 구성 요소.
∇ DB & SQL_데이터 베이스 공부 : 관계형 데이터 모델링의 구성요소.
목 차
1. 엔티티(Entity)
2. 속성(Attribute)
3. 식별자(Identifier)
4. 관계(Relation)
★ "개념적 데이터 모델링"은 기획 내용에 포함된 개념을 분석*분해*도출해서 빠짐없이 옮기는 단계입니다.
-> 개념적 데이터 모델링의 결과에 따라서 논리적*물리적 데이터 모델링의 향방이 좌우됩니다.
-> 또한, 개념적 데이터 모델링이 기획 내용과 일치하지 않는다면,
기획 의도를 올바르게 구현하지 못한 결과물이 나오게 됩니다.
Ⅰ. 엔티티 [ Entity]
◆ 엔티티의 정의.
:: 데이터베이스나 정보 시스템에서 독립적으로 존재할 수 있는 객체나 개념.
== '업무에서 관리해야 하는 데이터의 집합'
== '현실 세계의 객체나 개념을 나타내는 추상적인 개념'
== '읽기' 화면보다는, '쓰기' 화면 쪽에 대체로 엔티티가 잘 드러납니다.
- "테이블"에 해당하는 단위 입니다.
◆ 엔티티의 특징.
● 식별성 : 각 엔티티는 "고유한 식별자"를 가져야 하며, 이를 통해 다른 엔티티와 구별됩니다.
@ 식별자(Identifier)
- 속성들 중 '엔티티를 대표할 수 있는 속성'을 의미합니다.
- 식별자의 역할 : 원하는 대상을 정확하게 타겟팅하는 것 ( 구별, 식별 )
- 식별자는 해당 대상만을 가리키는 것이기 때문에, 절대 중복되어서는 안됩니다.
- 이 식별자는 기본키(Primary Key)가 됩니다.
->> Primary Key는 테이블에서 각 행을 식별하는 유일한 식별자입니다.
● 속성: 엔티티는 여러 속성을 가질 수 있으며, 각 속성은 엔티티의 특성을 설명하고, 귀속됩니다.
-> 만약 한 엔티티에 속할 다른 속성이 너무 커서 독립된 엔티티로 다룰 수 있을 정도라면,
이는 속성으로 두지 않고 엔티티와 엔티티 간의 '관계' 로 표현하는 것이 바람직합니다.
- "컬럼"에 해당하는 단위 입니다.
ex) '학생'엔티티 는 '이름', '학번', '전공' 등의 속성을 가질 수 있습니다.
● 관계 : 엔티티는 다른 엔티티와 관계를 맺을 수 있습니다.
- Primary Key, Foreign Key로 표현됩니다.
ex) 두 엔티티 A,B를 연결할 때, 만약 B가 A의 "Primary Key"를 참조한다면
B의 컬럼 중 A의 PK를 가리키는 컬럼 "Foreign Key" 입니다.
ex) '학생' 엔티티와 '강의' 엔티티는 '수강' 이라는 관계로 연결 될 수 있습니다.
<참고>
- 후보키(Candidate Key): 속성(=컬럼) 중 식별자가 될 수 있는 후보군.
- 기본키(Primary Key): 후보키 중 식별자로 선택된 것.
- 대체키(Alternate Key): 후보키 중 식별자로 선택되지 않은 나머지 속성들.
이들은 성능 향상을 위해 거는 Secondary Index의 대상이 될 수 있다.
- 중복키(Composite Key): 하나의 식별자만으로는 식별이 불가능하여, 이를 위해 사용되는 둘 이상의 식별자
- (ex) emp_no(직원 번호), dept_no(부서 번호)가 있을 때, 각 키 단독으로는 식별자 역할을 할 수 없다.
※ 만약 어떠한 속성도 식별자 역할을 할 수 없다면,
auto_increment 나 sequence 등을 이용해서 다른 것과 중복되지 않는 일련번호를 만들어 식별해야 합니다.
◆ 엔티티의 종류.
◎ 유무형에 따른 분류.
● 유형 엔티티 : 물리적 형태가 있는 엔티티 ( 학생, 상품)
● 개념 엔티티 : 물리적 형태가 없는 엔티티 ( 보험상품, 조직)
● 사건 엔티티 : 업무 프로세스 중 발생하는 엔티티 ( 주문, 취소 )
◎ 발생 시점에 따른 분류.
● 기본 엔티티 : 독립적으로 생성되는 엔티티 ( 고객, 상품 )
● 중심 엔티티 : 기본 엔티티와 행위 엔티티 사이의 엔티티 ( 주문, 계좌 )
● 행위 엔티티 : 두 개 이상의 엔티티로부터 발생( 주문 내역, 수강 내역 )
'Data [ Engineer & Analytics &science ] > DB & SQL(RDBMS, NoSQL)' 카테고리의 다른 글
[ DB & SQL(RDBMS, NoSQL) ] 관계형 데이터 모델링 : 전체 흐름도. (0) | 2024.12.19 |
---|---|
[ DB & SQL(RDBMS, NoSQL) ] 데이터 베이스 공부 : DB 기초. (1) | 2024.12.11 |