데이터베이스
상속, 식별&비식별
https://dataonair.or.kr/home/데이터-광장/데이터-인사이트/데이터-전문가-칼럼/?mod=document&uid=16
- 자식은 부모의 이름(식별자)를 갖고 있으므로 부모를 유일하게 식별할 수 있다. 그러므로, 자식은 부모의 모든 속성을 사용할 수 있게 된다. 이것이 엔터티가 식별자를 가져야하는 이유이자 엔터티와 릴레이션쉽(ER)의 기본 원리.
- 식별관계: 부모 엔터티는 자식의 탄생에 직접적인 역할을 해서 자식은 부모 없이 생성할 수 없다. 그러므로 식별관계는 릴레이션쉽 중 부모-자식 사이의 중요한 관계로써 일반적으로 데이터 모델의 뼈대와 같은 역할을 한다.
-
- 그림과 같이 직업(상위) 엔터티의 식별자 ‘직업코드’가 고객(하위) 엔터티의 일반속성으로 생성. 이때, ‘직업’ 엔터티는 ‘고객’ 엔터티 생성에 직접 관여하지 않는다. 즉, 직업이 없어도 고객은 존재할 수 있다.비식별관계: 자식(하위) 엔터티가 부모(상위) 엔터티의 키를 자신의 일반 속성으로 상속받는 것. → 부모에서 # 으로 표현한 속성을 자식이 * 으로 받는 것이라고 이해
- ‘고객’ 엔터티에서 상속받은 직업코드 식별자가 NULL 이냐, NOT NULL이냐는 다른 이야기. 비식별 릴레이션쉽이 설정됏다고 해서 상속받은 식별자가 꼭 있어야 하는 것은 아니고, 없을 수도 있다. 즉, 직업이 없는 고객이 있을 수도 있기 때문에 그 상황에서 고객 엔터티의 직업코드는 NULL이 될 수도 있다. 그러나, 그림에서는 * 로 표기되어 있어 NOT NULL로 설정되어 있는 상황이다. 이는 현실 세계에서는 고객의 직업이 없을 수도 있지만, 비즈니스적으로나 데이터적으로는 고객의 직업은 반드시 존재해야 한다는 의미로 볼 수 있는 것이다.
Mandatory, Optional
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ldg119&logNo=110129647704
예를 들어 설명하자면.
회원정보와 주소정보는 어떤 상황에서 쓰이느냐에 따라 Mandatory일 수도 있고, 아닐 수도 있다.
- 회사가 배송전문업체라면?
- 회원의 주소정보가 없으면 배송을 할 수 없다. 그러므로 반드시 주소정보 1개 이상은 있어야 한다. 그러므로 여기서 주소정보는 Mandatory가 되는 것.
- 일반 웹사이트에서 단순하게 회원관리를 하는 것이라면?
- 주소정보가 필요가 없는 경우도 많다. 그러므로, 주소정보는 여기서 Optional이 되는 것.
'DATABASE' 카테고리의 다른 글
서브타입, 식별, 비식별, 식별자 (0) | 2022.01.20 |
---|---|
자기 참조 관계, 재귀 관계 (0) | 2022.01.18 |
댓글