Data [ Engineer & Analytics &science ]/DB & SQL(RDBMS, NoSQL)

[ DB & SQL(RDBMS, NoSQL) ] 관계형 데이터 모델링 : 구성 요소.

안다미로 : 3D 웹앱 개발자 2024. 12. 19. 16:14

 

 

 

 

 

[ 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 등을 이용해서 다른 것과 중복되지 않는 일련번호를 만들어 식별해야 합니다.

 

 

         ◆ 엔티티의 종류.

                 ◎ 유무형에 따른 분류.

 

                         ● 유형 엔티티 : 물리적 형태가 있는 엔티티 ( 학생, 상품)

                         ● 개념 엔티티 : 물리적 형태가 없는 엔티티 ( 보험상품, 조직)

                         ● 사건 엔티티 : 업무 프로세스 중 발생하는 엔티티 ( 주문, 취소 )

 

                 ◎ 발생 시점에 따른 분류.

 

                         ● 기본 엔티티 : 독립적으로 생성되는 엔티티 ( 고객, 상품 )

                         ● 중심 엔티티 : 기본 엔티티와 행위 엔티티 사이의 엔티티 ( 주문, 계좌 )

                         ● 행위 엔티티 : 두 개 이상의 엔티티로부터 발생( 주문 내역, 수강 내역 )