본문 바로가기

이론/DB

[DB] 데이터베이스 ER 다이어그램 - (2)

두 개체간의 맥시멈 카디널리티를 먼저 보자. 1:1인지 1:N인지 M:N인지 보는 것이 중요하다. 

 

department 는 해쉬마크와 오벌만 있고, employee쪽에는 크로스핏으로 여러개가 그어져있다. 

 

department에서 봤을때 employee가 여러개 있을 수 있다. maximum cardinality는 M:N이다. 

 

minimum cardinality는 

 

employee는 department가 있거나 없을 수 있다.

 

점선은 비식별관계를 맺는 것이다. 한쪽 엔티티를 빌려다가 일부로 사용할때 , 비식별 관계라고 한다.  그것을 점선으로 표현한다. 

 

1:N의 관계를 금방 알수가 있다. 

 

미니멈, 맥시멈 카디널리티, 식별관계를 알 수가 있다. 

 

검진은 반드시 환자가 있어야한다. 다 해석할 수 있어야한다. 

 

weak 엔티티는 디자인 상에서 너무나도 많다. 


subtype entity

 

supertype엔티티의 special case이다. student의 subtype으로 undergraduate , graduate 이 있다. 

 

subtype은 supertype과 식별관계에 있다.

 

subtype의 개체를 따로 만들게 되면 필요없는 항목에 NULL로 채워지는 것을 방지 할 수 있다. 

 

예시) 중간에 연산자는 exclusive OR이다. 

 

 

 

 

1) 비식별관계이고, 1:1이다. 동그라미가 있다는 얘기는 A는 그거에 매칭되는 B가 없어도 된다. 그러나 B는 매칭되는 A가 있어야한다. 

 

2) 맥시멈 카디널리티는 1:N이다. solid line이 아니므로 비식별 관계이다. 

 

3) M:N의 관계이다. 비식별관계이든 식별관계이든 notes로 표현한다. 미니멈카디널리티는 notes에 따로 표시해야한다.  

 

4) A는B가 없어도 된다. B는 A가 반드시 있어야한다. B는 weak 한 entity로서 A에 dependent하고 식별관계로써 그를 표현한다. 

 


맥시멈 카디널리티가 중요하다. 

 

개체를 잘 뽑아주는 게 중요하다. 개체는 strong 한 엔티티가 중요하고 그 기관에서 가장 중심이 되는 것을 잡는게 중요하다. 

 

weak한 엔티티는 필요에 의해 만드는 것이 중요하다 . 

 

건국대학교에서 strong 한 엔티티가 뭐냐 라고 하면 학번이 아니라 , 학생이 나와야된다.


 

The association pattern 

 

association pattern : 데이터베이스에서는 외래키라는 하나의 컬럼을 가지고 연관관계를 표현한다. 

  • 두개의테이블이 서로의 행에 대해서 여러개의 연관되어있는 상태를 다대다(M:N)관계라고 한다. 
  • 예를 들어, 학생과 과목의 관계사이에 등록 테이블을 넣는 것이 association pattern이다.  

 

중요하다. 대학 데이터베이스에서 학생과 과목사이에는 M:N관계가  있다.

 

학생이 어떤 과목을 들으면 중간고사 점수, 기말고사 점수, 최종 학점이 필요하다. 그래서 enrol이라는 개체를 만들어낸다. 

 

학생과 등록사이에 M:1의 관계, 과목과 등록 사이에 1:N의 관계가 만들어졌다. 

 

association pattern에 의해 등록이 만들어진거다.

 

새로운 엔티티를 만들고 1:N을 두개로 만들어 새로운 엔티티에 추가적인 속성을 붙여준다. 

 

엔티티를 추가할  것인지 말 것인지 결정해야한다. 너무 잘나오는 패턴이다. **

 

대부분의 M:N 릴레이션 패턴들은 association 패턴일 가능성이 높다 .

 

 

 

 

 

원형 인스턴스로 디자인 해야겠다라고 판단해야한다. 원형 엔티티와 인스턴스 엔티티의 두 개의 엔티티 두 개를 구분하자.