- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
database modeling [데이터베이스 모델링] 모델링 IE 표기법 (까치발, 까마귀발, crow-feet)
2022.04.26 18:36
[데이터베이스 모델링] 모델링 IE 표기법 (까치발, 까마귀발, crow-feet)
IE 노테이션에서 관계(Relationship) 표기법은 항상 헷갈리는 경우가 많다.
- 1:N : A에 대응하는 B가 여럿이다.
1:1 : A에 대응하는 B가 하나다.
실선과 점선의 관계 Identifying 과 non-Identifying
- 실선 ( Idenfitying ) : A가 없으면 B가 존재 할 수 없는 관계이다.
- 점선 ( non-identifying ) : A가 없이도 B가 존재 할 수 있다.
헷갈리기 쉽다. 따라서 identifying과 non-identifying에 대한 예를 들어보자.
수강내역 입장에서 본다면 학생이 없다면 존재의 의미가 없다.
그러므로 실선인 identifying이 적절하다.
학생과 학과의 관계를 보자
학생은 학과가 없이도 생성 될 수 있는가?
그렇다. 학생은 학과가 없어도 존재 할 수 있다.
이렇듯 종속되지 않고 독립적으로 생성 될 수 있으면 non-identifying이다.
사실 이것이 물리 모델링에 가면 FK를 PK로 쓸것이냐 말것이냐를 결정짓는 요인이 된다.
필수와 선택 mandatory / optional
선택사양 중 필수 조건(Mandatory) 와 선택조건(Optional) 의 차이를 알아보자
Mandatory 는 아래 그림()처럼 원이 없는 직선으로 이루어져 있고
Optional 은 아래 그램()처럼 원이 포함되어 있다.
이동은 학생이 없이 존재 할 수 있을까?
학생쪽에 optional이 붙었다는 것은 학생이 있어도 되고 없어도 되고 즉 null 가능이라는 뜻이다.
1번째 , identifying , mandatory, optional 이경우는 B는 A가 없다면 존재 할 수 없다. 반면 A는 B가 없어도 괜찮은 관계이다. 물리적 DB구성은 B테이블에 A의 PK를 FK로 하며, B테이블의 PK로 들어온다.
2번째 , identifying , mandatory, mandatory 이 경우는 B도 A없이 존재 할 수 없고, A또한 B가 없다면 존재하기 힘든 관계이다.물리적 DB구성은 B테이블 경우는 1번째 경우와 동일하다. A의 ID가 PK로 들어온다.
그렇지만 1:n의 1의 관계에서 B의 ID를 PK로 물고 있는 경우가 없기 때문에 무결성을 지키기 위해서는 별도의 처리 로직 (TRIGGER 혹은 어플리케이션단계에서의 처리) 이 필요하다.
3번째 , non-identifying , optional, optional 이 경우는 A가 없이도 B는 존재 할 수 있으며, B는 A의 ID를 PK가 아닌 일반 속성으로 가지게 된다. 그리고 B의 입장에서 A또한 있어도 그만 없어도 그만인 optional 속성이므로 A의 ID 컬럼이 null이 들어와도 무방하게 된다.
4번째 , non-identifying , mandatory, optional 이 경우는 3번째와 마찬가지로 A없이 B가 존재할 수 있다. 그렇지만, B의 입장에서 A는 필수 조건이다. 따라서 B의 주키는 일반속성으로 들어와 있긴 하지만 not null 속성을 가져야만 한다.
출처: https://dbguide.tistory.com/entry/모델링-IE-표기법 [IT WORLD]
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 오라클 기본 샘플 데이터베이스 | 졸리운_곰 | 2014.01.02 | 25085 |
공지 | [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE | 가을의 곰을... | 2013.02.10 | 24564 |
공지 | [G_SQL] Sample Database | 가을의 곰을... | 2012.05.20 | 25943 |