
모델링 ⭐️⭐️
데이터베이스의 모델링은 ‘현실 세계를 단순화하여 표현하는 기법’
모델링 특징 (추단명) ⭐️⭐️
모델링 3가지 관점
모델링 3가지 단계 (개논물) ⭐️⭐️
데이터 독립성 ⭐️⭐️
ERD(Entity Relationship Diagram)


데이터 모델링 유의사항 ⭐️⭐️
엔티티 ⭐️⭐️
엔티티 특징 ⭐️⭐️
엔티티 분류 ⭐️⭐️
유형 vs. 무형 (유개사)
| 유형 엔티티 | 물리적인 형태 존재. 안적정, 지속적 ex) 회원, 상품 |
| 개념 엔티티 | 물리적인 형태 없음. 개념적 ex) 부서, 학과 |
| 사건 엔티티 | 행위를 함으로써 발생. 빈번, 통계 자료로 이용 가능 ex) 주문, 이벤트 응모 |
발생시점 (기중행)
| 기본 엔티티 | 독립적으로 생성됨. 자식 엔티티를 가질 수 있음 ex) 상품, 회원 |
| 중심 엔티티 | 기본 엔티티로부터 파생. 행위 엔티티 생성 ex) 주문 |
| 행위 엔티티 | 2개 이상의 엔티티로부터 파생 ex) 주문 내역, 이벤트 응모 이력 |
엔티티 이름 정할 때 유의할 점 ⭐️⭐️
속성값 ⭐️⭐️
엔티티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터
속성 분류 ⭐️⭐️
특성에 따른 분류 (기설파)
| 기본속성(Basic Attribute) | 업무 프로세스 분석을 통해 바로 정의가 가능한 속성 |
| 설계속성(Designed Attribute) | 업무에 존재하지는 않지만 설계하다 보니 필요하다고 판단되어 도출해낸 속성 |
| 파생속성(Derived Attribute) | 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성 |
구성방식에 따른 분류
| PK(Primary Key)속성 | 엔티티의 인스턴스들을 식별할 수 있는 속성 |
| FK(Foreign Key)속성 | 다른 엔티티의 속성에서 가져온 속성 |
| 일반속성 | PK, FK를 제외한 나머지 속성 |
도메인(Domain) ⭐️⭐️
속성이 가질 수 있는 속성값의 범위
용어사전
엔티티의 속성명을 정의할 때 명확한 의미의 이름을 부여하고 다른 엔티티와의 혼란을 예방하기 위해 이용하는 것
관계 ⭐️⭐️
엔티티와 엔티티와의 관계를 의미
관계 표기법 ⭐️⭐️
| 관계명 (Membership) | 관계의 이름 | ・ 엔티티와 엔티티가 어떠한 관계를 맺고 있는지를 나타내주는 문장 ・ 각 엔티티의 관점에서 관계명을 하나씩 가짐 ・ 현재형, 명확한 문장으로 표현 |
| 관계차수 (Cardinality) | 관계에 참여하는 수 | ・ 각 엔티티에서 관계에 참여하는 수 ・ 1:1, 1:M, M:N으로 구분 |
| 관계선택사항(Optionality) | 필수인지 선택인지의 여부 | ・ 필수적 관계(참여자가 반드시 존재해야 하는 관계) ・ 선택적 관계(참여자가 없을 수도 있는 관계 |
엔티티 사이 관계 정의 시 고려사항
식별자 ⭐️
각각의 인스턴스를 구분 가능하게 만들어주는 속성
주식별자 ⭐️⭐️
기본키(PK)에 해당하는 속성
하나의 속성이 주식별자가 될 수도 있고, 여러 개의 속성이 주식별자가 될 수도 있음
| 유일성 | ・ 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 함 ・ 하나의 키값으로 인스턴스를 유일하게 식별할 수 있음 |
| 최소성 | 유일성을 보장하는 최소 개수의 속성이어야 함 ex) 회원 구분: 주민등록번호, 회원번호 → 2개 두는 건 공간 낭비 |
| 불변성 | 속성값은 되도록 변하지 않아야 함 |
| 존재성 | 속성값이 NULL 일 수 없음 |
식별자 분류 ⭐️⭐️
대표성 여부 (주, 보조)
| 주식별자(Primary Identifier) | ・ 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자 ・ 다른 엔티티와 참조 관계로 연결 |
| 보조식별자(Alternate Identifier) | ・ 인스턴스를 식별할 수는 있지만 대표 식별자가 아님 ・ 다른 엔티티와 참조 관계로 연결되지 않음 |
스스로 생성되었는지 여부 (내, 외부)
| 내부식별자(Internal Identifier) | ・ 엔티티 내부에서 스스로 생성된 식별자 |
| 외부식별자(External Identifier) | ・ 다른 엔티티에서 온 식별자 ・ 다른 엔티티와의 연결고리 역할 |
단일 속성 여부 (단일, 복합)
| 단일식별자(Single Identifier) | ・ 하나의 속성으로 구성된 식별자 |
| 복합식별자(Composite Identifier) | ・ 두 개 이상의 속성으로 구성된 식별자 |
대체 여부 (본질, 인조)
| 원조/본질식별자(Original Identifier) | ・ 업무 프로세스에 존재하는 식별자 ・ 가공되지 않은 원래의 식별자(본질식별자) |
| 대리/인조식별자(Surrogate Identifier) | ・ 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자(인조 식별자) |
식별자 관계 vs. 비식별자 관계 ⭐️
NULL 이 될 수 있으므로 부모 엔티티가 없는 자식 엔티티 생성 가능,자식 엔티티가 존재하는 상태에서 부모 엔티티가 삭제 될 수도 있음