사용자 삽입 이미지



































# 식별 관계 Identifying과 Non-Identifying Relationship
- Identifying 이라는 단어는 식별하고 있느냐라고 해석할 수 있다.
   ID는 식별자와 같다. ID의 원어는 Identifier 이다.
   어떤 릴레이션쉽이 Identifying이냐 Non-Identifying이냐를 구분하는 기준은 페어런트 엔터티(Parent Entity)와 차일드 엔터티(Child Entity)간에서(일대다 관계에서는 일이 되는 엔터티가 페어런트 엔터티이고, 다가 되는 엔터티가 차일드 엔터티이다) 차일드 엔터티가 페어런트 엔터티의 UID(PK, Primary Key)를 참조하는데 이 참조되는 UID가 차일드 엔터티의 UID로 포함이 되느냐이다.
사용자 삽입 이미지







- 위의 그림에서 차일드 엔터티는 페어런트 엔터티의 PK를 참조하고 있는데, 참조되는 페어런트 엔터티의 PK를 차일드 엔터티의 PK로 사용하고 있다. 이 경우 차일드 엔터티의 PK는 Child UID, Parent UID를 결합하여 사용한다.
- 차일드 엔터티가 의존적인 엔터티(Dependent Entity)로 표현된 것에 주의하자. Identifying Relationship 상태에 있기 때문에 차일드 엔터티는 페어런트 엔터티에 의존적이다. 페어런트 엔터티에 값이 없으면 차일드 엔터티가 생성될 수 없다.
- 이러한 관계를 Identifying이라고 부르는 이유는 페어런트 엔터티의 UID가 차일드 엔터티의 인스턴스를 식별하는 역할을 수행하기 때문이다. 이 경우 반드시 Child UID가 있을 필요는 없지만 Child UID와 결합하는 것이 더 일반적이다.
- 위의 그림은 하나의 엔터티만을 참조하고 있으므로 최소한 하나의 Parent UID를 차일드 엔터티가 가져야만 한다.
하지만 여러개의 엔터티들을 참조하고 있다면, 그 엔터티의 수만큼 Parent UID를 가지게 된다.
그리고 이런 경우 차일드 엔터티에 있는 Parent UID들은 페어런트 엔터티들을 참조하고 있는 것이 되므로 외부키(FK, Foreign Key)가 된다.

# Mandatory와 Optional 의 차이점은 NULL값을 허용 하느냐, 허용하지 않느냐의 차이가 있다.
- Mandatory : 필수적인 혹은 의무적인 (생략하면 안되는)
- Optional : 선택적인 (생략해도 괜찮은)

사용자 삽입 이미지







- 위의 그림은 Non-Identifying 이라 부른다.
Non-Identifying 은 그림과 같이 차일드 엔터티에서 참조하는 페어런트 엔터티의 UID 값을 참조하지만 PK로 사용 되지 않고 있다.
릴레이션에서 Parent Entity 쪽에 마름모 모양이 없으므로 Mandatory 방식이다.
이 Mandatory 에서는 NULL 값을 허용하지 않는다.
그러므로 Parent Entity에 존재하는 Parent UID 값을 Child Entity에 하나 이상 입력해야 한다.
사용자 삽입 이미지







- 위의 그림의 릴레이션에서는 Parent Entity쪽에 마름모 모양이 있으므로 Optional 방식이다.
이 Optional 방식은 Child Entity의 Parent UID 값에 NULL 값을 허용한다는 의미이다.
# 주의 할점은 NULL값을 허용하지만, NULL값이 아닐경우 반드시 Parent Entity에서 존재하는 Parent UID 값이어야 한다.


# 관계의 차수
- 릴레이션쉽에서 카디널리티라는 것은 One-to-Many 릴레이션쉽을 기준으로 페어런트 엔터티 인스턴스 하나에 몇개의 차일드 엔터티 인스턴트들이 관련되는 지를 따지는것.


참고자료 : 소설처럼 읽는 DB 모델링 이야기(영진닷컴)
07 13, 2010 22:59 07 13, 2010 22:59

Trackback URL : http://develop.sunshiny.co.kr/trackback/523

Leave a comment

« Previous : 1 : ... 84 : 85 : 86 : 87 : 88 : 89 : 90 : 91 : 92 : ... 381 : Next »

Recent Posts

  1. Oracle - 바인드 변수에 대하여(테스트)
  2. Oracle - 디폴트 롤, DBA, CONNECT,...
  3. Oracle - 권한 및 롤 관리
  4. Oracle - SQL*PLUS의 SYSDBA 접근 제어
  5. Oracle - PFILE, SPFILE 에 관하여

Recent Comments

  1. 네 답글 고맙습니다. 좋은 한주 보... sunshiny 05 14,
  2. 좋은 정보 잘 살펴보고 갑니다. ememoho 05 12,
  3. 네. 고맙습니다^^ 행복한 한해 보... sunshiny 01 16,
  4. sunshiny님. 안녕하세요... 올려 주... yihans 01 16,
  5. 답글 주셔서 고맙습니다^^ 소스 복... sunshiny 01 11,

Recent Trackbacks

  1. 윈도우 cmd 명령어 팁 월풍도원(月風道院) - Delight on th... %M
  2. 파일 압축 Like RadioHead %M
  3. Mysql - mysql 설치후 Character set... 멀고 가까움이 다르기 때문 %M

Calendar

«   05 2012   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. Oracle All Documentation
  4. 엑셈
  5. 오라클 클럽
  6. 네이버개발자센터
  7. API - Java
  8. API - Spring
  9. Java Community
  10. Reference - Spring
  11. 스프링사용자
  12. 자바소스
  13. 자바지기
  14. Ready System
  15. Solaris Freeware
  16. Linux-Site
  17. RedHat Korea
  18. 윈디하나의 솔라나라

Site Stats

TOTAL 245428 HIT
TODAY 134 HIT
YESTERDAY 139 HIT