SQL/SQLD.
[SQLD] 데이터 모델링의 이해 -2
devz0
2023. 3. 16. 14:57
728x90
앞서 작성한 데이터 모델링의 이해 1에서의 데이터 모델링의 3요소가 결국 이번에 다룰 엔티티, 속성, 관계가 된다.
엔티티
업무에서 관리해야 하는 데이터의 집합이다.
엔티티의 특징
특징 | 설명 |
식별자 | - 엔티티는 유일한 식별자 필수 ex)회원 id |
인스턴스 집합 | - 2개 이상의 인스턴스 ex) 고객정보는 2명 이상 |
속성 | - 엔티티는 1개 이상의 속성 필수 ex) 고객 엔티티 회원id, password , name |
관계 | - 엔티티는 다른 엔티티와 최소한 1개 이상의 관계 - 단 통계성 엔티티, 코드성 엔티티 관계 생략 가능 |
업무 | -엔티티는 업무에서 관리되어야 하는 집합 - 데이터로서 존재하지만 업무에서 필요 없으면 성립 X |
엔티티의 종류
1.유형과 무형 - 유형 , 개념 , 사건
종류 | 설명 |
유형 엔티티 | - 업무에서 도출, 지속적으로 사용되는 엔티티 ex) 고객, 사원 - 물리적 형태 존재 |
개념 엔티티 | - 물리적 형태 없음 - 개념적으로 사용되는 엔티티 ex) 거래소 종목, 보험 상품 |
사건 엔티티 | - 비즈니스 프로세스를 실행하면서 생성되는 엔티티 ex) 주문, 취소, 수수료 청구 |
2. 발생하는 시점 - 기본 , 중심 , 행위
종류 | 설명 |
기본 엔티티 | - 키 엔터티 - 독립적으로 생성되는 엔티티 ex) 고객, 상품, 부서 |
중심 엔티티 | - 기본 엔티티로부터 발생, 행위 엔티티를 생성 ex) 주문, 취소 |
행위 엔티티 | - 2개 이상의 엔티티로부터 발생 ex) 주문 이력, 체결 이력 |
속성
- 업무에서 필요한 정보인 엔티티가 가지는 항목
- 더 이상 분리되지 않는 단위로 업무에 필요한 데이터 저장
- 1개의 값만 저장
- 주식별자에게 함수적으로 종속 , 즉 기본키 변경시 속성의 값도 변경
- 속성의 명칭은 명사, 유일한 명칭, 약어 사용 지양
속성의 종류
1. 분해 여부에 따른 종류 - 단일, 복합, 다중 값
종류 | 설명 |
단일 속성 | - 하나의 의미로 구성된 것 ex) 회원id, 이름 |
복합 속성 | - 여러 개의 의미가 있는 것 ex) 주소(시, 군, 동) |
다중값 속성 | 속성에 여러 개의 값을 가질 수 있는 것 ex) 상품리스트 - 다중값 속성은 엔티티로 분해 |
2. 특성에 따른 속성의 종류 - 기본, 설계, 파생
종류 | 설명 |
기본 속성 | - 비즈니스에서 도출되는 본래의 속성 ex) 회원id, 이름 |
설계 속성 | - 데이터 모델링 과정에서 발생하는 속성 ex) 상품 코드 - 유일한 값 부여 |
파생 속성 | - 다른 속성에 의해 만들어지는 속성 ex) 합계, 평균 |
- 원금, 예치기간, 이자율 - 기본속성
- 이자율은 예를들어 5% 정해진 값. 이 정해진 값에 따라 이자가 달라지는 것
- 이자 - 계산된 값으로 파생속성
- 코드를 부여 - 유일한 값 부여하는 설계 속성
❤️🔥 도메인 : 속성이 가질 수 있는 값의 범위
관계
엔티티 간의 관련성을 의미한다. 엔티티의 관계에는 존재 관계와 행위 관계가 있는데 존재 관계란 두 개의 엔티티가 존재 여부의 관계가 있는 것을 일컫고 행위 관계란 두 개의 엔티티가 어떤 행위에 의한 관련성이 있는 것을 일컫는다.
관계의 종류
- 관계명 - 관계의 이름 (존재관계, 행위관계)
- 관계차수 - 1:1, 1:M, N:M
- 관계선택사양 - 필수/선택
관계 체크 사항
- 두 개의 엔터디 사이에 관심 있는 연관 규칙이 존재하는가?
- 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
- 업무 기술서, 장표에 관계 연결에 대한 규칙이 서술 되어 있는가?
- 업무 기술서, 장표에 관계 연결을 가능하게 하는 동사가 있는가? (명사로 바꿔서 나온 적 있음)
식별 관계와 비 식별 관계
- 식별 관계
- 부모 테이블의 기본키 또는 유니크 키를 자식 테이블이 자신의 기본키로 사용
- 부모 테이블의 키가 자신의 기본키에 포함되기 때문에 반드시 부모 테이블에 데이터가 존재해야 자식 테이블에 데이터를 입력
- 부모 데이터가 없다면 자식 데이터는 생길 수 없습니다.
- 식별관계는 ERD상에서 실선으로 표시
- 비식별 관계
- 부모 테이블의 기본키 또는 유니크 키를 자신의 기본키로 사용하지 않고, 외래 키로 사용하는 관계
- 자식 데이터는 부모 데이터가 없어도 독립적으로 생성 가능
- 자유로운 데이터 생성과 수정이 가능
- 비식별관계는 ERD상에서 점선으로 표시
❤️🔥 주 식별자를 부모 엔티티에서 자식엔티티로 연관 짓기 위해서는 식별자관계를 고려해야한다
728x90
반응형